Hacker News new | past | comments | ask | show | jobs | submit login
The dying platform: .Net (roundcrisis.com)
56 points by caitriona on May 15, 2013 | hide | past | favorite | 108 comments



.NET, like practically all tolls by Microsoft, is good for one thing - Large scale enterprise development for Windows. It plays well with Office, Access, Sharepoint, Active Directory, IIS etc. and it's the best around at what it's doing. You can also do webdev or solve highly concurrent problems with .NET and it's great at that as well (I'm very fond of the Nancy framework and C#'s async/await are a godsend) but it's not inherently better at these than any other language. So no, .NET isn't dying nor do I feel it has lost momentum. It's not really doing anything crazy or new (ahem go ahem) but it's still as good as ever in what it was meant to do - general purpose programming language for Windows.


".NET, like practically all tolls by Microsoft, is good for one thing - Large scale enterprise development for Windows."

It came so close to being Android. In 2000, Microsoft previewed .NET Compact Framework for Windows CE devices. At the time I had an iPaq connected via Bluetooth to an Ericsson 2.5G phone, and I writing C# apps for it. My immediate impression was "THIS is what mobile software should be like!"

Seven years later, with NETCF an optional oddity on Windows Mobile, Android showed you could do a mobile OS using a Java-like managed language system for both system middleware and applications. Windows Phone is a bit closer, but it still isn't that.

Android was willing to be more revolutionary, replacing much of the Linux userland with managed language code. That was a big gamble, but that is what it took to succeed. If Microsoft were to take the Win 8 kernel and .NET, or successor technologies, and unleash their engineers to make something really new, they would be a fearsome competitor.

Dragging Windows onto tablets is a waste of talent.


I agree. I've recently noticed a huge amount of .Net resources for the Microsoft Cloud based on Azure, Office 365, SharePoint Online etc. I expect there'll be lots of money made piggy backing LOB .Net applications off these services.


While I agree that the C# language is wonderful and some of the .NET framework is very well designed, I think most of the .NET 'Enterprise' SDK's and API's are terribly, horribly overengineered and complicated. SharePoint, Dynamics CRM come to mind. I wish this part of .NET would die, but I am not convinced it will go away anytime soon.


QFT. It will stay on the enterprise market for years to come. In fact, that's where I see MS going. Sort of the path CA has taken with mid/main frames.

MS has to come to the conclusion that it is not a consumer tend setter any longer. Consumers only use Windows because it came on their PC. And as more and more of the consumer market goes mobile, Windows becomes irrelevant. And (sadly for MS) they were too late to the mobile market so their devices (phone and tablet) are going nowhere. I got a friend who works at Best Buy who told me no one is buying the Windows phones. And few are buying the tablet. It's IOS and Android all the way.

MS should focus all it's eggs on enterprise. Plenty of cash to be made in that market.


Don't forget the desktop sector, which isn't entirely dead yet. Pretty much everything is better than MFC, and with Delphi going nowhere (for obvious reasons), a lot of people writing relatively small custom software apps transitioned to .NET, either with C# or VB. Don't think that will change that much with WinRT. (JavaScript seems mostly an angle to get some web developers to do small Metro apps)


I think MS have lost a lot of support on the desktop after deprecating Windows Forms (which is all a lot of enterprise apps need), followed by WPF/Silverlight's poor penetration leaving no hardware accelerated graphics for non-WPF (bit blitting excluded), and then the confusing messages around WinRT which at one point looked like they were deprecating WPF as well.

While the front end flashy stuff isn't there compared in .net compared to the better Javascript libraries (I love d3!) MS have really progressed the non-sexy .net improvements e.g. C# evolution, F#, WebAPI.


Microsoft has too many developers and not enough innovation. They encourage a design attitude that everything has to operate like the flight deck of a 747. Their culture has been incestuous so long that any change is terribly unlikely.

There are some really, really sharp guys at Microsoft. Not only does the community deserve better products from such a great company, the developers in many cases have an very unpleasant work experience.

Google is not too far behind. I think they're pushing a lot of the things they are simply to keep momentum building. In another 20 years, unless they start building time machines, it'll catch up to them, too.

Apple is a strange case. They passed the "I wouldn't work for them for a million bucks" point many years ago, but they're just better at slapping a better marketing image on it than the rest of them.

Having said all of that, I like .NET, and I think combining it with Mono makes probably the most full-featured free platform for development anywhere in the world. The effective targeting of the business market by .NET may be waning, but the platform is nowhere near dying off.


Microsoft is so hit or miss. They're incredibly innovative in the research department, but business tools are definitely overcomplicated (Dynamics, SharePoint). I use C#.NET daily, and it is the programming tool I'm most in love with. There is no easier way to make business desktop apps, and with the new MVC and Entity Framework libraries, there aren't many easier ways to make significant web applications (i.e. beyond a to-do list or blog). Azure level of functionality makes other cloud companies look almost archaic.

