Longhorn‘s arrival will indeed be monumental, as their research teams are finally producing something worthwhile. The OSS world has much to do in preparation for this release; this version of Microsoft’s OS will not simply offer trivial UI “enhancements” that appeal to users, as it has done in the past – they are really targeting both users and developers very forcefully this time around.I interned there last summer and got to see and use Longhorn, and saw the beta-Longhorn technologies (including the amazing Avalon, as well as a super alpha XAML (pronounced “zamel” implementation). The developers were excited, as they should be.
Avalon will be the most advanced user interfacing technology to date, blowing anything else (including Apple’s Quartz Extreme) out of the water. Avalon will be a huge pull for media application developers, the eye-candy market (including desktop extension frameworks such as DesktopX), and possibly for game developers. Seeing every widget on the screen scale seamlessly as the user manipulated a document reader last summer at the Microsoft Avalon technology demo was quite impressive, and struck fear into my heart for the rendering servers on open-source operating systems.
Thankfully, the OSS and Linux communities have much resourcefulness, and won’t be caught unawares when Avalon makes its debut. Keith Packards X server work has yielded some very groovy possibilities, as will the vector-imaging library Cairo, allowing us scalable drawing for arbitrary uses (including the interface toolkits).
WinFS will be a workable, usable implementation of what the desktops have desired for a long time – a large, flexible, user-friendly metadata database for the filesystem, and I assume MS will use it to its fullest capabilities when integrating it into the Longhorn user experience (mistakenly reported as a cut down feature recently). Even if an equivalent system becomes mature and widely used, it will be impossible for the desktop environments and applications to really integrate it until a great deal of time after Longhorn’s arrival. GNOME Storage is the GNOME camp’s attempt at rivaling this technology.
On the developer side of things, .NET is gaining popularity. It is really a well-thought out platform for developers to deploy their applications with, and as such is in a strong position to dominate developer interest, training, and experience in the near future, in a similar manner to how we’ve seen Java dominate in academic circles and universities. It is flexible in that other languages can be compiled into the .NET intermediate language, making the platform largely language agnostic. If the OSS world (or GNOME, in particular) embraces this technology, we basically get a free development platform, engineered by Microsoft (and implemented by the guys at Ximian, or elsewhere) that would speed up _application_ development in the OSS world, and at the same time offer a platform that is familiar and even compatible to that which the majority of programmers in the world are using.
Many are hesitant to embrace something from Redmond, and argue that such a development environment is not needed, and the current trend of application development (using assorted libraries and languages such as C and C++) will serve Linux and its related software well into the future. While this may be true for current OSS developers, the fact remains that the developer base will not grow by leaps and bounds until something more modern and familiar is commonly used. I for one did not start developing for the GNOME platform until the arrival of Ximian’s .NET implementation, Mono. As soon as C# hit my eye, GNOME gained one more developer that would have otherwise been absent from the GNOME developer base. Consider this effect on a large scale when these technologies not only exist, and not only become mature, but are packaged attractively to draw developers to the alternative platform, as Microsoft has diligently done in the past with its platform.
Considering the horizon, the challenge from Longhorn is great – but more importantly, so is the opportunity. Finally, MS is actually doing some innovating as opposed to “embracing”, and the competition between Linux and Windows becomes real.
About the author:
“I am a Linux and GNOME user that happens to love software development. I’ve also interned at MS and plan returning there (for another internship), and over the past year have noticed and enjoyed monitoring some interesting developments in the OSS community in relation to Microsoft developer tools and technologies.”
If you would like to see your thoughts or experiences with technology published, please consider writing an article for OSNews.
“Linux, right now, is about what people want, not corporations. They don’t have an empire to protect, nor customers to lock in.”
This is not true. A lot of companies (and big corporations) have a lot of interests in keeping Linux THE alernative. Because they dont want to switch back to windows (= $$$ saved). Some governments are starting to be behind the open source community. And they will try to benefit from the community (and maybe on the other way around, the comunity can benefit from large organisations because they can prove their reliability).
I’ve just been reading on C# and my impression is that it is not a well-thought out language at all. This particularly applies to C#’s value type which is more trouble using than what it’s worth.
What’s the problem with the value type? Seems just fine to me, with the automatic boxing / unboxing etc.
In C#, value types shouldn’t be necessary. There are analysis techniques as old as the hills that will allow the compiler to represent value types as unboxed types where possible. There is no reason to not have “objects all the way down” in a memory-safe language like C++. This is how Lisp/Smalltak/Dylan/Cecil, etc, compilers get around the fact that the native types (integer and floats) are just regular-old classes.
Read Richter’s book (page 336) and write a non-trivial C# program.
My experience is that it complicates the thought process while coding. You have to pay special attention to whether data is a value type or reference type.
The automatic boxing, unboxing is cool on the surface. What you are not aware of is what happens underneath the surface. Value types are supposed to create faster code but more often they slow it down.
Well, personally I like the automatic boxing/unboxing and I find it more convenient and consistant than in Java where this needs to happen explicitly. Of course you’re right that developers need to pay attention to what they are doing and to what is going on underneath.
“1) No money”
OSS is moving toward a service based business model. And to sustain such business they need a lot of customers. Even Microsoft knows this. It is probably the main reason for their .net initiative.
Or are you saying that telecom, companies that give away cell phones to get more customers are doing the wrong thing.
Just like the big telecom companis sees the advantage of having many customers so does IBM, Novell, MySQL AB,..
And they are not exactly pennyless.
“2) No standards”
You may be right here, but not in the way you think.
Just look at Linux. The main thing that keeps Linux away from the desktop is the lack of standards. When people start using standardized file formats Linux will be unstoppable as there will no longer be problems reading and writing file formats like Adobe Illustrator, Adobe Photoshop,… We can se the problems with standards very clearly in Office suites. Until Open/StarOffice started to use a well docuented XML based file format, Linux had no success on the Desktop now Open/StarOffice are running on about 10% of all desktops, many of them Linux. And in the cases where SO/OOo is run on Windows it will greatly simplyfy a migration to a completely opensource desktop.
So the lack of standards is actually more common in the propriatory world, as it is their way of protecting themselves against OSS and other competitors by vender lock in tactics.
“3) No leadership”
Perhaps, that is true too. But then again I can’t see any true leader in the propriatory world either. Bill and Steve will look quite stupid when they show their scalable vector graphics desktop as news. Similar things will very likely be available in Gnome long before you see them in windows. From what I understand the next version will contain some of it. And that will probably ship before the end of this year. And before LongWait ships there will have bin 2 or 3 new major releases of both KDE and Gnome. And it will run on some successor to Linux 2.6 that most likely will run circles around LongWait, just like the 2.6 has speed and scalbilty advantages over win XP of today. And we will most certaily have Reiser4 with atocmic databaselike operation.
“4) Too much time to develop such a thing”
How true. Microsoft have far too long time to market.
In the mean time less capable solutions will gain on Microsoft. Remember, even if the Sony BetaMax video system was technically superior to VHS, you don’t see it on the market anymore. And given the current speed of Linux/Gnome/KDE development its not even that Longhorn will be the superior product when it finnally finds it way to the consumers.
“5) Always behing MS.”
Yes, the figures clearly show that you are right. Just look at the costs of viruses and other security problems. Just look how you need twice as many admins to manage windows than Linux or any other unixlike system.
“6) The linux GUI is still not as usable as the 2.5 years old XP”
Perhaps not, but if you compare the usability of Linux guis 2.5 years ago to what they look today. You will realize that the speed of development is amazing. But if you compared winXP to windows NT you will hardly know the difference.
2.5 years ago, Linux people had very little focus on the desktop, they did concentrate on winning the server market.
Now that most major server software vender have products for Linux the target have shifted.
Just look at the new Gnome 2.6 where everyting is drag & drop and everything just works. And this is only the beginning. In the near future standards like D-BUS will make linux applications even more interoperable and easy to use.
Both Gnome and KDE have now very active usability groups that will make sure that the future free desktop will be consistant, learnable, and likable.
“7) Mono will always be behing .NET”
Perhaps, perhaps not. The success of open source is not necessarily tied with the success of Mono.
“You do realize that .NET is language agnostic. You can write low-level code in unmanaged C++ or in C. Build an SDK on top of that using managed C++. And build applications on top of that using C#, VB, Python, J# or whatever language you choose.”
Actually java the java platform is language agnostic too. E.g. jython, NetRexx, aspectj, pizza, COBOL,…
Besides in .Net everything looks like C# regardless what language you use.
A long long thread over whether some unreleased Windows in 2006 *is* better than a current Linux in 2004 (assuming anyone here is using a current version rather than referring to some distro they tried last year which itself packaged software that was months behind). Yawn.
When the world turned to gushing about new features instead of describing the most urgent problems of its customers and how to address them in the most simple and cost-effective way, we really got lost. This is like crappy cars that feature more cupholders and a bigger bumblebee muffler and go-fast stripes. Wheeee!
I really need to take osnews out of my bookmarks. Oh, it wasn’t there anyway.
“Its easier to copy than to improve. Linux and a lot of software are just free copies of already existing apps. I’m not saying they copy the code, only the concept.”
This may be so. But this still poses a problem to Microsoft.
If you can get a very similar free Gnome or KDE based desktop where you have no vender lock in, and where you have the code to customize to make it fit your needs, people will go for that free desktop. As that happens the market for Linux based applications, and hardware supporting Linux expands, meaning that life with Linux is will be quite easy.
To meet this, Microsoft will need to lower their prices, or even give windows away for free and switch to a service based business model just like Red Hat and other Linux companies. The bad news for Microsoft, is that they have more old users to support. Users that have bought their licences at high prices and never was part of the deal,
free (at least as in bear) OS and expensive support.
Mening that that Microsoft may loose annoyed customers to e.g. Linux and MacOS.
Even worse, Microsoft most likely licences part of windows from other companies, this makes giving away windows to obtain customers even more expensive to them.
Microsoft sit on a large pile of money and they will probably be around for a long while. But they may have seen their best days.
For windows NT there’s a kernel debugger available (search in the MSDN).
Linus doesnt likes debuggers because he thinks that that encourages laziness at the time of writing code, and you should be able to debug your code by _looking_ and understanding where it fails, not by a program telling you where it failed. Yes, it’s faster, but it can cause laziness in non-perseverant people and it doesn’t make you a better programmer unless you really understand what you’re doing. He’s also a debugging machine so he doesn’t needs a debugger that often; unlike the rest of the mortals. Anyway, Linus already accepted (after 2.5 freeze, so no for 2.6) that people wants it and a debugger will be included in the future.