Home > software, tech > What programing languages should one know

What programing languages should one know

Today I came across the article What Programming Languages Should You Know? by David Chisnall. David’s list of essential programming languages include C, Smalltalk, Lisp, Erlang, Haskell and Prolog.

Of these, I know only Lisp (Scheme, to be precise). Eric S. Raymond’s famous quote (David also quotes it):

Lisp is worth learning for the profound enlightenment experience you will have when you finally get it; that experience will make you a better programmer for the rest of your days, even if you never actually use Lisp itself a lot.

influenced me to try the language. Reading SICP and EoPL was useful. I also worked through most parts of PCL also.

I did some C during college, but I never learned the language well enough (I know enough to know that I don’t know it well enough) :). Tom Drake, who works as a senior architect with Tavant, once advised me that learning C is important whatever language you actually work with. Tom should know – he has worked with lots of different languages and systems in his career. I haven’t followed that advise so far, largely because you don’t come across articles saying “How C cured cancer!” on reddit. 🙂 One these days, I should go learn some C, I guess.

I am trying to learn Haskell – I have been following tutorials on the web, and have been making some progress. A friend who is returning from US is bringing a copy of Programming in Haskell, and I should get it by next month. I had worked through a draft copy of the book, and I found it lot more approachable than other tutorials I found – so I am looking forward to reading the actual book. Erlang also looks to be an interesting language, and I am curious to understand what all the cool kids are talking about its concurrency primitives. I haven’t read much about Smalltalk and Prolog (except some videos I watched about the Seaside web framework in Smalltalk).

It amuses me to note that both programing languages I have used extensively in my professional career – Java and JavaScript – do not make the list. But things I have learned in other languages had helped me understand these two languages better. Knowing Lisp, in particular, has helped me understand JavaScript. I have briefly dabbled with Ruby, Python and Groovy too. I have to agree with David on:

The more languages you learn, the easier it is to pick up a new one. Eventually, you start thinking of every new language as just a set of modifications to a language you know already.

So, what are the languages have you learned or are planning to learn?

Advertisements
Categories: software, tech
  1. April 12, 2007 at 3:54 pm

    Any and every, for the most part 🙂

  2. April 12, 2007 at 5:20 pm

    Why isn’t C# in the list ? 😉

    My languages-to-learn list includes Ruby and Lisp in the long run and JavaScript in the short run (because I will need it for work soon).

    BTW, I really think that one should start from Assembly language. My first programming language was C++ but I really got interested in programming while learning about Microprocessors and Assembly language. Maybe its just me but I like to know what really happens to the code I write, how things really work and how all these complex programs finally do everything they do in a black and white world of 0 and 1. For that, I believe, you need to know Assembly language.

  3. April 12, 2007 at 5:40 pm

    @Pradeep => C#? F#, maybe! 🙂

  4. vnjug
    April 15, 2007 at 1:20 pm

    PHP is very important as well

  5. June 26, 2007 at 1:55 pm

    Did not know about your blog!..
    AFAIC my list is,
    [Joy http://www.latrobe.edu.au/philosophy/phimvt/joy.html%5D
    – Based on combinatory calculus rather than L-calculus. You can see how powerful a language can get when you simplify the core.

    Self|Smalltalk: – same reason as yours,

    TCL Rebol and Scheme : – for the pure joy of syntax 😀 due to the homoiconicity.

    Erlang, Haskell – I will add Oz/Mozart to it. (Concepts Techniques and Tools has the same standing as SICP)

    Lucid|Lusture – Dataflow.

    Occam – because of Pi calculus.- (I have not learnt it yet though).

  1. April 14, 2007 at 10:22 am
  2. May 24, 2007 at 5:09 pm

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: