The A-Z of Programming Languages

Computerworld is undertaking a series of investigations into the most widely-used programming languages.

Here are the interviews in the series up to this point.

(I'll try to update the list as they become available).

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

That's the first time I saw

That's the first time I saw "Ada" and "most widely used" in the same sentence...

Good quote from Tucker

"Don't believe anyone who says that we have reached the end of the evolution of programming languages."

Intertextuality

Aho says: "One of the things that I would have done differently is instituting rigorous testing as we started to develop the language. We initially created AWK as a 'throw-away' language, so we didn't do rigorous quality control as part of our initial implementation." Interestingly, one of the nice things about Ada is the existence of ACATS. Note that simply having tests in the compiler code implies a single implementation, whereas the Ada approach is not only a way to test the compiler, but also a way of ensuring conformity of compilers to the language standard.

Conformance tests

Ada is not alone in doing this. Dylan and Perl 6 are another examples. Though, Ada might be the first one.

Of course. I didn't mean to

Of course. I didn't mean to imply it was the only one. But I think it was the first widely used language to have such an extensive test suit, as far as I know. While not a replacement for formal semantics, I think given the period in which the language was developed, and the complexity of the semantics, this was the important and highly commendable.

Next one is up: FORTH

Thanks

Forth added to the list.

INTERCAL - Don Woods added

One of the founding esoteric languages.

Intercal one o f themost

Intercal one o f themost widely-used programming languages? I think not.

It is one of the most widely used...

...esoteric languages...

(For differing definitions of 'used' and 'widely' and 'most'). :-)

(Allowing for a comic break, I do think the author of INTERCAL lost some of his humor along the way). :-(

no Algol or APL :-(

I guess they had to stop somewhere, and the first History of Programming Languages conference already covered them extensively (the proceedings are among the most fascinating and amusing things I ever read about programming languages).

YACC - Stephen C. Johnson added

Wonder if we lose some of the feel for grammers/parsers because we no longer do them on paper by hand. :-)

Ada OO history?

anybody know what the different designs were for OO in Ada? what was Ichbiah's design?

Modula-3 - Luca Cardelli added

I'd have preferred that Modula-3 had become the default systems language, but history was not kind to DEC.

Of course, the pretense of "widely used" can be questioned for this series... But anything that draws Luca Cardelli out should be commended. :-)

Agreed.

I liked Modula-3 a lot, and it inadvertently got me into functional programming... Most universities that taught it also taught ML, so I had to check that out.

ML was a revelation. I was instantly hooked, though it took about a year and a half to really get competent with a whole new paradigm.

D - Walter Bright added

Best quote from the article: "A language that is not under development is a language that is not being used."

JavaScript - Brendan Eich added

The longest article in the series so far. I especially like the following Q/A:

Were there any particularly hard/annoying problems you had to overcome in the development of the language?

Yes, mainly the incredibly short development cycle to prove the concept, after which the language design was frozen by necessity. I spent about ten days in May 1995 developing the interpreter, including the built-in objects except for the Date class (Ken Smith of Netscape helped write that by translating Java's java.util.Date class to C, unintentionally inheriting java.util.Date's Y2K bugs in the process!)

I spent the rest of 1995 embedding this engine in the Netscape browser and creating what has become known as the "DOM" (Document Object Model), specifically the "DOM level 0": APIs from JS to control windows, documents, forms, links, images, etc., and to respond to events and run code from timers.

I was the lone JS developer at Netscape until mid-1996.

Lua - Roberto Ierusalimschy added

One aspect about Lua that differs from most other languages is that it was designed to be an embedded scripting language. This meant that the language has pressure to stay relatively small, but with the benefit that you could shift into another programming language if you needed to do something beyond the confines of Lua. In this respect, Lua has had a different evolutionary path than almost any other PL.

...we have had the luxury of avoiding hard/annoying problems. That is, there have been many problems along the way, but we never had to overcome them; we have always had the option to postpone a solution.

Haskell - Simon Peyton Jones is up!

Seems to be the longest interview yet: <http://ComputerWorld.Com.Au/index.php/id;1974033854>.

Excellent interview

Added to the links above. Posted to the home page.

C# - Anders Hejlsberg added

Anders identifies the three big trends: (a) declarative programming; (b) dynamic programming; and (c) concurrency. Linq and other additions are C# 3.0's answer to the first. Hints that C# 4.0 will include changes for more dynamic programming. But no reference on how C# will attempt to tackle concurrency.

If I had to name the 3 big trends that are going on in the industry that we take an interest in and get inspiration from, I would say the first is a move towards more declarative styles of programming, and you can sort of see LINQ as an example of that. All the talk we have about domain specific languages, that’s one form of declarative programming, and functional programming is another style of declarative programming. I think those are going to be quite important going forward and are certainly areas that we will invest in, in C#.

Dynamic programming is seeing a big resurgence these days, if you look at phenomena like Ruby and Ruby on Rails, these are all of a sudden very popular, and there are certain things you can do with dynamic programming languages that it would be great to also have in more classical languages like C#. So that’s something we’re also looking at.

Lastly, I would say that concurrency is the big thing that you can’t ignore these days because the mechanics of Moore’s law are such that it is no longer feasible to build more powerful processors. We can’t make them faster anymore because we can’t get rid of the heat, and so now all the acreage on the chips is being used to make more processors and all of a sudden it’s almost impossible to get a machine that doesn’t have multiple CPUs.