Kresten Krab Thorup, hacker and CTO, Trifork

"– It is great fun to make software which is really useful for people and makes them more efficient"
Kresten Krab Thorup has been a hacker ever since his cousin got a Vic-20. When Kresten Krab Thorup started programming on the Vic-20 he was hooked. Hooked on hacking in the original good-natured way: Tinkering with systems and computers to find out how they work.
Even though he has a Ph. D in computer science, he describes himself as self-taught.
"Even though I have a long education and studied for many years, I did not follow the courses that closely. They served as a kind of inspiration for my own projects. I am not a great theorist, I am learning by doing things," he explains.

How to build distributed systems

One of the most recent subjects he has been studying is the programming language Erlang, which has been used for many years in the telecommunication industry, but has never been a mainstream programming language. That could be about to change. Erlang possesses capabilities that can handle many of the challenges mainstream programming languages are struggling with today; concurrency, multi-core-processors and truly fault-tolerant distributed systems.
"The whole foundation of Erlang is about building reliable distributed systems. The design philosophy of Erlang is that even though computers will break, the distributed system will survive. The software takes care of the faults and errors," says Kresten Krab Thorup

True to his pragmatic approach to studying and learning, Kresten Krab Thorup started to implement Erlang on a platform he knows very well; the Java-platform.

Next, Google and specifying Java

"I have been interested in Java ever since it was released. There was a stir in Silicon Valley when  Netscape decided to put Java in their browser," Kresten Krab Thorup says.

At that time Kresten Krab Thorup worked for Next Software in Silicon Valley. The software company, founded by Steve Jobs and now part of Apple, was an exciting work environment for Kresten Krab Thorup.
"It was fantastic to work for Next at that time. It was a bit like Google is today with a lot of bright people."
Even though his main focus was compilers and development tools for C, Objective C and C++, he became part of a Java task force at NeXT Software.
After his Ph.D.-thesis from 2000 about generics in object oriented langauges, he become more involved with Java. Kresten joined the Java Community Process' committee for JSR-14 (adding generics to Java) and he participated in the specification of Java EE5. So he is well versed in – and fond of - Java, but he thinks that Java's approach to concurrency is not ideal.

Magic ability to reason about concurrency

"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?" Kresten Krab Thorup says.

And so the hacker started the Erjang-project.
Today it consists of 50.000 lines of Java-code and it "runs well enough to be obviously useful."

Let's arrange conferences as supplementary training

When Kresten Krab Thorup is not busy with Erjang, he is the CTO of Trifork, the company that created the long-running JAOO-conferences and co-founded Qcon. As CTO Kresten Krab Thorup is 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.
The conferences is a crucial part of Trifork.
"We regard the conferences as our own supplementary training. We present a plethora of subjects that are important and useful to know when you are building it-systems."

Kresten Krab Thorup will give an overview of Erjang in his presentation "Erjang - A JVM-based Erlang VM" targeted Java developers – who preferrably have felt the pain of concurrency.

More about the Erjang-project