DEV Community

Discussion on: What's gotten better in programming languages

Collapse
 
eljayadobe profile image
Eljay-Adobe

Programming languages are tools. Some are better suited than others for certain kinds of problem domains.

Over the last 5 decades, I've seen the rise of object oriented programming languages as an alternative to procedural programming languages, and then the rise (still rising) of functional programming languages as an alternative to the other two paradigms. And perhaps a renaissance of the very venerable programmer's programming languages — LISP, Scheme, Clojure, and friends.

I've seen newer programming languages with incredible expressivity and concise syntax.

I've seen the addition of (usually domain specific) declarative programming languages, such as XAML for WPF.

I've seen attempts at making domain specific languages easier to create and maintain, such as JetBrains MPS, or Justin Chase's meta#. And I do believe that in the next decades we'll see an explosion of DSL solutions for real applications and real world problems.

I've seen the evolution of C# to Spec# to Sing# to M# (for Midori, not the other M# which is totally different but same name). Then all of that cumulative awesomeness pitched in the dumpster. Alas.

I've seen the embedded scripting engine Lua spread like wildfire, because it hit the sweet spot of functionality and small footprint and extensibility.

I've seen the war for the interwebs being fought for domination by Flash, Java, and Silverlight to win the hearts and minds. And all three of those giants were toppled by JavaScript, the little engine that could. JavaScript, a language designed to embedded teeny-tiny snippets of event handling glue code to do relatively simple DOM manipulations in response to those events. Now it's being leveraged to create giant MLOC applications.

I've seen the ping-pong CPU technology going between CISC to nRISC (i.e., 6502) to CISC to RISC to CISC, and all the assembly language evolutions and revolutions (Alpha, SPARC, PowerPC). And the enormous computing power and potential of the GPU, which is still vastly underutilized by most programming languages.

I've seen the rise of virtual machines, such as JavaVM and .NET, and the vibrant ecosystems for those platforms and the many languages for those platforms.

I've seen the behemoth C++ grow and evolve in both great and puzzling ways, sometimes with seemingly haphazard and incoherent syntax and rules. Struggling for backwards compatibility, yet sometimes falling short, and in my opinion would be better for C++ to stop pretending to be C compatible and make a clean break of it.

In summary, a lot has gotten better. But as an industry, we're still in the stone age. We're making bespoke / haute couture software. We don't have standardized parts. We're not what I'd consider to be at the craft guild stage as an industry, let alone engineering stage. The future is bright, and there is still a lot to be done.