- 05 May, 2015 01:54
Computer languages have a strange shelf life. The most popular among them experience explosive growth driven by herding behavior akin to that of the fashion industry. But when they fade from the spotlight, something odd happens. Instead of disappearing like a pop song or parachute pants, they live on and on and on and on. The impetus behind this quasi-immortality? It's often cheaper to maintain old code than to rewrite it in the latest, trendiest language.
In the past, tending to an old code base was a lonely experience, not unlike living on a desert island. The job was to keep everything running with virtual duct tape and baling wire. Old tools and old compilers were coddled and fussed over because they were essential to keeping the old code alive. Old libraries were treated like family heirlooms, especially if they came with source code.
That's changed in recent years with the emergence of new cross-compilers and interpreters. Suddenly the old can be brought into the present, not with perfect harmony but with enough integration that curators don't need to feel like they're living and working alone. The right tools can follow Ezra Pound's dictum to "make it new again."
The tools are far from perfect, but they tantalize despite their flaws. Rewriting remains a challenge, as it usually means understanding code that was written when disk space was expensive and comments cost real money. While putting in the effort can yield great benefits and erase some technical debt, we often don't have that luxury. Instead, it might be simpler and faster to fiddle with these cross-compilers, translators, and emulators to modernize old code bases than it would be to collect a big team steeped in dying programming languages to pick through old code and rewrite everything.
The developer calls it a work in progress and lists a number of parts that don't function yet, but there are enough juicy examples to show promise, like the ability to enable dusty Cobol code to suck data from MySQL and spit out HTML to power a modern Web app.
Fans of Scheme will find a number of implementations like BiwaScript, Moby Scheme, and nconc.
While it's common knowledge that Apple and Microsoft borrowed heavily from the ideas circulating at Xerox PARC, it is often forgotten that the Xerox PARC researchers also revolutionized programming languages. When most programmers were fussing with GOTOs and subroutines, Smalltalk was one of the first languages to bring object-oriented options to the world.
Before there were full IDEs to teach kids to code with languages like Scratch and Alice, there was Logo. There's still Logo today if you want to use Logo Interpreter in your browser and have all of the fun of its stripped-down syntax built when bandwidth was measured in baud and every keystroke counted. It has a simple elegance that can't be matched with all of the modern tile-dragging and button-clicking.
The '70s never died. Not only can you emulate your old Commodore 64 games on the Web, but you can keep that 1970s Basic code running too. Well, that may be a bit of an exaggeration because there have been so many dialects over the years. But you can still create something new and current with all of the simplicity that made Basic popular.
Another commercial option is SpiderBasic, a modern version said to be built in the tradition of PureBasic. It offers access to all of the HTML5 and WebGL hooks necessary for building a modern, multiwindow Web app.