{"id":310,"date":"2011-04-18T21:52:58","date_gmt":"2011-04-18T21:52:58","guid":{"rendered":"http:\/\/www.syslog.cl.cam.ac.uk\/?p=310"},"modified":"2011-04-18T21:57:01","modified_gmt":"2011-04-18T21:57:01","slug":"functional-programming-gone-wild-in-the-srg","status":"publish","type":"post","link":"https:\/\/www.syslog.cl.cam.ac.uk\/2011\/04\/18\/functional-programming-gone-wild-in-the-srg\/","title":{"rendered":"Functional Programming Gone Wild (in the SRG)"},"content":{"rendered":"
There have been a bunch of projects related to functional programming going on in the SRG recently, and many of them relevant beyond \"just\" the programming language crowd.<\/p>\n
<\/p>\n
In OCaml<\/a> land, I attended the OCaml 2011 Meeting<\/a> where users from all over the world get together in Paris. There is a full report<\/a> on my personal blog, but overall I was struck by the sheer portability of OCaml. Highlights below...<\/p>\n There were many more developments of course. Read my full review<\/a> for much more.<\/p>\n Meanwhile, Jeff Epstein at the Computer Laboratory has written a paper with Andrew Black and Simon Peyton Jones from Microsoft Research. He has ported Erlang's programming model to Haskell, including serialised wire-level continuations for distributing computing in strongly typed Haskell. Read their paper on \"Haskell for the cloud<\/a>\"<\/em> and send them comments.<\/p>\n Derek Murray has also been spotted<\/a> integrating our CIEL<\/a> distributed execution engine with Scala<\/a> on the JVM, for a full-on distributed, fault-tolerant programming experience. It's not quite ready for public distribution yet, but stay in touch for more! And while not strictly anything to do with functional programming, folks interested in multi-core issues should enjoy Malte<\/a>'s paper on \"Condensing the Cloud<\/a>\"<\/em> which reports on porting the CIEL engine to the non-cache coherent 48-core Intel SCC<\/a>. Jeff and Malte's work demonstrate (from different angles) the value that functional programming can potentially bring to using future chip architectures that cannot maintain a coherent cache model as the number of cores rises, and message passing becomes increasingly important.<\/p>\n On the conference front, Yaron Minsky<\/a> and I will be co-chairing the Commercial Users of Functional Programming<\/a> workshop at ICFP<\/a> in Tokyo this September. The event is definitely the highlight of my conference calendar: a very diverse set of academics, industrial types and web hackers all mingle and argue till the early hours. There is also an expanded tutorial series (where David Scott<\/a> from Citrix and I plan to hold a session on constructing functional operating systems<\/a>!), as well as BoF sessions for nailing down ideas with a smaller group of people.<\/p>\n The deadline for presentation proposals is June 15th (just a short abstract and bio required), so head over to the Call for Proposals<\/a><\/em> and get writing! If you are curious about past events, check out the videos<\/a> from previous years. Two of my personal favourite talks are Eugene Letuchy talking about how they used Erlang at Facebook<\/a> to build the popular chat functionality, and Marius Eriksen<\/a> describing scaling Scala for the geo-database at Twitter<\/a>.<\/p>\n Finally, I'm on the program committee for the ML Workshop<\/a> this year, also co-located with ICFP (yeah, that's a busy week). If you're doing anything interesting related to the ML family of languages, then consider submitting here to discuss your work in a friendly, informal setting. Oleg<\/a> is usually present, so you might want to purchase this t-shirt<\/a> for your talk though...<\/p>\n","protected":false},"excerpt":{"rendered":" There have been a bunch of projects related to functional programming going on in the SRG recently, and many of them relevant beyond “just” the programming language crowd.<\/p>\n","protected":false},"author":13,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[7,29,30],"tags":[36,37,34,35],"_links":{"self":[{"href":"https:\/\/www.syslog.cl.cam.ac.uk\/wp-json\/wp\/v2\/posts\/310"}],"collection":[{"href":"https:\/\/www.syslog.cl.cam.ac.uk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.syslog.cl.cam.ac.uk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.syslog.cl.cam.ac.uk\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/www.syslog.cl.cam.ac.uk\/wp-json\/wp\/v2\/comments?post=310"}],"version-history":[{"count":8,"href":"https:\/\/www.syslog.cl.cam.ac.uk\/wp-json\/wp\/v2\/posts\/310\/revisions"}],"predecessor-version":[{"id":317,"href":"https:\/\/www.syslog.cl.cam.ac.uk\/wp-json\/wp\/v2\/posts\/310\/revisions\/317"}],"wp:attachment":[{"href":"https:\/\/www.syslog.cl.cam.ac.uk\/wp-json\/wp\/v2\/media?parent=310"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.syslog.cl.cam.ac.uk\/wp-json\/wp\/v2\/categories?post=310"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.syslog.cl.cam.ac.uk\/wp-json\/wp\/v2\/tags?post=310"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}\n
##<\/code> operator, making it easy to interoperate with existing code. The compiler performs a number of dataflow optimisations to make the output Javascript efficient, and (when combined with optimisers like V8<\/a>), outputs code that is nearly as efficient as hand-written Javascript.<\/li>\n