Hacker News new | past | comments | ask | show | jobs | submit login

> Are these moves just going to stave a potential exodus of .Net developers or will it actually lead to new developers picking up the language?

I definitely think these changes will keep existing .NET developers in the fold. People who haven't embraced the Microsoft ecosystem at this point probably won't in the future.

Things I'd say hurt outsider adoption:

1) The ecosystem of freely available .NET libraries is minuscule compared to what you have with Python, Ruby, PHP, Java, and probably even Node. And the quality of .NET's 3rd-party commercial packages are typically worse than what you'd expect from free open source libraries in terms of both software quality and documentation.

2) Going along with #1, things like database/service drivers, web service APIs, etc, are never as robust or feature-complete as their Python/Ruby/PHP/Java etc counterparts. And sometimes they're really late to the party getting just a basic implementation going.

3) Many .NET shops are technologically conservative, for various reasons, and don't embrace the new technologies. If you're a developer excited about these technologies, understand that probably 80% of .NET shops will never touch these changes with a 10-foot pole for the next 5-10 years outside of rinky-dink projects.

4) The .NET library itself is kinda unwieldy, and only becomes easier to work with if you invest in expensive tools (Visual Studio). In the OSS world, you may have to install a few freely-available tools first, but you get the first-class experience for no cost pretty much right away. In the editor of your choice.

5) Once you step out of Azure, advanced deployments of Windows server have a sizable learning curve that rival Linux in terms of difficulty and complexity. In fact, today its probably harder, ever since Microsoft re-did technet to make it way more difficult to get comprehensive information on stuff.




1) This is ridiculous. Third-party commercial packages like what? Have you even looked at Telerik's offerings, or DevExpress? Plust, you haven't really needed commercial libraries for the past few years. Search nuget.org, it'll have just about anything you need.

2) You have no idea what you're talking about. ADO.NET is arguably the MOST robust database driver abstraction out there, with support for just about any DB.

3) Simply not true. Conservatism strikes everywhere, especially outside of startups. However, it's up to the developers to decide if a technology is viable for their ecosystem, not you. Just because it's new doesn't mean it's better.

4) First-class experience? Tell me how robust your Javascript refactoring workflow is? Python? Oh, that's right, it's damn near impossible to refactor either one without investing serious time wading through code.

5) IT stuff is hard, whether you're running Nginx/Apache on Linux, or IIS on Windows. It's not, however, more difficult for IIS. Technet was outdated anyway. Look at http://www.iis.net/. It's way more useful than Technet ever was. Oh, and you don't like IIS? It's what OWIN was made for. Use whatever server you want, or be like those cool Node kids and use the framework to run the server!


I agree on most of your points except 4) you can get a "VS like" IDE for python/javascript etc with the JetBrains products (WebStorm, ...)


Wow. These .Net guys really missed the point didn't they? I agree with your points completely. The question was 'are these changes enough to bring people over to .Net? '. Most of the responses are all along the lines of: your points are wrong .Net is awesome... If you are using windows.

This is the crux. As Linux developer I can move between languages and frameworks without fundamentally changing my knowledge of the os and my development workflow. I can use ruby, node or python along with docker, vagrant and git. And I can switch between them with relative ease.

I can work on windows, osx or Linux and test production code very easily using virtual box. I can automate the creation of the entire os from rpms so that every time I run a deployment test I know it's a close to production as I can get.

A lot of this might be possible with .Net, but it only let's you work with .net languages.

That is the real problem. There is a fundamentalism divide at the os level and the cost of switching in EITHER direction is to high.


> 4) The .NET library itself is kinda unwieldy, and only becomes easier to work with if you invest in expensive tools (Visual Studio). In the OSS world, you may have to install a few freely-available tools first, but you get the first-class experience for no cost pretty much right away. In the editor of your choice.

The "Express" versions of Visual Studio have been available since 2005. You can install plugins/extensions in the Express SKU, but it's a solid option to get Intellisense and debugging for students, hobbyists, small shops, etc.


