Why I avoid Microsoft
- Published December 12th, 2007 in Rant
«Screw Sun, cross-platform will never work. Let’s move on and steal the Java language.» - Prashant Sridharan, MS Visual J++ Product Manager, 1997
As you see, it’s not a question of doing better than the opponent, it’s a question of extermination through illicit tactics and undermining the other’s work.
I recommend the reading of the following article written by Rui Seabra.




I agree that the J++ and (to some point) J# implementations were a terrible idea from Microsoft. They tried to create their own implementation focusing in their native strategy, ignoring the community driven ideology behind Java. For some reason they were a complete fiasco and most of the people that like the .Net Framework never touched J# and most of the programmers never heard of J++.
But I think Microsoft is learning from its own errors and if you see their new projects, for instance IronPython and IronRuby that are stored in their open source repository (Codeplex http://www.codeplex.com) you’ll see some differences. These projects are much transparent and they reflect the interest of the community.
I think Microsoft is changing, and I hope they will try not to make the same errors of the past.
joamag,
Yes, IronPython and IronRuby are good things, but there’s a point in that: move people from a complete Open Source solution into the delves of .NET framework, which usually (and will) push forward other Microsoft technologies like Windows Server 2003 or SQL Server. Personally, I’d not go for IronRuby (Ruby is my favorite programming language) because I don’t want to be bound to WS 2003. I prefer the simplicity and performance of a *nix server at my hands. [1]
As for Microsoft changing it’s tactics.. I’m not entirely sure. It was not too long ago that Microsoft accused the Linux folks of violating 200+ patents and showing _zero_ proof of that accusation. I call that FUD to diminish the potential Linux users from becoming ones. Again, it’s not winning by having a better technology (WS2003) in this case — it’s winning by kicking the bolts out of your opponent. And I’m utterly against that.
[1] - Mono.NET doesn’t count until it has full parity with the .NET framework.
Yes, you can see IronPython and IronRuby as just other Microsoft “trick” to get more .Net “customers” and maybe it really is, after all Microsoft is a company and making money is the main objective of a company [1].
My position is a little bit different… for me the dynamic languages are more like the way of embedding python and ruby in the .Net environment, much like Jython does for the Java runtime environment.
The Microsoft main strategy with those dynamics languages is integrating them with Silverlight to provide an easy and flexible way of writing programs. I really like the idea of creating my engine in a core .Net language (C#) and then extend it at runtime using the DLR (Dynamic Language Runtime) with Python (or Ruby).
One thing is for certain if I wanted to create a new program from scratch in python I would not chose the IronPython over the CPython implementation, first because of performance, second because of stability, and third because the IronPython implementation is not as complete as the CPython one. Well maybe if I wanted to write a really simple WPF application I would go with IronPython :D…
[1] - I disagree with the part of being attached to MS SQL server just because you use .Net
joamag,
A small note in regards to this comment:
[1] - I disagree with the part of being attached to MS SQL server just because you use .Net
Some time ago I was working as a Soft. Engineer contractor for a company and I was helping to develop a Ruby on Rails solution for a client of that company. When we finished developing the application, that was running over MySQL, the client asked us to migrate to SQL Server. We asked why, since MySQL was dutifully handling all the tasks and quite fast, too (and cheaper than SQL Server). They answered “Because we use .NET for most of our applications, duh!”
Bottom line: although technically possible, integration with SQL Server and .NET is easier and better than, say, .NET/Oracle, MySQL or PostgreSQL. Most of the people don’t really know why they picked SQL Server and are paying a couple of thousands dollars/year for it. But they got it because they jumped on the .NET bandwagon, so it’s cool to have SQL Server too.
Anyway, there’s no problem in pushing a product to your clients. Saying, for instance, that Linux infringes 200+ patents without one single proof is definitely a problem that concerns me a lot.
“When we finished developing the application, that was running over MySQL, the client asked us to migrate to SQL Server. We asked why, since MySQL was dutifully handling all the tasks and quite fast, too (and cheaper than SQL Server).” They answered “Because we use .NET for most of our applications, duh!”
It makes sense, for the same reason that if you’re the customer and you had already Mysql within your infrastructure and supporting your solutions, you wouldn’t want them to use SQL Server (or another db engine), because you already have the competencies and you don’t want to be a technology collector… adding up more investment.
I understand clearly what you’re trying to say and I completely agree with that statement. I think the correct name for that is enterprise targeted marketing.
That phenomenon, that most of the software engineers can’t understand (including me). It’s based in the fact that a company (customer) believes that for the fact that a company (provider) has a good reputation on a certain field, makes it always the best solution for the problem.
That is true for MS SQL Server that’s for sure, but you can take it out of the Microsoft even in the database field. The Oracle database marketing machine is even stronger, and there are plenty of people using Oracle without knowing any of its advantages over the competitors. Even Microsoft Dynamics AX is using Oracle database (I bet you didn’t knew that one) just because there are plenty of costumers that would stop using the system if they just provided MS SQL Server support.
In the ERP systems field you have the SAP R/3 (or SAP ERP). There are people buying SAP R3 just because they don’t know any alternative, sometimes even open source ERPs (like Compiere) would fulfill their needs but they insist that the best option is an expensive SAP consultant.
It’s important to note that I’m not saying that these products are bad, I’m just saying that these kind of costumers select the product blindly. Maybe ignorance is the best answer to this kind of phenomenon.
You can also argue that Microsoft likes to create an ecosystem where all of their products interact perfectly and where for instance .Net Framework is “optimized” to work with MS SQL Server. That’s again probability true and also part of their marketing strategy, but again Microsoft is not the only company doing that. For instance Apple is even more found of creating ecosystems, when you can see a portable MP3 player that only works with a single program (ITunes), or a mobile phone that is bound to one mobile operator, or even the fact that you have to buy the latest Mac OS X (Leopard) to have boot camp in order to boot Windows (or pay a fee to get boot camp). I think the strategy of ecosystem is even bigger at Apple that at Microsoft, but again I’m a fan of Apple, I love their products and I really think they have a good strategy.
As for the fact that Microsoft claim that open source infringed 200 of its own patents, that’s CEO stuff (Steve Ballmer). That kind of decisions are always polemic and I like to stay away from them. Steve Ballmer made a lot of bad choices and some good ones :). I think this one is again in the dark side of the force, but again I’m a developer not a CEO.
Luckily there are plenty of smart people at Microsoft that overshadow Steve (at least internally), guys like Eric Rudder, Jeff Raikes, Ray Ozzie, etc.
“I understand clearly what you’re trying to say and I completely agree with that statement. I think the correct name for that is enterprise targeted marketing.
That phenomenon, that most of the software engineers can’t understand (including me). It’s based in the fact that a company (customer) believes that for the fact that a company (provider) has a good reputation on a certain field, makes it always the best solution for the problem.”
That’s your angle, from a decision maker perspective it’s called strategy. For the most part of the organizations technology it isn’t their core business, so it could be advisable to not introduce more variables to the equation, it’s harder and most of the time costly to manage diversity, that’s why, most of the time people are more comfortable to limit the complexity that it’s trying to deal with…
But obviously you have you point around the strategy of the technology providers, for them it makes sense to have a compelling history about integration and simplicity within their pond.
I think that today there is no reason for a decision maker to decide in a uninformed way…
Victor,
If interoperability were to be taken for granted, as in, imposed to the IT companies, a decision maker would never have to think about choosing an uni vs plural solution — everything would be, more or less, uniform.
But, unfortunately, several companies — and Microsoft being the worst of all — jeopardize interoperability to force decision makers to do an uniform decision towards Microsoft.
No wonder they have so many anti-trust processes going on. Unfortunately, they don’t seem to be making any difference at all [the anti-trust cases]. But not for too long. Paradigms are shifting and Google is here to hold the crown.
You’re plain wrong, interoperability doesn’t solve the diversity problem, it just simplifies the integration of disparate pieces, leveraging the best of each solution, but you have the same problem introducing solutions for stuff where you tipically don’t have competencies, that is usually the first reason for deciding to stay with one vendor or a small number of vendors, is it also easier to manage less relationships, for you is less complex… I guess you’ve already get the idea.
That is absolutely insane. You’re suggesting that company X has competencies on SQL Server just because they use Windows Server 2003. That is insane.
You might argue that a solution from the same provider is more integrated — which is usually true, due to the fact that interoperability and open protocols are not mandatory.
Anyway, the future is interoperability, open standards or open protocols.
“That is absolutely insane. You’re suggesting that company X has competencies on SQL Server just because they use Windows Server 2003. That is insane.”
No, I’m suggesting that they have already competencies in Windows Server 2003 AND SQL Server, and for that reason they prefer to not have (if possible) in other db engines (or pay for it).
“Anyway, the future is interoperability, open standards or open protocols.”
I didn’t said it isn’t, but my argument fits well with you (or me) for instance, why you don’t invest (learn) all the shit that appears? Why do you try to specialize and focus in certain areas? Got it?
Ok, I think we had a misinterpretation due to your last post. Put that way, of course it makes sense to focus the effort on one thing instead of multiple.