Microsoft’s Going Native 2012 was a great conference for C++ developers. There were talks by the movers and shakers of C++ including Bjarne Stroustrup himself. There were a few new topics, like the experimental work on Concepts by Stroustrup and Sutton.
And a new meme was forged by Andrei Alexandrescu.
Andrei is famous for his sound bytes, but this one really hit the nerve. There was a question during the panel discussion from a person who complained that, for some bizarre nonsensical reasons, the management of his company wouldn’t let him use STL. “Call your headhunter!” responded Andrei. The audience cheered and the tweetosphere lit up. It was not only a great comeback but also a serious piece of advice. We C++ programmers have much more power than we think.
So if you are feeling unhappy with your job because the management interferes with your productivity and creativity, you don’t have to take it any more. Good C++ programmers are in great demand, recession notwithstanding. I regularly attend Northwest C++ User’s Group meetings, and every month there is some recruiter buying pizzas for all 20-30 people (if you are living in the Greater Seattle Area, please come and have some pizza with us). If you have any doubts whether you are a good programmer, let me assure you: The fact that you are reading this blog is proof enough.
I’ve had the opportunity to talk to Bjarne Stroustrup about the value of a good programmer. Bjarne said that managers rarely appreciate the orders of magnitude separating good programmers from average programmers in terms of productivity and code quality. The managers don’t see the point in providing top-notch productivity tools nor do they understand the need for constant education (some of my programmer friends had to pay for the conference from their own pockets). In other words, they consider programmers a cheap commodity. If you are stuck working for one of those companies, call your headhunter!
No programming job should be boring. This is the magic of programming: Any boring repetitive task can be automated. It’s this process of automation, of finding meta-solutions, that makes programming exciting.
Chandler Carruth had an interesting talk about the progress of the Clang project. They have open-sourced their C++ front-end and made possible the creation of smart tools that can work on very large C++ projects. Large projects sooner or later enter the stage when maintenance is nightmare. Chandler demonstrated that it doesn’t have to be so. Instead of propagating a top-level modification by hand through millions of lines of code, you can write a short program that uses the C++ front-end to make exactly the modifications that are needed — more reliably than a human. This includes understanding and, if necessary, modifying macros.
Chandler’s group was also able to produce tools that not only figure out which includes are strictly necessary in each file, but also introduce forward declarations whenever possible. Java programmers are probably snickering, but for C++ this is a major breakthrough.
So if you are faced with a boring job and are not allowed to search for automated solutions, use STL, or upgrade an ancient compiler or build system — seriously, call your headhunter!