It is not true that
SmalltalkIsaFailure but it is true that
CeePlusPlusIsaFailure (although it is unfortunately widely used).
All of that agony -
ConstCorrectness,
StlStyle, and a vast swag of MS and OS libraries maintained for generations and generations on the premise of safety and reusability ... all for what? All so it can all be junked sometime in the future and rewritten in something simpler.
PythonLanguage,
RubyLanguage,
JavaLanguage,
CeeSharp - these are the languages of the future. Well, maybe not Java. But every one of them is heavily
SmalltalkLanguage influenced. Smalltalk itself is on the rise again with frameworks like
SeasideFramework.
And
AlanKay is revered by all while
BjarneStroustrup is out in some parking lot dictating the C++ Reference Manual Version 5 into his beard. Ladies and gentlemen,
CeePlusPlus has left the building.
JavaLanguage is
SmalltalkLanguage influenced?
CeeSharp will outlive
JavaLanguage???
BWA-HAHAHAHA! --
PhlIp
Without commenting on the merits of C++ vs Smalltalk (far too much ink has been spilled, and bits allocated to that
HolyWar, that I need not continue it here), but the belief that C++ is now relegated to legacy work, defenc/se, etc. is flat-out laughable.
If anything, C++ is enjoying a renaissance. Part of that is due to the maturation of C++ toolchains (which now support the whole ANSI standard), part of that is due to the advantages of
TemplateMetaprogramming and the numerous libraries (
BoostLibraries,
BlitzPlusPlus,
DaixtroseLib) that can take advantage. Part of that is due to the fact that C++ programmers these days can easily link in garbage collecters, should they choose. And <flame>part of that is due to the herds of one-star programmers in IT shops round the world now writing their
CrudScreens in Java and C#.</flame>.
C++ is alive and well. As are the numerous Smalltalk-derived languages you mention above. Which is a good thing; C++ and Python are intended for, and good at, very different things. If you don't like C++, of course, you've plenty of other excellent choices. But C++ remains a viable choice for those applications for which it is suitable (and there are many!), and/or for those programmers who prefer it.
Long live diversity!
While C++ does remain a viable option for those applications for which it's suitable, it's also true that applications for which C++ is more suitable than
PythonLanguage,
RubyLanguage,
JavaLanguage,
CeeSharp and Smalltalk continues to shrink at an ever increasing rate. However, long live diversity, there will always be a place for C++ to shine, however small it may be. But to say C++ is enjoying a renaissance, is stretching reality beyond the breaking point.
Agreed; MooresLaw has all but kicked C++ out of the data center--a place it was a poor fit in the first place (due to a combination of constantly changing requirements, piecemeal deployment, highly I/O and GUI-centric applications, etc.) C++ remains an excellent choice for systems programming, embedded systems work, etc... and the C/C++ family is mounting a strong challenge to FortranLanguage in high-performance numerical computing. At any rate, HorsesForCourses and all that.
Currently
every single game is written in C++, often with parts of it in an embedded scripting language. Just suggest to a game developer that he be using anything more "dynamic", and you'll be laughed out of the building (and then some). For a good reason.
There is a need for a lightweight, compiled language close to the machine. C is that language, but it doesn't scale well. C++ is an attempt to build on C. It is definitely a success as an experiment, parts of it are also a success in practice (yes, const correctness, an improved static(!) type system and the whole STL are
good things), while other parts are simply crap (either because of C legacy, because of
DesignByCommittee or because of oversight). Defining a new language based on lessons from C++ might be a good idea.
And don't forget, holy wars have always been a poor substitute for brains. "Smalltalk is superior to C++!!!" with get you into hot water sooner or later, as will "C++ rulez!!!".
Any language without a foreign function interface (or with a poor one) is a dead end, and exactly the same goes for programmers.
Its the only mainstream, mature language that gives decent performance. The key is to write various bits of the system in the right languages (eg scripting, guis in vb/c#/java etc)
CategoryRant CategoryCpp