Talk about "fanboi". Microsoft may be big but, on the internet, they have far less experience and far less usage. The internet isn't the desktop. There, Microsoft is a small player.
McDonalds are the biggest and most successful restaurant in the world. But I doubt any chef would describe their food as being fantastic.
When I want to eat a really nice meal with friends or family, I rule out McDonalds. Does this make me a "fanboi tool"?
Microsoft have a pretty long history of date related bugs in their software and products stretching back years. They do not seem to understand how leap years work.
Mc Donald's is not used by the 90% of the world. Microsoft clearly is a very successful company which builds great products. Just because their philosophy doesn't align with mine, or because I like Linux doesn't mean I have to diss them. Look at Kinect for example, It. Is. Revolutionary.
I'd guess McDonalds has a similar market share in food as Microsoft has in software... Do you disagree?
I bought a Kinect. I used it for a couple of days. It had a novelty value, but no staying power. I don't think I'm alone there.
In any event, my original point was that trusting your hosting to a company which had an outage due to not foreseeing a leap year, may not be a good decision.
Outages due to particularly hairy code related to redundancy and failover etc, I can forgive. But an outage caused by a leap year? No way.
You my friend are not aware of the radical things people are doing with kinect, just the other day I saw a demo of a quad copter with a kinect on top of it, and once you release it into a room, it will give you the whole 3D profile of the house without a human controlling it! If that does that not dazzle you, I am not sure what does.
And about the bug being a leap year bug is really a nonissue, a bug is a bug. An year ago, Github nuked their whole production database, because of a deployment glitch. We all create softwares with bugs, it's the response to that which matters. And, Microsoft does a stellar job at that.
The do-ers get work done like Linus, while the talk-ers spend their time talking about how shitty other platforms are on Slashdot and HN and flag positive articles about Microsoft (so much so that http://winsupersite.com is hellbanned on HN).
Dates are actually really, really hard to get right. They've been a problem for everyone for decades. When I started programming professionally about 10 years ago you'd be lucky if most programmers had even heard of UTC, let alone knew what it meant. Date bugs happen to everyone.
These days the higher order languages hide all the big problems from you. But when you get closer to the metal and you've not got someone else's library to help you it's very easy to make a mistake.
Hmm dates... It's almost as if you'd want to just count the number of seconds/ms since some point in time. Then you can do arithmetic easily, don't have to worry about calendars, leap years, etc... :/
Converting a date to a human readable form is hard. There is no way on earth that computers should be storing dates in human calendar readable forms. They should only ever be converted to that format for display purposes. That is the lesson MS don't ever seem to learn.
So if I want add a year to a date and time I just have to add the number of seconds in a year which sounds ludicrously easy I agree.
I want to know the exact date and time one year from February the 29th at 12:00 hours 2012. I want the answer to be consistent so what is the date and how many seconds do I add?
I would also like to know the exact date and time one year from February the 28th at 12:00 hours 2011. I want the answer to be consistent so what is the date and how many seconds do I add?
The Excel one seems to have historical justification; that spolsky chap mentions it here: http://www.joelonsoftware.com/items/2006/06/16.html. Basically, early Excel was being compatible with Lotus, which ignored 1900 being a leap year probably because of limited memory back then. Possibly MS should have fixed it before Excel 2000, but it's not a simple situation when being correct with leap years breaks compatibility with something else.
Claiming that Microsofts progammers didn't even anticipate a leap year is kind of pathetic. Sure, it might have been an unnecessary bug (whether it was or not is not possible to decide from that article), but most bugs are...
I was just about to point this out. It caused me to not wake up on time and miss a major family event. It was also one of the reasons I got rid of my iPhone. The (lack of) backlash that this bug caused really made me understand how ridiculous the situation had gotten with Apple's infallible perception.
The C# syntax is a lot better than java. Java's verbosity is too much. And Microsoft had done a good job at making things easier in each new version of C#.
That does seem a little hyperbolic. Shame, because the original statement is very valid- C#/.NET is looked down upon in Silicon Valley, but rarely for valid reasons. It's just not "cool".
1 - Most people want to run OSS...specifically Linux so they can leverage all the tools that run better on (or only run on) Linux. Like memcached, varnish, redis...Running .NET on Linux is silly.
2 - Want a dynamic language because it's more productive.
It isn't because it's "not cool". It's because general purpose languages are a dime a dozen, and there's no reason not to pick the best one possible. The only advantage .NET has is if you are doing work that integrates with other MS products.
It depends on the context. Again, if you are doing tight integration with other MS/Windows apps, .NET has a distinct advantage. And, in that case, I would probably say that C# is the best possible solution.
Java, which I'm not a fan of, has obvious advantages because of the size of tooling and community. It's also cross platform (which, again, may or may not be a big deal) while having good performance. More broadly, the JVM has those same advantages, plus distinct languages.
I'm a fan of dynamic languages. I think Python and Ruby are the best choice for what a lot of people are doing, especially on the web. Python obviously has a lot going for it in the scientific and research community.
I'm a former ASP.NET MVP, for what very little that's worth. For building websites, ASP.NET (WebForms, or MVC), is not a productive choice. I'd rather build something in PHP.
It essentially comes down to less code. Some of that is simply less language clutter:
public virtual void Add(int a, int b)
{
}
vs
def add(a, b)
end
Some of it is just what's possible due to dynamic languages, whether that's because of the type system, or, more likely, meta programming.
The benefit of meta programming compounds itself through libraries too. So not only is my code able to leverage it, but I can use libaries that leverage it and end up with User.find_by_name("leto") (as a classic, but certainly not singular, example)
I'm sorry I don't understand. Your example does nothing and has very opaque variable names. As soon as you have some code and variable names that are helpful the language clutter seems pretty irrelevant. I agree that libraries are useful but they exist in non dynamic languages. You can Meta program in C#. I'm not denying that dynamic languages are neat but I still don't see how you can simply define them as fundamentally better rather than your preferred choice.
What's silly about running .NET on Linux? If C# is a decent language on its own, and Mono is a decent way to run it (neither of which I'm completely sure of, but I think that's the case) then it seems like it could be a fine choice.
Honestly, it's a pill I simply haven't swallowed. I'll admit I'm a ton less apprehensive now that they've been forced to split from Novel. The risk of them being shut down (and then what?) always bothered me..now we know, and it doesn't look so bad.
If I have compelling need for a static language (performance?), I'm not sure if I'd pick C#, Java/Scala. But I maintain that all three are less productive than Ruby/Python, so unless you are building Cassandra/Lucene/Redis/Nginx/... I won't be too compelled about performance arguments.
I had consistently better performance running the same (CPU-bound, little IO) program on Windows Server than running it on Mono/Linux. I did that in 2005, so, YMMV.
Why would you pick C# over, say, Objective-C, Go or Java if you intend to run your software on Linux?
I imagine things have changed in seven years, although I won't say that Linux would win.
C# is definitely better than Java as a language. It's arguably better than Objective-C (whose main advantage is ease of talking to C APIs), and I have no idea about Go but I imagine there are probably decent reasons to prefer C# over it at least in some cases.
There is another point to be made: with the enormously rich language ecosystem that runs so well on the Linux platform, why limit oneself to the subset that runs well on Windows?
Sure. I'm just saying that if C# is actually a better language than the alternatives (and it does seem pretty good, but I'm not that familiar with it) and if C# integrates with Linux as well as the rest, then it would be a decent, not-silly choice. I'm sure there are plenty of reasons why you'd choose something else instead though. But I don't think it's necessarily silly to choose C# on Linux purely on the merits of the language, nothing to do with Windows.
I don't think Linux integration is that good - Ubuntu just released a Mono-free OS release (you can install it, if you want, but it doesn't come installed by default) - and I wouldn't bet on it getting better.
I'm kind of curious about languages such as Vala and Go and how they compare to C# and Java.
What a completely misunderstood view. Microsoft has earned the distrust of many many a coder through their cut-throat business tactics and complete disregard/disdain for other operating systems and platforms.
Wake me up when I can run a MS stack for near-free in perpetuity... because that's what Microsoft is competing against in the startup world. Do you think Instagram or Twitter's architecture would have been possible without OSS?
My thoughts exactly - even if he could code Hello World in 60 languages he couldn't know them in any meaningful sense. And in a spectrum that includes Python, COBOL, Lisp and Brainfuck, I would say that Java is like C#. It's quite a good language, but "nothing like it" is a bit over the top.
“In this echo chamber which is the [San Francisco] Bay Area, unless you follow what everyone else does, then there’s an assumption that you don’t know what you’re doing,”
I am considering a move to SV and this quote left me w the same question. How about it guys?
My perception so far is - It is quite possibly true, and I have noticed a strong anti-MS bias. I like and use Ruby\Rails but I have developed in .NET, and Visual Studio, C# are quality tools. VB.net is totally maligned but quite good: very English syntax w/o managing all the damn brackets.
I switched to open source because I hope to have a lot of users, thus a lot of servers. My feeling is the MS space is excellent for B to B, or internal intranet stuff, where the tight integration w Windows et al is useful and the licensing costs are moderate because of the low volume of users.
Sure you can. The Azure website's control panel has a package upload dialog box. As long as it is a valid Azure package it doesn't matter where you upload from.
“People say, ‘Oh, I’ll have to teach you about Java sometime, so then you’ll know the bright side.’”
Did this strike anyone else as something _nobody ever_ would say? I think it's pretty much consensus that C# is basically the next-generation of Java.
As for Rails, Python, etc. being the most common tools in SV, I tend to this it might be because they are free. The thing is (in my experience) MS dev tools are usually very good, and probably don't cost nearly as much as most people think they would. However, entrepreneurial folks are just more likely to start with something free, and then when the time comes to get more serious about their startup, it just makes sense to keep running with what you know.
The obvious counterargument is that you can get everything required for Java for free and there's the MS small business deal where you practically get carte blanche access to MS tools for free for (3?) years, and that still doesn't sway many startups towards those toolsets.
As for Rails, Python, etc. being the most common tools in SV, I tend to this it might be because they are free.
I don't want to go all Richard Stallman on you, but I think it might also be because they are Free. I mean, I've never bothered looking into MS dev tools because I assume they'll only run well on Windows, and they'll be designed for a server stack that will only run well on Windows, and then I'll be tied to getting my dev tools and server stack from one company on one OS, and it will be Microsoft.
It happens that I like developing on a Mac with a Python IDE right now, so I freely admit that I'm both biased and ignorant. But I do know, know, that if a year or two down the line Apple gets too controlling, I can switch to Windows or Linux and keep using my same stack with tools that are just as good. And if Guido decides to become Tyrannical Dictator for Life and screw up Python, he'll have no real power to do that because the community can do exactly what they're doing without him. Are those things true about MS dev tools?
I got into Microsoft Bizspark and it came with Free azure hosting.
So far so good. Coming from heroku with a Django app, It was a bit tough at the start but when you get the hang of everything, it does it's job.
I can't really compare it to Heroku. You have to compare it with EC2.
First thing. They are planning to roll out Linux hosting but as of right now it's only windows and I have never used Windows EC2.
With Azure you actually get a Windows machine in a datacenter that you choose. You can Remote desktop into it and control it, like you can control your local computer.
Deployment is kinda tricky. But it's important to get Remote desktop working first so you can see what's happening in the system. It's not like heroku how you can do Heroku --logs.
It's very important to remember that with Azure. You have to do everything. Heroku makes deploying, logging very simple for you. But at the same time you have less control.
To sum up. There is a steep learning curve coming from heroku.
But overall, I think it's was worth it.
Microsoft's problem is sycophants. There are enough people telling them how great their products are, that when those same products don't do well, Microsoft looks outwardly for the problem.
Windows Phone must be great, a lot of reviewers said so. Poor sales? Perception and marketing! (Forget lack of leadership, vision and innovation)
Azure is shunned? That's because people misunderstand it. Nothing to do with being slow out the gate, falling farther behind with each new AWS product, and not having any price advantage (in some cases, it's far worse).
Bing losing money? That's just not fair, our results are as good as google. (NO THEY ARE NOT).
These sycophants are both internal to the company and external.
The sooner Microsoft realizes that it's failing to succeed in new markets because it's average-at-best, the better for them. As long as they keep believing that their failing products are great and thus the failure is [largely] outside of their control, nothing will change.
>Windows Phone must be great, a lot of reviewers said so. Poor sales? Perception and marketing! (Forget lack of leadership, vision and innovation)
There is no reason for both of them to be problems.
You mean like how when you go looking for Windows Phone the salesman almost always pushes you hard towards other phones? There are too many instances of this to ignore.
Meanwhile, in multiple third party independent surveys, Windows Phone continues to do well:
For years we have heard the talk-ers proclaim how the .NET stack doesn't scale is too expensive for a startup. Meanwhile the do-ers built Stackoverflow and it has none of the scaling problems that sites built on other tools like Reddit have.
The perception problem is real and for you to totally ignore it shows your own biases.
Windows Phone isn't selling because it came out 4 years after the iPhone. It's an absolutely failure at the leadership level. They ridiculed the iPhone when it came out. What's the leadership going to say "We really dropped the ball on this one"? Ya right...blame anyone else.
I'm not arguing that Windows Phone isn't better (nor am I arguing that it is). I'm arguing that the reason it isn't selling is 100% internal to Microsoft and isn't merely a marketing and perception problem.
You're talking about public statements. Of course, any company ridicules competitors' strategies. Where are statments from Apple heaping praise on the Kinect?
This piece reads like it was written by a Microsoft PR person, and not a investigative journalistic piece in Wired. After reading this[1] I can't help but be extremely critical of articles written this way. (or most magazine articles these days)
I like C# and a lot of my career has been .NET work, but I detest this sanctimonious attitude .NET devs cop sometimes, like they're being iconoclastic or rebellious for using the MS stack. Like everyone who doesn't do what they're doing is engaging in groupthink or trying to be "cool". Believe it or not, people actually have good reasons for not using MS software!
I've deployed some Node.js code on both Azure and Heroku, and I have to say the Heroku experience is in many ways superior:
* Both seem to do Node quite well, supporting both web instances and workers
* Deployment to Azure can take 30 minutes. On Heroku we average 30 seconds
* App setup on Heroku uses environment variables and the simple Procfile. On Azure you need to deal with poorly-documented XML files (most documentation deals with how to generate those with wizards in Visual Studio)
* Heroku's toolbelt works on Linux, Mac, and Windows. With Azure you have to use Visual Studio or Windows Powershell
* Azure provides some useful services like table storage and message queue. But Heroku has a much wider array of nicely-working add-ons to choose from, many of these things you could run on your own servers as well, like Redis or Postgres
* Last time I checked, Azure was quite expensive. This may have changed with their recent pricing cuts
* On the plus side, Azure lets you choose where to run your app geographically (USA, Europe, Asia?)
Does anyone here have actual experience to share on using Azure that has also used AWS? I'm building a node.js app and by default I'd use AWS but should I consider Azure?
Azure's Node.js experience feels a lot closer to a PaaS like Heroku than that of AWS. And for that experience, see my Azure-Heroku comparisons in this thread: http://news.ycombinator.com/item?id=3899159
So, someone who loves C# loves Windows Azure. I'm not surprised and as noted by many other posters, this article hardly has a genuine ring to it. Nice try Microsoft.
73 comments
[ 4.5 ms ] story [ 148 ms ] threadFor example Windows Azure suffered outages in February because the programmers did not anticipate a leap year happening.
http://www.forbes.com/sites/ciocentral/2012/02/29/microsoft-...
Remember when android would lose text messages? Or Amazon's supposedly redundant system went down all at once?
Don't point a finger at MS for what wasn't even a complete outage.
And not taking the biggest and most successful software company in the world seriously makes you look like a complete fanboi tool.
When I want to eat a really nice meal with friends or family, I rule out McDonalds. Does this make me a "fanboi tool"?
Microsoft have a pretty long history of date related bugs in their software and products stretching back years. They do not seem to understand how leap years work.
Windows 98: http://news.bbc.co.uk/1/hi/sci/tech/150947.stm Zune: http://bit-player.org/2009/the-zune-bug Excel: "Excel 2000 incorrectly assumes that the year 1900 is a leap year" Exchange 2007: http://www.theregister.co.uk/2008/03/04/microsoft_admits_to_...
etc etc
I bought a Kinect. I used it for a couple of days. It had a novelty value, but no staying power. I don't think I'm alone there.
In any event, my original point was that trusting your hosting to a company which had an outage due to not foreseeing a leap year, may not be a good decision.
Outages due to particularly hairy code related to redundancy and failover etc, I can forgive. But an outage caused by a leap year? No way.
And about the bug being a leap year bug is really a nonissue, a bug is a bug. An year ago, Github nuked their whole production database, because of a deployment glitch. We all create softwares with bugs, it's the response to that which matters. And, Microsoft does a stellar job at that.
Some of you need to be treated for Microsoft Derangement Syndrome.
The do-ers get work done like Linus, while the talk-ers spend their time talking about how shitty other platforms are on Slashdot and HN and flag positive articles about Microsoft (so much so that http://winsupersite.com is hellbanned on HN).
Dates are actually really, really hard to get right. They've been a problem for everyone for decades. When I started programming professionally about 10 years ago you'd be lucky if most programmers had even heard of UTC, let alone knew what it meant. Date bugs happen to everyone.
These days the higher order languages hide all the big problems from you. But when you get closer to the metal and you've not got someone else's library to help you it's very easy to make a mistake.
Hmm dates... It's almost as if you'd want to just count the number of seconds/ms since some point in time. Then you can do arithmetic easily, don't have to worry about calendars, leap years, etc... :/
Converting a date to a human readable form is hard. There is no way on earth that computers should be storing dates in human calendar readable forms. They should only ever be converted to that format for display purposes. That is the lesson MS don't ever seem to learn.
No, converting a date to human readable form is the easy part.
The hard part is converting the number of seconds from some epoch into a date.
The number of seconds from some reference point is not the same as a date.
While I'm not excusing either, it isn't necessarily symptomatic of widespread failure.
And Apple can't even handle regular years or daylight time: http://www.appleinsider.com/articles/11/01/01/apple_admits_n...
And handling this in a phone or game device should be about as difficult as on a clock... A cloud on the other hand is much more difficult, as google points out: http://googleblog.blogspot.se/2011/09/time-technology-and-le...
Claiming that Microsofts progammers didn't even anticipate a leap year is kind of pathetic. Sure, it might have been an unnecessary bug (whether it was or not is not possible to decide from that article), but most bugs are...
The consequences of your hosting being down are larger than not getting an alarm on your iphone or being able to connect to PSN.
http://www.pcworld.com/article/222029/iphones_daylight_savin...
Um, really? I can just barely name 35 languages, even including esoteric ones like Brainf*ck and Shakespeare.
1 - Most people want to run OSS...specifically Linux so they can leverage all the tools that run better on (or only run on) Linux. Like memcached, varnish, redis...Running .NET on Linux is silly.
2 - Want a dynamic language because it's more productive.
It isn't because it's "not cool". It's because general purpose languages are a dime a dozen, and there's no reason not to pick the best one possible. The only advantage .NET has is if you are doing work that integrates with other MS products.
If you meant "general purpose languages", which one is "the best one possible" and for what reasons?
It depends on the context. Again, if you are doing tight integration with other MS/Windows apps, .NET has a distinct advantage. And, in that case, I would probably say that C# is the best possible solution.
Java, which I'm not a fan of, has obvious advantages because of the size of tooling and community. It's also cross platform (which, again, may or may not be a big deal) while having good performance. More broadly, the JVM has those same advantages, plus distinct languages.
I'm a fan of dynamic languages. I think Python and Ruby are the best choice for what a lot of people are doing, especially on the web. Python obviously has a lot going for it in the scientific and research community.
I'm a former ASP.NET MVP, for what very little that's worth. For building websites, ASP.NET (WebForms, or MVC), is not a productive choice. I'd rather build something in PHP.
http://openmymind.net/2012/4/24/I-Rather-Have-Silly-Tests-Th...
It essentially comes down to less code. Some of that is simply less language clutter:
public virtual void Add(int a, int b) { }
vs
def add(a, b) end
Some of it is just what's possible due to dynamic languages, whether that's because of the type system, or, more likely, meta programming.
The benefit of meta programming compounds itself through libraries too. So not only is my code able to leverage it, but I can use libaries that leverage it and end up with User.find_by_name("leto") (as a classic, but certainly not singular, example)
If I have compelling need for a static language (performance?), I'm not sure if I'd pick C#, Java/Scala. But I maintain that all three are less productive than Ruby/Python, so unless you are building Cassandra/Lucene/Redis/Nginx/... I won't be too compelled about performance arguments.
I had consistently better performance running the same (CPU-bound, little IO) program on Windows Server than running it on Mono/Linux. I did that in 2005, so, YMMV.
Why would you pick C# over, say, Objective-C, Go or Java if you intend to run your software on Linux?
C# is definitely better than Java as a language. It's arguably better than Objective-C (whose main advantage is ease of talking to C APIs), and I have no idea about Go but I imagine there are probably decent reasons to prefer C# over it at least in some cases.
I'm kind of curious about languages such as Vala and Go and how they compare to C# and Java.
What a completely misunderstood view. Microsoft has earned the distrust of many many a coder through their cut-throat business tactics and complete disregard/disdain for other operating systems and platforms.
Wake me up when I can run a MS stack for near-free in perpetuity... because that's what Microsoft is competing against in the startup world. Do you think Instagram or Twitter's architecture would have been possible without OSS?
How true is this?
My perception so far is - It is quite possibly true, and I have noticed a strong anti-MS bias. I like and use Ruby\Rails but I have developed in .NET, and Visual Studio, C# are quality tools. VB.net is totally maligned but quite good: very English syntax w/o managing all the damn brackets.
I switched to open source because I hope to have a lot of users, thus a lot of servers. My feeling is the MS space is excellent for B to B, or internal intranet stuff, where the tight integration w Windows et al is useful and the licensing costs are moderate because of the low volume of users.
The article does ring true that valley based consumer startups run on Python/Ruby more often.
(I am really not sure about the "enterprise" ones.)
Cloud9 ide allows you to deploy from their platform to Azure but it was a headache getting anything working.
Did this strike anyone else as something _nobody ever_ would say? I think it's pretty much consensus that C# is basically the next-generation of Java.
As for Rails, Python, etc. being the most common tools in SV, I tend to this it might be because they are free. The thing is (in my experience) MS dev tools are usually very good, and probably don't cost nearly as much as most people think they would. However, entrepreneurial folks are just more likely to start with something free, and then when the time comes to get more serious about their startup, it just makes sense to keep running with what you know.
I don't want to go all Richard Stallman on you, but I think it might also be because they are Free. I mean, I've never bothered looking into MS dev tools because I assume they'll only run well on Windows, and they'll be designed for a server stack that will only run well on Windows, and then I'll be tied to getting my dev tools and server stack from one company on one OS, and it will be Microsoft.
It happens that I like developing on a Mac with a Python IDE right now, so I freely admit that I'm both biased and ignorant. But I do know, know, that if a year or two down the line Apple gets too controlling, I can switch to Windows or Linux and keep using my same stack with tools that are just as good. And if Guido decides to become Tyrannical Dictator for Life and screw up Python, he'll have no real power to do that because the community can do exactly what they're doing without him. Are those things true about MS dev tools?
This is what you get with Bizspark: http://www.microsoft.com/bizspark/azure/
Windows Phone must be great, a lot of reviewers said so. Poor sales? Perception and marketing! (Forget lack of leadership, vision and innovation)
Azure is shunned? That's because people misunderstand it. Nothing to do with being slow out the gate, falling farther behind with each new AWS product, and not having any price advantage (in some cases, it's far worse).
Bing losing money? That's just not fair, our results are as good as google. (NO THEY ARE NOT).
These sycophants are both internal to the company and external.
The sooner Microsoft realizes that it's failing to succeed in new markets because it's average-at-best, the better for them. As long as they keep believing that their failing products are great and thus the failure is [largely] outside of their control, nothing will change.
There is no reason for both of them to be problems.
You mean like how when you go looking for Windows Phone the salesman almost always pushes you hard towards other phones? There are too many instances of this to ignore.
Meanwhile, in multiple third party independent surveys, Windows Phone continues to do well:
http://www.neowin.net/news/windows-phone-tops-in-user-satisf...
http://socialtimes.com/windows-phone-bests-android-in-user-s...
http://thenextweb.com/apple/2012/03/28/revealing-user-survey...
For years we have heard the talk-ers proclaim how the .NET stack doesn't scale is too expensive for a startup. Meanwhile the do-ers built Stackoverflow and it has none of the scaling problems that sites built on other tools like Reddit have.
The perception problem is real and for you to totally ignore it shows your own biases.
I'm not arguing that Windows Phone isn't better (nor am I arguing that it is). I'm arguing that the reason it isn't selling is 100% internal to Microsoft and isn't merely a marketing and perception problem.
[1] http://www.paulgraham.com/submarine.html
* Both seem to do Node quite well, supporting both web instances and workers
* Deployment to Azure can take 30 minutes. On Heroku we average 30 seconds
* App setup on Heroku uses environment variables and the simple Procfile. On Azure you need to deal with poorly-documented XML files (most documentation deals with how to generate those with wizards in Visual Studio)
* Heroku's toolbelt works on Linux, Mac, and Windows. With Azure you have to use Visual Studio or Windows Powershell
* Azure provides some useful services like table storage and message queue. But Heroku has a much wider array of nicely-working add-ons to choose from, many of these things you could run on your own servers as well, like Redis or Postgres
* Last time I checked, Azure was quite expensive. This may have changed with their recent pricing cuts
* On the plus side, Azure lets you choose where to run your app geographically (USA, Europe, Asia?)
Compare:
http://universalruntime.tumblr.com/post/14303346830/running-...
https://devcenter.heroku.com/articles/nodejs