Kresten Krab Thorup, Hacker, CTO of Trifork, GOTO Host

Kresten Krab Thorup

Biography: Kresten Krab Thorup

Kresten Krab Thorup is CTO of Trifork, a public Danish company providing software solutions to government and financial services providers.  Trifork is also creator of the long-running JAOO conference, and co-creator of QCon.  As Trifork CTO Kresten in responsible for technical strategy, and spends most of the time acting as internal consultant, researching future technologies, as well as being editor for JAOO and QCon conferences.  Kresten has also been a principal contributor to Trifork's own Java EE certified application server "Trifork T4", where he authored the built-in CORBA ORB, a custom Java RMI implementation (now part of Apache Yoko), the transaction manager, the database connection management system, and the Java byte code rewriting subsystem.

Kresten has been a contributor to several open source projects, including GCC, GNU Objective-C, GNU Compiled Java, Emacs, and Apache Geronimo/Yoko. Before joining Trifork, Kresten worked at NeXT Software (now acquired by Apple), where he was responsible for the development of the Objective-C tool chain, the debugger, and the runtime system.  Kresten was on the committee for JSR-14 (adding generics to Java) which was closely related to the subject of his Ph.D. thesis.  

In 2009, Kresten founded the Erjang open source project (notice the J there), a virtual machine for Erlang running on the Java Virtual Machine, and has been active in the Erlang community since, contributing to, among other things, QuickCheck and Riak.  In Stockholm, November 2010 Kresten received the "Erlang User of the Year Award 2010", an award given for technical contributions to the Erlang community.
 
Software Passion: My passion is creating software. The power of creation is the joy of conceiving a software solution, in the joy of good craftmanship in software construction, but most importantly the joy of seeing it’s effects unfold as it enters the real world. It is born…
 

Presentation: "Erjang - A JVM-based Erlang VM"

Track: Java the Platform / Time: Thursday 16:50 - 17:50 / Location: Room 104/105

Over the last few years, I have been meeting "Erlang people" more and more often, and I am getting the impression that they have a magical ability to reason intuitively about concurrent systems in a way that I have not. It corresponds somewhat to the way we "object heads" think intuitively about classes and objects - just in terms of processes. That bothered me, so I wanted to learn Erlang.  Being a language implementor, the most obvious way to do that is to just go ahead and implement an Erlang VM, right?

The result of this "little exercise" is Erjang, an open-source JVM-based Erlang VM. It has turned into a non-trivial project, Erjang is now 50k lines of Java code, it runs substantial erlang programs, including booting OTP so you can use the Eshell, it self-hosts the erlang compiler (erlc) and tcp/ip functionality works.

In this talk, I would like to take you through some of the issues, problems and solutions that I saw going through that exercise. And specifically, I will take you through what I think is wrong with "Java concurrency", and in which situations the conceptual model in Erlang is better.  In Erlang you model systems with Actors; but how do we evolve from object-heads to actor-heads?  How do we get to a point where processes are as intuitive and natural as objects and classes?  

In short: I will explain how Erjang works, what I learned along the way, and demonstrate that Erjang runs well enough to be obviously useful.

Presentation: "Erlang, The Road Movie"

Track: Keynote / Time: Friday 09:20 - 10:20 / Location: Falconer Salen

In November 2009 I set out on a journey to learn Erlang.  And not just learn it: I wanted to immerse myself in it, get under it's skin, feel it, get to think like Erlang.  I took it for a test drive, and ended up spending 18 months in Erlang's company.

 

This is the story of my trip.  Not so much a talk about Erlang itself, but about what I realized on the way about where things are going.  The systems that we build are getting increasingly integrated, distributed, and fragile.  And becoming so at a disturbing rate when I think about it.

 

Viewing the world from behind the steering wheel of this old beauty, I'll take you on a tour of some of the significant issues we're dealing with in today's software systems: cloud, multi-core, integration, high availability, and living with the fact that our software isn't perfect.