Live data from Hacker News

Why I Left the .NET Framework (2013)

blog.jonathanoliver.com

11–20 of 113 posts

Re: Why I Left the .NET Framework (2013)

#11
post #10

> C# is awesome. I think it's a spectacular language. OCaml, Haskell and Lisp are spectacular. Erlang is spectacular. Tcl and Python are spectacular. C# is an OK-language at best. > I'm not aware of any non-Java JVM languages prior to the CLR [...] Except JVM/Java had JPython, JRuby, and Rhino (JavaScript) earlier. Those are interpreted, sure, but they were running inside JVM and talking to Java code already when .NE…

What are advantages of Python over C#?

Re: Why I Left the .NET Framework (2013)

#12
I think this post is interesting, but mostly at this point useful as a frame of reference for all the changes that have happened in the .NET ecosystem in 2 years. For example, the server produced by the ASP.NET team (Kestrel) has now been benchmarked at over 300K req/s, and it's using libuv under the hood as an event-based IO engine. That's also not to mention that Mono has benefited tremendously from the new open-source nature of the entire .NET framework, and is a far more viable portability story for .NET than it ever has been (although it still has its pain points). Soon enough, Microsoft will have its own port of CoreCLR for Linux.

Also, relatedly, I think this post is also mostly about the characteristics of the .NET community and its culture, and less about technology. The aforementioned recent changes are indicative of substantial growth and diversification of that community, and I think likely heralds a lot more good changes to come.

Re: Why I Left the .NET Framework (2013)

#13
post #3

tl;dr version - it's mostly about the portability, shortcomings of Windows as OS, and accompanying software (VS, TFS, IIS, MSSQL etc) being bloated. Zero critics about the .NET framework itself.

My takeaway from the article was the last sentence:

And that's why I left the .NET Framework because it kept reasserting itself and wanting to be more than it was: an implementation detail.

Re: Why I Left the .NET Framework (2013)

#14

From the comments: "Why do people have to "leave" technologies? Why can't they just add new technologies to their arsenals without dramatic quitting blog posts? You don't see musicians who have just learned to play the guitar writing "why I'm leaving the piano" posts. Go is great; Node.js is great; some JVM languages are fine; .NET has a hell of a lot going for it too. Evaluate your options at the start of every proj…

I think it has more to do with fragmentation.

While it's great, in theory, to have broad skills in many different languages and technologies, it is difficult to be an expert in any of of them without working with them for a significant amount of time.

When I start a new project I'm looking to leverage my expertise in my areas of focus rather than trying to find the perfect technology fit. Without significant knowledge in all options, I may not even be qualified to provide a reasonable evaluation.

Re: Why I Left the .NET Framework (2013)

#15
post #10

> C# is awesome. I think it's a spectacular language. OCaml, Haskell and Lisp are spectacular. Erlang is spectacular. Tcl and Python are spectacular. C# is an OK-language at best. > I'm not aware of any non-Java JVM languages prior to the CLR [...] Except JVM/Java had JPython, JRuby, and Rhino (JavaScript) earlier. Those are interpreted, sure, but they were running inside JVM and talking to Java code already when .NE…

UCSD Pascal used the p-machine to be machine/architecture independent. All the way back in 1978. [edit: a quick google suggests the p-machine was based on original work circa. 1966]

While not the JVM, using a virtual processor setup as a target for portability was a really old concept by the time Java or the .NET CLR came along.

Newer approaches add new concepts or take advantage of new technologies, but it's never revolutionary.

Re: Why I Left the .NET Framework (2013)

#16
post #11
post #10

> C# is awesome. I think it's a spectacular language. OCaml, Haskell and Lisp are spectacular. Erlang is spectacular. Tcl and Python are spectacular. C# is an OK-language at best. > I'm not aware of any non-Java JVM languages prior to the CLR [...] Except JVM/Java had JPython, JRuby, and Rhino (JavaScript) earlier. Those are interpreted, sure, but they were running inside JVM and talking to Java code already when .NE…

What are advantages of Python over C#?

> What are advantages of Python over C#?

Well, a major one that comes to mind (and may change as things progress) is application portability. The open CLR project hasn't gotten far enough yet to truly be cross-platform capable.

It's also smaller in weight and baggage, some argue faster to prototype/develop-in, community driven (no decade of a single company's inner departments fighting over features and behaviors), it wasn't born out of NIH syndrome, etc...

In a lot of ways, it is a lot more attractive than C# will ever be.

Re: Why I Left the .NET Framework (2013)

#17
post #3

tl;dr version - it's mostly about the portability, shortcomings of Windows as OS, and accompanying software (VS, TFS, IIS, MSSQL etc) being bloated. Zero critics about the .NET framework itself.

It's interesting to see how many of the critiques the author cited in 2013 no longer apply to the .NET ecosystem. To name a few:

* Git is now a first class VCS for use with Visual Studio

* .NET development no longer tied to Visual Studio thanks to things like VS Code or OmniSharp with Submline

* .NET development no longer tied to Windows, dev with a Mac or Linux using .NET core

Re: Why I Left the .NET Framework (2013)

#18
post #10

> C# is awesome. I think it's a spectacular language. OCaml, Haskell and Lisp are spectacular. Erlang is spectacular. Tcl and Python are spectacular. C# is an OK-language at best. > I'm not aware of any non-Java JVM languages prior to the CLR [...] Except JVM/Java had JPython, JRuby, and Rhino (JavaScript) earlier. Those are interpreted, sure, but they were running inside JVM and talking to Java code already when .NE…

> OCaml, Haskell and Lisp are spectacular. Erlang is spectacular. Tcl and Python are spectacular. C# is an OK-language at best.

I don't agree. In my view, Lisp is spectacular for its unified meta-programming capabilities, and C# is spectacular for its expressiveness (and rapid improvements, which really has more to do with the C# team than the language per se, I suppose). The rest are what they are, better than others at some things, but not spectacular.

Re: Why I Left the .NET Framework (2013)

#19
post #6

Author states "Using the Disruptor (a lock-free ring buffer on the JVM), you can easily process 20M+ events per second. On .NET using ordained "best practices" anything more than a dozen transactions per second is considered decent-to-good performance and at that point, you just need bigger/better/more hardware." WTF? This is inane.

Yeah, he's comparing one of the best optimized ring buffers on the JVM to actual transactions, that's one of the worst comparisons I've ever seen. I've shipped large scale systems on .NET and on the JVM, the issues you run into with .NET are that windows isn't as easy to administer IMO as linux variants, and your ecosystem isn't as strong, that's about it.

.NET doesn't have a runtime profiler that will deoptimize / recompile etc., which can cause slowdowns in certain use cases, it does have a better unsafe story, and value types, and reified generics which can make things faster for you.

Re: Why I Left the .NET Framework (2013)

#20
Some of this criticism was outdated already, or has gone out of date since.

WebForms (with their underlying concept of abstracting away how web really works) were already in decline two years ago, replaced by MVC.

As a former C# developer, turned Android developer, of course I have to admit there is some walled garden mentality among .NET devs, but I think they get stigmatized for that way more than average. If a Rubyist never sticks nose outside their beloved technology stack, noone makes such a big deal out of it.

Also it's nothing in compare to vitriolic anti-M$ hater mentality, often directed at developers themselves.

Or bizarre anti .NET-bias, case in point: http://blog.expensify.com/2011/03/25/ceo-friday-why-we-dont-... (I'm sure Jon Skeet was devastated).

And what's changed since 2013? Quite a lot: Roslyn... open-sourcing .NET...

Post reply on HN