This post originated from an RSS feed registered with Ruby Buzz
by Anders Bengtsson.
Original Post: In-House Languages
Feed Title: A View From Above: Ruby
Feed URL: http://www.ghostganz.com/blog/xml/rss20/category/Ruby/feed.xml
Feed Description: Anders Bengtsson on programming and other things
The talk about Joel Spolsky’s in-house language Wasabi reminds me of my experiences at a previous employer:
In some glorious past the company founder and some other wizards had created an object-oriented language of their own, more advanced than Objective C (for this was in the days before Java). Using this language they wrote a successful application which the company was built around.
When Java arrived, they created a Java-syntax pre-processor to their language, and machine converted their entire code-base to an almost1 Java syntax. But the compiler, runtime and libraries where still very much non-Java. Imagine not having the java.lang.* and java.util.* classes.
By the time I joined them, the founder and most of the wizards had left the company. The system had evolved into something very big and complex, parts of it essentially being an application server. The remaining programmers, very few with any experience, where left to develop this system. As a result there was very little maintenance done on the underlying language and platform, even though bugs and limitations in it was a constant nuisance. It simply had to be worked around.
For the programmers, it meant that their previous Java education and experience wasn’t as useful. Everyone had to be trained in-house and you couldn’t just go to the computer bookstore and buy titles about it. Neither could you share experiences with anyone outside the company, making the place a bit intellectually isolated. There may have been some documentation, but hardly comparable to what you’ll find on a mainstream, or even obscure, language and system. The ones who tried to move to other companies found that their lack of real Java experience was a problem2. Unsurprisingly morale wasn’t very high.
The company’s solution? Developing another application server of their own, in parallel, this time in pure Java. But that’s another story.
1 Differences in language type systems forced them to weakly typed workarounds, causing endless troubles.
2 For experienced software developers it may be less critical, but for the ones just out of a short education it was a real problem.