Recently, a good and long time friend of mine wrote a letter to Microsoft and posted it on his FaceBook account. I couldn’t help but share this letter with you.
“Dear Microsoft,
I really appreciate that your technology has fed my family and given me a great career over the past 13 years. However, lately our relationship has been lackluster at best. Let me explain:
• Windows Vista sucked. Enough said.
• The X-Box 360 sucked. I have to pay a monthly fee for online service unlike ps3 and Wii, and I got Red Ring of Death twice.
• Your Zune software sucks. The device is fine, but the software is incredibly slow, bugs are never fixed and i can’t use any other software to synch my Zune. It goes and renames files without my permission.
• Windows 7 is better, but not near as innovative as Mac OS X. The control panel is a freaking maze compared to XP or Mac.
• Your development tools such as Visual Studio are slow and kludgy and not nearly as innovative as Ruby on Rails. That sucks.
• Your licensing sucks. I spent 2 hours on the phone yesterday talking to your employees about licensing which SUCKED because they seemed as clueless as the rest of us. We’re having to do a $2000+ upgrade to serve one client. If were were not already MSDN subscribers, it would have cost us $7000+
Thanks for the memories, but I fear our relationship is almost over.
-Craig”
Let me explain. For the over 25 years that I have known Craig, the last 15 or so he has been a developer for a living. Specifically a pro-Microsoft developer. During those last 15 years, I shared many of Craig’s beliefs about Microsoft “just getting it,” and Microsoft being better. About 6 years ago… I started to question. I started becoming interested in Linux, Macintosh and other alternative platforms such as BeOS. And then I did it. I switched to Mac.
Craig liked my Mac, but still found Microsoft to be the superior platform. We talked all the time and slowly I started seeing Craig’s opinion change… until today when I saw this on FaceBook. His transition from the DarkSide is almost complete!













I agree Vista sucked balls. Win 7 is awesome thou. For a MS os. Control panel is lacking but I never go in there so don’t care.
I got RRoD twice also but I still love it so much more than my PS3. And paying for xbox live is worth every penny. Even Sony agrees since they are implementing the same thing. … See More
Totally agree about the Zune. Love the actual device (orig brown FTW!!) but the desktop software is terrible. I havnt even gotten it to install correctly and sync in years.
Totally DISagrees with you about the dev tools. I still havnt seen anything from anyone else that even comes close. Period. If anyone can show me an IDE/ language that is as robust as VS please ping me. I really would like to see it.
I understand about the licensing. They key is to have really good contacts. I have some great relationships with MS and CDW and we never have issues. I can usually help out in this area if you need it.
Rate this comment:
1
0
Sean,
I used to believe the same thing about the dev tools, but i think we’ve been hoodwinked.
Many of the “enhancements” in vs.net over the years are things that have been in eclipse forever. and i’m starting to feel i dont need many of the things we consider standard in an IDE. Let me ask you this? How often do you wait for stuff to … See Morecompile, for vs.net to start up, for vs.net’s intellisense to kick in, for it to load and parse an html/aspx file, for it to stop locking up, etc? With me, its a lot, even on a fairly beefy laptop. All those features in VS.NET come with a price, usually in performance, and half of them (like dragging and dropping datasets or controls) I don’t use. I’m tired of waiting for my IDE to catch up with me.
Besides that, C# / .NET isn’t innovating, they’re simply assimilating from other languages like Lisp and Ruby and the things they are assimilating are things they USED to tell us were unnecessary or BAD, like functional or dynamic programming, TDD, ORMs and so on. I’m betting a solid Python or Ruby on Rails developer using VIM can code circles around a C# developer and still produce the same quality code, or better.
http://kurtgrandis.com/blog/2010/02/24/python-django-vs-c-asp-net-productivity-showdown/
I know this is hard to accept on faith, so you’ll just have to look at the rest of the programming world for yourself and decide.
Rate this comment:
0
0
With Sean on the 360. Way better online experience than my PS3. My PS3 is a glorified Bluray player. Had one RRod but it was after 4 years and was an original launch unit. Big mistake they made was NOT including HDDVD with the units.
Rate this comment:
0
0
Hmm. I never have any of those issues. Intellesense always there and my solutions compile instantly. Never more the 5 secs. And I’ve done other dev. Mostly java but some lamp too. Used eclipse a lot. It just feels cheap and not all there. And the controls you get with VS are great. I haunt found anything like it with the other dev environments.
… See MoreLike I said if there is something great out ther let me know. I just dont believe that ruby will ever be at that level.
There is a ton of crap in vs that I’ve never used and never will. But it’s never been a problem for me. Of course I’m anal about my dev machines. Alway top of the line and I reinstall my os monthly.
Rate this comment:
1
2
Give me a freaking break. You shouldn’t have to reinstall… EVER! God I hate windouches.
Rate this comment:
1
0
Microsoft’s biggest problem when it comes to their attempts to enter the consumer market is that they are too bland. (IE: XBox, mobile phones, keyboards, mice, etc) It is like they have a big committee and every product they design has to please every person in the committee or at least not offend anyone. As such, their product have absolutely nothing special about them. As for Windows 7, I find it is only marginally better than Vista. Again, too many people probably were involved in designing it. It tries to do and be too many different things.
Rate this comment:
2
0
The last thing Microsoft did that I really liked was their BASIC compiler for the TRS-80 Color Computer. MS-DOS was okay, but not spectacular. Windows 3.1 was a lame and late imitation of Mac, though tolerable because I still had a command line. After that it was all downhill.
I jumped from Win 3.1 to Linux/X in about 2000, mostly because Win 95 sucked so bad and I didn’t want to mess with it. I didn’t really get on the free software bandwagon until after that.
Rate this comment:
0
1
I’ve using various flavors of Linux since red hat 5 or so. Love ubuntu. Sadly for doing quality business applications you gotta use MS toils and OS.
Not saying other techs aren’t valid. Just not at the same level for quality professional apps.
But yeah running ubuntu 10.04 at home. Plus two macs and my iPad.
Rate this comment:
0
0
PS3 is a blu-ray player. FTW. I have both, but I use the PS3 about 100 times more than the 360.
Rate this comment:
0
0
yeah, i have both. use ps3 for movies, xbox for games.
Rate this comment:
0
0
Funny, I was just complaining to somebody earlier today about the “maze” of the control panel in Windows 7. They hide all of the options you really need by default, then when you unhide them there are so many you can’t find what you want. Then you click one icon thinking it will take you to where you want, but don’t believe it, it is deceiving you! It used to be so simple to change something like TCP/IP settings. But now it takes like an hour to hunt down the network adapter properties.
Rate this comment:
0
0
95% of the time i just use the search box and type in what i’m trying to do. seems to get me closer than hunting does.
Rate this comment:
2
0
Microsoft tried to copy Mac OS by making it into “computers for dummies” and hiding all the settings that can get really fouled up by someone who doesn’t know what they’re messing with. I can say that any home tech-support person probably loves 7, because it’s far less likely to sit down at someone’s home pc and after 20 minutes of checking the “… See Moreusual problems,” find out they entered their own zip code as the DSN address (yes, that’s a personal “i’ve seen this” story).
Harder to find = harder to screw up. Great for idiots, bad for everyone else.
Rate this comment:
0
0
Like i said, part of it is coming to the realization that i don’t need a beefy IDE like eclipse or vs.net in order to code. VS.NET has caught up to Eclipse for the most part if you have resharper installed. Not sure why i always have compile time issues even when i was on my alienware.
I would argue that Ruby is a much higher level … See Morelanguage than Java or C#, and I would guess that python is similar although I can’t say since I haven’t used it. Ruby has only a few data types like string, fixnum, and hashes/arrays. This makes it a lot easier to deal with and i can focus on business logic. Blocks are neat too and much slicker than lambdas in C#. The other thing is that Ruby has higher quality (IMHO) small building blocks than .NET. When i get a 3rd party library, i never know what i may get–it might be good code, it might be a crappy interface because it was ported from library, it might be total crap source and all. With Ruby the API and source of libraries are consistently good. Remember asp.net 2.0 membership api? Hated it. It was very procedural, it forced you to make those aspnet_ tables there way and if you wanted to override anything there was this giant interface with a mound of methods. With ruby there’s this great gem called devise. Just pop a one liner on YOUR “User” object and you suddenly get all this login, password and security functionality. Your user object is defined exactly how you want–you can add other fields and properties easily. If you want to override methods, table names, properties, etc. you can do so one by one without changing the whole interface.
I will say that the ActiveRecord framework in rails is not enterprise friendly, because the pattern itself is very simplistic and data oriented, but then so is MS’s linq-to-sql and Entity Framework. EF is just now getting a “model first” poco, style approach. with MS its been all about the data–they have been very slow to embrace true OOP goodness, other than the initial .NET framework itself. but rails 3 is becoming very enterprise friendly, enabling you to easily swap out the parts that are two limiting and even in rails 2 its not that bad.
You’re right that there aren’t as many finished applications in Ruby as there are in java, .net and php. Part of it might be because its O.S. and the new kid on the block, but I think that will change. Rob Connery, Scott Bellware and ThoughtWorks (Martin Fowler’s company) among others have all embrace Ruby even for enterprise apps.
A lot of the “enterpriseyness” in Microsoft dev tools is exactly what turn me off to it. I liked silverlight, wpf and wcf, but WCF is really configuration heavy and complex. I hate SSIS, SSRS, WF, and a lot of the tools that require a separate server (and license ) and a rocket science degree to get started. Yet at the same time, I hate the drag and drop mentality that makes no sense in an enterprise application — give me code please, not giant designers that are supposed to program for me and create mounts of unreadable, unmergable, xml! I’ll use design patterns and threading and so forth to handle enterprise and workflow problem domains, thank you very much. why do i need a seperate service installed for reporting again? could it be to sell more licenses?
I think asp.net was genius for its time but its showing its age. The web has caught up. MVC is ok was a “me too” attempt that didnt quite match rails and had a bunch of webforms ugliness left in it. MSUnit i never used but i never understood why they didnt just add support for NUnit, XUnit, etc. They just dont seem to be innovating, especially on the web, but even their enterprise solutions seem to add more complexity rather than reducing it.
Anyway, sorry for the rant. Its just my opinion. Windows is definitely much more polished than ubuntu and windows 7 is much better than its predecessors. MS still has arguably the best office apps by far. I just agree with Connery that MS now has a sales guy thats interested in selling server licenses and I as the small guy don’t feel heard. Part of it is a preference of how to work. You like having sharepoint for example, with all its bells and whistles already there built in, and undoubtedly it saves you time because you know the product so well. I prefer the minimalists approach and only have exactly what i need so i can produce the simplist approach possible and code MY way , not how the platform tells me i need to. I’ve also been in a lot of “enterprise environments” where the guys there coded very procedurally used drag and drop approaches that needed DDD solutions and used giant nasty stored procs up the wazoo instead of OOP because thats how MS has been telling them to do it for years (until recently.) So I have my baggage.
I wont stop using their products where the solution warrants it and i’m not saying they are all bad. I’d definitely use sharepoint if someone needed a super big, flexible intranet app that needed to integrate into Windows AD. I’m just not looking to MS for answers anymore.
Rate this comment:
1
0
I don’t disagree with what you are saying. and it has been a while since i tried doing any serious dev in anything but VS, but here is my deal:
Using Java or Ruby or anything else, you have to code all the UI elements by hand. Thats a huge downside for me. I love being able to drop a GridView on a page and set the data binding to something in my data class. easy peasy. … See More
I’m all for ‘just the code’. I did all my Java dev back in the day in Textpad. I’m just cool like that. But for doing crap at work I need more of a RAD type platform. And nothing is as good as VS for that that I have seen.
BTW, I LOVE SSIS and SSRS. Much better than Crystal/ SAP craptastic stuff. Of course we have a very nice EA so don’t care about licensing. YMMV
Cheers!
Rate this comment:
0
0
Yeah you can’t beat VS.NET for designing a UI. They have the best one hands down. But I spend so little of my time doing that. Using MVC, I code all my html and dynamic tags by hand. I don’t do much desktop apps. So the drag and drop UI just isn’t a huge benefit to me.
I don’t have a problem working in SSRS, i just hate having to have a … See Moreseparte server and configuration for reports. I think they should be xcopy deployable. I hate SSIS. I’d rather have a DSL for that or even for reports, because then i can do refactoring easier, merges, etc.
Rate this comment:
0
0
You can dev and deploy reports as part of your project without ssrs. I just don’t like the experience as much as using bids to do it. But I have done a few that way. Use the report server control and point it to a local report. Kinda like doing the crystal reports stuff. But you know MS.
Rate this comment:
0
0
I’ve never done that/didn’t know that was even possible. I thought you HAD to have a reporting server. Was that changed in 2008 or was it always there?
I found out today Ruby has a report system thats just a DSL and you can export to PDF, CSV, etc.
Rate this comment:
0
0
Hmm maybe new to 2008. Been there for a while. Just set the report type to local and set it to a rpt file. You can create the report there in vs. Not as many options as bids/ssrs thou. But serviceable. And completely stand alone.
Rate this comment:
0
0