Linked by Thom Holwerda on Mon 22nd Oct 2007 13:48 UTC
Windows Earlier today, OSNews ran a story on a presentation held by Microsoft's Eric Traut, the man responsible for the 200 or so kernel and virtualisation engineers working at the company. Eric Traut is also the man who wrote the binary translation engine for in the earlier PowerPC versions of VirtualPC (interestingly, this engine is now used to run XBox 1 [x86] games on the XBox 360 [PowerPC]) - in other words, he knows what he is talking about when it comes to kernel engineering and virtualisation. His presentation was a very interesting thing to watch, and it offered a little bit more insight into Windows 7, the codename for the successor to Windows Vista, planned for 2010.
Thread beginning with comment 279845
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE: This isnt new
by TemporalBeing on Mon 22nd Oct 2007 15:40 UTC in reply to "This isnt new"
TemporalBeing
Member since:
2007-08-22

Windows isnt dead it just needs a major garbage cleaning, you don't throw out code that works XP was one of the best OS's in history especially since SP2.

The XP code-based seemed to work. It was really a delinquent code base that really needs a lot of work, and a lot of legacy crap dropped from it. The author has a good approach for how to do so while still maintaining the backwards compatibility, and it would behoove Microsoft to actually do it.

As to throwing out a code base - yes, there are times when you do throw out a code base. Typically, it is when you can no longer control the code. Sure, you might be using CVS or SVN or something similar, but that doesn't mean you can truly 100% control the code.

For instance, I worked on one project where the code base was really uncontrollable. It had a legacy history to it and we couldn't solve the problems it had by continuing to use that code base. The only answer was to start a fresh - use new practices so that we could manage the resources of the code, ensure security, etc. The old code base, while it worked, wouldn't have supported those efforts. Moreover, the new code base allowed us to add in new features quickly, easily, and maintainably. (When we fixed or added a new feature was added to the old code base, we would end up with more issues coming out than we went in with. It was really bad.)

The Windows code base is likely at that point. It was likely there before XP, and only made worse by XP. It's easy to tell when you're at that point as every new change takes longer to get in and keep the old code functional.

So yes, it's high time Microsoft cut the cruft and started a new code base, and designed the code base to be more modular, maintainable, secure, etc. It's the only way the software will survive another generation (e.g. Windows 7 and Windows 8). Otherwise, it will collapse under its own weight.

Reply Parent Score: 1

RE[2]: This isnt new
by n4cer on Mon 22nd Oct 2007 16:22 in reply to "RE: This isnt new"
n4cer Member since:
2005-07-06

So yes, it's high time Microsoft cut the cruft and started a new code base, and designed the code base to be more modular, maintainable, secure, etc. It's the only way the software will survive another generation (e.g. Windows 7 and Windows 8). Otherwise, it will collapse under its own weight.


In large part, Vista is the beginning of the new code base. Again, MinWin isn't new to Seven. It's there in Vista/Server 2008. A lot of code was rewritten for Vista. They've started to virtualize system resources, and they've mapped/eliminated most dependencies and layering violations, and turned each feature into manifest-backed compoents. They are more agile in what they can add/remove without affecting other components because of this work and the processes put in place during Vista's development.

They aren't going to throw out all of that work in Seven. They're going to build upon it. I expect there will be a greater shift towards updated versions of the managed code services they've added in Vista as the preferred method for application development. I also believe they'll start to integrate application virtualization for legacy compatibility as well as driver virtualization for reliability, but the end product will be the offspring of Vista/Server 2008, not an all-new code base. I wouldn't expect something that big for another 1 or 2 major releases.

Reply Parent Score: 2

RE[3]: This isnt new
by Weeman on Mon 22nd Oct 2007 19:56 in reply to "RE[2]: This isnt new"
Weeman Member since:
2006-03-20

and turned each feature into manifest-backed compoents

About that...

Have you ever taken a look at WindowsPackages or wherever they're stored? All it is, is a manifest of bloat.

Reply Parent Score: 2

RE[4]: This isnt new
by TemporalBeing on Mon 22nd Oct 2007 20:09 in reply to "RE[2]: This isnt new"
TemporalBeing Member since:
2007-08-22

In large part, Vista is the beginning of the new code base. Again, MinWin isn't new to Seven. It's there in Vista/Server 2008. A lot of code was rewritten for Vista. They've started to virtualize system resources, and they've mapped/eliminated most dependencies and layering violations, and turned each feature into manifest-backed compoents. They are more agile in what they can add/remove without affecting other components because of this work and the processes put in place during Vista's development.

It isn't a matter of how agile the code is. It's a matter of how much the code itself can take change. Windows, due to quite a lot of reasons (e.g. backward compatibility, competition stifling, incomplete and undocumented APIs, bugs, etc.), is a monolithic code base that is not very easy to change. Revising it, refactoring it is not going to help. The only way you solve that is by starting over.

Starting over is often good for a project too. You lose a lot of legacy code that is not needed, and you get the chance to do it better, more correctly. You can apply newer design and architectural principles and fix things proactively instead of retroactively. (Sure you'll still have stuff to fix retroactively, but they'll be different things than before if you did your job right.)

Every software project will at some point reach a point where it'll have to have its entire code base thrown out and restarted. In many respects, it is really a sign of maturity of the program - you understand the program enough to know how to do it right and you need to give yourself the opportunity to do it. A clean cut is often the only way to do so.

Vista is better in some respects to modularity of parts. However, it is still far from what it needs to be and it has a lot of cruft in it - stuff Microsoft simply can't get rid of unless they start over. Otherwise, they're just continuing in the same paradigm, fixing the same issues over and over.

Reply Parent Score: 1