BLUE

Why a New Language?


Many languages are developed every year, and almost all of them disappear as quickly as they appeared. Developing a language can be very frustrating, seeing that the chances of anyone ever using it are so slim. The reason why many languages are not successful is, I think, that they do not offer enough improvement over existing languages to justify a swap. For a new language to be worthwhile looking at, it must be considerably different (and that in a positive way) from existing languages. It must offer something new.


So how is Blue different?

We believe that the new quality that Blue offers is the combination of object-orientation and a teaching language.


Object-Orientation

Object-oriented languages have proven their usefulness in many areas. We do not have to argue any more why OO is good - it is obvious now that the OO programming paradigm has been widely accepted, thus creating a need for universities and colleges to teach object-oriented programming.


Teaching Languages

For a long time Pascal was the language most widely used for teaching programming. Why?

The reason for its success, I believe, is that it was small and clean. It incorporates the concepts we wanted to teach at that time in a beautiful way. It could do this, because it was developed as a teaching language that ignored some of the nasty requirements of "real-world" programming.

Most people agree that Pascal was a wonderful tool to teach programming.


Blue

The problem with Pascal today is that it is based on an outdated programming paradigm. The problem with existing OO languages is that they are not made for teaching.

Blue tries to bring these two aspects together and aims at being the object-oriented equivalent of Pascal.

The problem with existing OO languages lies in their complexity. Languages like C++, Ada, Eiffel, etc have all been developed for real world use in the industry, thus introducing, from the teaching point of view, an undesirable overhead in size, complexity and uglyness. Some of the problems are with the languages themselves, some are with their programming environments. See Requirements for a First Year Object-Oriented Teaching Language for a more detailed examinationof the problems of existing languages.


Efficiency

One of the key factors is efficiency. Object-oriented languages often tend to have a runtime overhead, leading to more inefficient algorithm implementations. To avoid or reduce this, all existing languages compromise the underlying concepts for the sake of effficiency.

Blue does not do this. The big advantage in being designed specifically as a teaching language is that efficiency is not the primary concern. We can afford to implement the concepts in a cleaner way than other languages, offer better development tools, better debugging, better execution control, paying with efficiency. The efficiency loss is negligible in student size programs (it would be unacceptable for industry projects), but the win in terms of teaching support is substantial.