3 ms·
Languages never really die. Microsoft frameworks tend to live well beyond what Microsoft wants (look at MFC). Enterprise in particular is invested in .NET (and
by dottrap 12y ago
Languages never really die. Microsoft frameworks tend to live well beyond what Microsoft wants (look at MFC). Enterprise in particular is invested in .NET (and Java and others) and won't be motivated to change quickly. However, also don't expect things to move in any one direction and there will continue to be lots of competing technologies.
That said, what is it that you want to do?
Video games, high performance, and real time applications, and emerging technologies tied to hardware (e.g. VR, wearables), you'll be better served going into lower level languages and having a much deeper understanding of how hardware works.
The web is dominated by JavaScript. Anything client side in the browser, and you are going to be better served there.
Application client side programing, every vendor has their own thing and if you want to do well, you'll want to learn the native stuff to some extent. (Apple/Cocoa, Android, Microsoft might be .NET but they keep changing what they push like C++CX/WinRT).
Server backends are harder to predict. Lots of competition here. Lots of trade offs from a electricity and heat and hardware cost standpoint, to being able to pull high level frameworks off the shelf to put something together easily, to social engineering challenges of what people in your organization want to do (e.g. standardize on one language for everything).
But ultimately from a career decision, true understanding of how things work and being able to solve new problems is more important than learning a framework. Being able to intelligently pick the best tools/tradeoffs and knowing when they are inappropriate will set you apart, otherwise you are just another religious zealot blindly pushing the same technology for everything no matter how appropriate or inappropriate.
- gamechangr 12y agoOP here - Thanks "dottrap" - upvoted! I appreciate your insight. Any thoughts specifically related to .net and future or lack there of?
- dottrap 12y agoMy prediction: Server side, I expect .NET to look very much like today in say 10 years...still around with lots of people using it, but shrinking marketshare just because the market continues to grow larger (not necessarily because people are abandoning it) and new 'sexier' technologies will continue to emerge and compete in the space (e.g. look at Go and Rust) diluting percentages even more. I don't expect cross-platform desktop client side .NET to significantly grow. Mono has tried this for 10 years. Sun Java tried this 10 years before that. Particularly where both are odd-men out on the 2 dominant platforms, iOS and Android (Android frameworks are very different than classic Java frameworks), I don't see them gaining much more penetration. And at least Apple has shown they aren't sitting still and they are actively trying to woo developers, hence the introduction of Swift. (And then ironically, Microsoft who invented .NET is currently all over the map about what developers should be using to develop for their platforms.)
- M8 12y agoVideo games - Unity 3d though? C++ is for low level engines.
- dottrap 12y agoIf you want a serious career in video game programming, AAA developers/managers will generally prefer candidates that know C/C++ and understand low level details and hardware (like explain why cache locality is the number one challenge in hitting your target framerate and what you can do about it). Generally, in my experience, somebody with only C#/Unity experience will not be taken seriously for this kind of position unless they show they understand all the other stuff (which tends to be rare). Somebody going for level and content designer jobs may get a job if they have Unity experience, however it is not because they know Unity, but simply that they show they can put something together. Most studios have their own custom in-house tools that they will need to train new hires on. (And historically, any direct scripting not in the custom tools is done in Lua.)
- wsc981 12y agoI think for casual games, MonoGame (XNA but for platforms besides Windows) is a very attractive proposition, since it's pretty easy to release a multiplatform game with.
- M8 12y agoVideo games - Unity 3d though? C++ is for low level engines.