5 programming languages to learn

October 12, 2009

I am going to improve my knowledge / learn afresh the following 5 languages in the next few months.

  • javascript
  • curl
  • c
  • erlang
  • c#

Javascript is used more and more nowadays, with powerful frameworks such as jquery and prototype and improved browser support. Internet users expect a rich internet experience nowadays and often this is made possible by a sprinkling of javascript. Whilst I have a fairly strong javascript knowledge, I would not consider myself to be accomplished. I will try and write a useful jquery plugin to further my knowledge.

Curl is a command line tool for transferring files with URL syntax, supporting FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS and FILE. curl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate, kerberos…), file transfer resume, proxy tunneling and a busload of other useful tricks. Command-line network tools interest me (wget is ace) so I want to learn curl as I don’t currently use it at all.

c is a low level compiled programming language. I used it for graphics programming at university but haven’t touched it since. I want to refesh my memory, maybe I will try writing a some c code which interfaces with a ruby script or something along these lines.

erlang is a general-purpose concurrent programming language and runtime system. The sequential subset of Erlang is a functional language, with strict evaluation, single assignment, and dynamic typing. For concurrency it follows the Actor model. It was designed by Ericsson to support distributed, fault-tolerant, soft-real-time, non-stop applications. The first version was developed by Joe Armstrong in 1986. It supports hot swapping so code can be changed without stopping a system. Erlang was originally a proprietary language within Ericsson, but was released as open source in 1998. (wikipedia)
Concurrency is deemed to become more important in the future, due to the current trend in processor design. Hence, I am interested to both write some concurrent code but also bend my mind around functional programming once and for all.

c# is deemed the java killer for the “I have a good job with a big company crew.”. I know an increasing number of developers that work in the .net platform. Rather than be ignorant and shout about how good the ruby platform is, I need to sample the delights of .net and specifically c# for myself. I will not however, call Scott Hanselman god.

Will keep you all updated on how I fare in these language related adventures.