SevenLanguages

We’re starting a new book entitled “Seven Languages in Seven Weeks,” by noted author Bruce Tate. Bruce will show you the important parts of each language, and help you get up to speed quickly.

You can help us pick which languages to include. Do you have a favorite language you’d like to nominate? If so, post it on this wiki page. If you don’t see your favorite, please add it. Be sure and add “why” you think your choice is particularly cool and noteworthy. Next week, we’ll put it to an official vote.

A dataflow language – Labview, Oz, VHDL, etc

APL – Mere exposure to it makes you think.

Actionscript 3—Modular language like javascript (but much more advanced) based on ECMAScript

You can’t, cause that would invalidate the previous votes. Just start a new vote

I’ve always felt that such a survey book should factor the languages into expressiveness categories. All of the languages below are Turing-complete, so nothing is impossible, but each language should demonstrate one or two things it can do easily that are difficult in the other languages, like expressing closures or list comprehensions in Ruby vs Java, or rules in Prolog vs Ruby, or garbage collection in C vs more modern languages, etc.

I think if you limit yourself to just seven languages, you may very well pick seven “popular” languages (or languages which will sell books (not a bad thing)), but you’d miss out on the rich history of how they got to be that way, and you’d lose some comparisons that are essential to understanding the trade-offs inherent in language design.

Ruby – pure objects, practically perfect, but slow

Smalltalk – same as ruby, but with persistent image

Lisp – here’s the periodic table; make broccoli

Scala – functional and picking up in importance

Javascript – because it’s everywhere

Prolog – logic via inference engine, implicit control

APL – cool character set, and a whole different way to think

Java – someone’s got to pay the bills, but JITted code is interesting

C++ – if it’s got to be fast

Assembler – no one knows what a register is anymore

I like this train of thinking. We should definitely not build a list of the x most popular languages. A variety of paradigms is important. -bt

So far we seem to have proved that we collectively cannot create a list (we’ve ended up with two lists at least twice) and think that “assembler” is a (one) language. Despair.

No, I think we are on the right track. We can look at these lists and the ones below and come up with something like 10 good candidates.

Here is a list of 14 languages that Matz showcases. Granted you need to know Japanese, but it might be interesting to see.

http://jp.rubyist.net/magazine/?0008-Legwork

Python

CLU

Io

Tcl

Groovy

Dylan

Icon

Forth

Nadeshiko

Erlang

C++

APL & J

Prolog

Whitespace

I like this list. Matz built a beautiful language because he knew about so many different programming paradigms, and his mind was open to them. -bt