Say Hello to Windows Azure, The World’s Most Misunderstood Cloud
wired.com
wired.com
* 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-...
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.
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.
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 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.
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?
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?
For 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
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).
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.
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.
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.
While I'm not excusing either, it isn't necessarily symptomatic of widespread failure.
http://www.pcworld.com/article/222029/iphones_daylight_savin...
This is what you get with Bizspark: http://www.microsoft.com/bizspark/azure/
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.
Cloud9 ide allows you to deploy from their platform to Azure but it was a headache getting anything working.
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.)