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."
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
Linux is *not* user friendly, and until it is linux will stay with >1% marketshare.
/tmp or the installer will dump core. After the installer is done, edit /etc/X11/XF86Config and add a section called "GL" and put "driver nv" in it. Make sure you have the latest version of X and Linux kernel 2.6 or else X will segfault when you start. OK, run the Quake 3 installer and make sure you set the proper group and setuid permissions on quake3.bin. If you want sound, look here [link to another obscure web site], which is a short HOWTO on how to get sound in Quake 3. That's all there is to it!"
Take installation. Linux zealots are now saying "oh installing is so easy, just do apt-get install package or emerge package": Yes, because typing in "apt-get" or "emerge" makes so much more sense to new users than double-clicking an icon that says "setup".
Linux zealots are far too forgiving when judging the difficultly of Linux configuration issues and far too harsh when judging the difficulty of Windows configuration issues. Example comments:
User: "How do I get Quake 3 to run in Linux?"
Zealot: "Oh that's easy! If you have Redhat, you have to download quake_3_rh_8_i686_010203_glibc.bin, then do chmod +x on the file. Then you have to su to root, make sure you type export LD_ASSUME_KERNEL=2.2.5 but ONLY if you have that latest libc6 installed. If you don't, don't set that environment variable or the installer will dump core. Before you run the installer, make sure you have the GL drivers for X installed. Get them at [some obscure web address], chmod +x the binary, then run it, but make sure you have at least 10MB free in
User: "How do I get Quake 3 to run in Windows?"
Zealot: "Oh God, I had to install Quake 3 in Windoze for some lamer friend of mine! God, what a fucking mess! I put in the CD and it took about 3 minutes to copy everything, and then I had to reboot the fucking computer! Jesus Christ! What a retarded operating system!"
So, I guess the point I'm trying to make is that what seems easy and natural to Linux geeks is definitely not what regular people consider easy and natural. Hence, the preference towards Windows.
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.
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.
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)?
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.
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.
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?
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.
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.
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.
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.
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.
>>>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.
I still don't believe microsoft "started over from scratch". That's bullshit. And the only reason they're talking about how poor their development process was in the past is because they want to make it look like they've actually changed their ways. But vista isn't going to be much different than xp, it's just going to look a little different. This is like when bush says he'll get to the bottom of what went right and what went wrong with the national response to huricane Katrina. He's just trying to deflect enough to minimize the damage. Sort of a retro-FUD approach.
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.
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.
Main difference: all the other people working on linux have a major pair of advantages over the peeps at Microsoft.
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.
2. There are a bunch of users running the code all the time as its being developed and feeding back info.
[and a third, slightly less important.]
(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.)
-=fshalor
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.
"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.
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.
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
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.
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.
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
I don't know where you get the 2 or 3 times number from. It is widely demonstrated that apple's gross profit margin on parts and assembly is 50 percent. If you build a PC with comparable quality parts yourself, and get the parts at their cheapest (large volume pricing), that's about the margin you should get.
Take the mini, do you think there is a 250 dollar equivalent in the pc market? Or take their 12 inch ibook g4. It's 1000 usd. Do you think there are 500 dollar equivalents in the pc market?
I'm not saying you won't be able to dig something up that is indeed that cheap. I'm just saying the parts in it will be fitting to the price. It will be crap.
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?
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!
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.'
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.
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
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.
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?
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.
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.
You can't handle the truth.
According to the timeline given, VISTA coding began around August of 2004 and the first trial release was a year later.
In other words, a complex operating system was developed in under a year and is slated for release at Christmas, a mere 18 months after its inception.
One of the FUD attacks from Micosoft against Linux was that Linux was 'immature', even though it had been under continual development since 1992. If over a dozen years of development doesn't qualify for maturity, certainly one year of development is the dictionary definition of immaturity.
Will SOHO users really want to roll VISTA out into their server rooms and desktops? I doubt enterprise users will.
Running with Linux for over 20 years!
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.
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'.
Here Microsoft repeats their marketing mantra with Vista as their championed solution. Never mind that the original Vista code was developed in the same manner as previous releases, and that it internally has the same bugs/glitches/features. Somehow the new development management process will structure that bad code into good code.
I find the story to be unbelievable. I think WSJ was sucked into this story as have so many industry publications in previous Windows releases. WSJ should be embarrassed by both their technical lack of understanding and their marketing naievete. A little background investigation of this story would have revealed it for what it is: the leading edge of a marketing campaign to push Vista and obsolesce XP.
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
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.
...it became harder to strap new features onto the software since new code could affect everything else in unpredictable ways.
FTFA:
The problem is a communication problem, not between programmers (nothing can really be done about that since they come and go) but between different parts of a complex software system. It has to do with data dependencies, not only at the program level, but also at the system level. It's a matter of the left hand not knowing what the right hand is doing. The problem is proportional with complexity and it affects the entire software development industry, not just Microsoft. But is does not have to be that way. There is a solution, one which, unfortunately will require a fundamental rethinking of software construction. It's never too late to retrace one's steps. See my site for more.
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.
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
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.
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
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
"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.
They've been saying forever "Windows will never be secure without a complete rewrite." Could this be their chance?
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)
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.
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.