Ralf Lämmel’s visit is the perfect excuse to blog about his great project: 101 companies, created together with Thomas Schmorleiz and Andrei Varanovich.
The idea behind 101 companies is simple, let’s try to have as many implementations as possible for the same scenario, a simple Human Resource Management System (the so-called 101companies System) so that we can help people (teachers, students, developers, software technologists, etc) understanding and comparing programming technologies. The implementations leverage varying programming technologies and varying software languages dedicated to different technological spaces. The specification of the 101companies System contains several optional features which implementations can choose to implement in the interest of demonstrating specific programming technologies or capabilities thereof.
Right now, more than 116 implementations are available (including many popular languages like Scala, Ruby, Haskell or python). Of course, there are differences in the completeness and quality of each implementation but since the whole project is completely open source, you can contribute an improved implementation or choose a new technology not yet in the repository and help them to cover even more languages.
The project has just recently started but I do believe it can be a very useful tool to get a feeling of how different languages compare and work. It’s not about which language is the best one, it’s about seeing how each language uses different features to solve the same problem and then choose the best one depending on each person’s interests and context.
Apart from the project web page, you can also check this pdf document to know more about the project.