6 ms·
.NET Culture Shock: Why .NET Adoption Lags Among Startups
- naz 16y agoBecause like most enterprise software the people using it aren't the people buying it. When they have a choice they go elsewhere.
- TeHCrAzY 16y agoMy real world experience with this is entirely different. Most .net devs are doing what they do because they have the best job prospects in that slice of the industry, especially in light of the overall skillset for the average .net coder is 90% .net, and 10% in the other languages learnt during thier degree. I personally enjoy working in .net; the entire development process is very smooth and intergrated.
- tmcw 16y agoBy the same token, we should be amazed that most shops use Mac and Linux, even though Windows has tremendous market share. Or why we aren't using Java. > Enterprise and startups aren’t mutually exclusive – they’re just different stages in the evolution of software I think that if you told most startups that 'Enterprise' was another stage, a future stage in the 'evolution of software', they'd hang themselves.
- melling 16y agoThe author asserts that Visual Studio is a much better development platform than everything else. I use IntelliJ, emacs, Unix cli, Perl, etc What am I missing? I'm sure Visual Studio is good but even if it's better, how much better is it?
- nl 16y agoDo you like IntelliJ? If so, Visual Studio isn't as good, but is kind of comparable. It's better than Netbeans. Personally I prefer Eclipse, but I can see that others may prefer VS.
- melling 16y agoIntelliJ is great. They have a free version for people who want to try it. http://www.jetbrains.com/idea/index.html http://www.jetbrains.com/idea/index.html The same guys make Resharper for Visual Studio. I can't imagine that Visual Studio is better if the Java guys are making a plugin for it. I have heard that for C++, VS is hard to beat, but I haven't done that in a few years.
- henrikschroder 16y agoFor VS 2003 I had to use ReSharper to make it bearable. For VS 2005 it made it better. For VS 2008 ReSharper didn't really add anything anymore, and VS 2010 has all the features of ReSharper and more. VS has evolved quite a lot, and I don't acutely miss Eclipse anymore whenever I'm in VS.
- borisk 16y agoThere are a ton of designers in VS. You can drag and drop database tables to create ORM classes(in 3 different ORM's out of the box). Designers for asp.net web apps, drop controls like tables, textboxes, etc. Designers for win forms, WPF, Silverlight apps. There are a lot features related ot other MS products - SQL server, TFS (source code control, bugs tracking), Active Directory, etc. The ultimate edition comes with web/load test tools. You can record some actions in Internet Explorer, than VS can create a coded test perfroming all the requests and testing the responses. VS has a historical debugger, called InteliTrace. It can show you the state of an app at any previous point of execution.
- VengefulCynic 16y agoAs someone who has done both Enterprise .NET and startup work, I have to say that the reason we didn't use .NET is much the same as the reason you don't rent a 2-ton backhoe to dig up a flower bed: cost and overkill. Yes, the backhoe might dig the flower bed faster, but it costs $5,000.00 to rent, there's a one-week minimum rental, and its treads tear up your yard to get to the flower bed. On the other hand the shovel may be slower, but you can borrow one from a friend and it doesn't tear up your whole yard. Let's near in mind these are start-ups with limited capital and no time to fill in the holes that your treads tore up in your front yard.
- henrikschroder 16y agoThe only thing you really need to pay for is the actual Windows 2000-whatever servers with IIS, everything else you can get for free. Visual Studio Express Edition is free, the .Net framework is free, and you can integrate with all sorts of popular open source products such as MySQL, Postgres, memcached, Cassandra, etc.
- ericb 16y agoThe first crack-hit is also usually free. Same business model.
- Daishiman 16y agoMy time doing deployments and dealing with Windows Server issues is not free. Neither is the time lost using RDP instead of SSH, dealing with licenses, requiring much more HD space than the alternatives, and lacking real scripting solutions. I have yet to hear anyone using LINQ on anything that's not SQL Server, and considering the NIH syndrome in Microsoft, I wouldn't recommend it.
- henrikschroder 16y agoMy time doing deployments and dealing with Windows Server issues is not free. We don't have any issues with our Windows servers, but I guess the number of issues you run into is proportional to your experience. We would have a lot more problems dealing with Linux servers. YMMV. Neither is the time lost using RDP instead of SSH Practice makes perfect... dealing with licenses What? You buy it, you install it, done? requiring much more HD space than the alternatives Now you're just being silly. Are you worrying about HD space in this day and age? Seriously? and lacking real scripting solutions. I'll give you this, but I've yet to see the need for such an environment. I have yet to hear anyone using LINQ on anything that's not SQL Server Don't use it then? I think LINQ is a horrible idea, and horribly implemented, so I'm staying far, far away from it. I would never use it or SQL Server in a startup, that would be insane. I see how you could accidentally recruit someone who thinks it's the best thing EVER and starts using it all over, but recruiting people addicted to the wrong bleeding-edge technologies is a hazard no matter which technology you use.
- barrydahlberg 16y agoI think a big difference is how we define small, e.g. Wikipedia tells me: In the United States the Small Business Administration establishes small business size standards on an industry-by-industry basis, but generally specifies a small business as having fewer than 500 employees for manufacturing businesses and less than $7 million in annual receipts for most nonmanufacturing businesses. When Microsoft makes something for small business, that's what they are imagining. For a boot strapped hacker working on a website, 500 people and $7 million is a long long way away...
- benologist 16y agoI'm using .NET ... most of the tools are provided free and the full versions provided free by BizSpark, which I joined for free and now have a 3 year MSDN subscription that entitles me to a load of stuff. It was only very recently that I stopped running http://www.swfstats.com/ http://www.swfstats.com/ on SQL Server Express. I think the real difference is it's just not front page news you're doing x with .NET. The web just likes to amplify and exxagerate certain 'accomplishments' ... doing your job in C#, Java, MySQL etc aren't on that list.
- portlandFan12 16y agoBizSpark isn't really free, is it? You have to pay full price once you fail to meet the eligibility requirements.
- benologist 16y agoThere's a $100 fee when you finish.
- mattmanser 16y agoTo be brutally honest about .Net, and I use it and like it myself, the reason there's no startup market in it is because until MVC there was no point developing in it. ASP.Net controls, postbacks for everything, view state, a general hiding of the actual power of ajax and an obsession with using tables made .Net a terrible web development environment if you had any clue what you were doing. The html it spat out was a bloated horrible mess, web services were anything but unless you really slogged your way through some pain, ashx pages and the directory structure just felt plain wrong. That said I'd almost, almost, switched to using python/django and then I had a look at MVC and it did everything I needed. Full control over html, nice code separation, a nifty ORM for taking away the pain of basic crud. An alright templating system easily extensible using extension methods. And 3.5 brought some tricks using LINQ and anonymous methods. I still know I need to learn a few more languages, but MVC has allowed me to copy everything I felt was the 'right' way of developing webs apps from rails/django without having to actually learn a new language and dev environment. If you weren't worried about performance and didn't want to learn how to actually program, the old ASP.Net was ok for very quickly throwing out web apps for the 10 people in HR. Much more than that required an in depth of knowledge way beyond most .Net programmers, with most of those people being multi-lingual anyway and tending to opt for the cleaner code the alternatives offered. I don't feel that's the case anymore, but it's way behind in adoption at the moment. You still hit the occasional WTF in MVC where if feels as if someone wrote a part of the system without reading the memo about flexibility (the validation solution in MVC, for example, is terrible, although not finished and LINQ to entities can be frustrating). tl;dr;? No startups because until recently good web development in .Net was actually really hard. MVC's changed that.
- barrkel 16y agoThis is false because it relies on an incorrect assumption: that if you were using .NET to do web development prior to MVC, you had to use ASP.NET. When I was writing .NET web applications, the sum total of ASP.NET integration was implementing IHttpHandler and friends - not much more than access to the request and response streams. You can build your own lightweight framework, which, being lightweight, isn't a big deal.
- 16y ago
- ihumanable 16y agoWhy nit just know your place? Microsoft is fine (or at least was fine with) targeting massive enterprises and signing lucrative contracts with lots and lots of zeroes and lock-in. Why not adopt some unix philosophy into the ms ecosystem and just do one thing well. I was willing to sympathesize with this article until the visual studio destroying everyone else feature set wise comment. Despite what you may think you are about the topic, you are just inviting a holy war. As someone who has used visual studio, eclipse, and text mate regularly I would be hard pressed to say that visual studio destroys anything. I would prefer eclipse since it can do things like "open type" and "organize imports" natively. Things that come for free in the free and open source eclipse ide require you to buy the $80 resharper plugin for your $400 ide.
- Encosia 16y agoEveryone's going to have different favorite editors; nothing wrong with that. However, the free version of Visual Studio 2010 has both the features you cited. (and for what it's worth, I wasn't the one who downvoted your comment)
- hello_moto 16y agoThe main problem with Visual Studio is the "soft" vendor lock-in problem: if I want to use VS.NET with SVN (via AnkhSVN), the experience sucks compare to Eclipse and Subclipse. Basically, VS.NET wants you to use other MS products as well such as MTM, TFS, to be very very productive in MS environment. Using VS.NET, SVN, TeamCity and a mixed bags of other software will not give a smooth experience compare to using all-MS or go with Open Source.
- bad_user 16y agoI've been to 2 dotNet local conferences already ... the presentations are centered around Office / Sharepoint integration, plus company-sponsored propaganda (also targeted at the enterprise) that made me wanna` puke out of boredom. Even the presentation on Silverlight was focused on data-binding and how easy it is to build boring forms out of clicky-clicky actions. This is especially telling considering I did work for "the enterprise" and I'm still doing it as a consultant. Of course, personally I don't need more propaganda and advocacy. Just last month I created an app for managing the webcams of a client. I used Red5 (the open-source Flash streaming server), in combination with Apache / Django + a MySql database. Besides my billing per hour, the extra cost to the client for the licensing of this infrastructure was $0. And for my app, while I would love some of the stuff in .NET, I don't want to pay extra for those Windows servers, even if they provided extra-value over Linux (which they don't). Putting your business hat on ... as a startup or as a pragmatic consultant, paying extra for Windows servers is not worth the price, unless the cost of switching from .NET is big (and really ... which other technology has such a big cost of switching?). Sure ... it's easier to blame the lack of advocacy. The Perl community is also doing it (and I would rather go with Perl apps hosted on Linux servers than suffer the Windows licensing hell).
- Cymen 16y agoHave you taken a look at Mono? The Windows servers aren't always required. There are definitely some caveats but it might be an option.
- deleted 16y ago[deleted]
- jodrellblank 16y agoI was surprised to install PHDVirtual's backup software and it involves two linux virtual machines which run a web interface based on .aspx. I think it's the first time I've met Mono in a product.
- andrewbadera 16y agoBizSpark/WebSpark blow away any complaints or concerns, valid or not, of server or hosting costs as almost any valid, new/new-ish software startup should qualify. On the other side of that, MySQL enterprise licensing is only marginally cheaper than SQL Server, and one might argue lacks features and rich toolsets to work with in the enterprise. And in the end, most web-based startups are really SaaS so yes, you really do need to be thinking in terms of enterprise, and minimizing annual cost of delivery and ownership/subscriber.
- senthilnayagam 16y agothere is a whole generation of developers who came out of college with the notion of Microsoft being evil. also the trends setup by VC's like YCombinator, good college/university like MIT is, you can make cool products with open source ecosystem. not sure how much you would remember, about 15 years ago it used to cost a large chunk of money to build scalable apps as 70% of the investment was sunk into datacenter acquisition. another cool aspect is lot of new popular apps like posterous, started out as a single usable idea were implemented over a weekend and polished with multiple iterations. licensing cost is still a big negative for those have discovered the power of open source technology, also the community is lot more evolved in sharing the expertise. application frameworks like Ruby on Rails played a big role in getting the best practices like MVC Architecture, source code management, TDD/BDD, code generation, reuse in open source web frameworks cloud computing infrastructure like amazon web services and linode VPS maks people experiment new projects at lot less cost. Personally I have problems with many .Net developers who are "fish out of water", when it comes to living without the Visual Studio IDE. standards and features like XHTML, AJAX(prototype, jquery others ) came lot later in .Net programmers toolset until Internet Explorer was the leading in developer mindshare.
- alttab 16y agoWhat sounds more attractive to a Hacker type looking to work on a startup? "Come be an effective software engineer in today's new start up and use .NET to change the internet!" or "Laid back atmosphere, free pizza, Ruby and text mate. Let's get at it." MS is a tool set - not technology. Hackers are very opinionated and want to do things their own way. In my experience, .NET, VB, Visual Studio (all while great tools) require you to do things one way, their way. That just doesn't sit well. Then of course there is cost, stigma, lock-in, etc. Start ups are the anti-Microsoft, using it as a platform to build their technology, from a very fundamental level, is dissonant. It certainly is culture shock, and its not going to get any better for Microsoft in these markets. But they don't care, their business isn't designed for it. Microsoft doesn't do consumer products well. If you think about it, the only reason DOS got in front of everyone is because they were able to sell it to IBM.
- henrikschroder 16y agoIn my experience, .NET, VB, Visual Studio (all while great tools) require you to do things one way, their way. That is simply not true. However, I agree that breaking out of the MS mold requires more effort than it does for other technologies, and if you couple that with the fact that the overwhelming majority of .Net developers available are unable to do so, then you get a major reason not to do a startup using .Net technologies, it's simply extremely hard to recruit the right people.
- kenjackson 16y agoThe CLI is as much a technology as Ruby is, with respective canonical implementations. Now Visual Studio is a tool. But not fundamentally different than a tool like Vi or Emacs. And csc is not fundamentally different than gcc.
- DrJokepu 16y ago> In my experience, .NET, VB, Visual Studio (all while great tools) require you to do things one way, their way. That just doesn't sit well. To be honest, that's not my experience. I've found that .NET gives you a lot of freedom, however things can be indeed easier if you do things the "recommended" way, but there's also an "if that's what you want, you can do it if you think you know what you're doing" mentality as well in the design of the framework. I mean, C# even has pointers which is quite uncommon in similar high-level languages, albeit well hidden so you only get to use them if you really want to. Contrast that to Python's famous "there's only one way to do it" philosophy. Don't get me wrong, I think Python is really great stuff but I think it's unfair to say that .NET (as opposed to Ruby or Python) forces you to do things "one way, their way". If you want to do web development, you can choose between MVC and the (kind of) continuations of WebForms; imperative or functional, direct SQL, LINQ or the Entity Framework etc. - there are a lot of choices to be made.
- Zak 16y agoVisual Studio destroys [other environments] in any feature set-to-feature set comparison. sounds an awful lot like No wireless. Less space than a nomad. Lame Even for the nerdy, a long feature list is not what actually makes people want to use a tool. In the case of Emacs, it's the customizability. With Vim, it's the simplicity, speed and focus on its purpose. Other environments have their own advantages that don't fit neatly in to a feature list.
- TeHCrAzY 16y agoFyi, visual studio is extremly customisable. See: resharper.
- henrikschroder 16y agoThere are addons to make Visual Studio editing just like vim. Or Emacs if you prefer that.
- Zak 16y agoMost people don't use Emacs just for the editing, and a big part of the point of Vim is that it's a simple tool that does one thing and does it well. Almost any serious development environment (editor and development tools, integrated or not) can be made to do most of the stuff that any other can do. Tool preferences are about how the tool fits with the user's personal style, not specific checkboxes on a feature list, even if it's something like "customizability".
- Daishiman 16y agoAnd the Vim plugin is an absolute failure, and the development enviroment takes 30 seconds to startup, 30 seconds to connect to a TFS server over the Internet, and stutter every 20 seconds whenever you want to switch windows. oh, and let's not forget the 15 second build time for debugging. Vim is here, now, the very second you need it, over an SSH connection, and far, far more customizable and with more useful plugins. The advantages of Visual Studio (namely, integration of features and great code completion) are lost when a framework fits in your head and you've automated most of your tools. I say this as a person that spends 50% of his time on VS, the rest on Vim.
- S_A_P 16y agoYou dont have to use webforms, and using ASP.NET can be quite pleasurable if you dont use the "asp" controls and postbacks. HOWEVER, the second that Sharepoint enters the equation, I turn, run, and dont look back. What a horrendous kludgefest that is...
- borisk 16y ago.NET FW is 1st class at tehnical level, but Microsoft platform around it is no good for a startup. You want to write mobile apps - Windows Mobile/Phone is a joke. Want cloud computing - Windows Azure is $100 per month for the simplest web site, no matter how many requests served. There is no also no way to play with the real thing for free. Another problem is most MS internal developers still live in the 80s. You can hear "Real man write C++" all the time. Just browse the source code, written by MS employes, on Codeplex. They write C++ in C#. The APIs are out of this world - 25 or 50 lines of code to use a simple feature is no problem.
- iskander 16y agoI only programmed .NET in the days of 2.0, so my problems with it come from an older less capable framework. Nonetheless, when your language of choice requires you to distinguish between: - IComparable - IComparable(Of T) - IEquatable(Of T) - IStructuralEquatable - IStructuralComparable - IEqualityComparer - IEqualityComparer(Of T) - IComparer(Of T) - overriding Object.Equals - overriding operators <,>, <=, >=, =, <> ...it's time to find a new language. edit: Just imagine you encounter a new collection BozBag(Of T) which has to test your objects for equality. Without looking at documentation could you as a coder possibly know if BozBag uses x.Equals(y), x = y, x.CompareTo(y) = 0? Heck it could even use x.Equals(DirectCast(y,Object)) or x.CompareTo(DirectCast(y,Object)). The only way to really know is to dig through documentation.
- snprbob86 16y agoSaying that you need to understand and differentiate between all of these is disingenuous. - The "Structural*" types are new in .Net 4.0, you never had to understand them before and you probably don't need to even know they exist now. - Many of these listed are just generic vs non-generic. The generic ones subclass the non-generic ones, so contraviance eliminates the need to really understand the distinction upfront. - Compare means Compare(a,b):int which returns -1, 0, 1. - Equals means Equals(a,b):bool - If it ends in "er" it is a functor which operates on two free objects instead of "able" which means one subject of comparison is "this". - Overriding individual operators gives you more flexibility than Compare(a,b):int because you can use specific algoritms for specific comparisons. Maybe it's time to find a new arbitrary reason to hate .NET?
- iskander 16y ago>- The "Structural*" types are new in .Net 4.0, you never had to understand them before and you probably don't need to even know they exist now. You're right, I scooped those off MSDN and never use them myself. All the others, however, have made numerous appearances in my code. I think that the preponderance of comparisons is a language smell-- it's not close to my only problem with .NET development but I think it captures the essential headache-inducing inelegance of C#/VB programming. That language-blob has little regularity but much accretion. There are rarely sane defaults nor any overarching design for your mind to latch onto. After time spent with saner languages (Python, Haskell, Ruby, OCaml, etc...) coding in .NET feels terrible.
- etree 16y agoI did some .NET development in college and after years of Python and PHP development, I finally started working on a Rails project about a month ago, and a couple of weeks ago I had to do some .NET development for a client. Obviously you can do anything in any of these environments, but I really did find .NET to be the most difficult to work in. My issue is mostly around tools, not any of the languages themselves. In my ubuntu/rails environment i was up and running in 5 minutes with a text editor and a couple of sudo aptitude commands. With .NET i had to spend hours downloading and installing two different versions of the .NET framework, VS 2010, and SQL Server Management Studio. This was to say nothing of any external libraries. Now that i am up and running and my environment is setup its fine i suppose but frankly it took days just to be able to do hello world. With Rails I was there in 5 min, and it scaled with me. It was proportionally just as easy to get hello world going as something more complicated. The base bar to getting moving in .NET by comparison was several days - and if i wasn't being paid to do it, i never would have just for the sake of playing around.
- DjDarkman 16y agoMaybe the author should consider this possibility: Startups don't use it, because: - there may be other technologies that are better for the job - startups rarely care about Microsoft's heavy marketing which alone can convince a lot of managers to use a technology just because it's from Microsoft And one of the worst things is that it's a Windows technology, say what you will, but if you want .NET you need Windows, and pay a zillion $-es for license. Yes I know there is Mono, it's very close, but no cigar, it's like wine, it lags. But in the end I want to ask a question too: What could .NET bring to startups that other languages can't?