
Is The Microsoft Stack Really More Expensive? - dragonquest
http://www.jondavis.net/techblog/post/2009/09/05/Is-The-Microsoft-Stack-Really-More-Expensive.aspx
======
makecheck
Microsoft's development products are not that good. I've used Visual Studio,
and I found the interface so incredibly clunky that it was easier for me to
mount a network drive to my Linux box, and use a real text editor, "vim", to
modify the project XML directly to make changes. (And that is not a joke.)

And the set of downloads is irrelevant, because it shouldn't even be
necessary. On Linux and Mac, most of what I need is already there; while I
_do_ download other packages from time to time, they're for good reasons (like
getting a new version). The base Mac and Linux installations already have
_python_ and _perl_ and _a real shell_ and _a real terminal_ and _an SSH
client_ and _a good web browser_ , and the list goes on. The number of things
Windows completely lacks out of the box is mind-boggling, given the size of
Microsoft's budget. And remember, you have the privilege of downloading and
installing it all _again_ every 6 months when Windows' holes make your PC
useless.

But it isn't even about the cost or quality for me. It doesn't take much of a
history lesson to realize that the vast majority of Microsoft's wealth has
come from questionable business practices; practices that resulted in "de
facto standards" through which they gain even more undeserved business. At
this point, they could have the best products imaginable (they sure don't),
and they would still deserve no business.

The _entire computing industry_ has been set back _at least a decade_ due
entirely to Microsoft (and a number of other IT-dependent industries have been
harmed). Microsoft has destroyed entire companies through unfair means;
Microsoft should receive no recognition whatsoever as a credible business, and
should receive no new contracts. I know it's just wishful thinking now, but
it's the absolute truth.

------
asnyder
_Microsoft SQL Server 2008 is, by far, a vastly superior RDBMS than most
anything I have seen from anyone, in every respect_

I was willing to continue reading the article, up to the above line, at which
point it became clear that there's no basis for anything said.

~~~
StrawberryFrog
Which ones do you think is one a par with it, and why? "vastly" may be an
overstatement, but it's very good.

The only issue is that for simple designs a smaller, free product (e.g.
postgreSQL) may have all that you need.

A lot of the new stuff in SQL server seems to be Business Intelligence tools,
which I don't pay much attention too. the SQL stuff where you "select * from
...." seems to be much the same for several versions now, and gets only minor
updates since it's already done right.

~~~
asnyder
Databases such as Oracle, and DB2 are either equal or better in certain
respects. Furthermore, I personally find PostgreSQL to be on par if not better
than MSSQL. Aside from PostgreSQL's inability to return multiple recordsets,
IMHO it's easier to write stored procedures, functions, views, and triggers in
PostgreSQL. In addition PostgreSQL is significantly more consistent
syntacticly. Every so often my brother who works for an MS shop will ask me
how to do something relatively complex in MSSQL, I'll show him how, but in
addition I'll also show him how much easier it would've been in PostgreSQL.

One can argue that when working with SQL Server Studio you don't have to worry
about how to do things since the IDE will create most of what you need.
However, the same can be said of decent IDEs for PostgreSQL, such as EMS.

Personally, I like the ability to read my functions, views, and triggers, and
be able to easily understand what's happening; which is not something I
usually experience when working with MSSQL.

~~~
StrawberryFrog
I last used Oracle circa 2002. The experience of using the SQL workbench
tools, and installing a new server was far worse, just awful compared to the
SQL Server equivalent.

~~~
ams6110
Oracle's tools and installers are still not what you'd expect for the price.
They are vastly improved from 2002 however.

------
gjm11
Eww. Among his arguments:

1\. It's OK that the MS developer tools cost money, because there exists an
IDE for Ruby, PHP, etc., that costs money. (No matter than Eclipse, NetBeans,
etc., are free.)

2\. It's OK that IIS/ASP.NET costs money whereas Apache/PHP doesn't, because
ASP.NET is more sophisticated than PHP. (No matter that, e.g., Rails is also
more sophisticated than PHP but is also free.)

3\. You probably won't have to pay for Visual Studio, because typically your
employer pays for it. (Apparently in Mr Davis's world costs don't count when
they are paid by employers.)

------
bad_user
SQL Server Express is so limited that you really can't use it in production,
and I've never had a case where Postgresql or Mysql couldn't handle the load
(with enough architecture tweaks).

And you still need IIS. You can get that with Windows 7 Ultimate, but that's
$319.95 for the retail price. And you pretty much can't get away without
buying the retail version. We have deployed 8 HTTP servers, 2 MySql servers,
another server with Varnish, 2 servers with Memcached and one for logging ...
for one of the applications we maintain. Of course, we're using virtualization
with Xen. But if we were to use Windows 7 Ultimate, then we'd have to shell
out ... 13 * 319 = 4147 USD

On such a quantity you can probably get a discount, but let's be honest ...
4147 USD is almost the price we payed on the hardware, and I wouldn't run
anything else than Windows Server in production which is a lot more expensive.

And if you're developing on top of PHP, Rails, Django, Mysql, Postgresql ...
why on earth would you want to use a Windows server?

~~~
joechung
For reference's sake, Windows Web Server 2008 costs $469 and is likely the
version of Windows you would use instead of Windows 7 to run IIS in
production.

------
jasonkester
This article was all over the map in terms of numbers. Here at Expat, we
develop on the Microsoft stack whenever we have a choice in the matter,
including for our own products such as Twiddla, Blogabond, Rootdown, S3stat,
etc. and here's the breakdown of what we pay for what:

Tools: $399 total. For Everything MS makes, for every developer in the shop,
once every 2 years. That's what it costs for an MSDN license through the
EmpowerISV program.

Servers: ~$2000 per production box. That's Small Business Server, which comes
with production licenses for SQL Server, Exchange Server, and pretty much all
the backend stuff you could want.

And that's it.

Assuming we buy a new server every 2 years, that means we pay about $100/month
for the privilege of developing on the MS stack. Put another way, that means
that the MS stack need only gain us 20 minutes worth of productivity every
month to pay for itself.

Like I said up top, we build on the MS stack whenever we have a choice in the
matter. It's just a no-brainer.

~~~
rbanffy
You failed to account for:

\- mandatory downtime for updates: every couple months your Windows server has
a bunch of security updates that require a reboot. It's no problem for a
development server, but just measure the wait SQL Server takes to start on a
high-load environment. Compare that to Linux where the only reason to reboot
is a kernel update and even that will be soon be history.

\- The added cost per server. As someone pointed out, if you have to scale to
10 or 100 servers (just imagine one of your apps got successful) you will soon
have to deal with their account managers. And they will know exactly how bad
your position is. And you are pretty much stuck with x86 hardware too. You
just can't employ a a Sun Niagara server for front-end business (instead of 5
x86s) because it doesn't run Windows.

