Solar wrote:
Could it be you don't like C++?
I must admit, I've no great love of the language; I've come to see it as combining all the worst aspects of C with about 75% of the worst qualities of Ada (fortunately, the C++ language group has yet to embrace anything so absurd as the Ada rendevous mechanism), in a way that cancels out most of the advantages of both. Furthermore, I've become disenchanted with the general procedural and OO/procedural hybrid approach; too many of the advantages of OO are lost in the more static, compiler oriented languages, compared to Smalltalk.
Quote:
I mean, agreed, C++ in full flight is one of the most complex languages around, but it sure is also the most powerful...
That depends on what you consider 'powerful'. There are many areas where Common Lisp or Smalltalk are far more expressive.
Quote:
What language would you suggest for large application projects? (And please don't utter "Java"...)
Well, I'll admit, it's a problem; none of them are really what I'd want them to be. The answer would probably depend on the application in any case. While Java is in many ways a nicer C++, it still has many of the same problems that C++ has. While I generally favor the LISP languages these days, I have to admit that the two major dialects at this time, Common LISP and Scheme, are too unwieldy for many purposes; Scheme is far too minimal, and requires substantial extensions to make it a feasible choice (while such basic extensions as OO support, package control, and structured exception handling, are easy enough to add to the language through libraries and macros, the lack of standard is a serious hinderance), while Common LISP is extremely baroque and overdesigned. Also, like with Smalltalk, they are too tightly woven into their interpreter environments, and often have trouble working in other environments (though that is a facet of the implementations rather than the languages themselves). Modula-2, verbose as it is (a quality which CL also shares), would have been a good choice about fiften years ago; I'm not so sure I would say the same about Oberon. As I said before, however, none of them is quite right to my mind.
All of this is moot; C++ for all it's faults is a good language, and until a suitable replacement arises, it will be around for quite a while. While Java may end up being that replacement, it will need to mature as a system for some time before that happens.
Quote:
Tux:
Quote:
#define end return;
Seldom have I seen a more shameless advertising of raping a language.
Don't try this. You
will be sorry.
I have to agree here. If nothing else, the semantics of return are quite different from those of BASIC's 'end' statement, and trying to gloss over that difference is likely to lead to serious problems down the road. If nothing else, this sort of masquerade will make it harder to learn and work in C later. The C macro preprocessor is a powerful tool, but it is easily abused, and the resultant bugs are generally hard to nail down.