The world of technology development is constantly changing, and the smart technologists and smart companies are changing with it. It’s just the way it is. The need to constantly learn new stuff is baked into the process. Do it or fail.
Early on, I was a Microsoft ASP / VB6 developer. Then I went object-oriented, and evolved into an Enterprise Java developer / architect. It was obviously the way of the future. So I jumped, and never looked back.
Then Microsoft fought back with C# and .NET, which was just a copy of Enterprise Java. Picked that up too, though it was more of a lateral move than a progression.
Then Flash & Flex via ActionScript 3, though I didn’t go as deep into that as Java and C#.
Now they’re (mostly) all dead.
Future Microsoft products will not be based on .NET and C#. Windows 8 apps will be based on HTML5 and JavaScript.
Adobe is abandoning Flash & Flex, recognizing that HTML5 and JavaScript will dominate mobile browsers in the same way Flash dominated desktop browsers.
Java is the exception for several reasons, but it’s market position is evolving too. It’s the language of the mobile Android platform – the mostly widely distributed smartphone and tablet operating system in the world. It also remains one of the preferred languages for extremely high-performance server requirements, which makes up for some of its shortcomings against more modern dynamic languages like Ruby and Python.
Finally, the archaic Objective C language remains healthy because it’s the language of Apple’s iOS – the operating system of the iPhone & iPad. I am hoping that MacRuby will soon offer a viable alternative though, since Apple already includes it natively in iOS (though it’s not accessible yet to developers).
So what’s the point I’m making? Well, it’s this…
If you’re still developing in Adobe Flash & Flex, Microsoft .NET, or Enterprise Java, then you’re working on legacy platforms which are dying. Time to change things up.
Java developers need to focus on Android. That’s an easy switch-over. Alternatively, go to Ruby – which is a beautiful and highly-productive dynamic language which is becoming very popular. Or Scala. Or Python.
Adobe Flash & Flex developers AND Microsoft .NET developers need to switch to HTML5, CSS3, and JavaScript / JQuery.
No, let me rephrase that… EVERYBODY who is going to develop a front-end that isn’t a native mobile app needs to switch to HTML5, CSS3, and JavaScript / JQuery.
Finally there’s ugly Objective C for iOS (iPhone & iPad). I use it. I hate it. But it’s the mighty leader in mobile app development, so I’ll just have to deal with it. If you want to do iPhone & iPad, do it. (At least until MacRuby becomes viable on iOS.)
In fairness, I’ll note that JavaScript is also an ugly language, though an extremely capable one. It is the assembly language of the Internet though, so once again all developers should know it, whether they’re front-end or server-side developers (Node.js). Many advanced JavaScripters are migrating to CoffeeScript, which is based on Ruby and Python, and which compiles into JavaScript for execution.
In summary, going forward…
GOOD: Ruby / Rails, HTML5, JQuery, CoffeeScript, SASS
NOT GOOD, BUT NECESSARY: JavaScript, CSS3, Objective C, Java (for Android)
BAD: C# / Microsoft .NET, Adobe Flash & Flex / ActionScript 3, Enterprise Java
Enjoy!!!




Pingback: Tech Pivots | Leader I/O
Pingback: Tech Pivots | Leader I/O
Pingback: Tech Pivots (Revised) | Leader I/O
Chris, I found your blog as I was doing some LivingSocial research. It’s great, but I see you haven’t posted since Nov. Hope you will post again soon; I attended a tech talk last night at Spotify where the topic was Cassandra. If you have anything to say about “big/unstructured data” and NoSQL databases, I’d love to hear that, but would be glad to see any updates, just hope you keep it going, as time allows. Thanks!