[Looking for a book logo 9.5KB]
Click Show me your interesting books!

How to convince a C/C++ programmer to adopt Oberon-2?

[modulAware.com/zel logo]

To keep it short, there is no way to convince a C/C++ programmer to adopt the programming language Oberon-2.

Fact one: The overwhelming majority of application development is with C and C++.
Fact two: All the major tool suppliers support C and C++.
Fact three: Recently, the president of the United States, William Clinton gave Ken Thompson and Dennis Ritchie the National Medal of Technology for the invention of Unix [and the programming language C], because Unix and C have stimulated the computer technology and hence attributed to the US leadership in information technology. (A very stupid idea!) Back in 1970, the goal of C was to create a "high-level" language for the development of platform independent operating systems. Concerning the programming language C, did they even achieve their first goal (even if it were there goal)?

If these facts are not convincing, the challenge is how to convince the collegues at your company that Oberon-2 is better suited for industrial projects than C/C++.

Convincing peoples to act reasonable is almost impossible. Since 20 years it is known that C is "write-only", C is "its own virus", etc.., but I did never succeed in convincing any C/C++ programmer to even consider reading a book about Oberon.

Before C became popular, I tried to convince Fortran programmers to switch to Modula-2 -- with some success. Although in contradiction with popular believe, I' d like to make clear, that Fortran is in a high-level language designed for application programming and C is a low-level language for system programming.

There are several articles against C/C++ in The ModulaTor. One of the shortest of these articles which is quite steep (c'est a dire "au point") contra-C++/pro-Oberon-2 is

How can the resistance of C/C++ programmers be explained?

One could argue, that some programmers consider using C/C++ as a guard against becoming unemployed, because no one else could read their programs. Being able to read a program is essential in order to understand it, so that it can be corrected, modified or extended.

I remember an escalading battle, when I opposed my professor who teached operating system concepts at the University, because he did not want to see the problems imposed by using C for teaching concepts, specification of software and implementation. At this time (1981), about a decade before Oberon-2 was born, I proposed to use Modula-2 instead of C in his lectures -- without success.

How to motivate a C/C++ programmer?

If your collegues are open enough to at least try Oberon-2 with a non-trivial example program, any capable programmer would at least recognize the advantages of a clean syntax, type safety for separately compiled modules as well as array index- and pointer-safety of Oberon-2.

But today there is no time to do some research, because everybody is working hard to hit the numbers for the next 10Q.

The Oberon-2 concepts evolved from Pascal over Modula-2 during a period of 20 years, with increasing functionality and decreasing complexity. Those who believe they could safely ignore this evolution are out. Others will step into the Java-trap.

Who uses Oberon-2 and for what kind of project?

Modula-2 programmers who need more safety are among those who first see the advantages of Oberon-2. Modula-2 was quite popular just when Oberon-2 came out. There are many large applications written in Modula-2 in the power generation, subway train control, non-destructive testing, data aquisition, image processing, bank- and insurance business, water distribution, and natural language translation. Some are underway to switch from Modula-2 to Oberon-2. But this takes a long time. Some large programs are even economically impossible to port, if the application used Modula-2's circular imports, local modules, Modula-2's WITH-statement, and unqualified imported designators, to name the worst concepts of Modula-2. These Modula-2 features at the first seem to add convenience and comfort for the programmer, but later turned out to be contraproductive.

There are many large applications written in Oberon-2, e.g., compilers, operating systems, web-browser, ftp-, http-, mail- and news-clients, databases, graphics editors, text- and image processing, statistics, data aquisition, and games. One example for a larger application is Nepros is completely written in Oberon-2 (for the Oberon System V4). The source of Nepros is available for download. So you could try it.

Can Oberon-2 be used for large, safety critical, technical and commercial applications?

I'd certainly not use C/C++ for this type of application and I'd recommend to use Oberon-2. Oberon-2 is used for example, to control industrial robots in production of electrical components and to design hardware with field programmable gate arrays (FPGA).

Almost a decade after the introduction of Oberon, there is now a huge base of Oberon-2 source code available, which serves as a pool to multiply the number of applications. From the psychologic aspect, it is interesting to note, that it took so long to build a critical mass, so that Oberon-2 can take off the ground.

This is happening now, even if the majority of programmers still comfortably ignore this fact and wait. (Maybe this helps to explains, why the title of www.modulaware.com/zel home-page is called »the alignment trap«.)


The Alignment Trap :: Navigator

[ The Alignment Trap Home | About The Alignment Trap | Oberon System and Compiler Implementations (OSCI) | Comparison of Oberon-2 with Modula-2 | From C/C++ to Oberon-2 | Oberon-2 Language Report | AlphaOberon-2 Compiler User's Guide | Download AlphaOberon for OpenVMS Alpha ]

modulAware.com home


Copyright (c) (1999-2011) by modulAware.com
Last revised 01-Mar-2011

Disclaimer: The banner advertisement at the top of this page is dynamically inserted by the web-site hosting service; The banner image content and the URL it refers to is outside the responsibility of modulAware.com