Details of what Longhorn will actually be like are still unclear, as rumors spread on message boards and in chat rooms about how the operating system will function. Read the article at NewsFactor.
Details of what Longhorn will actually be like are still unclear, as rumors spread on message boards and in chat rooms about how the operating system will function. Read the article at NewsFactor.
With all the DRM stuff that MS is proposing can we really say any future version of Windows is a “must-have”? I think a large portion of users will see it as a “must-switch-to-something-else”. This is honestly not a troll. I just would really get scared if a convicted monopolist said they had a “must-have” upgrade for me.
my 2 cents
I’ll expect the flames.
Well,
I really think Windows .NET is getting a really powerfull OS which cannot be compared with Win2000 or WinXP…
On the other hand, we don’t have many other OSes…
BSD ? Definatly not, I doubt FreeBSD 5.0 is doing any better (Oh, I like BSD, really !)
Linux ? Just look at KDE3 and Gnome2, ugly and slow, many toolkits, different for standard office users…And they are not stable or feature rich in any way (everything compared to Windows).
So, I really like Windows, I like Linux and BSD but it’s impossible to make a change away from windows before 2004 _no way_ what the open source community is doing…We need better GUIs, better toolkits, X is a joke (and alternatives are rare and/or non-free) etc. etc.
If you feel like changing you get used to KDE 3.0.x, Gnome 2.0.x, X with its old technical sides, having to configure everything for yourself, having to deal with driver problems etc. etc.
And from what I have read in a white paper on microsoft.com about DRM it’s not bad if you own legal copies of your software…So far
The next must have O/S is OS X v 10.2.
It is getting too expensive to keep up and maintain Microsoft O/S. Besides most new features Wintel system will have Apple already has. The only stability problems I have with the Mac systems occurs when running IE. But IE is not stable on NT either.
“And from what I have read in a white paper on microsoft.com about DRM it’s not bad if you own legal copies of your software…So far ”
That is true, but knowing Microsofts track record I really dont trust them not to exclude others from their sandbox. And are they the ones that will determine if software is legal or not? How will they know?. What if i right my own software, how will it determine if its legal, free or virii?
I dunno, I find Gnome and KDE to have nice user interfaces, they run just as well as explorer and do many of the same annoying errors,, in their own unique linux way:)… but i have to agree whole heartedly about X sucking holey high water What I dont understand is why a distrobution couldnt sell their distro with an X substitute as long as the core GNU programs are gpl’d. Why’s it gotta be all or nothin,,,, they already sell proprietary system tools (yast anyone).
‘Right’ is really ‘write’ the way you are using it. Duh.
Some reasons please!
Troll away MFer…
Either you’ve been living in a cave on a remote mountain, with no access to the world for the last 2 years, or you’re trolling for responses.
Google, or search the archives of /. or OSN. There’s already been tons of reaons given for why X sucks (and there’s been nearly as many responses abuot why it doesn’t suck, but I myself and sticking with the “It sucks” crowd).
Why re-hash the whole X debate? Unless you’re going to code up a new repleacement for it (not likely since whole groups of people have failed to do so), just let it lie.
I’ll be using .NET for a loooooong time before I waste my time with Longhorn.
Actually I have never heard of any reasons why it is bad, I have only heard “It is so bad”. Now I have heard why it is good (real reasons).
So I would really like to know real reasons why it is bad, not just “it’s so bad”.
In an effort not to troll or whatever please provide me with a link to one of these articles on why X is so bad. That way there is no need to incense other readers.
Thanks.
Miles Robinson:
Well, seeing where as Windows.NET is a server environment, and .NET in general is a programming concept, and Longhorn is a desktop environment, I don’t see how you can be using .NET for a “looooooong time” when it’s a server, or vice versa, how you could have the possibility of switching to Longhorn when it’s a desktop environment.
Actually I have never heard of any reasons why it is bad, I have only heard “It is so bad”. Now I have heard why it is good (real reasons).
So I would really like to know real reasons why it is bad, not just “it’s so bad”.
X’s problems fall into two main categories:
Cosmetic: X lacks a set of standard libraries from which applications derive their look/feel (or rather, programmers have discarded the original ones and just written their own) Consequently, applications lack the cohesive feel present in other operating systems.
Yes, there are two relatively popular libraries, and yes, if you only use applications written using one of these, your applications will have a cohesive feel. But just try to find, say, a good web browser that matches the rest of the applications on your system. You’ll be stuck with Galeon or Konqueror… and thus GTK+ or Qt (Or if you really want to, you could do Opera/Motif). Now, find a good graphics application (the Gimp, you’re limited to GTK+ now) and a good Office application (uhoh, out of options) and a good audio editing application, a good media player, etc. etc.
Technical:
X is old. How does its age adversely affect it? Well, this happens in the departments of color and font management. These problems have been nicely abstracted by the toolkits, but again, the problem remains you must use only applications written with these toolkits, or these problems will show themselves.
X’s architecture is also relatively outdated, and comes off quite similar to Win32. The main problem is X uses drawing commands which get passed over a socket to the X server. The problem is sockets are slow, and this can result in slow redrawing and overall poor performance, especially on lower end hardware.
Again, extensions have been made (the shm extension) and toolkits have abstracted it. So once again, you must use applications written with the latest versions of these toolkits.
A superior architecture utilizes shared memory, and has drawing commands processed by another thread in the individual applications. Drawing is done to a shared memory buffer, then this shared memory buffer is given to the server and displayed.
Naysayers argue that this results in excess memory usage. I have two answers to this:
Look at how much shared memory your X server is using (use ipcs if it’s installed on your system) and furthermore, this point is moot as the amount of memory used is relatively inconsequential compared to the total system RAM available in most computers.
Overall X’s main problem is this… it wasn’t designed very well to begin with, and these design flaws have been fixed over the years through extensions, many of them specific to XFree86, and most of them so new that applications/toolkits have only begun to utilize them. So what you end up with are beautiful new applications making use of these extensions, and ugly legacy applictions which were written far too long ago to make use of modern toolkits.
Since when does it matter what the OS is *supposed* to be for?
As far as I’m concerned purely desktop-oriented operating systems are a joke, with extremely low expectations.
Windows.NET, ME, and Linux are all I need and will ever need.
I’m currently running Windows 2000 Professional on one of my workstations, as well as on my wife’s PC. My notebook, my other workstation and my server all run Linux. I don’t like Windows XP, and I don’t like all the DRM and other crap Microsoft is stuffing into their “next generation” operating system. Windows 2000 will be my last Microsoft OS. In my opinion, the Linux desktops are getting very close to being ready for use by the general populace. The next generation or two will make the difference. BTW, I also use and like FreeBSD, but I’m a real Linux fan 🙂
Wtf? Am I dreaming or what? How can people still think Microsoft acts for everyone’s sake after all it has been doing over the years, reducing your private life, crushing opponents by using its monopoly and force people into perpetual upgrades and awfully license price. Have you read any of the latest MS licenses? Do you know you’re getting less and less control on your own computer/data? I’m not bashing the computing firm Microsoft is here, but the monopoly that it is. How can people don’t understand monopolies are real threats to their freedoms?
As about people who think Linux and other open source Unices have no future on the desktop market because of inferior technology, they probably didn’t get how Linux/BSDs became the bests platform for server use. They became the bests because server was the main interest of developpers, everyone working to get where it is now.
If tomorrow, people (users, developpers, some firms) decide to focus on the desktop market, then Linux may fill the gap it has compared with Mac/Windows. People already thought Linux couldn’t become more than a toy for geeks, but users/developers showed it could do much more. It’s now robust and powerful in server use, and it’s doing inroads in corporate desktops. It’s all about willing. If users, developers and firms want Linux to reach the desktop it will. It’s all how open source works.
It’s all about willing. You want better alternative to MS on the desktop? The keys are in your hand. Everyone owns a part of the solution. Put all this together and you can improve things. Linux, BSDs have maybe lacks for desktops use, but do not forget they are (were?) not intented to be used as desktop. Things elvove quickly, and the more users those alternatives systems will get, the more developpers, firms, manufacturers will join and reduce those lacks. If people want, it will.
If you prefer stay with Monopoly, then do nothing, but do not complain after.
I know i’ll get flammed for all I wrote here, but i don’t mind. It has to be said
I must add the obligatory BeOS comment to this thread. I think OpenBeOS will be the next must-have OS. It will have an elegant yet simple interface. If only it had drivers and more apps.
Had really ugly fonts on my install of BeOS 5 Personal.
It was real nice tho.
Cosmetic: X lacks a set of standard libraries from which applications derive their look/feel (or rather, programmers have discarded the original ones and just written their own) Consequently, applications lack the cohesive feel present in other operating systems.
Yes, there are two relatively popular libraries, and yes, if you only use applications written using one of these, your applications will have a cohesive feel. But just try to find, say, a good web browser that matches the rest of the applications on your system. You’ll be stuck with Galeon or Konqueror… and thus GTK+ or Qt (Or if you really want to, you could do Opera/Motif). Now, find a good graphics application (the Gimp, you’re limited to GTK+ now) and a good Office application (uhoh, out of options) and a good audio editing application, a good media player, etc. etc.
— My Response: Widgets sets are not the issue, and X look ‘n feel have nothing to do with X, but the desktop itself. If you have read past reviews of Null for example, Redhat now has a unified theme that will make KDE apps look like gnome and gnome apps look like kde ones, thus, having a “grand unified theme”. Opera is not Motif, it is actually based on QT, as for the reason for the different widget sets? why not? Soon the majority of people will use gtk2 as it stabilises as the licensing of qt requires royalty payments to Trolltech on any commercial software that uses the qt tool kit.
I suggest that you actually read about UNIX and UNIX design/philosophies before spouting off rubbish like that.
Technical:
X is old. How does its age adversely affect it? Well, this happens in the departments of color and font management. These problems have been nicely abstracted by the toolkits, but again, the problem remains you must use only applications written with these toolkits, or these problems will show themselves.
— My Response: GDI is even older. How many times must Microsoft resurect it? It has finally updated GDI to GDI+, however, you wont see many of the features until software companies start using the GDI+ kit, which will not be very soon. Hell, GDI and GDI+ aren’t even openstandards compliant. Maybe you should try to port a heavily GDI dependent piece of software to *NIX and see how much you enjoy the eXPerience.
X’s architecture is also relatively outdated, and comes off quite similar to Win32. The main problem is X uses drawing commands which get passed over a socket to the X server. The problem is sockets are slow, and this can result in slow redrawing and overall poor performance, especially on lower end hardware.
— My Response: Win32 has nothing to do with the display server. GDI is the display server for Windows.
Again, extensions have been made (the shm extension) and toolkits have abstracted it. So once again, you must use applications written with the latest versions of these toolkits.
— My Response: And what is wrong with that? qt and gtk2 are very modular and as a result, this is not an issue. Again, I stress that you should actually READ before opening your mouth.
A superior architecture utilizes shared memory, and has drawing commands processed by another thread in the individual applications. Drawing is done to a shared memory buffer, then this shared memory buffer is given to the server and displayed.
Naysayers argue that this results in excess memory usage. I have two answers to this:
Look at how much shared memory your X server is using (use ipcs if it’s installed on your system) and furthermore, this point is moot as the amount of memory used is relatively inconsequential compared to the total system RAM available in most computers.
Overall X’s main problem is this… it wasn’t designed very well to begin with, and these design flaws have been fixed over the years through extensions, many of them specific to XFree86, and most of them so new that applications/toolkits have only begun to utilize them. So what you end up with are beautiful new applications making use of these extensions, and ugly legacy applictions which were written far too long ago to make use of modern toolkits.
— My Response: This is a truely pathetic analysis. How about you go out, get a **** book and actually read up on X, instead of spouting off ideas you know nothing about. Having programmed using both with widget sets and raw xlib, I can tell you, X is a walk in the park compared to the pain and suffering Windows has.
Richard said: The next must have O/S is OS X v 10.2.It is getting too expensive to keep up and maintain Microsoft O/S.
HUH? Jaguar has NO upgrade price at all. Users like me are screwed into paying full price. Will the next version be free or at discount to current owners? The next? MS and Apple are no different here. Not any more.
“X’s problems fall into two main categories: ”
I still don’t know why NOONE has done ANYTHING about these problems, if you are want linux to suceed and you think X is that bad, put some code where yout mouth is… try contributing improvments to X. join an X replacement group and try to make “all the right” design decisions, or, heck, fork X, and rework as much as needed to make it have the design you think it needs.
I love how many Open Source supporters respond to criticism of Open Source projects with “Why don’t YOU do something about it?!”
In my case, I’m just a mere human who can’t program. If I could program, it would probably make me a design moron and my code submissions would do nothing to eliminate the complaints I have about *nix.
No, I’m not saying that programmers are automatically incapable of doing design, but, hey, there are some damned strong precidents and statistics in this regard pointing to the fact that most designers cannot program and most programmers are bad designers!
I could be an Open Source design specialist… but Open Source programmers rarely take design direction; they’re too comfortable with things as they are and are not likely to agree to or even see the problems we mere mortals complain to them about.
There’s the rub…
Thanks very much for the info.
Actually your arguments make a lot of sense. I do get frustrated by the lack of consistency between applications. I love Gnumeric and Galeon, but think Konqueror(file management) and KDE overall are a better environment for most people. Nautilus in particular is inferior.
I have been following Cosmoe to see what comes of that project but it does not seem to have much interest from developers.
Thanks again for the info. Really appreciated.!
Widgets sets are not the issue,
Of course they aren’t, because you say they aren’t.
and X look ‘n feel have nothing to do with X,
You entirely missed the point, which was one of standard widget libraries.
If you have read past reviews of Null for example, Redhat now has a unified theme that will make KDE apps look like gnome and gnome apps look like kde ones, thus, having a “grand unified theme”.
That’s great until you try to run something like StarOffice.
Opera is not Motif, it is actually based on QT,
No shit Sherlock, I was refering to the interface selction capibility, which would allow it to be cohesive with an entirely Motif system, Motif being a major widget library.
as for the reason for the different widget sets? why not?
Because it’s ugly.
Soon the majority of people will use gtk2 as it stabilises as the licensing of qt requires royalty payments to Trolltech on any commercial software that uses the qt tool kit.
In such a grand future as you’re envisioning, perhaps X won’t suck quite as much.
I suggest that you actually read about UNIX and UNIX design/philosophies before spouting off rubbish like that.
Thanks for the personal attacks. They’re really great. Oh BTW, did I mention I own the complete ORA X Programmer’s Guide, volume 1 through 6? Obviously I haven’t read them all cover to cover, but I certainly contend you’re making brash assumptions.
My Response: GDI is even older.
That’s great. Hey, know what, Windows sucks too, even more than X in my opinion, so everything you say about Windows isn’t really relevant. I’m advocating Quartz here.
Win32 has nothing to do with the display server. GDI is the display server for Windows.
Evidently you missed the connection, which was that drawing commands are passed to the display server from the client applications, rather than the clients drawing into shared memory buffers, thus clients handle redraw requests, etc.
qt and gtk2 are very modular and as a result, this is not an issue. Again, I stress that you should actually READ before opening your mouth.
Your only argument to me has been to “READ” and you aren’t even telling me what. You aren’t giving me logical fallicies in my reasoning, you aren’t giving any support to your statements, and you aren’t even making statements contrary to what I say. Why are you even bothering to post?
This is a truely pathetic analysis.
Gee thanks, care to tell me why it’s “truly pathetic”?
How about you go out, get a **** book and actually read up on X, instead of spouting off ideas you know nothing about.
Oh, you aren’t going to tell me are you. You’re just assuming I’m wrong and if I read some illusory book which you are yet to recommend to me, I will be Enlightened and realize the error of my ways.
Having programmed using both with widget sets and raw xlib, I can tell you, X is a walk in the park compared to the pain and suffering Windows has.
Both widget sets eh? Is that Xt and Athena? Oh no, you’re a little youngun, and you mean GTK and Qt.
Obviously the Win32 API is complete and total crap. But I’m not arguing Windows is superior, I’m arguing Quartz is.
You seem to be suffering from an “I LUV LUNIX WINDOWEZ SI SUX!!!!” complex. Perhaps you should do something about it.
Developers should have an open mind and listen to suggestions as well as complaints. And non-developers should cut the crap about “YOU go and change it.”
The simple fact of the matter is, people, you’re not making OSS any more appealing to the average user who doesn’t know how to program or hasn’t the faintest idea about the inner workings of (insert program).
I still don’t know why NOONE has done ANYTHING about these problems, if you are want linux to suceed and you think X is that bad, put some code where yout mouth is… try contributing improvments to X.
In my case, it’s because Apple has already done an excellent job in this department. Quartz is everything I could’ve dreamed of.
I love how many Open Source supporters respond to criticism of Open Source projects with “Why don’t YOU do something about it?!”
Indeed Especially when someone is arguing that a commercial solution is better.
Guess I should have read both your posts before commenting.
I have tried Null and love it. The only problem I hear is that they are only going to release new versions every two years. I hope RPM’s will be available for the new apps that are configured to work with RedHat menus etc. I also prefer KDE and know that RH generally favors Gnome.
One problem still with having both QT and GTK is that icons for applications will look out of place as they cannot possibly made to look good for both BlueCurve and Keramik for example.
One thing is for certain, at least with Linux I am spoilt with choice.
Thanks for your comments.
ABout a year ago I bought an iMac. I hated os9, really ugly compared to osX. osX was so slow. I sold the Mac.
Anyway my real point is this, while I like Quartz and Mac (Jaguar I believe is fast), I really don’t like the fact that only place you can get hardware for osX is from Apple. I would love to see more than one vendor. Until then I doubt I am going to get another Mac.
Wouldn’t it be great if there was a ‘Quartz’ for an open platform?
Okay.. I see people going on about X11 sucking or not sucking. And in the end everyone is missing what X is..
It’s an open standards server/client display system. When you take away the toolkits (motif, gtk, or qt), you have the xlib functions and the drivers to support the frame buffer. Like anything else in Unix, X11 is a building block to build functionality (like toolkits, window managers, desktop environments, and applications). Mac OS X has it’s display system.. which is basicly display PDF and Windows has it’s GDI. Now the difference between Unix(in all of it’s flavors) and Mac OS X or Windows is that you have a choice about how things will look and work with X11. You are not restrained by a cookie-cutter like environment. This of course makes it more difficult for the every-day end-user who does not really have the need for all the choices. And that is what will always seperate Mac OS X and Windows from X11.. they are designed for consumers who really want/need a common look and feel. X11 is a building block.. so if you want everything to look a certain way.. that is why there are soo many desktop environments to run on top of X11 (CDE, KDE, GNOME, Enlightenment, etc..).
In the past the commercial Unix companies created CDE which is nothing more than pieces of DEC Windows and HP’s OpenViews desktop thrown together in Motif. And it worked fairly well in what it set out to do.. which was to create a standard(althought ugly) desktop that was fairly common between the commercial Unices.
Today, people want something flashy and not so blan. That is why Sun and HP are switching to Gnome and Tru64 is switching to KDE. And so the rift returns.. remember when everyone had their own desktop for X11? (OpenLook, DEC windows, etc..) So on the commercial front it’s going to be either Gnome, KDE, or CDE.
Now, when it comes to Linux Distros.. it’s the same thing.. either you get tons of choices or you get a customized version of Gnome or KDE.
In the end, we all loose out when it comes to making X11 the dominant desktop, because of all the choices. Of course some programmers would say that all good X11 applications should be able to recompile for the toolkit you perfer, and I agree. And a lot of the applications of the past do this.
Besides, I don’t think that the folks at MIT originally thought X11 would become the dominant desktop environment. It was not created buy closed minded companies that want to sell you a GUI that’s not open standards based and locks you into a particular look and feel. It was created as a building block to make a flexible GUI environment. You have to keep that in mind when you talk about X11.
Now some people may say that X11 is slow and ugly.. well speed is relative to hardware these days. And until someone comes up a with something better that’s an open standard, there simply is no comparison. Unix is about choice and freedom. You can mix your Motif, QT, and Gtk applications all you want on your desktop.. and I think thats what really makes X11 better. And remember X11 has lots of fun features you won’t find on windows or even Mac OS X.. like remote display.
Now if Apple open sourced or licensed it’s GUI and made it portable, that would be nice, but let me know when Steve Jobs decides to go down that path again… remember OpenStep on Solaris anyone?
As Dr. Evil would say.. “Stick that in your pipe and smoke it”.
Matthew Gardiner: My Response: Widgets sets are not the issue, and X look ‘n feel have nothing to do with X, but the desktop itself. If you have read past reviews of Null for example, Redhat now has a unified theme that will make KDE apps look like gnome and gnome apps look like kde ones, thus, having a “grand unified theme”
Red Hat had only done so much. KDE apps still act differently from GTK+ apps. Plus, there are many apps that don’t wish to follow GTK+ and QT, and become generally inconsistent with the whole desktop.
Unifying the themes is Red Hat’s quickest solution to the problem, but the main problem is that X11 lacks many widgets. And therefore, Qt and GTK+ don’t look and act the same way because they both do their own way in filling in the gap.
yes, I’m a Null user.
Matthew Gardiner: My Response: GDI is even older. How many times must Microsoft resurect it?[…]
There is many threads where Bascule ridicule and critize GDI.
Matthew Gardiner: My Response: Win32 has nothing to do with the display server. GDI is the display server for Windows.
GDI is part of Win32.
Matthew Gardiner: My Response: This is a truely pathetic analysis. How about you go out, get a **** book and actually read up on X, instead of spouting off ideas you know nothing about. Having programmed using both with widget sets and raw xlib, I can tell you, X is a walk in the park compared to the pain and suffering Windows has.
He isn’t comparing Windows and X. He was listing down the cons of X11. You are the one passing off as an idiot.
mike burns: I still don’t know why NOONE has done ANYTHING about these problems, if you are want linux to suceed and you think X is that bad, put some code where yout mouth is…
I’m a vocal supporter of Fresco. Fresco is made by a bunch of people that want to do things differently. Its design concept is almost similar to that of Quartz.
Bascule: That’s great until you try to run something like StarOffice.
StarOffice is inconsistent on all its platforms, including Windows.
Now, in this case, I have to agree with Bascule. Quartz can really suck up resources, but in the near future, stuff like these would be relative. Instead, vector graphics engines (like Quartz) would be much better for developers.
Quartz isn’t slow. Aqua is slow. They place tonnes of unnessacary eye candy, and make it slow. Quartz, I believe, could be much more faster than X11 if something the level of GNOME or KDE is built upon it.
Besides, isn’t this UNIX talks straying off topic?
actually, I think M$ is doing a good job….. I have had my Windows XP Home w/ SP1 up and running with Apache2 and BulletProof FTP Server on all the time for since SP1 came out…. on 9.x it would have alrdy crashed or been so loaded down that no one could stream media from me anymore, but running XP it has shown no signs of slow down and is running ver nicely by all accounts. Even on my horrible HW::::
566Mhz Celeron II
256MB SDRAM
166 FSB
^^^ All the Linuxs I have tried have slowed down under these conditions after a day or five….atleast X did, there was admitadely no slow down in streaming/web service.
…about the article :
“I believe [operating systems] are viewed as a feature of the hardware, and I think [they are] becoming less important over time, rather than more,”
=> Really ? you should read OS News )
“The days of do-it-yourself are ending. People want things that will provide some immediate satisfaction and that do something they need.”
=> yeah i think too
We all need higher level tools. I mean users AND developers.
“I think consumers don’t care about new features. They still haven’t figured out all the features on the last [operating system].”
=> that’s true IMO
But why ? Just because developers didn’t EXPOSE those functionalities at the right place, or with the correct name. Why again ? Because they don’t have a good place to expose them. Desktops today are too old, they need a lifting. Again, we all need higher level tools.
… about the post “X11 is not gtk orQt”:
“Of course some programmers would say that all good X11 applications should be able to recompile for the toolkit you perfer”
=> some would say that, but to those people i say :
Please ! Please, stop thinking like this. Users DON’T WANT to compile anything. If this is the only way with X11, let’s update/rewrite it !
That’ll be great when developers will have that in mind
X lacks a set of standard libraries from which applications derive their look/feel (or rather, programmers have discarded the original ones and just written their own) Consequently, applications lack the cohesive feel present in other operating systems.
Three points:
first: widget libraries are not X’s concern. X is one layer below widgets, same way as GDI is one layer below user32.dll and Quartz Display Server is two layers below Aqua (QDS – Quartz 2D – Aqua).
second: what “cohesive feel present in other operating systems” you refer to? If user runs classic application in OSX, she gets OS9 look and feel. Similarly in windows, MS Office uses different widget set than Windows. Same with MSIE. Same with Visual Studio (any version, not only .net). Same with any MS Home application. Same with any Adobe application. Heck, quite lot applications have problems with non-default color schemes and font-sizes.
third: there was never “original toolkit”. X’s authors weren’t in business of writing goal, their stated objective was to create “mechanism, not policy”. Athena was written as sample toolkit and was never intended for use by applications – just as a sample “how to write toolkit”.
Yes, there are two relatively popular libraries, and yes, if you only use applications written using one of these, your applications will have a cohesive feel. But just try to find, say, a good web browser that matches the rest of the applications on your system. You’ll be stuck with Galeon or Konqueror… and thus GTK+ or Qt (Or if you really want to, you could do Opera/Motif). Now, find a good graphics application (the Gimp, you’re limited to GTK+ now) and a good Office application (uhoh, out of options) and a good audio editing application, a good media player, etc. etc.
You are saying as if you never seen custom widgets in other operating systems. I have a surprise for you: every developer is free to choose to use any framework for his application. So they use their right. You are also free to not use their application if you don’t like it.
It’s not that this is Linux-only or X-only issue. Ever seen SAP frontend for Windows? Or Reuters client? Thought so. For some reason, “normal users” don’t have any problem with that. The same way, they accept (and expect!) every webpage to look different.
Sidenote: Opera is really Qt application. Qt however allows switching “themes”. One of theme supplied is “Motif”.
X is old. How does its age adversely affect it? Well, this happens in the departments of color and font management. These problems have been nicely abstracted by the toolkits, but again, the problem remains you must use only applications written with these toolkits, or these problems will show themselves.
X’s predecessor was made in 1985 (X10). X has since then evolved. It is “old” in computer-related-time measuring, but it does not mean it is bad. Actually I’m still amazed that in that time someone thought out object-oriented architecture and extensible wire protocol that X is. In original design, everything had to be extension, but in the end they implemented few things in core (like drawing…).
Then there is extension for color management, just nobody is using it. For details, see you X documentation for Xcm.
The font issue – the problem is, that you must have the same fonts available for applications that do not use X at all, for example RIPs, print drivers, etc. Under “other systems”, application creators don’t really have choice whether their application will run with GUI or not.
Solution for this is fontconfig. It is library created by X folks (esp. Keith Packard) to address this issue. This library is X independant for reasons written above, but Xft alone uses it. So does pango/gtk2 and qt3 (with patches). If you have ever seen Redhat null, you would know that this is not issue anymore.
X’s architecture is also relatively outdated, and comes off quite similar to Win32. The main problem is X uses drawing commands which get passed over a socket to the X server. The problem is sockets are slow, and this can result in slow redrawing and overall poor performance, especially on lower end hardware.
Did you do any profiling? UNIX socket performance under Linux is fastest IPC mechanism available. Especially when compared to writing to videomemory over AGP bus. In addition, mechanism used (draw line from a1,a2 to b1,b2) is much faster than writing pixels in software via framebuffer – because it is just command via socket, then command via agp bus and the rest is done in hardware. Saves lot of transfers over slow bus.
If you don’t believe me, try setting your X server as vesa framebuffer. Or try linux framebuffer for that matter, if you object agains supposed X overhead. You will see how much performance it saves, even without profiling.
For more details, see some book on the subject. I recommed Michael Abrash’s Graphic Programming Black Book.
Again, extensions have been made (the shm extension) and toolkits have abstracted it. So once again, you must use applications written with the latest versions of these toolkits.
Nope, xshm is quite old and widely used. Even enlightenment used it, as well as gtk 1.0 (that is not used anymore). If you are using any application that uses gtk 1.2 or qt, they already use xshm.
A superior architecture utilizes shared memory, and has drawing commands processed by another thread in the individual applications. Drawing is done to a shared memory buffer, then this shared memory buffer is given to the server and displayed.
Any architecture that does what you just described is nightmare is robustness departement. If one thread corrupts shared memory, all applications using this display system will crash. Not even Quartz does this.
Naysayers argue that this results in excess memory usage. I have two answers to this:[i]
Nope, Quartz memory problems are from buffering content of every window in system – there are no XExpose events or something similar in Quartz. If you want, you can set up X to do the same.
[i]Look at how much shared memory your X server is using (use ipcs if it’s installed on your system) and furthermore, this point is moot as the amount of memory used is relatively inconsequential compared to the total system RAM available in most computers.
You are conviently forgetting one detail: Memory that is reported to X contains also entire memory of your videocard. It it has 64 MB VRAM, it will report that X takes over 64 MB RAM. Read something about PCI and memory on PCI devices, ok?
On the other hand, have look how much memory takes X on ipaq.
Overall X’s main problem is this… it wasn’t designed very well to begin with, and these design flaws have been fixed over the years through extensions, many of them specific to XFree86, and most of them so new that applications/toolkits have only begun to utilize them. So what you end up with are beautiful new applications making use of these extensions, and ugly legacy applictions which were written far too long ago to make use of modern toolkits.
I disagree – it’s your opinion that X was not designed very well, and it is just because you don’t know what X does. Your opinion is based your experience how different pieces of software interact on your (possibly misconfigured) system and blame X for that.
And please, never ever use Quartz Display Server as an counter-example agains X. QDS is much slower and memory-hnugry than X ever dreamed of (you don’t have to believe me, do your own benchmark).
Yes I know there is lot of OSX enthusiast, but it doesn’t make QDS any faster. As much I like OSX, performance is not it’s strength.
You must’ve been doing something wrong in addition to running an X session while having a server up and running under Linux. As if it wasn’t a bad enough mistake that you ran an X session while having the server up, hehe.
Well, hello… me. I read over most of your post, which came off as pretty much your average standard fare canonical Linux zealotry, with the same tired argument of “If you think arbitrary piece of OSS software foo is bad, obviously you just don’t understand it. I suggest you go and do your own research on why you’re an idiot, because I don’t have adequate information to actually refute your position”
At any rate, pretty much everything your broached was responded to in an earlier message of mine in this thread. I did want to respond to this much though.
I disagree – it’s your opinion that X was not designed very well,
No, the key to good performance from a window server is proper use of shared memory. In the case of X, use of shared memory is handled at the widget set level, instead of being fully abstracted through the drawing library. This is a rather elementary design mistake.
The majority of the applications I use in X don’t support shared memory, many of them passing large amounts of pixmaps through sockets. Many times this will cause the X server itself to block, at which point my system hangs and becomes completely unusable until the pixmaps have finished transferring.
and it is just because you don’t know what X does.
Umm, sure. I don’t know what X does. Obviously if I hate X, I must be completely ignorant of it, or otherwise I’d be singing its praises.
Your opinion is based your experience how different pieces of software interact on your (possibly misconfigured) system and blame X for that.
No, my “opinion” is based on years of use of various X environments, primarily OpenWindows and XFree86, both of which I’ve found to be lacking in performance.
And please, never ever use Quartz Display Server as an counter-example agains X. QDS is much slower and memory-hnugry than X ever dreamed of (you don’t have to believe me, do your own benchmark).
In the memory use department, I’ve found X (with the shm extension) and Quartz to be about equal in their memory use. As for “QDS is much slower”, Quartz on a 500MHz G3 is much, much faster than X on a 500MHz K6-2. There is no redraw lag in Quartz, everything you see has been elegantly and properly rendered.
#2:
“I really think Windows .NET is getting a really powerfull OS which cannot be compared with Win2000 or WinXP… ”
Ah, I love the smell of a non-free OS from our favorite convicted monopolist.
“On the other hand, we don’t have many other OSes…
BSD ? Definatly not, I doubt FreeBSD 5.0 is doing any better (Oh, I like BSD, really !)”
Heh. What’s wrong with BSD? I use FreeBSD. (Would really hate being forced back onto a Windows box).
“Linux ? Just look at KDE3 and Gnome2, ugly and slow, many toolkits, different for standard office users…And they are not stable or feature rich in any way (everything compared to Windows).”
Well, recent builds of KDE isn’t that bad (gcc 3.x speeds it up a bit there). I still don’t get what it is that you like about those Windows-like GUIs, anyway
“So, I really like Windows, I like Linux and BSD but it’s impossible to make a change away from windows before 2004 _no way_ what the open source community is doing…We need better GUIs, better toolkits, X is a joke (and alternatives are rare and/or non-free) etc. etc. ”
X isn’t a joke. Or perhaps I have no sense of humour. (okay, this is the most *liable*, but it’s not my point). X has a client/server interface that connects over TCP/IP which gives for the opportunity to make Window managers, instead of messing all the hardware control into the UI like it’s done in Windows.
“If you feel like changing you get used to KDE 3.0.x, Gnome 2.0.x, X with its old technical sides, having to configure everything for yourself, having to deal with driver problems etc. etc.”
I think that what Windows users (read “yellow dogs!” forget is how little you can actually configure in Windows. And then you have all these options and you say “Whazzat? *I* have to configure *that*?! I didn’t have to do that in Windows!”.
“And from what I have read in a white paper on microsoft.com about DRM it’s not bad if you own legal copies of your software…So far ”
Be afraid … be very afraid
I am saying if Linux is so much better than Windows then it should be able to do the same tasks at a better speed! windows always runs with a GUI since Xp all you have left of DOS is a cripple named Command Line. In Linux I should be able to Run a ftp/web server while I am streaming radio from another server while I am surfing the web nad writing an english report…. Windows can do it, why can’t linux do it better?
I can’t think of anything worse than an über integrated windoze.
IMO the USER MUST HAVE THE FREEDOM TO CHOOSE HIS SOFTWARE
something that will NEVER happen with windoze. And it’s just getting worse, there you have it.
I only wish Linux was easier to use…. that’s the only thing Linux needs: ease of use for the average man who doesn’t have the time to fix problems himself…
That’s why I use BeOS and my MUST-HAVE-NEW-OS will definitely be OpenBeOS
I read over most of your post, which came off as pretty much your average standard fare canonical Linux zealotry, ….
Well, this works both sides. Your post sounds like “My favourite application X written in ’93 doesn’t double buffer therefore X sucks.”. This is standard from people that believe marketing too much, don’t worry. But let’s go back to our business – discussing X and it’s perceived shortcomming – instead of personal attacks, OK?
I’m trying to support with my argument with evidence or explanation, and avoiding any subjective feelings or citing marketing materials.
I’m familiar with major display systems, i.e. X, GDI and QDS too. You don’t have to believe what I’m saying, but when I say something, please do your own benchmarking and then decide, if I was right or not, OK?
Note about profiling: profiling is process of analyzing application’s or system’s performance. It searches for places, where application or system spends most of it’s time. Developers then try to optimize these places (called “hotspots”), making application faster. It is critical to identify these hotspots, because otherwise you will end up optimizing wrong place, wasting your time and resources for little reward.
One important aspect of performance tuning is “performance” versus “perceived performance”. This is well described in Apple’s own “Inside OSX: Performance”.
Also please note, that what I’m writing applies to any software, whether it is OSS or proprietary.
No, the key to good performance from a window server is proper use of shared memory. In the case of X, use of shared memory is handled at the widget set level, instead of being fully abstracted through the drawing library. This is a rather elementary design mistake.
Again – do you have any evidence of this except for your opinion? What you are proposing is rendering every 2D primitive into back-buffer and then moving memory blocks into graphics card. This is very expensive in performance terms, because your bandwidth to graphics card is limited. It is much faster to move small structure meaing something like “draw circle at a1,a2 with radius b using pen object c” or “fill polygon defined with points (a1,a2)(b1,b2)…(x1,x2) using pen object z”. As a bonus, you don’t run into problem with cache starvation that you must account for, when working with framebuffers.
For introduction on this topic, see Abrash’s book I mentioned before. It is really very good book that teaches how to write high perfomance grahpics applications.
The majority of the applications I use in X don’t support shared memory, many of them passing large amounts of pixmaps through sockets. Many times this will cause the X server itself to block, at which point my system hangs and becomes completely unusable until the pixmaps have finished transferring.
Keyword is “The majority of the applications I use”. Maybe your vendor didn’t build toolkits or applications with support for xshm. But this is not fault of X, but of your vendor.
Also, shared memory works only locally, not over network (i.e. only applications running on localhost are able to use it, if you are running applications over network, they will be not able to use it).
Just interested: what kind of hardware are you using? Are you sure it’s not damaged somehow? I’ve never noticed what you are describing. Not even on old DEC X-terminals.
No, my “opinion” is based on years of use of various X environments, primarily OpenWindows and XFree86, both of which I’ve found to be lacking in performance.
Well, I’m not saying that OpenWindows is speed daemon, but that can be said also about other parts of the system. I personally really really hate sun’s grep, especially when it hits larger binary file.
On the other hand, XFree86’s performance is pretty good, when comparing to other window system on the same hardware (note: all thing being equal – it means chipset drivers perfoming the same way etc.)
In the memory use department, I’ve found X (with the shm extension) and Quartz to be about equal in their memory use. As for “QDS is much slower”, Quartz on a 500MHz G3 is much, much faster than X on a 500MHz K6-2. There is no redraw lag in Quartz, everything you see has been elegantly and properly rendered.[i]
Aha, this (K6-2) may be you problem. Are you aware of “MTRR” registers? Intel uses it since PII, AMD used their own, incompatible version, as well as Cyrix. They have huge impact on performace – as I already mentioned, bus bandwidth is problem, MTRR helps it somewhat. Be sure to setup it correctly (XFree 4 does it for Intel processors automaticaly. Not sure whether K6-2 does have MTRR at all).
About “redraw lag”: please note, that is takes longer to draw in first place. But after drawing, QDS preserves window content, X [i]by default discards it and asks application to redraw exposed portions when necessary. See your X documentation on buffering and enable it, if you are so inclined. Also see my previous comment about XExpose.
About your hardware comparation: isn’t it common among mac users to claim, that MHz rating doesn’t apply, because PPC chips are much faster that PC clock for clock? Same with memory: every mac user says that you need at least 256 MB RAM for decent performance. Linux/X users scream like mad that 64 MB is not enough for X and KDE and that they should upgrade to 128 MB. Double standards?
Well, in my comparation (powerbook g3 450, ati m3, 256 MB RAM; ibook g3 466, ati m3, 320 MB RAM; white-box pc p2-300, intel bx mainboard, nvidia riva tnt, 256 MB RAM; everything pretty much low end hardware as you can see), PC running XFree leaves Macs with OSX behind in the dust. Please note that I didn’t evaluate how smooth it was rendered, but how fast it was rendered. See comment about “performace” vs “perceived performance”. Also, don’t believa my words, do your own benchmark.
In a User-oriented environment, isn’t perceived performance more important than actual performance?
I’d rather see things redraw correctly and quickly and see updates in real-time (you know, like when I delete a file in MacOS9 or BeOS, the icon vanishes RIGHT THEN instead of on OSX or Windows where it vanishes… sometime later…)
I’d rather the user-centric operations worked faster than the things such as file indexing (do I care if it is ten seconds faster or slower as long as my user-actions are not affected?).
> > If you have read past reviews of Null for example,
> > Redhat now has a unified theme that will make KDE apps
> > look like gnome and gnome apps look like kde ones,
> > thus, having a “grand unified theme”.
> That’s great until you try to run something like
> StarOffice.
I’ll reply to both. Appearance it’s not the matter, behavior is. In Windows, every widget is a window, and every window is an object, an instance of a window class. Inheritance is done by overriding the “window procedure” (the callback that handles messages sent to a window), in a way similar to overriding virtual members
Windows has this great function called DefWndProc(), which is the ancestor of *all* window classes. Let’s say one of Widget Programmer Joe’s users bought a spanking new mouse with a wheel, and wants Joe’s programs to support it. Does Joe need to modify his toolkit to support mouse wheel messages? no, because if an upper class doesn’t catch mouse wheel messages, DefWndProc() will translate them into vertical scrolling messages, that every window class is familiar with
Does Widget Programmer Joe need a special version of his toolkit to support exotic languages? again, no: he just upgrades his toolkit to Unicode, and it *instantly* starts to support Asian alphabets and such
Windows encourages you to do the less work possible: the more you let DefWndProc() handle, the better. Now compare this with X toolkits. A bit different, ain’t it?
> > as for the reason for the different widget sets? why
> > not?
> Because it’s ugly.
I’ll add that this concept (different toolkit <=> different appearance) is Unix-specific braindeadness. You’ll note that Windows toolkits strive to look and feel as native as possible, no matter how “alien” they are under the hood. Again, because Windows has system defaults for this
> > My Response: GDI is even older.
actually, I don’t know. GDI is based on a painting program for DOS, ~ 1981, but I couldn’t find a good history of X11 to compare. But (Win)GDI is “off-topic” here. It’s WinUSER we’re talking about, i.e. Windows’ user interface subsystem – they share and interoperate a lot, but they’re separate entities: essentially, GDI and USER are respectively client-side abstractions for server-side DDI (interfacing display devices) and HID (interfacing user input devices)
We could say X11 implements GDI (partially – see the need for separate servers, like the font server – and not in a terribly efficient way), DDI and HID, leaves a small part of USER to be implemented by the window manager, and the rest (and there’s a LOT to it) is left to be handled by individual toolkits, and this is precisely the problem
> Evidently you missed the connection, which was that
> drawing commands are passed to the display server from
> the client applications, rather than the clients drawing
> into shared memory buffers, thus clients handle redraw
> requests, etc.
actually, that *is* the way it works. You’ll note that every GDI object that contains structured or string data (e.g bitmaps) is represented, client-side, by a handle, that the server translates to a pointer in its memory. *All* memory-move operations (BitBlt(), for example) are done on the server side, and the client merely instructs the server how to do so, with minimal passing of data
Only passing text strings may require some significant transfer of data between client and server, but in the current implementation the server is a kernel-mode subsystem, so, in the context of a (system-)call, it can reference strings in the client’s memory directly
> Obviously the Win32 API is complete and total crap.
it has its few bright spots 😉 but the underlying architecture is unarguably better than the programming interface, except in a few cases (long live GDI+!)
I suggest to have a look at ReactOS ( http://www.reactos.com/ – for “.COM BAD!!! .ORG GUD!!!” types: it’s 100% non-profit free software) – which I coincidentally happen to work on 😉 – and start learning what Windows is *really* about, under all that bloat (to be fair: ReactOS only has partial GDI, rudimental USER, and no DDI or HID at all. Only basic “hello world” stuff will run, and not look too sexy, either. But the team has been busy with other more vital parts of the kernel to really do some work on it)