\- You are stuck with their licensing/core/memory limitations. You can't just
pop a couple more gigabytes of RAM or a couple more processors in your servers
without paying because neither Windows nor SQL Server will use them without -
gasp - a reinstall.

Windows is cheap. It's not always inexpensive.

~~~
DanielBMarkham
You're seriously telling us that when the hardware changes, instead of
updating the license, you have to reinstall the entire stack?

Got a link for that?

~~~
rbanffy
If you go beyond the license limits of your Windows or SQL Server and has to
install the next product on the lineup, that's pretty much what you have to
do.

Let's suppose you just added a couple extra Opterons to your server at the
same time you decided to max out the memory available in the box. You went
from single-socket quad-core to four-socket 16-core and from 32 GB to 128 GB
(it's your database server, after all). What are you supposed to do? You will
have to upgrade in-place. Unless I am very wrong (I never faced this situation
- I am a Unix guy)

------
acg
_On the Microsoft stack side, everyone knows about Visual Studio. The
licensing cost for the Team Suite is $10,939. LAMP developers just love to
point that kind of thing out. But folks, the fact is, that price is not
measurable as the equivalent of LAMP freeware. It’s for an enterprise shop
that needs very advanced and sophisticated tools for performing every
corporate software role in a software development lifecycle._

These arguments are walking tightrope of avoiding the obvious. Installing all
of the Microsoft free tools will make the stack cheaper. But as soon as you
want to do something even close to challenging you can bet you'd need support
and a license for the real tools. Apparently it's the open source crowd that
is subjecting the "market" to FUD?

~~~
desu
Not to mention the subtle insinuation that the open source "freeware" is just
a toy and everyone knows you have to pay for the real stuff.

I cannot imagine how Microsoft developers begin a project. "Today, I'm going
to write this new web app to change the world! Right after I spend the day
setting up Microsoft Team Studio and purchasing software licenses for every
computer I plan to use!" How inspiring.

~~~
jasonkester
You realize that you can use the same copy of Visual Studio twice, right?

As in "Today I'm going to write this new web app, as soon as I install
Eclipse, Django and SVN" would sound just as silly. It's just development
tools.

Oh, and for what it's worth, Microsoft will give you 15 seats worth of MSDN
Universal for $400 if you tell them you're a small business. Per seat, the MS
tools are the cheapest part of setting up a new dev box for me. (CodeSmith,
ReSharper and Ants Profiler are the ones that hurt!)

~~~
desu
I guess I just don't like integrated mega-software like "team studio". Give me
some nice, loose tools that work together well. Git is all the collaboration
tool I need.

And, for what it's worth, the open source community will give you unlimited
seats worth of all the best web development software in the world for $0.00 :D

------
kgrin
Scaling horizontally is considerably more expensive on the MS stack, as the
StackOverflow folks discovered recently ("discovered" is a poor word choice
maybe). I distinctly remember a blog post or podcast where Jeff basically lays
out the numbers and says that the software costs make scaling up more enticing
than scaling out.

------
bengtan
I don't trust a Windows server to provide reliable uptime. I have no other
arguments that I wish to make.

~~~
trapper
We recently deployed a system (linux based on a windows server with vmware) on
a huge infrastructure provider. Every week the box was going down, and we
asked why - it's because they reboot ALL microsoft servers once per week,
across the entire infrastructure. He claimed they were so unreliable it's good
practice. WTF?

Uptime on my _first_ linux production server box was over 4 years.

~~~
Daishiman
Yes, in all large shops a weekly/monthly reboot cycle is a requirement. Duly
note that this requires several hours of overtime from sysadmins, adding
additional cost.

------
rgrieselhuber
Of all of Microsoft's technologies, I have considered SQL Server, because from
what I've seen it is an extremely powerful database engine with really good BI
tools. There are two reasons I don't use it though: 1) it would be
prohibitively expensive (for me anyways) to use across dozens of nodes and 2)
it means introducing Windows into my environment, which quickly becomes very
expensive and a nuisance.

