Robert Scoble has posted a well thought through list of 12 reasons why entrepreneurs aren’t using Microsoft’s stuff for web development. As a web developer who started out developing on Microsoft platforms, but have switched to free and open source platforms since, I’d say pretty much every item on the list rings true for me.
On the issue of licensing, however, I don’t think the problem is as simple as cost alone. Of course, free (as in beer) is always preferable on paper to spending out a heap of cash to get yourself up and running, but when it really comes down to it those costs aren’t usually so high that they become insurmountable. I think the problem is twofold.
Firstly, the licenses are extremely complex. This is hinted at early in the comments to Robert’s post, but there’s no single fee that you can just pay and then get down to work. You need to license each server and then license those servers to talk to each other (!) and then license other people to talk to those servers, and it’s all just a flippin’ headache.
The second problem is a symptom of the first. Because licenses are charged out at different rates, there is necessarily the need for artificial limitation on what any particular license allows you to do. In order to charge more of some features, Microsoft has to turn those features off in the cheaper versions. This results in having to make a choice at the outset as to what you’re going to use, and then pretty much denies you the flexibility to change further down the line. Take my problems in June with Web Edition as an example. This is pretty much counter to the way a startup operates. You need to be able to quickly change your plans and be 100% flexible as you go. Microsoft licensing makes this a real pain.
RIP ASP
The other real issue with developing web applications on a Microsoft platform is that there’s nothing to develop with. Microsoft used to have ASP, which was a run-of-the-mill but easy and reliable method of quickly scripting bread and butter web applications with no special tools and no fuss. Nothing special, but it worked, it was easy to learn and it was cheap. It also had a strong following with loads of third-party training resources, communities and support structures. Microsoft decided one day to kill all that off and replace it with ASP.NET and the .NET framework.
I’m pretty sure that ASP.NET is fairly decent and works as described, but the problem is that it’s a very big, complex and powerful lump that is just way too over engineered for normal day-to-day web development. Imagine rounding up all the PHP developers in the world and saying sorry chaps, the game’s up, you’ve got to use Java from now on.
ASP.NET is basically a high level enterprise beast in the same market space as Java. I’m sure that’s what Microsoft were going for, but what they failed to realise is that most folk don’t want or need a Java-level solution for their basic web apps. They took away an easy scripting language and offered a monster in its place. Getting the most out of it requires expensive development tools and expensive hardware to run those tools on.
Left with the choice of needing to retrain to develop in ASP.NET or take a side step to the more nimble and thoroughly more modern PHP, guess what everyone did. The market shifted from being very ASP-centric to merrily jumping on the PHP bandwagon.
That’s great for PHP, but it still leaves Microsoft with no light-weight scripting language for developing web applications. No PHP competitor. You can still use ASP of course, but it’s unsupported, hasn’t been updated in years, is limited in its ability to support OO, and really isn’t suited to modern development styles. But it’s pretty solid. Like a geological feature.
So that’s why I hesitate to chose to develop for Microsoft platforms these days. Lack of clarity and flexibility in the licensing structures, and no light-weight scripting language to turn web apps around quickly and easily.




Comments
??I just recently switched from ASP to .NET 2.0, deciding to completely leapfrog 1.1 because it looked too cumbersome and bloated.
Maybe I’m in the minority here, but I really like what MS has done with .NET 2.0. Using Visual Web Developer I was able to whip out a wedding website for some friends in minutes. MINUTES! This included a database backend for content and photo storage. Master pages for managing everything around the page, navigation, sitemap, etc.
This type of development is definitely targeted for the little guy. $50 development tool, free SQL Express. They can tool around with it on their own XP box without even installing IIS.
Then the little guy looks online and runs into the problem of hosting. This is where I think MS loses future MS-based developers. Hosting sites advertises next-to-nothing PHP/MySQL hosting, but the .net hosting is usually lumped into the co-located/expensive packages. Nobody’s going to put a little wedding site on a $100/month host, so the little guy switches gears and learns how to do the site in PHP.
I’ve seen plenty of people do this, and it has everything to do with hosting. After a few months of tinkering with PHP, they’re using that exclusively. Granted, these aren’t developers creating groundbreaking websites, but they will be in a couple of years.??
I think that Visual Web Developer, if priced in the $50 range, could really bring .net to the masses if something could be done with the hosting situation. Which brings in your point of the licensing structures. A hosting company can charge next-to-nothing for PHP/MySQL hosting when the hosting software is free. Unless MS can simplify and reduce the licensing costs for hosting companies, the small sites will always be developed for the cheaper/simpler platform.
Please read this before using the “fast development time” again as the great point of VS and similar tools.
Who’s right needs a huge conversation, but there’s some really good points there, and I agree with most of them. And, remember, sometimes fast is not the same as good.
Btw, talking about fast and good, Robert Scoble mentioned a lot Rails (Ruby). Don’t forget about it. Great tool, great language, great implementation.
The name is sadly just a tribute, not indicative of an actual relationship.
ASP would have been a natural progression you would think, but I opted for PHP under Apache.
I’ve since had to return to the Microsoft development platform for some work projects (previously using Microsoft CMS and the next is in plain ‘ol ASP.NET) and here the BIG difference I’ve found:
It’s the community. Getting anyone in the Microsoft world to talk about solutions and code they’ve written is WAY harder than the open source guys. IMHE (In My Humble Experience), MS developers tend to keep their cards close to their chest in case they give up some perceived market share. “If we tell this guy how we did this, then he will get the work not us”.
In the open source world the usual reply is “Lets help this guy, he’s doing similar stuff to us and might come up with something new/neat that we can use.”
Now, I’m not saying ALL Microsoft developers think like this (look at the success and general quality of submissions on planetsourcecode.com for instance).
Another problem is the cost of training. I’m finding it very hard to come up with quality learning resources on the web for ASP/MCSM. Sure the API is well documented, but where are the quick start tutorials, well written example sites and open source application frameworks for ASP?
Microsoft probably saw that avenue as the way to make the big money, let the corporations throw money at their licenses. In retrospect however they’ve lost out to the little guys where the money really is, they just need saturation to get it, which is what they had with the original ASP and lost in .NET.
If they’re going to try and gain market share back, I think Microsoft are going to have to offer ASP.NET support on *nix machines (via Mono perhaps) so that small-time developers can really see what the language is about.
It’s worse than that.
I run Windows XP Home at home, and XP Home cannot officially run IIS. You’re stuck upgrading to XP Professional (at a cost of N-hundreds of dollars) or hacking IIS from Windows 2000 .
Now as a Windows developer (WinForms programming pays the bills) one can argue that I should know better and run XP Pro, but that doesn’t help “the little guy”, as in, any random student hobbyist who happens to only have XP Home (because that’s what the Dell came with) and wants to try out web programming.
Offer ASP.NET support on Mono? Microsoft needs to offer ASP.NET support on its own OS versions first.
It gave me great insights into writing modular code, but it’s over the top on some things (for instance, it’s geared toward MS databases by dafault – takes a bit of hacking to get it working with MySQL)
The cost of hosting is also ridiculous. I’ve done .NET development work who balk when told the hosting cost. They’ll ask why the *nix hosting is cheaper, and it’s hard to explain expensive hosting is based on my choice of development environment.
I’ve been playing a lot with WordPress recently, and it’s given me an intriguing look into the world of php development, which I may find myself following up on.
As a Java-trained developer turned PHP convert, I’ve got to admit I’m very excited. I think a standardized web application framework is just what PHP needs spark new interest in the language and compete with Java and ASP.Net.
But I worry for the future of PHP. They’ve had a few recent PR nightmares due to neccessary changes that break backwards compatibility. Developers have been agonizingly slow at adopting PHP 5 for a variety of reasons including the aforementioned BC-issues as well as hosting support. Now they risk alienating their base (the “little developers”) by trying to compete in the enterprise.
I think Zend’s new framework is going to make or break the future of PHP, and so long as Zend can adhere to the same values they’ve always held for PHP as a whole (simplicity especially) I think the outcome will be positive and PHP will be better positioned to compete for the hearts of the “little guy” as well as the enterprise.
They don’t promote it, sure, they promote .NET, they need thousands of developers so MS can reap hefty fees from businesses.
As far as .NET being hard to learn, you’re just being lazy and happy with your loosely typed patchwork of include files. It’s just another framework, and it’s supports lots of different languages. If anything, it should be easier to learn (C#, VB.NET, J#, or whatever). ASP.NET apps can be written in plain old text editors just like ASP, VS.NET is not mandatory.
If you’re a PHP coder and think you cannot learn a higher level language like C#, you best be changing your ways (imo). I think scripting languages in general on on their way out, PHP just has a tight grasp that will take 5-10 years to loosen up (ASP is holding onto a thread).
For the record, I don’t like ASP and I would prefer not to ever write another line of C# (although I still do, gots to pay the bills). I also really dislike PHP, but there is just so many cool stuff written in it, I cannot deny it’s greatness (for now). For me, the future of server-side programming is all about frameworks like Rails and drastically simpler coding when compared to PHP/ASP.
i think the main problem with asp.net and c# is that m$ try and make them too easy to use by piling lots of drag-and-drop rubbish into visual studio. apps built like this are nightmarish to maintain and sadly a lot of .net developers know no other way :(
ive never really used php much so i cant comment a lot on it – but i remember looking at it a few years ago and thinking it resembled a better looking asp… but its still a scripting language which i find a bit offputting.
at the moment (professionally) im using java combined with tapestry and hibernate (both open source) and find this an excellent combination. i was impressed with rails when i looked at it, but sadly i cant see it taking over the world. im considering getting a textdrive account to host a personal site using it though.
i would disagree with what you say about .net web hosting – i used to have a .net hosting package for around £20 a year – that seems pretty cheap to me (O_o)
in summary:
asp = booooo
php = hmmmmm
asp.net = boooo hmmmm
java = yay
ruby = ace
me = crazy
You are right in that some of the up front costs are more for the Microsoft products. However, when you take into account how much quickly you can develop an application there is no comparison. Yes there is a slight learning curve, but it is worth it for professional developers. So while it is not a fit for script kiddies, it is definitely a strong option for real developers. Don’t be penny wise and pound foolish.
BTW, I don’t work for Microsoft…just make my living developing with a lot of their products.