
Leaving .Net - bry
http://whatupdave.com/post/1170718843/leaving-net
======
fleitz
Compared to anything except rails, ASP.NET is pretty good.

Yes, the viewstate / gridview bs is annoying and should not be used. The
problem is primarily that corporate dev departments want interchangeable
parts. They want to be able to hire a developer and him to know the API that
everyone is using. They don't want magic. They want everything spelled out so
that the code looks identical to the UML and identical to the Use case
document as signed off in triplicate by a committee of managers. In corporate
dev you get promoted for doing everything to the letter not something new and
exciting. I've seen pages with more than 100 checkboxes on them and arranged
in a grid, it was like someone when mental with excel putting a checkbox in
every cell.

To be honest, if rails were adopted by corporate dev you'd see things like not
being allowed to use haml / sass, etc. You'd have a corporate list of approved
gems in specific versions that were 3 years old (probably whatever comes with
a default install of RedHat)

I'd bet if you look at what Atwood and Spolsky are doing over at StackOverflow
on ASP.NET it's probably a reasonable choice of defaults and open source.
There are a lot of stupid decisions you can make with .NET and I agree that
the community is definitely lacking, but largely it's a mindset issue that
stems from the socio-political environment they program in.

At my last job you should have seen the shit show that ensued when someone in
management found out the DLLs I was handing off to other teams were written in
F#, even though it was the .NET team and not the C# team. Apparently,
unbeknownst to me, the largest cause of developers leaving a company is due to
being hit by buses, and a dependency on FSharp.Core.dll is just unacceptable
and could never be part of the automated build process.

~~~
Pewpewarrows
It appears you've never heard of Django or Pylons/Pyramid.

------
kenjackson
Dave has some reasonable points, and frankly I think MS is going where he'd
like them to go.

But he does miss the boat on a few things.

One thing that I do think he discounts too much is the surprising
effectiveness of small focused teams. In the same way a small startup is more
effective than a lumbering machine, a small team of devs is often more
effective than 1000 loosely organized volunteers. The classic example is GCC
which has probably 10x more people working on it than any commercial compiler,
yet the Intel and MS C/C++ compilers generally kill it. Not to mention other
less popular compilers like IBM xlc and DEC's Alpha compiler.

The contribution list to RoR is impressive, but the quality of the product
doesn't scale with the number of contributors.

I think the question MS has to ask is "do we forego control to possibly get an
incremental increase in product quality?" What I've found interesting is the
speed at which Silverlight and ASP.NET MVC have improved over the past few
years. With relatively small developer teams, they've increased in quality as
fast as any open source projects I know of.

The other thing he gets wrong is he conflates framework developers with
application developers. And I think this causes him to see a skewed world-view
that developers are "waiting" for Microsoft. In general, app developers, are
not waiting for MS to do anything. You have tight deadlines and are trying to
find the best solution today. You take a snapshot of the world right now and
pick the best solution (or starting point). You don't have the time to ponder
what might be available in eight months.

Most ppl on the MS stack are app developers. Always has been the case.

~~~
bad_user

          GCC which has probably 10x more people working on it than 
          any commercial compiler
    

Citation?

Personally I think you pulled that figure out of your ass; especially since
the GCC codebase is a mess (on purpose), it's been stable and good enough (and
arguably stagnant) for quite a while and all attention shifts lately to LLVM.

    
    
         With relatively small developer teams, they've increased in 
         quality as fast as any open source projects I know of
    

When speaking of both Silverlight / ASP.NET MVC ... they are copying other
projects. And we aren't talking only about high-level ideas here, but actual
implementation details.

They are great followers, yes, but what did you expect from a company with
virtually unlimited cash?

~~~
kenjackson
I just looked at the GCC contributors list and used an educated estimateof how
many on various commercial compilers. I don't have exact numbers, which is why
I said "probably".

 _And we aren't talking only about high-level ideas here, but actual
implementation details._

Huh? What implementation details? Citation? Silverlight looks fundamentally
different than any other product, except WPF. I'd love to see who their
copying implementation details from.

