Re: future of the C++
On Jul 4, 3:43 am, Dragan Milenkovic <dra...@plusplus.rs> wrote:
Le Chaud Lapin wrote:
Hm... but are you saying that people should walk the hardest path
in order to earn a proper label? If one has the attitude of wanting
"to know what's really going on", one will be much more involved
whatever language chosen. And the path will be much easier and
gains greater if one is open minded and learns many languages.
Hard work vs proper work. "I want to know" == a good engineer.
I am saying that, given two subjects, S1 and S2, if one has the choice
to learn both, one might choose whichever, after learning, allows a
scope of understanding that is a superset of the other.
Knowing Java, well, facilitates understanding of many concepts in C++.
Knowing C++, well, not only facilitates understanding of almost all
concepts in Java, but one might begin to write a Java interpreter in C+
As I have said before, it is not really possible to understand C++
well and not have a good understanding of a large number of parasitic
concepts that are the foundations of software engineering.
I will only agree that understanding C++ gives a unique and invaluable
perspective. Notice how I used "understanding" instead of "learning".
You may learn as much as you like, but how will you understand
any concepts other than the ones you use to solve your problems
if not by solving a few problems in Java (maybe doing some EE), Python,
Lisp, Haskel, etc?
So, if we are saying that there the problem domains are separate from
the languages employed, then I would say that it is rare that I find
myself in the position where I am obstructed by C++ while attacking a
problem. C++, more than any other language, "gets out of my way" so I
can solve the problem. I cannot say the same for other languages.
For example, in my current project, I have:
1. Code that manipulates memory-mapped I/O registers.
2. Device driver code with kernel-mode primitives.
3. Several, miniature parsers/interpreters of other languages.
4. Full blown multi-threadeding code with generalized synchronization.
5. Ability to launch other executables with tight control over run-
6. Fast signal processing.
7. Fast string processing.
8. Database and caching.
10. Dynamic swapping of member functions in live objects.
12. Generalized serialization [no versioning though].
13. 99.7% portability [to multiple platforms, not just the one
prescribed, like Java].
What other language allows all of this without the help of a companion
-Le Chaud Lapin-
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]