15 ms·
Leaving .Net
- jth213 16y agoEh, whatever dude.
- russellperry 16y agoRomantic, starry-eyed, hopelessly idealistic and mostly true.
- kaiuhl 16y agoThis post perfectly frames why I pushed the organization I work for to move from ASP.NET to Rails / Sinatra for our web development.
- thecoffman 16y agoAmen. 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.
- dminor 16y agoPrevious (extensive) discussion: http://news.ycombinator.com/item?id=1719277 http://news.ycombinator.com/item?id=1719277
- evo_9 16y agoYeah, 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 16y agoMono is where the innovation is happing now, e.g projects like Manos de Mono
- keyle 16y agoFunny, 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.
- patrickaljord 16y agoIs that how you think of the open source world? A bunch of people writing jquery scripts for joomla? You may want to investigate a bit more (hint: google, facebook, yahoo and a bunch of other all rely on very solid and well documented high quality open source projects).
- keyle 16y agoNo it's not what I think of it, it's what I've been exposed to. I've done some open source projects myself, although that was in flex and nobody really picked up after me ;-) I'm a strong believer in Open source, I used open-bsd for years and I really enjoy Mono and Monotouch. However the state of 95% of open source project is rather dirty and messy, scruffy development.
- treeface 16y ago95%? Would you like to back that number up with anything? Even if I grant you that arbitrary statistic, it says nothing about the state of the selection developers have for open source projects. If 5% of all open source projects are good, that leaves an enormous quantity of good open source projects. What languages do you code in?
- keyle 16y agoPoint taken, 95% was a nerf gun guess. I write in C#, AS3, php, js, etc.
- 16y ago
- kenjackson 16y agoDave 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.
- marknutter 16y agoI think the core rails team is pretty small and focused. The benefit of it being open source is that an army of people wanting to make a name for themselves are combing over their code to make sure all the I's are dotted and T's are crossed. The quality of Rails obviously doesn't scale with the number of contributors - there are only a few core contributors and a heckuvalot of casual contributors. Makes sense to me. So it's not about incremental increases in product quality, it's about responding to problems quickly and promoting new core developers from the community, rather than through Microsoft's opaque hiring processes. I'm relatively new to web development, and I've never worked in an enterprise environment using enterprise software/frameworks, but I honestly cannot understand why anyone given the choice and assuming the cash is the same would choose to go the MS route. I admit naïveté.
- fleitz 16y agoCompared 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 16y agoIt appears you've never heard of Django or Pylons/Pyramid.
- deleted 16y ago[deleted]
- okaramian 16y agoMy company is currently getting folded into a dev shop with... sub par developers/management that follows pretty much every paragraph you've written (except the F# thing, but I have similar newer code that would weird managers out to some degree). It's depressing, the framework is great but it's like there are external forces that cause the framework to be used poorly. I feel like .NET is solid for smaller shops, but once you get bigger those shops seem to want to fold weaker devs in and that tends to put up a lot of barriers/management.
- DanielBMarkham 16y agoI'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 16y agoI 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 16y agoI 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.
- alnayyir 16y agoI 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 16y agoI'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 16y agoDid you have some point to make? You didn't even explain the original anecdote you referred to.
- xpaulbettsx 16y agoAs 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.
- dschobel 16y agoHis 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.
- angrycoder 16y agoFunny 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 16y agoI'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.
- shortlived 16y ago> Netbeans isn't Visual Studio You can say that again. It's also way behind Eclipse. It's amazing how good an IDE can be when you have a large corporation behind it (I.e. MS or IBM).
- rbanffy 16y agoInteresting... I prefer NetBeans for Java web and J2ME stuff.
- ChRoss 16y agoASP/VBScript Are you referring to classic ASP? VS (for .NET) has great debugging features.
- gcr 16y agoInteresting 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)
- wlangstroth 16y agoIt 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.
- ergo98 16y agoI 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 16y agoI 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 16y agoBy 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.
- huertanix 16y agoI'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 16y agoIt 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 16y agoThat'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.
- dennyferra 16y agoI'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.
- savoy11 16y agoAnother 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 16y agoI 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 16y ago
- maheshs 16y agoBeing 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/ 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 16y agoThis 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.
- lone_coder 16y agoI think that the recently announced NuGet (http://nuget.codeplex.com/ 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.