The mind of code
The MEAN stack
When I first got asked to write a blog post about the MEAN stack I was forced to confront a horrible truth, my job is a black box. Or rather Pandora’s Box, once I describe the MEAN stack I will have to describe every little nuance and related piece of technology and I will hurt a lot of people. This, for most people, would not be a fun read so I’ve decided against giving a description of the MEAN stack, instead I want to give you an idea of how the MEAN stack changed my life.
What does my day look like?
My day starts the same as any other person, I open my eyes, get out of bed; but unlike every other person I get up in the morning and start hurrying! I get the kids ready, grab a piece of bread and run upstairs to get to my computer. With unbridled anticipation I boot up my computer and get to work.
Just to clarify, my computer is not my friend. I do not see the computer as a living entity, my computer is an extension of my mind. I exert my will through my computer into a world which is not a part of daily reality and at the same time, is where we spend most of our time.
After my computer has booted, which is three seconds because I use a Mac, I immediately open a few programmes. I open my IDE (integrated development environment), my terminal and my browser. These are the only things I need to get going. Before I take the first sip of my coffee, my three essential applications are running and I’m ready to start my working day. Now I have to admit, I know people who also open their e-mail and social media, but I do not bend that way. I try to limit my contact with other people on the internet to a simple exchange of knowledge and games.
What do I do?
I am a programmer. This means that I write “algorithms” in order to automate processes. This, in and of itself, is a useless profession. The only reason I write these “algorithms” is to make other people’s working lives easier and as a result make them better.
A better way to understand what I do is to think in terms of small vs. large. I write little words in a man made logical language to create large effects. I get absolute feedback from my machine every minute or so. Every minute I will have had a confirmation of my success or a description of my failure from which I can immediately extrapolate my subsequent actions. Most of these subsequent actions will again result in immediate feedback.
My entire day is spend in a feedback loop which is faster than anyone can reasonably understand. This is the reason why discussions between programmers are usually incomprehensible and flat out boring. We tend to push this constant stream of “good” vs “bad” assumptions out into every part of our daily lives.
We are feedback junkies. This is why we need to work in a team, this is why we cannot communicate with “the outside world”, this is why our ability to plan our tasks is nonexistent. There are no nuances anymore. Everything is either right or wrong, there is absolutely, categorically, no middle ground.
But what about the MEAN stack?
Imagine you are a feedback-junkie. Now imagine a way to get your feedback fix even faster! This is what the MEAN stack is. The MEAN stack is a way to give me my feedback-fix at twenty second intervals. About three times as fast. Getting feedback three times as fast makes development about three times as fast. The quality of my code gets better and as a result the quality of the overall product gets better.
Because of this faster feedback loop we can have tests run continuously while we type, we can deploy twice a day to test environments and we have time to experiment to boot! The MEAN stack, because of these reasons, has been an essential driving force behind innovation and startups.
Now most technical people will start to protest here. MEAN stands for MongoDB, Express, AngularJS and NodeJS. All of these technologies are replaceable by other, maybe better, technologies. With MEAN stack I implicitly mean a “paradigm” a “philosophy”. Theoretically you can get this same philosophy by using Django or Ruby as server technologies, yes, maybe even ASP.NET although I doubt it would pass the test seeing how it has grown and has become convoluted. You can use Amber or ReactJS or Angular 2.0 or even Knockout for parts of your frontend. Express can be replaces by Hapi and MongoDB can be swapped out for CouchDB, RavenDB or you can go into the future with Neo4j. The point is that within the philosophy of the MEAN stack these changes are allowed. It is an acronym which for me has nothing to do with what the acronym means, but with what the acronym stands for.
The promise the MEAN stack brings is something which you see applied in every part of the industry’s culture. We get more open, less afraid to fail. Performance is something to which you aspire and we actually have heroes now, people we try to live up to. Fail fast is an actual term and Open Source is no longer something for hippies but an actual methodology which seems to mimic natural selection and evolution in such a beautiful way that most people are convinced it will be the way forward.
Really? You’ve got to be kidding!
No I’m not. I’ve been a .NET developer for ten years. Before that I was a VB6 developer. Only now, with the MEAN stack philosophy, have I found the way which makes me happy. I can get everything done in less time, higher quality and better deployment and development possibilities.
The MEAN stack is a promise of change to come and gives inspiration to everyone involved; change can happen. Gone are the days of imperialistic companies and monolithic applications and welcome are the Spotify cultures, the Yahoo structures and of course Google. Even Microsoft is embracing this philosophy and this is saying a lot!
Without having gone into the technical details of the MEAN stack I hope I’ve given you an insight into the mind of the programmer and I hope I’ve been able to show you how the MEAN stack changed my professional life. Thank you for reading this article and I can wholeheartedly advice you to try “the MEAN stack” out for yourselves, you’ll be amazed at what changes will arise!
Carlos Kelkboom