Qomp was originally written using FPC compiler as a base. All FPC code could be compiled and used in Qomp code. This made reusing existing modules from FPC simple and easy, rather than starting a language without any code and libraries to work with.

However, a Qomp based on Oberon compiler is also considered, because Oberon compilers are much much simpler and easier to maintain than the complex monster that is FPC. In fact FPC is just becoming the next C++ or Pascal++ with it's million compiler modes and complex features (featureitis?).

GoLang succeeded by starting a new language without too many libraries. QompOberon would be able to use all existing Oberon libraries, or most of them, and oberon code, while having a nicer (in our opinion) language to work with. For example many people are upset about bulky, ugly CAPS LOCK reserved words in Oberon, despite 1 or 2 people who defend them such as Samuel A Falvo.

How procedure looks in oberon:
  PROCEDURE LifeMeaning (s: STRING): INTEGER;
  VAR i, l: INTEGER;
  BEGIN i := 0; l := s.len;
    WHILE (i <= 42) DO INC(i); END;
    Console.WriteString("The answer is: ");
    Console.WriteInt(i);
    RETURN i
  END LengthN
How a procedure would look in QompOberon
  proc lifeMeaning(s: string): int;
  v i, l: int;
  b
    i =. 0;
	l =. s.len;
    while (i <= 42) do inc(i); e;
    out('The answer is: ' + itos(i));
    return i
  e
Qomp programmers find Oberon syntax ugly, but Oberon is a great language despite its ugly syntax and horrid CAPS LOCKS reserved words.

Disadvantage of using B and E as reserved words

In Qomp b and e are used to begin and end a code block. The only disadvantage of this is when writing math code or calculations where you multiple "a" by "b" you can not use the variable name "b", as b and e are already reserved. or a*b*c*d*e cannot be done because "e" is already a reserved word. However, since QompOberon is case sensitive, one can still use A*B*C in math equations or just avoid "a" and "b" as variable names, and use "x", "y", and "z" or similar.

All languages have compromises, and this seems like a minor issue. In fact in C or C++ the { curly braces } are taken from you so you cannot use them in math, as they are reserved. I.e. sets in math may use curly braces, or other math may use curly braces, and C limits you from using this, the same way QompOberon would take away your ability to use "b" and "e" as variable names.

People have literally been hospitalized for typing injuries and overuse of the fingers. Emacs users are an example of this (and it is not a joke). Oberon syntax is very cumbersome and tedious, heavy, and straining on the hands to type. The constant bickering about how code should be more verbose and readable, often forgets the fact that the programmer has to be able to write the code and enjoy doing it.

Those Ada type programmers who argue one should never complain about how verbose the code is because it makes it more readable, fall into the same trap as COBOL programmers, and we all know how the verbose COBOL experiment ended up. Virtually everyone hates and or does not use COBOL, and the programmers who do use it, are hiding somewhere scared of their own verbose obscurities, because you don't see many of them on the internet. Mathematics, is not a verbose COBOL like language or system at all, and neither should programming be, since programming is basically an advanced branch of mathematics.

Back to home page

The home page for Qomp will have more details soon.