Apps

Is Microsoft's legacy holding it back from being more innovative?

Microsoft has a huge legacy issue; even the slightest mistake in breaking backwards compatibility can make millions of people unable to work. Do you think Microsoft's legacy is holding it back from being more innovative?

Thanks to its continued success, Microsoft has an installed user base that is measured in the hundreds of millions. Between Windows and Office, I am sure that there are well over a billion licensed copies of Microsoft applications out there, and each product line has at least three versions that are supported at any given time.

Clearly, Microsoft has a huge legacy issue; even the slightest mistake in breaking backwards compatibility can make millions of people unable to work. I suspect that the need to not break existing applications, combined with not being able to "move the cheese" on the users, is severely hampering Microsoft's ability to innovate or do radically new things. What do you think?

J.Ja

Disclosure of Justin's industry affiliations: Justin James has a working arrangement with Microsoft to write an article for MSDN Magazine. He also has a contract with Spiceworks to write product buying guides.

---------------------------------------------------------------------------------------------------------------

Get weekly development tips in your inbox Keep your developer skills sharp by signing up for TechRepublic's free Web Developer newsletter, delivered each Tuesday. Automatically subscribe today!

About

Justin James is the Lead Architect for Conigent.

62 comments
pvandck
pvandck

Clearly we are using a strictly limited definition of "innovate". In any real sense MS needs to be both innovative and imaginative in order not to break backward compatibility. Breaking backward compatibility and having a complete disregard for existing customers who've already paid for the product is both obvious and easy. Sometimes the more limiting the options the more innovative one has to be. Also I think commentators are in danger of confusing "new product" with "innovative", or "innovation" with "better". It doesn't always work out that way. Take photography as an example, with image quality regarding film vs digital arrays etc. Plenty of innovation in digital imaging but, at the lower end particularly, quality of results comparable to 40 years ago. Not good imo.

verelse
verelse

I mean, really, UNIX is 1970s technology still lurking around. Real innovation has taken place at Apple with the click wheel. Our interface into computing must change for real innovation to occur. The KVM paradigm must change or even better, die. Our computers must be instant-on, intuitive, less complex to maintain, and standardized. Microsoft is now starting to leverage its monopoly to enter new markets; I find this dangerous and very anti-competitive. I want to say I am actually very appreciative of what Microsoft has accomplished. I am not an anti-Microsoft fanboy. I do believe that the attempt to create a monolithic computing system is dangerous and anti-Trust enforcement agencies should take note. Microsoft cannot continue to proliferate its product line while maintaining its monopoly on the desktop. One of these must go or a breakup should be considered.

swstephe
swstephe

I've spent the past 20 years rewriting Windows code after Microsoft abandoned one standard in favor of another. Windows XP is unsupported, despite most people still using it, meaning that Microsoft is free to "innovate" leaving the people who don't upgrade in the dust. VB.Net was a huge rewrite. You can't just upgrade, you have rewrite or have someone rewrite your code. Any other company that made such major revisions at the height of popularity would be dead. My Unix programs still run, unchanged, after 20 years.

michaels.perry
michaels.perry

Not really, It's their insistence on US English being installed that prevents many buying MS products when we don't use US English - ever. Lets us select what we need installed and don't force unwanted stuff on us.

JohnOfStony
JohnOfStony

In the mid-late 80s when computer companies were moving from 8 bit to 16 bit processors there was a legacy problem - could they make their 8 bit software run on 16 bit processors? This was also a problem for the chip makers. Intel took the approach of making the 8086 compatible with the 8080 family at machine code level, thus limiting the potential of the 8086. Motorola, the other big player, opted for compatibility at assembly language level. This meant that existing compiled programs wouldn't run but they could be recompiled with minimal changes to run on the 68000 family. However, even this level of compatibility led to some restrictions in processor design. Acorn Computers, a relatively tiny British outfit which had designed its computers around the 6502 8-bit processor looked at the 8086 and at the 68000 and neither of them could beat or even match the 6502 on interrupt response time because of the 16 bit overheads. Acorn was not going to reduce the performance of its computers in this respect so it took a highly innovative approach - design a new (32 bit - lets leapfrog the opposition) processor which was so efficient that it could emulate the 6502 real time in software and still have a fast interrupt response. This had two fundamental advantages: legacy 6502 compiled programs could run on the emulator yet there was no restriction on processor design due to legacy compatibility considerations. The result was the first ARM processor which had the highest MIPS per Watt rating of any processor in the world (think green?). It was incorporated into the Acorn Archimedes which at the time of its release was the fastest desktop computer in the world. This is the sort of innovative approach that Microsoft needs to adopt - forget about backward compatibility; design a superb operating system from scratch based on what it's learned over the years from its own designs, from its competitors and from Windows users' feedback. Make it compact and extremely fast and then write emulators for ALL previous versions of Windows. This should guarantee it a loyal following for years to come. Moreover, by making it compact, fewer lines of code mean fewer chances of bugs, fewer security loopholes and easier maintainability. One question for Microsoft - where do you want to go tomorrow? One final comment - whatever happened to VMS, the DEC operating system on its VAX computers? One feature of VMS which ought to be incorporated into all modern operating systems is the numeric super-suffix on a filename. If you created a file called Fred.txt, VMS appended a usually invisible numeric super-suffix of ";1". if you edited Fred.txt (actually Fred.txt;1) and saved the edited version using the same name, Fred.txt, it became Fred.txt;2 although the user would only see Fred.txt and the previous version would normally be hidden. There was a command "purge" which deleted all except the current version although you could select to keep a few earlier versions, e.g. purge -keep=3 *.txt would delete all but the last 3 versions of all text files in the current folder. Yes, I know I'm talking command lines here but it's the concept I want to resurrect. In these days of huge ultra-cheap storage, doesn't it make sense? This would make retrieval of accidentally overwritten files trivial because they wouldn't be overwritten!!! Why ignore the good ideas of the past? Lets include them and make an even better future.

