Programming guide to Unibase

2 : Background

During the last few years I wrote ANSI-C programs as a hobby. But every try stranded in a product that worked for 60% but didn't do exactly what it supposed to do. The only real result I got from it was a head full of details about ANSI-C worth nothing as long as it only stays there. I could write programs but to get bigger projects to a satisfying product took too long for me in my spare time. There are some really good points about ANSI-C but also some down sides.

Good points of ANSI-C are to my opinion:

Good performance of the resulting programs.
Direct control by the programmer about what the computer should calculate and store in memory.
Platform independent programs as long as the programmer sticks to the safe ground of ANSI libraries.

Some bad sides to ANSI-C:

Weeks of debugging before the program doesn't crash every time. Five times as long as the programming itself.
It is impossible to reuse a program after 2 months unless it is painfully documented.
There is normally no user front-end to my programs. It can be written yes, but it takes lots of libraries and time and it's the death-stroke to the platform independent programming.
In my job I wrote a lot of applications with Microsoft Access. Almost instantly I could create fairly complex programs but it lacked the 3 good points of ANSI-C and I would not advice to have more than one person at the time inputting data into the database. There should be something in between those two worlds... I wrote a language that should have the 3 good points about ANSI-C and avoid the 3 negative points.

Objectives

There should be no reason for the program to crash after the compiler finishes without issuing errors.
The programs are documented directly by the same compiler. It creates both ANSI-C code and html files.
The language uses CGI programming as a front end. Yes, a really platform independent portal to the user!
The resulting language looks a lot like visual basic and there are instructions added to it that perform database operations. The database data is totally inside the computer memory for optimal speed but has logging options so when the program or the computer crashes all the data is still there. It also has a rollback facility so when a database integrity fault is found there shouldn't be any inconsistent data left.