~~~
decode
_Silverlight looks fundamentally different than any other product, except
WPF._

Back when my company started using Silverlight, I was surprised to learn that
none of my coworkers knew it was almost the same as Adobe Flex. I think this
sort of ignorance about the greater world of programming is exactly what the
original post is talking about.

~~~
kenjackson
They're only similar in that they both use markup and code behind. But that's
like saying Silverlight and classic ASP are almost the same. With that said, I
should have said, at introduction Silverlight looked fundamentally different.
Flex has copied what I think is Silverlight (and WPFs) main differentiator,
which is lookless controls (which ties into binding).

I think you underestimate the amount of people who have used Flex at some
point in time.

------
huertanix
I've been waiting for someone to say this; Every development language includes
a development community, and in this case, .NET communities are more or less
stenciled across internal department lines and rarely extend much further.
When I first started working as a developer, I thought it was just my then
employer's department tribalism, but no. These patterns are things I've seen
in every .NET shop I've ever worked for. Each shop had their own interal
closed-source data logger, data mapping, and some other frameworks that were
shared internally, but accomplished in an unpolished, mediocre manner. Each
shop's code was redundantly similar and none of it was impressive.

The internal frameworks developed in .NET shops are inefficient and mediocre
not because the Ruby or Python communities are full of pure genius, but
because they have more than a single person continuously working on improving
them. Pythonists and Rubyists have a culture of sharing and coding in a
constant loop of feedback. They talk to and work with each other. People in
.NET culture do not. As a .NET developer I have rewritten code that has been
created several times before, and it will die in obscurity behind the closed
doors of the companies I've worked for.

This is something I only begun to realize by talking to JS, Ruby, and Python
developers. I've been teaching myself Ruby since September and hope to leave
.NET as soon as I can.

