C++ is the New COBOL

I’ve spent the last few days coming to grips with this huge, enormous system written in C++.

The more I see of it, the more I’m thinking that C++ is the new COBOL. It worked well during the time of its glory days, but now it’s old, it’s cumbersome, and all of the new features that are being implemented in languages like Delphi, C# or Java, takes years and horrible coding practices to implement in C++.

This current project has classes for everything. It has classes for strings, datetime objects, timestamps, windows, edit controls, everything. Even a scripting language. It is an enormous mass of code built over the years, and the funny thing is that – as time has passed by – most of these classes are now superbly implemented by frameworks such as the .NET libraries, or open source alternatives. At my last job, we built powerful scripting abilities into our products by simply writing a few extensions to an already existing framework called DelphiWebScript, or DWS for short. Unfortunately, it doesn’t seem to be too much maintained any longer, but it works fantastic.

In short, my knees falter and my hands tremble when I see the effort that went into this system, and how much of this effort that could today be replaced by snap-in components.

The world of programming has changed enormously over the past fifteen years. Admittingly, the leap from COBOL to C++ was greater than the next leap from C++ to C#, but it’s a shift of paradigm that cannot be underestimated. Assemblies, interfaces, properties, single inheritence and reflection are but a few of the mechanisms that have ushered in this new paradigm, much thanks to languages like Java or Delphi that has ruthlessly sought to abstract away the ugly details of behind-the-scenes implementations.

In an interesting parallell, pilots in those good, old F-16′s would spend about 70% of their time in the air focused on actually flying the plane, and the remaining 30% would go towards the mission they were carrying out. Fourth-generation fighter planes (like the Swedish JAS-39 Gripen) enable the pilot – as I have heard – to reverse those figures: Flying the plane got so much easier that only 30% of the time now goes into flying. The technological leap from the third to the fourth generation of fighters has marvelously increased the pilots efficiency in the air. No reference to the ugly 4GL term intended (which had everything to do with software like Paradox or Access), the leap from C++ to C# enables the developer to focus on the business end of the implementation, and not about the intricacies of the language itself. The result is cleaner code, and cleaner code is also easier to read.

My hope is that C++, as soon as possible, will be relegated to the ancient software language shelf currently occupied by COBOL and FORTRAN. Few will miss it (and I take no objection if those who actually do miss it, also end up sitting on that particular shelf).

Post a Comment

Your email is never shared. Required fields are marked *

*
*