~~~
javery
I agree completely, Windows isn't that expensive (look at the difference in
EC2 pricing) but SQL Server is where they get you. It's not Oracle bad, but
for a small startup it might as well be.

~~~
ams6110
I haven't really paid attention recently, but at a conference several years
ago a former Microsoft sales rep said that nearly every "enterprise" product
they sold required accompanying SQL Server licenses.

~~~
StrawberryFrog
Most "enterprise" products are complex enough to need some complex backing
store. A SQL server database is a natural choice for this in the MS world.
Even TFS (source control and associated work item tracking, kitchen sink,
etc.) is backed by one. This is not a bad thing, (e.g. you get atomic
transactions from the DB), but it's interesting that most other source control
systems are not backed by any relational database.

------
st3fan
Yeah .. haha .. "The shell and all that fluff is a separate download" .. fluff
:-)

------
SwellJoe
Yes.

~~~
mr_luc
For instance, let's measure it in terms of hacker news comments.

The fact that this is identifiable from the title as a MS PR piece means that
most HN regulars completely lack the desire to respond.

The very idea that the question is being asked is enough to indicate that any
discussion would be pointless. Clearly, this person has a diametrically
opposed worldview, and is going to try and win me over with arguments based on
that worldview.

Cost of my "stack": $0. A free OS, a free IDE (emacs), free tools.

