The Artima Developer Community
Sponsored Link

Thinking Upside Down
Why Learn New Languages? Being Outlived by C++
by Andy Dent
September 15, 2009
Summary
Can a focus on C++ get me through the next twenty-odd years? Is it time to stop chasing bright, shiny new languages and consolidate as a guru? A few thoughts on "legacy languages" and the later stages of a coding career.

Advertisement

I am 46 and my Dad's recent death raises the usual thoughts of mortality.

I probably will be working full-time for no more than twenty to twenty-five years. I am also highly unlikely to move up to management - my return to consulting in the last two years has reaffirmed that designing and implementing software is something I love doing.

I've wandered a bit on the language map in the last few years from the C++ that was my focus for the preceding fifteen: Python, and now Ruby as a dynamic language, REALbasic as a highly-productive cross-platform tool and C# enough to get through a WPF porting project.

A recent port of an old Macintosh C program to a WPF GUI and associated updates on OOFILE's report-writer had me working regularly back in C++ and reminded me how much I've internalized the language. It also how reminded me how much I miss Object Master because I'm still able to use Object Master on an old UMax Mac clone on the early OOFILE Source!

It is some kind of synchronicity that at the time I write this, one of the hotter threads on Artima is responding to Bruce Eckel's Language Archaeology posting about C++ design decisions. Unlike some of those commentators, C++ to me is like slipping on comfy old shoes. I like C++ and whilst there are things in other languages I appreciate, there are also a lot of times I found myself missing C++ features that they all lack. Admittedly, this love is much more about the semantics than the syntax but, hey, love in middle-age requires a bit of soft-focus on wrinkles.

In saying I'm seriously contemplating giving up learning new languages, I'd should draw a clear line between occasionally studying a language for interest or to see some idioms that might help you think differently and internalizing a language to the point where you can work fluidly in it at a high level of performance and expertise. I don't think I'll be able to resist the temptation to go peek at new goodies :-)

My internal debate reminds me of my rich, penny-pinching brother-in-law's dilemma he semi-gloated about at a dinner last year - as a wine connoisseur, he now owns more wine than he can drink through in his expected lifespan. Does that mean he should stop buying wine, which is much of the joy of collecting?

Should I stop worrying about trying to keep up with new trends in language design and assume C++ will see me out? If I put a little Objective-C on top, it will handle anything I want to do on the Mac or iPhone.

Microsoft have unfortunately dropped C++/CLI as a first-class Windows language if you want to work with .Net GUIs - it is now just an interoperability language because WPF and SilverLight XAML won't work with C++/CLI. So maybe I need to keep a little bit of C# going to do Windows GUI's.

I guess the only threat to this retirement plan as a legacy C++ guru is the hordes of bright young games programmers. But seriously, if you're looking to maintain some really old code in 2020, won't you want to hire a consultant with an authentically grey beard?

Talk Back!

Have an opinion? Readers have already posted 28 comments about this weblog entry. Why not add yours?

RSS Feed

If you'd like to be notified whenever Andy Dent adds a new entry to his weblog, subscribe to his RSS feed.

About the Blogger

Andy is a free-lance developer in C++, REALbasic, Python, AJAX and other XML technologies. He works out of Perth, Western Australia for a local and international clients on cross-platform projects with a focus on usability for naive and infrequent users. Included in his range of interests are generative solutions, software usability and small-team software processes. He still bleeds six colors, even though Apple stopped, and uses migration projects from legacy Mac OS to justify the hardware collection.

This weblog entry is Copyright © 2009 Andy Dent. All rights reserved.

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use