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.