I am a professor in Rey Juan Carlos university, at Madrid. There, I was teaching compiler construction for several years. I felt comfortable with this subject, so everything was OK. Then, in 2007 I was faced with a new subject that needed to be taught in a new degree in Computer Science. The subject was all about programming paradigms and languages, and someone proposed me to leave the old, comfortable one, to take on this new one. It was then when I started to run into trouble.
I was the responsible to detail the contents of the subject, which consisted on teaching three different modules of one paradigm each: functional programming, concurrent programming, and (well it is not really a paradigm, or is it?) dynamic languages. I had to decide which language to use within each paradigm. Obviously, given that we had one semester, I didn’t like to spend one session per module to teach a new, different, development environment. So, as an Eclipse user, I started thinking of using Eclipse as the single IDE for all languages.
This could have been all, if I had some degrees of freedom. I chose Haskell for functional programming, Ruby for dynamic languages and Java for concurrent programming. All of them have great support within Eclipse. Haskell is supported by means of the EclipseFP project, Java has the great JDT community, and there was also the great job from the DLTK project team.
However, I had very few sessions to teach each one, and my students didn’t knew Java (neither Haskell nor Ruby). Ok, let’s see if we can use at least some language that is closer to what they are used to so that they don’t need to learn all three languages. And I came over PascalFC. PascalFC is a Pascal-like language focused on learning concurrent programming. And my students already knew Pascal. Nice.
Wait. There’s no PascalFC support in the Eclipse ecosystem. Oh… Even worst, some colleagues were supposed to teach a similar subject on other degrees. But their subjects were focused on object orientation with Pascal (due to same constraints) rather than dynamic languages. And they were asking also for a Pascal plug-in.
When looking for a Pascal Eclipse plug-in I came over two options: Pasclipse and EclipseColorer. The Pasclipse project seemed to be abandoned (and looking back to its page, it is). And the EclipseColorer was just a colorer. And obviously, there weren’t any PascalFC Eclipse tools.
It seemed that it was a lost battle… But we wanted to have a single IDE for all these languages, and that IDE had to be Eclipse. So we take on building these two development tools. Me and another colleage worked hard during part of the summer and the first semester of 2006 in order to release a first version of two tools for Eclipse: Pascaline and PascalFC Development Tools.
When we finished we were half way where we want to be. Next step was to release an Eclipse distribution that contained these two tools, among the others (JDT, DLTK Ruby, and EclipseFP). We called it EclipseGavab 0.5 (starting numbers for versions are a funny thing to play with). We were finished by February 2007. We did it. We even included in the Windows version all the tools (compilers, JRE, interpreters) needed by the different plug-ins.
Nowadays, EclipseGavab is in its third version (EclipseGavab 2.0) which is based on Eclipse Ganymede (3.4), and now contains more tools, like CDT (which is used in a subject about C/C++ programming), and Subversive, Mylyn and ECF. These three last ones were included to enable collaborative development. I’m looking for some screenshots of the older versions, but I can’t find them, I have to look in the backups. So here you have some of the latest version:
The splash 🙂
The Pascaline tool supports Pascal development with the aid of the CDT language extensions, which is very helpfull for instance to provide debug capabilities.