I think where they're losing is that they've stopped communicating. With customers, with developers, even internally. They are proceeding down paths they imagined to be important. Some of them are, some of them aren't, and thus the hit-or-miss nature of their current business. I think a lot of this is Ballmer. He's trying to be a Jobs and failing miserably, when all he needs to do is allow his people to actually communicate with the community.

Another part of it is that they can't do anything these days without a bunch of FUD from the media and Anti-MS sheep. I actually like Windows 8 and appreciate the innovation even if there are some hiccups to take care of. .NET is great, and I hope they make it easier to move forward and migrate existing apps to whatever they do next. Will they die anytime soon? Probably not. But if they don't start communicating soon and often, they'll lose some market share for sure.


>They encourage a design attitude that everything has to operate like the flight deck of a 747

I agree. If you have ever done any development using SharePoint or Dynamics CRM API's and SDK's you will know how much of an overengineered mess these applications are. The unnecessary complexity of these applications does however create demand for thousands of developers to untangle the mess.


I feel very sorry for my friends who are actively writing projects in the latest .NET Whiz-Bangedness.

They're all so optimistic, with regurgitated Microsoft marketing-speak about how this bell or whistle is going to magically solve this or that problem, and how easy everything is to do now. They've been eagerly awaiting a new customer to try this stuff out on.

Then, sometimes just within days, I start hearing the pain. It's always the same -- the damned development ecosystem is a freaking nightmare and some little gotcha somewhere is killing hours (or days) of time.

I used to teach .NET. Everything is awesome as long as you go down 7 or 8 pre-defined paths. But nothing ever works like that in the real world. There's nothing like watching a new developer drag a control onto a form, take a look a the properties page with it's 40-thousand item madness, and be utterly and completely at sea. Lost. Bewildered and rendered ineffectual. Their stuff is full of experiences like that.


Absolutely spot on, and I have exactly the same experience.

What completely baffled me when I did quite a bit of SharePoint development of late is, that you are essentially doing web application development, except everything you know about web development is somehow not valid anymore because it has been buried under layers and layers of abstraction.

So you have to go on at least one SharePoint development course, to re-learn web development as you know it.


Several years back I had a friend with a small business who wanted to do some SharePoint stuff, so I picked up 3 or 4 books on it and read them all.

Oh. My. God. That tool will solve world hunger, land a fighter on a carrier deck at night in a storm, and compute the answer to life, the universe, and everything. It does frickin' everything.

So it also does nothing. You end up having to digest a huge learning curve, creating all these specialty libraries to handle workflows, understanding that you need a view for this, a link for that. It's like having to learn Klingon just to get a cup of water.

Whenever I hear SharePoint any more, I just smile. It's a great tool, and it can do an incredible ton of stuff. I just know the pain that's involved with it, and unless I have no choice I want no part in it -- except for maybe using it as a document repository, and even then Dropbox does all I want with zero learning curve.

Microsoft is constantly distracting me with the coolness of their tools instead of enabling me to quickly solve somebody else's problem. The developer has become the market for them -- and that's really bad for both developers and end users.


Thank you very much, those comments made my day :). I very much share the sentiment. I am developing in SharePoint and I am sometimes impressed at what it can do; however lately I have been thinking of jumping ship and start developing small business applications (in Golang) that solve user problems quickly and iteratively.


Java isn't looking too good, either, at least in the desktop. You know your platform has jumped the shark when it comes bundled with a toolbar.

The question is, where to next? I've been watching Go for a while, but it looks like a tool from Googlers, for Googlers. Pulling all my dependencies from HEAD? No, thank you. Ironically, Javascript looks very promising right now, compared with the alternatives.


I find it strange that people are hung up on this remote dependency "issue." It's a convenience for small projects and quick samples. There is absolutely nothing stopping you from checking out a Go package locally and importing it just like any other dependency in any other language.


It encourages package creators to simply maintain a master branch instead of creating stable releases, and this can turn into a huge headache down the line.

Let's take a recent scenario: the YAML vulnerability in Rails. What if a similar vulnerability is found in a widely-used Go project? Well, you can move to HEAD, but you have no idea what else changed in the meantime. It's impossible to know how your application may break. Or you can try to merge just the security patch, which may not be trivial.


I'd have to agree here. There is no difference between Go's way of managing external dependencies, compared to any other language/platform where you use external packages. Whether they are manually downloaded and built, or pulled from some kind of source-control repo. The `go get ...` approach is just a convenience tool you can use /IF/ you want to.

I get the impression that much of the complaints stem from not really understanding what is actually happening. It's a shame really. People taking a first look at Go, and running into these kind of rants will get an entirely incorrect impression of the Go tool chain.


