Hacker News new | past | comments | ask | show | jobs | submit login
Why is there so much hate for .NET?
37 points by grexican on June 6, 2014 | hide | past | favorite | 40 comments
I get why people hate Microsoft and why people would "prefer" not to pay licensing fees for their applications. But do haters realize that you can run .NET on a fully free/OSS stack, in the cloud, AWS, Linux, the works? That question is not rhetorical. Do haters realize that?

I wrote an article about the good aspects of .NET, but it really only attracted other .NET developers. That's mostly my fault because my network is mostly .NET.

Here's the article I wrote. I'd be curious to hear if it helps the argument for pro-.NET (or at least not anti-.NET): http://steppingback.com/dotnet-strong-were-not-who-you-think-we-are/

I do work in .NET, Node, and most recently I started to dabble in Ruby. I'm not against any of those other languages, so I don't want to hear how awesome they are. I want to focus on why people thing .NET is inferior and anyone who uses .NET is ultimately inferior, too.

Comment below on why .NET has such a bad rap. No trolls, please. I'd like to have a real conversation about it.




Our current codebase has had iterations in ASP, C#, ColdFusion, Ruby, and others. At different times, we chose the best platform and language for the job. I was actually a technical reviewer for some of Wrox's first .NET books back around 2001-2002.

I don't think there's a lot of value using terms like "haters". I think that implies uneducated opinions.

You CAN run .NET in a non-MS ecosystem, the same way that I can run Ruby on Rails on Windows Server. My Rails app needs Redis, which really doesn't run on Windows; most (almost all) of the .NET tooling and resources out there are built on the Windows ecosystem.

The .NET "hate" is Windows hate. Everytime I try to eject a USB drive from a Windows machine and it tells me some randome unidentified process still has a file open, it reminds me why I no longer use Windows. Add on licensing costs, etc, and you have the basis for wanting to avoid the Windows platform.

So again, "but you can run .NET on Linux". Sure, but if you're building a solution and the use case calls for open source, is that really the best choice at that time? I personally think the push for Mono isn't because C# is the best language (it's pretty good though) but to preserve investment in existing code and resources.

When people think .NET, they think heavy tooling, configuration screens, and GUIs. They think tooling sold by "sales engineers" with glossy brochures filled with bullets points. "Consultants" with perfect teeth and perfect belts, as opposed to the guy in the hoodie hacking on code. We know this may not be a reflection of reality (look at tools like Powershell and the increased open-sourcing of Redmond), but culture is often as important as technology.


Personally it is because the languages feel like they are written for Visual Studio. So if I was using Mono five years ago, I had essentially VIM. Therefore I didn't do .NET.

Another reason is due to how the stack feels like it's playing catch up. ASP.NET MVC trailed behind multiple libraries in Java. The .NET developers were condescending the whole time. They would rant against MVC. They would extol the virtues of WebForms. The same is true with many other ideas. If something is not part of the official stack, .NET developers ridiculed it. I remember conversations where I recommend a library like log4j. Mocked and told how Windows logging was all I needed.

In the end, so many better things exist for free that I see little reason to use .NET. I can get a good editor from node.org built on eclipse. There are paid ides that do that as well, better and cheaper than VS. Because MS was so closed source and proprietary I'm the past I think they lost the PR battle.


You know, I've been using VS for so long and I've gotten it for free for the last 3 years since I'm a startup and a part of their BizSpark program that I hadn't even factored that in. That's a very good point.

My IDE consists of a few paid things that you can get for free elsewhere. I've tried using eclipse, but I'm just not as comfortable. But I'm sure I could get there if I jumped.

Things I pay for: * VS - quit expensive * Visual Assist X - $90'ish a year * PHP for VS - $100'ish (because it was cheaper and more efficient to buy a plugin than learn a new environment)

When I add it all up, I have spent quite a bit on the IDE. I don't necessarily agree that the IDE is being beaten by other IDEs. The extensibility is through the roof and I use a lot of tools that really enhance the "shortcomings" of VS. However, because of the plugins, VS is quite bloated and takes way too long to start up.

One of the best arguments I've seen, thanks for posting.


The Microsoft stack by and large has a very closed ecosystem. You can use it in a free environment, but that is very much not how people actually use it. The .NET ecosystem is huge, but it hardly ever touches the freer ecosystem most languages exist in nowadays. If you use .NET "on a fully free/OSS stack," you're more or less in the wilderness, because the other Microsoft stack people aren't doing what you're doing and neither is everyone not using the Microsoft stack. It's basically a worst-of-both-worlds proposition.

