The A-Z of Programming Languages

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.

Perl - Larry Wall (sidenote on Higher Order Perl)

Been a while between articles and it's good to see Naomi crank out another interview. I can't say that I buy into the ethos of Perl, but the Perl community does have a lot of quality programmers and produces interesting results.

While I'm touching on Perl, I would also note that Mark Jason Dominus has made his book Higher Order Perl available for download on his website. Probably deserves to be put on the front page, but I don't have time to work my way through the book. A quick trundle through the book made me think that he was influenced by SICP (which would be a good thing).

All hail SICP

I proudly acknowledge a tremendous debt to SICP. As I said in the preface:

This book was directly inspired by two earlier books: ML for the Working Programmer, by Lawrence Paulson, and Structure and Interpretation of Computer Programs, by Harold Abelson and Gerald Jay Sussman.

F# - Don Symes is up.

The A-Z of Programming Languages: F# <http://ComputerWorld.Com.Au/article/271034/>.
Microsoft researcher Don Syme talks about the development of F#, its simplicity when solving complex tasks, the thriving F# community and the future ahead for this fuctional programming language.

Falcon - Giancarlo Niccolai

The A-Z of Programming Languages: Falcon. Was thinking that the author of Falcon is on LtU, but I could be misremembering? A language that's still somewhat early in development, it's interesting to see things when they are a work-in-process (not that the work on any PL is ever really complete).

Along a similar line, I see that O'Reilly just published Masterminds of Programming Languages: Conversations with the Creators of Major Programming Languages. (Can't help but think that LtU has made the PL people into rockstars). Of the listed languages/people, I'm looking forward to the Milner section the most. But we shall see if the book form is more in depth than Naomi's series.

Somebody should review this

Somebody should review this book for LtU!

Erlang - Joe Armstring and Tcl - John Ousterhout

Series has been taken over by Kathryn Edwards. Nice to see ComputerWorld Australia keep it moving forward.

Scala

Bring up to date: Scala, Clojure, Groovy, Arduino and AWK

Been busy and in lurker mode, so it's been a while since I've posted on LtU. The list of articles has been updated.

Objective-C

Brad Cox doesn't seem to have much respect for PLs:

Using programming languages is like mud brick architecture. The future of mud brick architecture isn’t better mud mixers (programming language). It is moving to real bricks, i.e. tested, certified, trusted components.

It's a reasonable analogy,

It's a reasonable analogy, except that the mud in this case is used to make the bricks.

Mud can also be used to bind

Mud can also be used to bind the bricks together (ah...not a great solution though).

Analogies are mostly useless.