Geeks With Blogs

@JReuben1
  • JReuben1 AngularJS Directive templateUrl --> halfway to W3C WebComponents ! about 556 days ago
  • JReuben1 Yeoman AngularJS generator - generate controllers, views, routes, services - NICE! about 558 days ago
  • JReuben1 A comparison of HTML5 Canvas 2D JS libs http://t.co/fcB7jvnhqY KineticJS , EaselJS, fabric.js, Paper.js, processing.js seen as the leaders about 558 days ago

Josh Reuben

For the past decade, Ive focused on the MS stack – but the cheese is moving, and its time to look for more cheese!

Henceforth I will focus on C++, JavaScript & Algorithms.

 

So what happened? NET was well marketed & easy to learn – a massive amount of blogs & reading material ensured the development of communities and pools of skilled employees to draw upon. The language of choice for NET, C#, is a highly efficient programming language, as long as you don't go outside the box.

 

 


The situation for NET devs is dire:

It is foolish to bet your mortgage on the long term viability of any development platform. What goes up must come down, and the software industry is prone to rapid changes. Do you seriously expect todays skills to be relevant in 10 years?

 

  1. NET may be highly productive, but it is relatively idiot proof (compared to C++, JavaScript) - so attracted a fair few mediocre devs ! Stop patting yourself on the back because you know MVVM.
  2. the pit of success is in fact a pit - a career race to the bottom - NET was the apex predator, but the pool it swims in is drying up. C# devs are pumped out of courses at an alarming rate, while the non-viability of post-Win7 is making IT departments evaluate non-NET friendly platforms. This is supply & demand - there will be glut of cheap NET devs in the near future, all scrambling for the same cookie-cutter jobs. When the avalanche starts, it will accelerate rapidly.
  3. There has been nothing major new in the platform over the last 3 years (async is too small to count) - what have NET devs learnt in this time ? Compare this to the revolution of NET 3.0 (WPF / WCF / WF v1), NET 3.51 (LINQ, EF), & NET 4.0 (TPL).

The fact is, NET just didn't have a tangible ROI for MS (it wasn't a product), but it helped with portability lockin for application servers & dev stations – & that can only work if a critical mass of win OS deployments remains the status quo.

A Productive Framework … for Windows

 

Only 8% of .NET 4.5 classes can be used in Win8 non-desktop apps - http://blogs.msdn.com/b/dotnet/archive/2012/04/17/net-for-metro-style-apps.aspx 

 

Once people figure out they don't need Windows, NET has no where to run on - lets look at the options:

  1. Non-MS platforms via MonoTouch / MonoDroid
            •    costs: https://store.xamarin.com/  $1000. In comparison: Eclipse is free. XCode is free.
            •    will always be a gen or 2 behind & not be able to use the many 3rd party libs designed for IOS / Android platforms
  2. WP8  tablet mode – low market penetration, & only 8% of NET can run here.
  3. Win8 (non legacy tablet mode) – supports C#, but not NET – need to port to WinRT, recompile for ARM, sideloading for LOB apps is horrendous – why bother for low market penetration ?
  4. Azure
                    Azure PAAS – low market penetration
            Azure IAAS – not restricted to Win7 VMs, so makes no diff
  5. Win2012 Server – low market penetration

Conclusion: As MS is not selling Win7 anymore, and corporations wont upgrade to Win8 even for desktop mode ? NET is heading to legacy land.

 

 

Having said that, I've pretty much decided to put NET behind me.

 

A Graveyard of APIs

I consider the past decade a wasted effort of personal esoteric research in MS APIs, for the following reasons:

  1. DOA APIs: Oslo, Software Factories, MBF (project green), Whitehorse (ACD), WPF, Silverlight, Sketchflow, XNA, Spec#, Accelerator (.NET GPGPU),IronRuby, RIA Services, English Query, Solver Foundation, DryadLINQ, XSG (Farenheit), MLNet
  2. Quietly forgotten APIs: SQL Server Data mining + DMX, Robot Toolkit
  3. Coma of limited serious adoption: HPC, WF, F#, Azure, LightSwitch, EF, MDX, WinRT , DirectX (in Israel anyway), StreamInsight, HDInsight, Gadgeteer, NETArduino
  4. Terminal: ASP.NET, IIS, XAML - not needed anymore in a HTML5/JS world – we have NodeJS, AngularJS etc      
  5. Solid but bloated: XAML, WCF (SOAP has been superseded by REST, then by ProtoBuff), SQL (superseded by NO-SQL), Visual Studio (API bloat), TFS (ALM bloat)

