Oberon vs. C++ (1994)
modulaware.com
modulaware.com
Meh, each to their own I guess, but I definitely prefer C++ over that bloated syntax, where "x* v;" is sufficient by the way.
(*signal(int sigcatch, void (*func)(int sigraised)))(int);
I can't think of any C-derived language (other than C++) that uses C-style declarations. typedef int signal_func(int sigcatch, raised_func f);
foo.h:
signal_func* p_handler;
foo.cc:
signal_func my_handler {
...
}
This would avoid a lot of repetition and is easier to read IMO.(Indeed knowing all, or merely many, of the gotchas would speak against the conjecture.)
In retrospect, that seems somewhat naïve.
And that syntax... avoiding that horrible verbosity is one of the reasons that I preferred C to Pascal. It just feels really clumsy.
Most of the "deficiencies" in C++ have been corrected in time, and it took over the world. This shouldn't be a terrible surprise - the practical people get stuff done while the academics argue that their design is superior. Since language use for actually getting stuff done determines "winning" in the language wars, the pragmatic languages keep winning. They steal where the academics actually had better ideas, and they ignore the rest. And so the academics get left in the dust over and over...
I'd say that C++ being fixed and becoming more popular took place in parallel. As it got used more, people saw more things that needed fixed, and as more things got fixed, it became more useful for more people.
Why did things get fixed nearly as fast as they got identified as problems? Because there was an arms race between Borland and Microsoft to have the best C++ compiler, primarily. That competition did wonders for the language (neglecting the horror of Microsoft's incompatible and ugly extensions...)
Why? One doesn't need to take a very strict view of what "robust and reliable extensible software system" means to conclude that we do not have such systems at the moment.
As to the pragmatists vs the scientists: IMO, with hardware becoming faster and faster, the scientists will eventually take over. Pragmatists will build kludges such as lint and typescript, but eventually, somebody will take a step back and decide that the world is better of if the elementary parts of such tools get included in the language and IDE (for example, nobody in his right mind writes C with implicit int's; some BSDs have banned gets)
No. But we do have garbage collected languages, and we still don't have robust and reliable extensible software systems. So claiming that garbage collection is going to get us there does seem naïve.
But the original claim was that garbage collection is a prerequisite - not sufficient, but necessary. I still think that's naïve. But maybe, once we figure out how to do it, then we can figure out what language elements are necessary, and then we can see if garbage collection is on the list.
My bet: Garbage collection can help, but it's not essential.
But it sounds like you have a different list of "deficiencies" than the article...
There are rumors that Apple's clang developers are working on something in that direction, but until that vaporware is done and standardized, C++ programmers have to use the C preprocessor's automated text copy-and-paste mechanism in lieu of a proper module system.
Edited to add: an article and video about the clang C++ modules work-in-progress
http://isocpp.org/blog/2012/11/modules-update-on-work-in-pro...