For all the thousands of Dick Cheneys, Don Rumsfelds, Milton Friedmans, Karl Roves, George Bushes, etc. thank God for the occasional Mark Shuttleworth.
If only the proportions were reversed... »
csk317:
There is currently a meme going around that C/C++ are { archaic | obsolete | superseded | pointless to learn | old fart languages | etc } as compared to Java, Ruby, Python, C#, and the other currently popular programming languages. This goes hand in hand with the meme that says that personal computers are obsolete and everything will be done "in the cloud," that soon people will not need desktops or perhaps even laptops, that everything will be done on handheld devices, and so on. In the extreme case, this is interpreted to mean that people should only learn web backend scripting languages that give fast results. Damn the torpedoes, full speed ahead!
No doubt there are kernels of fact to some aspects of these memes, but considering them prophetic predictions of the future is pretty idiotic. Contemporary culture is made up of sound bites and fast tempos, great expectations and tight budgets, quick thinking and quick execution. C++ programming requires thoughtful engineering, and is usually applied to critical software infrastructure like operating systems, device drivers, sophisticated software packages, etc., on top of which reside things like web apps and huge Java constructions, among others.
The patience needed for that sort of thing has always been in short supply, that's nothing new. Today's new twist in the C++ world is having to deal with ubiquitous multi-core and multi-cpu systems, and write code in such a way to exploit them. This, too, is not a new need. However, it is still not a part of general C++ culture, and not even a well-understood and well-provisioned aspect of programming in general.
The question is, how will it play out? »
You're kidding, right?
If you like vim or emacs, then use them. They are notoriously powerful. If you like "conventional" GUI-based text editors, don't waste your time with adaptations to vim or emacs. Use a starightforward, powerful, cross-platform, open-source editor like jedit (http://jedit.org/).
If you are the type of person that shuns vim or emacs, you are the type of person that will like jedit. »
No doubt this proposal will be derided as hare-brained commie pinko bullshit of no relevance to civilized capitalist society, but I think it is pretty much on the mark.
Parallelism needs to be a low-level functionality that is reused by developers as if it were just another library. Standardized use-cases should be supported, as well as the flexibility to design more specialized software mechanisms.
Even Aunt Tilly and Grandma will make full use of their multicore personal supercomputers once everyday software arrives making use of open-source parallelism libraries and techniques. Making videos, music, renderings of various kinds, and a variety of other heavy-duty simulation functionality will be subsumed into industrial, professional, and even consumer software. »
Saying "X year will be the year of the blah blah blah" is pure hype. The history of GNU/Linux is of gradual growth, improvement, evolution, debugging, refactoring, addition of features, etc. No year was really the year of anything for GNU/Linux.
Its penetration of The Userland of the Unwashed will also be gradual, insidious, inexorable, and largely unnoticed. Eventually we will observe that a lot of people seem to be using it. "When did that happen?" we will ask ourselves. Even now GNU/Linux boxes are snapped up at WalMart at a savage rate. Where do they go? Who uses them? Do they keep the OS or slap on a pirated Windows version? Is Microsoft quickly buying them all up and dropping them in the Ocean? Who knows.
At my humble home, we are finally migrating away from Windows. All new boxes, starting with one I built last weekend, will run only Ubuntu. This will not be easy, as I have already found that TurboCAD and Cossacks Expansion do not run under Wine. Negative points there. We all have little boxes full of software CDs that only run on Windows. Making sure they are still useful will be necessary for the migration to be truly successful. At the moment some work, some don't. »