However, I don't believe anybody actually thinks "anyone who uses .NET is ultimately inferior." Anyone who would express their distaste for the Microsoft stack that way is obviously trolling.


I concur. It wasn't until I started working with an OSS guy that I realized how different (sometimes frustratingly so) the OSS mindset is.

I wont try to draw any conclusions here because I don't know how much of our personal conflicts are caused by our platform ethos, and how much is just personal; but I can say that the way we execute architecting and building novel solutions is completely different.


I actually think C# is quite a nice language, I just don't like any of the rest of what comes along with it (Windows, ASP, VS, etc). I am fully aware that you can technically run .NET on an open source stack, and I am also quite wary of the shortcomings inherent in that approach. I can theoretically run my Python webserver on a Windows box, but I'm not going to. If I work hard enough, I can put a square peg into a round hole, but I prefer not to. Because I need a bunch of packages that aren't available on another operating system. Because there were assumptions made about certain system commands and the presence of certain an init system when I implemented feature Z. Because the application was built from the ground up to run on the operating system it was written for, and that operating system will never be Windows.

It is my belief that .NET on Linux will forever be a project like Cygwin or Wine, a mediocre substitute for pretending one thing is another. I don't hate .NET, I just consider it irrelevant. A non-option. A second-class citizen. If I had a whole bunch of C# code sitting around I really needed to run on a Linux box for some reason, it might interest me, but I don't. I am never going to use Windows as a server, and .NET seems inextricably linked to Windows. Modern Java does the things I would want out of a compiled language like C#, so I'm not clear on why I should care or be interested in something that looks like an equivalent platform. Perhaps you can educate me. You seem to readily admit that Microsoft has made many mistakes across the technology stack, why is .NET so different?

I am curious about how many production .NET applications you have running right now on hosted Linux boxes, and if you would care to share your experiences. Perhaps I am completely wrong about .NET on Linux, and there exists a great and vibrant ecosystem of .NET devs on Linux and all the third party libraries just work great out of the box. If you want to convince people about how great .NET on Linux is, write a blog post about your experience running a large scale project on such a platform. Elaborate on the great packages and features present in the .NET ecosystem which I can't find in Node or Ruby or in the JVM. Don't just vaguely allude to there being a bunch of great open source .NET developers out there making great projects, because the only example you gave (ServiceStack) is not open source or free. Give us some great examples and tell us why we can't find that stuff anywhere else. Convince me that I should care about .NET even when I want nothing to do with Microsoft.


That's a fair argument. I'd love to show you some large-scale solutions I've done and deployed on Linux, but I can't. I really can't do the same for Windows either. All my large-scale projects are on Windows, like you'd expect, and they all happened on big-budget companies where server fees were nominal, so Windows was the easy choice for those Windows-based companies.

The only projects I've deployed on Linux are SS-based and are small scale and they're all API-driven web apps. The server-side implementation doesn't get all that complicated.

You make a lot of very valid points here. I'm still happy with .NET overall and I hope that you're wrong about .NET on Linux forever being a project. I'd love to see it gain traction and have more of a community backing. I want to scale out on Linux and make scaling based on hardware and not complicated license structures. But as it stands, I think you nailed your argument. I'll ask around to see if anyone else can add large-scale production experience on linux to the conversation.


Postback creating a stateful web. The web is STATELESS. Event-driven, I'm MAYBE ok with. But the web is stateless and postback attempts to provide pages with state. So what happens is you end up with shitty programmers who write big loops for handling page submission back to itself.

ClientID's making javascript an absolute pain or a mess of inline asp code.

MasterPages with forms on the child. It makes things very...strange.

Finally, most developers I've met are just...subpar. I can't really explain it, they just are good at .net stuff but they lack understanding below the surface. And I should add I don't just hate webforms (I really hate webforms actually), but even the new MVC stuff is just not implemented well in real life, probably because of the developers using web forms before using MVC stuff. I think MVC is the right way to go, but developers are so completely behind its sad. You shouldn't bill yourself as ten years experience if you have spent those ten years doing nothing but falling behind on development practices. Its not physical time that matters in this profession, its all about your knowledge-base, which needs to be worked on continuously. As I said, most .net developers, are just behind (or even scared) of newer development techniques; and when I say new I don't mean bleeding edge, I mean 4-5 year old techniques. If it wasn't 2004 - 2006, it doesn't really get another look by some of the 10+ year experience people I have worked with.