fedm235
fedm235

Yes, Microsoft backward compatibility may be holding some innovation back. But consider these points: 1. Vista dropped a lot of legacy, from dramatic UI changes to less hardware driver support. 2. More administration stuff is now available with command line mode, without a sometimes cumbersome GUI. Back to the DOS window for many of us!

Deadly Ernest
Deadly Ernest

What's holding them back is their refusal to get on board with the industry and use industry standard instruction command sets to enable the whole industry to go to full plug-n-play. One set of patches to convert each product to the industry standard plug-n-play command sets and they wouldn't need any other legacy code apart from what's needed to 'correct' their altered formats for documents. Such changes would also enable all hardware manufacturers to create new hardware without the need for special drivers and only one set of drivers for all the older operating systems. The down side for MS would be people would then be able to continue using old operating systems and applications on any hardware and any old applications on any operating system. This would remove the existing MS process of FORCED upgrades to match the new OS.

V
V

Two formats I've had problems accessing since the release of Vista/Office 2007, The backup file format (.BKF) from Win2K/XP (used for non-OS files) Office 2007 format converter to older Office versions No Microsoft! I'll upgrade at a pace that suits me not you.

jmgarvin
jmgarvin

MS has lost its vision. Vista is the prime example of why MS is losing market share. They don't understand WHY people don't want Vista. They think it's FUD, but in reality, people are tired of the upgrade treadmill. MS doesn't understand why people are upset about the RRoD. MS doesn't understand why consumers don't care about Office2k7. MS doesn't understand why corporations can't migrate to Vista. MS doesn't understand my the Server 2k8 migration is "taking so long." MS is not in the business of computing any more, they are pure marketing and it shows.

Tearat
Tearat

About using a VM or hardware emulator to run an older version of your OS What is hard is convincing the MS board that it will be all right to include licensed versions of the older OS with the new one They have to be so careful because someone could pirate the old OS and use it on another computer Then find out that life without DRM, WGA and some of the other lovely?s is great Innovation can be as simple as change You do not have to improve anything to innovate Innovate and innovation are out of date terms that we should stop using You are unlikely to get a group of people to agree on the meaning Good enough seems to be the term the salesmen and marketing like now But it sounds like an excuse to cut corners to me

apotheon
apotheon

Digital photography actually improves a lot of things, in a trade-off with average image quality. For instance, you don't need darkrooms and scanners; digital photography innovation has greatly improved convenience for the average family vacation photographer. The very roots of the word "innovate" assume you're providing something [b]new[/b]. If all you manage to do is give people the same old thing, you aren't innovating.

Tony Hopkinson
Tony Hopkinson

MS is now starting to leverage it's monopoly. Now ???. MS attempts to create a monolithic computing solution? You must have slept through their success, That was win98 ! Your computers might need to be standardised, mine doesn't. Any intuitive computer system will be complex, unless you want to standardise intuition. As for there being 70s code in the nix' base, that's because it still works, and there was no commercial drive to rewrite it and sell it to the non-technical such as yourself as new. The other thing you need to get your head round is in nix, the user interface is separate from the function. That's why you can do it from CLI, KDE, Gnome, Bash, Berkely, Perl,..... You really need to get out more.

Justin James
Justin James

You are right that *Nix has many design paradigms dating back to the 70's, and some of them were assumptions from even earlier. And yes, I think that in some ways, this has held *Nix back. But in other ways, as apotheon points out, *Nix has not stagnated. I think that it is because of those very same design considerations. With the *Nix pipes and process model and the modularization of the code that has resulted, adapting to new computing concepts is possible to do in a backwards compatable way. In the Windows model, this is much more difficult to do. Where the *Nix legacy holds it back, is when someone bangs something out for personal usage with little consideration to future growth, and that little app becomes a core utility, daemon, or piece of the OS, there is now a poorly planned item buried into *Nix, and all future replacements for it must emulate it. Sendmail is a great example of this; with all of its warts, any SMTP daemon for *Nix must emulate it, even though that is not a formal requirement to do what sendmail does... J.Ja

apotheon
apotheon

Hell, Unix systems have capabilities dating back to the '70s that MS Windows still doesn't have -- and it develops new capabilities all the time. How can you think that MS Windows isn't held back by its legacy support as much as Unix systems? Are you aware that a long life is not the same thing as stagnation? What are you smoking, and where can I get some?

PJfromOttawa
PJfromOttawa

My managers liked this VMS feature so much that many of our data files are now handled that way, but slightly different: data1-20081105_153048.001.txt data1-20081106_152932.002.txt The mask being "data1-*.#.txt" (multiple masks). One routine gives us the next 3-digit serial number and the other handles purges (with "NumToKeep" as an extra variable). Yes, we have to keep track of all the masks.

Mark Miller
Mark Miller

This is a general rule in the marketplace. It used to work in Microsoft's favor, but I think now it's working against them. Not that I'd characterize what Microsoft has come out with lately as "great". I wouldn't know. I've paid little attention to the "product cycle" for the last year. What I mean though is that people think what they have is "good enough". I don't know that the reason is customers are tired of the upgrade cycle. I think they just don't see a reason to continue it. Windows XP, Office 97/2000, Windows Server 2003, etc. feel like good stable products that do the job. Why upgrade to something that gives you a bunch of stuff that doesn't fill an apparent need? The problem can come in, as I think Paul Murphy has documented over at ZDNet, when companies attempt to take "common everyday" Windows technology and scale it up to massive proportions, without upgrading to something that can actually handle it (like a more professional/data center package from Microsoft, or a different infrastructure altogether). In the '90s Microsoft's products seemed good for a time, but customers would eventually find their warts and become increasingly dissatisfied with them. Microsoft would usually come along with something better in a few years, and so customers were happy to upgrade to get the improvement. Maybe customers saw promise even in the deficient products, and Microsoft "fulfilled the promise" later. To me, XP seemed like a pinnacle achievement for Microsoft. They had finally united the NT and Win9x codebases, and they did it well. One of their other achievements was they created an OS that was actually difficult to crash and could stay up for weeks or months at a time. Not that other OSes hadn't achieved this already, but people really liked this in a mass market product. The motivating factor behind upgrading to Vista is to take away the security hassles, but it's possible to run XP securely, if you know what you're doing. I didn't think that Vista would motivate people to buy it for its interface features. Companies are not interested in whiz-bang UI features. They just want it to fulfill functional needs. Certain niche institutions will find Vista's UI useful. I would think that Vista would be more popular with home users, except that the consumer market is pretty saturated. Microsoft needs to get back to basics: find out what the customer (everyday and corporate) wants and fulfill it. They've started to do that a little. I saw a Vista TV ad recently that focused on Vista's built-in ability to stitch photos together to create perfect panoramic shots, even if the ones you take are off kilter. I have software from my Canon Powershot camera for Windows that does this. It's amazing technology, but not entirely unique.

jck
jck

Rather than be a company that makes it's income off of technological innovation, they are a company that focuses on quick and cheap bottom line endeavors. If they would have stuck to their guns and waited 6-12 months later and released Vista when it was actually ready, it would have been better for them. But, they HAD to make that money. Not like they hadn't already spent $10Ms in the years prior developing Vista.

apotheon
apotheon

I just couldn't believe my eyes when I saw what verelse posted. It kinda threw me off my game. I'm glad to see you managed to do a better job of making the point than I did, though.

Justin James
Justin James

Mark - Unfortunately, I think that Microsoft's position of having to try to be everything to everyone makes it impossible for them to ever get to "great". When they have the freedom to focus on a small niche of people, "great" happens. Visual Studio, (purely in my opinion) is "great". Some of their smaller projects, like One Note are teetering on the "good"/"great" border (One Note misses only due to the way it handles content from other Office programs and PDFs). Stuff where they got to start with a blank slate or a nearly blank slate, like the Parallel Extensions Library for .Net, the Expressions line of products, and things like WPF, LINQ, etc. are really "good" (sometimes "great") and are a joy. But look at the outrage over VB.Net when it came out. Was it better than VB 6? By every objective measure I can think of, save the overhead of the runtime, I would say "yes!" But VB 6 developers are *still* furious over VB.Net not being backwards compatible. Office 2007 is another example. By trying something revolutionary in the UI, they infuriated everyone. No one notices all of the other improvements, some of which were LONG overdue (number of colors in an Excel spreadsheet, for example). When they moved to a file format that, while not quite as "open" as some would like, is a HECK of a lot more "open" than the old one, again, people howled. Microsoft simply cannot make major changes in existing product lines without infuriating a huge segment of their customers, and it is sad, because it means that every product which has major market share is subject to stagnation. :( J.Ja

jmgarvin
jmgarvin

Had MS actually made Vista a decent OS in the first place, they would have made more money out of the gate rather than having to spend tons of money in marketing to "prove" that Vista doesn't stink on ice.

Sterling chip Camden
Sterling chip Camden

They have to make that money, because they're too big. They don't want to show a loss, because they're afraid to scare off investors. But if I ran MS (God forbid), I'd tell the stockholders that we're going to lose money for the next five years in order to invent something earthshaking, and then pull all their talent towards that goal. And I'd eliminate more levels of management. But it's easy for me to say that, knowing that I'll never have to prove the efficacy of my strategy. ;)

santeewelding
santeewelding

Troll that I am, Chad. Due diligence, Chip; due diligence.

apotheon
apotheon

"[i]By contrast with *nix, Windows APIs, COM, and even .NET tend to offer a monolithic approach that includes the worst features of object-oriented programming while minimizing its potential benefits.[/i]" I seem to recall [url=http://sob.apotheon.org/?p=245]talking about that sort of problem[/url] before, in some detail. I should have thought of that before posting my previous comment, I guess, so I could have referred to it. Anyway, thanks for expanding on what I said. "[i]I wish I knew why santeewelding has suddenly taken a liking to bashing your comments.[/i]" When I first encountered him here at TR, he did a lot of that sort of thing -- not just to me, but to a lot of other intelligent, reasonable people who made strong logical points. More recently, I've seen him appearing to be a bit more reasonable himself, and he's even managed to be less intentionally obscure at times. I guess maybe he's just returning to form after having lulled me into a false sense of security.

Sterling chip Camden
Sterling chip Camden

By contrast with *nix, Windows APIs, COM, and even .NET tend to offer a monolithic approach that includes the worst features of object-oriented programming while minimizing its potential benefits. I wish I knew why santeewelding has suddenly taken a liking to bashing your comments.

santeewelding
santeewelding

I'll spend time trying to distinguish, with little success, your response from that of a No User.

apotheon
apotheon

I don't have enough time right now to waste it arguing with a troll with delusions of profundity.

santeewelding
santeewelding

Goes hand in hand with simplicity. I think simplicity confounds you. Your friends Ayn and Friedrich, for example, serving as pat -- and your only -- answers. Nor do you originate, or perhaps understand, the genesis of sarcasm. Makes of you a mere user.

jmgarvin
jmgarvin

Better to remain silent and be thought a fool than to speak out and remove all doubt.

apotheon
apotheon

Clearly, intentional obscurity is much better than obvious spite. (note for clarity: That was sarcasm.) Quoth Friedrich Nietzche: "[i]Those who know that they are profound strive for clarity. Those who would like to seem profound to the crowd strive for obscurity.[/i]"

santeewelding
santeewelding

And what I address, are two different things.

Justin James
Justin James

This last year saw me bring an NT 4 infrastructure to Windows 2008, along with implementing SQL Server 2005, TFS 2008, SharePoint, CRM 4.0, Exchange 2007, Office Communication Server 2007, ISA 2006, and a few other items in the Microsoft stack. Great way to become "grumpy" about software, quick. Biggest problem, by far? SQL Server Reporting Services 2005. Total garbage. Doesn't work out of the box, none of the things that use it seem to configure it right for their use either. Brittle, too; it likes to break AFTER you have it working. So much of the Microsoft stack counts on it, too. Another huge annoyance is that too much of the Microsoft stack is still 32-bits *only*, or doesn't work on Windows Server 2008. I have three app server VMs to compensate for this (WS2008-64, WS2008-32, WS2003-32), which is utterly rediculous. On the positive side, after 4+ years, I finally have a properly working FreeBSD server. For the first year or two, my problem was that the server was set up by an idiot (myself). I had things that were compiled from sources and things that were compiled from ports, and as a result, things were out of sync a lot of the times, and I was having dependency issues. After that, I had put together a fresh server which had a bad CPU apparently, and compiling would blow it up. By the time I got around to replacing the CPU, the entire software stack had been destroyed and it was barely running. After a wipe/replace of the OS at that point, and taking into account 3 years of lessons learned, my FreeBSD server runs like a dream, and I am occassionally comtemplating attempting to move to FreeBSD as a desktop OS. J.Ja

apotheon
apotheon

"[i]I think that many (if not most) of Microsoft's 'close, but no cigar' moments are a result of:[/i]" Of course I agree substantially with what you said about that -- but you probably guessed I would. "[i]Likewise, Windows tries to be useful for power users and easy for less savvy people, and as a result, no one is happy; they haven't figured out to just have an 'expert mode' switch in their products, or find a way to slowly take the training wheels off.[/i]" It's worse than that -- they need more than a "beginner mode" and an "expert mode". What they need is a "beginner mode" and for everything else to be configurable in an easy, consistent manner so that you can set up your own modes and select the mode best suited to a given task when that's the task you need to accomplish. Oh, wait, I guess that's EMACS with a beginner mode, which would be pretty redundant. Okay, maybe what they need is a lean, mean editing machine, focusing on core functionality but providing incredible extensibility for the experts. Oh, darn, Vim already does that. Well, maybe they just need to make a mess so that people who like messes with clicky buttons will be happy. I guess some people will never be happy unless they have a terrible piece of software that's really familiar to them so they don't ever have to try to learn something new. "[i]I agree, a 'classic mode' button would have been useful, but at the same time, it would have defeated their intentions of getting away from Office's previous, unusable interface for good. 2007 gives them a clean break, and uses their monopoly power to do it. Very, very paternalistic of them to do it, and the manner is really lousy as well. At the same time, in the long run, it's probably a good thing.[/i]" Actually, what's going on with the evolution of the MS Windows interface seems (from my perspective) to be an ongoing battle to fix problems created by too much user obsequious behavior in the application combined with too much feature creep. Unfortunately, the fixes seem to consist of more user obsequious behavior and more feature creep. Every time they come up with a "revolutionary" new way to design an interface to make it "easier" they end up solving a small set of problems in a way that feels very heavy-handed to users who now have to learn something entirely new (because they've already solved the problem by learning work-arounds) -- and, in the process, they introduce new problems that nobody will notice until after they've mastered the nuances of the new interface. At that point, everybody starts figuring out work-arounds for the new problems, replacing the work-arounds for the old problems, and the cycle of violence begins anew. "[i]Competing business goals.[/i]" Once a corporation gets as big, powerful, and -- most importantly -- hierarchically complex as Microsoft, that's inevitable. As you point out, there are people within Microsoft who really, genuinely want to not only extend an olive branch to the open source development community, but also want to invite it inside some small part of Microsoft's operations. It's noble and wise, and could very well lead to fixing many of the systemic problems within the organization -- but it's going to take a long time. At the same time, the CEO is giving speeches in which he speaks ominously about unspecified patents that Linux-based systems infringe, according to the data gathered by the corporate spiritual advisers in last Wednesday's seance, trying to trigger a panicked stampede back to Microsoft's adamantly closed-source operating system amongst customers who were considering a Linux migration. Worse yet, even in the cases where the open arms intent is genuine, there's no guarantee that it'll stay that way. Even if it isn't a Trojan horse [b]now[/b], it may become one when the head of some open source friendly subdepartment is replaced by an assweasel straight out of business school trying to suck up to Ballmer. Whoops -- there goes all the positive potential of a project like IronRuby. Remember, [url=http://blogs.techrepublic.com.com/security/?p=282][b]there's no such thing as a trusted brand[/b][/url]. "[i]if you look closely at their products, you will find that many of them have the *kernel* of a really great idea buried in them, but that so many layers of 'must haves' from the business team, marketing team, sales team, etc. got piled on top, that the original idea was squashed.[/i]" Absolutely -- there are some great ideas in a lot of their software. It's just like how the movie [i]Jumper[/i] has a great split-second moment, where one of the characters uses his teleportation ability to throw a double-decker bus at another character. Unfortunately, that's basically the [b]only[/b] good thing about the movie. Overall, it sucks, and I want my two hours back. "[i]So yeah... I agree with you. One step forward, two steps back, usually a step to one side or the other, and sometimes they get lucky and do something really well for a moment.[/i]" That "for a moment" needs to be emphasized -- it never lasts, and it's never enough. These sparkling moments of hope are just barely enough bait to sucker everyone into sticking with it "just a little longer". It's like a big, ugly, life-destroying black hole, and the moments of hope are the gravity -- but every once in a while, someone achieves escape velocity when he or she gets fed up, and happiness is achieved. Sometimes. Hmph. I'm getting even more grumpy about software lately.

Tony Hopkinson
Tony Hopkinson

moving to Delphi, Java, C++ as they did moving to .net. As someone said earlier, the cruel bit was calling it VB. For my sins I did two years of VB6, and I have to say it's one of the worst pieces of IT, from any technical point of view I've ever seen. It did however do it's job, it made MS a lot of money, and gave them a large established platform, for doing something decent.

Justin James
Justin James

OCX/ActiveX was another technology that I am grateful I missed completely. You are right, that's another area of development that Microsoft gave the New York cheer to when they went to .Net. I tend to underestimate the pain that folks went through (and are still going through) with the VB 6 -> VB.Net changeover since I have (luckily) had so little exposure to it, but in my current role and my current employer, it is in my peripheral vision (our main product is written in VB 6 and the new version is a full .Net rewrite), and it may become my main focus soon (I think I am going to be added to that development team in the near future in some capacity). J.Ja

Justin James
Justin James

Yeah, the Microsoft dance as you describe it is pretty accurate, and it is why a lot of people are sick of them. It's like, "if you're going to move my cheese, don't just move it out of the doghouse, move it into the best room in the house." I think that many (if not most) of Microsoft's "close, but no cigar" moments are a result of: * Too many masters to serve; Word is a great example, it tries to fulfill just about every function that can be done with the paper metaphor, and as a result, it is a mess. Compare Word to specialized document editing apps, like those for writing screenplays, and you'll see the difference. Likewise, Windows tries to be useful for power users and easy for less savvy people, and as a result, no one is happy; they haven't figured out to just have an "expert mode" switch in their products, or find a way to slowly take the training wheels off. * Too much history. The Office 2007 changes, while not perfect by any means, would have been hated by everyone no matter what they were. Every little change and rearrangement in Vista is hated too, even though the new ordering of things makes a lot more sense to someone who has never used Windows before (just as Macs are easy for newcomers, but experienced Windows users tend to find them difficult). I agree, a "classic mode" button would have been useful, but at the same time, it would have defeated their intentions of getting away from Office's previous, unusable interface for good. 2007 gives them a clean break, and uses their monopoly power to do it. Very, very paternalistic of them to do it, and the manner is really lousy as well. At the same time, in the long run, it's probably a good thing. * Competing business goals. Part of the business *is* trying to be more "open" in various ways (source code, APIs, documentation, file format, etc.), for various reasons... some for good reasons, some for nefarious reasons. There are a lot of open source people getting more and more buried in Microsoft, and I think that its a good thing. At the same time, another part of the business is very afriad of "openness" for a variety of reasons, some legitimate, some not. This schizophrenia is not *just* around the idea of "open", but a lot of other things as well; "open" is just the most visible part of the iceberg to you and me. As a result, Microsoft makes decisions that have appealing elements to many folks, make none of them happy, and certainly look suspicious. From what I can tell, the "openness" around IronPython, IronRuby, and F# is genuine; those projects are run by folks with a strong commitment to standards, open source, and so on. But it is, of course, natural to wonder if those projects are a Trojan Horse of some variety, given then tradition "embrace/extend" deathtrap that Microsoft is famous for. * Suspicion & cynicism. On that note, we all expect the worst from Microsoft, for a lot of really good reasons. Everything they do is an uphill battle against this. They caused this problem, and it will take 10 - 20 years of angelic behavior on their part to change it. So far, I see that they are trying in many areas to not be the "old Microsoft", but one project or product or department out of ten isn't enough. It needs to be the whole company. I used to really like the "no holds barred" style that Ballmer and Gates brought to the table. It was refreshing. It was the business equivalent of a pro wrestler, the guy who fights hard and dirty but you cheer for them anyways. In the last few years, I've been seeing that they spend so much energy trying to crush the competition that they often forget to make a good product. Microsoft has piles of great developers, project and product managers, architects, etc. The framework is in place for them to be the best corporate software development organization in the world (the word "corporate" is an important disclaimer and modifier to "software development organization"). And if you look closely at their products, you will find that many of them have the *kernel* of a really great idea buried in them, but that so many layers of "must haves" from the business team, marketing team, sales team, etc. got piled on top, that the original idea was squashed. "Clippy" is a great example. I've written extensively about "Clippy" before, but when you look at the original project, its goals, what it had actually acheived, and so on, vs. what it was mutated into on it's way to becoming "Clippy", it's quite sad. An in-application agent that detects your level of ability and coaches you to learn the software better, and slowly takes off the "training wheels" is a great idea to turn average users into power users. But once all of the "stakeholders" got their input into things, it became a disaster. I haven't looked too deeply into the background, but I suspect that "Bob" was along the same lines too. I know that a huge problem with "Bob" (other than the name, marketing, etc.) is that it was simply a shell replacement for the tried out 3.X codebase anyways, as opposed to a new OS. the idea was sound, in that they recognized that the window manager metaphors did not map well to what average users in the early 90's were expecting from a computer. Now that everyone "gets" it, it's a no brainer, but back then, it was a real issue. So yeah... I agree with you. One step forward, two steps back, usually a step to one side or the other, and sometimes they get lucky and do something really well for a moment. J.Ja

Sterling chip Camden
Sterling chip Camden

Among my clients, a huge amount of developer time was spent creating ActiveX controls in VB6 -- it was by far the easiest platform in which to develop them: much simpler than Delphi or MFC. Then along comes VB.NET and guess what -- you can no longer even build those controls unless you keep a copy of VB6 around. Not only that, but if you want to redo them to be compatible with later versions of Visual Studio, your only choice is MFC -- a complete rewrite in a different language. Microsoft simply dropped all those developers, providing no reasonable upgrade path. What they apparently expect is that these controls will be rewritten as .NET controls -- but that's also a complete redo, as well as presuming that the hosting application is .NET capable.

Justin James
Justin James

Yeah, that joke is pretty funny, yet it does seem to sum the situation up pretty well. To tell the truth, every time I talk to VB 6 developers (current or former), or look at any kind of VB 6 code that gets anything big done, it seems to involve a lot of elbow twisting to "marshal COM objects" and do "p-invoke" calls to the base platform. which probably wouldn't be so bad, if those COM objects and platform API calls weren't designed for C++ developers most of the time. Reading through COM and Windows API docs is a completely different world compared to the VB docs. I would personally hate to be a developer for XYZ language, but need to be familiar enough with language ABC to understand documentation written with it in mind. Imagine being, say, a C# developer, but having to reference the Python documentation all of the time? You'd go insane. At the same time, Microsoft really left those folks in a ditch, and they were the backbone of the Microsoft development community. To this day, I am stunned that there was not a widespread defection to other development platforms like Delphi, which was much more capable than .Net 1.X, mature, and had better tools at the time too. It's this kind of stuff that makes me grateful that I spent the VB years in Pascal, Delphi, Perl, and (eventually) Java, and went straight to .Net 1.X from there. J.Ja

Mark Miller
Mark Miller

They actually gave more advantages to C++ developers than they did to VB developers. They provided a migration path, so you could work in part native and part managed code, for example. I remember Don Box in 2001, before .Net came out, said as a joke something like, "There are camps at Microsoft. There's the VB camp, there's the C++/computer science camp, and then there are the architects. What happened with .Net is the computer scientists and the architects got together, invited the VBers to a party, got them drunk, and forced them to sign on to .Net." It was funny, but I think what he said was pretty close to the truth. Even though VB was a way more important product to Microsoft than C++ was in terms of sales and installed base, the "more educated" groups got the upper hand, probably because they were the only ones with new ideas about how to develop for the internet. The problem was their best offering in .Net 1.x wasn't their internet technology, but stuff for the Windows GUI. Their basic strategy was to "copy Java but better", but their product strategy was totally scatterbrained. Even so, they managed to make it work for them by sheer force of will.

apotheon
apotheon

Microsoft, even when it does something right, often does something very wrong. This is part of the reason that doing something right often ends up angering its customer base. For instance: 1. VB.NET is, in many ways, not even the same language as VB 6. If it were easier to support both 6 and .NET, perhaps with a better upgrade path in place (even if only a way to ease the process of slotting in a complete rewrite of an application), I think MS would have gotten quite a bit less flak over the transition. One possibility would be to handle it the way C# was handled: MS didn't pretend it was the same language as C++, after all, and didn't try to make C# an official replacement for C++ in all respects. It seems like Microsoft just doesn't take its VB developer customer base seriously. Of course, I find it difficult to take VB seriously, so I guess I can sympathize a little -- but I'm not trying to make money off VB developers the way MS is, so for me it's a bit more excusable. 2. UI changes are particularly fraught with danger, and Microsoft should know this. To the end user, the UI [b]is[/b] the application. Changing the UI entirely on a new version is generally a bad idea. The Office group should have taken a page from the Windows group's playbook, and ensured there was a "last version" UI option available that actually provided what users liked about the previous version. Just pulling the rug out from under people is a bad idea -- especially since, with the new "ribbon" thing, Microsoft stumbled. There are some basic principles of UI design that MS gratuitously violated in this case. Microsoft isn't the only major software distributor that made this kind of mistake, of course. The so-called "Awesome Bar" in Firefox has some problems in common with the "ribbon" in MS Office, for instance. The fact others have made the same mistakes doesn't excuse the mistake, though. 3. Microsoft surely would not have gotten as much flak for the file format change if it had gone with an open format that was already in development -- and was actually open. It would still have gotten [b]some[/b], of course, but considering Microsoft's track record that's to be expected. If MS Office picked up support for ODF as its new primary document format, rather than making up something new, people would have been right to be suspicious, considering the "embrace, extend, extinguish" tactics Microsoft has used in the past (at some times more successfully than others). At least it wouldn't have this Trojan horse of an "open" format that Microsoft is currently pushing, so obvious that nobody's dragging the horse into the city in the first place. Hell, Microsoft's tactics are downright reprehensible in trying to get it certified as an open standard (bribing standards committees, loading memberships with ringers to sway votes, et cetera). "[i]Microsoft simply cannot make major changes in existing product lines without infuriating a huge segment of their customers, and it is sad, because it means that every product which has major market share is subject to stagnation.[/i]" If Microsoft's every step forward in terms of technical quality weren't accompanied by two steps back (one each technical and ethical), I'm sure its attempts to advance the state of the art would be embraced, rather than shunned, a lot more often.

Mark Miller
Mark Miller

.Net 1.x was screwed up by Microsoft. I can say that with 20/20 hindsight. I was very excited by it before it came out. The Windows client stuff (Windows Forms) they did with it looked great. Unfortunately it used a VB style architecture, but I didn't mind it much, creating my own, so long as I avoided using some of VS.Net's features. That wasn't where the market was going though. Their marketing department knew this, and sold it as a web app/web services platform. What a mess! ASP.Net was a "show horse". It had a few nice features, but it wasn't a powerful platform. Web services security was non-existent at the start, so people had to try to roll their own security when using it. From the look of it .Net 2.0 is what Microsoft should have [i]started with[/i], and then followed it with .Net 3.5.

jck
jck

For instance, I got a new HP laptop with Vista Home Premium 64-bit on it, 4GB RAM, 250GB disk, etc etc. It seems to have problems sometimes starting applications up from the start-up, and other issues. I know that the Dell laptop I have runs fine from the USB drive with Kubuntu, even after i replaced the internal drive, reloaded it with the Vista restore, and updated all the Windows and driver updates. I guess I just am having bad luck with it. But, I have 3 more XP Pro 64 licenses waiting just in case. So if it gets too awful and my laptop warranties expire, I'll swap.

Neon Samurai
Neon Samurai

RAM seems to be the biggest potential for grief in my system builds these days. It's lead to the rule of running new ram against memtester86 for two or more days before the memory sees an installed OS boot. Of course, the down side is that after memtest86 identified two bad sticks of ram (which the vendor replaced prompty), I found out that the motherboard really doesn't like the brand of ram. Change to another brand name and the system is rock solid. Freaking ram.. good to hear Vista tests it more thoroughly than previous versions.

Justin James
Justin James

Actually, Vista's RAM checker was bombing when I tried using it; Memtest86 found the bad RAM though. :) In terms of the DDL's, here' the deal. When the data goes into random physical addresses each time you boot, it is completely non-deterministic whether or not the bad RAM is going to be used. To make it more interesting, you are just as likely to be using physical memory in any given location as any other. With XP (and earlier) Windows, the RAM usage is physically linear. That means that on boot up, unless something changes, there is nearly an identical mapping of each bit in RAM to each physical location. That makes your crashes pretty darned predicatable. It also means that if the bad RAM is at the high end of the range, XP won't hit it except in scenarios where you are using huge amounts of memory. Indeed, in the situation that I learned all of this, the bad RAM was in the upper part... something like 1.8 GB into 2 GB of RAM. XP would never hit that unless I tried editing a large video or something. But Vista hit it fairly regularly, which is why Vista looked unstable compared to XP on the same hardware. As a result of this experience (I may add, this was me installing Vista for the first time), I recommend that anyone who is seeing instabilty under Vista but not XP to test their RAM. :) J.Ja

V
V

Bad RAM can be checked either from booting the install DVD or Boot Menu. I haven't come across the problem you mention about randomization of system DLLs affecting your ability to identify a defective module. Are you using lots of small 256MB sticks?

Justin James
Justin James

I find it interesting about Vista giving you problems. It's been 100% rock solid for me on two machines. On my laptop, it just started locking up. After a few of them, I discovered that the video card is bad; a Dell technician will be here on Monday to swap the motherboard. On my personal desktop, a video card swap came with some less than perfect drivers, a driver upgrade later and stability was restored. When I first assembled that desktop, the brand RAM was bad, which was causing instability (Vista's randomization of RAM usage makes bad RAM very hard to track down); swapping the DIMM created stability. My *beleif* is that Microsoft did something with video in Windows (I know in NT 4 they moved it to kernel mode memory, which is dangerous, and that may be the problem) that makes bad drivers and/or hardware insanely dangerous to the OS. If I had a guess, it was probably to make the system "snappier" at the cost of stability. J.Ja

jck
jck

one thing would have had to happen: .NET would have been canned and redone. Plus, .NET 3.5 is not fully or even significantly backward compatible to its own predecessors. Taking .NET 1.0 or 1.1 into a totally .NET 3.5 situation is, at best, a risk. That's why I still develop in .NET 2.0 at the house. It doesn't make sense to use .NET 3.5 with them having obsoleted so much of their original stuff in 1.0 and 1.1. A little more thought, design, and time...would have let them release a more solid, legacy-capable core. However again, they rushed something to market instead of putting out a solid product. But, that's what I guess it takes to feed the masses the flashy, shiny, eye-appealing crap they come to expect. I agree tho. I have issues on shutdown with Vista with my Dell laptop (I constantly update Vista and Dell's drivers to make sure it is up-to-date). It's never worked 100% right from the start. Hence, why I have a 120GB external drive with Kubuntu ;)

Mark Miller
Mark Miller

If they fought to keep their stock price up, they lost it. Microsoft traded at between $23-$30/share for the last seven years. They've been trading below that since November. They would've been better off putting resources behind maintaining XP. Their customer base seems satisfied with it. They could've skipped Vista and just went on to Windows 7. The problem is their hardware partners would've screamed bloody murder.

jck
jck

when you have a market lock, you are going to be stable. look at Wal-Mart. when other store chains were losing 20-30 percent of sales in the current economy, I think Wal-Mart only lost 2%? When you are "it" for the choices in a market, you can't help but make money or be less effected. If Linux keeps making in-roads into home and server markets, Microsoft will become less stable by virtue of less capital.

Sterling chip Camden
Sterling chip Camden

Nor did I mean to imply that their products are "rock solid" by using the "rock" metaphor for their business. In fact, it seems that they've made their mountainous business on getting users addicted to dodgy products.

Justin James
Justin James

Quite frankly, depending on how you define "marketing", their marketing department is wretched. They don't create *demand* for their products like Apple or Google do. They create a *need* for their products, through lock-in. Another thing they do well is meet the vendor selection requirements on paper; things like support availability, documentation, availability of certified partners to do the integration, and so on. If you are working from the standard "how do we pick a vendor for this project?" template, Microsoft is often the only choice, or only one of a small set of other "enterprise class" vendors, and that's before you even discuss the product itself. Some people call that "marketing", I don't, but regardless of what you call it, it's how Microsoft seals a lot of deals that they should lose on the technical quality or feature set angles. J.Ja

john3347
john3347

Seems to me, that if they could be compared to a rock of any stature, we would not be seeing all the buggy and oh-so-troublesome new OS's and applications. They would be more concerned with making what they have the best that there is rather than engaging in the planned obsolesce program that they have perfected. Microsoft has perhaps the most powerful marketing department in the world; but their programming department, for whatever reason, is absolutely bottom of the barrel.

Sterling chip Camden
Sterling chip Camden

They have a huge market share, and they don't overspend on innovation. They're like Prudential's rock of Gibraltar -- it isn't going to crumble any time soon, but it also isn't going anywhere.

Justin James
Justin James

One thing interesting about Microsoft's stock price, is that it has been relatively stable since around the DOJ case, if I recall. It didn't really go up, even during the boom years. Yet, despite Wall Street not treating like a hot commodity, they make money every quarter and pay a dividend every quarter, if I recall (going based on memory or a stock I don't follow). It's ironic, but Mirosoft's stock seems to be though of as (gasp) and actual *investment* and not a speculation vehicle. Many stocks are just not viewed in that light. J.Ja

jck
jck

I'd do something akin to what the auto industry is going to do to their management pay and bonus structure. I'd restructure (fire) most management and supervisory, and focus on getting incredible talent in there and pay them better. And I'm the same. If my company needed to make a drastic change, I'd announce it. And, I'd do the same and bluntly tell shareholders: "If you want to bail, bail now. But, you won't know when we're gonna make our move in the future. And, you're gonna lose out on the big profit coming with it. So, make your choice." Investors expect too much return nowadays. They want a big turn-around. I'd squash that concept if I ran MS.

Editor's Picks