Day 79 of 1000
Christian and I often talk about what he will do for his career. His plan is to study hard stuff, find something he likes and go from there. He has pretty much rejected the idea of getting a degree in Computer Science. His thoughts are that, when he writes code, he wants to write code to do something rather than for the sake and out of a passion for writing code. So, after his Math degree, he will probably do something in Electrical or Mechanical Engineering, but that is not even set in concrete.
Along that line, I got a note from my buddy Andrew the other day on a C++ library project called Cinder. I will quote Andrew:
You all might get a kick out of this…. looks like a higher-level API built on top of existing libraries like Standard C++ libraries, Boost, OpenCV, OpenGL, etc. to enable people to write graphically powerful apps without having to fiddle with as many nuts and bolts.
I write C++ code for a living and have wondered how much longer C++ will be a good basis for making a living. The way I figure it, I have, Lord willing, between ten and twenty years left in my career. Like Christian, I do not really like to program, just for the sake of writing a good program or to do generic things. I have a HUGE appreciation for people who do that. They make my life way easier by letting me just write code for the stuff I love (machine vision). The people who do programming for programming sake are also the people who make improvements to language, develop standards, and do all that other stuff that makes programming life easier and more efficient.
Garbage collected languages like Python, Java, and C# have been encroaching on my C++ world for quite a few years now. It is possible to write very good and even efficient machine vision code in those languages. It is often possible to write code more rapidly in those languages, too. They have rich GUI, math, database, and other libraries that make them useful in a lot of different scenarios. It is even possible to write a framework in the garbage collected languages and only dive down into C++ when something needs to run very fast or uses lots of memory that needs to be allocated and deallocated continually.
Still, even though I write some C# and Python–for some reason I have written very little Java, I am not good enough at it yet that I can go dramatically faster in those languages than the C++ I have used for so many year. That is why it give my heart joy to see some graphical programming tools that move C++ a little closer in capability to the newer languages. I read the whole website and was more fired up about my chance to stay with C++ for a few more years. I will continue to work on the new languages, but plan to try out Cinder and look for other such tools.
Note: Part of the reason I started this post out the way I did was I wanted to put up this picture of Christian on his sixteenth birthday.