Welcome to MSDN Blogs Sign in | Join | Help

Programming languages with .NET implementations

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)...

 

Published Saturday, October 16, 2004 7:41 PM by Admin

Comments

# re: Compilatori .NET

Sunday, October 17, 2004 5:57 AM by .NET Tools Blog

# re: Programming languages with .NET implementations

Well written, but I couldn't disagree more! Languages are tools, and I think the real beauty of .net is it allows you to use a range of tools to attack the specific problems represented by a solution

Some personal faves in .net

1) C# - good all around player - meat and potatoes language - this is the primary language we use for UI's and basic code logic

2) P# (prolog) we have very complex rule sets used for filtering equities, we can easily run 1000+ rules against 5000+ companies over 1000+ days - that gets to be a lot of work - Prolog allows us to express this extremely efficiently, it's perfectly suited to this

Some I'd like to see
Squeak Smalltalk - Yeah, I know about S#, but squeak would be nice

FORTRAN - uggh, but some really classy math code is still implemented here, e.g. linpack - it's easier to port this stuff than reimplement it, many people out in the world love linpack but don't dare screw with it


CLOS (Common LISP object system) Metaobject programming - .net understands this, C# is a little challenged

In short, a language can be focused on specific kinds of problems - I do agree that .net VB and .net C# are the same thing with a few syntactic differences, but theres more horses in this race

One other example - Fujistsu COBOL for .net. Yeah, yeah, but it's making it a lot easier for mainframe folk to come to the distributed world. I personally wouldn't touch it, but I can understand it's appeal

Just my 2c - I don't see it as an academic problem, I see it as a problem of tuning a particular tool for a particular problem space - I'd bet you could probably do SPICE for .net even, and that would be a pretty clear example - a language for simulating hardware, and running in an environment where other languages were available to create UIs, generate reports, and do all the other cruft
Sunday, October 17, 2004 7:04 PM by Mark Mullin

# re: Programming languages with .NET implementations

Hi, this is the author of the Build Your Own book.

I have often heard this objection. Of course, we may not need Yet Another programming language, but this doesn't address our need for better compilers.

Furthermore, I have worked in the computer business for 30 years, and I have repeatedly heard that we don't "need" various things.

I'll never forget a supervisor at Motorola in 1979 informing me that the developers of the first cellphones didn't "need" a compiler running on their test Z80 (the cellphone was based on the extinct Zilog-80 chip), and that they should be content to use IBM and TSO. She said "all possible compilers are already written".

Of course, this was just as a penniless French immigrant was developing Pascal for micros, etc., etc.

In the 19th century, inventors were told "it can't be done". In the 21st, eager beavers are told "it has been done" and "don't reinvent the wheel".

But even if we don't need anudder programming language (such as the one I'm developing, The Language of the Gods) or another compiler, I have discerned a need for the mere ability to write a parser and interpreter QUICKLY when the user's needs (in law, banking and many other applications) change so quickly, and are so complex, that the user is best served with a responsive way to specify the business rules in real time.

I've solved real business problems simply by using parsing and interpretation as a tactical gesture, and an example appears in my book where I show how to make the owner of Loans for the Honest Poor happy, by letting HIM specify the rules for various forms of microcredit.

Most perniciously, it appears that the organizational Dilbert psychology (gee, it's been done, so we better appoint a study group to stare at the problem until we find a zero cost package, or something) was a factor in Sep 11.

Right, where's my tin hat. But here are the known facts.

Colleen Rowley was an FBI agent on the trail of several highjackers including Zacharias Moussaui, a French citizen dumped from the final team who was detained after Sep 11.

But as Ms. Rowley testified before Congress in 2002, her team was hamstrung in part by the FBI data base they used to track suspects.

They could enter the equivalent query to terroristSuspect, and the equivalent query to attendsFlightSchool. But they could not And (or Or) the clauses together.

When I read her testimony, I wondered why some programmer wasn't appointed to write, in a day, a (1) scanner to parse the basic phrases, a (2) simple, top-down, recursive descent parser, and (3) an equally simple stack interpreter as I'd done in several languages (including Cobol)...without telling the boss.

Of course, since I've worked in organizations like the FBI, I realized that no good deed goes unpunished, and that not everybody is willing like me to try rocking the boat.

I think the basic fear is that if programmers are too self-empowered they will interfere with management. The fear would not exist in a society in which there was less us and them and more partnership, one in which programmers don't have to shuttle between being a partner and being a transcriber of a management "vision" in a crazy fashion.

Compilers are a unifying paradigm across many application boundaries, because many users don't want a "solution" cast in concrete.

They want a language for talking about the solution.

"Business rules" don't have to be code buried in Source Safe (eek) or cvm. They can present to the user transparently as she goes about her business, and the system can even ensure their health in the form of non-contradictory and complete rules through symbolic execution.

Unfortunately for me, however, this idea generates practice and not product, because it moves from code to a world in which "the rules" are known to and assented to by all...not hidden in code. I end up a teacher and not the builder of a better mousetrap who has to pay the rent.
Friday, November 05, 2004 5:54 AM by Edward G. Nilges

# atmosphere the developer blog of Bernard Wong Programming languages | Paid Surveys

# atmosphere the developer blog of Bernard Wong Programming languages | debt consolidator

Anonymous comments are disabled
 
Page view tracker