Well, I guess I paid for photoshop. ;)

~~~
jasonkester
If your chosen stack slows you down by being more painful/cumbersome to
develop on, set up and maintain, then it's costing you money. The fact that
it's lost income rather than extra outflow doesn't change the fact that it's a
cost.

Compared to PHP or Django (which we also do consulting in), ASP.NET is just
plain faster to develop in. I can get my own stuff out the door quicker, which
means that I can bill more of my time to consulting clients, which means that
I'm net ahead at the end of the month.

So I guess you need to stick opportunity cost into that equation to see where
you actually stand.

~~~
tvon
> Compared to PHP or Django (which we also do consulting in), ASP.NET is just
> plain faster to develop in.

I'd love to see any info backing this up.

~~~
jasonkester
It's all subjective. Naturally, I've done my share of development across a
wide range of frameworks and languages, and I've made my choice. The best
advice I can give would be to do so as well.

Personally, I consider it a slight competitive advantage that so many shops
avoid Microsoft stuff on ideological grounds. If they never try it, they'll
never know. And we'll have that slight edge in getting things to market
faster.

~~~
etherael
Uhh, just finished a week's intensive training in a supposed to make stuff
more rapid .net based framework, and coming from a Django / Code igniter /
Ruby on Rails / Grails background I'm utterly _stunned_ that anyone would
claim that the basic asp.net environment is a productivity boost over a top of
the line MVC framework like Django?

Maybe the problem is your competence rather than your tools? I don't mean to
be blatantly offensive, but wow, asp.net > django? Really? ... Man..

~~~
jasonkester
Always be careful when talking about something that you only have one day's
exposure to. I was pretty slow my first day of writing Django/Python too, but
I stuck with it.

6 months later I was quite fast, and could compare apples-apples the things
that Django doesn't quite do as quickly or elegantly as our home-rolled
ASP.NET framework (which, to be fair, has been in development a lot longer
than Django.)

So yes, having given both sides a decent shot, I went back to ASP.NET. As I
said above, your mileage may vary. But until you've put in the time to build
something big with .NET and get fully up to speed, you'll never know if you're
right.

~~~
etherael
Ah, so you actually built some other framework on top of ASP.net and that's
homegrown and that might be better for your purposes than something like
django, that's a fair bit more believable.

You make cool stuff, I wish you all the best with it, catch you at a beach
retreat some day. :)

------
windsurfer
I know as a student, it's waaaay too expensive. I could eithter get 4 months
of rent, or a legal copy of some microsoft software. Guess which one I chose?

~~~
steverb
Except that as a student you get most everything on the MS Stack for free.

Enjoy your straw man.

~~~
windsurfer
They have student pricing for microsoft server and sql?

~~~
steverb
Yes. They are both free under the dream spark program.

To be clear, it's SQL Server express or developer edition, but if your goal is
just learning the stack then it's enough.

<https://www.dreamspark.com/default.aspx>

~~~
windsurfer
What restrictions are there, exactly? I'm not familiar with licensing of these
products, as I mainly use open source stuff at the moment.

~~~
Novash
Simply put, the restriction is that you cannot profit from it. I use all the
'Express' stack to develop at home. All free. Including the XNA lib.

~~~
windsurfer
Do they have an express version of windows I can hack on?

------
desu
_Windows can also execute all the Java and Ruby stuff that you see in_ nix
platforms.*

Really? Hit any Ruby mailing list and every second post is a Windows user
complaining that something doesn't work. Not just obscure things either -
DataMapper doesn't work on Windows, or didn't a few months ago. Capistrano,
the "official" Rails deployment tool, is not supported on Windows. And good
luck with any gem that requires compilation.

Not to mention you lose out on all the command line tools. You'll need to
install cygwin, of course. At that point you may as well just stop trying to
run unix on a Windows box and just, you know, run Unix.

