Musing on next gen programming languages

February 21, 2007

I’ve been mulling for a while about what programming languages we’re going to be like a few years from now. A current angle I’m taking is to look at the trends in hardware development and conclude that a good programming language for future will make writing concurrent code as easy as possible. When I mentioned this, Andrew Walkingshaw said I should take a look at Erlang.

I’m impressed so far – a simple example of a two thread program with message passing fits comfortably into 30 lines, and you can locate either thread on a local node or a remote node with minor code changes. And I’ve realized something else – if concurrency does end up driving language choice in the way I think it might, then functional languages are going to get a lot more limelight than previously.

Erlang comes from the telecoms world, and many of the current production applications reflect that – multithreaded mail, web and messaging servers. But it’s also easy to see erlang being used in an eScience setting, both to write programs that take advantage of SMP nodes, or to orchestrate batch jobs across clusters (etc etc).

Andrew has also pointed me at Fortress, which is even higher level than Erlang with respect to threading (some operations like “for” loops are implicitly multi-threaded). Another one to check out!

Advertisements

2 Responses to “Musing on next gen programming languages”

  1. mag31 Says:

    Hi Jim,

    for some functional languages that I’ve been looking at try: Haskell, F# (is a .Net functional language developed in Microsoft Cambridge Research labs), and surprisingly C# 3.0 – primarily through the LINQ project (pulling concepts from Cw and F#) – but Microsoft is starting to go functional in a big way.

    Mark

  2. ojd20 Says:

    Interesting news.

    I tried Haskell a while ago and went to a BCS presentation by Simon Peyton-Jones (he was talking about extending Haskell to deal with tree-like data structures efficiently. It made my brain hurt). Have I got the right impression that most of the Haskell development is also done at the Cambridge Research Lab?

    I’m assuming that C#3.0 has functional constructs but remains essentially imperative (like Ruby or Python)?

    I haven’t looked at LINQ for a while, but Jon Udell blogs about it from time to time, so I’ll have to have a read back. What’s the relationship between LINQ and XQuery? Are they similar / equivalent in any way?


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: