Don't go chasing waterfalls … or programming languages
Connecting state and local government leaders
A programming language is a tool to achieve your agency's business objective; so be wary of the latest fads in niche programming languages.
In the last year, a new programming language seems to pop up every few months promising huge improvements over past languages. Just last week, Wired magazine presented a new language called “Julia” and proclaimed it was “the one programming language to rule them all.”
Before that, we had Go, Rust, Dart, Scala and Ceylon just to name a few. (There are many more out there, like F#, Opa and Fantom). Tired yet? Well, as one blogger recently pointed out: “The programming steamroller waits for no one.”
Personally, I have not yet found a new language that is significantly better than the current dominant languages like Java, C# or Javascript. Marginal improvements at the edges just don’t interest me, nor do they pass the barrier to entry. Furthermore, as I have previously written, programming languages no longer matter – platforms matter.
On the other hand, the government notoriously suffers from technological inertia with major initiatives using mainframes and their archaic languages like Ada and even MUMPS (circa 1966).
On one hand, government IT managers should not be enamored by the latest shiny new language, but they should also not be mired in the tar pits of outdated technology. The sweet spot lies in utilizing the dominant language by platform (i.e. clients, servers, mobile, cloud). Don’t be fooled by niche promises of over-zealous techies who like to live on the bleeding edge. I myself, in my younger days, have been guilty of this – chalk it up to youthful exuberance. Now, I know better, and so should you.
Some of the niche improvements these languages are pursuing are performance (a perennial favorite), easy parallelism (like goroutines in Go), functional programming (like Scala), cross-platform (like Fantom), and syntactic sugar promising either more intuitive or faster coding.
I once witnessed a major, mission-critical initiative bow to techie demands to use a hot new dynamic programming language that was over 30 times slower than the dominant language. That system is still in development but given that the performance requirements and volume of data were expected to triple, choosing a dynamic language, for that set of requirements, was downright foolhardy.
And that brings us to the moral of this story: A programming language is merely a tool to achieve the business objectives of a robust and efficient IT system. Be wary of techies steering the conversation to the hottest new language of the month in the name of feature X or improvement Y. The dominant programming languages for each platform type are dominant for a reason.
As platforms like cloud computing mature, we could see new languages tailored to the that platform become dominant. Then, and only then, a switch is warranted. As TLC says in the song, “Please stick to the rivers and the lakes that you’re used to.”
Michael C. Daconta (mdaconta@incadencecorp.com or @mdaconta) is the Vice President of Advanced Technology at InCadence Strategic Solutions and the former Metadata Program Manager for the Homeland Security Department. His new book is entitled, The Great Cloud Migration: Your Roadmap to Cloud Computing, Big Data and Linked Data.