In "A Modest Proposal: C++ Resyntaxed," Ben Werther and Damian Conway
provided an altered C++ syntax; a syntax meant to be easier to
understand. You can find the paper online in HTML format [1]. If you
prefer PDF or PostScript, they are available for download from the
same Web page.
After reading it, I find it much easier to understand, though I admit
that acclimation could very well take a long time. Since it is
proposed that it make use of the same preprocessor, I believe that it
might be feasible to consider.
From their conclusion:
In implementing a new text binding for the semantics of C++,
we have enjoyed the unparalleled advantage of hindsight and
the freedom to step beyond the restrictions of the
evolutionary path of C++. Most significantly we have
rejected the "failed experiment" of the C declaration
notation, in favour of a more Pascal-like approach.
Hmm...let's consider the same, but with respect to Java:
In implementing a new text binding for the semantics of
Smalltalk, we have enjoyed the unparalleled advantage of
hindsight and the freedom step beyond the restrictions of
the evolutionary path of Smalltalk. Most significantly we
have rejected the "failed experiment" of Pascal
declaration syntax in favor of a more C-like approach.
While I'm the first to admit that this is a bit off (Java's semantics
really fall well short of Smalltalk's), it's about as accurate as his
statement (i.e. both contain some accuracy, but neither is precisely
correct). OTOH, not even its author seems to care enough about SPECS to
have ever updated it to cover anything newer than a very early draft of
C++, whereas Java has come into relatively wide use.
There are quite a few things most of us would like to fix in C++. Most
of us also realize that the success of C++ is based in large part on
backward compatibility, which limits the degree to which most of those
problems can be fixed.
IMO, rather than fixing real problems, this proposal is primarily an
attempt at continuing to use a syntax with which a few people were
already familiar and comfortable. The benefits in terms of real
programming would be minimal -- for example, this not enable any new
capabilities in the language, nor make any programming technique
significantly easier.
At the same time, the costs would be quite high. The investment in
existing compilers, code and programmers would all be thrown away to
varying degrees. Except to a few people who have continued to use Pascal
long after the rest of the world abandoned it, the benefits would be
minimal. The authors use set_new_handler as an example of the difficult
syntax of C++ declarations, claiming that no more than 1 in 10
programmers could write it without references. They seem to miss the
real point of their own example: the reason almost nobody can do this
without assistance is that nearly nobody ever has any reason to do so at
all. I've written C++ for well over a decade now, and _never_ had any
reason to write that particular declaration, even once!
This would cause far greater problems than it would fix.