excerpt from c++ Programming howto from linux documentation project:
( currently under review so not available for download )
1.4 COOP − C++ Object Oriented Programming−language
A problem with C++ is that it is a superset of C, and, although programmers can use the good (object
oriented) features of C++ and avoid the bad features of C, there is nothing to force them to do so. So, many
C++ programs are written with no object oriented features and continue to use the bad features of C that the
use of C++ should have overcome.
Therefore, I propose that we create a new version of C++ that does not allow the use of the bad features of C.
I propose that this new version of C++ be called COOP (say koop), which is an acronym for C++ Object
Oriented Programming−language” . COOP should be pronounced like chicken coop. (The logo of COOP
language is a big fat Hen inside coop!) I propose that the file extension for COOP files be .coo, which will
not conflict with .c for C programs or .cpp for C++ programs.
To begin with, write the COOP as a front end to C++. That is COOP pre−processes the code syntax and then
uses the standard C++ compiler to compile the program. COOP acts as a front end to C++ compiler. (To start
with, COOP will be a very good project/thesis topic for university students)
The following are some other proposed features of COOP:
COOP will borrow some best ideas from Microsoft C#, Microsoft put lot of efforts, and you can
simply utilize them. Specs are at csharp−specs and see C# overview.
?
? Is a subset of C++ language but will force programmer to use obejct oriented programming.
? Pure Object−oriented langauge but retains syntax of C++.
Remove all bad or confusing features of C++ in COOP, for e.g. multiple−inheritance, operator
overloading, limit usage of pointers, etc…
?
Prevent writing “C” like programming in COOP, something which C++ currently allows. Delete all C
features which are considered bad or redundant/duplicates, like printf, fprintf, malloc, struct, free etc..
?
? No downward compatibility to “C” language.
? Code written in COOP will be easy to maintain and is easily understandable/readable.
Code written in “COOP” will be re−usable (thru components, modules, objects). Supports re−usable
software components, thereby facilitating Rapid Application Development.
?
COOP is simple, robust, OOP, has bare mininum syntax (avoiding confusing, redundant, extra
constructs of C++ for e.g remove struct and use class)
?
Also borrow ideas from
? Java − Sun Microsystem put lot of effort, and you can simply utilize that.
? Connective C++ at http://www.quintessent.com/products/cc++.