Skills do matter

Yesterday I attended the Skillsmatter Functional Programming Exchange where there was a sequence of really interesting talks.

The day started with Simon Peyton Jones giving a good introduction to the issues around multi-core concurrency and parallelism. The talk was really entertaining and brought up a great number of interesting points. The presenter obviously emphasised Haskell as an ideal language for experimenting with various solutions to the concurrency problem. He had some great remarks concerning locks and how hard they are to use. “Implementing a double ended queue on a uniprocessor is an undergraduate problem; on a multi-processor it was until recently a conference paper”. GHC has been extended to offer all kinds of solutions – low overhead threads and an _epoll implementation to allow large numbers of outstanding requests, software transactional memory (where he emphasised that Microsoft’s CLR STM failed owing to the nature of the runtime with the complication of too much mutable state), and also Erlang like isolation models to control the interaction between agents and allow graceful handling of failure. The talk covered the compilation of a subset of Haskell to run on a GPU and also covered data parallelism and nested data parallelism. In the case of the latter, there is a lot of research going on in this area. All very interesting and thought-provoking.

Another talk that mentioned Erlang was the talk on the Akka, a scalable Actor library implemented as a library in Scala. The talk emphasised that the Actor model allows scaling, both within the processes and across machines using remote Actor references. Actors can be linked in the style of process linking in Erlang, – this allows processes to fail at which point other linked processes are notified and recover from the failure.

Adam Granicz also did a really good talk on WebSharper. This product allows you to write F# code inside Visual Studio. The F# compiler will compile it and then the WebSharper tools can translate some of the code into Javascript allowing it to run on the client. Applications mark which functions should run on the client and which should run on the server, and the WebSharper libraries will take care of the necessary remoting calls between the two sets of code. Too many questions meant that the presentation had to be cut slightly short, but the application looked really powerful, with composable formlets making it easy to abstract over pieces of Web GUI.

There were several other good talks, including a talk by Simon Cousins on how his company started using F#, seamlessly integrating it  into an existing C# application.

This entry was posted in Computers and Internet. Bookmark the permalink.

Leave a Reply

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

You are commenting using your 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