The real shame is that so many people are willing to outsource their opinion-building to random ranters on random message boards.


Which is pretty much why people think .Net is dying in the first place.


"You know your platform has jumped the shark when it comes bundled with a toolbar.", that was such a sad episode. Oh well, while the Android ecosystem doesn't make a switch, I guess I'll keep using it.


It's coming, with the head of ChromeOS taking over Android now.


How exactly is Javascript a promising alternative platform to the JVM or .NET? Javascript is a language. Which Javascript platform are you talking about, that provides alternative ways to do what JVM and .NET do?

The JVM is getting better and better, by the way. Java 8 will be a better language with lambdas and closures. Groovy, Scala, Clojure, Jython, JRuby, and other JVM language implementations are currently great options for developing both portable desktop apps and web apps.

Not sure where Go fits into this either, Go is more of a replacement for C++ by and for Googlers who got sick of C++'s pain points.


With HMTL 5, Javascript, and a fast VM, you can do a lot of damage nowadays.

And the problem with Java isn't technical. I have a couple of Sun certificates, use it every day, and know what it can do. The problem is that I don't want to depend on a company that doesn't even pretend to have customers and developers' best interests at heart.


Oh, I'm not a fan of Oracle either. Who is?

But I think you're confusing a language with a development platform/VM/runtime.

C# is a language. .NET is a platform that includes a C# compiler. Java is a language. JVM is a platform that includes a Java compiler. Javascript is a language, not a platform.

What Javascript platform do you think can replace .NET and JVM? Node.js on top of V8?

Or are you really suggesting that Javascript inside a web browser is all you need for application development anymore?


Frankly, I'm not sure. A stripped browser + Node.js sounds pretty compelling, but there are tons of projects using Javascript or offering Javascript bindings right now. It could be Qt 5, for example.


What killed go for me, except for the unplesant "mangled c" syntax, was the importing. When I read about that remote import nonesense I laughed a bit and marked it off.


The remote package importing is quiet easy to work around and to lock on things. It actually forces you to think about the process and tracking more. But also, dismissing Go solely because if that doesnt do it justice. Same as any language...


The Java browser plugin is thankfully dying--that's what comes with the toolbar.

Java on the server is still going very strong; in fact I believe many of Google's services are still coded in Java.


Java started out as a language for creating interactive apps on set top boxes. In a way, Android is a more natural home for Java than servers.


I like Haxe as a Java replacement.


You want to do JavaScript on the desktop? No. Go learn Python and Haskell.


In fact, I was looking into something like this, so I could theoretically do Python or Javascript with Bootstrap: http://bellite.io/docs/quickstart/


Haskell on the desktop? You should have stopped with Go.


No no, I want to use Haswell on the desktop!


.NET has a long life ahead of itself in the enterprise, where companies on "the Microsoft stack" typically won't even use 3rd party libraries where there is a Microsoft sanctioned alternative. Until Microsoft comes out with a replacement for things like Windows services and web application development, .NET will be around.

I don't see there being an alternative even on the horizon. Presumably they could create a Node.js type of platform backed by Chakra but there aren't any signs that they are even working on such a thing.

