Monday, November 25, 2013

Programming languages with a historical perspective

There are many thousands of programming languages from the most widely used Java or C to the arcane or forgotten ones, like Euphoria or Ada.  If I want to write their history, I'd have to exclude most of them and select only a few.  But which ones to select, what should be the organizing principle?

I could pick the most popular languages of all time.  Or I could get a list of popular languages of each year and take the top few.  I would probably get a different list depending on the source of the statistics.  A language can be popular in the academic world with many articles and publications dealing with it and without a real presence in applications -- that was the case with Haskell until a few years ago.  Some languages are widely used in a business setting, but they won't show up in a listing of open source projects.

And why select only popular languages.  They probably have a similar story, because they are winners in a similar field.  Java and C# have a lot in common, at least technically speaking.  It may be interesting though to see if they have a different history.  But there are little-known languages which introduced some feature, but somehow didn't make it to become mainstream, like Factor, a modern, stack-based language.

It naturally gives the idea to get a list of programming paradigms and select some representatives for them.  So we could have some object-oriented and some functional languages, sprinkled with some stack-based and vector-based ones.  The list could be balanced by the type systems, so for example object-orientations would be represented by statically typed Java or C# and dynamically typed Python or Ruby.

My aim is to reflect the diversity of languages and the ideas behind them.  But I also want to show what became popular.

Thursday, November 21, 2013

My wishlist (as opposed to my todo-list)

  • Finish Clean code
  • Learn Haskell (for great good)
  • Seven languages in seven weeks
  • Think and write about the history of programming languages
  • Implement my array programming language in IO (or maybe just continue it in Clojure)
  • Explore Prezi, learn Prezi, create prezis
  • Play a little with Zsh, Git
  • Play with SublimeText and decide if I want to move to it. Or stay with Vim. Or stay with Emacs+Evil. Or what?
  • Make my new Mac homey