
I had the honor of speaking at devLINK over the last 3 days – including the humbling opportunity to sit in on a ‘closing keynote’ speaker panel with Douglas Crockford, Bryan Hunter, James Kovacs and Elijah Manor. Needless to say, I feel woefully under-qualified sitting next to people of such caliber! John Kellar – founder and organizer of devLINK – invited the audience to ask questions. The attendees asked great questions and, at one point, someone asked Douglas Crockford if he thought JavaScript would still be the dominant language of the web in 10-15 years. His response:
“God, I hope not. If it turns out that JavaScript is the last programming language, that would be really sad. But unfortunately, because of its dominance in the web, it is now moving into virtually every place else. It has become a tragically important language, and we’re going to be stuck with it for a time….”
I wouldn’t be surprised if the mix of laughter during & after that statement was comprised of two reactions (at least):
- Nervous laughter from those who have embraced (and dare I say, loved) working in JavaScript. An accomplished, respected and knowledgeable figure just told them their baby was ugly. Awkward.
- Satisfaction (perhaps of the smug kind) from developers seasoned in other languages who’ve been dragged kicking and screaming (or still resisting being drawn) into this crazy new world of JavaScript’s ubiquitousness.
So – here’s my take on the situation. I was only around Douglas Crockford for a brief time today – but he struck me as someone who’s seen a lot of change and innovation throughout the course of his career. He’s seen languages rise and fall – and he definitely exudes the wisdom of someone who doesn’t view the development world through a myopic “one language” mindset. He cares enough about JavaScript to write a book that should be required reading for every JavaScript developer. He also cares enough to hope that innovation doesn’t stop where we are today. Due to the nature of the web, JavaScript has achieved a reach not many other languages have experienced – that’s important. But it lacks useful features which other languages have, has confusing quirks of its own, and evolution of the language is slow – that’s tragic.
So here’s what I’d say to my two strawmen:
1.) If you’ve embraced JavaScript – great! Work hard to innovate and make this space the best it can be for the period of time it dominates the web. But don’t get lulled into any false sense of security. If my own experience is any indication, a large majority of JavaScript developers either don’t possess, or are not applying, solid pattern knowledge and architectural principles. Do yourself a favor and learn these concepts so that you can apply them in any language. Play with other languages, even if it’s just a side project (and maybe consider learning a statically typed language).
2.) If you view the rise of JavaScript with anti-hipster-bitterness, you’re just experiencing what JavaScript developers will also one day experience: the fact that languages rise and fall, and yours may not be the “language du jour”. Consider the fact that very accomplished developers (from multiple language backgrounds) are delivering some incredible things right now in JavaScript. Don’t let the awful prevalence of spaghettified front end code trick you into thinking that “that’s just how JavaScript is”. No, it’s not. JavaScript – like so much of the web – has a low barrier to entry. And that’s a powerful reality. You can get a LOT done, without knowing a lot. But it’s developers (and would-be-developers) that are responsible for the spaghetti code, not the language. What we could benefit from is your knowledge being brought to bear in this space. And remember – a low barrier to entry doesn’t preclude the power it can wield.
I think the lessons conveyed over my time at devLINK this year are clear:
- Endeavor to do what you love
- Strive to become excellent at what you do
- Do *not* limit your skill set to only what your employer currently utilizes
- Learn another language.
- Repeat step 4.
That being said, it’s time for me to dust off erlang and Io again.
Here’s the panel discussion, if you’re interested:




Pingback: In the News: 2012-09-01 | Klaus' Korner
Pingback: From IoC to require | Dru Sellers
Pingback: Joel Cochran » Weekly roundup 9/7/12