Biography for Matthias Springer


Briefly about me

I'm a 22 year old student, interested in the implementation of programming languages and object-oriented virtual machines.

About my study

I study computer science at the Hasso Plattner Institute in Potsdam. I will receive my Bachelor's degree this summer and continue in the Master's program. I've done most Smalltalk coding in the scope of my Bachelor's project. I will finish my Bachelor's project at the beginning of June. Then I can work full-time on GSoC.

My interests

Programming languages (especially Smalltalk, Ruby, Python, Prolog), virtual machines, GUI design, artificial intelligence

My non-Smalltalk experience so far

In the last years (before and during university), I participated in the German federal competition in computer science ("BWINF") and the informatiCup (by the "Gesellschaft für Informatik"). I solved mainly algorithmic problems using Visual Basic 6 (this was my first programming language), C# .NET, Java and C. If you're interested in this take a look at my website (only in German, sorry).

I've also been doing a lot of Python, C, Ruby, Java, C#, Groovy/Grails and Prolog coding in the last time, mostly in the scope of projects at university. Just recently I wrote an ant colony optimization algorithm and a genetic algorithm for solving SAT using Python and NumPy (code, seminar paper).

I also gathered some practical experience during two internships. I was mainly doing Java, JavaScript and Bash coding. If you're interested in this, take a look at my CV.

My Smalltalk experience so far

I learned programming Smalltalk in Squeak about two years ago, in the scope of a lecture about object-oriented programming. I also gathered some experience with Seaside.

I'm currently working on MagLev, an implementation of the Ruby programming language in GemStone Smalltalk. I recently implemented an order-preserving dictionary/Hash (including new Ruby 1.9 Hash syntax) and Ruby singleton classes in GemStone/MagLev and learned how object-oriented VMs, method dispatch, inheritance and mixins/Ruby modules work on the lower levels in GemStone Smalltalk.

At the moment, I'm developing a database explorer for MagLev and porting Dale Henrichs' tODE ("the Object-centric Development Environment") to Amber Smalltalk, in order to be able to run tODE in a browser. Except for the proprietary GemStone part you can take a look at these projects on Github.

Why am I interested in Smalltalk?

In my opinion, it's one of the most elegant and pleasant ways of object-oriented programming. I'm fascinated by the idea that really everything is an object (in contrast to Java, ...) and by the notion of having an image that contains "living" objects. Unfortunately, Smalltalk is not (yet) as popular and widespread as other programming languages (Java or .NET languages), but I think this is changing at the moment, especially when I think of all these cool Smalltalk projects like MagLev, Amber, Pharo or EToys. By participating in the GSoC, I hope not only to learn a lot about Smalltalk internals and get to know the Smalltalk community, I also want to improve Smalltalk implementations (Pharo) in order to make Smalltalk more popular with non-Smalltalkers.

Will I stay with Smalltalk after the project is finished?

Definitely! I want to stay active in the MagLev community and the Pharo community. There's still a lot of work to be done. Depending on whether other people will find this useful, I will continue working on porting a part of Morphic to Amber (which I'm currently doing to get tODE running in Amber).




Updated: 21.4.2013