OOPSLA '07: Dynamic Languages Symposium

The Dynamic Languages Symposium had plenty of mind-stimulating papers and some not-so-stimulating ones. There were a total of nine papers but I missed the three that were presented in the morning since I was at the Educators' Symposium.

One of the presentations that I liked was RPython: Reconciling Dynamically and Statically Typed OO Languages. It was an easy to understand paper and it showed the efforts that are being made to write a Python compiler in Python itself! So RPython is a Restricted Python; it has most of the dynamic features of Python taken out so that is compiles properly to a more static environment like the JVM or the CLR. But you do not lose much by this though. You would use RPython to code the interpreter for Python itself so you will not actually write normal programs with RPython. By restricting the features of Python that you could use, you could potentially make a better interpreter. RPython is a component in the PyPy project.

The second paper that I liked was Highly Dynamic Behaviour Adaptability through Prototypes with Subjective Multimethods. The title sounds complicated but the main concept is simple. The premise for a system like this would be like a system of multiple interconnected devices. So when device A, B and C are present then device D would perform a certain action for method1(). And when only devide B and C are present then D would performa a different action for method1(). This was implemented using multimethods -- each object's type determines what method gets invoked. It's like method overloading in the dynamic sense.

There are other papers that I liked but those two were the most blog-worhty ones.

Lastly, there was a presentation from Jim Hugunin on implementing dynamic languages on .NET. I am generally, as are most other people as well, skeptical about Microsoft's efforts with languages. They have often created a proprietary version of languages such as J# (obviously a bastardized copy of Java) that no one even bothers about. However, with the CLR and the implementation of the Dynamic Language Runtime (DLR) on .NET, Microsoft seems committed to making .NET a better platform for developing languages in comparison to the JVM. For an unofficial count, check out the list of languages for the JVM and CLR. What makes the CLR rather compelling at the moment is the fact that making your language run on the CLR enables you to hook your program to some of the cool Microsoft technology out there: XNA and Silverlight being two of them. Now, if only Microsoft would endorse the Mono project then I would be more compelled to start using the CLR for my projects.


comments powered by Disqus