Recently I’ve been playing with Hubot plugins code in coffeescript for our company. That’s a while I didn’t do much js but I used it for a long time and I didn’t find it too difficult to catch up. But for some reason, it brought me the same feeling I have each time I get back to that language. I feel dirty. Still I can do what I need to do, for sure, but I don’t feel like a builder, more like an acrobat. And I’m far from a purist.
Some people talk about javascript taking over the world. But that language imho just was there at the right place at the right time. By having a runtime embedded in browsers and browsers libraries, it has been used to hijack the most used software on our computers and mobile devices, to transform them into richer clients. Along the way various layers were added to fulfill the need of software design, because javascript initial goal was merely DOM manipulation.
The thing that always stroke me the most with javascript is that despite the efforts from ecmascript, it has no formal standard or documentation. It is pretty extensively documented, of course, but because the language is pushed forward by the implementations rather than from a standard body, it gets a bit messy.
I saw a drawing this week that illustrates the mess quite well. It feels like Javascript is waiting for something to come replace it.
But there is hope with ES6. Seems like in recent years the normative effort on the ecmascript standard got some more traction and some more press coverage. But I personally don’t think it’s going to bring the solution. I enjoyed reading the thoughts of Eric Elliot on that topic but I’m not sure he’s right on everything. But what he’s right about, is that there will be an after-javascript.
Unless that after javascript doesn’t arrive fast enough and gets useless by some new programming paradigm that may appear one day soon. I mean, in the next 10 years. At some point, like big data is too complex to be handled by human, programming will also get too complex and will be handled by algorithms. We already see it coming. And all programmers will then become high end workflow designers or just play with antiquities.
In this perspective, I think javascript is a great intermediary technology for the time being, given its pervasive aspect. It’s far from satisfying, but it does the job. But the younger generation should keep an eye on higher level abstract approaches, like systems architectures, workflow logics, organization patterns, because imho that will drive software design in the next 10-20 years.