Whats left that's innovative in NET: LINQ, TPL, RX

Developers, Developers, Developers …

We are a long way from developers, developers, developers - MS is refocusing on becoming a devices [that the market has rejected] and services [which boils down to VM re-hosting]

Services

Azure is not the solution for a NET dev - problems:

  1. do people really need the cloud - we got on fine without it. Was it just to counter the Linux server threat ?
  2. there have been some serious downtimes
  3. PAAS is nicely productive, but failed because people don't want lockin
  4. demand is just for IAAS - so is MS just another VM rehosting provider ?
  5. would Orleans replace NET ?

Devices

Win8 fail points:

  1. Metro is ugly & will quickly become dated
  2. businesses will not move to it - it wont support their legacy info systems & side loading is non-viable
  3. stiff competition - Win8 faces a market lag behind cool, cheap & multiple players - insurmountable

Win8 == death of .NET - there are 2 grim scenarios:
       

  1. success scenario (unlikely) - WinRT replaces alot of NET, XAML is just a verbose token effort when you have JS, C# is just a WinRT component ‘scripting’ language.
           
  2. fail scenario - because no-one is buying its target platform, NET is not developed beyond v5.x

Win8 does have a dirty trick up its sleeve though - the UEFI monopoly on laptops
        Ubuntu is idiot proof, but has zero marketing –>and thus zero market awareness.
        computer stores & OEMs just do not stock desktops / laptops with Linux pre-loaded OS's
        UEFI stops Wubi - the UEFI secureboot story is currently a bit of a trainwreck: http://www.linuxbsdos.com/2012/11/05/dual-boot-windows-8-and-ubuntu-12-10-on-uefi-hardware/

How MS could lose enterprise computing


        At this point I don't see Google / Linux attacking MS on their home turf - enterprise computing.
        The current IT department lock-in stems from skills & infrastructure built around MS Office & the NET framework. 
       

 

EEE (Embrace, Extend, Extinguish) will be much harder this time

Now that JavaScript has won, there is no great need for IDE bells & whistles.