~~~
Encosia
It sounds like you've been working in soulless corporate sweatshops, which
would be just as miserable regardless of which platform they adopt. Policy is
the only thing preventing you from using log4net for logging and NHibernate
for ORM (assuming that's what you mean by data mapping), for example, not
.NET.

~~~
huertanix
That's mostly true, but the culture dominated even in a small, non-corporate
startup that I worked for in Scottsdale. Once, a few of us were attempting to
utilize the CSLA framework in our app, but as soon as the CFO caught wind of
the required reading of third party docs, etc, he stopped the effort dead in
its tracks, because it would mean "having to learn something new," and that
statement pretty much sums up the prevalent mentality in the .NET community.

~~~
MortenK
"he stopped the effort dead in its tracks, because it would mean "having to
learn something new," and that statement pretty much sums up the prevalent
mentality in the .NET community."

This is an over the top and even somewhat offending generalization. I don't
know if all companies in Scottsdale are like this, but I can promise you that
it's most definitely not the prevalent mentality in the .NET community nor in
most .NET shops I know of.

~~~
kenjackson
It's not so much offensive as contradictory.

"We were told we could not use 3rd party components, which sums up the
prevalent mentality in the .NET community. So we did not use the popular 3rd
party component CSLA, written Rocky Lhotka, a well respected member of the
.NET community."

To make it clear... how can that mentality be THE prevalent mentality when
there are these extremely popular third party components such as CSLA and
Log4Net. They're popular because a LOT of .NET shops use them. They're
extremely popular, because that mentality is not as common as you might think
it is.

------
dschobel
His description reads more like an indictment of mediocre enterprise code
shops than anything specific to .Net.

It seems self-evident that the farther off the beaten path you go with
languages and tools the higher the concentration you'll find of people who
care and think deeply about the tools they use.

------
dminor
Previous (extensive) discussion: <http://news.ycombinator.com/item?id=1719277>

~~~
bry
Looks like his blog was previously on Tumblr, so the dup-detector didn't catch
it.

~~~
klochner
Not to be a jerk, but you didn't notice the "comments on hacker news" link at
the bottom of the post?

~~~
bry
Seriously? Clearly I didn't.

------
DanielBMarkham
I'm a .NET programmer, and i really don't hold allegiance to any one
technology or platform.

There are some good points here, but who cares? The real issue is that
Microsoft treats developers as if they were a separate marketing channel --
with promotions, partnerships, walled gardens and the like.

So don't play that game. I'm working in F# on mono, on my own stack. Do I care
about branch commits, bad abstractions, onerous licenses or such? Nope, not in
the least.

Look, there was a day where you had to take the entire MS stack or leave it.
But that day is past. Now you can pick and choose a bit. Sure, not as much as
we'd like, but it's still open enough for developers to control their
environment.

If you don't like the game Microsoft plays with the development community?
Then don't play it. But that doesn't necessarily mean you have to walk away
from the entire thing.

~~~
alnayyir
I don't enjoy being a lone gunman. Being able to lean on other peoples'
libraries and works on Github is an incredible boon and timesaver.

Reinventing everything yourself on F# is scarcely an option, especially if
you're seeking a valuable community to collaborate with.

You might as well tell everyone who doesn't like the government to go buy a
farm and live off the land.

When I am in the mood for being adventurous, I go with something that makes me
feel truly transcendent in productivity, like Clojure. Plus, I still get an
awesome community.

Hell, I've had Rich Hickey answer my questions before. Where else could I
possibly have such a grin-inducing experience?

~~~
DanielBMarkham
I guess I don't understand your criteria.

There's plenty of help available on F#. Mono was painful, at least for me, but
nothing like C++ or .NET internals.

When I'm coding I look for community support and ease of solutions. I have
that. So why again would I switch?

I guess what I'm saying is that I don't understand your criteria. Who cares if
famous person X answers your question? I just want to get my work done, not
become a celebrity or hang out with the cool kids.

Once I decided to move to linux I thought about moving to OCaml, Java, or
Haskell. It's really not that big of a leap, and I've done some Java and OCaml
in the past.

But in the end I liked having other .NET folks making assemblies that I could
pull into .NET and use. A zillion guys out there coding for the CLR, and I can
leverage that.

All that other stuff -- TDD, CI, good abstractions, dependency management, etc
-- that's just good coding practices. Has nothing at all to do with .NET, does
it?

In you have a hammer and it's not working, stop hammering. But you don't have
to throw out your entire toolbox. Just pick up the screwdriver. In fact,
that's the difference between the tool -- VB, C#, MVC, whatever -- and the
toolbox. Seems like you just jumped from one example to a broad
generalization.

Whatever works for you, though. That's my whole point: instead of making big
generalizations about the state of microsoft, .net, and the community, just
mind your knitting. You'll kill more time thrashing around reacting to
perceived problems than you'll save from a new platform. Don't do that.

This isn't really an argument for or against .NET. Perhaps Java rocks for you.
Just don't waste time trying to find the perfect language. Instead go make
things that people want. Even if you do that at 50% efficiency, you're still
better off than using the perfect tool making a bunch of stuff that has no
value. There is a cost to switching.

~~~
shortlived
> Mono was painful, at least for me

I'm interested to hear more about mono, what was painful exactly? How is the
performance compared to the MS implementation?

~~~
DanielBMarkham
I plan on writing a long blog post once I get it all nailed.

It will probably go something like this: the linux environment is like running
an operating system at the same time while you're coding it -- little pieces
of code and scripts here and there. That makes linking, compiling, and
installing the primary chores. Although there is an awesome package manager,
it doesn't have the coverage you'll probably need. So lots of different pieces
to plug in, lots of advice on the net, some of it bad or incomplete, and
instead of just googling you end up doing quite a bit of _thinking_ as you
assemble your development environment and OS. Nothing at all like the VS2010
pnp stuff.

But I'm specifically referring to F#, which is a PITA on mono right now. I
understand it's going to become part of the standard distro. Can't wait for
that to happen. The default Monodevelop c# environment looks easier, but even
then I'm having to do things like figure out where the gac is, find sql
drivers and install them, bludgeon my way through mono dll linkage problems
(Hey mono -- it's in the gac, it's in the directory, and you can compile it.
Why the frack can't you find it when you run the program? I have to statically
link my mysql driver, making my 2K executable into 1.5MB. That's hosed.)

Example #2: I have some generic type magic that works fine in Windows.
Basically I throw an object at a function and it generates an SQL INSERT for
me. Works and tested and being used in Win. Over in mono, however, for the
type name all I'm getting is "System.Object" which, of course, is the correct
base type, but not the real type name the caller is using. Can Mono handle
this type-fu? Or am I stepping into some area the Mono guys just haven't
developed yet? Don't know. Could be a while trying to track that down. Just
like all these other snags.

It just seems like every little thing is more painful than it should be. Like
debugging. Still haven't figured out how to get the interactive debugger to
work on F#. I'm sure after an hour or two I'll figure it out -- or not. And
there's 20 things like that. Because I'm new to the entire thing, each little
step hurts.

I think it's doable, I think it's worthwhile, but if I were taking a team
through this I would definitely want somebody onboard who has already been
there, done that (and could mentor). Quite frankly doing it on my own gets a
bit discouraging at times.

~~~
pmjordan
It sounds like you might only be doing web dev, so I appreciate that you might
not have experience with this, but:

I've been looking at languages and VMs for doing GUI desktop app work.
Specifically, cross-platform apps using native GUIs on each platform. Java (I
normally use Clojure where I can) has decent cross-platform toolkits, but not
so great native bindings. .NET obviously has good Windows GUI stuff, Mono's
GTK# and Qyoto seem to work well for Gnome and KDE, and MonoMac seems to be
going places. The main alternative seems to be to drop to low-level languages.
(C, C++, Obj-C). Do you think it's worth it for me to go ahead with .NET and
Mono considering the difficulties you've had with Mono?

~~~
DanielBMarkham
Like I said, I'm about a week away from forming a solid opinion, but my guess
is that I'd use Mono.

I'm doing very simple web stuff (fcgi-type, if I can get the fcgi bindings to
work) Also a bit of command-line/batch work.

As far as I can tell, .NET is the best match for what you want. If i were you,
I might want to do a bit of poking around to see how the low-level stuff is
configured first.

~~~
MikeW
Do NOT use the fastcgi server for ASP.NET. They are too unstable for use in
production. Use mod_mono instead.

~~~
DanielBMarkham
maybe you could help me.

I don't want ASP.NET. All I want is a resident .NET program that gets called
when an URL is visited, getting all the parms passed like CGI. I can handle
the rest.

I really don't want or need the ASP.NET stack.

Is there some way to do this? So far all I have is a stand-alone program that
gets loaded each time using Apache and CGI. Can't seem to figure out how to
make it resident and re-entryable without using the HttpHandler objects off
the ASP.NET stack, which I don't want to do. Lord knows it was tough enough
getting an environment working. Going through the motions of overriding a part
of the ASP.NET pipeline in a foreign environment is probably just a bridge too
far for me for this project.

Any help would be very much appreciated.

~~~
jacksonh
It sounds like what you are looking for is exactly what I am working on right
now:
[https://github.com/jacksonh/manos/blob/master/docs/tutorial/...](https://github.com/jacksonh/manos/blob/master/docs/tutorial/page-1.md)

------
thecoffman
Amen. This pretty well articulates what I experience at work with .NET on a
day to day basis. When I code other stacks there's always a library or a
plugin to do X. At work its always "we can buy something or build it in
house." Frustrating to say the least.

------
evo_9
Yeah, I dunno I like/love c# (depending on post/pre 3am...). Plus Mono really
kick's ass and is a lot of fun to play with (esp. monotouch). I seem to be
able to find free stuff off codeproject or stack whenever I need it. Even on
the UI it's pretty painless if you avoid MS's stuff and just go with jquery
and open standards. I kinda dig it to be honest, and monodevelop is a pretty
nice IDE for mac now. All in all coming along quite nicely.

~~~
eddiegroves
Mono is where the innovation is happing now, e.g projects like Manos de Mono

------
xpaulbettsx
As much of a bummer as it is, I have to agree with many of the points in the
article - it seems as if many people in the .NET community simply don't _get_
the F/OSS mindset, that they should share code and build the future of the
platform together, instead of building something solely for themselves until
Microsoft releases a fully thought-out solution.

Finding contributors to projects is really, really difficult because of this,
and the main OSS site (CodePlex) until recently had a lot of friction in doing
so until they implemented the Mercurial integration.

------
lone_coder
I think that the recently announced NuGet (<http://nuget.codeplex.com/>) will
be a big boost to the .net community. Having the global library repository
like Perl's CPAN will be huge in bringing the community together. More users
of libraries will mean more improvements too them.

It also seems like the existence and success of sites like codeplex and
stackoverflow negates his thesis.

Was glad to read that he was leaving for purely non-technical reasons. I bet
he'll be back someday.

------
russellperry
Romantic, starry-eyed, hopelessly idealistic and mostly true.

~~~
kaiuhl
This post perfectly frames why I pushed the organization I work for to move
from ASP.NET to Rails / Sinatra for our web development.

------
keyle
Funny, but I felt the opposite. I'm sick of open source software that's
documented like a donkey's ass and that never works. And all those
'developers' that can't be productive and create things, instead all they're
doing is plumbing joomla with jquery while high on json.

I guess it's like a mid life crisis, you just have to flip side.

~~~
jules
I agree with you. The languages, documentation, and standard libraries of .NET
are awesome. The community is definitely lacking though. These days you can
get excellent help on IRC about F# and on stackoverflow for everything, but
there is not really a spirit of "lets build something cool" outside of F#.

~~~
kenjackson
_but there is not really a spirit of "lets build something cool" outside of
F#._

Can you give an example of something that is cool? Everytime I think of
something cool, I can think of something done on the MS stack, but maybe our
definitions are different.

~~~
jules
I don't understand what you mean. Do you mean cool F# things? All the work of
Tomas Petricek is way cool. Outside of .NET there is of course tons of cool
stuff, like Clojure, Rails, Haskell stuff, the recent fuss about Yacc is Dead
etc.

~~~
kenjackson
Just things that are cool. Stuff done in F# or in other communities like the
Haskell, Clojure, or Rails community.

I'm trying to see why the things coming out of the Clojure and F# community
are cool, but they aren't coming out of the C#/Visual C++ community. For
example, ScottGu showed off a C#/Silverlight app built by a 3rd party that was
a 3D model of the human body, where you coudl strip layers and interact in
real time... all rendering pushed to the GPUs. That seemed cool to me. And
they did it in a week.

I'm trying to understand why we have this disconnect.

~~~
jules
No, absolutely, there are very cool things coming out of Microsoft with
regards to C#/VC++. It's just that they nearly always come from Microsoft,
there isn't an active community that does these things.

~~~
kenjackson
My point with the 3D body example is that it was not done by MS.

But take a look at a place like CodeProject. People post their projects and
write up an article describing the technical aspects of that project. It's
actually a surprisingly strong community. In the past month ~500 written or
updated. I actually tend to find this place more interesting than GitHub or
CodePlex, due to the exposition.

------
wlangstroth
It would be great to hear back from Dave after a few years with Rails, which
as many know, has its own drawbacks.

I'm not saying he shouldn't be excited for a change, but in a couple of years,
who knows? Maybe he'll be checking out Haskell, and we'll hear about how great
that is.

------
angrycoder
Funny timing.

I've been a .net developer, mostly web - some desktop, since the first
release. I am currently going through the interview process with a company
that focuses on rails.

Part of me is excited, I've been wanting to get away from MS technologies for
a couple of years now. Part of me wonders if I am going to miss the safety net
of the compiler and IDE, and if the grass truely is greener. I started out
doing perl/cgi and the asp/vbscript, so it almost seems like a step backwards
tool wise, but with much better languages and libraries than I had the first
time around.

If anyone has any insight, it would be much apprecaited.

~~~
okaramian
I've been doing development with Rails on personal projects and while Netbeans
isn't Visual Studio, it's still a pretty solid development tool.

I also dig how the local Rails environment shows you every call that's being
made, plenty of solid logging integration, etc. Also the gems and other
libraries being open source and freely available is great, and Ruby crushes C#
with regards to Metaprogramming if you're going to go deep (which you probably
will).

The debugging style is different but it's definitely several thousand leaps
above ASP/VBScript. You'll be more than fine.

~~~
ChRoss
_ASP/VBScript_

Are you referring to classic ASP? VS (for .NET) has great debugging features.

~~~
okaramian
I am indeed referring to classic ASP, when the poster said taking a step back
I assumed he meant classic ASP over ASP.NET.

~~~
ChRoss
I'm sorry for that, I guess I missed out that details since the topic is about
.NET.

 _definitely several thousand leaps above ASP/VBScript_

But still, I disagree with the choice of words in your comment. I used VS
Interdev for classic ASP debugging in the past, and I find it sufficient
enough. Yes, I'm sure there are other IDE/tools which can do more than
Interdev, but I don't think it will be several thousand leaps.

------
maheshs
Being as a core asp.net developer for 7 years and now working as a
python/django from last 5-6 months; I can say every .net developer should
change his development platform at least for couple of months, because it make
you more mature developer.

.net is a good platform, but the real problem is you have to wait for MS to
develop something. For example before "asp.net mvc" there is no option to use
mvc in MS world.

For me learning python/django was not a big pain; but running them on ubuntu
is a real pain; and i think this is true for every ms developer who want to
change his platform.

On linux platform options are great and there are lots self motivated
developers and fun projects which is not true in the case of MS.

One more thing - lots of start-ups work on the non ms platform. Once people
talk about asp.net mvc they only talk about <http://stackoverflow.com/>, but
we can find more successful example in rails, or django or php; which makes
every ms developer on back-foot.

PS: I love c#, asp.net mvc and VS as a developer tools.

~~~
savoy11
This is not correct. There were multiple MVC frameworks on top of ASP.NET
years ago, including Monorail and FubuMVC and a lot more actually. All of them
were open source. Some of them were quite good, actually.

Were you active there? Did you contribute something? Did you commit
fixes/features. No, you did not. But of course you do contribute to the
complaining.

------
gcr
Interesting how the author questions why nobody's working together in .NET and
then responds by leaving the .NET community rather than sticking around to
help fix it. A bit of a circular argument?

(to be fair, I'd probably do the same thing, and I bet most of us would too)

------
dennyferra
I'm in the same boat but for different reasons. I find learning a new language
challenging and fun, I've just become bored with .NET and decided to pick up
Ruby on Rails. I've seen great community in RoR, beyond what can be found for
.NET, but that's not to say .NET has no community.

------
ergo98
I love .NET the platform -- the VM is absurdly efficient (almost too
efficient, making egregious algorithm choices functional), and C# the language
is superb and absolutely first class. There is nothing that shames either of
those contenders, and I would argue that there are few that even legitimately
compete with them.

Having said that, I couldn't agree more regarding _the community_. When MVC
came out my only excitement about it -- given that I had been doing something
better with .NET for closing on a decade -- was that the default baseline
would hopefully be better than the terrible abomination that is WebForms (a
construct either made to cripple web development, or to hold the hands of
Visual Basic developers with a big viewstate diaper). But otherwise the
excitement was hard to accept because it wasn't like it was actually something
new, or something that you couldn't already do yourself with minimal effort.
I'm seeing the same thing with some of the concurrency additions in .NET 4,
where some trivial constructs are blessed with some syntactical sugar and it's
treated like it's a new revolution in development.

Which brings up another oddity of the .NET community in general: There is a
tendency to embrace and vigorously adopt whatever abstraction Microsoft grunts
out, regardless of merit or actual value that it adds. The simplest need
becomes layers of poorly contrived, poor fitting abstractions, where
developers instead of asking "why _should_ I use this?" instead are too busy
worrying about "why _didn't_ you use that?" The former question is much more
valuable, but the latter is the defensive reaction of too many. LINQ is such a
tool that is, in my mind, used for evil far more than good, but because it's a
part of the gamut you have to mash it in wherever possible.

~~~
alexro
I develop on the Windows platform since its inception and I'm not aware of any
Microsoft community you refer to. I know that there are millions of people who
develop with the Microsoft tools and obviously the more people use something
the more that something gets abused.

On the other hand try getting a job in a decent company based on tech that is
also a Microsoft partner and you'll be torn into pieces with the questions
about deep platform understanding.

~~~
ergo98
By community I mean user base.

I'm not talking about outliers. I am talking about the majority of the user
base, with few exceptions. To put a bit of a bigoted statement into this, let
me say that traditionally Microsoft had several development streams, with the
least talented, least motivated career developers finding the Visual Basic
stream. The streams converged and it is all the worse for it.

To use the search engine "index", it's a quick way to gauge how frequently a
user base dares to go outside of the trivial. With .NET I am frequently amazed
when I'm trying to do something remotely complex and in looking for people
discussing the topic, find nothing but a few unanswered questions via search
engines. It has always disturbed me, and it in essence speaks to the linked
article's point.

~~~
alexro
Is the user base behaviour that much different from, say, php user base or
javascript user base or whatever mainstream tool user base behaviour?

~~~
rbanffy
Comparing the .NET user base with the PHP user base also says a ton about its
technical prowess. PHP is the Visual Basic of web development - it's
considered an entry-level language and has a lot of problems. That said,
Visual Basic paid a lot of my bills between 1991 and 1995.

------
alnayyir
I was a .NET dev before Python/Django.

All of this is accurate, and he's wise for leaving .NET

It's just not the environment or kind of people you'd prefer to work with,
given better communities and concentrations of driven programmers you could be
working with.

~~~
stewars
I've just recently ported a python/Django site to c#/.NET. The switch was not
done for performance reasons (or community for that matter) but as a
consideration the .NET version was an order of magnitude faster on the same
hardware without any effort to optimize.

~~~
alnayyir
Did you have some point to make? You didn't even explain the original anecdote
you referred to.

------
savoy11
Another day, another leaving .NET/Java for Ruby/Python post. This very link
btw got posted twice, the first post was 3 months ago. Aren't you guys tired
of that? We get it - HN is the place where people will go at great lengths to
contribute/code all night rather than use something that works out of the box
and juts move on. I am always surprised on the often hardcore technical
problems discussed here and the relative lack of in-depth startup/business
topics - and this is what starting up a company really is all about.

ASP.NET MVC is probably in the top 3 web frameworks created, and WebForms is
not that bad either. ViewState/Page-Lifecycle - you can use this or not - it
is up to you. You can always do the HTML5 stuff in ASP.NET too, and most of
the code is jQuery now anyway, so why the big fuss?

And what do you mean there is no community around ASP.NET? Have you heard
about StackOverflow? The majority of the devs are ASP.NET developers there,
with ASP.NET and C#/Javascript being the most tagged posts - literally every
single question gets answered asap.

And what's wrong with the 3rd party vendors? They exist, support and enhance
the eco-system producing some great tools along the way. Like Rasharper. Like
UI widgets. Like database tools. How many times have you seen an open source
project with great potential just die because there was nobody to take over
and maintain it? Understand - some companies have REAL business out there -
not the next social this, web that average crap startups have on $0 revenue.
They want REAL partners that they can rely on and WILL pay for that. Heck, you
are paying $100K to your developers, why not pay $5K for a proven software and
win some time/use the resources of the partner? What is the friggin' deal with
that?

Grow up. Is it like mid-age crisis? You just need switching things now and
then and trying to figure out the reasons? One of the top reasons I've seen
companies fail is to switch technologies just for the sake of switching and
"keeping it fun" - from a business point of view it is ridiculous to invest 8
years in a framework and then just switch, like that.

~~~
lone_coder
I think this story is so interesting because so many of us could never imagine
leaving .net. It's got a real shock factor to it. Like someone winning the
lottery and throwing away the ticket.

~~~
weavejester
I wasn't aware .NET was that highly regarded. It's a decent platform, but far
from the holy grail of development environments.

