Yesterday, an inquiry came up internally over e-mail about whether a .NET implementation of the PL/I language existed.
This caught my eye because PL/I was the first language that I encountered on a mainframe (at the University of Toronto, from whom I have a piece of paper ascribing that my "higher learning" took place there - occasionally, possibly, somewhat). I wasn't particularly fond of PL/I but it was my first mainframe language. Actually, to be entirely accurate, it was really SP/k - a series of PL/I subsets (with k cleverly iterating from 1 through 8) that was devised for teaching purposes by some of the local professors who were also subsequently responsible for the Concurrent Euclid, Turing and other languages.
It seems that PL/I, one of the third-generation procedural languages, is still going strong after almost four decades. From its IBM origins, it has spread to a good number of platforms and operating systems. It has also won over its adherents, see this blow-by-blow comparison against the C language from one of the staff at the Computing Center of the University of Munster.
Back to .NET, it seems there is a research group working on such a PL/I implementation which they have named PL/IL for Programming Language - Intermediate Language. Their plans seem pretty ambitious too - object oriented extensions, Mono CLR support, .NET Framework class support, reflection, structured exception handling, etc., even LISP extensions.
So I was having dinner last night with my friend, esteemed author and software legend, Rocky Lhotka (perhaps I should make that self-proclaimed software legend as I don't actually see his name in lights on the Software Legends Web site...) The topic of computer languages came up as he has been kicking around the idea for a while now of creating a Logo-like language. His purpose behind this is ostensibly to teach programming to his young son but possibly as a project for inclusion in a book that we are collaborating upon together. I'm not sure how many developers in the general population ever aspire to create their own computer language though - notwithstanding Apress having just published a book entitled Build Your Own .NET Language and Compiler...
Rocky mentioned that a colleague of his at Magenic maintains a Web site with listings of .NET language implementations from APL to Boo to Cobol to F# to Lisp (hurray, it's a personal favorite language of mine for its idiosyncracies and cool, fun quotient) to Logo to Pascal, Prolog, Python, RPG and more.
I don't know about you but I'm just not convinced that there is a purposeful, pragmatic need for everyone to dream up their own private, boutique computer programming language. Maybe I'm revealing too much of my healthy personal cynicism when it comes to academia but aren't there already enough computer science faculty with excessive free time on their hands and sufficient hubris to think that they can come up with a better mousetrap than all the other research institutions all around the world?
This isn't because I have a favorite pet language to champion as the penultimate general purpose programming language, as Rocky initially presumed. I just think there is plentiful choice among programming languages already existing in the world. These have been time and experience tested and successfully proven their merit on countless occasions.
My vote says just pick one (or maybe a couple, if you really have ADD), understand them well and get on with the programming task at hand. Aren't the real challenges we face developing each application interesting enough already? Let's not re-invent the wheel by imagining some hypothetical need for yet another computer language we don't have time for (or at least leave it to the academics who do)...