MS has recognized this, & is scrambling to find some kind of lockin inducing strategy for applications requiring visual studio support (and thus windows):

  1. Azure PAAS & AD security
  2. TypeScript (get C# into your JS implementation)
  3. EdgeJS (get C# into your NodeJS implementation
  4. HDInsight (get C# into your Hadoop implementation).

Viva LibreOffice

Office cannot be relied upon to always be a cash cow with demand that requires Windows.


        Canonical has done an amazing job with Ubuntu & LibreOffice - It is a viable competing platform & is just a saner economic choice than Win8 + Office 13 licensing in the workplace.
        However, Ubuntu has zero market mindshare - people are just unaware of its viability.

        Likewise, Google is not exactly ratcheting up the marketing engine for ChromeBook & Google Docs in the enterprise.


        If Canonical solves its UEFI issues, and both Canonical & Google start marketing their competitive platforms, then MS could be in serious trouble: Instead of guarding their enterprise hen-house (which they have deemed 'legacy'), MS is focusing on an uphill battle in the consumer market.

What could make me change my mind (but is improbable)

  1. MS kills Metro UX –and shoots the Patridge family for suggesting it!
           
  2. WebGL support in IE 11 + JS support for DX
           
  3. A NET migration story for LOB apps to run in Win9
           
  4. Finish open sourcing it - NET platform independence - the fact is Android has usurped windows everywhere but the office
           
  5. A whole new set of functionality & abstraction in NET vnext – surprise us, take us to another level.

Side note: 2 years as an MVP

2 years ago , I was a lot less jaded – I enjoyed the MS dev ecosystem, and scoffed at the term “year of Linux of the Desktop” – (funny how that turned out with Android running on a Linux kernel).

In 2011, I applied for an MVP award in the area of Technical Computing (which is my area of expertise). During this process, the Technical Computing group was dissolved and scattered to other groups - I found myself awarded an MVP … in System Center, which I knew nothing about !

In 2012 I applied again – this time I received an award in Technical Computing, but found myself in the Azure group !

 

I enjoyed the perks of being an MVP, but as I am heading in different directions, needless to say I wont be re-applying this year !

The fact is I have 3 degrees (BSc Comp Sci, Grad Dip Biotech, MSc Bioinformatics), and I don’t feel the need to promote a specific vendor under the auspices of an additional certificate of technical adeptness. So thanks MS, & good journeys on your road.

 

Well that’s my 2 cents

As the human torch says, flame on !

Posted on Thursday, May 30, 2013 8:52 AM | Back to top


Comments on this post: Putting NET Framework behind me

# re: Putting NET Framework behind me
Requesting Gravatar...
You rather come across as a disgruntled developer than someone with vision and foresight. I only express the impression I got after having ready your post. Most all of your argument rests on the bleak outlook for Win8/Metro/WinRT. While I agree with that assessment that is far from what MS has to offer and I am almost certain that not so in the far future MS will admit Win8 was a flop. The company is nowhere near betting its entire future on Win8 or WinRT. With that goes most of your argument.

While you are right that the job market may motivate you to work in niche areas that command higher premiums, combining this with a round-ax that fire storm you rain down on MS seems far-fetched to say the least.

Good luck in your endeavor I liked/still like your blog posts and learned a lot reading them but hugely disagree with your MS and NET assessment.
Left by Matt on May 30, 2013 9:17 AM

# re: Putting NET Framework behind me
Requesting Gravatar...
I've read your post, and I agree that Microsoft has made mistakes here and there. But to spell doom? Really?

I don't know how things are being done over there, but if you look at the global enterprises, the successful ones run on the MS stack.

Wake up! businesses lead us developers and the development stack, not the other way round. Just because you prefer a particular set of technology does not mean that its the practical and viable for businesses.
Left by Math on May 30, 2013 10:03 AM

# re: Putting NET Framework behind me
Requesting Gravatar...
MS doesn't face doom - they have enough cash to turn things around several times. However, until I see such action take place, its just wishful thinking.

NET is a mass-market generalized productivity framework for information systems. however, the kind of work that NET is NOT designed for - algorithmics, high performance, high scalability - is what interests me.

These areas are apparently in demand with short supply - it requires a more complex & rarer skillset, so is a more viable career option, in my humble opinion.
Left by Josh on May 30, 2013 10:12 AM

# re: Putting NET Framework behind me
Requesting Gravatar...
I can't speak for the future of .NET, but I think its a bit strange putting your skills in one basket?

People really need to get out of this, I am a PHP developer, I am a C# developer etc frame of mind and rather get into the I am a developer (in whatever's needed) frame of mind.

End of the day its futile for an engineer to be defined by the tools he uses. That is why I am unconcerned if .NET would even last the next 10 years.
Left by Christoff on May 30, 2013 11:08 AM

# re: Putting NET Framework behind me
Requesting Gravatar...
In all fairness, NET was a pretty broad basket.

Whilst it is a easy for a dev to label him/herself as a generalist developer [because they read & comprehend a bit of everything], career path navigation is not so kind - we are constantly labeled & categorized into specialized boxes based on past experience.

Also, some dev skills are less-fungible & take years to construct: Numerical Recipes, Mathematica programming , OpenGL.

The broader you aim, the longer it takes to consolidate such skills. When I read 2-3 programming books a month, I am delaying / forgoing experimenting in specifics. Its a tradeoff - I enjoy having a holistic perspective and can jump into many different areas, but I dont have time to implement everything I research.
Left by Josh on May 30, 2013 11:25 AM

# re: Putting NET Framework behind me
Requesting Gravatar...
Its unfortunately/fortunately something that comes with the terrain we find ourselves in.

Constantly changing, always evolving - I can't even start to tell you in how many languages/technologies I've worked over the years.

And obviously you will find technologies/ideas overlapping.

But I love the rapid progress and find it all very exciting.

Left by Christoff on May 30, 2013 11:39 AM

# re: Label
Requesting Gravatar...
Its easy to be labelled as something I agree, but that's why I try my best to stay diverse.

I recently put myself on the market again and got contacted with positions in every imaginable tool (someone just contacted me about objective c)

So I am definitely not labelled as anything.
Left by Christoff on May 30, 2013 11:49 AM

# re: Putting NET Framework behind me
Requesting Gravatar...
Man, you've made my day, so funny dead wrong assumptions:) all team just ROFL...
Left by Lex Lavnikov on May 30, 2013 12:24 PM

# re: Putting NET Framework behind me
Requesting Gravatar...
I did not mean to burst your bubble lex, this is just my opinion. I happen to enjoy the power of C++ 11 dev much more than the same old C# recipes ....
Left by Josh on May 30, 2013 1:19 PM

# re: Putting NET Framework behind me
Requesting Gravatar...
LOL

Your a hypocrite.

"What goes up must come down?"

And my favorite

"Do you seriously expect todays skills to be relevant in 10 years?"

Is that why you're moving to C++ and JavaScript, technologies that are way older than 10 years?

LOL, I stopped reading your article after those sentences.
Left by Vince on Jun 04, 2013 12:22 PM

# re: Putting NET Framework behind me
Requesting Gravatar...
Vince, its hard for an MS fanboy to accept it, but there has been a tectonic shift in software engineering (as always) - for information systems JavaScript won, and for perf-centric apps, the free lunch is over, requiring un-managed code.

C++ 11 (& upcoming 14) is not your grandfather's C++. Likewise, JavaScript is rapidly advancing with a proliferation of frameworks (eg AngularJS, NodeJS, WebGL) & upcoming W3C WebComponents & EcmaScript6.

On the supply-side, C# ease of adaption sucks in all the mediocre devs , while 6-month NET courses continuously pump out C# cookie-cutter factory workers. Its hard to find good C++ devs that dont leave dangling pointer memory leaks or JavaScript devs who dont abuse the Global namespace!

On the demand-side, the apps we are building are different from 5 years ago: 'Big Data' requires high-performance, non-windows majority devices require Java / ObjectiveC, & cross-platform information systems require JavaScript.

Good luck with .NET (it was fun for me for the past decade). Only a bull cant change its path - maybe you will find yourself in a cubicle between a COBOL dev & a VB6 dev !
Left by Josh on Jun 05, 2013 8:53 AM

# re: Putting NET Framework behind me
Requesting Gravatar...
This Stackoverflow tag trend for .NET says it all:

http://hewgill.com/~greg/stackoverflow/stack_overflow/tags/#!.net - sayonara !
Left by Josh on Jun 22, 2013 2:25 PM

# re: Putting NET Framework behind me
Requesting Gravatar...
Seems you have overcome the drag of past choices, aka "you are what you choose".

IMHO is Christoff the most aware by avoiding choosing completely, the other commenters are clearly limited in choice.

I think the 8% is a fairly strong argument and I would have liked to hear some good argumentation from somebody who chose to stick to C#.

Maybe you recognise.. After my job turned into fixing other people bad code, I got a bore-out in 2009. I switched from Java to C/C++, which I think is my best choice ever, which in turn brought me to OpenCL. Now reviving my knowledge on functional languages.

I think you like my article on the subject (too high-level languages): http://streamcomputing.eu/blog/2013-08-14/that-is-not-what-programmers-want/
Left by Vincent on Oct 14, 2013 2:54 PM

# re: Putting NET Framework behind me
Requesting Gravatar...
I share your sentiment toward .NET and other MS technologies in general. And agree with your assessment of the job market for ".NET developers" (whatever that means), which is bleaker by the day.

One thing i disagree is SQL Server. Advanced SQL devs are still coveted today (not generalists who only knows select * from table1 order by col2).
Left by Billie on Jul 22, 2014 9:54 AM

Your comment:
 (will show your gravatar)


Copyright © JoshReuben | Powered by: GeeksWithBlogs.net | Join free