Ask Slashdot: Comparing the GUIs
Hanno asks:
"It seems to me that some folks think that X is outdated and should be replaced. I know of the Berlin project and the announcement of Amiga to use the Linux kernel seems to be another candidate of a non-X windowing system (if the new Amiga is ever to happen). I wonder about the reasons. With this question, I don't want to start a discussion if X should be replaced or not, but I only want to find out what's bad about it and where other solutions are better. And I don't want folks to simply bash X, just some solid, technical reasoning. Which other windowing system (on which other operating systems) are out there and what are their pros/cons compared to X?" All I ask is that you folks PLEASE restrain from the rampant advocacy. I think this is a good question that might start a thought provoking discussions. Have at it.
<OFFTOPIC>First, I did not leave the Berlin Consortium for any political reason, and am still very in-favor of what they are doing. Basically (to make a long story short) I significantly over-extended myself. For example, right now I am:
- I am working "full-time" as a software developer for a commercial software firm. (No... not M$)
- I am involved in three theatrical productions:
- I am playing Constable Loche in "The Music Man"
- I am playing Herr Sessman in "Heidi"
- I am runnig audio tracks for "Bye Bye Birdie"
- I am involved in 3 Linux related computer clubs:
- I am marginally involved in Orange County Linux User Group
- I am (or at least was) reasonablly active in Unix User's Association of Southern California
- I am supposed to be in charge of the Linux/Unix SIG for North Orange County Computer Club (If anyone is interested in taking over this group, please let me know)
- I am going to be beta testing Railroad Tycoon 2 from Loki Software
- and... I'm trying to get back into school to finish my BS
So, basically, I was just too busy to put in any more time... </OFFTOPIC>In response to Jordy's remarks:
Yeh... But I don't see this so much as an issue. X is still (and always has been) "source-code availible" even if it wasn't always necessarily "Open-Source", so the code has always been availible for peer review. As a software developer, I feel if X was designed right, I shouldn't have to modify X in order to make it suit my needs. Yes... but (at least up until now) they have always made it "source-code availible". I really have no desire to modify X itself, (as a developer) so I see this as slightly irrelivant. (How many Windoze/Mac users have the source-code for their respective GUI?) I don't see the backward compatibility as a major problem, The big problem is limitations of the X protocol because of how people thought about GUIs 10 years ago... This is really an issue with TK, the standard X toolkit, and really isn't related to the X protocol itself. There doesn't need to necessarily be a standard way of looking at GUIs and widgets, which is what different toolkits really provide... They problem is that they need to be consistant with each other in how they behave, and how they are user-configurable... Here I totally agree, but I think I'm looking at it from a different point-of-view. I see this as a problem because how the X-protocol "quantifies" the "world". (see below where I discuss server-side GUI widgets.) Here I also agree, but I'm looking at this from a different point-of-view than most of the people who responded to this point... In X, I have one window manager (running at a time) that governs how the window borders are displayed. The user has (for the most part) alot of control with this, but the remainder of each window is decorated according to the GUI toolkit that the software developer (not the user) used to create the GUI. Generally the user has little or no control over this. GNOME (or more specifically GTK) is starting to work around this with theming capibilities, but it is implemented at a level well above the X protocol, and consiquently, it only affects GTK applications.So in short, I'm not saying that there should be one "true interface" that all GUIs should be modeled after, but rather that the user should be able to select a style of GUI that (s)he is comfortable with, and have all the apps reflect that. (i.e. I could want all the "File" menu text to be in red... in all my programs.)
Additionally, a few things that Jordy didn't mention include:
- X only supports black-and-white (or more specifially "two-tone") fonts... This might sound fine to someone who doesn't know alot about graphics rendering, but this totally precludes the possibility of anti-aliasing, which can make text much more readable... especially with smaller fonts.
- Besides the concept of a "window" X has no concept of GUI "widgets" (like buttons, scroll-bars, edit boxes, etc. ) Whenever you press on a "button" (that, lets say, depresses when you press the mouse on it) the server sends the press event accross the "network" to the client, who has to send back instructions over the "network" for how it should be redrawn to look depressed. For something as trivial as a button press, this is a terribly in-efficient use of network bandwidth. With something like Berlin, the logic of how these buttons respond can be sent to the server, so all the GUI look-and-feel issues can be handeled on the server, then it simply needs to tell the client: "I've been clicked on... do whatever you are supposed to when I'm clicked on..."
- X lacks real support for any 3D, video rendering... esspecially WRT hardware accelleration... the typical X way to do this to hand off a chunk of the screen for rendering to a program who knows how to handel the acceleration itself, not only is this a cludge, but it may tend to introduce security issues.
- no support for alpha channels (semi-transparency)... or other similar effects.
- (I may be wrong on this last point but...) There doesn't seem to be any global color-correction settings in X... for people in the publishing industry, this could prove a real headache.
I'm sure there are other issues, but this should get you started...Thanks again to Jordy (and Graydon, and all of the gang) who are helping with Berlin,
Loren Osborn
J.
damned vulpine http://sb.drtwister.com/
1) you don't have anti-aliased drawables (e.g.,
arcs) under X;
2) anti-aliasing of fonts does not exist under X;
3) you can't do font rotation under X;
Direct alpha-channel support would be another
nice thing to have. Someone else mentioned
notification upon color map changes, and that,
too, would be good.
Umm no I understood that they really never do intend to have a OS 9 b/c there alreadyh is an OS with similar name out there.
Marriage is the "pseudo-ethics" that cloaks the messy truth of sexuality in the raiment of propriety -- it's "Don't Ask,
We are obviously capable of understanding and navigationg 3 dimensionally but it was my impression (coming from some articles on neurology I think but It was so long ago I hardly want to say anything for sure) that the eye reported back images in 2d and the brain created 3d as needed. We are much better at 2 dimensionally processing being the point. We obviously can imagine and use 3 dimensional ideas, but we are better with 2 dimensional ones. This of course being part of the reason that most everything is done 2d, maps, language (written), most computers apps etc. You don't need 3d to walk across your living room. You move only in 4 possible directions. You do not move up or down. You need 3d in order to not hit the roof. How often do you need to do that?
The preceding passage has been checked for spelling, you will find no sentence without at least one mis spelled word
don't humans think in 2d (I mean we can understand 3d but we actually interpret images in 3d)? I think naviagting a 3d desktop would be difficult as it would involve allot of complicated spatial memory. Has someone adressed this? I'm sure it would look damned cool and be fun to play with, but would it be harder to understand and use?
The preceding passage has been checked for spelling, you will find no sentence without at least one mis spelled word
The latest news from Cupertino says that Quartz has support for all (or almost all) QuickDraw calls, to make things easier for developers and to allow people to run old applications. After all, Apple spent such a long time finessing the QuickDraw API that it's a shame to just ditch it. (And it's also a really elegant API, if I do say so myself...not that it couldn't be better, but it's very nice). The PDF thing is just Apple seeing the light.
Oh, and DPS was not dropped ONLY because of licensing issues, it was also slooooow. Think about it, a nice, high-quality laser-writer takes it's time imaging complex pages WITH A HARDWARE-BASED RASTERIZER! Just imagine how slow things would get when you have a few windows open. To make things really fly, they'd have to put a couple of those chips on either the mother-board or the graphics board, and THERE Adobe makes a killing.
Now, here's a thought. Can someone come up with a windowing system that will ditch the dependence on pixels? I'd like to be able to say "I want my icons an inch square, and I want my text to be 12 points" and have that really mean something at ANY resolution. I don't want my 12 point text to become 12 pixels high and darn-near-unreadable at 1600x1200 - I want them to be 12 typographic points high (that's 12/72's of an inch tall) and VERY smooth. Is there such an animal? Was NExt like that?
XFree86 doesn't support the RGBA color scheme, does it? Personally I think it would be *awesome* because then, theoretically transparent terminals would be easily possible, right? Although it would either require 32-bit color or a soft transparency engine to calculate the final color considering all transparencies... but still that would be nice to have.
the real at&t mix
I don't know about anyone else, but *I* for one am getting tired of the 2D desktops. Virtual desktop space is great, but give me 3 dimensions. After all, I do have this nice little 3D accelerator card just sitting here rendering 2D Enlightenment windows. What a waste of money. I _think_ there is a 3d window manager out there written in OpenGL, but I don't have a link. Perhaps someone else has a link?
this sig limit is too small to put anything good h
In those days it was even a case of write your own toolkit. No such things as drop down menubars, just a mouse popup. To create a menu, first create a standard popup, fix it in place and go from there, You even had to do a lot of your own background buffering for repainting of windows after the menu was hidden. You didn't even have generalised scrolling areas - only text. Want a graphics scrolled area - write your own.
It was fun (I was at Uni at the time) but there is no way I would want to use Plan9 for a commercial application. Just to write a file manager it too 3 of us 6 months of heavy hacking.
The one thing that I loved about the Plan9 stuff was 9term. Love that cut & paste of the entire window contents, not just the last command line. Also, sam was a pretty decent editor too.
Life is complete only for brief intervals in between toys or projects -- John Dalton
Implementation of an API using an OO language does not make the API OO.
MFC is simply a thin wrapper around Win32. That is why MFC and Win32 are consistent!
In short, C++ code is not necassarily OO code.
Second, that this topic is growing really quickly and in the time it took to compose this, much of this has become redundant - at least I have a link to another copy of the Unix Haters Handbook, because it just seemed appropriate to mention the canonical criticism site about Unix. This is from the X Windows portion, specifically The X-Windows Disaster; here's a brief summary of highlights.
- Confusing user interface/Too much versatility, leading to overly complex or impossible interprogram communication: "cut-and-paste never works properly with X (unless you are cutting and pasting straight ASCII text), drag-and-drop locks up the system, colormaps flash wildly and are never installed at the right time, keyboard focus lags behind the cursor, keys go to the wrong window, and deleting a popup window can quit the whole application".
- X is a non-extensible window server - in contrast to NeWS. X was based around the concept of a dumb graphical terminal, and it uses a lot of data to achieve that. In contrast, NeWS and Java offer a somewhat more intelligent terminal interface to the client, and they make better use of less data.
- X programs have lots of nasty user interface problems, including X configuration.
- (This is about halfway through, then the complaining gets more heated and lengthier, like sitting in a Unix Users Anonymous group and hearing about how someone hit the bottom.)
- X has bad hardware support - This is out of place, isn't it?
- X isn't device independent, or maybe has a limited graphical toolkit? "Drawing arcs is probably impossible in a portable fashion."
The NeWS link includes a complaint about the constant reinventing of the wheel necessary to deal with the toolkits: if you need to invent a layer of abstraction over and over, why don't you just call that the base toolkit? This makes me wonder if the choice of toolkits is lost upon the author (Barry Shein) or something; you _don't_ send e.g. gtk or tk primitives over the network for display, do you?Allowing alternate display primitives makes some sense to me; adding, say, an OpenGL extension simply to incorporate double-buffering seems like overkill. But then, how, outside of an extension, can you make use of an accelerated card, without processing the lowest-common-denominator drawing primitives? Using the X protocol, can you exploit accelerated hardware to anti-alias text and graphics, for example?
Other criticism I've heard that the X protocol should take advantage of the locality if the client and server are operating on the same machine. This only makes much sense to me if the cpu overhead in dealing with the network protocol is noticeable; being able to transparently work from another machine is too nifty to throw away.
By a coincidence, I was speaking to a more X-literate friend (hi Eric!) about this last night. My knowledge is badly limited; he had to explain the purpose of the window manager to me. So please, if you want to flame me, be brief.
I don't have any "sound technical reasoning" to bring to the table, I just wanted to point out that in the little technical brief put out by Amiga fairly recently, they stated that they *would* be using X, and adding their own GUI system on top of it. Why let X go to waste when it's so easy to build on top of it?
MoNsTeR
If you were a "nomadic user" you would speak differently. X windows saves me here.
This has nothing to do with X. That is an issue with XFree, the X server most people use these days. I believe the topic of conversation is why X itself should be replaced, not problems with a particular X server. Also, XFree86 4.0 fixes this anyway.
---
"'Is not a quine' is not a quine" is a quine.
"'Is not a quine' is not a quine" is a quine.
Quine "quine?
http://www.cc.foi.hr/uh/x-windows.html
This is an except from the Xwindows chapter of the "Unix Hater's Handbook" (the full text of which is not available on line). Perhaps folks who have a deep understanding of the current state of the X protocol and the X client/server model could comment on which of these criticism can be addressed (or have been) within the framework of X, and which really are fundemental architectural issues.
I also wish there was support for a wider range of video hardware
I think to "Do the Right Thing" when it comes to greater video hardware support under Linux, a transition will be needed, that will be the move from video support in the Xserver/SVGAlib/whatever, to video support in the kernel. That is, the direction that things are going with framebuffer support and projects like GGI. Then it'll be possible to experiment with new directions for the Linux interface without having to worry about recreating all that hardware support each time.
I think that the 3D enviroment where you go through rooms to get to your apps is not such a Good Idea, but since all the buttons and widgets on your screen are 3D look alikes, why not use some of the 3D video card capabilites to draw the widgets. This way you can place the light source where ever you would like on your desktop and the button, scrollbar, widget ... etc would be highlighted and shadowed in real time.
This kind of enviroment would allow for much more interesting themes. Themes that would include the capability of surfaces and transparency in widgets and allow for types of lighting like sun light or incadescent. You can even have some real shadowing when moving the windows around on your desktop.
Hey while we're at it, why not throw in some physics, so that when you minimize a window, the icon could bounce on the bottom or your screen as if it were made of a selected material. Or have gravity in a desired direction.
ayottesoftware.com
Something I don't get about this discussion: can someone give specific examples of apps where the clueless (e.g. me) could see X obviously running slower than Windows?
I've always found Windows to be pathetically unresponsive, even on faster hardware -- one of the reasons I've never had patience for it. At my job, the management buys higher-end Intel boxes for Windows than for Unix, because Windows is unusable w/o a bleedingly fast machine.
So what's going on? Can Windows be both fast and unresponsive?
According to the FAQ :
"It supports operating in both the normal client/server mode, and
in a special "client linked into the server" mode for very low memory
applications."
So I suppose they mean client/server in the "networkable" way.
:wq
Another misconception is that X can't support TrueType fonts, or can only do so kludgily. Not true; you can compile TrueType font support directly into the display server; it becomes no different than PostScript font rendering. Stock XFree86 4.0 is supposed to ship with TT support built-in. Antialiasing (and possibly font hinting, not sure), however, is a real problem.
That being said, I'm no great fan of X myself, in particular the API. Just what I've seen from reading GDK source is monstrous. It's very true that a lot of important features were not provided for in the initial design and had to be "bolted on" afterwards.
Finally, I don't think YAX has been mentioned yet. The idea is similar to Berlin, which has been mentioned, and it's a very interesting project. They've only released an API so far, but it sounds nice: From their description it's actually rather Be-like. An actual implementation is apparently in progress and they're also in the process of porting GTK to it, in order to immediately give it a set of available applications.
Steve 'Nephtes' Freeland | Okay, so maybe I'm a tiny itty
While X might be chatty, ICA (Citrix), although it is probably much less chatty, is server-dependent, as the desktop display is run from the server machine, and just needs to communicate window changes to the client and mouse and keyboard actions to the server (Server: the WinNT Server box running Winframe. Client: Xterminal, Mac running Citrix client, Win16 running Citrix client, X).
Play with VNC, whether you're hosting (or serving) it from a Win32 box or Linux a little bit over a remote connection... (http://www.uk.research.att.com/vnc)
for a better analogy to what Citrix and pcAnywhere do compared to X.
Reminds me of the 3D GUI on the "unix" system in Jurasick Park. It seems I've seen some cheap immitaions of that floating around since the movie.
[snip]
Am I wrong? Why? I'd be happy to accept your challenge - you've described exactly the reason I've stuck with KDE as my X environment. It has lots of friendly, consistent hot-keys which were similaur enough to their Windows counterparts for me to "discover" them without having to read any manuals. Try it, you might like it.
You are guilty of doing the same thing as most of the other people in this thread - confusing X with the GUI. X is NOT a GUI. X is a platform for displaying rectangulaur pictures on your screen, and handling events from input devices. That's it!
X may or may not do a good job with it's designated task, but complaining about it's faults as a GUI is like complaining because your apples don't taste orange enough.
KDE is a GUI. GNOME is a GUI. If you want to complain about GUIs, try them and complain about them - criticism helps them improve. But please, please, please stop confusing the issue by complaining that X lets you use different styles of programs at the same time. If that really is so horrible, then just don't do it! Go without! But don't dis X for giving you the option.
Host your own websites, anywhere!
I don't know if it would be possible to create "X light" by removing the client/server stuff, or whether much would be gained by doing so.
But what you propose (a GUI w/o X) could be accomplished by porting e.g. Qt and the KDE libs (or GTK+ and the GNOME libs) to another, simpler platform, e.g. SVGAlib or GGI.
Voila, you'd have consistancy (nothing would run that didn't use those libs!), speed (fewer context switches, no networking slowing you down), etc. etc. But you wouldn't have access to all the good 'ole X apps, which is a serious drawback. So serious that very few developers think it's worth the effort. The ones that do, and care, are probably working on Berlin.
W.r.t. to this whole networking thing - I think it's a grossly underrated feature. I've used it extensively, especially when I'm squeezing the last few ounces of performance out of old hardware, by creating X terminals. Being able to run an app like Netscape 4.5 from a 386 class machine is IMHO not something to be sneered at!
I've also made good use of this feature at work, where my windows-bound co-workers run apps off my machine by using Exceed (a Windows X server).
I'm perfectly happy with the performance of X on all the machines I use (well, the 386s are a bit slow, but that's to be expected), and have repeatedly made good use of X's networking features. Having a powerful, stable, standards-compliant and most of all flexible operating system is what Linux is all about (technically speaking - freedom is also very important). X is IMHO a valuable part of that.
But each to his own - you wait for Berlin (or help them hack it), and I'll continue thinking up new ways to take advantage of the power already on my desktop.
Host your own websites, anywhere!
I don't know standard wise but "lbxproxy" is available in XFree86 3.3.2. You run lbxproxy on the remote computer and makw it connect with your LBX enabled X server. You can use "xdpyinfo" to see what is supported by your Xserver. Even the latest Exceed X server supports it. (But I don't have it) But I had difficulties to set up my MIT-MAGIC-COOKIE so that I don't have to do "xhost -". (I stop to use it. termcap or curse interface rules.)
The IBM Aptiva's Radioshack used to display eons ago used to have some sort of desktop enhancement package as where the Windows 95 desktop's icons could have an "animated" icon when the mouse moved over them.
Stan "Myconid" Brinkerhoff
SB.
The same people who brought us LessTiff also have been working on a project to replace X while still trying to preserve the good things about X. They seem to have some lib ideas for their Y (pronounced OO) Windows.
:-)
http://www.hungry.org/products/Ywindows/
Another note: if X is so dated and clunky, what about SGI? I thought that IRIX uses X. I can't envision a much better media OS! Maybe they know something I don't. Hopefully they will share
--God is a crutch for the codependant!
http://www.secularhumanism.org
. Penguins Surely Ca
Patterns exist everywhere; there is an order within Chaos.
I work very well spatially. Manipulating both imaginary and things I have seen within a 3d space within my nogin, its all about gaining a perspective, one shift and you might see something you didn't before.
A parallel would be, we are living on one side of a rubix cube, whats going to happen when we realize there is more than just this one level.
If no one creates it .. in time .. I will. Keep'n it real, -Malachi-
"Life is all about strategy, mathematics and psychological perceptiveness."
Many of the advantages that made X so powerful in "the day" may no longer apply. X has an extensive security mechanism that exists more or less to provide authentication/authorization in an insecure, networked environment (such as a bunch of X terminals connected to one app server). While this environment does still exist (primarily in university settings), "most" users of X only have a single display to work with and won't need the security considerations X offers.
:)
X tends to suffer from what I call "Win32APItis", a huge assortment of functions of dubious utility (it would be "GTKitis" if it weren't documented). Other projects, such as Berlin, seem to have learned this lesson -- it's possible to make an entire windowing system with the simplicity of a "regular" toolkit. Any step in the direction of a less stressful API is therefore a step towards unification of look-and-feel, since developers won't be compelled to write entirely new toolkits to scratch the itch of hating Xt/Xlib
While some of the various extensions that X is now sporting (patches for TrueType support, GLX, and printing) are useful accessories, ultimately they reveal X's age. A lot of the features a modern GUI designer would like simply aren't that easy (or sometimes possible) to implement.
All this isn't to say that we just need to chuck X in the garbage can and start supporting Berlin/GGI/whatever; I would prefer to see a thin (hah) Xlib wrapper on top of such projects, in parallel to ports of GDK or Qt or whatever people like. X has some very strong advantages, which should not be overlooked.
Nothing worth doing is worth doing today.
Anyway, this is not a problem of X per se, more of an issue with specific X server design. Accelerated X has a technology called Velvet Mouse, which addresses precisely the problem you describe - I quote from their web page:
"Velvet Mouse" Accelerated-X Display Server features smooth mouse operation, even when the system is heavily loaded. Other X servers have a tendency to ignore mouse movements and other inputs for so long that when it does get around to servicing them, the movements are large, resulting in a "jerky" cursor. Tacky.
Yeah, Accel X is a commercial product, but it demonstrates that it's an implementation issue, not a fundamental design flaw.
I don't know wich of these parts are part of the server and what is the window manager.
But I would like to see some sort of clipboard that is similair in use to the one Windows uses.
What I mean is that I don't want the marked text to be in the clipboard.. I want the part that I said Copy or Cut to be in the clipboard.
As an example.
I go into a document and mark a section that I want in another document, I then select to copy it. I go back to the document, mark the section I want replaced and select Paste and that should replace the currently selected text.
In X today I have to do this.
I go in to the document where I want the new text to appear. I select the part I want to be replaced and deletes it. (making sure I remember where to do the insert)
I go into the document I want to copy from and mark a section that I want in another document. I go back to the other document and pastes the selection. If I am so 'unlucky' or un careful that I happen to check my mail and accidentally marks a section in an email that is what shows up in the document.. That stinks like hell.
And I sure would like some kind of unified printer control as printer control is probably the thing that sucks the most in linux/unix.
Given that the X Consortium hasn't existed for several years (1996 ?), you're well and truely behind the curve of knowledge.
I can't be bothered to argue the rest...
I love my KDE gui -- I'm a lot more productive with it than I am with NT or MacOS.
But X itself is a little slow. If you compare running a remote app remotely over X to running a remote app using something like Citrix's terminal server or pcanywhere, X is kind of a dog.
My background has very little X programming; I am not interested in GUIs or graphics. That said, here is my 2 cents :-)
1. What radical mods? If you mean to fix the other points, they don't sound that radical to me.
2. Seems like a non-issue to me. Not only do they have more to lose by ditching Linux and *BSD, but said communities can continue with the existing releases, as they threatened last time.
3. Dumping everything prior to R6 would be fine with me, but how much bloat does it really add? Even if it adds a full megabyte of code, how much of that code actually executes?
4. I don't see this at all. If the core libs were OO only, other programmers would suffer. If they are going to be in both OO and non-OO, then one will be better than the other. And pure OO is not realistic. Some things work better in OO, some don't.
5. Don't understand the complaint. Is there an alternative to one lib per language?
6. No particular comment. I have never noticed sluggishness, even on my old 486. Maybe we have different standards.
7. I do not like consistency for the sake of consistency. I don't want all programs the same. Fvwm does fine by me for most things. Any enforced consistency would stifle new ideas.
What I like about X is the separation of components: display server, client, core lib, toolkit lib, desktop lib. There's a flexibility and vitality that would be lost if everything were done the Windows or Mac way. I suspect there isn't another creature out there as flexible as X. Dropping R4 and R5 support would probably be fine with 99.99% of the programs out there. The things I hear about 6.5 sound like good evolutionary improvements
I suppose I let it bother me too much, but your worries about consistency really puzzle me. The world would never change for the better if consistency were the driving force. I would rather have the flexibility of X than the so-called consistency of Windows and the Mac.
--
Infuriate left and right
1) Bullshit. Anyone can join XFree86, who wield substantial influence.
I don't know what XFree requires of its developers, but the first point is that requiring anything at all slows down development.
However, the XFree86 guys have another obstacle in their way which is that they have to comply with the X standard. To join the consortium that defines this standard, you do have to pay money. Before calling bullshit in future, I suggest you try reading what you are replying to.
1) Bullshit. Anyone can join XFree86, who wield substantial influence.
I don't know what XFree requires of its developers, but the first point is that requiring anything at all slows down development.
However, the XFree86 guys have another obstacle in their way which is that they have to comply with the X standard. To join the consortium that defines this standard, you do have to pay money. Before calling bullshit in future, I suggest you try reading what you are replying to.
Yup, XFree86 3.3.4 (you might wanna wait for 3.3.5 which should be out RSN). The SVGA driver will support the S3 Trio, the only catch being that 15/16 bit modes may have a glitch... (one of the clocks on the card being miscounted in 15/16bit mode? Something like that...)
Bringing to Linux PM would help Linux kill
winblows. What killed OS/2 was IBM non
willingness to support it for Joe Blow.
I'd live with it even if it wasn't as long
as IBM would support it. Judging by the past
we'd be better off with an open source PM.
"I love my job, but I hate talking to people like you" (Freddie Mercury)
What? What's XCopyArea there for?
"update/validation regions"? What the heck is that? Personally, I only redraw what the Expose events tell me I need to redraw, if that's what you mean.
Pierre Phaneuf
[fwvm / Windows look]
Errm - nobody forces you to configure fvwm to look like Windows... Before switching to Window Maker, I was using fvwm2 for two years and it never looked even close to Windows...
Ciao,
Argathin
It isn't a matter of cost or performance, things are moving so quickly that performance issues are mute
The exciting thing about computers is trying something new, trying to change the way we do and think about things, for the better
Things like 3d monitors (holographic displays?) and 3d input devices will follow quickly if the technology is worth adopting.
Sure we won't know if it is better (aside from eye-candy) until we try it. And I sincerely doubt that it will initially be better than GUI, just as initially GUI had little to offer above the commandline (remember X's initial function in life was to display xclock and a couple of xterms! No Window Manager even! Just as a GTK/Enlightenment desktop(example, not intending to start a war) would seem amazing and jam-packed with information to someone running one of the first GUIs, so too will a 3D gui of the future look amazing to us now. The point is it is a matter of familiarity and expression of ideas in a new medium, not "what can I picture a 3d gui being now." Just as none of us could imagine 'drag and drop' if we had been doing terminal stuff all the time, I am sure a 3d gui would bring forth new concepts when we begin to play with it.
NB: I am not even saying GUI is better than command line, but I do say it compliments it well. Imagine, then, using command line with 2D with 3D, I can't help but imagine it would be very powerful and be able to provide even more interaction than 2d gui and terminal stuff does now.
Comparing the other windowing systems (Win/GDI, Mac, etc.) is like comparing a PeeCee to a UNIX workstation or a toy yard tractor to a back hoe.
X makes graphical client-server work. Other models that I've seen vary from marginal (WinFrame) to pretty schnazzy (QNX-Neutrino).
WinNT, etc. is not even in the game when it comes to this aspect. If I had a nickel for every time I had to run into the server room at a client site to do something at the console on an NT host I'd be as rich as Billy Gee. With a real OS: gee, just telnet in and/or export your display. It ain't rocket science.
Comparing GUIs, well that is just look and feel. Windows sucks, imnsho. Great way to rip neat features from other GUIs (notably NeXT) and then screw up the implementation. It's one fugly ucker. OS/2 WPS was butt ugly in a Motif kind of way (ugh!) but at least it did the object oriented desktop environment properly.
The Mac OS is very refined for look and feel - so much so that I use the E-Mac GTK/E-themes on my personal machines.
BeOs is cute looking. Grates on my nerves after a little while, kind of like Rasterman's funky E themes. Looks pretty but functional?
r@m
I'd like to be able to say ... I want my text to be 12 points. I don't want my 12 point text to become 12 pixels high and darn-near-unreadable at 1600x1200 - I want them to be 12 typographic points high (that's 12/72's of an inch tall) and VERY smooth. As a visual designer, this would incredible! i would LOVE this. the only problems i forsee is that with switching from bitmappped windowing to vectorized windowing is that you would leave behind the nice thing about high resolutions: huge desktop real estate, since everything would be the same size no matter your resolution (just finer quality). great idea though
-- adraken
I have read somewhere that this is because in Windows the mouse pointer is the highest priority process in the system. In X it is of normal "niceness" but as another poster has pointed out it is a simple thing to change if you don't mind all your other processes grinding to a halt every time you move your mouse.
"fvwn isn't the prettiest wm out there so don't use it" ??? I don't think so. fvwm is fast, light, infinitely configurable, and nice looking enough as far as I'm concerned. for actual work, I care more about configurability, speed and stability, than about pretty dressing. with fvwm2 *and* my configuration for it, I'm more productive than with any of GNOME, KDE or win*. the windoze GUI is a joke as far as I'm concerned... it wastes way too much space with window borders, and doesn't even have a way to move a window behind the others to get it out of the way w/o minimizing. or if it does, it's not immediately findable.
We had NeWS which used DPS as base, rendered by X. Java is kin to DPS, and XML is becoming second cousin. So is the issue Graphics or the Transport?
It appears to me that Transport should be fixed first, since we can go back to NeWS in a rather painless way, and get a better transport to begin with. And then all of X can slowly be replaced by NeWS and we'd be ahead where we'd have been in 1987 if Gosling had his way instead of MIT and DEC.
Probably not even worth $ 0.02 but there it is....
Sinan
You've [Jamie] made some excellent points -- the
same points you've made for years. The trap you
point out though is so easy to fall into that
you fall in yourself. "Mechanism not Policy"
isn't a fault of X, it was the feature that made
it possible to become a standard! Standards
basically suck, but lack of standards sucks a lot
worse. I've lately been working on Win32 which
is also a standard and sucks at least as badly
as X, but in different ways. (Compare the event
model between X and Win32 for example.)
To all those people bitching about X taking a
few dozen megabytes of RAM all I can say is that
X doesn't pick your desktop themes. If you want
to put a TrueColor background image in every
window, you've got to expect X to store the bits
somewhere. (Also, there are a lot of apps,
some poor, some good, which create huge backing
stores for which X gets blamed.)
The last point I'd like to make is that X is
an example of the "Worse Is Better" problem, but
it is one of the perverse exceptions to the rule.
X is worse because it's better -- a great shining
example how bad it can be when the better thing
wins. (There are tremendous lessons here for the
Gtk and Berlin groups. *Learn* from history.)
Anything as universally used and as critical as
a windowing system is going to suck at something.
Live with it -- or show us the code *and* a
solution to the legacy code problem.
Using your "logic" we might decide TCP/IP is a ...
total loser too. I mean what a lousy standard.
There are at least a dozen different methods
to just transfer a file -- FTP, HTTP, telnet
upload, Gopher, rdist, tar over rsh, rcp, NFS,
DFS, TFTP,
Just because you re-define a word (X11) to mean
something different than the designers intended
doesn't give you the wisdom to pronounce it a
failure.
X is a pretty decent standard. It definitely
needs some redesign to fix today's problems --
optimize for high speed local multi-processors
with huge memories for example. The lack of a
user interface standard is a problem that can't
be fixed by changing X. The only solution to
that problem is to prevent people from designing
new toolkits.
BTW, the commercial Unix community *has* a
standard user interface toolkit. It's called
Motif. You don't like that? You want to have
a different toolkit? Well, then don't bitch
because X has so many tookits!
How about XNX - XNX, Not X-windows?
K.
-
How come there's an "open source" entry in the
-- Proud descendant of semi-nomadic cattle-herders.
On the machine I'm currently working on, several column-based applications (terminal emulators, DOS programs) seemed to merely increase the smootheness of the fonts. So maybe that's what you're looking for. Not that I'm suggesting you use windows.
Sam TH
AbiWord Developer
I really wish I could run an Xserver at
SVGA resolutions and color depths with
8megs or less memory.
Win3.1 ran on my ps/2 with 8megs of ram fine
at 640x480 with 16 colors, TinyX with the same
setup running Wm2 is almost unusable.
On the other hand Win95 osr1 runs acceptably
(some where between Win3.1 and TinyX) but
with 800x600 and 256 colors.
Repeat after me: X Window System, X11R6.4, XFree86 4.0
Also, DRI will be a XFree86 specific extension, and its purpose is to allow an efficient OpenGL implementation. It has nothing to do with core X architecture or such.
I have two major commercial statistical/visualization aplications.
One does not work at 24bpp, other at 32bpp,
both suck terribly at 8 or 16.
Never have seen anything like this in Windows world.
Also fonts under X are beyond terrible.
Still use X. Sign.. Too many other good things...
<^>_<(ô ô)>_<^>
Please pardon my ignorance, but what would be the effect on projects such as gtk, qt, enlightenment, etc. if the linux community decided to scrap X and go with another system?
Would this mean a complete/partial rewrite of kde or gnome? how much developer work would be needed to switch to another system?
The Network extensible Window System. Boy, do I miss NeWS. Not the cruddy widgets and look and feel of OpenLook, but rather the beautiful architecture and capabilities I got to use for a fleeting moment before Sun dropped it. This is a ripe candidate to be open sourced. James Gosling, if you're out there, could you please convince Sun to release the NeWS source tree?
For those who've never heard of it, it was a network window system (duh) that was based around a multithreaded PostScript interpreter with extensions to draw on the screen, handle input events, and with an object oriented programming facility. Unlike DPS it was designed as client server (like X) from the ground up with a much more efficient and customizeable wire protocol. In the version shipped with OpenWindows 3.0 it was integrated with an X server.
The beauty of it was because you communicated with it in PostScript you could offload processing on either the client or the server side depending on where it was most appropriate and by creative use of definitions on the server significantly cut the amount of data that would have to go across the wire. This can include implementing the window manager entirely inside the display server.
If you want to see some of what it could do, Don Hopkins has a page on NeWS at:
Some of the problems have sinced been fixed (particularly window manager issues), but the basic architectural and political issues remain.http://catalog.com/hopkins/lang/NeWS.html
Also for a good look (now a bit dated) on why X sucks see:
http://catalog.com/h opkins/unix-haters/x-windows/disaster.html
A sample from this page:
--john dougan
Personally I find X clunky and old.
RateVegas.com - Vegas Reviews
I remember WorkBench! Really, in terms of modern interface design, it was fairly borked.
RateVegas.com - Vegas Reviews
I know that the MacOS is evil because it's not open source...but...
About a year ago there were internal Apple docs floating around on the net showing off ideas for the then-Rhapsody, now-MacOS X GUI. It looks great!! Anyone got a link to that PDF?
RateVegas.com - Vegas Reviews
OS X Server uses DPS. OS X client/consumer and future versions of OS X Server will use what is being called Quartz and is based more on PDF.
RateVegas.com - Vegas Reviews
Right now there are 528 comments on this topic and it is still growing.
This is getting frustrating as I don't have the time to read them all (gave up after reading about 200 comments...), and the future of X is IMHO an important topic.
So is there any brave man who feels like making a summary of the interesting comments ?
OK, call me lazy if you want, but I'm sure that there are others who didn't have the courage to read all these comments...
Anyway it is nice to see that this topic hasn't degenerated as an advocacy topic (my GUI is better than yours) and that people tries to evaluate the true technical advantage/disadvantage of X11.
Even if I have used XLib, I think that I'm not knowledgable enough to have an opinion on this matter, it always interesting to see these comments.
Have a nice day.
*gasp* This statement really surprises me from somebody that has used Un*x for such a long time !
In my University I used this dubious feature to do all my assignments, at work I use it to remotely connect to Linux, Solaris and AIX boxes, at home I use this feature again to connect to work !!!
What are you talking about !?!?!?!?
Sure, running Quake is slower, that's why I have a dual partition and boot up '98 ***to play games***. When I want do real work , I switch back to Linux running good old X.
- sigs are for wimps.
Heh. Clunky and old? Well, clunky is true, but just because it is old doesn't make it bad. Unix is old but still good, so is vi, etc etc. X is bad though. Bloated and obtuse are how I like to describe X. MS Windows is primitive and unstable. MacOS is pretty but crash-prone. Okay, I'll shut up now..
If it is like debian, you have to install the 16 color VGA server if you want to use XFSetup. Also the guy above who thought it was only on freebsd-- that is not true. Xfree is the same on freebsd and linux.
yep. it may BE old, but the idea itself:
:-) so damn cool.
a network-transparent windowing-system,
where it does not matter on which computer
you start the application is just so damn
cool... i can't describe.
example: a friend of mine woke up and
realized he forgot to scan a picture... but
he was late and if he had scanned the pic he
would have missed his train. so what did he do?
since he had a leased-line he lay the pic in his
scanner and drove to work. in work he logged in
his computer at home, fired up the gimp, scanned
the pic.
if there will be ever a new windowing-system it
MUST have the flexibility of X or it will be
worthless.
ps. sorry for my bad english
Meme of the day: I browse "Disable Sigs: Checked". So should you.
I agree with everything you've said, but I also wish there was support for a wider range of video hardware. Of course, moving away from X would make this problem a hundred times worse. So I don't think there's any reason to ditch X either. Since the advent of pretty GUIs, it's everything I need.
Switch the . and the @ to email me.
I agree with everything you've said, but I also wish there was support for a wider range of video hardware. Of course, moving away from X would make this problem a hundred times worse. So I don't think there's any reason to ditch X either. Since the advent of pretty window managers, it's everything I need.
Switch the . and the @ to email me.
A guy above me mentioned something about FreeBSD having a nice GUI setup utility. SuSE has one called "SaX" and it works beautifully. It allows you to test your seetings and go back and change them if necessary.
;)
Just thought I'd plug my favorite distro...
There is no X toolkit ... Xlib doesn't have anything . The only objects it knows about are windows and primitive drawing operations. Everything else has to be created on top of that.
"Well, learn the X way then. There is a consistency...you just apperently missed it"
...
Yeah. That kind of bullshit statement really explains things for people
Dude, you search is over - ZX Spectrum , GUI couldn't be more stable ( at least from my experience )
hmm funny.. E allows this.. it's called IPC - just hook an action toi exec a scritp in your favorite scripting language (perl, /bin/shh etc.) and it can right now use eesh as a stdin/out and you can request entire client lsits move resize and do all sortsd of ops on clients - in your favorite language.. so um.. E can do this quite happily - its not the same WAY fvwm does it - but fvwm's ipc was screwy to start - E's IPC was designed to be uses for anything form scritps to programs - you just have to think differently.
:) it jsut didnt have the infrastructure i really needed :)
as for keybindings you can bind a keypress to any action you can do.. hell unlike fvwm you even get the choice of if it happens when the key goes up or down... nto to mention to can place as many widgets ont he sides of your windows as you liek and make them do anything too... yes its mroe complex - but its alos more powerful... and i'm talking from experience.. i used touse fvwm2 - i even hacked at its code.. there's a reason E isnt an fvwm2 offshoot
--------------- Codito, ergo sum - "I code, therefore I am" --------------------
Actually I know for a fact Jordy has no microsoft connections. I used to know him from irc way back in the day (Jordy, if you're reading this it's SPaM from #couzin-ed). He's a bit wacky when it comes to certain things, but generally he knows his stuff. And he's definately not a microsoft troll.
-matt
You should be able to right-click on the title-bar of every app and have some application specfic menus available. Or even better, you should be able to do this on a taskbar tab.
Look at xterm; it doesn't need a menu bar (like kterm) but it has some useful menus that it puts under a control click. Instead the app should be able to tell the GUI "hey, I have some menus" and the GUI could display them when appropriate. Then I could click on the title bar, an icon, or a taskbar tab and get options for that app.
There are a couple of apps that do this under Windows and it is nice (CRT is one).
Perhaps you are looking for XRemote and Low Bandwidth X (LBX). From the comp.windows.x FAQ :
"XRemote - this is the name of both a protocol and set of products originally developed by NCD for squeezing the X protocol over serial lines. In addition to using a low level transport mechanism similar to PPP/CSLIP, XRemote removes redundancies in the X protocol by sending deltas against previous packets and using LZW to compress the entire data stream. This work is done by either a pseudo-X server or "proxy" running on the host or in a terminal server...."
and
"LBX - Low Bandwidth X; this is an X Consortium project that is working on a standard for this area. It is being chaired by NCD and Xerox and is using NCD's XRemote protocol as a stepping stone in developing the new protocol. LBX will go beyond XRemote by adding proxy caching of commonly-used information (e.g. connection setup data, large window properties, font metrics, keymaps, etc.) and a more efficient encoding of the X protocol. The hope is to have a Standard ready for public review in the first half of next year and a sample implementation available in R6."
The above is from a very old FAQ, does anyone have the URL for the current one, from RTFM perhaps?
I think your "solution" is a bit short-sighted. If we run the competition today, how does the "perfect" tool/protocol/wrapper of tomorrow get a chance? Sure X is bloated, and at times even ugly (fvwm95), but anyone who thinks they've got an idea is free to implement it.
Besides, I thought one of the major philosphies behind open source was to keep tyranny at bay...
Pictures suck! Lynx is your lord! X takes up too much memory! Use virtual terminals instead of xterms!
Ever hear of a thing called a pager?
You move netscape and whatever else is chugging away in the background to different desktops.
Even Windows users are doing this now with the LiteStep shell replacement. (AS/WM/NeXT interface)
that first line was sarcasm. I used mock HTML tags, and it literally made them disappear.
The biggest thing that bothers me about X is that there is no uniform way to copy a block of text into a clipboard. Instead one has to select the text and then--without selecting anything else--paste the text where you want it. I find this annoying because often, like when copying a URL, I want to delete a block of text before pasting the new contents. I really like Windows model of being able to select copy from a right click.
Hey while we're at it, why not throw in some physics, so that when you minimize a window, the icon could bounce on the bottom or your screen as if it were made of a selected material. Or have gravity in a desired direction.
Many a time I've wished I could take that fscking hourglass and *smash* it against the edge of the display!
-matt
It seems that X can't do printing (correct me if I'm wrong). Pretty much all other GUIs (Win 3.1, OS/2, Mac, etc) handle printing. This makes printing very convinent because the software can use the same method to display stuff on the screen as it does to print. In fact, that makes perfect sense to do. It puts all the non-trival printing stuff in one spot and lets all software make use of it.
"Luncheon meats make the sawdust in your stomach explode."
What would be the advantages to moving to an entirely NEW windowing system? This as opposed to moving to X 4.0. The new system would have to be at least marginally compatible with current X libraries, or everything will at least have to be recompiled
Fellowship 9/11
Hate to mention it, but no, there actually WAS graphical things before X. (There is a rumor that color even existed back in 1950, but this is probably some sort of Microsoft FUD or insane linux zealot trying to make microsoft look bad.) Or else BSD invented it and linux copied it. :)
Fellowship 9/11
The biggest real complaint that I have about X is that is doesn't capture the entire user interface experience.
:-). You would need some really well written APIs, and it would have to be open source to justify commiting resources to work with/on it.
The biggest current issue here is sound. Enlightenment created it's own sound server to fix this. If we could turn that into a standard that everyone agrees on, then we would really be getting somewhere.
Then you would want to generalize to other user interface components: 3D displays, touch screens, digitizers, security cards/buttons, pan-tilt cameras, etc.
If the user interacts with it, then you should be able to access (or at least coordinate) it through a single server/protocol. It must all work over a network (with bandwidth management) and require only one authentication.
It might be interesting to see of you could make CORBA do all this (tied into an X server for the graphics part). In theory it could do this, now we just need to see it really happen (sort of a summation of the whole CORBA idea
-Dan
For a fairly well implemented (albeit non-free, shareware) desktop, check out www.3dtop.com. If my computer was fast enough to handle this and a few other things at a time, i'd take it in a second. After playing with this a bit, (make sure you read the docs), imagine if all your windows functioned in the same way...
A third dimension, if you can handle it, can certainly improve your ability to manage a desktop. All we need for it to be practical are a) _fast_ computers, and b), good, 3d displays.
"You know, Hobbes, some days even my lucky rocketship underpants don't help" -- Calvin
Please !
Whatever you do to change this Situation, don't let there be 25 different projects, half of them running under linux only.
Make ONE system, so deveolpers of applications don't have to cut down features, so that the apps can run anywhere.
Widespread use is the key to establish a new system. So don't forgett all the commercial-unices ant their manufacturers. You have to convince them somehow to support your windowing-solution.
There is no use for a system usable only for a part of the unix-community and used only by few apps.
Use open standards wherever possible. Make it object oriented, consistent and intuitive (for both: users and developers)
Provide more than just some graphical functions...
Integrate as much as you can into the object-System...
one extreme example: Files are objects. Each object can be opend by more than one Application... but these applications use obejct-functions of the file-obejct for I/O. Each opened Obejct(File) is only one of many "Views" this obeject supports... etc...
another example: You can drag'n'drop objects/files/opened documents between applications. (the usual way: save in app1, switch to app2, load the file in app2)
another idea: make GUIs flexible. Let the user redesign every app like he want to have it. (merge
guis of two or more apps into one window... etc.: e.g: merge a filemanager and the Play/stop button of an mp3-player into a 'mp3manager' without making one line of code) switch between diffrent gui-sets of an app while running.
---- but forgett about this. the important message is:
don't let the community split again into KDE vs. GNOME. Don't force each user to install 5 libs for to run 10 apps. don't force developers to use the smallest set of features, so it can be run anywhere. Dont let drag'n'drop works only between apps from the same manufacturers.
In your opinion, then: can something like Berlin ever succeed? Do you think it's not even worth trying to fix the mistakes of the past, with improvements to XFree86/DRI? What do you think the community should be aiming at instead?
Don't know if you'll follow this thread again, but I've been dying to ask the obvious question: given your distaste for X, plus your experience in using it, what do you think of Berlin/GGI? Is there a better approach still? In your post-Netscape/Mozilla period, have you given any thought to applying your skills to replacing X?
No! NeXT was not like that. No one is like that.
I remember this issue came up during the BeOS initial developement. They were still deciding how they were going to do imaging, and someone suggested that they base everything on vectors.
Then they got into all kinds of trouble, 'cause there was no good way to address a pixel.
I don't think that would be the only way to make text scale automatically, but it would be difficult to make sure that all other elements scale around the text properly without going completely vector-based.
Heh. I think windoze has some kind of feature like this, though. You can set it to "use large fonts" in the display settings, which mostly just means "use even uglier fonts." It doesn't exactly do what you're talking about, but it does make things more readable on high-res monitors.
Then again, I haven't used a 'doze machine for the past four months.
--
There are no trails. There are no trees out here.
I'd love to see a GUI (stress on the User Interface part) as soon as possible in the Linux boot process. I mean as soon as vmlinuz uncompresses, the graphics subsystem (VGA, GGI, or whatever) is started and the boot process continues, but represented graphically using icons and such. That would be a serious step in the acceptance of linux as an alternative to Windows with the average technically-challenged home user. I think boot messages (especially the kind that any unix generates) scare people. And then you have the issue of actually understanding and interacting with the boot messages. You and I can use chkdsk without any problems, but in a window's world, we're the exception.
/sbin/*, /proc/*, etc...). Of course the standard console boot process would be available for the rest of us...
So, maybe we should be focusing on putting a GUI on the parts that make up Linux, like modules and devices and filesystems. But even before that, devise a nice series of metaphores that could be used in visual representations of system components. (A simple example would be the puzzle-shaped init icons are when a Mac is booting). Then we can work on integrating those concepts into the front-end (X, Berlin, GGI, whatever) and the back-end (vmlinuz,
Feel free to contact me to carry on this discussion. Maybe it can turn into a project.
_______
2B1ASK1
Greetings,
Here I go again, replying to my own post...
The rest of the non-rant portion of my post is after the 'read more' button cut it off. That feature sure caught me by surprise.
In any case, the other point I wanted to make is that many of the drawbacks of X are also features for a limited userset. The problem is that to the 'common man' (the average user) of a popular program, those are bugs, not features.
The idea that the windowing system doesn't have direct access to hardware is just plain broken in the modern era of primarily single-user machines, for example. The wonderful thing is that we can FIX that with DRI without breaking the network capabilities of the windowing system also.
Win/Win. Some good, eh?
Cyberfox!
Well put.
Some of the issues that the first (Network Model) translate to are: Lack of support for hardware accellerated rendering of UI's, lack of windowed 3D accelleration support, high resource usage.
It's worth noticing that the network model IS being worked on in X4, with the Direct Rendering Infrastructure (Interface? I've forgotten already.)
The low level nature of the X protocol is somewhat required, given the design constraints. It's not well suited for remote pixmap display, however. Not well suited at all, but at least it's possible.
Drag'n'Drop being a fundamental part of X would be a good thing too, although I'm not sure it's being addressed in X4. Drag and drop is a special case of the entire concept of transportable data, however.
The problem most often MENTIONED about X is its extraordinarily ugly default interfaces. This can be shown to be 'apparently' fixable by toolkits. The true problem here is a very difficult one, however...
Skip the section between the highlighted begin/end rant blocks if opinionated bastards like me turn your stomach.
<begin rant>
Focus.
We have QT and the GTK, and Motif, and some other toolkits, but there's no unifying conceptual interface. While I 100% agree that choice is one of the strengths of X, Unix, etc., I have to agree that the lack of focus, and the lack of uniform interface that comes from that, is a critical flaw from the users perspective.
As a technophile, you want that choice, you want to be able to fiddle, futz, adjust, modify, tweak, and perturb your interface to your hearts content.
From the perspective of the user, the purpose of a computer is to...(wait for it...)
Hell, even I as a heavy-duty technophile, sometimes want to 'just use' the computer. Browse slashdot or cnn.com, word process, view pictures, read usenet, send email, do my taxes, play music, watch videos, play games. I USE my computer, as well as programming on it.
If users have to learn several different interfaces just to use their computers, they're going to fall back and say (with righteous anger!) "Why is this so complicated?!?"
Heaven forfend that you have to change window managers to run a particular program, or use a particular feature, and then change back to use a different one...!
There are a lot of slashdotters who believe that these users should 'Go away, and don't bother us He-Men!' I say, gently, you're wrong. These people are our mothers, our fathers, our grandmothers, our grandfathers, our brothers and sisters, and our friends. We know that there are true advantages (stability, cost, performance, for example) to using Linux (or BSD of course). Why should these people be denied those advantages, when WE as the developers of this technology, can make it USEFUL to them as well...?
In the end, it's all about the freedom for more than just the He-Man User-Hating Club of technophiles, programmers, and administrators. In the end it's about freedom for the benefit of everyone. Even those who can't use the core freedoms (to change the code) deserve to reap the benefits.
To get there, I believe we need focus.
With any luck, RedHat (or some large distribution company, should RedHat be replaced) will give us this focus, by having a primary UI that the majority of commercial software companies will support, thus starting the ball rolling, and the open source projects will follow because that UI is the one users are most used to.
This isn't to say that the lesser known toolkits, window managers, or UI hacks should or will go away. However, there needs to be a consistent user interface. The interface to developers, hackers, tweakers, and admins can be whatever they want it to be. But just one default UI for users is an incredibly powerful tool in spreading the power of the system to the public.
I know these are controversial ideas, but before you respond, go to all the non-computer literate people you know, your family, friends, teachers and students, coworkers and doctors... Ask around. See what they think of using a computer where each program has a different UI, each program has different ways of doing things, each application requires a whole new learning curve. Put it in the nicest way you can, and you'll still see them look at you like you're crazy. THOSE are the people who deserve better.
Right now they're stuck with Windows. No freedom, low stability, high cost, low performance. Why leave them like that when WE can do better? Are your friends, family, and social contacts so worthy of contempt that you feel they don't deserve the power of this system? Are you SO willing to relegate them to the 'have nots' of the computing world?
<end rant>
Popping the stack to the issue at hand, one of the primary drawbacks of X in a non-technical sense is that it didn't provide that user orientation from the start.
While I dislike the Motif UI in general, it could have provided that. However, having it be a non-open-source and (worse yet) proprietary project doomed it to not be able to provide the focus necessary.
So, hopefully someone else will summarize the issues with X at this time... Mine looks like this:
MANY OF THESE ARE BEING ADDRESSED BY X4.
That's my image of it all, though... I'm not bashing it at all, I'm an XFree86 developer (just got on the list recently), and I hope to help put some of the wonderful things into X4, or at least help by testing them out.
The present X, however, has at least those as apparent limitations, both from a technical and from a usability standpoint.
Cyberfox!
I myself think something along these lines would be a complete waste of time - not only for the person who wrote it, but even more so for the people who have to use it.
Think about that line I have up there as my subject. I think that kid in JP could have done her magic a lot quicker had she not had to wait for the view to move all over the world. Also think Johnny Mnemonic - to me it is just a million times easier to type "slashdot.org" than it would be to "fly there" and look at all the pretty graphics along the way.
Yeah, it would be cool, but the novelty would wear off fast. Besides, I get motion sickness when I play Quake, so I don't play it.
Mister programmer
I got my hammer
Gonna smash my smash my radio
Yes, it is best to have both OO and procedure based. That's how windows does it. Everything is Win32 (strait C) and they wrap it with MFC (strait C++). That way you can choose to OO, or not to OO. Plus, the Win32 stuff is consistant with the MFC stuff. All very nice and organized. Either way, I quite that stuff and just do Perl now.
Corndog
Of course, this still means 6M for the server itself, which is a lot compared to, say, a ZX81 in low-memory mode
Remember the UI that chick used towards the end of the movie to turn on security systems?
If I remember correctly, that curious computer she was using had a bastardized 3D interface...
Kagenin
"All warfare is based on deception."
Sun Tzu, "The Art of War"
Synapse is a prospective 3D UI i checked the page (www.oreality.com) and it's available...the screenshots are pretty neat
Now here's a good news/bad news situation. I already used my five moderator points today on another thread, which meant that I couldn't moderate up any of the JWZ posts on this topic. On the other hand, that means I can add my own amplifications on the topic of how much X sucks.
Another sucky thing about X is...is...
Oh, what's the point. I've been an X user for almost fifteen years now. And I'm one of the lucky ones: I've never had to program for it. Fifteen freaking years and I have finally almost got a desktop I actually like. And that's only because the GTk+ people did an end-run around X and I've got a desktop machine that would stomp any supercomputer from the 1985-ish era of the X design. So I have to say that X is quite lovely if you have the luxury of running it on hardware 32,000 times more powerful than it was designed for.
But then Zawinski writes:
I feel your pain, but I'm not sure even I am as darkly pessimistic as this. I guess the claim is that replacing X would be too much work, but I think we have plenty of evidence that there are people out there for whom time and duplicated effort have very little meaning. As I write this, there are hundreds of programmers slaving away at the Wine Project in order that we might one day be able to run Microsoft Word in bug-for-bug compatibility mode. Zawinski has already pointed out the amount of wheel-spinning that has gone into the eleventy-seven different toolkits that you can run under X. Emacs now can have a built-in web browser (disclaimer: yes, I sometimes use it) and I personally know the guy who wrote its spreadsheet mode.
No, I think there's enough random energy around to write a completely new GUI for Unix and hack/slay/port all of the most useful applications to it. There are already two or three groups of people who are working on the next X itself.
I'm not sure all of this is the wisest use of one's time, of course, but there you go. Worse may usually be be better, but this cuts both ways. I remember when Linux was still in the .95 days and there was a serious question about how long Linux thing could go on before the *BSD people saved us all. It didn't happen that way for a variety of reasons, and *BSD was a far more likely candidate for world dominance in 1991 than X is in 1999.
King Babar
Babar
Before I begin my rant, I would like to make it known that I'm an avid Linux user and only use Windows to play games. I was helping a friend of mine install RedHat 6.0 yesterday. After all was installed with nary a problem, he asked how to configure some stuff, so I told him about linuxconf (I prefer editing text files myself). The first response from him was a horrified "what a disgusting interface!". He was describing the click-tree type doohickey in which you click a labeled box with an X in it and it unfolds to reveal other options. And yes, it was, to my embarassment, just an ugly bugger of a UI. Upon closer inspection, it wasn't that dificult to get around (it's your standard click-tree doohickey thing), but the use of spacing made it look very overwhelming. Anyway, to my point: We need more artists (or non-color blind people) working on our UI's! While I have gotten used to it over time, using any X desktop requires me to forget any sense of visual aesthetic. The "problem" actually lies within the widget set and window manager. But GTK (as well as any other window manager)is themeable you say! True, there is hope in that... unfortunately, while some themes are decent looking, most look quite amateurish (while they ARE done by amateurs, some are just horrid). Ok, I don't mean to insult everyone out there who is actually contributing rather than complaining like me. And yes, there's that whole "beauty in the eye of the beholder" argument... but some of those themes I see on themes.org are just obnoxiously foul! Some of the more popular ones are pretty good, but none are especially "I could sell this for money" quality. The problem is is that if Linux is to really be an enjoyable "user experience" (and become a desktop OS), it has to look and feel consistant rather than a frakenstein of rejected looking widgets and graphics. Yes, Linux is especially functional and I love that, but it's not a very "sexy" experience. As much as I detest Windows, the impression that working with Windows leaves me is that has a well crafted (though not neccessarily well designed)interface -- it's consistant and doesn't look bad. I think the Linux community could do a lot better regarding the visual aesthtics of X. Maybe RedHat could hire a few artists with that IPO money and crank out some cool professional quality themes. It seems to me that Linux can not only have better performance, stability, and other practical aspects than "other OSes", but it can look cooler too. note: yes, I know that Linux per se is just a kernel and I really mean the windowing system on which runs on a distribution of software which uses the Linux kernel yadda yadda yadda.
XFSetup is far from 'lovely' in many circumstances. I still cringe at trying to get an old (usually no-name) monitor to work at a decent resolution in X Windows. Since one of Linux's most impressive uses to non-technical users is its ability to revitalise old machines, this is a serious problem.
Why is it that a vintage monitor can display a Windows desktop at 800x600 with 256 colours after a simple Control Panel tweak (setting it as a Generic SuperVGA 800x600, I've never seen this not work), but hours of trying to guess refresh rates won't get more than a 320x200 physical desktop in X? This, combined with the 8 megs of RAM overhead, is what's keeping Linux off of millions of potentially useful 386s
You know, the multi-virtual desktop is one of the things I like LEAST about X.
1) Network support. The ability to start a remote X session is a HUGE advantage. It allows you to run machines without monitirs, it allows you to work in a GUI when you want to do remote administration, etc.
But what advantage is this on a desktop computer? Think about the number of people that this would not benefit in the least. All of those computer drones in billions of cubicals - are you going to try to sell them on Linux because of this?
If Linux really wants to replace Windows, this can't be one of it's biggest advantages. Could it be that the people that use Linux the most have forgotten (or don't know) what a typical daily computer user does with his or her machine?
2) Client Server Architecture. This means that we can have any number of Window Managers and switch among them at will. This is great becasue different people work differetly. What is efficient to you is ineficient to me, etc.
Are you going to have all those people that fit in the group above training on a system that can change COMPLETELY by installing another WM? Do you think any of those people will want or care about that? Companies already spend millions of dollars training people to use the Windows GUI, they'd never want something that would destroy the workers productivity.
X has its problems. Here are some of the ones I've seen:
..., select font, draw word".
1. Network Model
One of the prime strengths/weaknesses of X is its network model. That is, X is a client/server system. The server controls the display and the client talks to it using the X protocol, giving it messages like "draw line here" or "draw pixel there".
This is a strength, because the X protocol allows the server and client to be on two distinct machines. Thus you can have "thin" X terminals that only run an X server and display applications run on centralized servers. You can also run graphical admin tools to do remote administration.
It is also a weakness because of the extra work converting "draw line" to the X protocol, sending it though a socket (even if the client and server are on the same machine), and finally, converting the X protocol command back and actually displaying it. There are some workarounds, like the MIT shared memory extention that lets the client and server avoid the serialize-transfer-unserialize stuff, but it added programming complexity.
2. Low-level Nature of X Protocol
X is somewhat inefficient, because it converts the drawing requests into very low-level commands. Instead of saying "draw button here", it has to say "draw line, draw line, draw line,
This is unavoidable, given the design constraints of X (provide a general purpose solution and don't enforce any policy). This is why so many toolkits exist on top of X.
Note that these are both design decisions that trade off performance for utility or generality.
I have a hard time reading text in many X programs that use small font sizes. The same size text is much easier to read on Windows systems. Does X make use of the hints in fonts?
I know that "me too" posts are generally frowned upon, but since this forum does constitute a bit of a poll for the biggest problems with X, I'll break the rule just once.
Support for more than one bit fonts is the single biggest lacking feature of X.
You don't need to have an antialiasing engine built in to X itself, but you do need to add the ability to treat fonts analogously to XPM, not XBM. I'd personally love to create some 2 bit (4 levels of grey) bitmapped screen fonts. Furthermore, both the TrueType (FreeType) and T1 renderers are already set up for antialiasing support... they just need the damn drawable!
Div.
But my grandest creation, as history will tell,
But my grandest creation, as history will tell,
Was Firefrorefiddle, the Fiend of the Fell.
Don't get me started on colormaps!! A couple of jobs ago, I was the only one brave enough to really dive into colormaps and understand how they worked. After that, everyone came to me. And now I shudder at all the bad code I've seen that just has no clue and does really dumb colormap management. To be fair, none of the standard O'Reily X books really cover it well. It is a dense subject, but if you are going to write image apps, you should pay a little attention to those chapters.
If you are doing things right, your colormap values shouldn't be changing out from under you. If you allocaed them, you can change them, and no other app should be bothered, because they shouldn't be using the colormap values you allocated for yourself. If you are using "shared" colormap entries, they are read-only, so they can't be changed out from under you. If you didn't bother to allocate colors, and just rummaged around the colormap looking for some pretty colors, you deserve anything that happens to you when the proper owner changes the values for those entries.
If you are talking about color flashing due to there being only one hardware colormap, its kinda pointless to try to re-dither your image, because the window manager is going to flash, all your toolkit widgets are going to flash, the whle damn display is going to look like a mess.
There is a Colormap Event anyway. Check your man pages for XColormapEvent.
I hope there's a special table reserved for X colormap guru's in heaven's 'Old X Programmer's Bar"
According to the technology brief at www.amiga.com:
With regard to windowing environments on the Amiga MCC, we are leveraging a combination of technologies from Linux and Java. At the lowest level (managing the bits on the screen), we are using the latest Linux X Windows window system.
So while the Amiga will have a new looking GUI, it is still X.
Replacing X seems like a good idea at first, as it would solve the issues numerous others have pointed out, notably ancient font handling and colormaps, the over-abstraction of networking, and the lack of at least a semi-consistent user interface. Just drop in a new windowing system that simplifies coding, still allows the useful parts of networking, and has hooks into localhost for fast access at the console. Seems simple right?
Unfortunately, there are terrible barriers to overcome, not the least of which are current X users. X users are accustomed to the levels of customization afforded by the myriad window managers currently available. Don't get me wrong, I like choice just as much as anyone else, but how reasonable is it to expect support for KDE, GNOME, and Motif in every application? How reasonable is it to expect support for each of these environments by vendors? And how reasonable is it to expect users to choose the environment which makes the most sense for them to use, and then to choose applications which properly support the environment? The answer is it's not. There have to be baseline standards in a modern windowing system that is so widely used. This logic applies to more than just toolkits and window managers (think protocols like DND, and the idea of double clicking on a document to open it, rather than opening the program first.)
The problem is, standards don't come easy. Nobody wants to change if the current system works (or more precisely, is **perceived** to work.) Power Users want their current level of control (even if it steps on other's toes unnecessarily, and ends up stunting the growth of the windowing environment as a whole.) Application programmers don't want to invest the time to learn a new system, even if the benefits are enormuous. For many, learning a new system would involve learning new paradigms (like OOP, or component models like CORBA which Berlin relies upon.) They'd rather keep with the status quo and slowly plod along. Finally, hardware vendors really don't want to move to something new. It has taken years to get support for modern video cards in X...how long will it take them to support something new?
In short, don't expect things to change anytime soon. Berlin is full of wonderful ideas, and if it lives up to its promises, will be vastly superior to X. However, Microsoft proved (and continues to prove) that it just doesn't matter if the product is superior. XF4 will solve a number of issues, but these are simply symptoms of the problem. After 15 years, it is time to retire the codebase and start anew. However, users, vendors, and programmers have simply invested TOO much time to change.
From the X(1) manpage from XFree86 3.3.3:
The X Consortium requests that the following names be used when referring to this software:
X
X Window System
X Version 11
X Window System, Version 11
X11
It does seem to say that this is version 11, no?
The big three GUIs out there all differ significantly in their end user audiences. MacOS has always been easier to use for novices; but MS Windows, at least since Win95, has been the OS of choice for businesses, due to the range of applications and MS Office, primarily (see my point on consistency for a reason for this). X has been the GUI for client/server computing and, more recently, the geek world.
I've coded for all three, and none of them win any prizes for coding ease. MacOS doesn't implement enough in the OS, Win32 implements *FAR* too much (in an inconsistent manner), and X, well X, has just too many different toolkits and window managers.
In response to Jordy's points,
3) The software is extremely dated with over a decade of backwards compatibility which no one even uses any more bloating the code base.
3. Unfortunately, this is the case with *every* currently-useable GUI out there. Have you taken a look at Win32 recently? Backward compatability is always going to be a problem.
4) C... Object Oriented environment.. please. I'm sure a lot of people will bash this, but writing GUI programs in an OO language is simply easier. And before you start on the OO toolkits out there, read the next point.
4. Yes OO design for GUIs is easier and cleaner, but it is important that non-OO languages are supported, even if it has to be through a compatability layer of some sort. Everyday tasks are easily done with a scripting language, and usually it is overkill to write simple scripts in an OO manner.
6) Sluggish. I have AccelX and I have to admit the entire experience is still very slow. Netscape flickers gray every time I scroll up and down, windows take ages to redraw when switching between them, etc. I multiboot to Windows and don't have any of these problems, everything is quite snappy... even if it crashes every 8 hours :)
6. Agreed. X simply does not redraw as quickly as MS Windows. This is primarily because video cards have been optimised for use with MS Windows and the support for X is less prevalent. Also compare MS Windows vs Mac OS. Although, I can usually use NT for more like 1-2 days, and 95 for about 4 hours...
7) Inconsistant. With all the toolkits out there, it is so very hard to get a nice consistant desktop. I wouldn't even claim that Windows is consistant, but it is pretty close. MacOS is better.. but at least both environments are intuitive.
7. A lot of other people have been claiming that consistency is a BAD THING. However, I disagree. Sure, from the development point of view, aiming for consistency limits freedom of design, but the average end user isn't at all interested in that. The average user NEEDS to be able to use the same keystrokes and see the same menu items from one application to the next. That's why office suites became popular after all.
In my opinion, the inconsistency of X is one of the biggest stumbling blocks that Linux is going to face in its introduction to the rest of the world.
And now, my pet gripe about all GUI's: Why is it so difficult to use the keyboard? The developers of Windows 3.1 had the great design goal that all functionality had to be accessible using only the keyboard (the only real exception to this was in imaging/drawing applications).
The CUA design 'standard' gave application developers the ability to standardise on the keystrokes used in their applications. This meant that I could pick up a new app in Windows and start using it without having to hunt for menu functions or learn new keystrokes.
Now MacOS also has keyboard shortcuts for many things, but a lack of standardisation and a large number of possible keystrokes makes this less useful. Arguably the biggest advantage that Windows has in this area is its use of the Alt key to activate menus and shortcuts. MS have gone backwards to some extent in Office 97; no one is going to use or remember the vast number of key combinations that are enabled by default.
I challenge anyone to complete basic tasks (such as switching applications, accessing menus, etc) faster in X than an experienced user can in Windows; any time a user has to reach for the mouse, there is a significant time wastage.
So to sum up, from my point of view, much as I dislike the bloatedness and proprietariness of Windows, I use it as my work OS, and will continue to until someone comes up with a more useable alternative. I will occasionally use X, although I prefer to Bash and vim through my Linux boxen, and I'll avoid MacOS as much as possible.
Am I wrong? Why?
Actually, I'm perfectly well aware that X is not the GUI, but I was using the term X to describe the underling X layer + the assorted window managers out there. Perhaps that wasn't clear from my message, and I could have made it clearer.
I've tried a large number of the X window managers out there, and still none of them measure up to Windows in both performance and useability. However, I'm not saying that I won't use KDE or Gnome in the future; they are only in their early years, and will be polished, whereas MS have had close to 15 years to polish Windows. I just hope that the KDE/Gnome/whatever developers focus on useability over glitz, because in the end, glitz only sells screenshots.
So I haven't given up on either KDE or Gnome, but at this stage, they're not quite useable enough for my liking (remember, I virtually never touch the mouse).
Admittedly fvwm isn't the prettiest manager out there, so don't use it. Enlightenment and WindowMaker blow it and win-whatever away.
- Threading. I'd like to see X get good threading support in it. I know the calls are there for XCreateThread() and friends, but I think that each thread created with XCreateThread() should get their own Xlib queue to talk to the X server. However, they should share all of the XIDs with each other. That way, you don't have to treat EVERY X call as a critical section. Each thread writes to its contact point with Xlib and reads from its private queue.
- GTK+ is a great library. However, I think that the gdk layer is unneeded. gdk is basically a wrapper around Xlib that does virtually the exact same thing as the underlying Xlib call. Yes, there are some differences and for those calls it is OK. However, I think that GTK+ could be more efficient if it were written on top of Xlib instead of on top of gdk on top of Xlib.
Just my musings.X does support hardware scrolling, assuming you have a decent driver. If the card doesn't support VRAM to VRAM copies, but supports DMA, you will notice a problem when listening to MP3s because the hardware scroll causes huge DMA burst to occur on the bus is unavailable to the sound card for a short period of time.
-- Virtual Windows Project
- Windows can straddle multiple screens, even if the monitors are of different resolutions and bit-depths. (XINERAMA pales in comparison to this.)
- You can change the multi-screen layout on the fly.
- You can change the resolution and bit-depth of any screen on the fly.
Supporting these features in X would require allowing the root window to be shaped and allowing resize/reshape events on the root window, would require support from the window manager (to ensure that windows don't end up off the screen on a geometry change), and would completely break the X color model. I don't know how we could extend X to support changing the color model on the fly without breaking compatibility with existing clients (or making the X server real slow).Actually, IIRC the OS X GUI is
DPS (Display PostScript), same as what NeXT used.
DPS is similar to Sun's old NeWS system, which also used Postscript to draw on the screen. NeWS was supposed to have been rather neat, but being propritary killed it.
-- -- The Dragon De Monsyne
One thing I would like to see is a standardized, embeddable X Windows. X in, say, 4 MB of ROM and 2 MB of RAM with a Linux OS and a few apps behind it. I want X on a Wince-handheld/palmtop.
"Though it may take a thousand years, we shall be FREE."
The main problem with X is poor design, an overly complicated api with little functionality. It also as a legacy of extensions that have little use in the modern world.
Better alternatives I can think of are display postscript and the Plan9 windowing system, 8 1/2.
I know the display postscript extensions to X failed to catch on because of being Adobe ip, but surely it could be run under whatever arrangement ghostscript is run?
This link has a bit of info on why dps is needed.
-- Reverend Vryl
People usually complain about the ugliness of X.
That has little to do with X itself. It's mostly
due to the primitive toolkits used in X programs.
However, that is changing thanks to efforts like
GNOME and KDE.
The really unique feature of X is its ability to
work through a network. That is its main asset,
and no other GUI system can do it, although some
third party proprietary systems try to do it in
the Windows world.
Just so you know; X does make a very important optimization when the server and client are running on the same machine. It uses shared memory instead of any sort of real "network" design; so X and the application communicate directly through your system's RAM, which is much faster than any network or pipe could be. Try compiling your kernel without SHM support, and see what kind of framerate you get in Quake :) This is one of several reasons that X sometimes appears to take up more RAM than it ought to.
The argument that "X is slow because of its network capability" doesn't hold any water and is really used only by people who don't understand X. X is slow (in some ways, it is) for other reasons... ones that, generally, can be solved.
I have seen the future, and it is inconvenient.
because he signed in ( as troll )
messages from logged in users start at 1, those from ACs score zero at the start.
sign in - its free, takes only seconds, and gives you that fair boost above those cowards.
dear AC,
it's nice that win95 werks for you. it's even nicer that you have had 18 days uptime. but I havent had such luck. win98 will crash in 2mins to 30mins. i get no blue screen of death. everything just stops. and no im not going to reinstall everything for the 100th time.
on the griping hand, i have had uptime of weeks with linux. the only real problems are E 0.16 (which is in CVS) which crashs X not linux. so which do you think i can get more work done on?
nmarshall
#include "standard_disclaimer.h"
R.U. SIRIUS: THE ONLY POSSIBLE RESPONSE
nmarshall
The law is that which it boldly asserted and plausibly maintained..
--Colonel Burr 1783
Yeah, SaX is really nice. It won't do Mach64, though.
I found that the hard way, then used XF86Setup, which is unfortunate because it won't generate arbitrary video modes for you.
Monitor setup is a pain in the ass and takes quite a while to get just right. Wouldn't it be nice if you could move and resize your image with the arrow keys in xvidtune?
Presuambly there are advantages to running this windowing system. One of the first things you do, though, is write an X server for it, so you have backwards compatibility. Then you write native applications at your leisure.
-russ
Don't piss off The Angry Economist
Various scientific apps, such as MSI InsightII and Felix, CSD quest and Macromodel, SGI's gmemusage and sysmon, Remedy, Framemaker, you name it.
Some of the above are low bandwidth, some are very high bandwidth, some use GL through X, some are pure X.
The idea that the way to do network transparency is to have the remote machine be the one tracking the mouse is just crazy. It would be far better for all GUIs to live locally, and for the on-the-wire activity to happen with some more domain-specific RPC, or other services.
I completely agree. But as you state elsewhere, we are stuck with X because it is entrenched. And I'd like to add that for the average user it doesn't suck so badly as to be unbearable. I actually enjoy what I have.
But [SGI's X server is] still ridiculously slow, given what their hardware is capable of! You only have to compare X performance to GL performance to see this.
Well, I have benchmarked one app that comes in both flavors, although you might call both implementations below par. The numbers are not incredibly different. The overhead due to macro interpretation and number crunching involved in this app simply outweighs the raw graphics performance, and that seems also to be the case in many other scientific apps I see day in and out.
I guess my point is that for many apps real life performance is not as markedly affected as you'd guess based on the internal workings of the X protocol. In my pedestrian view that means X is mostly good enough to get work done.
As much as I respect Jamie, I beg to differ. The 'dubious feature' to remotely display lets me get my work done very effectively.
As a sysadmin / app supporter my screen is littered with windows displayed from all manner of Unix hosts, and not all of them are xterms. It saves me countless hours of walking across the hall or campus.
Before I came to work in computing support, I also used remote displays rountinely, including several sessions that crossed the Atlantic, to get essential tasks done.
In my view the remote display capability is one of the best assets that X has. Granted, it makes X a dog compared to other windowing systems, but that's why my desktop is an SGI. Their X server is as great as it gets.
As far as I'm concerned, there's two major flaws. The first being the client/server organization and its impact on standalonish workstations. Essentially, the problem breaks down such that when you move a window the client has to tell the server what's going on and the server then has to tell the client what happened. On one machine both processes fight for the same resources, slowing down operations.
The other problem is with the API. Sure, there are toolkits, but they while they are somewhat easier to use, they really do end up screwing up the look and feel: there isn't a consistent look or layout to any of them. You can smell Motif when that funny head pops up, for example. This makes life difficult both for developers who are honestly trying to keep things consistent and users who have to figure out what the hell the pyramid with the eye means.
X has a lot of good features, and its why we still use it today. When you need the client/server, it's really really nice. The fact that you can swap the window managers is nice (viva choice)! We could still do lots, lots better though. Perhaps something where O'Reiley doesn't have to sell so many books...
I've always believed that the percieved problems with X are caused by its overuse. X is great for showing pictures. Its great for shoving xterms around and allowing shells and other apps to coexist on the same screen, but its often overused.
When I start X, four huge xterms encompass my screen. They are each running screen, and often one has emacs going (go ahead, flame away.) I make sure nothing hides behind those windows, and when I need to use netscape (as I must infrequently do,) I can do so.
I'm not using to replace my shell and allow me to launch every program with the press of a button. I hate mice. I use it because it allows me to configure the layout of my screen and show pictures.
The problems arise when you throw a kludgy session manager and window manager and toolbars and other junk on your screen which suck memory (yes, I know. Emacs does too) and make things all confuzzled.
Bleh.
heh heh, I had to look up this "emetic" word over at dictionary.com. I got a good laugh, thanks.
It means "to induce vomitting." =)
#6495ED - cornflower blue
hmm I never used it this way before. Cool. Ive learned something new today. Just like the guy down below who mentioned ALT-ESC. Didn't know that either. Oops, so much for consistency. Looks like explorer does the scrollbar thingy but not Internet Explorer. DOH!
Still I think I like the way nedit on works on my irix box at work. You move the scroll bar thingy and an indentation is left where it used to be. Its easy to see where it used to be, and go back to it, with no jerky-ness.
I don't know what toolkit that is sorry. I'm sure other apps/os's work the same way.
#6495ED - cornflower blue
This thread is getting really long. Lemme just sum it up.
We need a gui that preserves the networking transparency of X, while allowing local programs to run directly (as possible) on the local hardware. The local programs should run through some sort of os abstraction layer to force them to follow "the rules". Not a difficult idea is it?
p.s. Aren't people working on this already?
#6495ED - cornflower blue
I guess I don't understand or else the alpha-blending is already there.. I used some today.. unless it is a trick of the API I was using.. I haven't noticed too many problems that require anti-aliasing, but it is a necessary thing, granted. Sound support, well, there is esd, but more central to X is the NAS, network audio something (I forgot if s stood for system or what). glx doesn't seem to be so bad.. with XFree 4.0 and it's DRI that is fine.. the design may be a valid point, I'm not sure about that nityy-gritty.. But it seems to perform well for me :)
XML is like violence. If it doesn't solve the problem, use more.
Connection speed isn't that bad seems to me.. But I usually work over a LAN.. But at least X has network capabilities. As far as widgets, in a way Xaw is as standard in that sense as you get. It comes with every release of X.. but people don't like it because it is ugly.. I don't mind having gtk+ separate :) Just because it's not included with X, it has become a strong standard, if you code for gtk you are nearly guaranteed to compile on any linux, maybe not every unix, but most unices work fine with gtk, but may not include it. qt seems ok, but not as widewspread in linux distros..
XML is like violence. If it doesn't solve the problem, use more.
Unless they've changed their mind again, the new Amiga will be using X.
X was designed to run over a (fairly high bandwidth) network. It is really fast over a LAN. The client/server model causes a bit of an overhead when running locally. Also, the X protocol wasn't designed with accelerated 3D cards in mind.
X11 is up to release 6.3 (AFAIK).
11 is not a version number.
Hands in my pocket
Should have looked around first. I stand corrected.
Hands in my pocket
I think he meant that he was the first person to post a comment to this item, but since two other people posted during the same minute (5:45-5:46), he failed in his quest :).
X11 is not a good window system for a home
desktop user. It, indeed, lets you do much
more than the home desktop user would normally
want (I mean network GUI features). This
I would call bloat.
Next, there are inherently bad design decision in
X11 that started to impact the usability of it:
A good example would be that cursor and fonts are
by design 1-bit deep bitmaps, meaning no simple way to introduce color cursors or antialiased fonts.
(Fonts, BTW, is the weakest spot in X11 design,
right after idiotic design that makes you write
quite different code for truecolor and low-color
displays)
Most of those shortcomings are now being
addressed in toolkits like GTK and QT/KDEToolkit,
but that does not improve the X11, just those 2
toolkits.
On the other hand, we should stick to X at least
until we have reasonably good port of GTK or QT/KDE to some different platform. The price of
loosing X would be inability to iteroperate with
other UNIX systems, and, at the same time, would
mean that we need to develop new GUI framework.
Berlin is a good example of what happens when you
drop X. The idea is OK, the human resources are not adequate to do it in reasonable time.
The only other GUI I've heard of is Photon (right?) and it does seem to have few virtues of X, like network-transparent graphics, and a thin design. I did not develop for it and have no idea how good/bad it is.
Win2000 comes with network transparent GUI as well, and, unlike X, it works nicely over 36kpbs modem lines. (slow a bit)
That GUI is a standard win32 gui from the developer's point of view, and we all know what we think about it.
Well...for one thing, the interface itself isn't very well threaded...look what happens to x11amp, or xanim, for example, when you move another window on the screen.
Now look what happens when you do something like that with a well threaded UI like OS/2.
What I meant to say was OS/2's Presentation Manager...not OS/2.
Also, the underlying object model that allows you to change attributes of all your window objects...without those objects having had the code written explicitly to do that. Gnome or KDE might get there some day...but it will be a long time. Like you said above...why even bother when there is a OOI out there that already does this?
Keep chasing....
I feel sorry for you. You've obviously never used an interface that actually has useability and intuitiveness in mind.
Ever look at OS/2's WPS? The windows interface is *NOT* good. Neither is the macintosh. I wish the WM's for linux would stop trying to act like windoze. It's the wrong direction to go. At the moment, Windowmaker is the most useable WM on X IMHO.
Try using the right mouse button on the titlebar, then click on "maximize", then "unmaximize." Is that what you were looking for?
Without going into full advocate mode here...exactly what 'features' of GNOME and KDE are lacking in Windowmaker? I think both of those lack the Easy amount of configurability in windowmaker.
hate to say it, but I fired up win95 the other day and was suprized at how easy to use the GUI was. After being on Linux for a while using windows for every day things was easier. Don't get me wrong, I'm not saying windows is better but it's UI is smoother and more predictable.
You've obviously never used OS/2's Workplace Shell. Windows 95's interface is *NOT* good. It is *NOT* intuitive. It is *NOT* flexible. It is *NOT* efficient.
There are some interesting comments about adopting 3D interfaces. However, it would prove to be a CPU-sucking task, sort of like Windows.. basically it's sticking a non-native app layer on top of hardware made to drive 2D. Instead, 3D GUIs should be installed in systems configured with 3D-dedicated video and subsystems e.g. PowerPC G4 CPUs with AltiVec for the windowing environment.
-----
Linux user: if (nt == unstable) { switchTo.linux() }
Those who laugh at you for you having a Mac.. are the people who constantly call you to fix their PC.
In regards to the comment about systems needing consistent screen/printout color handling, it already exists on Mac systems and (to a lesser degree) on PCs using Apple's ColorSync software. It allows device profiling and calibration for image files and, in Mac systems, provides system-level color consistency. It even allows device-independent profiles to be embedded in images so they appear and print the same color on different workstations.
MacOS X is supposed to provide resolution independent imaging for screens using its Quartz technology, which is based on the Adobe PDF standard. Sorry I don't have a link =(
I believe it should be an independent (read Open Source) effort to create 3D environments, however.. much effort has to be done to put together a study on Human Interfaces. You can't just put floating buttons in front of someone and expect it to be intuitive.
-----
Linux user: if (nt == unstable) { switchTo.linux() }
Those who laugh at you for you having a Mac.. are the people who constantly call you to fix their PC.
System-level anti-aliasing of fonts are already available.. on MacOS. If any of the system fonts (large, small, and views) are either TrueType or PostScript, the Mac gives you the option of anti-aliasing them. Looks great. In addition, Adobe Type Manager (the little control panel) allows you to have global anti-aliased fonts in all applications like Macromedia FreeHand, Microsoft Word, Netscape/IE, etc.. it's cool.
BTW MacOS 9 __is__ coming out and it should be officially OS 9, not 8.7. Preorders start tomorrow and should ship in October. For more info:
http://www.applein sider.com/articles/9907/sonata-beta-four.shtml
-----
Linux user: if (nt == unstable) { switchTo.linux() }
Those who laugh at you for you having a Mac.. are the people who constantly call you to fix their PC.
I forgot to mention that MacOS 9 contains some feature sets that won't be available to any platform for a short time (well built-in anyway). Find out about them here:
http://www.appleinsider.com/macos8.7.shtml
There are some cool mentionable features such as voiceprint authentication for multi-user environments and Sherlock II.
-----
Linux user: if (nt == unstable) { switchTo.linux() }
Those who laugh at you for you having a Mac.. are the people who constantly call you to fix their PC.
Oh yeah, forgot about that one. Any good monitor with any decent card (like an ATI Rage Orion 128 or 3Dfx Voodoo3 2000) can be installed in a Mac, flip the switch and it instantly works. You'll suddenly notice extra options in the Monitors and Sound control panel for: (1) Pick primary display, (2) which monitor gets to have the menu bar, (3) screen arrangement or position.. plus you can have each monitor have different resolutions and bit-depth -- all changeable ON THE FLY. No rebooting or editing config/driver files.. nada. It's basically extended workspace.. I usually use two monitors so Adobe Photoshop can fully display a HI-RES image on one screen and have all the imaging/editing palettes on the other. Very convenient. Hell, if I had three monitors with Adobe Premiere, I could have the video-editing work area on the middle monitor, my editing palettes on the right, and my output video playback on the left! Totally production-oriented setup! No IRQs, DLLs, configs, drivers, or window-managers needed! Mac has got it all (and this is just the OS 8.0 and higher.. we're getting close to the real hardcore stuff soon........)p art2.shtml p art1.shtml
More screenshots:
http://www.appleinsider.com/articles/9905/sonata-
http://www.appleinsider.com/articles/9905/sonata-
-----
Linux user: if (nt == unstable) { switchTo.linux() }
Those who laugh at you for you having a Mac.. are the people who constantly call you to fix their PC.
Jamie Zawinski schreibt:
"X is slow because of the separation of servers and clients, i.e., the client-server model, i.e., its network capacity. It doesn't matter that it uses shared segments in the degenerate case -- it still takes a dozen context-switches amongst three different processes before an X client can even pick its nose.
Windows and other window systems are way faster because when a program wants to draw a line, the DrawLine call in the graphics library ends up putting bits in a frame buffer. On X, the amount of overhead for every operation is just staggering. Even more so when window operations are involved rather than simple graphics operations."
You're absolutely correct that graphics can be accelerated tremendously by dumping the functions that get in the way of performance and running on the bare metal the way Windows does. It's a fundamental architectural decision: do you build a graphics system on top of an operating system or an operating system on top of a graphics system?
The latter approach has screaming performance as long as the various clients play by the rules and respect each others' memory, screen, etc. space. By interposing networking and security functions between the layers, OTOH, the client-server approach buys stability, security, and portability at the expense of performance (at least in a single-processor application.)
Which is something to think about: a client-server architecture makes much better use of multiple CPUs than a monolythic monster-app.
I can't help the nagging suspicion that rather than being an obsolete hog due to be replaced by the New Order where the Central Processing Unit places each pixel in memory, X may have been ahead of its time by anticipating a distributed graphics pipeline with separate devices handling presentation, rendering, and display.
Lacking <sarcasm> tags,
Oh, c'mon, how long did you really think it would be before they wake up?
Seriously, though, this will probably exist within the next two years, as they complete the port of MSFT Office onto Linux.
Will in Seattle
They only exist on the .mil side, but expect to see them on .com in the next century.
Will in Seattle
and BeOS ;)
Basic
It's not so much something to increase your efficiency, I think of it as a way to look much cooler while retaining a large amount of control. You could still use the 2d mouse to control this environment, and with a smart keyboard setup, I think it could be easy-to-use. A third dimension could be used to hold things with a perspective (a window running vi that is squished back, to where you can still kinda see what's in it).
You could deal with the FPS control issues by assigning simple key commands to navigating, if you would like. Since you aren't restricted to 'game' movement, you can instantly move anywhere, like "directly in front of netscape", or "3/4 perspective to the graphical representation of the root of the hard drive."
Again, it's not so much a productivity booster, but something usable that can still get the job done.
"Please don't sigh like that, maam"
I used to really hate X windows also. But recently i gave up trying to make a GGI/svgalib multiplexer and started to learn GTK.
After playing around with that for a while i borrowed a book from the library on X and its actually quite nice (and VERY EASY) to make a xlib/GTK app.
HOWEVER X really doesn't "feel" as fast as my win95A partition (needed for school) on my computer. The mouse seems sluggish and jerky (very much like when playing 8 player starcraft on it (p120)).
Anyone know WHY X feels slower?
In my case i have not much use for network transparency, and pcanywhere appears to do this much better anyway without the transparancy. I wish i was able to help make it quicker but x seems to me too large (bloated?) to
help develop and someone posted that you need to pay money to be a serious developer?
Anyone want to make clear all the myths of X, which are true and which arent?
Also, i think it would be a good idea to wait for V4 to come out before we switch to a faster windowing system.
And, anyone know any good stuff on writing a window manager? im editing aewm to my needs atm for a gtkwm but its not commented and some of the code is too complex for my little brain.
From the GUIs I've used, X is the only truly networking one. Running a program on a different computer is no problem at all. Yes, I know there are extensions to even Windows to run programs on other computers, but they all basically suck. ;-).
:-)
There may be other windowing systems which are better on some other areas (like speed), but these two are the main factors that count for me:
1) networking (I run a LOT of programs on a LOT of machines)
2) configurability (I wish I could have window maker on my win98
It's obvious that X is not perfect. There are many things that should be improved, basically most of those things are due to the fact that X is old. But on the other hand there is no better alternative. If one wishes to have a better GUI than X, he has to make a new one. A new one with:
1) networking, I'd say exactly the same way as in X
2) Configurability - this includes two things: a) total configurability (something X has, and Windows lacks) b) easy configurability (something X lacks)
3) speed - there are already some quite snappy X-servers, and XFree 4 should be fast enough (since the rendering goes directly to the video card), if the programs take advantage of it. The system should however use direct rendering model always when it's possible, even if running programs which don't know about it. This brings me to
4) compatibility - Launching a new GUI is impossible if it has no programs to run with it. Therefore it should be possible to run X programs with it. This should be rather easy, but having it running X programs faster than current X servers isn't easy
Now, someone might ask why I've said "Windows" several times in my text, and not once mentioned his favourite GUI, which of course is OS/2 PM, Amigas GUI or some other ultrahyperfantasically great windowing system. Well. Take a look at the sales figures.
--
It has to work - rfc1925
"You are guilty of doing the same thing as most of the other people in this thread - confusing X with the GUI. X is NOT a GUI."
Well, duh. No, X is NOT a GUI. But it is used to RUN the GUI. And since the GUI (and all the underlying layers that may affect it) are under discussion, X is pursuant to that discussion. No, I won't complain that X does a bad job at what it was meant to do. I WILL complain that what it was meant to do may not be the best basis for a GUI!
Layers to use a GUI in X: X (client/server architecture), Window Manager, Widget Toolkit
Layers to use a GUI not in X: GUI
X does add overhead. Some think it is reasonable. I say that if your task involves client/server GUI interaction then great. But myself, and I'm sure many others, just use X for the GUI at the same machine the host is on and don't give a darn for the client/server architecture. Can't this be gutted out? #UNDEF CLIENT_SERVER If I want the taste of an orange, the solution is not to complain about how my apples don't taste like oranges: the solution is to replace the darn apples!
It's 10 PM. Do you know if you're un-American?
Since you're into CORBA, have you heard of AllianceOS?
www.allos.org
The whole OS is CORBA based and network transparent. nice nice. Just hope CORBA doesn't introduce unnecessary overhead (communication negotiation).
It's 10 PM. Do you know if you're un-American?
Some people have suggested different window managers, even a 3D window manager. You need to think bigger. What we need is an immersive, FUN interface. Check out QuakeFM, the first-person-shooter file manager.
It takes the example of ash (the adventure shell), and takes it to the extreme. You wander around a fully-realized 3D environment corresponding to your file system. Directories are rooms, with files represented as objects according to their type. wav files are big stereos, mp3s are boom boxes, image files are pictures hanging on the wall. Symbolic links are transporters. Armed with various large caliber weapons of your choice, you wander around your file system with a massive capacity for destruction. But mostly, you engage in mundane tasks, such as carting files around from place to place, playing the stereos, viewing the pictures. And from time to time, if need be, you choose a file for destruction and let loose with your rocket launcher or railgun. If the destruction of an entire room is what is desired, stand outside and toss in a grenade, which will rid you of the room as well as all those pesky files.
Sure, an accidental click of the mouse can remove some files by accident, but Unix is well known for giving you the heady power to shoot yourself in the foot. Only in QuakeFM is that literal.
Anyway, check it out.
This is not a discussion about the OS as a whole. This is about the User Interface. Even without color, the Mac had a more elegant interface, because it was more uniform and refined.
I still find the Mac interface to be one of the most elegant (albeit power user unfriendly) user interfaces.
It sounds as if you are one of those people who trash macs because they are different. I just find that dissappointing.
A friend of mine says he doesn't like X's client/server over the network model. He says that this consumes unnecessary resources when everything (the X server and clients) are running locally. I said I thought any wasted resources were marginal. Anyone know for sure?
Stephen Molitor steve_molitor@yahoo.com
I heard some people complain about the X consortium's control over X. Could we fork off a different branch of X, a 'la [X]?Emacs, and would that be a good idea?
Stephen Molitor steve_molitor@yahoo.com
Will the frame-buffer driver eventually address this?
Stephen Molitor steve_molitor@yahoo.com
The Win98 machine that I am typing on right now runs for days without reboot. I know, it surprised me too. It runs the Exchange client, IE5, AutoCAD 2000, SolidWorks 98, McAfee virus stuff and of course the distributed.net Win32 GUI Client. And it runs all of these pretty much full time. 1.1 megakeys on d.net btw. And I'm not gentle with it either. Always downloading something foolish of the net. After all, if it does crash that just means that I get to take a couple days break from work and reinstall everything!
I've enjoyed X alot, or i guess i should say i enjoy gnome, KDE, and all the rest of the really awesome strides in the LInux UI development area, but i have yet to really become excited over X or to gain much attachement. I like a lot of the features that the client/server model has going for it, but clearly, that's not where it's at solely. Neither is 3D performance alone going to make a kick ass envionment. I would be really interested in seeing what replacements are available and seeing the plannign of a portable and extensible windowing system, but also interesting is the compatibility with the X beast.
If such a project were to start however, fragmentation would be the ULTIMATE enemy. Not just the same harping about UNIX fragmentation's problems, but simply the fact that a cohesive self-contained windowing look/feel/work environment needs a tight group of well trained engineers to get it right. Having people from 30 countries with 10 different hopes for an environment would be hell to keep togehter. BUt the results would be amazing.
X may very well be a limiting factor for enticing a full-blown DTP or other graphics-based industries over to linux/UNIX. The performance isn't there and also, there are too many details. THe MacOS is the best i've used, simply because it's so pervasive, self-contained and intuitive. there are only a few primitive concepts in that system that flow through the rest. much of UNIX is like this, but not X.
FInally, all the reports i read about linux is "wow, you can hardly tell it's not Windows." I HATE the windows looka nd feel! fvwm irritates me! This may be our chance to not only bring linux up to par but also to innovate. i can't see why there aren't more people, art school students, etc. jumping at this chance to create a fully functional refined and elegant system with powerful postcript, 3d, and vector support (i love IRIX's vecotr icons..)...
chimchim
Why do I have this image of deleting files and killing errant processes becoming a much more dramatic act? :) Kind of reminds me of that old exit message in Doom, "Don't leave, DOS is much worse."
In terms of anything, it was totally borked. There was (IMO) never a more inelegant and obtuse interface than early workbenches.
Come now. Multiple icon sizes? It looked silly and inefficient when the screens had such funky resolutions (most of them sucky or otherwise small and cramped).
If you compare a Mac of the day to the colorful and visually nauseating workbench, there is no comparison. It's like comparing...well...it's like comparing something elegant and refined to something gaudy and colorful that is gaudy and colorful just becuase it can be.
Moderate away.
-awc
I don't see why it's such a big deal. I prefer the NeXT way of doing things--the program icon (or tile) changes when the program is running to reflect what is going on. That's a cool implementation.
-awc
You could always turn the colour off on the monitor if you wanted to simulate the MAC of the same ;-).
period
I dont know who chose the orange,white,black and blue colour scheme of wb >1.x, they must have been pissed at the time. You >could always change the colour scheme to anything >you wanted to though.
That reminds me of a John Dvorak column that he wrote comparing the UI elegance of MacOS (probably about 7.1 at the time) and Windows 3.1. His point was that the Windows UI was better because you could customize the color 'down to the last pixel on the screen'. That's probably not the exact quote, but it's close.
He totally missed the point. Elegance is not being able to make the computer look like the neon sign in the red light district. Elegance is a rich UI with clearly defined standards and some room to move within those standards.
IMO, the Amiga UI is the most damned ugly thing that I have _ever_ seen. I don't want to have to change the color scheme. I don't want to have to change the mouse pointer.
>I would hardly call an OS that was Black & White
>and non multi tasking "elegant"in comparasin to
>one the was colour, did multitask and had the
>best audio available at the time.
I was talking about interface. If you want a gorgeous black and white interface, look at the NeXT machines. They look teriffic in color, but they look just as good in B/W.
Everything about the mac's human interface was better than the Amiga. I liked the screen more, the mouse was better, and the keyboards were incomparably better.
-awc
9", iirc.
And yes, they were better. The image was crisp, solid and easy to read.
Though the Amiga had all sorts of options when it came to resolution, in my eperience, they were very unpleasant to use.
I use a commercial X-Server, yes I know its not free, but its cheaper then RedHat 6.0. For $39 I have Metro-X. It's a bit smoother (ie faster) then XFree86 and easier to configure. It also supports dual headed on a limited array of Matrox video cards (and maybe some others). I have 2 Millenium II's and it works great, it feeds my 15" and my new 21". Sure it has its problems... but its as good as 4.0 will be, now!
Spyky
No I am not affiliated in any way with MetroLink, they just make a nice X Server.
The Berlin project seems really cool, in theory, and I see they are making some progress. How long is the estimate before the first release?
My experiences with X have been bad. It does not seem to handle anything very graphically intensive well at all (example: using semi-transparent backgrounds on windows is realy slow).
I like Berlin, simply because it is starting over from scratch. I think most of us would agree that X is reaching the end of its life, and is not worth trying to build new technology on top of anymore.
EverCode
We have Enlightenment, which looks great^H^H^H^H^H amazing, but it's still enclosing chunky fonts.
Wah!
There's no reason it has to be that bad. Throw it through ssh (and there's a tutorial for doing this, along with links, on VNC's site), and it'll be compressed and encrypted! Wow! Mommy, can I have one too??
Here are some of the problems with X itself (which goes with being bad.. note some is technical, and some is opinion.. I'll let you decide what
I should add that I am no expert on X. Most of this stuff is stuff that I have picked up from people who know a hell of a lot more then I do (like my friend that has a ray-tracer that runs on massively parallel machines, and can get better then 10 frames a second (last time I checked) on an array of 16 ultra10s)... The experts on the problems with X11 in the free ware community would probably be the guys who wrote XFree...
my
-andy:)
- I find the stacks and stacks of libraries clumsy... not nearly as clean as they should be IMHO.. on the gnome road... gnome sits on gtk+ sits on Xlib.. on the straight X road Motif or Athena sits on Xt sits on Xlib... etc. for all the other libraries... if it wasn't so painful to work in the core API, we would not need all these things.
- Along with being old, comes supporting old versions of the API.. while I under stand the need for this, some of the old API (which was all run through sockets) is really kludgy and takes away from the speed
- Mmm.. shared memory... shared memory (now that it exists in UNIX (at least in all of the unixes I have used: Solaris, Irix, Linux, and I am pretty sure FreeBSD, OpenBSD, prob. NetBSD, maybe AIX) all have support for shared memory which is a much faster interface then older unix ipc interfaces like pipes...
- another thing sort of messed up with X is the way it manages colors, which (again IMHO) it has never done well, since it works completely different in different modes on different hardware, except using the Xlib API, which (as I have mentioned) is slow and clumsy.
I should add that I am no expert on X. Most of this stuff is stuff that I have picked up from people who know a hell of a lot more then I do (like my friend that has a ray-tracer that runs on massively parallel machines, and can get better then 10 frames a second (last time I checked) on an array of 16 ultra10s)... The experts on the problems with X11 in the free ware community would probably be the guys who wrote XFree... myThat *includes* your video card memory.
In text mode, Linux is great for "serial multiusers" in that one person can log in on one virtual TTY and another can login on another and you can switch back and forth without interrupting each other.
Can I do that with Berlin or X(free)? It doesn't seem so incredibly difficult to implement. You swap out one person's graphic memory and swap in another person's. It might not be instantaneous but it also shouldn't take a heinous amount of time?
Paul
The tool you are referring to is xvidtune, which XF86Setup does run when most configuration is complete.
xvidtune is installed with most X distributions.
-bugg
Have you ever upgraded your libc? Never EVER had to recompile programs for GLIBC2.0 instead of LIBC5? Or GLIBC2.1 instead of GLIBC2.0?
I happen to know a fair amount about dynamic and shared library linking and loading. I wrote the entirety of the DLX Dynamic Linker for DOS/DJGPP/GNU32. I have written proprietary ones as well.
While I admit that XWindows DOES certainly slow some applications down considerably, IMX the MITSHM extension helps considerably and the DGA extension is very powerful. Discounting the extensions simply is NOT fair. How would the Win95 graphics stand up without DirectX? How is DX different from DGA (implementation details aside). Granted, DGA is simply a framebuffer interface stub, but GGI runs just fine on it.
Also, the new XFree86 4.0 comes with the new DRI, "Direct Rendering Interface". While I admit that my understanding of this new feature is limited, it is supposed to allow the XServer to communicate directly with the system libraries (the X11 libs and GLX).
I have an NT server that's down three floors, across the street, and back up three floors. When I need to run something on it, I fire up PCAnywhere, log in, run the thing, and it's cool. I usually do the same when I need to do something on the NT server on the other side of my partition. And I could do the same thing with my home system; I could scan a picture remotely and transfer it here.
Very similar to my experiences. At work, my NT box is a glorified xterm (right now there's Netscape, Eudora Pro, and AIM running locally, and about 15 xterms, and xemacs from my Sun). When I tried to use Exceed's build in virtual destop, I had to reboot twice a day on average. Others that I tried were just as bad. Three - four week uptimes between reboots I can tolerate. 6 hours I can't.
Before you jump in a flame me for using NT, keep in mind these are just my comments on virtual desktops for that platform. I use Linux, Solaris, AIX, HP-UX, OSF1 and Irix on a regular basis also. THey all have their faults.
Perhaps this is the time to stop thinking about CRTs (which are now over 100 years old having been invented in the last century) and start thinking about VR (immersive - you only see the alternate world) or HUD (Heads Up Display - used to superimpose info onto the real world). Either of these would extend the perceived screen size to 360 horizontal and 360 vertical and allow a huge amount of objects to be available for either simple monitoring or as links to larger applications (to be called up as either 2D or 3D, depending on function). With the growing success of voice recognition, wearable computers, and spacial mice this is just about here. The real last link is the display hardware (still buggy, or expensive, or less resolution than a CRT) and a new metaphor for a 360x360 interface. Think about that. Look up wearable computing for more info.
I believe you can run 8 1/2 in an 8 1/2 window. (Its the windowing system that comes with Plan 9) You can run X11 in an X11 window too, just use Xnest.
Regarding configuration, FreeBSD comes with a lovely X configurator called XFSetup. This is a gui based configuration thing, which allows you to choose mouse, keyboard, videocard, various monitor tweeks, test screen modes, etc. In fact, it's built into the installer should you want to try it out.
Other than that, XFree86 v4 is quite fast. The way the drivers within the servers work has been redone, making them fast, and much less bloated.
I'd say both of these problems have, or will be shortly taken care of...
Rod Taylor
You seem to be heavily pushing Berlin as a new gui for Linux. As much as this may dissapoint you, I'm hoping it'll run on more than just Linux.
X afterall, runs on all unixies, os/2, mac, and windows... Very handy if you ask me. (Yes, I do use X under OS/2 quite a bit!)
Rod Taylor
a little off topic, but on the bottom of this comment page.....
---
Congratulations! You are the one-millionth user to log into our system. If there's anything special we can do for you, anything at all, don't hesitate to ask!
All trademarks and copyrights...blah blah blah.
-----
hmmm. i'd like a million dollars please.
I don't think he meant efficient, as in the efficiency of the video display adapter, but even if he did, my P120 runs the WMaker GUI much faster than in Windows, and I find it much more predictable, and easier to use than Windows.
My major problem with Windows - 1 workspace by default, and windows are handled by their applications completely - you can't move/minimize a window of a busy program, that really can piss off.. The GUI is pretty damn ugly if you compare it to Enligthenment + GNome + GTK themes, and IS easy to use, but so is WMaker's GUI, and after getting to know both, working with WMaker is smoother and faster for me.
It was mentioned multiple times about pixmaps.
Dealing with them on the server side is much faster, but it works not just for pixmaps, but all widgets. X could supply more than just primitives, but a widget set (as a library its dynmically linked to, for example), and most of the operations on the widgets could be dealt/drawn by the X server without the clients intervention. A lot of bandwidth on the client/server connection would be saved, and drawing widgets can more easily be accelerated than drawing primitives.
I think it was referred to as a 'widget server' somewhere, that could be external to the windowing system, but would be better performance-wise to integrate in the windowed system.
In other words, have the window-system mess more with the GUI, leaving the client to its more important tasks, and saving lots of bandwidth.
Yeah. And configuring the Window manager is a pain the the rear. I LOVE the flexibility of Fvwm2, but it took me quite a bit of work to get it set up to my taste.
Time flies like an arrow. Fruit flies like a banana.
- Connection speed. It's acceptable now. I can get work done over a 28.8 connection. But it would be great if the compression were internal to the architecture so that you didn't have to worry about compatibility and getting it installed on computers that you don't administer. And from what I hear other people saying about the protocol, there is some room for simplification.
- Efficiency. The protocol needs to make better use of information already sent. Invalidate-areas would be great. Additional primitives to do basic stuff like BitBlt could help things along.
- Common controls aka widgets. You shouldn't need a toolkit to draw the standard user interface. There is a lot to be said for a few simple controls built into the standard. (This might be a "layer" issue--do they go in the window manager, the toolkit, or the GUI?) I think widgets belong in the GUI so every programmer can depend on them being there. I've seen 10 different shapes of buttons, 3 major types of scroll bars, etc. etc. Make it standard, so the programmer doesn't have to worry about it, and the user understands what they see!
- Window manager/utilities. Ok, so not technically part of the GUI. But there is a lot of room for improvement in the installation process of the window manager and the utilities.
Again, I'm not an expert, but I would love to see X++ (grin) take over the world.Time flies like an arrow. Fruit flies like a banana.
I have been using KDE for awhile, and I have really been pleased with its performance. One aspect that is a little discouraging is it seems too be a resource hog on the older systems (i.e. P100 w/ 32Mb). I think that KDE blows away anything that M$ has put out. It's easy to use and highly customizeable, I like it.
I really haven't dealt much with any of the other Window systems like Window Maker or After Step, but I like their cool graphics and theme concepts.
GNOME, I've never played with this one.
about a month ago there was a post about a 3D Gui for Linux. I was quite interested and this made me go back to their website. Low and behold they've released Synapse DR1. From the screenshots i think it looks damn cool, I just used it and whoa...i love it so far...it's pretty damn nice for a developers release
Hmm, been watching Hackers a few too many times?
Really though, why make a window manager uneccissarily complex?
I think that in theory what the people are doing with Berlin is great. However, after at least a year, they don't have anything workable. The problem with all of this fragmentation (Berlin vs. KDE vs. GNOME vs. Fubar) is that it is counter-productive and leads to much duplicated effort. People need to get over the NIH (Not Invented Here) syndrome and learn to work together more. At the end of the day, if a project remains nothing more than pie-in-the-sky speculation and committee discussion, it's worthless. X is too much entrenched for hundreds of thousands of developers to suddenly abandon it and go to a 'might be' GUI platform.
'He who has to break a thing to find out what it is, has left the path of wisdom.' -- Gandalf to Saruman
"Look at fvwm. It is relatively stinky when compared with even the Windows 95 UI."
:-))
the default configuration is not nicest/best but you can configure it to your heart content and make it look like anything else (almost) and make it do whatever you want.
for example - what do you click in win9x so that the window goes behind all other windows? there's no sloppy focus in win9x. there's a lot of other examples of what can you do in fvwm (or other decent WMs) that you cannot do in win9x.
you can even have the blue screen (just use the xscreensaver), of course, when you move the mouse/hit the key the blue screen goes away, unlike that of win9x...
when talking fvwm I mean fvwm2 (current version).
erik
...all excited, don't know why...
----------------------
1) Performance due to missing and wasted functionality. The "scroll" problem is because unlike Windows & Mac, X does not support a nice scrolling functions like "copy block up and only redraw the bottom line" like Windows does.
----------------------
how do you exaplain that I can scroll netscape under X without any problems?
since I do not have problems on my machine, I believe it is more problem of the specific implementation of X server (and of course, the graphic card used) then the problem of X itself.
btw I have voodoo3 and Daryll's accelerated server. the X windows are fast like hell...
erik
...all excited, don't know why...
Actually, I saw this program in action well before Jurasic Park came out. A friend of mine worked for the Geom center at the U of M. They had a whole bunch of slick SGI boxes, for math and geometry visualization, and most of them had this program where you can fly about over your file system, height showed size, color showed last access. You could spotlight one of them, I think, and see more detail about it. It was a very cool program, but seemed like it was mostly a play thing. If you wanted to get anything done you'd use the command line. :)
Call me lazy but how many of you have been there before? I think X is way better simply because it's built in a c/s way. And can use a network pretty transparently.
Yes, it would be nice if you could administer an NT box via telnet, but that's not feasible (I know, you can get telnetd for NT, they don't work well). And yes, I know you can get VNC, PC Anywhere, etc, and it works pretty well. But it's not multi-user, and it's not the same as X!
I like X, and with a product like Accelerated X mouse response and color reproduction are every bit as good as in Win and Mac stuff.
I like the diversity of X. I don't believe that there should be only one Window Manager. I'm glad there are lots of them - KDE, GNOME, FVWM, etc, etc. One group serves one type of user very well, the other another. The linux community has become way to concerned with beating Windows. Believe it or not, there is a place for both. The last 5 years of Linux prove that. It doesn't have to be David vs. Goliath, and I would hate to see X's flexability suffer in an effort to become easier for the masses.
Jordy nearly hit the nail on the head. To elaborate, I see two main issues:
1) Performance due to missing and wasted functionality. The "scroll" problem is because unlike Windows & Mac, X does not support a nice scrolling functions like "copy block up and only redraw the bottom line" like Windows does. And thus your hardware accelerated equivalent goes unused. X doesn't have the complex "update/validation regions" This shows it is missing key functions. It's just dated.
2) No single master wrapper exists, so there is no uniform interface. Windows + Mac enjoy tyranny, and thus conformity. So all apps look the same, act the same, and have the same look and feel.
The solution, if I may so boldly say, is to learn that competition is good, but cooperation is better. Compete for a new graphical protocol, compete for a new wrapper, then agree to use the winner. Doesn't KDE/Gnome/whatever promise this?
It has been done by at least 3 teams. Check out ftp://ftp.x.org/contrib/audio/. All we need is a singular standard.
This might not be on topic but I saw a few other posts on it, so..
I don't think X has a really good, usable window manager yet. I've tried all the big ones and none of them are a well balenced choice.
There's GNOME/Enlightenment- GNOME's really buggy. Some of the apps work like they're suppose to, some don't. Enlightenment is kind of slow, bloated feeling and together use a whole lot of memory. And sorry, no I don't need midevil decorations on the edges of my windows. I do like the 'feel' of GNOME though.
KDE- Nice features, some cool apps but it's way slow and uses way too much memory. It feels a little too much like windows to me.
Both of these have reset on me for no reason back to the default desktop and all my settings were gone. They feel kind of unpredictable.
WindowMaker- Quick, feels light and stable. Just not that flexable. For instance, you can't maximize a window to full screen and then back to a small window. It just doesn't have the features of GNOME or KDE.
I hate to say it, but I fired up win95 the other day and was suprized at how easy to use the GUI was. After being on Linux for a while using windows for every day things was easier. Don't get me wrong, I'm not saying windows is better but it's UI is smoother and more predictable.
X needs a WM with the lightness and stability of WindowMaker, the feel of GNOME and the features of KDE.
Just my opinion, what does everyone else think?
"We are desparate
Get used to it
We are desparate
Get used to it"
-- X
(The window system or the rock
band? You decide.)
X should be run *on top of* a window manager program, protocol, whatever you want to call it.
Instead we have window managers forced to run under X.
As a 2D raster graphics library X is pretty good, certainly not perfect but workable. But not everybody wants to run 2D raster: there is 3D like OpenGL, 2D floating point like Display PostScript, even direct frame buffer access for live video.
The job of a window manager *should* be to divide up the frame buffer and stop programs from clobbering each other, nothing more. X programs would draw using X calls, OpenGL using GL, etc. But because the window manager is an X program, every other kind of graphic program is forced into using the X model of how the display works. Hence all the GLX extensions, XIE extensions, Display PostScript extensions...all of which are hacks to X to make it work right for these other kinds of graphics.
Hugh
Fonts under X were painful to use even by the standards of 1987 when X was introduced, and are just pathetic today.
... all of which leads to those wonderful font names like
0 -iso8859-1"
With a Mac/Windows/BeOS graphics library, you as an application programmer just write code something like "Give me a Helvetica 10 point font in italic style". With X, you have to know the character set encoding, the foundry, the display resolution, the weight,
"-adobe-courier-bold-o-normal--12-120-75-75-m-7
Ack! Even worse, this notation *has* to be used in X resource files and other preferences.
Now, there are people like page layout specialists who actually care whether the font comes from Adobe or Bitstream. But what they want is to be able to say "Switch from the Adobe font folder to Bitstream and redisplay", not the anal level of detail that X requires.
Worse still, X is still stuck with these awful bitmap formats, several years after Mac and Windows switched to outline. (BeOS was outline from the start.) I'm not sure exactly why, but the complexity of an X font specification compared to anyone else (the "m" in field 11 *might* be important to the user) no doubt contributes.