Current front-end dev stack isn’t complicated

Please, don’t throw stones at me. The current state of our dev stack isn’t complicated, in fact it is still simple compared to other parts of software development.

In the past I developed things in various languages and that gave me a great insight how code is compiled on different platforms but nothing sticks in my memory as a diagram how a program in C is transformed from source code to executable. I tried to recreated in a bit simplified form where couple of steps are skipped:Source code, compilation, assembly, linking, machine code

It takes four steps to get to an executable code. That’s quite a lot compared to our current state of things on the web:

The process is one or two steps long but in two separate streams. In case you choose to use HAML or similar markup language instead of plain HTML you’ll have to add another one step process. In my opinion it’s not that complicated, it’s just cluttered.

Another thing which makes the compilation process overwhelming for a lot of people is the lack of automation. To be honest I don’t remember any one telling me that they are doing the process from the source code to machine code manually in any language every single time. But I know that some of us are running JavaScript transpilers or SCSS compilation manually.

Our industry is somewhat young and was for a very long time underestimated. Now it’s one of the fastest growing parts of software development but the tools which evolved with other languages just aren’t there yet in our part of software development. We are the ones who don’t wait and do bend reality with polyfills. It’s not bad approach but at the moment we need to help the reality to adjust.

Other programming languages started a bit differently and at our stage had standard processes to handle compilation. On the front-end web we have several competing tools although they use quite different approach. The question is which one(s) will prevail and which one(s) will perish. Personally I prefer task runners like gulp over bundlers like Web Pack just because bundling doesn’t sound that great to me when HTTP2 is spreading1.

Next couple of years will be interesting and, personally, I expect some unification and evolution of our tools.

  1. This website supports it.