I'm pretty sure you can't install " install plugins/extensions " in the expres editions of VS. Unless, Express SKU is something different ... ?


You're right. I meant to say "can't" there (and apparently it's too late for me to edit that comment now).


.. however they're still Windows-only.


What a troll you are.

1) What is your system of measuring this? This may be because 99% of what you need to develop a very fully featured app is already in the base .NET frameworks. So there is rarely need for 3rd party libraries unless very specialized. The vast majority of the code we need outside of the framework is very specific to the user's problem we are trying to solve.

2) This is complete and total b.s. Please enumerate an example (or two) of deficiencies of a .NET driver vs a counterpart in each language: Python/Ruby/PHP/Java.

3) Maybe many .NET shops are simply in love with the productivity they get out of their .NET efforts because of the integration between MS stack components from development through deployment.

4) Huh? I guess maybe if you have to install .NET framework on Linux you'd notice it's size. It's not like you have to go installing and deploying it everywhere if you're on Windows. You use what you want and never notice the rest. As for VS, it's actually pretty awesome. I interviewed someone today and watched him use sublime to develop a rails app and marveled at how stone age the process was in some regards (this sounds like a dig at rails and sublime, but I don't mean it to be. Some stuff was done very quickly and easily. Some aspects of Rails and Ruby in particular are really cool).

5) You don't know what you're talking about. I've deployed in 1 click to AWS and to my own dedicated servers with one click. Technet? I've been using .NET for 10 years and have never used Technet once.


>> I interviewed someone today and watched him use sublime to develop a rails app and marveled at how stone age the process was in some regards

When I was considering which language to start learning as a newbie, this was a major reason I was attracted to the Rails ecosystem: I can use a "stone age" tool and don't have to deal with yet another learning curve (i.e. a complex IDE like Visual Studio).


Microsoft had a long history of failing to cultivate a proper open-source community around .NET - they're playing catch-up now and have opened up the development of many of their key tools, but they're late tot he party at that front.

Have to disagree that .NET itself is unwieldly. All the 1.1 stuff was back in the age of "GUI/designers for all the things" but now .NET is far better.


In reference to #1, check out this summary of module counts for each package manager[1]. The TLDR is that Java, Ruby, and Node.js dominate in terms of module numbers.

[1] http://modulecounts.com/


What about the quality and usefulness of modules?


This is definitely an important question, but I do not have any data on it. If I had to guess, languages with package managers that are harder to use might have better quality. ie: npm is super easy to use, so there are tons of crappy node.js modules, while maven is harder, so the Java modules out there have more polish. Without data, however (how would you even measure it?) I cannot say for sure. Perhaps you could compare number of modules installed past some percentage threshold? If 90% of node modules never had more than 100 downloads, but Java had only 20%, that would be pretty telling to me and might lead to a reasonable weighting factor.


But not in terms of average growth, which is an important metric.


.NETs growth is only modestly better than Ruby or Java, but considering one should expect there are more opportunities for creating new packages, even just ones that copy what is already available in the Java ecosystem, I'd say this is to be expected.


I think you are rather unfair about .NET, most likely because you don't know much about it, or you have not used much of it.

As someone has been keep a close look at the new developments of Asp.net (read: the new asp.net stuff, not the old Aso.Net webform stuff, which I genuinely hate) for the past few years, I think it is really becoming something attractive.

That being said, I have also used a lot of nodejs (yes, it is awesome) lately stuff, and tried to pick up things like CakePhp two years ago. I believe that I have a better picture of the situation.

So here it is, 1) Is asp.net going to win over some developers from the other camps? Maybe some, but not a lot.

2) Is asp.net going to win the heart of new developers who has not yet jumped into any camps? I think so, at least with a bit higher chance than before, given that it keeps improve/innovate at current speed.

3) Is the open source community going to love aspnet? Less likely, given the history of relationship between Microsoft and the Open Source community. But the situation will improve, as you clears see that Microsoft is starting to embrace OSS more and more, though still not enough on the fundamental level. That is because Microsoft is not at a position where it was before in the industry.