(Also, throwing out .NET would mean throwing out F# which gives them a lot of cred in certain circles).


Keep in mind that .NET is relatively new to the enterprise and lots of those companies didn't even get out of cobol yet.

Opinion:

Timing is a important factor here. My bet is those enterprise companies skipped the .NET/JavaEE era and will jump right into what is coming next.

I know a couple of banks that are heavy Adabas/Natural users for decades. When .NET/JavaEE boomed they opted to just wait. Now, no single framework can really solve most of your problems. In fact, the problems are so heterogeneous that using frameworks at all is becoming completely irrelevant.

That said, .NET, JavaEE, Rails, Django, they are all dead to a certain point. What we will see is the rise of the non-frameworks. People will start doing their own stuff on Go (or anything else) and maybe will start open sourcing parts of it. You will have a lot of mini libraries that you will put together to fit your needs.


I disagree, many if not most cities in the East coast have been dominated by .NET since at least .NET 2.0. There are cities where it is hard to find a programming job in anything else. And the holdouts are mostly old Windows-centric tools like Delphi and VB6.

I also disagree with your outlook for the future. Enterprise loves frameworks only slightly less than they love expensive proprietary software packages where support is built-in. I'd love to see non-Microsoft tech like Go move into the enterprise in a serious way but I don't see it happening. For most of these companies their developers have no experience in anything but the Microsoft stack and a good portion of them either can't or won't learn something else. So you're immediately talking about losing a large chunk of your staff. And good luck finding Go developers.

I can't see Microsoft abandoning this segment so it doesn't make sense to even talk about alternatives.


> You will have a lot of mini libraries that you will put together to fit your needs.

Like a framework?


And also on the Desktop of every Windows OS, since .NET for-the-most-part is the new Windows API - an abstraction layer that sits and manages the older Win32 API (yes, it's also a few other things – framework, library, runtime, etc).

The author of this peace works on making games. Hence why she thinks .NET is "dying". Her reasoning (points) have little to nothing to do with her argument and just seem to be there to help influence the clueless readers and to collect those that have agendas or chips on their shoulders (80 up votes for this delusional blog post).


I've been programming .NET since 1.1 and love the platform. It just works. But, I pick my technologies carefully. I called silverlight not working out. I've been staying away from WCF/WPF. No one writes in the news when something goes right, only wrong. This article is more rabble rousing than anything. You can focus on the things that are going wrong. If you are putting out new technologies, some are going to fail. That's the nature of the game.


I agree - Silverlight was obviously a tactical response to the threat of Flash. When Flash went into (steep) decline, there was no reason to keep Silverlight around. Both of us called this one correctly.

WCF, on the other hand, is doing really well and is a decent approach to a framework around enterprise communications. But I admit that more often than not, I'm hand-coding my proxies to avoid code-bloat from generated DTOs (I'd rather use a reference to a shared DLL so the compiler alerts me to breaking changes)


There's something about WCF that rubs me the wrong way. I like coding Web Services. WCF just feels like bloat on top of web services. And traditional web services can be used cross-platform. I'm not sure WCF can. Maybe I'm just sticking with not fixing something that's not broken.


I think the sweet spot for WCF (for us at least) is for our internal APIs. The ability to easily expose the same service over a binary TCP stream or over HTTP makes a fantastic tool when you're trying to get a lot of different systems to talk to each other.

For external or HTTP-only APIs I completely agree that it's often overkill. Frameworks like servicestack are much easier to work with in those cases.


Exactly: WCF == bloat.

Bloat in XML, bloat in configuration, bloat in object model...


You know I was playing around with ASP Web Pages (Razor) and loved it. Too bad WebMatrix is Windows only.


Razor is the worlds most advanced and easy to use view templating enging. It's the easiest and most succinct view engine I've ever used and is a joy to work with.


Seriously? Razor is just C# and strongly typed languages do not work well for templating. It's exceedingly difficult to make reusable partials in Razor, for example.


According to a lot of job sites .NET isn't dying at all...

Maybe the author has the feeling it is dying because other platforms are in the news more often?


Yeah - I can tell you as a C# developer, I get contacted on Linked in several times a week. I'm not looking at all. And if they look at my history, they can see I've been at my current job just 6 weeks. That doesn't slow them down.

As mentioned above, enterprise solutions are huge. There's a lot of money there, and they rely on Microsoft solutions. Sharepoint 2010 has hooks into Dynamics CRM (accounting and CRM), data workflow and reporting (SSIS/SSRS), etc. I've only seen glimpses of 2013, and I think it'll be slow to catch on (as is typical in the corporate cycle) but it will likely be huge in the future.


As a .NET/C# developer, I couldn't disagree more with what the author is saying... So much so, that I really don't think he/she even knows what .NET is.


A few weeks back I spent a weekend playing around with .NET and Visual Studio, I was very surprised by how pleasant the language (C#) and the IDE was to use. Also, I went into it with virtually no C# experience (only Java), and I pretty much picked it up immediately, I'm sure there are many differences but I was able to figure out the syntax immediately.

I found the IDE really nice, and the debugging tools really powerful...Also desktop app creation felt super easy. I probably won't use C# for prime time since I develop almost exclusively for Linux, but it's always nice to peek over the fence :)


I remember the TechEd conference when C#/.net was introduced. The put up some Java and C# code side by side, it was almost impossible to tell them apart. They justified by saying they were both influenced by the same languages, but to be honest ".net" seemed like it was pretty much aimed as a play against Java at the times (CLR == JVM, C# == Java etc.)


The dev tools for the .NET ecosystem are bar none. It's one of the only things I miss about working with C# when I switched over to Ruby. That and Linq. :P

Give me a visual debugger over some terminal crap any day.

In this regard RubyMine is a very good solution to debugging Rails applications and Ruby code.


It's kind of been that way since VisualStudio 6 I think, the MS debugger in VS6 was quite neat. The visual debugging tools were always pretty good.

Hmm, this has got me wondering if there's anything like this available for vim, this looks like it might be neat:

http://vim.sourceforge.net/scripts/script.php?script_id=663

But no C/C++ support. Could be useful for Ruby though.


From what perspective are you coming from that you think .NET is dying (student, education, corporate, open source)?

MS has never been a technology leader as they tend to let others make the early mistakes then charge in, ask Netware, OS2/IBM, Sony, Netscape.

Early bird gets the worm but the second mouse gets the cheese!


All of the above?

A little background: some of my earliest bits of programming were on VB5, then VB6, and then .NET 1.0 when that first showed up. I spent most of my early years on MS platforms, and for the most part I liked them.

I picked up a Surface RT to hack on last year, after a long absence from .NET. The state of .NET shocked me.

For one thing, the subset of .NET that's available on WinRT vs. "real" Win8 vs. WinPhone is really poorly defined. The documentation is incredibly fragmented, and it was very frustrating the even some relatively basic utility classes weren't available on some platforms. It was a struggle trying to cobble even a basic WinRT app together because of how much trial and error there is ("does this class exist? oh shit, no, okay... what's the equivalent class that's named slightly differently in a slightly different namespace...")

There's also a tremendous lack of open source. I develop iOS apps for a living nowadays, and open source is a huge part of that community. .NET has a huge lack of it - everything substantial is proprietary and commercial. Where I can Google for a bit and slap together some libs in an hour on iOS, on .NET it's downloading the trial libs of some commercial libraries, trying them out, adding the totals, and realizing that the same feature set will cost you $10K a year for these licenses. The alternative on Android/iOS is free.

A more general complaint is MS's schizophrenic support of .NET. When .NET 1.0 first came about it was touted as Microsoft's long-term direction. This was the new platform, and we can count on it being supported as a first-class citizen on all MS platforms for a long-long time. That didn't pan out exactly. Microsoft has a really bad habit of making 90-degree turns every so often that destroys any developer trust. You can't rely on anything on a MS platform because in 3 month's time they could pull the rug out from under you with little to no warning.


Some of the things MS pulled the plug on needed it. I can’t vouch for WinRT development but the .NET 4.5 is rock solid and predictable for WinPhone & Win7/8 from my desk. Have you used NuGet yet with over 1100 packages?

Microsoft is a public company that makes software and sells it for a profit, what is wrong with this business model?

All the free open source software you use to make a product, do you then give your product away?


> "Some of the things MS pulled the plug on needed it."

Sure, the complaint isn't about pulling the plug on things in general, but rather how fragmented and difficult the documentation has become.

If class Foo has been deprecated in favor of class Bar in a different namespace, say so on Foo's page. If class Foo is a basic utility class, it would greatly help if the documentation could point to Bar, if Bar was the supported equivalent in WinRT.

Things like that. Considering how sparse the community support can be (I find .NET discussion on StackOverflow to be substantially less voluminous than, say, iOS/Cocoa dev), the reliance on first-party docs is not really optional.

> "Have you used NuGet yet with over 1100 packages?"

Yes.

> "Microsoft is a public company that makes software and sells it for a profit, what is wrong with this business model?"

You seem to be under the impression I'm railing against Microsoft. I honestly couldn't care less about Microsoft's business model. I'm strictly speaking from the perspective of an app developer - a demographic Microsoft seems to be keen to court. My experiences so far seems to indicate 3 choices:

- Develop on Android/iOS, gain access to enormous volume of free (as in beer) libraries that will speed my work along and make my life easier.

- Develop on WinRT (and WinPhone? my exposure on that side is limited) and home-brew a lot of core utility functionality because it doesn't exist in free (as in beer) form.

- Develop on WinRT and pay astronomical licensing costs for core utility functionality, which is an easier pill to swallow if the profitability of the Windows Store is more reliable.

This isn't a philosophical argument about profiting off of code, about the freedom of knowledge, or anything like that. This is a plainly pragmatic argument about developing for Microsoft's latest-and-greatest platform, and how there are very large consequences that make their platform much less attractive to developers as a consequence of both their business model as well as their approach to support and documentation.


I agree with you on the lack of iOS & Android support in .NET so far (i'm using Xamarin to bridge this now).

But I am personally confident MS will attack this market with full steam and deliver native tools to their developers sooner rather than later.


I think that the addition of WinRT has made a lot of things much more complex in the short run, but I'm willing to wait and see - I think that the long term vision of a portable subset that runs everywhere is pretty attractive. This is definitely a time of transition, so there's going to be some pain involved as everything gets sorted out.

I think you're a bit off base on open source - there's not the same level of emphasis as on some other platforms, but there's a fair amount of high quality open source stuff for the platform, whether by Microsoft (F#, ASP.NET MVC, etc.) or by the community (Mono, Service Stack, nHibernate, etc.). The move towards NuGet packages has increased the momentum here significantly.

I also think that you're not being fair when you talk about Microsoft switching directions on developers. It's certainly true that the new hot MS technology may come out in 3 months and the way you've been doing things may no longer be recommended, but I can't think of any company as good as Microsoft at supporting their legacy technologies.


A more general complaint is MS's schizophrenic support of .NET.

But, but, but, Silverlight.


Since you've been away from .NET for a while, you may have missed nuget[1], which makes it super easy to incorporate open source .NET libs into your projects directly from visual studio.

[1]: http://nuget.org/


A more general complaint is MS's schizophrenic support of .NET

How so? Microsoft has been completely behind .NET for a decade now. Early on, some .NET advocates demanded that Microsoft only back .NET, with complete ferocity (e.g. that Win32 would become a second class citizen), but that was silly to begin with and is unnecessary.

Various technologies that might have used .NET have come and gone, but Microsoft has been completely behind .NET.


One of the things that I've often thought MS could do to attract more developers to this platform, is to release the brilliant piece of software that is Visual Studio, for FREE. Not just the "Express" edition...the full blown "Ultimate" edition.

They should also buy Red Gate and Jet Brains and bake their products into VS and SSMS themselves, while happily releasing updates and enhancements for FREE.

Bah...what do I know?


The problem is Microsoft is into the business of selling software licenses to make their billions. They don't have a billion dollar hardware business like Apple or a billion dollar ad business like Google that allows them to license their software for free/cheap. So if MS start licensing their software for free, they would stop making money (they do have the xbox and a few services but they're not enoough).


I think the middle ground would be to give away Professional. This would cost them 1.5k or so in license, but would get a lot of people in the door. The fact that I can't easily unit test in an integrated way with Express makes me not use .NET even though C#/F# are better languages than Java.


Well the issue that I see is that Microsoft has to attract more people to their platforms because their platforms are their "billion dollar" business.

I fail to see a better way of increasing the number of users of their platforms, then to release the entry point for free.


I don't know any recent numbers, but it used to be that VS and Windows were symbiotic profit centres, helping each other to generate profits, so I can see the reluctance in going all-free-all-the-time for one of them at the same time as the other is seriously at risk.


Hell, since they've got deep pockets, I'd consider purchasing Telerik too and bake their controls into the IDE and still give that shit away for free...


If they do that, they kill the commercial viability of alternatives, which among other things has anti-trust implications.


In what way? They already have Intellisense and controls built into the IDE. Red Gate and Jet Brains just make them better IMHO. Some people prefer CodeRush and JustCode, although with my scenario in purchasing Telerik, JustCode would become part of the deal... Some people prefer DevExpress and Infragistics to Telerik...


I'm not at all familiar with the current ecosystem, but the theory is that complete replacements for VS wouldn't be able to compete if VS was free.

Whatever the merits of the thesis, they'd certainly get sued, and almost certainly lose.


> Inherent hatred for Microsoft and anything it does, even if it is good. I think is pretty sad since I see this attitude from people that should be objective from a technical standpoint, licensing can’t always be an issue.

Actually, yes it can. I think Microsoft (especially Microsoft Research) is amazing and have been one of the most innovative companies of the last 30 years. But I'm not gonna pay them for the right to use a language. I'm also not going to lock myself into a system which requires me to pay them for other things as well (Windows Server, SQLServer, etc). I know there is Mono, but it is not the same. Its a shame, cause F# is one of the coolest languages out there right now.


Seconded. You know what? Licensing wasn't a technical issue, until companies like Microsoft made it one. It's kind of hard to guarantee five nines when the EULA says they can shut you down at any time to make sure you are in compliance. Copyleft and GPL wouldn't even need to exist except for assholes who want to control what others do.


What is Mono missing for your needs? Between Xamarin Studio and the free editions of Visual Studio, you can now use F# to target iOS, Andriod, Windows Phone, Linux, Mac, and Windows. To me, this is pretty compelling.


> "Inherent hatred for Microsoft and anything it does, even if it is good. I think is pretty sad since I see this attitude from people that should be objective from a technical standpoint"

I have the inverse feeling: recently, just because at MS some people got a catch on a new fashionistas UI, and gave it a sexy name (flat UI), I have read a lot of praise for this company, as if it was something someone could wish that their tablet or mobile OS would get back on the front of the scene.

This just shows how shallow are the memories of us, developpers. So let's restate it vigorously:

MicroSoft is deservedly hated for extremely grave sins against the industry commited not so long ago.

They regularly force OS upgrades nobody wants even when the failure is patent, and their software is so unmanageable that most PC users have become like beaten dogs begging for the minimal working setup, admiring those who know how to ctrl-tab to another window, fearful of any changes in their software installation, inculated from viruses by rootkits that even more harmful than what they are supposed to protect you against, and the only action they dare take beside reading email is to reboot, and take a coffee break.

They, MicroSoft, also imposed a central crappy software (IE 6) on their monopolistic OS, and used this position to try to smother the big waves we are all surfing on: the Internet itself. They purposedly tried to strangulate the distributed network, because it was not going to bow and contribute to the church tax.

No, Internet's fate was not granted, it could have become a TV-like network of a few content providers like AOL feeding users through the nose. Actually, it is still under attack, also from other threats, many of them having grown on its roots.

MicroSoft is a mammoth, she will endure a very long death, but let's have the minimal pity, and let's not make this agony longer by unduly praising their latest relative PR success.

End of the rant.


Note that IE6 was not crappy when released. It was it's stagnation that made it became crappy over time.


.Net is one of our workhorses in desktop app development. Maybe it's not the latest trend but there are still a lot of utility apps written in .Net. If your corporate PCs run Windows, as almost all still are, then .Net is your most convenient choice.


Not if you factor in Windows and SQL Server licensing costs. Most people are using ASP.NET (one of the many incarnations, at least).

.NET on individual workstations is... irrelevant. Largely.


>.NET on individual workstations is... irrelevant. Largely.

In your world maybe. For bespoke LOB applications, it really isn't.


The cost of Windows Web Server licenses is peanuts when measured against the total cost of building and running the system.

SQL Server is expensive, but completely optional. Just because you use .Net, it doesn't mean you have to use any other piece from the MS stack.


Not sure what you mean. Ignoring the server side for a moment, are people not using .Net or do you just not like it? And once you've paid for Visual Studio, what other costs are there, assuming your workstation already runs Windows?


You present a false dichotomy. I neither said that people aren't using .NET or that I dislike it. I'm saying that having .NET installed on the desktop doesn't sell copies of their latest operating system, and for most corporates they are deploying web apps via ASP.NET.

I see no reason why I should be ignoring the server marketplace, because IMHO frankly that's where the corporate dollar is.


Got it, thanks for clarifying. My original point was just that .Net isn't dying as the article said. It may not be making a lot more dollars for MS, though, agree with that.


Perhaps I'm thinking too narrowly, but I don't see how these points apply to ASP.Net (whether it's MVC or web forms). I've always thought of ASP.Net as the most successful section of the .net framework, with native application capabilities running a good amount behind.

And all the technologies/hardware he mentions here are agnostic to the web/network portion of a system.


I would agree with the headline but I find the reasons given to be off target.

The web frameworks have become too complex and bloated. Every major release of Visual Studio seems to bring another layer or way of doing things as well as denser configuration files. A decade or so into it there is just too much there there.

I've used Mono but I'm starting to get concerned that Xamarin is concentrating more and more on mobile tools and less and less on the base .Net libraries. As an example I would point to version 3 still being in beta and the documentation on mono-project falling behind.


I wouldn't say it is dying, but I would agree that there are many better alternatives out there for any type of project you would be considering. I think the old allure was that you could be virtually sure that there would be a pool of talented developers to draw upon, but now there are talented developers on many different platforms that offer efficiencies by working well modularly: there is no need for a single behemoth like .net


I am disappointed in the near-abandonment of IronPython and IronRuby.


But hey, you can use a tablet now that Microsoft's management have switched focus... to a market they have not much share in, almost no mindshare, little developer incentive to work on, that only contributes to a fraction of their revenue and with tools and an operating system that shoe-horns the much larger workstation market into a tablet interface that is neither intuitive or pleasant to work with.

Hats off to Microsoft, clearly someone in management knows more than their own marketplace. Sometimes to be a market leader you must ignore the needs and wants of the market, after all leaders need to make the market go where you want it, right?


I am as well. They were so close to propelling Ruby as the desktop language of choice. I remember how easy it was to program GUI in IronRuby...:

  button = Button.new
  button.text = 'Foo'
  button.location = Point.new(0,0)
  button.click {|sender, e| do_something}
  window.controls.add(button)
Makes Qt and Gtk look like over-engineered monstrosities.


I guess all that MS software such as office and sharepoint which many a business has deeply integrated into their day to day life, and also extended by using .Net to automate or improve it for their particular needs will be really disappointed that .Net is dying.

I'd imagine they will have a clean and easy migration planned in the next 3 years.


Enterprise standardized on Java and won't change anytime soon (i.e. in the next century or so). Seriously, COBOL is still well and alive at many places. Consumer market is on Objective-C (iOS) or Java (Android). Games are written (mostly) in C++ (and this will stay this way to enable cross-console portability). OSS uses any number of languages that have an openly developed compiler (c, c++, python, ruby, JS, go, you name it), but most certainly not .net. So, who is left? There are isolated silos here and there, but it's really a niche language and there are no use cases that will change this.


.Net is not just for desktop, mobile/tablet and xbox. In these areas it definitely has lost some momentum but ASP.Net and Xamarin (not from MS but still .Net) seem to be doing good.


Personally I couldn't be more in love with MSFT tools (granted they're expensive and I'm using whatever free version they give us). I've worked with Java way back but can't help switching back (WPF, Silverlight for a short while, MVC). When people ask me why on Earth I prefer this, I always give them the same explanation: "MSFT development products for a straight-up developer are what Apple products to an average consumer. Things integrate together instantly and just... work!"


Some good arguments, but isn't .NET still the best platform for making truly native looking Windows desktop apps with a simple, high level language? Qt and wxWidgets are decent, but it's a lot trickier to get a native look and feel with those. There's a reason so many apps maintain separate versions for Windows and Mac rather than try to get by with a cross platform GUI toolkit.


The most interesting web-based future of .NET is out of Microsoft's control. Xamarin allow you to make iPhone and Android apps in C#, Nancy.FX is the simple web framework MS never made, Moq allows you to greatly improve TDD...

I'm still glad I know C#, but I haven't had a use for .NET in a long time, and have little reason to. Desktop apps are something else entirely, of course.


At the server side it simply gives no choice but proprietary and unreliable ms systems and a weak app/web server (iis). The desktop client side is only good for ms clients. For the devices realm there is nothing to talk about really and regarding windows phone it's a bit early. I've worked with .net in the past but now i usually avoid it as much as i can.


"Weak" Hah! I'd like to see some references to that claim.

Oh wait, here it is: [1] - melc's ass.

============

IIS has given me a TON of performance right out of the box with a fantastic GUI editor for settings. StackOverflow a website with MILLIONS of monthly hits runs fine with IIS.


Even though i don't like your attitude i will try to give a little info that may assist other people. The reference i have is a couple of enterprise level projects (information systems for the public sector) built with c#, iis6 for the server side parts, sql server 2005 and win2003 R2 servers. Also sharepoint which was quickly replaced due to slowness and high resource consumption.

- Win2003 servers had a limit on the amount of RAM so that was a bit of a problem along with the sluggish performance compared to linux based servers that we are used to work on. Did we have a choice to switch operating system? hm.. not really

- sql server was pretty good it did much better than i expected and i really enjoyed all the functionality out of the box, but that was until we reached more than 10 millions of records in some tables, then it was no more fun but that could obviously happen with any database. Did we have a choice to switch database? hm.. not really

- iis6 whether you like it or not you have no other choice. Having a background with jee application servers of different vendors where i could configure and customize them in any level, switch them with other vendor solutions and do plenty of architectural tricks.... i did find iis situation a bit weak

- programming with c# was great, but if we needed any good libraries/APIs did not exist or we had to pay, not many choices here either and as with all other parts targeted only to ms platforms

Stackoverflow is really great, and i was sure that in the past i had stumbled upon a post about stackoverlfow architecture i.e. http://highscalability.com/blog/2009/8/5/stack-overflow-arch... to be honest i was a bit suprised that they were using ms technologies. To me the bottom line is that for large scale projects based on ms technologies you will eventually need to invest money and time to proprietary solutions without many architectural choices, at least not as many as other platforms provide. Of course that is certainly not a problem if one works only on ms platforms.


Ok... let's believe for a moment that .NET is dying, so what platform you think it's ready to take it's place?


I always wonder if it's a better strategy for Microsoft to introduce the Windows AppStore in Windows 7 first and grow the eco-system there, just like what Apple did MacAppStore to Lion, heck, even 10.6.6 (Snow Leopard) has access to it.

Oh, well, perhaps the higher-ups in MSFT need to have a clue first.


Unfortunately, they decided to tie it to Metro, which would be too much to backport to Win7.


I'm apt to agree. I have used .net before in a large desktop app and it was brilliant but I'm sure I will never use it again - deskwhat?

Only thing I can think of that might save the day is if MS properly open sourced it. Chances of that have to be pretty much identically zero though.


They'd need more than to open source it, I think. For .NET to make it, they would need some kind of killer app -- something that makes people use .NET despite whatever natural inclinations they may have. I don't see that happening.

I mean, ten years ago, did you think lots of people would be coding in Objective C? It's funny how things change.


> For .NET to make it, they would need some kind of killer app -- something that makes people use .NET despite whatever natural inclinations they may have. I don't see that happening.

By "people" do you mean developers or end users? Because if you mean end users, every end user of Windows uses some program that's built in .Net every day. End users don't care, as long as it works.

If you mean developers, developers go where the people are, for better or worse. There are a lot of people using i-devices, so Objective C lives and will continue to live. There are a lot of people and companies using Windows machines, so .Net lives and will continue to live.


It better not, C# with .NET is I think one of the best programming languages out there.


C# is a great language. It takes things from java and improves simple things like passing by reference, setter, getters etc. It has great features like linq and it had things like generics before java. VS is by far the best IDE. I feel it is much faster than eclipse. Other than the not being free part it is my favorite language to program since I started out with c++.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: