Curry on Amsterdam 2018

Curry on Amsterdam 2018

Curry on Amsterdam 2018

Curry On Amsterdam 2018 was a pretty busy venue! With more than 40 speakers choosing talks to attend was hard. This conference series is a meeting point between academy and industry, and indeed the discussions where interesting and involving.

The conference opened with the presentation of Web Assembly by JanVitek and Heather Miller. These guys are trying to make C++ compile to a new back end, which looks much more the JavaScript one. Although in its early age, this project has strong that comes with a proof of soundness (i.e., the specification does not leave any undefined behaviour).

The Curry On conference has also special talks called Chess Timer. In these talks the time is split between audience and .

In the late morning Sunjay Cauligi presented FaCT , the C-based DSL he is constructing to deal with a delicate issue in cryptography: constant time programming. When the information you encrypt is very precious, attackers care about any details that may help them out decrypt your data: the time your functions take to run may give away the algorithm you are using to encrypt data. FaCT propose an approach to fix this for C code while leaving the code maintainable.

John Mumm did the from order theory to let multiple nodes maintain the same mutable piece of data, and let the nodes asynchronously converge to the latest value of the muted data (given that you can allow yourself to present the user with stale data in the meanwhile).

Ron Pressler gave a bit of history of computation, logic and algebra. You can check out his book .

Chris Ford showed how his ClojuScript app can generate sound close to our expectations. He also talked about Mezzo, an Haskell music library written with dependent-types, and about how it refused to compile Chopin's music.

An interesting development is the merging of Rackett and , a Lisp with the Haskell type system or Haskell with Lisp macros. It is not ready yet, but sounds promising!

At the end of the first day, linear types are making their appearance in of the GHC compiler with the polymorphic "lollipop" arrow. Linear types enforce that the arguments of a function are evaluated once and once only. This is very useful for resource management, where IO channels needs to be opened once and closed to not create memory leaks.

The second day opens with shares her attempts to make people write code in order to read it as a poem. Apparently the main challenge was making people agree on translating symbol to common words (is == spelled "equals", "is equal to", "equivalent" or something else?). By the way, apparently some study found that Java and Perl syntax is as difficult to grasp as the one of a randomly generated language!

../media/2018-07-19-curry-on-amstedam-2018/keynote.jpg

After such discoveries, a talk on Akka streams. Arnout Engelen explained the basic attributes of streams such as being non-blocking, asynchronous and capable to handle back pressure.

Manu Sridharan gave some hints on how Uber keeps mobile apps performance up. Reactive programming, Continuous Integration and a research team collaborating with devs full-time are keeping the usability of Uber apps at the top even if they work on pretty old hardware.

Again after lunch a surprise: Dave Thomas shocked everybody by delivering a talk on the lines "Excel tables are the simplest tool ever". Also hitting on K8S, Docker & co. by saying that they lack advanced security measures. A very provocatory and inspirational talk. Most of the speechless people became themselves conservative when hearing Nick Mitchell talk: Serverless Computing with Functions. Running lambdas in the cloud looks cool, but the mechanism has many open issues:

it is not possible to maintain a state for the function to operate upon, containerisation and network latency can make the function waste precious seconds, etc...

After a short break Tyler McMullen gave another Chess Talk, in which the secrets of containerisation were explained. Apparently WebAssembly has the potential of making Docker redundant!

After something very functional . Do you want to query a database? Use a set comprehension! Do you want to reuse a query that you use often and that changes only slightly? Use an higher order function!

It is not ready yet, but very promising.

../media/2018-07-19-curry-on-amstedam-2018/curry.jpg

The conference closed with Steve Francia who read a fascinating report regarding the evolution of the Go language. Apparently we are getting into Go 2.0 through a long series of minor releases. For the Go enthusiasts that are not updated yet: reproducible builds will be available from this August!

And that is all from an interesting conference. Next Curry On will be in London!

P.S. Curry On Amsterdam was very interesting. It needs to be said that the management of the event was approximate: e.g., the registration queues made the event start late, the lunch instructions were not precise, speakers had technical problems such screens and microphones not working properly. Still the quality of the speakers and of the contents made these defects appear unimportant.