Sometimes, some people in the Open Source camp just have this blind hate towards anything Microsoft/.NET, without even trying to see what these things are. The same would also apply for people from the .net camp towards the OSS. That has been the situation for a very long time, I hope this would improve over time. The world today is no longer the same as the world yesterday.


5) I really don't get this point. I never deployed to Azure and in my work I have a Windows Server VM with IIS on top of it. All I do is clicking publish in VS and pointing the right website. Where is the complexity in this?


You deploy into your production environment from within the GUI development tools without assurance that what's going into production is in version control and independent of the peculiarities of your personal machine when MSDeploy doesn't have a clear rollback process.

Yikes.


You've absolutely been able to roll back with MSDeploy since it was released - http://forums.iis.net/post/1970816.aspx


This suggestion is ridiculous. You can right-click Publish from the Visual Studio integration, but at no point are you told about packages or the ability to rollback.

That's what I meant by "clear" ... there is no clear ability to rollback from a VS-initiated MSDeploy.


Well clearly to do it from the UI you would open the previous version of the source that you want to deploy and then click Publish again.


"The ecosystem of freely available .NET libraries is minuscule compared" - examples?

"Many .NET shops are technologically conservative" - probably less then there are e.g. conservative Java workshops though, not a valid point.

"In the editor of your choice" - which will feel like a notepad after using Visual Studio - not a valid point really, IDEA for Java is the only exception.

There are some good points hidden there, but the post paints a picture much darker than it really is. I mean based on this post I would never say Unity3d could happen. But it did happen.


re 5) advanced deployments of Windows server have a sizable learning curve

Octopus Deploy takes care of this. Each endpoint server has a small app running on it (a tentacle). It can pull or deployment server can push updates to each endpoint. I can deploy to hundreds of servers with no downtime.

I can push builds out of TeamCity directly without even touching Octopus Deploy if I don't want to. Server settings can be set up as part of the deployment.

Web apps, Windows Services, etc can all be deployed and then tweaked with Powershell.

I'm also deploying database scripts at the same time. It isn't hard.


great if you pay for octopus


Regarding 3), that applies to the whole corporate world.

Last year we were still getting Java 1.4 project requests.


It seems like you're missing the point of why most .NET developers are using .NET. They don't use it because they want to be part of the FOSS wild-west hack-fest (aka "the Bazaar"). They use it because they want "the Cathedral", where things are well-integrated and work as expected.

Your list appears to be biased towards people who only want the Bazaar. Also, I think it's crucial to acknowledge that "the Web" is just an extension of the Bazaar.

So, here's how I see it:

1) The .NET framework already comes with thousands of free high-quality components, libraries, packages, etc for every type of platform - web, desktop, mobile, services, data, etc. The majority of .NET programmers don't need to travel outside of that for basic needs. Furthermore, I doubt that you'll find FOSS native components that can rival what's available for .NET from companies such as DevExpress or Telerik.

2) The majority who choose .NET don't make that choice because they want to work with the latest whiz-bang NoSQL database or recently invented API. They typically want to build business applications that will be stable and integrate well into the rest of the enterprise. What seems like "late to the party" for you is just prudent, conservative decision making for a .NET dev.

3) Do you think the majority of FOSS shops are working on the bleeding edge? I don't know, but most of the *nix shops that I've seen use old Java frameworks, or they only run RHEL/Centos or are still using PHP and MySQL for everything. Rarely are they doing anything interesting or new.

4) "The .NET library itself is kinda unwieldy..." I don't get this at all. What kind of first class experience are you going to get with any FOSS environment unless you've already invested significant time learning vim or emacs? At least with .NET you have the option of getting a first-class experience without investing any time learning one of those.

5) You didn't list any specifics. What's harder to deploy? Also, what do you need information on that you could not find in Microsoft's vast array of documentation or elsewhere on the web?


How about an HTML parser that at the very least will parse valid HTML - but ideally use the documented HTML5 parsing algorithm?


I have used the "HTML Agility Pack" in the past with fair success, and it's available on nuget.

http://htmlagilitypack.codeplex.com/




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

Search: