Slashdot Mirror


Why Vista Had To Be Rebuilt From Scratch

iliketrash writes "The Wall Street Journal has a long front-page article describing how Jim Allchin approached Bill Gates in July, 2004, with the news that then-Longhorn, now-Vista, was 'so complex that its writers would never be able to make it run properly.' Also, the article says, 'Throughout its history, Microsoft had let thousands of programmers each produce their own piece of computer code, then stitched it together into one sprawling program. Now, Mr. Allchin argued, the jig was up. Microsoft needed to start over.' And start over they did. The article is astonishing for its frank comments from the principles, including Allchin and Gates, as well as for its description of Microsoft's cowboy spaghetti code culture."

132 of 711 comments (clear)

  1. And Microsoft rule by Timesprout · · Score: 5, Insightful

    Because much as /. knocks them this is the sort of thing they can manage, astonishing turn arounds.

    --
    Do not try to read the dupe, thats impossible. Instead, only try to realize the truth
    What truth?
    There is no dupe
    1. Re:And Microsoft rule by davmoo · · Score: 5, Insightful

      Right on, dude. I wish I had mod points to give you this week.

      The only computer company that has reinvented itself more times than Microsoft is IBM. And both companies are, contrary to popular belief around here, very far from dead. They aren't even sick or gasping.

      --
      I want a new quote. One that won't spill. One that don't cost too much. Or come in a pill.
    2. Re:And Microsoft rule by hayden · · Score: 5, Insightful
      If you honestly believe they have re-written all of Windows in 18 months then I have a bridge to sell you.

      This is probably one of two things. He's telling the truth and they have re-written the core parts. This wont fix the vast mass of code sitting on the core code which relies on the way things used to work.

      The other option is this is the latest round of "we've fixed it this time, honest". The result of this is left as an exercise to the reader.

      --
      Nerd: Derogatory term typically directed at anybody with a lower Slashdot ID than you.
    3. Re:And Microsoft rule by NeedleSurfer · · Score: 3, Insightful

      You forget Apple, they reinvented themselves more than once AND always have managed to be the frontrunner of computer innovation...

      The lego block analogy apply to how Apple wrote code for a while, I would go as far as saying since system6 but more realistically system7 with its core os and extensions attaching to it, they invented plug-ins before browsers were even invented...

      That ultimately gave us osX, the ultimate in plug-in philosophy, from the kernel to the GUI.

    4. Re:And Microsoft rule by TMLink · · Score: 2, Informative
      From the article:

      The day before in Microsoft's auditorium, Mr. Allchin had announced to hundreds of Windows engineers that they would "reset" Longhorn using a clean base of code that had been developed for a version of Windows on corporate server computers.


      So they took the clean code they had from their server core (maybe from the next server edition, maybe from 2003?) and then used that to create Longhorn. So no, they didn't start from scratch, but they aren't building upon the XP quicksand foundation either.
      --
      Every time a guy gets a threesome, somewhere in heaven an angel gets his wings. --Cary Tennis
    5. Re:And Microsoft rule by BasilBrush · · Score: 2, Interesting

      Indeed, Microsoft never re-write anything. And arguably any company that did so would be very foolish and probably heading for self-destruction. The article is couched in so much lay-man's talk and analogies it's hard to know what the real engineering changes have been. But at a guess they are just writing the new parts of Windows in a modular plugin way. And that's why they can delay them till after the launch of Longhorn. So WinFS for example was probably originally implemented as spaghetti (co-mingled as MS lawyers like to say) with lots of the system having knowledge of WinFS. Now they've backed that out and made WinFS properly modular, such that it can be issued later, and also back-ported to XP. ...at a guess.

      The lack of automated testing and daily builds is a bit of a shocker though isn't it? Either they've been lying all these years, or things had been really falling apart at Microsoft.

    6. Re:And Microsoft rule by timeOday · · Score: 5, Insightful
      The other option is this is the latest round of "we've fixed it this time, honest".
      Most software development houses struggle with this.

      Every piece of software starts with a clean, elegant structure - in the mind of whoever created it. Over time some of their assumptions prove false, and more importantly, many of the "true believers" who originally engineered the system move on. The inevitable result is the next wave of developers have a burning urge to throw it out and start from scratch. Virtually all developers want to throw out the code they maintain and start from scratch. As this faction gains momentum, what do you think they say about the software? It sucks, it's not engineered, it's not maintainable, and so on. There's probably some truth to it, but a lot of it is people making an argument to justifiy doing what they want.

    7. Re:And Microsoft rule by vcv · · Score: 4, Interesting

      As much as you won't want to believe it, Vista is very similar to the transition from OS 9 to OS X. The big different, of course, is that Apple took someone elses kernel and tools and built on top of them. Apple also essentially forced developers to start writing their software for the new OS, with kind of shoddy emulation of OS 9 programs. The important thing here though is that OS X was pretty much a completely new platform. Vista is not quite as much of a change, but it's pretty damn close. Vista is introducing a whole new API system (WinFX), graphics api (Avalon/WPF), communications platform (Indigo/WCF), completely new audio stack, completely new network stack, and a few other major changes. All this while maintaining compatibility with 95-99% of current windows applications out there without a shitty emulation layer. Microsoft simply won't make a revolutionary OS anytime soon. There are too many people running Windows that simply won't stand for very little of their software running, if any, on a new version of Windows. So Microsoft is doing what I think is a good decision, they are making giant evolutionary steps towards a whole new platform. A transition.

    8. Re:And Microsoft rule by BasilBrush · · Score: 3, Insightful

      I said it was arguable, and sure enough, you've presented the other side of the argument. And certainly some small parts of code will have to be rewritten from time to time in any project. But re-writing an entire product is a different ball game.

      You don't do it all at once... you rewrite bits of it progressively until the whole code has been refreshed (from experience it'll be smaller and faster... devs always write better code the second time around).

      Pointless. There is nothing fundamentally better about freshly written code. Indeed it tends to have far more defects than code that has matured for a number of years and had the defects knocked out of it.

      Size? Pretty much irrelevant now. The difference in size between the last person that coded the software and the new person, or the same person twice will not amount to enough to make a difference. Storage and memory is essentially free for the matter of the few K difference in the size of code.

      Faster? If you need more speed, you profile the software and just fix the small areas of code that are executed most of the time. A re-write wouldn't give nearly as much benefit, and would require profiling at the end of it anyway. Meantime you company has wasted a year or three on the re-write (even if done bit by bit as you are advocating) that could be spent on writing other products.

    9. Re:And Microsoft rule by jcr · · Score: 2, Informative

      Ahem OpenStep was a joined effort of Sun and Next Systems...

      Not exactly. NeXT tossed NeXTSTEP over the wall to Sun, who promptly botched it. Did you ever see OpenStep on Solaris? Let me tell you, it was not a pretty sight.

      -jcr

      --
      The only title of honor that a tyrant can grant is "Enemy of the State."
    10. Re:And Microsoft rule by caspper69 · · Score: 2, Insightful

      Check out the microkernel work done by the late Jochen Leudtke at L4Ka.org. The HURD is most certainly "not going to be the first to get there," since Mr. Leudtke's research has shown that a Microkernel can indeed reduce context switching cost by aggregating system calls can only making the transition at necessary moments rather than on each individual system call. Further, by using the new (since PII) SYSENTER/SYSEXIT instructions rather than the more traditional interrupt/trap gate, the cost of a context switch can be reduced from several thousand cycles down to approximately 800 or so on modern (P4/AMD64) processors.

    11. Re:And Microsoft rule by cahiha · · Score: 5, Interesting

      You forget Apple, they reinvented themselves more than once AND always have managed to be the frontrunner of computer innovation...

      According to their marketing and PR departments, anyway.

      That ultimately gave us osX, the ultimate in plug-in philosophy, from the kernel to the GUI.

      Apple didn't give us OS X. The kernel came from CMU (an open source project), and NeXT and Apple spent the last 20 years making it less modular. The GUI software architecture came from NeXT, borrowed heavily from Smalltalk, and is client-server, like X11, only not as well architected or as efficient.

      In fact, Apple's own systems programming staff screwed up so badly that Apple had to go out and buy a new operating system; all their attempts to develop a next generation Macintosh OS in-house failed.

    12. Re:And Microsoft rule by NutscrapeSucks · · Score: 3, Interesting

      system7 with its core os and extensions attaching to it, they invented plug-ins before browsers were even invented...

      The MacOS extention mechanism was nothing like "plug-ins" -- There was not a defined "extention API" as with a browser, they were they were system call traps and often relied totally on undocumented behavior.

      Someone could write such extensions for any OS, but it's generally considered to be a bad practice. As the unstable, conflicting mess of MacOS extentions proved.

      --
      Whenever I hear the word 'Innovation', I reach for my pistol.
    13. Re:And Microsoft rule by uncqual · · Score: 2, Insightful
      The primary goal of a rewrite of a major product should normally be to make the product more extensible (i.e., reduce the cost of adding features and increase the reliability of those features) in the future - not necessarily to substantially improve the product in the first "rewrite" release. The benefits come in the next decade worth of releases.

      Unfortunately, it seems most rewrite attempts fail. By their nature, rewrites of major products are very expensive. This makes them difficult to sell to senior executive management (as it should) because the see a high risk, high duration, high cost project with a seemingly long ROI period -- while customers are screaming that they need this or that new widget in the existing product ASAP.

      The response to this need to sell the product is often to pile on every new "gee whiz" feature to make the rewrite sexier. Unfortunately, this of course increases cost, risk, and duration - and a vicious cycle begins. At best, the project is funded, but most of the best "in the trenches" engineers end up working on the next release of the "old" product -- either because they are cynical about the success of the rewrite or because they are essential to the features already promised to the customers in the "old" product line. Usually, the project (now bloated to the point if it were pig, it could "fly" in much the same way a balloon can fly if you poke a hole in it) is never funded beyond the investigative stage.

      When such a rewrite project actually gets funded, too often it is initially staffed by a team of mostly idealistic engineers (or worse, pseudo-academics) either drawn from internal ranks or hired from outside. These people usually don't really understand what it takes to take care production systems in the field. They also are usually mostly unaware of rationale behind seemingly obscene hacks that have been made in the existing product due to very specific customer requirements over the years.

      It seems major product rewrites are most likely to work if everyone understands that the project is a success if it pretty much replicates existing functionality (or equivalent functionality where the current product's functionality is, itself, a hack) and only adds features that have been on the "we know how to do that but it's SO hard to do in the existing system" list for several years -- leave out all the "oh, did you read that neat paper on zzz, I wonder how we could use that" features. Also, the project team should include the best architects and engineers from the existing product AND a sufficient mix of new blood from outside (either from outside the company or from other product lines within the company) to challenge the team and to bring in fresh perspectives.

      --
      Why is there an "insightful" mod and why isn't it "-1"? If I wanted insight, I wouldn't be reading /.
    14. Re:And Microsoft rule by BasilBrush · · Score: 2, Insightful

      It was certainly a big mistake for Netscape Inc.

      It's taken the best part of a decade to get the rewrite to an acceptable state, and the company that started it is now dead.

      More here (but note the article is 5 years old)
      http://www.joelonsoftware.com/articles/fog00000000 69.html

      Far from proving the other poster right, your example is a perfect illustration of why he's wrong.

    15. Re:And Microsoft rule by shmlco · · Score: 2, Interesting
      The article assumes you have a choice. Netscape, from those who've talked to me, didn't. While it may be that some of the code could be reused, the original architecture was completely unsuited for supporting CSS1/2, newer version of JavaScript and the DOM, XML, and so on. And anyone who's done cross-platform HTML knew that their engine had a plethora of irritating bugs and rendering quirks.

      IMHO, what really killed them was not the code rewrite per say, but attempting to be an early pioneer in open source development. THAT'S what burned up all the time, and everyone knows pioneers have a high risk of ending up with arrows in their backs.

      So if you're after morals to the story, I'd say instead never bet your company on open source... *grin*

      --
      Any sect, cult, or religion will legislate its creed into law if it acquires the political power to do so.
    16. Re:And Microsoft rule by labratuk · · Score: 3, Insightful

      Because much as /. knocks them this is the sort of thing they can manage, astonishing turn arounds.

      Hah. I'm still trying to count the number of times I've heard "Yeah, we admit that everything so far has been kinda crap, but we've sorted it out this time..." from them.

      --
      Malike Bamiyi wanted my assistance.
    17. Re:And Microsoft rule by NMerriam · · Score: 2, Interesting

      I don't know if you were asleep for the latter half of the 90s or just too young to know anything about the computer industry at the time.

      Apple single-handedly made USB successful, period. It doesn't matter who invented what, or what any specs said. Nobody was manufacturing USB peripherals, and few computer manufacturers were making systems with USB built-in. USB was a decent technology with a huge chicken and egg problem that dragged on for YEARS until one day Apple released the iMac, removed every other interface, and said from on high "Computers will now use USB".

      Immediately, everyone said Apple was crazy, that nobody was making USB devices (other than mice), that it was the stupidest decision ever made in the industry. PC Pundits were laughing at yet another boneheaded decision by the dumbest computer company ever.

      Within months, store shelves were filling up with USB devices now that manufacturers had a market to sell to (and one where they could charge a nice price premium, to boot!). Microsoft had to play catchup and actually start releasing USB support in patches so that Windows OSes could actually use all this cool new stuff.

      Apple Made USB what it is today. Without Apple's completely unrestrained technical and marketing support of USB, we'd all be using the vastly superior FireWire today and USB would still be "that square plug for your mouse". Hmm, that wouldn't really be so bad. :(

      --
      Recursive: Adj. See Recursive.
    18. Re:And Microsoft rule by Slashdot_Gandhi · · Score: 2, Insightful

      In recent years these companies have been dashing out some software innovations faster than Microsoft.:

      My question: why does Microsoft have to worry about its rivals' innovations? Innovation was never Microsoft's strong point anyway. Microsoft's policy is to let others do the innovation. They just jump into the market at the right time with enough momentum to make a difference.

    19. Re:And Microsoft rule by SewersOfRivendell · · Score: 3, Informative

      Apple's own systems programming staff

      You misspelled executive management. Apple had plenty of fine programming talent who would have been happy to execute on a strategy. Any strategy.

      It may surprise you to learn that many programmers at Apple -- including key members of the Cocoa team, the Carbon team, and the IOKit team -- worked on Copland. Difference between Copland and Mac OS X? Executive management. Define a goal and stick to it. Q.E.D.

      In fact, a non-trivial amount of code and concepts from Copland is recycled in Mac OS X (excluding Classic for the purpose of this discussion ;) ). A lot of the Carbon toolbox implementation comes from Copland (most of it via Mac OS 8.5). Much of the Darwin IOKit design (but _not_ the implementation) is derived from Copland's NuKernel driver architecture, and some small parts of IOKit are derived from Pink/Taligent designs (but not the implementation).

  2. Principles by dtmos · · Score: 2, Funny

    I think the poster meant "principals," since it's well known that there are no "principles" in Redmond.

  3. Microsoft should fear FOSS, not google.. by Gopal.V · · Score: 3, Interesting
    So Microsoft screwed up... and they're trying very hard to do it again. Dropping WinFS, porting Avalon back to XP etc..

    To quote

    And so at last the beast fell and the unbelievers rejoiced. But all was not lost, for from the ash rose a great bird. The bird gazed down upon the unbelievers and cast fire and thunder upon them. For the beast had been reborn with its strength renewed, and the followers of Mammon cowered in horror.
    Microsoft's greatest enemies now are still two for-profit companies - Google and Apple. I'll rest easier when FOSS replaces them (as was promised in 1999). Instead it's just a new master instead of the old one.
    1. Re:Microsoft should fear FOSS, not google.. by cowscows · · Score: 4, Insightful

      The goal isn't for MS to disappear. We don't want them to get replaced by any single organization. We just want them to lose enough monopoly power and influence so that the rest of the computer world can get around without MS stomping on whatever they don't like. It already looks like they've lost some control. Google is doing their own thing, Apple openly taunts MS now, but neither of them are going to suddenly be ubiquitous on 90%+ of the world's computers. If Apple could get their marketshare up around 10%, maybe this "web as a platform" dealie sort of replaces windows 10% of the time, and maybe FOSS gets a 20% marketshare. Things would be way different, and about a zillion times better for consumers. I don't want FOSS to replace Google, Apple, or MS. I just want them all to be competitive, and to keep each other honest.

      --

      One time I threw a brick at a duck.

    2. Re:Microsoft should fear FOSS, not google.. by nine-times · · Score: 4, Insightful
      Dead on. We don't need a monoculture. We don't need a single technology or a single kernel or a single philosophy behind all of software development, and so it simply doesn't make sense to demand that all software be FOSS.

      In the midst of FOSS activism (which I have no problem with being a FOSS advocate, and often consider myself one) people tend to take their eyes off the ball. The important goal is not to have all software be GPL'ed, but to have real open standards. In fact, I don't think we should even mind Microsoft maintaining a large market share so long as they start using open standards. As customers and potential customers, we should all demand (in whatever way we're capable) that Microsoft provide freely available documentation to their file formats, protocols, and APIs. Insofar as they fail to do so, we should consider that a problem with their product, and look for alternatives.

      The tremendous value and power of FOSS is not in having everyone use it all the time, but in anyone and everyone having the ability to use it whenever is appropriate for them. If a Linux server can be used as an easy drop-in replacement for a Windows server and OpenOffice can open/save MS Office documents, then Microsoft will not be capable of abusing their own customers. Microsoft will be forced to compete with FOSS by offering better quality and features rather than vendor lock in, and frankly, if they would do that, I would have no problem with Microsoft whatsoever.

      Also, as much of a fan of FOSS as I am, I am also a fan of Apple and Google because I do believe they're competing by offering quality and features that people want.

    3. Re:Microsoft should fear FOSS, not google.. by cowscows · · Score: 2, Funny

      I didn't actually. I love ducks. They're inherently funny. Just watching them makes me laugh, and once they start quacking, I can hardly contain myself.

      --

      One time I threw a brick at a duck.

  4. another Spaghetti Incident? by Anonymous Coward · · Score: 5, Funny

    "Microsoft's cowboy spaghetti code culture"

    If its any thing like "Guns n Roses - Spaghetti Incident" then this should effectively be the last we hear of Microsoft.

  5. Anarchy of Development by NeuralAbyss · · Score: 5, Interesting

    It's interesting to hear how their software development survived in such an anarchistic environment - everyone producing their own code, with ad-hoc integration. It's a good example of how software development methodology can work though, even though the specifics of the specification design weren't discussed in the article - if everyone codes to a documented interface, software development can work on such a grand scale.

    I personally would like to hear more about the software development procedures and methodologies used in other large projects - how successful different types of development are.

    I work for an automotive parts manufacturer, and to see the lack of consistency within the organisation's software development is disturbing. Safety-critical parts are being produced, and the level of testing between said parts varies quite considerably. Additionally, the level of oversight and adherence to software development procedures is rather bad to say the least. I just hope it's not characteristic of the industry as a whole.

    1. Re:Anarchy of Development by imipak · · Score: 2, Interesting
      It's interesting to hear how their software development survived in such an anarchistic environment - everyone producing their own code, with ad-hoc integration. It's a good example of how software development methodology can work though, even though the specifics of the specification design weren't discussed in the article - if everyone codes to a documented interface, software development can work on such a grand scale.
      The impression I get from the article is that even the documented interfaces (ie, fundamental parts of the design) were being thrown up and torn down, whilst docs and understanding of how to use those interfaces wasn't getting out to developers coding against them fast enough. So by the time an application is building against one release of some core libs, the trunk has moved on to (in effect) a new major version, with incompatible interfaces.

      I haven't any inside info, tho', so I could be reading more into TFA than it warrants.

      I must say I'm interested to know how much code they claim to have re-designed and re-implemented in the last year. The article talks about "throwing it away and starting again", but you certainly don't build a complete OS plus sync'd up application and server software (the versions of Office and the MS servers (IIS, Exchange and SQL Server in particular) from the ground up in 12 months. Not unless you want Windows 95 type quality control...

    2. Re:Anarchy of Development by NeuralAbyss · · Score: 4, Informative

      I have a friend at university who was recently hired by Microsoft, partially for a quality control role. While this's a single case, and in no way can be extrapolated to the whole company, from what he's said, it's apparent that they're reusing a large amount of their codebase, with the dodgy bits either rewritten or modified and thoroughly tested.

      As you said, there's no way in hell you can have a 12 month rewrite. But, with any luck (for the end-users), this will hopefully turn out to be more than PR fluff.

    3. Re:Anarchy of Development by Jugalator · · Score: 5, Informative
      I personally would like to hear more about the software development procedures and methodologies used in other large projects - how successful different types of development are.

      Not sure if this is what you were interested in, but I think Paul Thurott has some great lengthy and detailed articles, along with some interviews with Microsoft engineers for some insight in the stress, problems, and achievements with various large Windows projects, and also with pictures of their build labs and test machines. :-)

      For example:

      Windows 2000

      Windows XP SP2

      Windows Server 2003


      A disclaimer bias-wise is that Paul Thurott is a guy who wants Microsoft to do well, but he's not afraid of criticizing them harshly when he doesn't agree with their decisions, so I think it's still not a case with "inside stories" being too biased to be useful. He was for example the guy behind the quote that Windows Vista had the markings of a shipwreck after seeing Beta 1. Although he has had some missteps IMO such as saying Windows Me should be far more reliable than Windows 98. ;-) I guess he had to eat his own words there...
      --
      Beware: In C++, your friends can see your privates!
  6. Documentary film burned?! by imipak · · Score: 4, Insightful
    From TFA:
    In 2001 Microsoft made a documentary film celebrating the creation of Windows XP, which remains the latest full update of Windows. When Mr. Allchin previewed the film, it confirmed some of his misgivings about the Windows culture. He saw the eleventh-hour heroics needed to finish the product and get it to customers. Mr. Allchin ordered the film to be burned.

    Man, that's a shame. I'd love to have seen film. Shame on Allchin if he didn't demand an archive copy that be retained, at least, even if it's only released in 20 years' time.

  7. Re:That explains a lot by Anonymous Coward · · Score: 5, Insightful

    And Linux is what exactly?

    A highly structured and organized operating system developed under the instruction of a central authority, no doubt?

    Don't be such a hypocrite.

  8. why ''astonishing''? by dankelley · · Score: 5, Interesting

    Why is it "astonishing" that the article does a decent job of providing hard-hitting information without spin? That's what we are supposed to expect of journalists. The Wall Street Journal is supposed to be (and often is) an example of real journalism. That makes it distinct from computer magazines that rely on advertising revenue from the computer industry, and from discussion forums whose course is steered by peeves and submission sequencing.

    1. Re:why ''astonishing''? by Anonymous Coward · · Score: 5, Insightful

      It's astonishing because nobody does it anymore, it's few and far between. It's gotten to this level and hardly anyone has noticed. Nowadays if you ask hard hitting questions they will just find someone else to be interviewed by, an interview that will have better PR results. With companies buying or owning media companies, they can just choose some of their own and build themselves and their empire up. A better question to ask is what incentive is there to do a hard hitting interview, for both the interviewer and the interviewee? Both want to perpetuate their jobs and positive PR but it requires criticism.

  9. "Generally" by X.25 · · Score: 3, Insightful

    Microsoft's holy grail is a system that cranks out a new, generally bug-free version of basic Windows every few years, with frequent updates in between to add enhancements or match a competitor's offering.

    I really wish they explain me the difference between "generally bug-free" and "bug-free". Is the difference around 65,000 (as Win2000 has ~65,000 known bugs when launched)?

    1. Re:"Generally" by justforaday · · Score: 4, Funny

      It's really quite simple. "Generally bug-free" means that it "usually works" "most of the time."

      --
      I'll turn into a supernova and burn up everything. Well I'll turn into a black little hole and you'll turn into string.
    2. Re:"Generally" by Malor · · Score: 4, Insightful

      Way back when, people were flipping out about the 65000 bugs in Windows 2000. I kept saying, "No, you don't understand... this means they can COUNT the bugs now. They have a process that's good enough to detect those bugs, so they'll be able to fix them.' Being able to claim with some precision that you have 65000 bugs is a huge, huge step forward from not knowing how many you have at all. And, as it turns out, Windows 2000 was possibly the best OS Microsoft ever shipped. This was not coincidence.

      I'm much more hopeful that Vista will be a real product after reading this article. It sounded like fluff/vaporware, but now it's starting to sound like it may have actual benefits for real people. (I likely still won't use it, because of the DRM/Palladium evilness inside, and I'll suggest to other people that they not do so either. But it may actually offer some real technical benefits along with the evil.)

      I doubt it will ever be secure. As Microsoft has spent billions demonstrating, you cannot retrofit security.

      The open source people might be able to learn from this process change at Microsoft. The 2.6 kernel has been very, very low quality, at least compared to earlier Linux releases. Even I myself have seen at least one of the problems.... bugs in the kernel directly cost me a couple hundred dollars, because I replaced a hard drive when it had nothing wrong with it at all. I was bitten by ACPI bugs, which mysteriously caused hard drive failures. I figured out the problem after the new drive started failing too, but I was about $200 poorer for it. As far as I remember, I haven't replaced non-broken hardware due to OS bugs since Win95... not exactly the best example to follow.

      I also worry about the desktop environments... they're getting so large and complex, they're starting to look like Windows. Tons of features with lots of interdependencies. I'm sure the code is a lot better than a lot of the stuff in Windows, but clean, tight code will protect against only so much bloat and overcomplex design.

      I'm starting to think that part of the reason the open source code was so very much better than Windows' was because it was a fresh start, with no backward compatibility to worry about.

      I wonder if, once the kernel, KDE, and GNOME guys have to lug around twenty years' worth of backward compatibility, they'll be exactly like Windows... bloated, buggy, and insecure. The last couple of years haven't looked too promising in that regard.

    3. Re:"Generally" by RLiegh · · Score: 2, Interesting

      BSD lugs around nearly 30 years worth of baggage, but I can boot and reliably run NetBSD and OpenBSD on my 2004 hp pavilion. Linux 2.6.* sometimes will boot from the installer, but only if I disable ACPI (and quite often other things such as agp and usb -wtf?- as well).

      Older 2.4.* releases work ok, and the BSDs work ok (except for FreeBSD 5.0-5.3).

      After having similiar experience on other computers with 2.6, I've pretty much come to the conclusion that linux has jumped the shark; at least in terms of stability and reliability (hell, I can't even rely on it to successfully boot FFS).

      So, rant aside, it's a matter of arrogance and design; the BSDs have an attitude of "do it the right way" and therefore produce a stable system, linux has the attitude of "bugs are part of the FUN" and as a result, you have the mess which is 2.6.*

    4. Re:"Generally" by Malor · · Score: 5, Insightful

      Well, I'm hopeful they can nail things down and get them stable, but their focus doesn't seem to be on quality first. I think it was Rik van Riel who said that it was perfectly okay for only 1 stable release in 3 to actually be stable. I kid you not. I'd link it for you, as it's in my old comments. Unfortunately, I can't get to my old submissions, as I don't pay Slashdot anymore. So you'll have to find the quote yourself. lwn.net definitely has it somewhere in their archives.

      It's worth pointing out that the whole move of Linux into the server market was accidental. It was always being written as a desktop Unix. It just happened to be so amazingly robust that it made a dynamite server, and took over a good chunk of the internet. That'd be a good book title, "The Accidental Server". Unfortunately, the development model never changed to match the actual use of the system.

      The reason I started using Linux to begin with was because it didn't ever break... it didn't have as many features as Windows, but it just never, ever, EVER fell over. The 2.2 kernel was probably the most bulletproof piece of software I've ever run on a PC. 2.4 never got to the sheer solidity of 2.2... on good hardware it's quite robust, but I saw a number of machines where stressing it would lock it up after a few days. (from the kernel messages, it looked like it might be bugs in the (different) network drivers.) 2.6, relatively speaking, has just been a disaster. They won't leave it alone long enough to let it stabilize... they insist on jamming new code into every release, and dropping old releases very quickly. (the new 2.6.X setup.) So I can't get my bugfixes without new features if I want to use a vanilla kernel.

      People, of course, instantly bash me and say 'you're stupid, you should be using a distribution kernel'. I'm doing that now, even though I liked rolling my own, but I shouldn't have to. The dev team's attitude seems to be 'ship it and let the distros debug it'... which, as far as I'm concerned, is waving one's hand in the air, hoping that someone else will fix it. Linus' kernel should be rock-solid. It's the center around which the Linux universe turns. Their new attitude means that both Mandrake and Red Hat will have to spend time fixing the same problems, possibly in incompatible ways. And it means that programs may run on Red Hat, but not on Mandrake or vanilla Linux, or some other variation on that. There needs to be a gold standard, a One True Linux. We don't have that anymore, and I think the inevitable result will be to balkanize the community. Without that central kernel, switching from one distro to another, particularly with commercial software like Oracle, becomes much chancier. You'll end up with vendor lock-in... Oracle will run only on Red Hat's kernel, so you're stuck with Red Hat's distro. That's not supposed to happen with Open Source, but it looks nearly inevitable if we can't get a stable kernel at the center.

      Wow, that was quite a segue. Sorry about that. :)

  10. tale of two companies, same campus by yagu · · Score: 4, Insightful

    It's interesting to juxtapose PR spin from Microsoft. At any given point in time in Microsoft's history, their stance and PR is that they are "state of the art", the most advanced, etc. Yet also at any given point in time they're badmouthing their own product, their own methodologies, from their recent past. Of course their chest thumping for their current "state" prevails, but I'm guessing down the road we're going to hear how messed up they are today, but not until they've made billions off of today's products.

    1. Re:tale of two companies, same campus by dzfoo · · Score: 2, Insightful

      I think the original poster's comments refer to a more specific, and somewhat obvious and transparent practice by Microsoft*, in which they deny at all costs any problems with their current methodologies or products, asserting -- nay, screaming at the top of their lungs -- how good and better their current products are, just to turn around in a few years and "admit" publicly somewhere along the lines of "Yeah, we know it sucked back then, what the hell were we thinking!"

      This has happened in products such as Windows 95, 98, Me, IE, and we are seeing it now with Longhorn, even though its not even out yet. I still remember Microsoft's refutations at critics who said that Windows 95 was no more than a shell over DOS, and a very buggy one at that. Even the Win32 API was defended as the end-all-be-all of OS interfaces, only to later deride them all when introducing the latest and greatest. Of course, now we all hear MS engineers, and even some high-placed officials openly criticize old Internet Explorer and Windows 95 code, and sometimes even joke about how bad they were (but of course, Its Better Now (tm)!), and it seems that in the midst of all the fun ("well, its about time they admit it! we knew it all along!"), we all forgot how we were made to believe in no uncertain words that these products were Best Of Breed. Ironic.

      To my knowledge, this candidness is more than just a PR stunt; it shows a dysfunctional and irreverent -- perhaps even irresponsible and arrogant -- attitude towards their customers and the industry in general. You can almost hear them: "Win32, ActiveX, code-commingling... what were we thinking! And you all bought it. Ha, Ha, Ha, suckers! Oh, and by the by, Its Fixed Now, Honest (tm)! *smirk*"

              -dZ.

      * P.S. Of course, Microsoft is far from the only company who does this. I think most large corporations have a somewhat elevated view of themselves which affects their culture and perception of their industry.

      --
      Carol vs. Ghost
      ...Can you save Christmas?
  11. Jim Allchin by tyates · · Score: 4, Informative

    One of the best books I ever read on the Microsoft code culture was "Breaking Windows: How Bill Gates Fumbled The Future Of Microsoft" by David Bank. From the book, Jim Allchin is the Windows guy who quashed Brad Silverberg and the (relatively) innovative Internet team - although ironically he was an early advocate for getting TCP/IP support in Windows. He believed that all innovation in Microsoft should take place under the Win 2k banner and that the company should just keep making Windows bigger and bigger and bigger. Hmm, maybe it got too big.
    http://www.amazon.com/exec/obidos/tg/detail/-/0743 203151/qid=1127565487/sr=8-1/ref=pd_bbs_1/102-0616 241-1101748

    --
    Tristan Yates
  12. Re:That explains a lot by ConceptJunkie · · Score: 5, Insightful

    Not only does it explain a lot, it's been glaringly obvious for more than a decade. Everything Microsoft has done since before the days of Windows 3 has smacked of design-by-committee and a painful lack of consistency. Everything in Windows has always had the smell of being designed and implemented by dozens of groups that had little or no communication with each other. I'm surprised they managed to release code at all, however buggy and insecure, with the development model they were using.

    It will be interesting to see if Vista demonstrates an improved level of quality due to this new process.

    --
    You are in a maze of twisty little passages, all alike.
  13. one of the first rules of programming - start over by ruebarb · · Score: 5, Interesting

    When I took C programming in College, one of the points our professors made was if you like your program, rewrite it...

    the first time you write something, it's always hackney'd - and it gets that way till you figure out what you want to do and how to do it - afterwards, it then becomes so much clearer to see ways to clean up the code and fix issues...

    so one of the first rules he had was once we were almost done, restart our stuff - it ended up being a lot cleaner/modular the 2nd time around...

    of course, that won't help MS, but good for the rest of ya to know ;)

    RB

    --

    ----------
    ah honey, we're all resplendent - Bill Mallonee
  14. Re:That explains a lot by GreyPoopon · · Score: 5, Insightful
    A highly structured and organized operating system developed under the instruction of a central authority, no doubt?

    You know, when I read the article, I was thinking: This sounds almost exactly like how Linux is developed, except that all the authors aren't employed by the same company. Who would have thought that the Open Source development model would be the same as that at Microsoft?

    --

    GreyPoopon
    --
    Why is it I can write insightful comments but can't come up with a clever signature?

  15. Amazing by Ruie · · Score: 4, Interesting
    The article is totally amazing:

    • I had no idea they were still doing manual builds. Was it so hard to borrow tinderbox ?
    • Still, after the changes it takes several *days* for the build - this is likely an indication of interdependency of different components, otherwise they could have used a cluster to do it.
    • They decided to start from scratch - I'll believe it when I see it. (Hint to Microsoft - Apple used BSD..)
    1. Re:Amazing by Antity-H · · Score: 4, Informative
      I mostly agree with your remarks but you are mistaken one the last one : they did not restart from scratch.
      The day before in Microsoft's auditorium, Mr. Allchin had announced to hundreds of Windows engineers that they would "reset" Longhorn using a clean base of code that had been developed for a version of Windows on corporate server computers.

      From what I read on the net, the code base used was that of windows 2003 server.
    2. Re:Amazing by hhawk · · Score: 2, Funny

      Sounds like they just re-built a lot of the userland /desktop stuff

      Automated test (whoooo!! that's so cutting edge)

      And enforced some min. methodology

      --
      http://www.hawknest.com/
    3. Re:Amazing by dioscaido · · Score: 3, Interesting

      This is indeed what happened. We are building Vista on top of the Win2k3 code, so from now on we won't have two code bases -- the less stable/secure client platform vs. the rock-solid server platform -- instead now both are one and the same... seems smart to me. Although a side effect was the 'reset' which caused the long delays.

  16. Re:That explains a lot by imipak · · Score: 2, Funny
    Here's the only solid info I could find in the article about what's actually changed:
    By late October, Mr. Srivastava's team was beginning to automate the testing that had historically been done by hand. If a feature had too many bugs, software "gates" rejected it from being used in Longhorn. If engineers had too many outstanding bugs they were tossed in "bug jail" and banned from writing new code. The goal, he says, was to get engineers to "do it right the first time."

    So the amazing new innovation that's turned round the entire project is... automated testing? Wow, welcome to the brave new world of the mid 90s! Next up, Microsoft discovers the joy of source control... (incidentally, I need to find some solid info to justify not using SourceSafe - any pointers/links?)

  17. FTA: "near-monopoly" by Anita+Coney · · Score: 4, Insightful

    Microsoft is not a NEAR monopoly. It is a convicted monopoly. And since that irrefutable and well published fact escaped notice of the Wall Street Journal, I can't help but smell a little bias.

    --
    If someone says he and his monkey have nothing to hide, they almost certainly do.
    1. Re:FTA: "near-monopoly" by Richard_at_work · · Score: 2, Interesting

      Microsofts 'conviction' happened several years ago, 1999 if I remember correctly. Has the world stayed the same since then? No. Things change, Microsoft was called a monopoly 6 years ago and that may not be the case today. Labels dont stay attached forever just because you want them to.

  18. Not a good article to base Microsoft bashing on by ex-geek · · Score: 5, Interesting
    This is a Wall Street Journal article. It has no technical details whatsoever since it was written for business people.

    Just look at this quote:
    The second man Mr. Allchin tapped was Amitabh Srivastava, now 49, a fellow purist among computer scientists. A newcomer to the Windows group, Mr. Srivastava had his team draw up a map of how Windows' pieces fit together. It was 8 feet tall and 11 feet wide and looked like a haphazard train map with hundreds of tracks crisscrossing each other.

    That was just the opposite of how Microsoft's new rivals worked. Google and others developed test versions of software and shipped them over the Internet. The best of the programs from rivals were like Lego blocks -- they had a single function and were designed to be connected onto a larger whole. Google and even Microsoft's own MSN online unit could quickly respond to changes in the way people used their PCs and the Web by adding incremental improvements.

    They are comparing an operating system, which has to be backward compatible with a dozen or so earlier versions of Windows and DOS and support an oodle of devices and subsystems, with a bunch of mostly unrelated web-applications and gimmicks from Google.

    All I'm getting from the article is that the "let's rewrite from scratch" crowd got the upper hand within Microsoft. But that doesn't necessarily mean that they are right or that the end result will be better than continuous improvements. At the beginning, it is easy to maintain a nice, clean and simple system. But a complex set of requirements can't always be broken down into simple Legolike blocks, as the article suggests.
  19. Re:That explains a lot by imipak · · Score: 4, Interesting
    A highly structured and organized operating system developed under the instruction of a central authority, no doubt?

    You know, when I read the article, I was thinking: This sounds almost exactly like how Linux is developed, except that all the authors aren't employed by the same company. Who would have thought that the Open Source development model would be the same as that at Microsoft?

    Right, but have you ever noticed how many successful Free / Open Source software projects use modular architecture? Take (from my own area) Nessus, or Snort. Both consist of a core engine and frameworks that accept plug-ins and modules. Actually they both also have a lower level that allows ordinary non-programmer users to contribute signatures (rules) to the project.) This applies also to Apache, Mozilla, the Linux kernel, and plenty more.

  20. full text, detoxed by Anonymous Coward · · Score: 2, Informative

    Battling Google, Microsoft Changes How It Builds Software

    Delay in New Windows Version Drove Giant to Develop Simpler, Flexible Product

    Engineers Get Trip to 'Bug Jail'

    By ROBERT A. GUTH
    Staff Reporter of THE WALL STREET JOURNAL

    REDMOND, Wash. -- Jim Allchin, a senior Microsoft Corp. executive, walked into Bill Gates's office here one day in July last year to deliver a bombshell about the next generation of Microsoft Windows.

    "It's not going to work," Mr. Allchin says he told the Microsoft chairman. The new version, code-named Longhorn, was so complex its writers would never be able to make it run properly.

    The news got even worse: Longhorn was irredeemable because Microsoft engineers were building it just as they had always built software. Throughout its history, Microsoft had let thousands of programmers each produce their own piece of computer code, then stitched it together into one sprawling program. Now, Mr. Allchin argued, the jig was up. Microsoft needed to start over.

    Mr. Gates resisted at first, pushing for Mr. Allchin's group to take more time until everything worked. Over the next few months, Mr. Allchin and his deputies would also face protests from programmers who complained he was trying to impose bureaucracy and rob Microsoft of its creativity.

    "There was some angst by everybody," says Mr. Gates of the period. "It's obviously my role to ask people, 'Hey, let's not throw things out we shouldn't throw out. Let's keep things in that we can keep in.'"

    Ultimately, Mr. Allchin's warning proved cathartic and led to what he and others call a transformation in Microsoft's most important product. A key reason: the growing threat from rivals such as Apple Computer Inc. and makers of the free Linux operating system. In recent years these companies have been dashing out some software innovations faster than Microsoft. Google has grown particularly effective at introducing new programs such as email and instant messaging over the Internet, watching how they perform and regularly replacing them with improved versions.

    Microsoft's Windows can't entirely replicate that approach, since the software is by its nature a massive program overseeing all of a computer's functions. But Microsoft is now racing to move in that direction: developing a solid core for Windows onto which new features can be added one by one over time.

    As always, Microsoft's great fear is that it will lose its near-monopoly on computer operating systems and basic office software. In the short term, there is little danger of that. But the more Google and other software makers encroach on Microsoft's turf, the greater the chance that someday computer users will wake up and find Microsoft Windows superfluous.

    "What happened when the American car companies failed to update their manufacturing lines? There was a more efficient way to bring cars to market for a lower price and they lost their market," says Microsoft Vice President Chris Jones. "We're in a little bit of a different industry but it's the same thing."

    Microsoft's holy grail is a system that cranks out a new, generally bug-free version of basic Windows every few years, with frequent updates in between to add enhancements or match a competitor's offering.

    The Longhorn crisis helps explain the sweeping restructuring that Microsoft Chief Executive Steve Ballmer announced this week to organize the company into three major business units. A key goal is to force Microsoft to be more nimble in producing and delivering software.

    Mr. Allchin's reforms address a problem dating to Microsoft's beginnings. Old-school computer science called for methodical coding practices to ensure that the large computers used by banks, governments and scientists wouldn't break. But as personal computers took off in the 1980s, companies like Microsoft didn't have time for that. PC users wanted cool and useful features quickly. They tolerated -- or didn't notice -- the bugs riddling the softwar

  21. Re:That explains a lot by aussie_a · · Score: 5, Insightful

    Don't be such a hypocrite.

    The difference being, Windows is touted as a professional OS built by professional coders, upheld to a high standard, etc, etc, etc. Simply put: People expect more when they have to pay for it. Microsoft has constantly criticized projects such as Linux, because the code isn't built by a central authority. Now we learn that Windows is made pretty much like Linux. I think criticizing Microsoft for this is definitely justifiable.

  22. Ultra-Extreme Programming by Waffle+Iron · · Score: 5, Funny
    Throughout its history, Microsoft had let thousands of programmers each produce their own piece of computer code, then stitched it together into one sprawling program.

    Microsoft's new approach: Ultra-Extreme Programming.

    Now they have taken the pair coding concept well beyond the next level. They put over 5000 developers in one auditorium, and they now write Vista together as a group. The shared display is up on the movie screen, and every coder has a wireless keyboard and mouse.

    They're going to use thousands of minds working as one to produce a single, cohesive body of code. With so much manpower on the problem, development moves at a lightning pace: once a function has been typed in, it gets refactored dozens times within a matter of seconds.

    1. Re:Ultra-Extreme Programming by zygote · · Score: 2, Funny

      Yes, the power of The Collective.

      Refactoring is Futile.

      --
      the future is here, it is just not evenly distributed - w. gibson
  23. yes, very competently managed by idlake · · Score: 5, Interesting

    Of course, you are right: Microsoft is indeed one of the most competently managed companies around. And that is exactly their problem.

    Why is that a problem? Because their management, sales, and marketing are so good that their technology doesn't have to be. They can ship software with security holes, bugs, poor usability, and bad design, but the non-technical part of the company will somehow manage to still sell it and make a bundle on it.

  24. Feature lists, PHBs, and cowboy coding by G4from128k · · Score: 5, Insightful

    I'm sure the root cause of cowboy coding is in Microsoft's quest for being able to put check marks in feature boxes so PHBs can pick MS software as having the most "features." Back in the 80s there used to be a number of standalone outlining applications and high-quality outliners embedded in competing word processors. Then Word got an "outliner." That this "outliner" never worked and still doesn't work to this day is irrelevant. It enabled MS to put a check mark in the outliner feature box and eliminate user's arguments that they need a non-MS product because they need an outliner.

    Checkbox marketing -- about the only way to market when non-users make purchase decisions -- drives software companies to bolt-on features without regard to consistency of or destructive interactions between features.

    --
    Two wrongs don't make a right, but three lefts do.
  25. Celebration! by Alsee · · Score: 5, Funny

    After the Windows group was able to install a workable version of the system on their PCs four days before Christmas, Mr. Srivastava says the group celebrated by not working over the holidays.

    They also like to celebrate by not having their fingers broken.

    -

    --
    - - You can't take something off the Internet! That's like trying to take pee out of a swimming pool.
  26. Re:Linux Vs Windows by aussie_a · · Score: 4, Funny

    If you're going to continue to post this troll, PLEASE replace >1% with 1%! I've seen this so many times, and it's always got that same typo.

  27. This is what normally happens... by Cereal+Box · · Score: 4, Interesting

    Throughout its history, Microsoft had let thousands of programmers each produce their own piece of computer code, then stitched it together into one sprawling program.

    Sounds like SOP for any massive program/OS. If you've ever been part of a truly massive product's development, you'd know what this is like. There are dozens, if not hundreds, of small groups that each specialize in a particular piece of functionality. Executives and architects determine the work items for a particular release. Responsibilities filter down the chain of command. Teams develop their work items for the release and everything is thrown together into the pot as it's done. Builds break frequently, and problems are addressed as they're encountered. Eventually testers can get their hands on decent builds, and testing/bug fixing commences during the whole process. Some ways down the road, a release finally occurs.

    Really, I don't know what the executive in the article thinks should be happening. There really isn't any other way to develop programs on the scale of Windows without the aforementioned "organized chaos". It's not a text editor, it takes numerous small teams working in a coordinated manner to produce such massive piles of code. Obviously, the more teams there are, the harder perfect coordination is to achieve. Hence, things go wrong fairly frequently. This is to be expected, IMO.

    1. Re:This is what normally happens... by the_2nd_coming · · Score: 2, Funny

      Spaghetti code? Look at how fast they are adding features, it is clear that they have a methodical approach to development.

      --



      I am the Alpha and the Omega-3
  28. It wasn't rebuilt from scratch! by kidventus · · Score: 2, Informative
    It was just "re-committed" with an automated process. So, they basically adopted the OSS strategy of not allowing blind commits to the CVS tree without bug testing. Revolutionary I tell ya!

    The same code is still there, and the same "start menu" philosophy. This wasn't a philosophical and technology change, it was an administrative one.

    I'm glad they have good Quality Control now... maybe they'll apply for the ISO 9000 designation? Regardless, I don't think this points to a new thinking or revitilization in the company as the title and article seem to suggest.

    It's not a new code base, just a new process.

    --
    There is a rage in me to defy the order of the stars, despite their pretty patterns.
  29. Re:one of the first rules of programming - start o by Anonymous Coward · · Score: 4, Insightful

    That's terrible advice. Real-world code tends to be messy because you have to put in a lot of workarounds and bug fixes. When you rewrite something, you lose years of cumulative bugfixes. Suddenly obscure configurations are crashing, and you have no clue why, because the old code bears no resemblance to the new code, and the beardly expert on that platform has retired, so nobody is there to tell you that although the specs say foo should be a float, it actually expects an int.

    It's one of those practices that works well in college courses, but simply falls apart when applied to a project larger than a few thousand lines of code. Tell me, did this professor have actual real world experience, or was he in academia for his whole career? I'm betting on the latter.

    instead of rewriting, you should refactor, preferably with the aid of lots of regression tests. That enables you to restructure the application slowly, without changing behaviour in unexpected ways.

    Things you should never do: rewrite.

  30. Re:Linux Vs Windows by Anonymous Coward · · Score: 3, Interesting

    You sound like somebody who hasn't used Linux in a long time. In fact, it's amazing how far Linux has come in the last few years.

    You've obviously never heard of Synaptic. I suggest you take a look at some of the screenshots. Most distributions now come with Synaptic. To install software, you just load up Synaptic, select the programmes you want to install from a list and click a big "Install" button. What could be simpler?

    You seem to have a hard time grasping this but this is actually simpler and better than Windows. Windows has no dependancy tracking. I can't count the number of times I tried to install game X and the installer has told me that before I install, I need to first manually install the latest version of Internet Explorer / Windows Media Player / DirectX.

    With Linux, all my programmes are on something equivalent to Windows Update. Not just the OS but also Office Suites, Games, Media Players... you name it. I can install them easily using a graphical interface and they get upgraded automatically when new versions come out.

    As for driver support, Linux beats Windows out of the box, hands down. Drivers for most devices come already included with your distribution. They get loaded at boot time if that piece of hardware is detected. On my desktop, my DVB card, Sound Card, Graphics Card and Display were all detected correctly first time. Windows might have a driver for the Sound Card but a DVB Card?

    Installation is so easy too. My distro of choice, Ubuntu, all you have to do is select your keyboard layout and where you want to install to and it does the rest. No intervention necessary. If you can't do that, there's something terribly wrong with you.

  31. very telling by rick1027 · · Score: 2, Insightful

    >>>programs from rivals were like Lego blocks -- they had a single function and were designed to be connected onto a larger whole.

    Sounds like the assumed philosophy behind the Linux kernel and most OSS projects. But Microsoft has claimed for years that a good OS couldn't be built that way so say a blue IE lego block could easily be replaced by a red FIrefox lego block. Which was probably one reason for Bill G's initial opposition.

    >>>Microsoft's cowboy spaghetti code culture.

    Yet isn't this the impression Microsoft tries to give to the collaborative method used for most OSS projects.

  32. Getting into trouble.. by ninjamonkey · · Score: 5, Insightful


    There's just one more lesson Microsoft needs to learn from Longhorn/Vista: Don't start promising features and showing Powerpoint presentations to the press until you understand the scale of the project.

    I love Google, because they rarely promise something and don't deliver. Actually, they rarely promise something. It just shows up one day and it's elegant, clean, and fast.

    1. Re:Getting into trouble.. by spisska · · Score: 5, Interesting

      I love Google, because they rarely promise something and don't deliver. Actually, they rarely promise something. It just shows up one day and it's elegant, clean, and fast.

      Hear, hear. MS holds flashy press conferences to announce products that won't ship for a year (if at all), includes laundy-lists of features that will be radically pared down before release, and ultimately ships products that are, at best, incremental improvements over previous versions, although they are touted as 'revolutionary', eg Win 2k vs Win XP.

      Google doesn't talk about products in preparation. They quietly release full-function betas before announcing them, and the betas offer features that really are revolutionary. No Gmail wasn't the first web mailer, but it redefined what a web mail program was capable of. No Google didn't make the first map, but maps.google blows everyone else away.

      Yes, there is a big difference between between building something like Google Desktop Search and building a whole new filesystem and all the other changes that requires. But the point is what is promised and what is delivered.

      Google promises nothing, and delivers products that become essential. Microsoft promises the sky and moon (I thought Windows was supposed to be voice-controlled by now, and my fridge was supposed to automatically order milk when I need it), and delivers products whose importance to daily life is based primarily on the difficulty in avoiding them.

      When Google does drop the next bomb (Google TV?, GoogleFS?, Googlix OS for running a smart terminal?), you won't hear about it in a press release. You'll be an invited Beta tester.

  33. Re:one of the first rules of programming - start o by ioErr · · Score: 3, Interesting

    There is, as I'm sure you already know, a difference between a C program you wrote in class and an OS. The reason your C program gets better when you rewrite it is because you now have a clear view of what it should look and work like. When it comes to a behemoth like Windows, no one understands the system fully. So even if we have all these people who understand parts of the system rewriting their parts, plenty of design errors can still persist in the way the system is modularized and put together.

    So what should they do then? I have no idea.

  34. What A Goofy Dev Process by tini1212 · · Score: 2

    It sounds like Windows is thrown together with practically no organization what so ever. Yet all the computer nerds that only code free time can make a highly stable, flexible, and organized OS.

  35. Re:That explains a lot by aussie_a · · Score: 4, Insightful

    So, by using some implicit logic here, we all should accept Linux because even though it has its faults, it's free?

    I didn't say that, and don't even think my logic says that. My logic is, if Company X produces product Ya, whereas I can get product Yb for free, I'm going to need product Ya to be damn good for me to get that instead. Is Yb perfect? No. Should it be used in place of something that's better? hell no. But should it be used in place of something that's just as good? Why wouldn't you want to?

    Microsoft has attacked Linux's development method, saying how much better theirs was. People bought into it. Now we learn that they've been lying all this time, and that their development method is just "as bad" as Linux's. When you lie to people in order to get them to buy your "state of the art" product, people are going to expect it to be good. When they learn you've lied, they're going to be pissed, and it's fair for them to criticize Microsoft for this.

    That's what I said. I don't know where this "implied logic" that Mac should be selling like pancakes comes from.

  36. Re:That explains a lot by DaHat · · Score: 3, Informative

    Not quite true... In the mid 90's they did release a version of their own internal tool known as ChangeControl under the name Microsoft Delta... it flopped, big time. Needing something better, they purchased One Tree Software in 1994 and rebranded their One Tree SourceSafe to the more Microsoft style name of Visual SourceSafe.

  37. That explains a lot-Anatomy of a F/OSS programmer. by Anonymous Coward · · Score: 3, Insightful

    "Right, but have you ever noticed how many successful Free / Open Source software projects use modular architecture? Take (from my own area) Nessus, or Snort. Both consist of a core engine and frameworks that accept plug-ins and modules. Actually they both also have a lower level that allows ordinary non-programmer users to contribute signatures (rules) to the project.) This applies also to Apache, Mozilla, the Linux kernel, and plenty more."

    That's out of necessity. Due to the distributed nature of it's development. It just happens to be a good methadology, but if all the OSS coders were in the same room? We'd be having similiar problems to MS. It takes discipline to resist, and I don't see anything in OSS developers that's not also present in other coders. Which shouldn't be a surprise because a lot of OSS programmers work professionally in their day jobs, and have been educated in the same institutions. They read the same books, and research papers.

  38. Re:Like Apple by The_egghead · · Score: 2, Insightful

    This comment is pretty short-sighted. While I agree that Apple made a terrific choice with OS X, it is certainly not the only choice and maybe not even the best choice. UNIX-style operating systems have a lot of merit, but again, they're not the ONLY Right Way to write an OS. The NT kernel actually has a lot of good design in it and a lot of smart people worked on the early versions of it. In particular the message passing facilities in NT are much nicer than on many Unix systems.

    Windows can easily be a viable platform without totally scrapping the fundamental design. I think its cool to see that Microsoft is willing to take the risk of starting over and trying to get a good platform to build on.

    I've wondered for a long time why it was so hard for Microsoft to make good software. We all know that there are massive amounts of incredibly smart people there (most of the smartest people I knew in school work there). I think this article speaks to a lot of the reason and I think its neat to see that things _MIGHT_ be turning around.

  39. Re:one of the first rules of programming - start o by Lonath · · Score: 2, Interesting

    Things you should never do: rewrite.

    Naah. Software is math and the first proof of a theorem is generally ugly. So, it can pay to start over. I am not going to say in all cases it's better to do one or the other, but sometimes rewriting is the best option. An example from my own life: I wrote a MUD with some neat AI stuff (quests that actually impact the world in large numbers) in it and now I am working with a small startup to make an MMO and started over rewriting because the way I did it was bad the first time, but it was the best I knew how to do because that was all I understood about the problem. Now I have a more modular system and I understand how quickly certain things need to happen, and what needs to interact with what, which means I can split things up among databases and such . One thing to remember is that if you have a system that does X and you just want it to do X with a little bit more, then you don't rewrite. Even if you repeatedly have to do a little bit more. OTOH, if you have a system that does X and then you realize you need to do X and Y and Z...then maybe you need to rewrite depending on what you need the system to do.

  40. Comments by MyLongNickName · · Score: 5, Insightful

    90% of the comments I've read so far are either entirely or partially "omfg... microsoft suks!". However, read the entrie article, and you are faced with an interesting siutation.

    Software always has to strike a balance point... between features, quality, cost and timing. All software does (sans Duke Nukem Forever). Microsoft has been very good at getting product out there with the feature sets people want (Microsoft is also very good at manipulating folks into getting folks to want what they are able to deliver). Now, they are at a cross-road. Continue their current coding model, and get the next couple versions out there (relatively) inexpensively and quickly, or bite the bullet, and try a new way that will make them competitive for serval versions.

    Seems like an easy choice. But here you have thousands of developers who style is being crimped. Software engineers generally want to write code, not have constraints placed on them. Add to the fact that Google is gobbling up the best and brightest, and suddenly you wonder: If Microsoft forges forward, do they lose even more of their best engineers. They may have a better model for code depelopment, but will they have the best coders to move forward with?

    Which leads to the final question: Does Microsoft really need the "best and brightest" anymore? If so, do they need as many (percentage terms) as they used to? Their products are mostly in the mature stage. Can a few intellectuals keep the ship moving forward. Despite what groupthink on Slashdot may indicate, 90% of coding is not revolutionary, or even evolutionary.

    Just some things to think about and watch for over the next few years.

    --
    See my journal for slashdot ID's by year. Mine created in 2005. http://slashdot.org/journal/289875/slashdot-ids-by-year
  41. Semantics and journalism by DavidinAla · · Score: 4, Interesting

    There is sometimes a difference between what a word really means and what a court defines a word as meaning in a specific context. In MS's case, a court convicted the company of having a monopoly within the context of anti-trust law. The Wall Street Journal is using the word as it is actually defined by real people, which means to own ALL of a market. The newspaper is properly labeling reality, not showing evidence of bias one way or another. The fact that I detest MS and Windows doesn't keep me from seeing that the WSJ is just doing its job properly in saying "near monopoly." The moment you don't have ANY choice other than Windows in the market, it will be a monopoly. For now, though, the fact that I'm typing this on a Mac and can go buy as many non-Windows computers as I want says MS does NOT have a monopoly. Period.

  42. When to rewrite by Jamesday · · Score: 4, Insightful

    It's not so much that rewriting is but but that there are bad times to rewrite. Really old and stable code isn't a good target. Really new code with completely new function and an architecture which has been found not to be a good match for the real world objective it's addressing would be a much better target.

  43. Re:one of the first rules of programming - start o by Cthefuture · · Score: 3, Interesting

    That might work for small college projects but the real world is a different place.

    Often the rewrite never gets completed as there is too much crap added to it.

    If you truly want to make something that works you need to plan for an evolution of your software. That is, write the first version with a modular design that can be modified or rewritten in phases. Doing one big rewrite on a non-trivial software system is damn near impossible. It's better to evolve the software over time, always keeping a working system and slowing moving parts in the desired (presumably better) direction.

    I could write more on this but it's too early in the morning and I'm not even sure if what I wrote makes sense. ;)

    --
    The ratio of people to cake is too big
  44. Re:That explains a lot by dotcher · · Score: 2, Informative
    The "gates" that are being talked about are probably "quality gates", which aren't just about automated testing. There's a brief description of them here.

    As for SourceSafe, I've been told that it sucks. Badly. The source control in Visual Studio Team System is meant to be an awful lot better - they're trying to compete with things like Rational ClearCase. That said, it's both pricey and a 1.0 release. It might be worth looking at, though, if you have management insisting on a Microsoft solution.

  45. Re:That explains a lot by jsebrech · · Score: 4, Insightful

    1. They can see "all" of the code if needed. They can see how it works together if they need to. I'm sure code inside of Microsoft is doled out to parts on a "need to know" basis. Or not doled out much at all.

    I would be surprised if people who actually are employed by MS itself don't have access to all the code. They may not have check-in rights, but they should get viewing rights, because there is no credible (legal, management, or technical) reason to prohibit them from doing so.

    2. There are a bunch of users running the code all the time as its being developed and feeding back info.

    Do you believe there are more testers for the linux kernel than for the windows kernel? I sincerely doubt it. Most FOSS users use only the stable release of most software (they may run development releases for a select few programs), because running development versions of anything tends to leave you with a non-usable system.

    (3. They use the code themselves and have a ethic working to make the best code they can for themselves, knowing it wont be used as a tool to extort money from people.)

    Yes, and the windows developers don't use windows themselves. Ofcourse not. Why ever would they do that?

    I would challenge you to find anything open source developers can do process-wise that is not feasible in private enterprise. I have yet to find something.

  46. And what exactly was Windows/NT? by Exp315 · · Score: 2, Insightful

    Don't I remember Microsoft setting out to completely rewrite Windows from the ground up in 1992, with a more professional development approach? Wasn't it called something like Windows/NT ("New Technology"). What makes them think that they'll do any better this time, with the same same designers and programmers that produced what they have now? Those who forget history ... etc etc

  47. 40 million lines of code??? by Your+Average+Joe · · Score: 2, Interesting

    How could they possibly re-write it from scratch in as little as a year. Impossible. If I were a betting man all chips would be in.

    Every release of Windows you will hear Microsoft clamor the most secure and stable version ever!

    "The irony is that Bill Gates claims to be making a stable operating system and Linus Torvalds claims to be trying to take over the world."

    --
    Your Average Joe
  48. Re:That explains a lot by jsebrech · · Score: 4, Insightful

    It sounds like with Windoze, any of their developers could just check in their code with little or no oversight.

    On Linux, all code gets inspected by others before it is accepted.


    So, what you're saying is that linux development works better because it is top down cathedral style, where microsoft's model fails because it is a chaotic bazaar style?

  49. Re: Rewriting by hattig · · Score: 2, Insightful

    That's generally good advice. Even if you did design it well, the second pass at writing it will (1) reinforce whatever you've learnt whilst creating the application, (2) allow you to optimise the first attempt (and allow you to not think about optimisations for the first attempt) and (3) mean your code won't embarrass you later on in life (handy for those job interviews where they want code examples).

    I need to do that with some of my code - it is just a matter of getting the time. There's the rub - if it takes you 1x the time to write the first version, allow 0.5x that time to rewrite it (less if you've done a lot of research and/or learning for the first version). So tell your boss that your code will take 1.5x your original estimate if he wants it done really well. Also allow time for web surfing and that hangover ...

    However don't go overboard. Good up-front design and experience will mean that for many programming tasks you don't need to rewrite it all - maybe only a module or two. If you've got the overall design all wrong however, then god help you! :)

  50. So what does this article really mean? by skybrian · · Score: 2, Interesting

    The article is very vague. It sounds like they're writing automated tests and rejecting any code that doesn't pass the tests. But I can't imagine that they didn't have a regression test suite before, so I wonder what changed?

  51. Mac OS X not that modular by leandrod · · Score: 4, Informative
    osX, the ultimate in plug-in philosophy,

    Mac OS X is not that modular. GNU Hurd is far more, and even GNU/Linux.

    from the kernel

    Mac OS X’s kernel’ not modular at all. It has conflated the Mach microkernel, which has already been abandoned by the Hurd for its bad performance, with the monolithic BSD kernel. The result is something just as monolithic as BSD, but much larger, more complex and slow. Linux is not as fast or simple as BSD, but still much faster than Mac OS X — and both are just as modular.

    In contrast, the Hurd on the Mach is a little bit slower but much more modular, and the new L4 version has the potential to be much faster and still much more modular, because it is a true microkernel with multiple servers.

    to the GUI

    The Mac OS X GUI’s not modular at all X is.

    --
    Leandro Guimarães Faria Corcete DUTRA
    DA, DBA, SysAdmin, Data Modeller
    GNU Project, Debian GNU/Lin
    1. Re:Mac OS X not that modular by dmaxwell · · Score: 2, Insightful

      I've tried Apple's Remote Desktop product. It isn't much of an improvement over VNC. Apple (I'm sure misinformed X-haters will love this.) COMPLETELY ripped sane remoting capabilitity out their desktop. There own remote admin products send bitmaps just like VNC. It is maybe slightly more efficient because they can hook in a bit lower but they can't do an X11 much less an rdesktop.

      Low bandwidth responsive remote desktops is a bullet point that modern OSes should be able to meet. The capability most certainly isn't cruft to be ripped out to get a hypothetical 0.025% performance increase. Windows has it with RDC. Linux/BSD/Unix has it with NX. This is something I know Apple can do. It would help me immensely if they did.

    2. Re:Mac OS X not that modular by pohl · · Score: 2, Interesting
      Could you cite a specific example of where there are two specific regions of code within those systems that are not linked through a well defined interface, and make a convincing argument that they should be?

      Did you know, by the way, that a system can be modular on the source code level and then (based upon a compilation flag) it can either be built such that (A) both regions are in kernel space, or (B) one region is in kernel space and the other is in user space. The former would use a very efficient interface, whereas the latter would use one that was more expensive (for having to cross that boundary).

      In both cases, the regions exist in separate modules...it's just a compile-time optimization. Modularity is mostly a "maintainability" concept. The user should never care whether two regions are communicating via a Mach message or a pointer on the function-call stack to a struct in the heap. Using the latter does not make the source less modular.

      --

      The "cue the foo posts in 3, 2, 1..." posts will commence with no subsequent foo posts in 3, 2, 1...

    3. Re:Mac OS X not that modular by leandrod · · Score: 2, Insightful
      Could you cite a specific example of where there are two specific regions of code within those systems that are not linked through a well defined interface

      Can you say monolithic kernel and UI? Nothing like the Hurd or X. You can dislike microkernels and X, but you can't call Mac OS X the ultimate plug-in architecture.

      --
      Leandro Guimarães Faria Corcete DUTRA
      DA, DBA, SysAdmin, Data Modeller
      GNU Project, Debian GNU/Lin
    4. Re:Mac OS X not that modular by pohl · · Score: 3, Funny

      Well, you can say it...but that doesn't mean that you're doing anything but lip-syncing the jargon .

      --

      The "cue the foo posts in 3, 2, 1..." posts will commence with no subsequent foo posts in 3, 2, 1...

    5. Re:Mac OS X not that modular by leandrod · · Score: 2

      Sorry, you flew right over my head. It sounds like you are trying to disparage me in an ad hominem fallacious argument, but it looks really ridiculous because I can’t really figure exactly what are you referring to.

      --
      Leandro Guimarães Faria Corcete DUTRA
      DA, DBA, SysAdmin, Data Modeller
      GNU Project, Debian GNU/Lin
    6. Re:Mac OS X not that modular by Dolda2000 · · Score: 2, Informative

      Could you cite a specific example of where there are two specific regions of code within those systems that are not linked through a well defined interface, and make a convincing argument that they should be?

      Well, I don't exactly know OSX inside out, so these may already be so, but how about filesystem drivers, memory managers, I/O schedulers, device drivers (in particular drivers for devices like USB or Firewire) and network stacks?

      I think the arguments for all of these should be rather obvious, but just in case they aren't:

      • Filesystem drivers: It doesn't exactly hurt to be able to mount an FTP, WebDAV, SMB or NFS server on any directory as any user, nor does it hurt to be able to write extra filesystem drivers (for some archaic network protocol or filesystem dump or anything) and use them, as a user, without permission to alter the kernel.
      • Memory managers: It's not exactly an impossible thought that I'd like to mmap a shared memory segment over TCP or write my own swapping algorithm. It would also be necessary to write a memory manager in order to write a complete filesystem driver ("complete" in the sense of being able to mmap files).
      • I/O schedulers: Well, there may not be any obvious advantages to this. :) It doesn't hurt to be able to either, though.
      • Device drivers: There would be tremendous advantages for a user to be able to plug in his or her own USB device and use a non-installed driver for it, without modifying the kernel or risking to bring down the system.
      • Network stacks: It would be a good thing for a user to be able to plug his or her own tunneling driver or transport layer protocol (for example, for VPNs) without having to modify the kernel or affect other users.

      Did you know, by the way, that a system can be modular on the source code level and then (based upon a compilation flag) it can either be built such that (A) both regions are in kernel space, or (B) one region is in kernel space and the other is in user space. The former would use a very efficient interface, whereas the latter would use one that was more expensive (for having to cross that boundary).

      In both cases, the regions exist in separate modules...it's just a compile-time optimization. Modularity is mostly a "maintainability" concept. The user should never care whether two regions are communicating via a Mach message or a pointer on the function-call stack to a struct in the heap. Using the latter does not make the source less modular.

      That's not entirely true. First of all, modularity is not only an aspect of maintainability. It is also a matter of being able to reconfigure a system during runtime, without the need for restarting components or recompiling any source code.

      Also, the latter does often make toe source less modular. Being able to share a memory space (on a somewhat normal computer) enables much greater flexibility which cannot be emulated over a communication port. If you pass a struct over a function call, that struct is able to contain pointers to other parts of the same address space, which cannot be done over a communication port. In order to even being able to think of doing that over a port, you need to think long and hard over several aspects of data serialization (since most communication ports simply send arrays of ordered bytes back and forth). Since C doesn't offer any introspection into structs and other datatypes, this kind of serialization always needs to be done manually in C-based programs. In order to be able to overcome this limitation, the entire system would optimally have to be written in a more flexible language, like LISP or Java, but only being able to run managed code on a system would be ugly. A suboptimal solution would be a C-based language with introspection (and possibly type-tagging), but that, too, is quite ugly.

      Of course, the lack of non-ugly solutions to this problem lies in th

    7. Re:Mac OS X not that modular by Dolda2000 · · Score: 2, Interesting
      but would still insist that although modularity can lead to runtime flexibility, and runtime flexibility is often a sign of underlying modularity, it is important to not conflate the two concepts, since (strictly speaking) either one is possible without the other.
      I, on my hand, would insist that that is only half true. It is true, as you say, that absence of runtime flexibility is not necessarily an indication of the absence of modularity (it could be explained as easily as the lack of a dynamic loader, depending on the context and kind of system). However, I would argue that true runtime flexibility is not possible without a modular design.

      For example, I read about that new network architecture in Windows Vista, and how they have implemented per-session routing tables and user-installable tunnelling devices in order to allow VPN connections on a per-user basis without requiring administrator privileges. It is also typical of the kind of engineering that goes on over at Redmond -- they solve the problem at hand, but only superficially and without remedying the real, underlying problem. They added some runtime flexibility, but it only goes as far as modifying the state of the code that exists, instead of adding the ability of loading new code modules dynamically. Doing that wouldn't only have solved their problem, but it would also potentially solve millions of upcoming problems, and not only for them, but for other users as well (for example, if I wanted to write an IP-over-SSH driver and plug it in on a time-sharing system). In other words, it is my not-so-very humble opinion that true runtime flexibility requires dynamic code loading, and that, in turn, requires modularity in the existing code base. Runtime flexibility which only means changing the state of currently loaded code hardly even counts as runtime flexibility.

      It is well worth noting that the GNU Hurd is capable of doing all of the things that I mentioned. It can load file system drivers, memory managers, network stacks and much more during runtime. Ordinary users can do it for themselves without requiring administrative privileges or affecting other users. Now when they're switching from the Mach microkernel to the L4 microkernel, they have even added the missing piece of being able to load device drivers dynamically, in user space, and without special privileges (Mach requires device drivers to run in kernel space, much like monolithical kernels). This is why I am an avid supporter of microkernels.

  52. Re:That explains a lot by Glonoinha · · Score: 5, Funny

    Linux has adult supervision

    Translation :
    All the developers live in their parent's basements, and walk the code upstairs to show their mom.

    --
    Glonoinha the MebiByte Slayer
  53. Re:That explains a lot by speedbump · · Score: 3, Insightful
    Right, but have you ever noticed how many successful Free / Open Source software projects use modular architecture? Take (from my own area) Nessus, or Snort. Both consist of a core engine and frameworks that accept plug-ins and modules. Actually they both also have a lower level that allows ordinary non-programmer users to contribute signatures (rules) to the project.) This applies also to Apache, Mozilla, the Linux kernel, and plenty more.

    The reason we tend to have more modular code in the Open Source world is that typically small teams of volunteers or small teams of coporate-sponsored part-timers work on the code.

    The Open Source development process, in practice, is very different from what Microsoft does. People 'contribute' code to Open Source projects; Microsoft programmers have 'deliverables.'

  54. Vista wll always now be known as the flying pig by t35t0r · · Score: 2, Funny

    If there ever was to be a mascot for Vista it should be a pig with M$'s trademark 4 colored butterfly wings. Sort of interesting if you look at the penguin it has "wings" but cannot fly.

  55. Re:That explains a lot by inchhigh · · Score: 2, Insightful
    I would challenge you to find anything open source developers can do process-wise that is not feasible in private enterprise. I have yet to find something.
    How many projects in private enterprise can boast that all the people working on it would do so without pay?
  56. Re:That explains a lot by ppz003 · · Score: 2, Insightful

    The typical /. response: Damn Microsoft for trying to make a better OS!

    Seriously, I don't care. I use both Windows and Linux. Whatever will get the job done using the least amount of effort possible.

  57. Re:one of the first rules of programming - start o by leonmergen · · Score: 3, Insightful

    the first time you write something, it's always hackney'd - and it gets that way till you figure out what you want to do and how to do it - afterwards, it then becomes so much clearer to see ways to clean up the code and fix issues...

    Ok, I'm not a C programmer myself, but I do know one thing: if you have to find out what you're going to write after you start writing it, there's something extremely wrong in your process. I mean, whatever happened to actually designing the application ? Thinking about what you want to do makes much better code, and heck, it even saves you time; but yes, it's tempting, it's very tempting to rewrite code... why? Because programmers like clean code...

    When you're writing an application over the process of say, what, 6 months, and at the 6th month you look back at the code you wrote in the 1st month, you think "Oh my god, what did I do there? Look at all the mess! This can't possibly be the best way to solve it!"... but if you designed your application well, and the function does what it does, there's no need to rewrite your application - you can possibly optimize the function, but please, don't throw away code that works - it's plain silly!

    Anyway, to sum it up, the lesson I'm trying to preach: design before you code, don't throw away...

    --
    - Leon Mergen
    http://www.solatis.com
  58. You are all missing the key difference by mary_will_grow · · Score: 5, Insightful

    Everyone works AT microsoft. Everyone comes in at 9 to 5. Its a lot easier to manage "a bunch of little programs" when all the developers are on the same campus. Its a lot harder when the developers are all across the globe, with different schedules, all stitching together their communication with /no central management authority/ to make sure everyone can communicate effectively. People who are reading this without thinking will say "Whats Linus, if not a central management authority?" OK, find a piece of code you dont understand in the linux kernel, written by someone who speaks a language you dont understand. Go ask Linus to facilitate getting that guy to explain his code to you. See how far you get. Nowhere. Now try it at microsoft, asking your manager.

    One would think that because of this, Linux would be a mess, but we've seen the opposite is true: For projects to continue to evolve rather than quickly die off, they require _rigid_ structure and sane, intuitive modularity to support the OSS development model. Projects that turn into spaghetti code too fast just fizzle out and never make it into my slackware distro. While at microsoft, they have this whole management system that makes it easier to support spaghetti code. OSS has a much more brutal "natural selection" process that is constantly favoring modular, readable, easy-to-learn code bases.

    Plus, spaghetti code is not fun, so hobbiest programmers arent going to waste their time with it.

    Thats why so much OSS software is structured so well.

    --
    Why stick up for big business?
  59. Re:one of the first rules of programming - start o by jchoyt · · Score: 2, Insightful

    Depends on your situation. I was on a team that rewrote about 30,000 lines of code (more than a few) because the system had slowly, incrementally grown into a very brittle state and we had to add a bunch of new features. We rewrote it so we could continue to grow the system in the same incremental fashion. Was the best thing we could do - it's 4 years later and the system continues to grow in odd ways, but we never had to go back in and do more than minor fixes to that core. It worked because we knew more about how we wanted the system to work and about the problem space. It worked because we knew where all those bugs and ugly hacks and work-arounds were and we designed around them. Granted this is not 10M lines of code or whatever Windows has, but then again we were only 3 people part time.....if the entirety of the system is too complex for any single small team to understand and re-architect, then it needs to be split up and made more modular.

    --
    Sometimes the truth is arrived at by adding all the little lies together and deducting them from all that is known.
  60. Sounds like a marketting ploy by mSparks43 · · Score: 2, Interesting

    And if you believe this, you'll believe anything.

    Same as with Half-life 2. I've seen interviews with members of the valve squad who actually said HL2 was completely redone from scratch, when maybee 60% of the code still has its origins in Quake 1.

    My guess for vista is the same, they simply had to 'go back to bascis' because all their new stuff was badly organised. This is not the same as starting from scratch.

  61. almost unbelievable by roman_mir · · Score: 4, Insightful

    it is unbelievable how sad this article is. These MS 'engineers' only now started using automated integration testing, possibly automated unit testing. They only now started writing to predetermined interfaces and producing modular code. Gates, who calls himself 'chief engineer' never cared to start doing any of it before his house of cards, he calls his software production process, collapsed.

    I can't get over this, I thought this must have been obvious, especially in a firm that releases products as big and complex as OSs. I only worked in this field for 9.5 years and in that time I delivered a bunch of projects doing exactly that: well defined interfaces, components, automated unit testing and automated integration testing and at MS there was noone before the shit hit the fan to start doing it that way over what? 25 years?

    New process they have? New process my ass.

  62. How the story tracks by DannyO152 · · Score: 5, Interesting

    Put my two cents in as to how the article's storyline doesn't quite track. If Mr. Allchin, despite massive institutional inertia, gave the pig winglets and put it back on a track to actually being releasable then we're missing the motive for why he'll leave on Vista D-Day and why the company wouldn't fight to keep him. In some sense, the article is about the story Microsoft wishes to tell, which is we were writing bad code, but we've fixed that now (and look at the bruises: no pain, no gain, right?), which is what the parent posts suspects.

    Now I suspect that the interviews took place before the Microsofta est omnis divisa in partes tres announcement, and there was no desire from Microsoft to have Mr. Allchin candidly describe his reasons for retirement (and maybe Mr. Allchin has a book up his sleeve), so off to press with this peek into the hallowed halls of Redmond.

    One quibble I would have with article is in its suggestion that Mr. Gates, as Chief Software Architect has two paradoxical duties to reconcile: coming up with innovations and putting down unrealistic projects. A lot of the candid reporting I've seen is that there's a third element that he practices with zeal, which is to grind into a fine powder any idea he believes shakes a stick at the cash cows.

    One implication of the story is that in Summer 2004 Bill Gates didn't know that one of the cash cows was flatlining. There's a thought to ponder.

  63. 95% of Slashdot is -afraid- of news like this. by iProd · · Score: 2, Insightful

    Apparently you all missed the part that says "Mr. Allchin had announced to hundreds of Windows engineers that they would "reset" Longhorn using a clean base of code that had been developed for a version of Windows on corporate server computers." Yes, they threw it out. They didnt rewrite it all, it clearly says they restarted on a clean code from windows server. Most of you want MS to continue to screw up. Youre afraid that theyre adapting and improving. You hate the idea of MS entirely. Hippies.

  64. Re:Oh please by JNighthawk · · Score: 2, Insightful

    Have you not used Windows XP? It works great. I rarely get blue screens (and they're not Windows fault, because my laptop is overheating). I game on it. I code C++ on it using VStudio .NET.

    Your post smacks of zealotry, along with most of Slashdot. It annoys the hell out of me, all this Microsoft bashing.

    --
    Wheel in the sky keeps on turnin'.
  65. Re:That explains a lot by 1u3hr · · Score: 2, Interesting
    I still don't believe microsoft "started over from scratch".

    We may recall how Gates said security was job #1 a while ago. Obviously they are paying more attention to that now, but a large part is to deflect blame for their daily exploits. And in this case the article says how all the nice new features of Vista have fallen by the wayside, it's years late, but the spin is, as always, "the next version will be better than anything ever made". The classic FUD, and in the WSJ; so the CEOs can tell their geeks not to worry about migrating to Linux, or OSX, because Alchin says Vista will be all that and more.

    The point not at all investigated is the deliberate encouragement of spaghetti code over the last years, to hook IE, WMP, and coming DRM inextricably into the OS, the very opposite of the clean modular code advocated. Interesting to see which principle will give way.

  66. Thanks a lot! by therage96 · · Score: 2, Funny

    I hope George Broussard over at 3D Realms isn't reading this, now its going to be 3030 A.D. when we finally get Duke Nukem Forever!

  67. More technical details by DJ-Dodger · · Score: 3, Informative

    There are some more technical details on the big map of windows and the quality gates in this blog post:

    http://blogs.msdn.com/larryosterman/archive/2005/0 8/23/455193.aspx

  68. Re:That explains a lot by NormalVisual · · Score: 3, Insightful

    I would challenge you to find anything open source developers can do process-wise that is not feasible in private enterprise. I have yet to find something.

    Here's one - never having to hear "Ship it!". People working on OSS projects on their own time aren't generally being told, "you have to ship before Dec. 31st so we can get the revenue on this quarter's books", with no regard to whether that date is reasonable. Lots and lots of companies do it, and almost invariably the preference is to hit the ship date rather than spend the extra time to get it right. It really bothers me and everyone else I work with when we have to ship something we know is broken simply because the powers-that-be won't agree to a reasonable date that allows us to get it right the first time.

    I'm rather surprised that Microsoft got their priorities straight this time, but you'll notice from the article that management wasn't exactly a friend to the process.

    --
    Please stand clear of the doors, por favor mantenganse alejado de las puertas
  69. Same Old PR Spin by dcuny · · Score: 3, Informative
    When Microsoft comes out with a new OS, they have to convince users that they need to switch to it. This can be difficult, since customers have made a hefty investment in the technology, and tend to be pretty happy where they are.

    There's a carrot and stick approach. The carrot is that Microsoft touts all the cool new features that will make life so much easier. Features you won't be able to live without.

    Then there's the stick. Part of it is to have Office use features of the new OS, so you won't be able to perform some spiffy operation without it.

    Another part of the stick is to badmouth the prior version, but explain that all the issues being badmouthed are fixed and gone in the new OS.

    So you get stories where Microsoft "finally admits" to various things, (like that DOS really does underly Win9x, despite assurances that it was gone)... You've read them.

    There's certainly truth to what Microsoft claims, and it's nice to see real issues being addressed. For example, WinXP's move away from the Win9x base to the more solid WinNT base was a huge win for most users (although gamers complained about a lack of drivers).

    But don't be fooled - fundamentally, you're just looking at PR spin designed to created demand for an new OS.

  70. Every large software project... by jonadab · · Score: 2, Insightful

    Over time, one of three things happens to every large software project. The most common, of course, is that it becomes obsolete and irrelevant and is replaced by other projects. The least common of the three, traditionally, is that the code is continually refactored, a bit at a time, as a regular feature of the development cycle. Pegasus mail is a good example of this approach: every major release, David Harris refactors some major subsystem or another. Perl was also maintained this way, but *still* eventually reached the point of needing the third possibility: a complete rewrite more-or-less from scratch. (Some things can be re-used when this happens, e.g., documentation, especially API documentation, in the case of an OS; for Perl even the documentation needed to be redone for 6.0.)

    The Win9x codebase already reached the point, around the turn of the century, where refactoring wasn't going to help it, and Microsoft chose, rather than rewriting it, to obsolete it in favor of the NT codebase -- probably the right choice. But then the NT codebase has also reached the same point, and rather than obsolete it they chose to rewrite it. Also probably the right choice.

    This explains the delays, incidentally.

    The thing to take away from this is that, public beta notwithstanding, the first release of Vista could be a bit dicey until it's been in the wild for a while, some of the unintended differences discovered (there are *always* unintended differences when something is re-implemented from scratch), the first couple of service packs issued, and ISVs given the chance to update their software. IT departments might want to delay Vista rollout a few months after its release, to give these things a chance to play out. I know after the long wait people will be eager to get their hands on the new version, but you might want to run it on a testing or sandbox system at first.

    --
    Cut that out, or I will ship you to Norilsk in a box.
  71. Re:That explains a lot by thoth · · Score: 2, Informative
    I need to find some solid info to justify not using SourceSafe


    That should be easy, SourceSafe just can't handle large numbers of developers or files.


    Microsoft doesn't even use SourceSafe. I'm pretty sure the VS guys did a study and found the vast majority of SourceSafe users were people like admins or secretaries who were backing up docs and spreadsheets on their department server.


    When I started at Microsoft, they use SLM (source library manager) which convenient was pronounced SLIME. This thing was horrible: it used file locking, wrote little temp files to "lock" directories, used your volume label as part of your checkout, etc.


    For Win2000, they threw that away and bought Perforce's code, and modified it a little bit. It was branded "Source Depot", and was about 100 times better.


    But back to your question, SourceSafe just doesn't scale. Try using it with 200 developers and a couple thousand files. It'll die.

  72. Unit Tests by guinsu · · Score: 2, Interesting

    It seems pretty clear from the article that its describing Microsoft implementing unit testing on a large scale, but trying to explain it in laymens terms. So they didn't have to "rewrite" everything, they just wrote unit tests for everything they could, and dropped other parts (WinFS) until they could get those properly tested. The part about "code jails" and all of that read right out of an extreme programming book. I'm suprised no one else picked up on this.

  73. Why can't microsoft rebuild windows like Apple did by ravee · · Score: 4, Insightful

    I wonder, why microsoft can't do what apple did to mac OS. That is, why can't microsoft take FreeBSD code base and build added features into it to create a robust OS ? They could also include hooks in it so that MSOffice and other software suites will run only in their OS like apple is doing to Mac OS.
    This could make their job a lot easier and could get them more patrons for their OS.

    But microsoft has always been good at making even simple things seem very complex.

    --
    Linux Help
    for all things on Linux
  74. Re:That explains a lot by public+transport · · Score: 4, Interesting

    Looking under the hood, the Linux development model is more organised than one might expect. Consider the parts that make up a Linux system.

    • The Linux kernel with internally and externally developed modules. The kernel is mananged with a strong central authority. I will not go into details, as this is fairly well known.
    • Hundreds to thousands libraries (depending on how much you install).
    • Hundreds to thousands applications (dependin on how much you install)
    • Distributions are more or less centrally managed. They put it all together, but don't have much control over individual components, unless they also happen to invest developer time on those components.

    Libraries and applications are typically managed by smaller teams, and even if people contribute, those contributions are reviewed. Accepting that, we only have to look at the big structure. Some observations about libraries:

    • They are hierachically organised through depedencies
    • Often several libraries implements the same or similar functionality, possibly in very different ways. That is, developers have choices.
    • Libraries are occationally replaced, though the old ones are kept around until dependent parts are migrated or dropped. That is, there is a selection process which is not necessarily centrally controlled.
    • Good libraries serve a well defined task, and has a flexible interface.
    • Individual libraries evolve through requests and contributions from outside developers.

    The whole is a mixture of bottom-up and top-down hierachical control. To understand the dynamics, consider an individual project. At an early stage, the developers looks around to identify what is already done, and tries to identify reasonably stable, common, and well managed libraries which they can use. This is a very feasible thing to do due to open source licenses. They will then start from there, and do occational changes in dependencies throughout the lifetime of the projests due to new needs and changes in availability and quality of dependent parts. Sometimes, libraries are split out of projects by abstracting out identifiable tasks.

    An important observation is that by maintainers of a popular project casts a vote when choosing dependent projects. The more important the project is, the higher weighted is the vote for the dependent parts to survive. When most projects thus migrites to a better library, the rest will have to choose to follow suit or to risk loosing ground due to a more difficult installation process. The distributors are the ultimate judges, though their power is limited by what software is available.

    In other words, there is a semi-democratic system that organises a hierachical structure of componets, with no single central authority.

  75. Well placed propaganda. by tji · · Score: 2, Informative

    Microsoft got The Wall Street Journal to publish that free advertisement? That's incredible.

    Look at MS's big challenge now.. They are a monopoly, they are not going to increase their market share any more, because they already own the market. Their challenge is getting people to stick with their stuff, despite the demonstrated long standing problems in security.

    So, they throw in some tidbits critical to MS's past practices, because everyone is painfully aware of the problems they have had with security, viruses, etc. And they introduce our savior, Jim Allchin, who in a miraculously short amount of time, fixed all the development issues and got the company on track producing bug-free software.

    Now, IT managers can breathe easy, assured that the next release of Windows will solve all that pains them, and will be well worth the high price MS demands.

    This article is a great demonstration of why MS is on top. They have the clout to place a piece of propaganda in a national publication that will be read by a good percentage of corporate execs. That's innovation, MS style.

  76. Re:Oh please by dustmite · · Score: 2, Interesting

    The key to how an individual perceives Windows XP is based on expectations. Those with low expectations generally think Windows XP is good. Those with high expectations realise it is not. The way to develop realistic expectations is to have an in-depth knowledge of the *potential* of software vs the current reality of software. Kids today who grew up on Windows 98 have low expectations and so they think XP is actually *good*.

  77. Re:That explains a lot by dioscaido · · Score: 4, Informative

    For the record, even though I only develop in a particular branch of Longhorn, I do have access to the whole source tree.

  78. I have a theory ..... by miketheanimal · · Score: 2, Insightful
    Bear with me on this ....

    The holy grail of software development (OK, one of the holy grails) for a long time has been code reusability. Specifically, how do we build software in a way that allows code to be reused in multiple applications, so we can save lots of development time. But, so far as I can see, we are nowhere near solving this problem, at least, not "officially"

    Windows contains lots and lots of interacting components with lots and lots of APIs. This leads (for instance) to the well known problem that an upgrade to one thing breaks another. Why? Well, those APIs are complicated. Given even the best will in the world the specifications are incomplete, so a certain amount of "experimental programming" goes on when using them. The result is that usage of the APIs is very sensitive to changes in the API. Say you write an application A that uses a "reusable" component B. You read the API documentation, you code B, you test it, and it works. But it is quite possible that, say, you inadvertently use the API in a way that it should never be used in (you drive it beyond its "design parameters" in StarTrek speak). Later the component is upgraded, and it no longer survives your assault on it, and your application breaks. Just to repeat, even if everyone does their best, acts honourably, etc., etc., this sort of problem will arrise.

    Now compare the Linux/OpenSource world. I've got two big advantages. First, if I'm in any doubt about the API then I can look at the code to see exactly what it does - and I can make a judgement about how far I can push it. Secondly, If I am not sure of a component I want to use (perhaps I'm not convinced it will be maintained, or maybe I know that I am pushing it too near the edge) then I can incorporate the code into my project, so that I'm insulated from changes to it (I'm not really talking here about forking, more like freezing). Of course, I'd be advised to feed back fixes and improvements to the originators, but I do have final control.

    So, I'd like to suggest the Linux and OpenSource are providing a level code reusability that cannot exist in the closed source world. Sure, everybody depends on (say) GLIBC, and lots of people depend on, for example, QT or GTK+, but those are specifically provided as libraries and the authors are very aware they they are being used as such.

    Regards

    Mike

  79. Do you even understand Unix? by Inoshiro · · Score: 2, Insightful

    "I wonder if, once the kernel, KDE, and GNOME guys have to lug around twenty years' worth of backward compatibility, they'll be exactly like Windows... bloated, buggy, and insecure."

    They do. man 2 pipe. That's not new. man 2 fork. That's not new. Read up on POSIX. That's not new. Read up the C stdlib. That's not new.

    Nothing that has been implemented in a Linux distribution is very young. Most of it is so old, that Windows was just a copy of a program called QDOS bought by a young man named Bill Gates before an interview with a company that thought it could make money selling small computers in addition to its mainframe line.

    Comments like this illustrate the idiocy of people who have no reason to comment on stuff. Microsoft, which is dominated be the business rule of not breaking compatibility for the sake of its money-paying customers, are not unlinke all Unixes that caused the POSIX standard to come about. The difference is that Microsoft is 1 company with 1 closed-vision of money, while the Unix and C interfaces were widely used, and became standardized through standard engineering practices.

    I bet you're the same kind of person who thinks a desktop PC is poorly designed because it has RS-232 next to its USB ports. Good, well engineered software and hardware can change over time without ditching backwards compatibility. Linux is a great example of this.

    You're either very ignorant, a troll, or an astroturfer. Either way, you did manage to get modded up, which reflects poorly on all the mods that touched your comment.

    --
    --
    Internet Explorer (n): Another bug -- that is, a feature that can't be turned off -- in Windows.
    1. Re:Do you even understand Unix? by Malor · · Score: 4, Insightful

      Your entire comment appears to consist of "you're stupid. Microsoft maintains backward compatibility because of money. Linux maintains backward compatibility through 'standard engineering practices'[whatever the hell those are], and because everything in Linux is ancient. You're dumb, you're stupid, you haven't been using computers very long, go away."

      What with all the insults, you're awfully light on actual content in your reply. Ignoring those, I don't even see a clear argument. What, exactly, are you asserting? I think I see 'everything in Linux is old', but that's just so ludicrous that I'll assume I'm misunderstanding. You may want to elaborate a bit.

      By the way, I'm not likely to be an astroturfer. I expect you can probably figure out why.

      I realize that base Unix is very old. However, it's very old and very, very simple in terms of the POSIX APIs. Now, I'm a sysadmin, rather than a programmer, but it has always been my understanding that POSIX was a very limited subset of the Unix libraries; if you wrote to that subset, you were guaranteed portability. From what I remember, the last time I looked (years and years ago), there just isn't a whole lot there. It's a solid set of base functions, but it's quite primitive. There's nothing like, say, DCOM, or DirectX or DirectSound. It's a solid base, but as a guess, (and I invite correction from more knowledgeable people), it covers maybe 10% of the API ground handled by more modern environments. The QT/KDE and GNOME APIs are not very old. And the Linux-specific extensions to the POSIX standard can't be older than about 12 years.

      So yes, there's an ancient standard at the base, but most modern code is going to be hitting libraries that are quite young, relatively speaking.

      All the complexity in KDE and GNOME has many of the same benefits that Windows does, like easy integration of web browsers into other applications. I wonder, though, if they're not getting themselves into the same pickle that Microsoft has. When everything is integrated and interdependent, one tiny code change can blow up an awful lot of other stuff.

      Mind you, I LIKE these desktops, and I appreciate the features very much. But the programmers of old, at the dawn of the Unix era, were some of the most phenomenally intelligent people ever. Most software work today isn't being done by the same kind of luminary. I'm fundamentally trying to make the observations that A) Microsoft has a lot of smart people too, and blew it, and B) the smart people in the open source world may be making the same mistakes, by inventing desktop systems with APIs to do everything from balancing your checkbook to flossing your teeth.

      Now, it'll be EASIER to support them in open source, because it's much easier to modify programs to match API changes. That alone will probably make a significant difference. But it doesn't change the fact that APIs don't easily go away, and lugging them around gets expensive, even in open source. (Binary compatibility is far worse.)

      I talked about Linux in that sense because I'm irritated with it, and because I was thinking about their great efforts toward binary compability in userspace. That's a great feature, and I appreciate it, but I wonder how much it costs, relatively speaking. I was reaching a bit, trying to be somewhat charitable about the reasons behind the poor state of the 2.6 kernel.

      If, as you appear to say, everything in Linux is ancient, and "standard engineering practices" will somehow magically make everything run correctly, then don't you think your comments are particularly damning of its code quality?

  80. Wow, Maybe, just maybe, it could be secure now... by geminidomino · · Score: 2, Insightful

    They've been saying forever "Windows will never be secure without a complete rewrite." Could this be their chance?

  81. Love this line by nacs · · Score: 3, Insightful
    Tiny Internet browser maker Mozilla Foundation beat Microsoft to market with browser features planned for Longhorn.
    I love how it's phrased to make it look like Microsoft had plans for all these great new features for IE7 but this bad little company "Mozilla" comes around and steals their featureset.

    If anything, Mozilla is the reason they're finally getting around to 'upgrading' IE to possibly make it a decent browser compared to Firefox.
    --
    "I filter at +6, and have yet to miss out on an important comment." (#822545)
  82. Re:That explains a lot by gr84b8 · · Score: 2, Interesting

    Here's one - never having to hear "Ship it!". People working on OSS projects on their own time aren't generally being told, "you have to ship before Dec. 31st so we can get the revenue on this quarter's books", with no regard to whether that date is reasonable.

    Actually, the large open source projects I've seen DO have pressure to ship fast. Although it may not be due the the quarter's books, there is a lot of pressure on projects to get things done and announce GA. When Apache 2.0 was originally released I believe many developers didn't think it was ready for prime-time, and they still shipped. As a result it took a long time for people to upgrade. Additionally, many important open source projects ARE backed (and essentially developed) by corporations who DO have books to worry about.

  83. Re:That explains a lot by abradsn · · Score: 2

    Actually, we can see all the code if we want to. It's really not that big of a deal.

  84. Just Pre-release PR by cmd · · Score: 3, Insightful

    This is actually a clever bit of PR on Microsoft's part. Since they have no fear of losing the installed base of WinXP, they can start bashing it to convince people that it is a piece of crap (not a hard task) and clear the way for proclaiming Vista to be the cure to all the problems in WinXP. This is just part of the effort to promote the widespread migration from WinXP to Vista, especially when the new features may not be enough to sell someone on going through the trouble of installing a completely new OS. Microsoft must also convince customers that it is dangerous and bad to stay with WinXP.

  85. It WOULD be unbelievable, if you'd gotten the idea by mjfgates · · Score: 2, Informative

    Microsoft has BEEN using automated integration and unit tests, for at least fifteen years. (I spent a year owning some of the unit tests for USER, back in NT 3.1 days.) Windows has one of the best systems for allowing modular code out there-- yeah, we know about DLL hell, but it's there because lots of programs *do* use the same shared libraries, and with the versioning stuff in Win2k and later it's mostly dealt with. Predetermined interfaces... gawd. COM was developed precisely to allow that, and it's been working its way steadily deeper into the OS over time.

    Microsoft's existing dev practices would allow them to produce something the size of Apache, or PHP, or OpenOffice, with no trouble; they needed to do something better because the project they're taking on is so much larger.

  86. I'll sum the comments up by heinousjay · · Score: 2, Insightful

    Here is the executive summary of the comments posted to this story so far, written in the first person:

    I've never worked on anything even approaching the complexity of the Windows OS, but I know exactly how to do it, and I can do it better than Microsoft. Windows has obviously failed, and all the alternatives are obviously better. Despite the fact that Linux is only a kernel, not a complete OS, and faces nothing near the problems a project the size of Windows faces, I'm going to make the invalid comparison between the projects anyway in an attempt to whore up a few mod points. Oh yeah, and everyone Microsoft hires is shit - only OSS coders have any skill.

    I think that covers it.

    --
    Slashdot - where whining about luck is the new way to make the world you want.