Postback creating a stateful web. The web is STATELESS.

Doesn't every language attempt to create state? WebForms puts pretty much the entire state in the client, but other platforms pass some sort of session ID at the very least.

ClientID's making javascript an absolute pain

I don't think approaches like the asset pipeline in Rails are much better, IMO


Not having RoR experience, I can't comment on their approach to doing things.

Yes sessions are prevalent in other languages, and that is typically the 'default' method for maintaining state. In .net however, you also have the following methods: http://msdn.microsoft.com/en-us/library/vstudio/75x4ha6s(v=v...

Most of which are commonly abused because developers don't know what they are doing with what, when. For instance I've never seen profiles used, and as much as I'd like to at-least try the idea, any attempt to move even non-critical information into profiles is met with heavy resistance as it's something 'we just haven't used before'.

One place I was hired at (thankfully to clean up some of the mess), insisted on using query-strings and hidden fields for just about everything-they had no idea of the proper way to handle things. When they did use session variables they would attempt some increment magic and mess it up so it was possible to get everything out of sync and be returning the wrong data. They made no use of Application Settings and instead used a physical control file to hard-code global variables to be used across the site.

Part of my experience and hate for .net is specific to instances I've seen-I will agree to that point, but so much just has to do with developers who use 'whatever works' instead of thinking about the underlying design implications of their application. I really just believe its because they don't take the time to learn what is happening 'underneath the hood'. The thing is, the more I work within the .net environment, it really is apparent at just how EASY it is to forget the fundamentals, to throw some tool or easy solution at something, rather then having to think it out. It's great that development time feels quick but can also feel a bit dumbing-down as-well.

I'm rambling so I'm going to shut up. :)


All of this is avoidable. Newer versions of .NET allow you to specify your own ID, anything you want. No more clientid generation. Also you can use .NET MVC to completely avoid using webforms. What you're referring to is webforms, not .NET. In fact you can use any view engine you want, like fubu MVC.


ASP.net is fairly old tech so yeah it has problems. It's gotten better since and there's a difference between the .NET runtime and the .NET ecosystem. Saying .NET sucks because ASP.net sucks is like saying Ruby sucks because RoR sucks. C# is a great language and you can pick and choose which parts of the ecosystem you want to use.


At a prior job, we developed in VS10 on a Windows network and deployed to a Mono/Apache stack. I spent a lot of time debugging glitches in the Mono implementation after pushing "working" code to the production's Mono stack, and then writing work-arounds in my code -- not writing features.

I might avoid this by developing solely on Linux (which wasn't an option at the job) ... but you still may paste in someone else's code written for the MSFT implementation that borks your project.

To chime in with chc, there is such a huge OSS presence on Linux with a wealth of useful libraries to tap into. I must save so much time leveraging useful OSS projects in my Python/Django projects. Thanks, internet.


I feel the same way as the author. I got introduced to .NET two years ago at a job. I came from a PHP background. I've come to really appreciate .NET and the CLR, and as a developer, I'm convinced I'm way more productive in .NET. I'm currently building something in Mono outside of my day job, and it's so great to be able to use .NET on linux.

I realize that Microsoft and .NET may not have had that great of a past (WebForms ruined its rep IMHO)...but using the new MVC and EntityFramework...it's clear that .NET is back on the bleeding edge.

Also...most .NET devs like working in .NET because we can be productive in it, but keep in mind--.NET haters--that most of the time we're not the ones that chose the stack...we're just left in a position where hardware/sys-admins/MIS at companies that are still afraid of the cloud are mandating that we have to use Windows and .NET.


If the only point of comparison is PHP, everything looks like the best thing ever compared to it.


I'm not sure if .NET has a bad rap at all, rather I believe the onus is on the .NET developer to show it was a better choice than the alternatives that are more mature and flexible from a licensing standpoint.

I consult as a software engineer on various projects, frequently C# and Scala. C# is a fine language, and Monodevelop is continuing to improve, but I don't see any advantage over choosing a more 'open' language with a much more mature runtime (JVM) and an overall more advanced language (Scala).


I kind of agree.

Another thing to mention is the community/culture of .NET developers. I want to be able to ask "ok, I need to debug/change/fix this, where is the source?" without getting weird looks.


For me the problem with .NET is not the libraries but the fact that the two principle languages (C# and VB) are so old fashioned. Hardly any of the useful stuff is part of the language, it's all in the libraries which means that.NET code is very verbose because there is no syntax for things like lists and dictionaries. The latest versions are getting better, at least you can create arrays using a compact syntax but dictionaries are still a pain. Both of them are essentially C without unmanaged pointers and the addition of a few slightly better types but still scalar types are special and cannot be treated as objects.

Also they aren't even usefully old-fashioned, why can't we have arrays where the first item is number 1, or 21 or some other number, Basic had that from the beginning. Why do I have to use a dictionary when I want to use an ordinal type such as a character or boolean as the index (Pascal could use any ordinal type as an array index). Why can't I create subtypes of the integers and reals (Pascal had that and it prevented large numbers of errors). Functional languages have implemented guard clauses, these can simplify your code dramatically and remove the need for a lot of traditional if and case statements. Bertrand Meyer integrated contracts into Eiffel almost thirty years ago, and now MS has provided them by means of a clunky add-on that rewrites your binary after it has been compiled.

And so on, it's not that .NET is bad, it's that after all that effort Anders Hejlsberg (yes, he of justified Turbo Pascal fame) should really have been able to produce something so much better, or at least more interesting.

Rant over, thanks for reading if you made it this far.


For me it has nothing to do with .NET's qualities.

Rather, it has to do with trust issues arising from the fact that I lived through the 90s and I remember what it was like when MS was dominant.

Unfortunately Apple is stepping into the same hubristic trap. I will probably have trouble trusting them for decades as a result.


"Haters" probably do realise that.

Personally, I just don't see anything interesting that .NET offers. In fact, I consider languages which target virtual machines to be a failed experiment of a bygone age.

The two exemplars, Java and .NET have been thrust upon developer communities by multi-million dollar marketing efforts. And those marketing efforts have not been tailored towards my specific demographic. So they've been pretty easy to ignore.

So it's not a matter of being anti-.NET or Java or whatever. It's just that they're about as relevant to me as Barbie-themed toilet paper - superfluous and not marketed towards my demographic.


Lot of this is historical. When .Net first came out Microsoft projected it as enterprise platform specifically designed for Windows developers. This immediately ticks off any academics who want to use it for classroom or anyone who wants to do cross platform open source projects.

Even as Mono came out later, backing for it has been lacking and nobody knew if it would just die out in long run or would get killed if it ever became too popular.

The result is that most people who come out of college have been using Python/Java/Ruby for class work and then use it to build open source eco-system. This feeds on to itself and before you know now most important open source libraries are built using non-Microsoft platform.

Even though on technical (and now even political) merit C# is richer language miles ahead of Java and .Net CLR is fantastically advanced than almost anything else, there are simply many more people churning out of colleges familiar with Java instead of C#.

Over time, this accumulates and produces laughable outcome where people seem to prefer something as despising as Oracle owned product rather than much-lesser-evil Microsoft.

For languages other than Java, such as Python or Ruby, C# is actually too verbose and even lacked functional features initially. When functional features arrived, they were incremental and more as after-thought. So there was reasonable basis to reject it on that ground. I would say Go has fan base but is more comparable to C# 2.0 than C# 6.0. Some cling to few innovative features in Go and less verbousness while confusing its lack of features as "simplicity" but overall it still has miles to go.


I started business development with dBase II, after a while I was forced due to hardware availabilty to upgrade (CP/M going out of style). we Got Macs. dBase Mac was an expensive joke then finally settled on McMax, that became incompatible with system 7 IIRC then slid on over to FoxBase+/Mac, (which was excellent) until OSX, but the new owners, Microsoft, provided an out, FoxPro (at least till intel), then again they shortly dropped Mac support so that was all moot. All these times nothing was really wrong with the code but I was at the mercy of commercial firms in finding compatible versions, getting licenses and having just basic long term support. Most other solutions were either expensive or lock-in to a platform, and from experience no better guarantee of longevity of the platform.

So I went open source - with a LAMP stack - if I want to run old versions there's no problem, maybe with hardware - but that also isn't as big a factor. No worries on selecting client compatibility as it is web based (have had to tweak based on HTML/Browser revisions, but nothing that really broke beyond fixing). Every component was free (enough) for what I was doing, and it pretty much just worked. I feel I had wisely steered clear of Filemaker Pro, Access, Cloudbase, Panorama, Visual Basic, or any other platform where I had to plug in a key and/or ask permission in order to install/use it. I was happy, staff was happy... and still are. Never looked back since.

.Net and other MS technology just reminds me of the struggles of the past added with new licensing schemes and more intricate lock-in. So I prefer to ignore it. If I was going to do local machine development instead of web based Python would be the direction I'd go.


Welcome to my world. The only reason that ASP was created and therefore .NET was because years ago, the Allaire brothers told Microsoft "no thanks" when they tried to purchase their programming language called ColdFusion. Since 1997, when I started developing with CF, I've heard nothing but derision no matter how well it can handle complex tasks with ease. Every few months, someone without a clue but a huge audience posts another "death of ColdFusion" article and here come all the Ruby/Node/PHP fanboys piling on the hate.

Never mind that ColdFusion runs on the JVM.

Never mind that ColdFusion 11 was released a few weeks ago.

Never mind that there are TWO open source CFML engines out there.

Never mind that ColdFusion 12 is already under development.

And I don't hate .NET at all. Or Rudy or Node (can't stand PHP, but that's another matter).

Guess what? It's all the SAME S--T, different SYNTAX.

You know which language I love the most? Whichever one someone is currently paying me to use.


You make some good points about Coldfusion but the death of Coldfusion is not the language itself or the support and dedication from Adobe, the death is in the job market and demand for it.

Have you looked into Ruby or Node? Compared to Coldfusion and PHP, it to me seems like a new paradigm in web development with tools such as NPM for Node, build tools like Grunt and Gulp.. again, to me, these things make CF and PHP seem old school.


Cars all have four wheels; yet they are very different. Same goes for programming languages, perhaps even more so. Ecosystem matters. Syntax matters. Available programmers matters.

It's not "all the same shit".


>But do haters realize that you can run .NET on a fully free/OSS stack, in the cloud, AWS, Linux, the works? That question is not rhetorical. Do haters realize that?

Yeah. They just don't care for the sub-par experience of using Mono. (MS opensourcing large parts of .NET / CLR etc is quite recent, so it doesn't have changed the climate yet).

>Comment below on why .NET has such a bad rap.

Well, not that much bad rap. People just don't use it. From what I read on most forums, hackers using other languages tend to like C# (lots of people, even in Unix land), and respect F#.

But they either want a mature system with longer open source presense and better support than Mono (e.g Java) or they don't work with such managed runtimes at all and they opt for something else.

Note that Java, which has been open sourced and has had a huge hacker community for many more years than .NET, still gets a bad rap because of Oracle's actions and behavior.


I think .net is a great framework that is misunderstood.. I think every developer should dabble in .net MVC before working there way into rails.. because so much of rails is abstracted and .net is not you can learn a lot of things from working with this framework that would take you a lot longer on rails


What does this mean?


He means "less magic".


.NET is kind of a cul-de-sac. There's usually only one way to do things and often I don't like the way they choose to do things. Getting some web services going with Visual Studio and I give up trying to get the WSDL->proxy generation working and just do it by hand. The community is filled with people all saying you can't do it that way, you have to use the tool.

It all seems very narrow, very closed quite facist really.

I prefer a more open, more fertile ecosystem. C, C++, Java, Clojure all compare quite favourably in this regard.

I certainly don't hate C# the language. But I don't like the tooling (VS, VS or.... VS) or the community - which don't seem to come up with their own solutions often enough for me. And face it, .NET is only a first class citizen on Windows.



With even Oracle claiming "ownership" over the open source Java, who really knows these days? Especially from an extortionist/litigious company like Microsoft.


So if I'm hearing you, the issue is that .NET, while you might be able to do a free stack today, because MS backs it you're afraid that freedom will go away?

If that's the case, I think it's important to note that .NET is based on the open specification of the CLI. It's like the association between JS and ECMAScript. Also, the open reference license for the source code that MS has (which is how Mono has the base framework libraries for its implementation) are pretty wide-open. It'd be hard for even MS to try to renege on that. So while I doubt that we'll ever see .NET be a paid resource gobbled up by MS, with the open specification of the CLI and the support of Mono, it seems like such a small thing to worry about.

And, even if that is your worry, it still doesn't explain why there's so much hate and disrespect for .NET developers.

I appreciate the response, thanks. I'm not trying to disprove your concern here. Just shedding some light to see if that changes anybody's opinions.


I've been with C# since the beginning, 1.1, coming from ASP 'classic', I absolutely love C# as a language. But... I'm now working in a Ruby/Linux shop handling some of their legacy app integration and I've come to understand that a lot of the disinterest comes from a complete clash of culture more than anything else. By that I don't mean the old "Evil M$" rubbish - for 10 years Microsoft has not understood Open Source culture. Instead of collaborate it was compete compete compete. NHibernate vs Entity Framework, ASP.NET MVC vs fubu/castle, Codeplex instead of GitHub, everything was done to keep people dependent on Microsoft.

ALT.NET came and went, but there was never a really strong open source community. That combined with the cross sell policy is a barrier to entry. Everything has been tightly coupled, IIS dependencies in ASP.NET makes Mono a second class citizen, MSSQL dependencies in EF made code first migrations break in MySQL. All designed to sell licenses, books and certification.

Talking about productions web apps, at the end of the day it has to be on Windows, even if you want to dev on Mono. If I'm going to start building a production app you start asking yourself questions about licensing costs too, Server, SQL, VS pro, CALs. Okay so you can get it going for free if you join BizSpark, but then there's the waiting etc etc and the niggling fact that eventually you will have to pay. Comparing that to my experience working on Linux is like chalk and cheese. vagrant up -> npm install -> {do work} -> git push heroku master. Frictionless, all for free, with no gatekeepers.

With OSS, people don't sit around waiting for the mothership to fix issues, because there isn't one, they band together and fix it themselves. Additionally, as I've come to realize (flamebait warning) Linux kills Windows on the server. Not by a nose, but like a Red Wedding in ease of use, footprint and resource utilization.

You also have to look at the "why C#" specifically. To do RAD web development it is much faster to use something like Rails. C# is more performant? Then use Java or node.js. C# just doesn't fill a particular gap.

Having said that, it's not all doom and goom, I think C# is the #1 choice for mobile development. I think the ASP.NET Titanic is starting to turn. Scott Guthrie seems to get it. The announcements recently with regards to ASP.NET vNext are all heading in the right direction and address a lot of the glaring issues. There is also some great non-MS .NET work being done at places like GitHub and StackExchange. Will it be enough to convince OSS types to start adopting it? I doubt it.


"Public Static Void"

Rob Pike (Bell Labs, Plan 9, Google Go) gave this short speech at OSCON 2010 about what's wrong with programming languages, their thinking, and their recent direction, with a lot of focus on C++/Java/C#, and how Go was a response to that.

https://www.youtube.com/watch?v=5kj5ApnhPAE

Apple Swift seems to share much of the thinking, and the huge enthusiasm for Swift this week suggests developers seem to at least subconsciously recognize there is a problem.


But you do realise that .NET is not only C#? And that F# had many (maybe even most, but I didn't research enough to say this) features that Swift has?

(And, on the related note, that Swift has not even one (or maybe? as I said, I didn't do enough research yet) novel, unique feature which wouldn't be already explored and implemented in other languages.)

What you're saying is an equivalent of "there's many things wrong with JVM, for example lack of type inference".


This is a great point, and I think it's one of the most powerful things about .NET. You can compile most (many) other languages and use it all interchangeably. Build in one language, use in another.

Each language has its pros/cons, and depending on the project you're working on, you can pick which language is best for the task at hand.


This is addressed to. Not all languages compile cleanly to the CLR. Running in the VM has serious tradeoffs as well. Garbage collection is a serious problem for soft/hard real time apps. Understanding performance is difficult too because the VM may be doing stupid things behind your back and you can't directly control things like CPU cache locality with this many layers.

Porting the VM is also difficult. It is a really complicated piece of machinery, and if you are in truly cross platform environments, getting the VM up on new systems is a massive engineering challenge in by itself. Often these other environments are CPU and memory constrained too which isn't great for the .NET VM.


I'm not sure these are actually problems with the Microsoft stack, though. Most mainstream languages run in VMs these days — JavaScript, Ruby, Python, Lua, PHP, all JVM languages. Off the top of my head, the ones that don't are pretty much the three C's and Go.


F# is really cool, but the fact that it isn't the primary .NET client language does show. For example, Swift's mandatory option types are fantastic, and they're so integral to the language that they get special syntax support. Meanwhile, F# has an option type, but non-F# code doesn't know anything about it, so any actual use of the system frameworks litters your code with unexploded null mines.




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

Search: