Hacker News new | past | comments | ask | show | jobs | submit login
Microsoft - Goodbye To All That... (ing.name)
74 points by daviding on Dec 3, 2010 | hide | past | favorite | 65 comments



I did webdev back in 2006, I started relearning it in 2010.

The problems you had in 2006 are still problems you have in 2010. IE6, browser fragmentation, HTTP, JavaScript. I would argue that today you have TOO MUCH choice. You have people endlessly debating whether to learn Ruby or Python (but never PHP), whether HTML5 will replace Flash (sorta, kinda), whether to use -moz CSS properties and so on.

Web development has solved distribution and possibly piracy and not much else. Still struggling on mobile, still difficult to develop cross-platform, still hasn't replaced anything of importance as preached for the last three years. The web is becoming the ultimate blub.

I think the author is in the honeymoon phase when it comes to the web and open-source. Both are important, but they aren't going to win/kill/destroy the alternatives.


Or to put it another way: The web doesn't have any "Right Things." It has a whole lot of "Worse is Betters" that are flawed, immature or inadequate, and if you really try to push them to their limits, you're walking into a minefield.

Maybe in another 5 years, we'll see things calm down again, but it really is a confusing software landscape these days.


Let's give the web at least one Right Thing(tm): the distribution model. The old days of asking "how do I get these updates out to every node of my gargantuan organization's network every Monday?" are so gone that we forget to put this in the tradeoff list.


That's still a pretty big single thing though.


But comparing it to desktop apps, mobile apps or console games, I would still say that web development has made it easier to do cross-platform development.

Sure you've got to support IE6 (mainly if you do enterprise stuff), but in desktop apps you have MacOS, Win7, WinXP, all Linux flavours. You can't make a cross-platform game (handheld or console). Mobile apps are divided in iOS, Android and probably WinMo7, webOS, RIM, ...


"The web is becoming the ultimate blub." Are you suggesting the web is becoming the ultimate you?


"And now I'm set free, I'm set free, I'm set free to find a new illusion" - Lou Reed


Probably old news for a lot of people here, but a cathartic piece for me to write. It's hard not to come across as partisan, but it's a great time to be in software.


Why is it cathartic? Are you angry? Do you feel victimized or held hostage? Maybe you should have written more about your feelings.

Anyway, you make points that I can sympathize with but I don't understand some of it. Why do people have such a visceral dislike of licensing costs? Presumably most HN people want to eventually build a start up that charges people money for a software service. People here are often quite indignant when someone complains a service costs too much. Yet MS is somehow bad for making money. Personally I find most of their pricing to be reasonable (in some cases that's no doubt thanks to pressure from free alternatives).

Also why do people always write these goodbyes and feel they have to cast off everything from MS forever? These proclamations are just strange. Let it be known to everyone that I'm never having apple flavored jolly ranchers again! Seriously, think of MS as just another shop in the bazaar.


Nice post. I almost completely agree with it.

The license cost point is a good one. I actually think it is kind of sad that software as a profession is all becoming enterprise software. No offense, but look at almost all of the YC projects... they're all things that I frankly would have had virtually no interest in coding as a kid. It all looks CRUD apps with the word "social" in the pitch.

But I think the profession has become one where software is marginalized, and you make money off of everything else. It's like music. No one wants to pay you for the music -- you have to make money selling t-shirts.

And then we have threads where people are surprised to see people say, "I just need a programmer".


The license cost point is a good one. I actually think it is kind of sad that software as a profession is all becoming enterprise software. No offense, but look at almost all of the YC projects... they're all things that I frankly would have had virtually no interest in coding as a kid. It all looks CRUD apps with the word "social" in the pitch.

Yeah, this was actually a point of contention when OSS started getting big, I think. But it was inevitable--things that are fun to write, people will write for fun.

I think there's some fun stuff left. Low level code tied to specific hardware and code that very few people need and can be held as a competitive advantage, for instance.


Fair points, cathartic is probably the wrong word - how about 'draw a line under'.

I don't think Microsoft is bad to want to make money, more that the choices around now make it a different dynamic around web technologies.

I'm not sure why others write these posts, for me it was more a long winded way to say 'After a long time I'm not mainly using the Microsoft dev stack, here's what this blog will be about'.

I won't suddenly forget 6 years of .net, but for me it's quite a shift.


> Why do people have such a visceral dislike of licensing costs?

They don't; what they dislike is the hassle of managing license keys, not being able to fix broken software themselves. The problem is not to be free as beer, but free as speech. And this is why RMS is true :)


If I'm using off-the-shelf software rather than writing my own, it's because either it's huge and complex or it's not important enough to make time from other projects.

In either case, I'm trading off flexibility for the speed at which I can have _something_ and I care far more about having something that works tolerably well than having something I can change to make it work better. If it breaks, I'll find something else; the software ecosystem is big enough now.

Which is why I'll take "reasonably reliably working" over "I've got the rights to fix it".


I don't know where you read "visceral dislike" into what he wrote, I thought he laid out a logical reasonable case against them.


With topics like these I think people project a lot of their own decision processes. I enjoyed writing it, and if people get some sort of reaction or thoughts out of it then I'm happy.


      Why do people have such a visceral dislike of licensing costs?
Some people are like that, sure, but that's a loud minority of idiots.

For me it's not a dislike for licensing costs, but a preference for free of charge; like all people I like a good deal when I see one.

Not to mention that most software requiring licensing costs also has additional handicaps, like not being able to look at the source code or fix it; which is really necessary sometimes, especially when your company is in the software business.


> but a preference for free of charge

I like tools I can inspect or modify and improve upon. the fact they are also, most of the time, free of charge, is an incredible bonus.


I should add that when I worked for others then license costs seemed more ok and a little more abstract. Now I pay wages then I'm less keen on those SQL server per processor costs.

I hope what I wrote in the blog didn't come across as visceral anti anything, especially making or spending money.


I'm very glad that you wrote this. Thank you.


Thanks for taking the time to read it.




You were probably wreaking havoc -- probably not reeking havoc, but maybe. This is also sometimes the specialty of CompSci graduates.


Fascinating. I'm going through sort of the same thing myself. I'm writing ASP.NET MVC and C# at work. I like C#. I think ASP.NET MVC is a good framework.

That being said, I've been doing .NET stuff for a good 9 years now (2001, when the first public beta was released). I'm kind of tired of it. I don't feel I'm learning a whole lot of new stuff and it doesn't excite me anymore. I've been dabbling in Ruby and Rails recently and playing with node.js. This stuff is interesting.

Good luck with your journey.


Thanks. It's more the case I have the opportunity, as I'm in start-up mode again. However hard I tried to lay out a balanced case on my thought process I still expected a bit of a 'Why does he hate Microsoft?' reactions.

I'm living in a house Microsoft helped pay for, and as others have commented, the tools aren't really everything. I can enjoy ruby or python or anything else as I see the same patterns in them all.

In short, we live in interesting times and it's fun to explore if you get the chance.


I'm tired of these posts.

I'm tired of an industry where it's assumed that using technical tools is the skill, rather than understanding and applying technical concepts.

I'm tired of "I'm a .NET developer" or "I'm a python developer". I want a world where we're not tied to a particular framework, where people hire expert technologists and business analysts regardless of what framework they used at their last job. Where managers truly value people and interactions over tools and process.

The inhumanity and subsequent waste of it all is really piling up, and theses posts only reinforce the ignorant and shallow perception that the tools make the professional.


Why is it different than the way doctors specialize. Sure, a doctor should have a basic understanding of all physiology - but you want the guy that operates on your heart to have lots of experience. Why is specialization in programming offensive for some reason?

(FWIW - I am not a programmer/developer)


Precisely because tool-specialization isn't a good analogue to problem-domain specialization.

e.g. Saying "Ruby Developer" isn't like saying "Brain Surgeon". It's more like saying "Hammer Carpenter" or "Scalpel Surgeon".

Web Developer, Embedded Developer -- these are more akin to specialization on the order of "Brain Surgeon" or "Endocrinologist". Notably, no-one's taking issue with that kind of specialization.


There are valid specializations for programmers. There are application developers, systems architects, UI engineers, operations specialists, cryptographers, scientific programmers, etc. You don't care that your doctor uses the Acme Scalpel 4000, you just want your gut cut.


Yes, but the lead surgeon at the hospital probably doesn't want one doctor using an Acme Scalpel 4000, another using an Ajax Scalpel, and yet a third using a FooBar X-Scalpel.

Maybe that part of the analogy doesn't hold up for a hospital, but it sure as hell does in a software engineering organization. If you have a bunch of people working together towards a common set of goals, it makes things a hell of a lot more complicated if everyone is just working in the language they like playing with the most, regardless of their overall technical knowledge. Organizations standardize on best practices, languages, frameworks and technologies because it simplifies things.


"You don't care that your doctor uses the Acme Scalpel 4000, you just want your gut cut." Exactly. What makes you think that this is different in software... the end users DO NOT care what tool or framework you use to build the solutions they need. Now, doctors probably have preferences on what tools and procedures to use - just like we programmers.


And the elevation of those preferences to a dogmatic self-identification is a Really Big Problem. People and interactions over tools and process.


I think you can compare a programmer more to a musician than to a doctor specialist.

If you have the feeling for the music you can create music using anything. Ideas just blow to your mind. The tool, well, it's is just an interface to concretize your idea.

But I think specialization is not a bad idea.


"Microsoft does great things, but it’s become safe and dependable rather than exciting and risky."

After running into yet another bug in a new and shiny framework, costing me oh so much time, safe and dependable is starting to sound rather nice.If you always use cutting-edge do you really save time over using the tried and tested? A lot of time is lost due to having to learn new things, lack of documentation, lack of features and bugs. There is no absolute answer of course but it's a thing I think is important to keep in mind.


Good programming environments are not yet invented ! Certainly VS.NET is more productive than Turbo Pascal, but IMHO the programming experience is the same.


I am going to have to disagree with bananarama here. It IS what you do and NOT the way that you do it. If an architect spends his time considering his choice of pencils he's either in the wrong job or bored with his current project


Creative flow is easily disruptible. A programmer having to use a different editor, or becoming conscious of a different keyboard than the one it replaced is disruptive.

He may want to use the right pencil, the one that feels right in his hand so he can muster the subconscious forces that drive his talent.

Programmers are no more assembly-line workers than architects.


Why are people always writing these types of posts? .NET/VS.NET is one of the best programming environments ever engineered, no need to bash Microsoft on that. And what's the deal with licensing? We, as software developers and entrepreneurs, eventually want to charge money for some product/service and I personally find it much easier to do in .NET/Corporate settings - Microsoft has just managed to educate people that software costs money.

I find it much, much harder to charge money (I'm in the developer tools space) in the "FREE", open source, free is beer, as... whatever, and all that crap world, where people would just expect you to work full-time several years with $0 revenue - I just do not understand all that crap.

So massive respect to Microsoft - these guys are doing us a huge favor by educating people that software costs money.


> Why are people always writing these types of posts?

Most probably because...

> .NET/VS.NET is one of the best programming environments ever engineered

... simply isn't true.

Unless you are saying it's one of the 10.000 best programming environments ever engineered or that others, like Smalltalk/80, Genera, Interlisp, Turbo Pascal, the NeXT toolset, Zope, Rails, Django were "grown" rather than engineered. I agree VS is and has consistently been the best single IDE when you are using Windows to write software that runs on Windows, but it fails miserably out of its narrow domain (however deep it is, as it accounts for a huge market share). It's much like Xcode being the best IDE for using an Apple computer to write software that runs on Apple computers. It certainly is.

Microsoft deserves some recognition, for many times they delivered what the market needed. From its very first BASIC interpreter, to Windows, to Windows for Workgroups, to the first affordable alternative to Unix on RISC boxes (NT, for those too young to remember), to Visual Basic (the only language many corporate developers ever knew) they more or less set the tone of the entire PC industry.

As for charging money for software, the market changed. It's like complaining you can no longer sell ice blocks because everybody owns a refrigerator or that you don't sell as many carriages as you once did because people prefer cars. Embrace the change, use the tools and help build them into even more impressive ones (from the list I showed in the first "real" paragraph, 4 have always either been open-source or have a direct descendant that is). You can use them for free, you can build on them and you can improve them so they better suit your needs.


>As for charging money for software, the market changed.

I do not agree. Nothing is free, its just that costs continually get shifted else where into abstraction. If you pay money to advertise your service then you and (others) are all indirectly paying for your software (and others') so you can be able to offer your software 'free'. If you say, choose to monetize by ads.

Really there has not yet emerged an economic model that beats simple old just charge money for it in terms of ease of implementation and use, reliability and path to profitability for someone starting off.

Sell Ads, take a minuscule rent to display ads other people bought, micro-payments, licensing, charging for support (urgh!), free (crippled) version to bait to a paid version are actually all more of the same. Except that all but the last requiring a large amount of traction in activity, reputation, users or both. Something very not easy to get, requiring a much longer runway than is feasible for most.unless they wish to seek investment, which is its own can of worms.

But I do agree, this direct charging is not going to work much longer than this decade I don't think. It is going to be very interesting to see what sort of new economic models evolve to support consumption and greed. These are interesting times. I hope to be part of it.


It's going to work for B2B for a long time to come.


"It's much like Xcode being the best IDE for using an Apple computer to write software that runs on Apple computers. It certainly is."

Actually, so long as I'm writing C++, I greatly prefer QtCreator over XCode. It actually helps me navigate my code, whereas XCode just seems to get in the way.

I'd agree that XCode is the best IDE for writing Objective-C apps for OS X on a Mac... but only because it's in a field of one (as far as I know). In my opinion it's a truly terrible IDE.


There are definitely no 10.000 programming environments on par with .NET/VS. 10 perhaps.


In order to determine what's "on par" with .NET/VS, you have first to define your goal. If it is writing web apps for Windows servers, it's pretty good. If it's writing desktop apps for Windows using C/C++/C#/VB.net, then VS is an obvious choice.

If, however, your goal is to deliver a desktop application that runs on Windows, MacOS X and other Unixes, or an app that runs on Symbian mobile phones, VS is worst than useless.


You should not count which platforms it runs on. The claim was:

> .NET/VS.NET is one of the best programming environments ever engineered

What you're doing is when somebody claims "trains are more energy efficient than cars" then you say "but not if you run a train on a road"/"you can't run a train on a road". This is true but that was not the claim, the claim is clearly about the productivity a programmer has with the tools for developing applications for the platforms that the respective tools are targeting.

And you can build applications that run on OS X and Linux with VS.


> And you can build applications that run on OS X and Linux with VS.

It would be every bit as pretty as driving a train over a road...

VS is a space shuttle. Very complex, very impressive and with a very limited usage. To its credit and unlike the shuttle, it can do one thing very well.

It all depends on your priorities. If all you do is write Windows software, VS is the best. If what you do is web apps that will run on Unix-like servers on platforms like J2EE, Django, Rails, Flask or anything like it, you can tweak it until it becomes barely usable. Of course, only as long as you conform yourself to running your workstation on an environment profoundly different from what the app will run on production.

Priorities matter. I wouldn't use a Formula 1 race car to launch a satellite, regardless of how much they are impressive vehicles. Compared to what it takes to launch a satellite, they are, really, quite unimpressive.


If, however, your goal is to deliver a desktop application that runs on Windows, MacOS X and other Unixes...VS is worst than useless.

Not at all true. Setting up VS to work with Qt isn't too hard. And once you've got it set up it's a perfectly fine tool for writing cross platform Qt apps. Then to build and test you just do some clever stuff with virtual machines and you are good to go.


Point taken. It's possible to coerce VS into being a cross-platform IDE, therefore it's not "worse than useless" in this case.


not true if you're developing the desktop app in Silverlight which will run in all of those desktop environments (of course Moonlight is not an official release from MSFT)


Selling software as Buggy Whips?!

Surely ye jest.

There's more startups charging consumers now than anytime I can remember. It used to be that unless your startup was retail based, it was free. Those days are gone.


> Surely ye jest.

I'm serious. The market changed. You can no longer sell a C compiler, a desktop operating system or an e-mail client. You can sell a lot of stuff.

And don't call me Shirley.


The unfortunate truth is that big companies can play that game - this or that is free and commoditizing software in general - they can win elsewhere. A very good example is what Google is doing with browsers and all kinds of software just to win on AdWords/Sense.

The bad news is that small companies cannot do that easily - they typically rely on a single product/service that they need to charge people for, like any traditional business out there.

Same with app stores - they are pretty much forcing 3rd party devs to give away or sell for pennies. Sure, we get this occasional story of a successful mobile product, but the truth is for each success there are tens of thousands of apps making close to nothing.

This, for me, is NOT a good trend for software startups. The whole "free" movement make it exceedingly hard to sell software nowadays.


At the same time that OSS makes software unsellable, it also makes SaaS profitable. For example it's becoming really tough to sell version control software but totally feasible to sell a version control service, in both cases because of excellent OSS software.


> I'm in the developer tools space

We are the worst market out there to sell because we all love to build different colored dog houses and paint bike sheds various shades purple.

- - -

I've loved VS.NET in the past, but it doesn't make me happy any more. Personally, I can't have fun working with it. It is impressive, but it lacks soul.

My rants on IDEs in general: http://blog.mathgladiator.com/2010/10/on-ides-refinement-of-...

http://blog.mathgladiator.com/2010/10/if-i-were-to-write-ano...


> So massive respect to Microsoft - these guys are doing us a huge favor by educating people that software costs money.

Unlike Apple and Google which educate people that software costs 0.99$ or is free. What the heck can I charge if Id software publishes their latest game for 0.99$?


I certainly didn't think I was bashing Microsoft or dismissing paying for all software.

As for why people are writing these, I'm not sure - for me it was just a 'I'm writing stuff on other stacks now, here's the blog'.


Which developer tools are you building?


Aside from the many valid MS-specific issues, my recent take on "why I abandoned X for Y" is that programming is still an inherently hard and frustrating activity. The final results are frustrating compared to the promise of X; The problems of Ruby-on-Rails or .NET or beautiful Perl one-liners whatever don't appear tell you get to a certain scale. So the next great thing (or the retro-great-thing or whatever) can always look good compared to the big mess you've land yourself in. And .NET could well be the best engineered system in the world for all I know but it's crazy frustrating once you get to a certain scale.

Therefore, we should abandon X and do Y, whose promises haven't yet been broken.


>Why are people always writing these types of posts? .NET/VS.NET is one of the best programming environments ever engineered, no need to bash Microsoft on that.

People write these kinds of posts all the time. You see more of them on sites like this because people who tend to dislike and put down Microsoft and feel good about their choice constantly upvote this kind of posts.

Stackoverflow is a example of a site which shows off that C#/.NET done in a proper way is a very platform.


> shows off that C#/.NET done in a proper way is a very platform.

I could agree C#/.NET is a very platform, if I could understand what that means.

With lots of work and a talented team like SO's you can do a lot of extraordinary things done. The fact that SO stands apart as "C#/,NET done right" shows how much work it is to build a website on that stack.

Not everybody needs to be a Facebook.


Wreaked, not "reeked." Savvy?


Wreaked, actually. http://rationalwiki.org/wiki/Skitt%E2%80%99s_Law triumphs again!


Uh, wyclif, when someone corrects an error you've made, it's impolite to edit what you wrote without saying you've done so. (Because it then makes the person who noticed your error look like an idiot correcting a mistake that wasn't there. Which isn't very nice.)


Can I pretend it was a pun?




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

Search: