small medium large xlarge


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
  • Ada – Embedded systems for pros.
  • AppleScript—equal parts fun & frustrating, mysterious scoping, and rules that bend with every application
  • Assembly—is it really OK for developers to neither know nor care what registers are? (Yes.)
  • Bytecodes (JVM or .NET) – ‘cause its not OK not to know. The metal is virtual now.
  • COBOL—all caps all the time
  • Clojure—it’s like Lisp, only better
  • Common Lisp—everything since copies some of its best ideas
  • C—because we all know what’s in the books, but in the real world it always looks WAY different
  • C++ – because of its widespread use, like to integrate it with ObjC/iPhone.
  • C# – Not because it’s a favorite, but because it’s common.
  • D – because it’s the most valiant effort since Ada and has something for everyone
  • Erlang—concurrency made easy
  • E—understanding object-capability will transform how you think about safety v.s. power
  • F#—functional and OO on the CLR. OCaml derivative for .NET “corporate” programmer types
  • Factor—a stack-based language for the new millennium
  • Forth—Stack-based functional language
  • Fortran-55 years and STILL the standard for scientific computing
  • Groovy-A powerful dynamic language for the JVM.
  • Haskell—Static Typing as if you meant it and functional programming at its purest
  • Haxe – For his unique support of ActionScript, Javascript, PHP, C++ and NekoVM all within a single language.
  • Javascript—runs in more places than any other language. First-class functions and prototyping make Javascript more powerful than many realize.
  • Lua—JavaScript competitor in game sector
  • OCaml
  • Object Pascal / Delphi-Pascal is a learning language and an important part of programming history. Further, Anders Hejlsberg led the language development of Delphi and then went on to create C#
  • Objective-C—C with s-expressions and the object-model is so much like Ruby; also because of its relationship w/ Cocoa
  • Perl—the camel’s back has yet to be broken
  • Prolog—it’ll blow your mind (if you can understand it)
  • Python—mature, simple, defacto scripting language of the future
  • REALbasic (REAL Studio) – an excellent cross-platform development tool based on Object-Oriented BASIC; compiles native binaries for Windows, Mac OS X, and Linux
  • Ruby—Simple and elegant, the way O-O was meant to be
  • PLT Scheme – “is to Scheme what Scheme is to LISP and Algol 60”- Matthias Felleisen (7 Aug 2009)
  • Scala—all the buzz at JavaCon this year
  • Smalltalk—by popular demand. objects all the way down with powerful browser and debugger—in 1972
  • SNOBOL4 – pattern matching more powerful than regular expressions
  • regular expressions
  • R – for statistical computing and graphics, an implementation S.
  • Fan : Fan code runs on the Java VM, the .NET CLR, and JavaScript in the browser.
  • Oz language, which supports declarative programming, object-oriented programming, constraint programming, and concurrency as part of a coherent whole.
  • Eiffel – OO, design by contract, null safety.
  • XSLT
  • SQL

Are we assuming that the audience already knows C, Java (or C#), and Ruby?—No assumptions; just tell us what you’d like to see.

Let’s leave the surveying until the list has settled down some…

A reader has an informal survey here (but let’s not use it yet)

But how do you add your language to the survey?

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.

  • 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

Page History
  • V64: Thi Teu [about 5 years ago]
  • V58: Brian Adkins [over 8 years ago]
  • V57: Alex Varin [over 8 years ago]
  • V56: John Donoghue [over 8 years ago]
  • V55: Bruce Tate [over 8 years ago]
  • V54: Stephen Paul De Gabrielle [over 8 years ago]
  • V53: ラッコ [over 8 years ago]
  • V52: Frederick C. Lee [over 8 years ago]
  • V51: Stephen Paul De Gabrielle [over 8 years ago]
  • V50: Martin Dengler [over 8 years ago]