Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Its weird that the HN crowd just seems to assume that the advice to use linux and mono just has to be a better idea than using windows.

If you haven't looked at windows since 2003 you really need to take a look at server 2012 R2. The default installation mode is server core. It requires dramatically fewer patches. Management with PowerShell is incredibly powerful. IIS has seen many, many improvements.

Also, "developing your app for azure" is a weird statement. If you develop for Azure Websites you are literally just writing an asp.net web app or api. it runs in IIS in a VM. It just has some management wrapped around it so that you don't have to take care of the VM(s). It has autscale, monitoring, and all the stuff you would expect from a cloud provider. Writing your app to use SQL Azure, or Azure storage, or something like that is just like using the comparable services from Amazon. It's like anything else...you should implement its usage as an interface so you can swap it out if need be.

Some people on HN have accused me of working for MS just because I use their stuff. I'm not, nor have I ever been, a MS employee. I'll admit that I started looking into windows a couple of years ago because I was bored with Linux and Unix. I've found that if you put the time in to understand how it works its incredibly productive and thorough. If you try to make it work like unix it will suck. If you learn PowerShell and stay away from the "clickety-clickety" thing it's awesome.

From a development standpoint I actually like the total stack approach...but that's me. If you need to use best of breed components you can still do that with .Net. For me though, my interests shifted to C++ a while ago, so .Net stuff for web api's get's the work done when I have to do it. I would like to see more stuff like openstack in the .net world, but system center is fine. The stuff that I do ends up being important enough for enterprises that getting funds for that kind of thing is just part of the package.

That's another thing. I'm completely uninterested in startups. I've worked at startups in various roles in the past and I'm just over it. Any startup that I built would have to be something that I could run by myself that immediately made money that I would keep. Investment funding is shit. It's a hassle that is super crazy. Dealing with "business" types that aren't technical enough to understand the challenges is also completely off the table. If you did choose to work with a VC then it's much better to be making money and talking about selling out totally instead of implanting them in your life. Shudder.

The one thing that I think Windows needs is a container style app deployment model. The coolest thing going in large scale app building is CoreOS. Its the future of how a large scale app will be built and deployed.

The new, and much loathed, metro applications are actually a good starting place for building a container system. They use feature called "app containers" that was first introduced in Vista. Add to that an app package that installs and uninstalls as a unit, called APPX. They haven't made any noise about using the new app model for servers, but it would be a great idea. It uses an API monitor that stops calls to things like LoadLibrary or GetProcAddress and all the other API's that let you bootstrap malware. Anyway, like I said, they haven't made any noise about it...it would be cool though.



> Some people on HN have accused me of working for MS just because I use their stuff.

I find it hard to believe it all happened in the couple minutes it took you to create the account and post this.

The main problem I see with developing for Windows is that the server side ecosystem outside Windows is much richer. Once you built your application on ASP.NET, you are pretty much limited to Windows servers or Mono on Linux and even that step may need some work because Mono is an incomplete subset of the Windows environment.

I would say the same for developing software that only runs on Solaris (and its descendants). Despite Solaris being an amazingly solid OS, if your app does not run neatly on other OSs, you are limiting yourself - you made many architectural decisions very early in the development process that will impact it for a very long time and, if you are not careful, limit your future decisions to whatever is available from a single vendor.

The last time I made a decision to move from Windows to Unix-likes it was a Java application running on the Orion server. It was a 15-minute job, even though we never gave much thought to porting it. I seriously doubt such thing is possible with ASP.NET and Mono.

Apart from .NET, there is little reason to go with Windows. Most of my development these days is with JavaScript, Python (with Flask or Django) and PHP. None of these would run any better on Windows.


Actually I've had to start over with this account. But...good catch. I'm trying to take some advice this time about the way that I respond to people.

I get your point about portability, its just not one that I agree with. I think that using the platform for what its good at is a totally viable thing to do.

I also take your point about the stack that you are using. Cheers.


As someone who works professionally in both environments on a day to day business, I don't understand it either.

I personally prefer developing on linux because of the tools available, but they're both perfectly capable.


In a lot of cases I find that its usually that people had written windows off several years ago and haven't looked at it seriously. For a lot of people taking the time to learn PowerShell or the "windows way" of going about something is either something they don't have the time or interest to do.

I'm sympathetic to that, don't get me wrong...if you have to get something done quickly you go with what you know. That's cool.

I've just noticed that a lot of the reasons that people give to justify their choices are predicated on an experience with an older version of windows or if you drill into it, they "thought" it should work one way and didn't take the time to find out how it actually works.

I agree that they are both completely capable...


The problem is cost and lock-in. Microsoft has a ton of great products out there, and I use many of them at my own job at my current job. But if I were starting my own company, I don't think I'd want to build things on a Microsoft stack.


I would at least put C# on the table for consideration though. But that's because I really like C# and have a bit of experience developing in Xamarin with it for both the CLR and mono, so I know the workflow and tech CAN work on linux. The quality of some stuff out there, like this http://www.codeproject.com/Articles/168662/Time-Period-Libra..., is phenomenal. The concurrency stuff is pretty solid as well. But it's a different ecosystem too and you get casualties like ServiceStack.


I was also enamored with UNIX and later on GNU/Linux as a cheapest way to get UNIX at home. After already some years experience with *-DOS, Netware, Windows and Amiga systems.

But from the point of view of technology stack, innovation seems to be standing still on the UNIX side of things.

Microsoft seems to innovate more in terms of how modern OS stack should look like, in terms of full stack, whereas UNIX clones hardly offer more than "portable" POSIX cli and daemon model APIs.


Again: I'm also not a big ms fan (see my comment on visual studio) but why not comment when downvoting?


I agree completely. I would add however that CoreOS or NetBSD rump kernels are really very innovative.


I agree somewhat, as I meant the whole stack.




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

Search: