X Windows Must Die!
Kernel Sanders writes: "I frankly don't see much light at the end of the tunnel. X is too deeply embedded in the Unix world to be easily dislodged, and the lack of a GUI standard on the platform doesn't appear likely to be resolved. Maybe the embedded space can offer some salvation -- programmers will *have* to forgo X to run on smaller devices, and perhaps this will be the wedge that gets X out of all our lives."
Smaller and cheaper than the iPaq?? With 32MB ram and 16MB flash??
-russ
Don't piss off The Angry Economist
How close is this DRI system you're talking about to fruition? Think it'll be put into a 4 release or will we be waiting for 5 before this happens?
+++ATH0
On the contrary; let them live. If they're not sleeping and instead coding, let 'em at it. (Geddit? 'Doze? hehe!)
Argument: "X Windows must die!"
Counterargument: "It's not called X Windows!"
Sheesh...why don't you put it on your resume that, gee, logical thinking just isn't your forte?
Also, X supports a wider variety of input device technologies, and it's easier to create new ones for X than it is Windoze.
I'll say it. If it ain't broke, don't fix it. I love X, and won't give it up. The size is trivial for today's machines, and it's still smaller than Windoze. Significantly faster, too. Furthermore, with QNX and LynuxWorks (formerly LynxOS), embedded is moving to X, not away from it. Expect smaller, faster, cleaner unix in general, including X...The article sounds like sour grapes, to me.
"The Internet is made of cats."
XFree86 4, in CVS, includes code to do X with a resulting binary of about 600Kb, apparently. That sound pretty anti-bloat to me.
Personally I don't see a need to take X behind the shed and shoot it -- it has a good extension system to provide new extensions like anti-aliasing, alpha-blending, etc. -- and there are people working on the opposite direction, stripping it down.
And the network transparency is an incredible feature.
If the original designers of Unix had thought a little harder, both ^H and ^? would have done backspace, and we never would have had this problem!
fwiw, I'd be willing to write proper device drivers.
... to quote one of my friends, "There are no fucking attractive alternatives!"
Well, there IS NeWS. ("KNEE-wiss", not "news") Or at least there was. Built on Display Postscript. Nothing in the standard window management defined in terms of pixels (so the screen resolution didn't foul you up).
Big complaint is that, while it had a lot of handy capabilities it was somewhat slower than X. That was a decade ago, when processors were a LOT slower, AND NeWS didn't cache fonts. But that was then.
With today's processors the differential in speed might not be a problem. Either would "snap". And NeWS should be an ideal vehicle for taking maximum advantage of graphics accellerators, which might make it pass X.
(Or at least I THINK it would be good. I haven't been into the guts of it.)
Grasshopper Group (Gillmore, Henson, Daniels, in no particular order) did a quite workable one for the Apple Macintosh running A/UX about a decade back. When Apple wouldn't let developers know who was using A/UX OR forward mailings, they cut a deal with Sun to do an X/NeWS merged system. Which Sun then dropped, but wouldn't release the rights to their code.
Maybe, after a decade, Sun might want to reconsider and open-source it. That would provide a nice starting place.
If not, what was done once can be done again.
Name stood for "NEw Window System". Maybe it could be resurrected and renamed OlWS. B-)
Bantam Dominique roosters crow a four-note song. Once you've heard it as "Happy BIRTHday" you can't NOT hear it that way
Sorry about the delay in replying - I rarely get time to check the web outside of work. But anyway, what is a 'corporate rock pig'? It simply means I pay the bills by working as a programmer, while wishing that my beloved band (killingmiranda.pair.com - sorry for the Shockwave nonsense, the guitarist did it) would get a *real* record contract ...
The pig part relates to our reputation (in the UK at least) for being alcohol fueled maniacs. This doesn't stop us selling several thousand CD's a year, or playing some quality gigs. In the last month alone we've played London twice, Leipzig in Germany and Oporto in Portugal. Fitting that in around work is a nightmare though.
Chris
I don't want Unix locked into a GUI that never changes ever again. And as a programmer, I want to be free to experiment with new (and perhaps better) GUI ideas!
All these suggestions for "consistentcy" will mean total lock-in. As I have said many times, if X was designed this way we would be using the Athena toolkit, have NO CHOICE about it, and pointing out the fact that all our applications agree about the reverse-video setting would be considered a laughable argument.
And the CTRL/ALT crap is MicroSoft's fault! Everybody used the Alt key before, becuase it was in the similar location to the Macintosh Apple key, which was being copied. MicroSoft came up with using the Ctrl key for some of their shortcuts, and in fact they are tremendously inconsistent. But I will blame programmers everywhere for failing to do the simple thing: make BOTH keys work! That's not too hard, is it?
WM_LBUTTONDOWN WM_MBUTTONDOWN WM_RBUTTONDOWN
Gosh, what are those things starting with 'M'?
In fact, unless the mouse designers were idiots, that is what is produced when the middle mouse button or mouse wheel is clicked.
However, programs often treat the middle mouse button the same as the left one, which is a better idea than ignoring it. There appears to be no standard for what it should do, at least X has the pasting standard (which I like, it is actually better than dnd since I don't have to hold the button down and can raise windows before dropping).
The astounding thing about X is how much code it needs to do almost nothing. Window management is up to a window manager. Hardware specific code is up to a device driver. Gadgets and such are up to higher-level libraries like Qt. Standard GUI niceties are left up to desktop environments, like KDE and Gnome.
The truth is that it takes very little code to do what X does. One of the most minimal windows managers for X, Blackbox, is approximately 12,000 lines of C++ (the author likes to give a line count). Think about that. 12,000 lines of code to simply act as an interface between you an X in a very minimal way. You could write an entire GUI, including hardware-specific code, in 12,000 lines. Maybe it wouldn't be KDE, but it shows how far off base we've become. Don't believe it? here is a functioning GUI, which doesn't use any external libraries for graphics, done in a few kilobytes of object code.
I trust nothing from the unix-haters handbook. By defined, they cannot provide an objective evaluation! Gah!
I can't say where the GUI debate will take UNIX's, but I would recommend the following :
First, write a version of X that bypasses remote display completely, speeding up the interface. Do this by implementing standard Xlib functions in a non-standard way. Don't use sockets, don't use anything that will slow down graphics display. Those who want speed can link with fast libraries. Those who want remote display can link with standard X11.
Next, begin work on a new, improved GUI with STANDARDS!!!!! I'm a firm believer that there is a GUI that is both easy-to-use for secretaries (read Adminstrative Assistants), and highly customizable so coders don't have to admit they're using something built for MBA's.
Undoubtedly, this will be a long road, as all major design changes are, BUT IT HAS TO HAPPEN if Linux is to take over the desktop.
I think you've been taken in by buzzwords. It takes no planning for a windowing system to be able to "morph" into being able to use X Windows. Take a look at Microsoft Windows. Do you think they had X Windows or network transparency of any kind when they developed Win95? No, but there are X servers out there for Windows that will draw X apps as native Windows apps (so that they are indistinguishable from native Windows apps in terms of look and behaviour).
Personally, I think the correct approach would be for a windowing system to be completely local. That way, you can slap on a light-weight X server or whatever server if you need remote capabilities. No "morphing" required. This is what (I believe) the first incarnation of Berlin was, but unfortunately they've hopped on the remote object bandwagon.
I'm not an X hacker, but I'd guess that if you wrote a new window system that was not network transparent (which would make it simpler to design and implement, I suppose), it would involve MUCH more than an 'add-on package' to add network transparency (which I believe is done in the X protocol currently).
But correct me if I'm wrong...
That depends on your definition of success. The BeOS port is reportedly pretty flaky at the moment, but I'd say the Win32 port is almost there. Certainly it's usable today (it's good enough to run gimp under Win32), even if it's not yet quite as stable as the X version.
"The invisible and the non-existent look very much alike." -- Delos B. McKown
Sorry but QNX's preferred graphical engine is not X, it is Photon.
There is an X port but it is based on X11R5 rather than X11R6.
I suggest you made a quick visit to this page in order to investigate both of these.
--
Trolling using another account since 2005.
What your basically is saying is: Screw X. Everything in it is bloated. Let's get some people team up to create a new and better interface that'll beat X anyday!!!
However, X is what it is. Alot of experience and effort has been put in it. It doesn't try to define more than it is. In such way, it is much cleaner, portable and flexible than most other GUIs out there. Why go into the same traps that other OSes have gone into? You have to be willing to sacrifice something for choice. And it's not like features can't be turned off. If you want a faster X, why don't you just tweak the source and get it much faster? Can't be that hard to turn off the "slow" networking part. However, I doubt you'll notice much difference.
I'd say it's not worth to remake the wheel just because it's ugly. Though, I'm happy that people are investing time in proving me wrong. I make a different choice in what I'll use for now though.
- Steeltoe
http://www.debunkingskeptics.com/
Ummm ... GTK+ has such a layer. It's called GDK.
The GDK library provides a layer of abstraction that sits between GTK+ widgets and applications and the underlying windowing system. Instead of making calls directly to the X window system, applications call GDK when they need to draw to the screen or handle events.
This extra layer of abstraction provides several advantages. First, it increase portability. Porting GTK+ (and hence, to a large part, GNOME) to another windowing system reduces to porting the GDK layer. A port to Microsoft Windows has already been done. Also, it allows GTK+ programs to transparently use a number of X extensions that may or may not be present. If they are not present, GDK provides substitute functionality in terms of standard X calls. Finally, in many cases, the GDK calls are simpler than the corresponding X calls. Some rarely used parameters are omitted and the correct values for other parameters are determined automatically.
----
Celebrate the finer things in life
I can't speak for Qt, but GTK+ is not built on X. It's built on gdk, and GTK+ apps will run on any platform that gdk does. Yes, gdk was originally built on X, but it has since been ported to Win32 and BeOS, and work is underway porting it to Microwindows/Nano-X.
"The invisible and the non-existent look very much alike." -- Delos B. McKown
I program embedded systems. We are switching our Os from vxWorks to linux, because linux has some features we need. (We are accually doing a hybred, some processors will still use vxWorks, where they do real time processing, but those that just control the box are going to linux.
X is a big advantage to us, and the biggest part of it is remote display. We don't have a display of any sort on the machine, nor a keyboard. If we want to run a program it has to display across the network. I can log into whichever processor I need, start a xgdb session back to my desk and debug. Sure there is remote debugging in gdb, but that doesn't work so nicely.
I think you will find more embedded systems devoplers going to X because is allows them to remotly display debugging back to the desktop. There are free implimentations of X, and plenty of libraries and expirence working with it. Drop that into the box, and once it works anyone can use it.
No, we don't want windows. You can have themes without X.
---- ----
Napster-to-go says "Fill and refill your compatible MP3 player", which is a lie. It's not MP3. It's WMA with DRM.
They can come up with such negative comments on it because they don't really understand it or the ideas behind it and also the idea of choice and being able to use what you like and not to be constrained to one persons idea of how something should be done.
depends on whether you even have one -- I have a wheel :). If you do, most mouse drivers let you choose the behavior. If you want it to be a double click, it will be. If you want it as another left mouse button, it will be, etc., etc...
I registered my hate for Jon Katz
Why do so many people consider these to be diametric opposites? You CAN have both, you know. X is abstract. VERY abstract. And with plugins like DGI and glx, you can get direct access to hardware. Now, it still needs work, but there are ways of streamlining the pipeline giving you fast local hardware access while still giving remote displays.
"One or the other" seems like a very Windozy viewpoint.
--Elrond, Duke of URL
"This is the most fun I've had without being drenched in the blood of my enemies!"
Elrond, Duke of URL
"This is the most fun I've had without being drenched in the blood of my enemies!"-Sam&Max
From X(1):
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
X Window System is a trademark of X Consortium, Inc.
Or at least, the band have played, even if you haven't -- you've been strangely absent the last couple of times I've seen KM! (at Gotham and supporting Christian Death).
"The invisible and the non-existent look very much alike." -- Delos B. McKown
Programmers do not want to be forced to use a "toolkit". They will use one, but they want to know they have the freedom to replace it. X (and even the Win32 GDI) are much better than NeXTStep in this regard.
I worked on NeXTStep for 2 years, and hated every bit of it: I wanted a program to not display a menu, and that could rise above the "dock". Simple, yet impossible with NeXTStep. I instead wrote a toolkit from scratch, and realized that this is easier than interfacing to an existing toolkit!
Programmers of these systems should swallow their egos and realize that any doofus (like me) can make a functional button or menu. We need the "hard" stuff: fonts, images, high speed complex graphics. Get to work and stop wasting our time with enforced toolkits!
How odd. If it's not X, it must be M$ware? Expand your world-view a bit. There have been many other, networked and non-networked, window systems for Unix machines. Sun had two. Apollo had one. SGI of course had graphics systems that could blow the doors off anything you see under X. There were dozens of others. With the exception of Sun's NEWS system, none of them had the performance constraint of handing off all the processing to a separate process via badly designed RPC. All the performance hacks to X (sound, video...) have required bypassing that protocol (and thus losing the remote capabilities). And, contrary to what another poster said, this has nothing to do with desktops. The question is whether X hurts Unix. And there is no question at all that it hurts peformance. The only thing X gives you that another remote-control mechanism wouldn't is the ability to run specific applications remote, and the ability to run multiple users remotely off a single machine. Those are useful in a client/server environment. They aren't useful on an end-user desktop.
On the one hand we see terror because MS ties up the PC market. It's a monopoly, there is only one way of doing things, and it's not only bad software, it's a *boring* world to live in.
On the other, we have open standards, and things to choose from, and the same people who hate Microsoft want a GUI standard on their Linux boxes.
Sheesh.
At radsoft.net we're putting together an open source cross-platform HTTP client project and we *want* competition, we do *not* want to have any standard.
The plural of spouse is spice.
RD/Jcc
radsoft.net
Quartz is based on the PDF format (see AppleInsider or Apple's OS X site), but nobody seems to mention the remote display possibilities. It seems if they could do it with display postscript they can do it with Quartz (display PDF?). Of course, I seem to recall that NeXTSTEP had a vulnerability with its remote display setup...
-- gf
Excuse me but, the X Windows System is NOT a Joy to work with my friend.
Well, I'd like to start by commending all the XFree86 guys for doing such a excellent job with XFree86 v4.
I know we shouldn't complain because it's free but someone should really(as politely as possible) try to convey where the system is deficient. If we don't say anything, it will get worse.
My performance has improved a _lot_ from v3 to v4 (on Red Hat Linux 6.2),
Speed is not the real issue. I consider myself to be a pretty savvy Linux user since 2.0.34 and I still don't understand X. I've learned my way around through hard work like analyzing the Video Timings HOWTO or by applying whatever little tips hand hacks I could find. X is just too complicated. I have no idea how all of the resource files are actually laid out and there simply is no sane documentation on this stuff.
and the support for modular plug-in video drivers is a real bonus.
Mmm, so when would you really recognize this as a "bonus". Do you switch video drivers on a regular basis or something? This is really just a part of the build process labeled a feature.
This sounds like a plea but in reality it's denial. Perhaps the system should be something to "dump pixels to the local display". This should be an option. But the option should not be cryptic code in a so called configuration file. I like vi administration. But these configs are abominable.
This and the fact that nothing else I am aware of yet comes close, is one very good reason why its used today as the GUI by Linux, BSD and other *NIXs.
It's also very sad.
The thought of replacing X with an alternative that offers the same functionality and support, yet is faster, leaner and better designed is a huge long-term project, and joining such a project is going to mean more than just a few late nights.
Oh, ok, well then let's just give up on developing this area and accept X as the final product. Shudder.
Seriously, this is not true. Surely it would not be trivial but there is a concept in programming that is becoming readily clearer to programmers. If you can divide a problem into two parts cleanly you have more than reduced it's complexity by half. Actually if you don't break up such a problem as this into many subproblems the program will never reach maturity because the dependencies within cannot be understood by more than one person. Even if one person does understand the entire program it is an impossible amount of work to make even the slightest change because these procedural oriented dependencies transcend the system.
With a good object oriented design it should be possible to librarify everything and maintain good performance. Thus we would no longer be developing an "X Windowing System" as it is known. There would be several groups of developers, one writing the font renderer, another tweaking graphics routines, ...etc. This cannot be done with the current X Windowing System because to add something like a graphic routine primitive would require knowledge of many other dependencies.
Now I'm making these particular examples up because I cannot even begin to come up with a good object oriented design for a graphics subsystem such as X. That would require someone who is familiar with existing graphic subsystems from which they could learn about what is required, what has worked, and where the system can be improved. Only then could such a person rationally create an high level design and begin to cleanly abstract pieces that could be delegated to otherwise unrelated teams of developers.
This design admittedly would have to be a very clever because you do not have the luxury of making many objects and abstracting the smallest of details(ie have an object for every potentially displayed character). This would be too costly. Perhaps objective c can help here. Right now X is not OO at all and this will not do. You need OO data types.
When I demonstrate Linux (with GNOME + SawFish) to people who have never seen it before, they love it. Why? Because it is well designed and things fit. Just because something is radical doesn't mean its going to be "better", particularly given existing user experience and training. There are too many exciting developments to spend time going through them all here.
People may like it initially but in reality I believe most of this functionality is cosmetic. There have been no additions to the X window system for as long as I can remember that really improved overall functionality. For example you cannot easily change the resolution of the screen. If they where required to use it for day to day office like activities I'm afraid they would come to hate it as would any group attempting to support it although the primary reasons for this are not the fault of X.
The current outcome? The combination of GNOME + SawFish WM + XFree86 v4 + Linux just blows me away.
Again, it make look cool but it doesn't impress anyone who has to just get some work done. I would have thought that X would have made more progress by now. When I see v4 I am willing to bet it is no different. Same awful configs, messed up keyboard and mouse problems, and of course there is now way a new version of X could solve the incompatibilities of layers above. Shouldn't it be effortless to specify a window manager such as WindowMaker without editing configs?
Want games with that? How about Quake III Arena with full 3D acceleration?! Now _that_ is a nice environment.
I don't care about games and acceleration too much alltough I believe this cannot be ignored as there is a great demand for it. But regardless of it's performance with Quake if it doesn't address some of the fundamental usage problems I fear everyone dependant on it will loose to MS.
EXAMPLES OF PROBLEMS:
1) Changing the color of a font for the system. I tried editing app-defaults to no avail. Properly designed software should provide a clear way to set such runtime constants in a clean way.
2) Interactions between all of the various componentry that might be layered on top. It's difficult for the user to manage window managers and desktops let alone try and troubleshoot a problem by trying to understand conceptually whats going on underneath. Perhaps interfaces at the various layers should be more clearly defined. At least guidance on good X programming etiquette should be provided and enforced.
3) Inconsistent usage by other layers on top. Perhaps they should have provided a bit more structure the windowing APIs. i.e. applications could be required to provide proper class attributes so that the window manager can properly handle the apps properties.
4) Poor mouse control. At high resolutions the parameters controlled by xset are not satisfactory to allow fine grained mouse movements.
5) Most importantly, don't assume users don't want to know whats happening on the inside. Savvy users should be able to explain the design and make educated judgements about what problem is coming from where based on that knowledge. This is where Microsoft has failed. I would rather have something with less functionality with hope of improvement than a black box.
KidSock
Perhaps I've never had a problem because I almost always use the middle mouse button. There are *some* circumstances where I must use shift-insert, though.
I would image kill/yank would use the X clipboard, though. Perhaps your version uses the anachronistic cut buffers?
Actually, I got it from the fortune db. It was the first list in a list of lists. I should have attributed, you are right. It was an exciting time in my life. I love Jana.
"You could just as well call Perl a clean simple well designed language with an easy to learn syntax, if you're going to distort the facts so grossly. "
:).
As a Perl hacker, I resent this. Perl is nothing if not easy to learn. You can code Perl that looks like C, if that's what you're used to (I was). You can code Perl that looks like Sed, or BASIC, or shell scripting - If you know one of these, Perl just requires adjusting a few switches in your head.
Effective Perl programs can be written only using a small subset of the language. Don't like (or haven't learned) its OO? Don't use it.
Perl is also simple. Instead of forcing you to tell it exactly what to do, it has sensible defaults, like $_. It does what you expect - and if you prefer something else, you can make it do something else.
WRT your article, it was dead on ten years ago. Now, X has a whole different set of problems
To plug NeWS as a solution is ridiculous. NeWS is dead. It could only come back if Sun freed the code, and if dedicated hackers ported it to Linux and made an X compatibility layer. And they won't do that, because they don't understand Freedom. We can't use a windowing system that's not Free (as in speech), because we can't improve it, or fix its bugs, or port it to our processor/OS/video card.
-Dave Turner.
Become a FSF associate member before the low #s are used
Yeah, check out WiredX.net. It's a java X server, so programs like IE can display your pretty X desktop
What does this have to do with X (do not call it X Windows, please, that's just wrong)??? X is being developed by a group who, in a broad sense, shape it towards their needs. Want to change something, GO AND HELP by coding or giving sound guidance. And be prepared to be judged harshly.
Personally I'd hate to see GNU/Linux converge onto one windowing system. It doesn't even remotely exist to beat this "other" OS. Give up that notion, and open your eyes.
Thanks for replying! Have a good one.
by Bandazaar
The writing of history is largely a process of diversion. Most historical accounts distract attention from the secret influences behind great events.
-The Bashar Teg (Chapterhouse: DUNE by Frank Herbert)
There are a LOT more things wrong with X fonts than just the lack of the ability to anti-alias (which is really just eye-candy).
... yay, bloat)
The problem with X is that you can't really get anything but glyph bitmaps from the fonts. Even when you're using a scalable font -- it still rasterizes the glyph at the requested size and then sends you a monochrome bitmap.
You can't get kerning info, you can't get unicode mapping tables, you can't get various other glyph metrics; the list goes on and on.
No arbitrary linear transformations of glyphs either -- at least not unless you want to do it yourself after-the-fact on a low-resolution monochrome bitmap.
Okay, let's say you request a glyph bitmap much larger than you actually need, so you can transform/antialias it and then scale down (this is what The GIMP does, for example).
Whoops. Most X font servers crap out above a certain glyph size. (last I tried, XFree86's did)
I'm a graphic designer and a programmer; I know what I need from a font subsystem to do more than simply display some text, and I know X's font subsystem would have to be replaced for me to get it from X.
(and note that thanks to the existing design, the replacement would have to be incompatible, or you'd have to implement both the old and new protocols, duplicating a lot of code
DNA just wants to be free...
With Linux, that's impossible. First, there are many distributions. Even if we look at only the top 5 distributions for workstations, there is little chance that a program will run flawlessly on every one of those distributions. Each distribution has its own directory structure, version of glibc, kernel version, X version, package manager, etc. And with X, you don't know whether the person is running KDE, GNOME, AfterStep or the ten thousand other possible windows managers. In short, it's imposibble to know that your user will be using. So that forces commerical developers to develop specifically to one distrib^H^H^H^H^H^H^H version of a distribution. Most applications can run the same on Windows 95, 98, NT4, or 2000. Yes, there are some exceptions, but in general, a simple application will work find on any of the version. With Linux, that's impossible.
Then, by the time that application is finished, you have a new version of the Linux Distribution (meaning that it may or may not be compatible), a new popular window manager, and thirty other changes. If you actually do release it, you will then be attacked by every serious user for not supporting their distribution.
Don't think that I don't support Linux and Open Source software. I do. But there are many problems that don't allow commercial support of Linux. And that's crucial for Linux's success in the desktop market. I'm not saying that you have to take away choice. But there has to be a standard of Linux distributions, so that a developer knows that his system will run on any distribution that follows the standard. That X will have a window manager that will display the program the same as if it was displayed by a different manager. That the standard X extensions needed will be there.
If a standard is reached (which it never will be), Linux can actually become a good platform. But a standard never will be reached, because everyone is shouting that choice is needed and that there shouldn't be a standard (It's ironic that IE is hated by the same people because it doesn't support the standards). And because of such people, Linux will never be a good replacement for a desktop system.
Did you read the piece? The author's biggest problem is X's code-bloat (I can't testify for or against that). He isn't forcing any standards down anyone's throat. In fact, he wants more features, e.g. anti-aliased fonts.
grep -ri 'should work'
Oh, he forgot to mention that X isn't Windows. It's a PROTOCOL.
It's made to be flexible. Windows is made to be just beautiful. It's made to be stable.
Windows is made to be stable (hahaha great joke). X is made to allow users to user remote displays. I may not be an expert, but at least I know when something is very stupid to compare.
Ah!!! Let's remember him: Unix was made mainly for servers. So, it's highly reliable. Windows is made for lame users like he seems to be (not saying he is, saying he SEEMS to be) and small companies who don't really need high reliability.
About fifteen years ago, Sun pulled a classic move akin to the blunder Apple made in not licensing the MacOS. Sun had a beautiful system called "NeWS" (for "Networked Windowing System"). It used PostScript for the basic rendering model, but added interaction, threads (!), object-oriented programming, and networking. Windows were defined by PostScript clipping paths, which meant you could have a window shaped like a text string if you wanted (years before X added the Shape extension). It was more powerful than Display PostScript (which, I think, came along a little later), and like the Berlin Project, widgets could be run server-side. You'd send PostScript code (which could contain objects, threads, etc.) down a socket, and the server would execute it. Like eXene, which runs under Concurrent ML, you could, conceptually, at least, make an object in its own thread that was a widget. No callbacks - just a while (1) loop (well, a tail-recursvie function in eXene - CML is functional).
But Sun wanted to keep full control of NeWS to itself (just like with Java nowadays). It pissed off so many people in the community that everybody else got together behind X, knowing full well that X was much worse. As it was once explained to me by Andy van Dam, the industry settled on a steam locomotive because Sun didn't want to share their bullet train.
NeWS of course died a slow and lingering death. For a while, it was included as an extension to Sun's Openwin X server. It was fun - you could scribble all over the root window with PostScript with a couple of lines of code. Eventually, I think Sun dropped NeWS entirely because no one used it.
An old story.....
-----
Klactovedestene!
the Win32 port is almost there
...
Time I took another look then. Until now I've had to use some god-awful Motif porting tool whenever a GUI app I've written on Unix needs to run under Windows. Being able to concentrate on the underlying code rather than the GUI would make life a lot easier. And coding in GTK+ rather than Motif would be great
Chris
fud, fud, AND MORE fud.
-- "Perceptions create reality. By changing your perceptions you change your reality."
You can use WierdX which is a GPL pure Java X window system.
Where did you find a Java Terminal server client, and does it work with the newer terminal services in win 2000? Is it available publicly?
Thank God for an X-less Unix environment. I mean, who wants the masses to use anything besides windoze? What better way to accomplish this than by destroying their only real way to connect to linux.
Bad spellers of the world, untie!
Uhm, X cannot handle modern displays? It works fine at 1280x1024x32 (at least until my monitor stops working --- crappy 15"). It supports glx and dri, which provide 3d acceleration capabilities.
As for fonts....
X supports most font types imaginable. Either X or its font servers (XFree 4.0.1 supports these fonts natively) support various Adobe types, e.g. Type1, bitmap fonts, speedo fonts, *and* the usual truetype fonts.
I hate logical font descriptors, and that is why I say X needs work on fonts, but otherwise it is fine.
Stop spreading this myth!
There you go: the X windows disasater
/. as well. Just get him started on the topic. :)
Possible the greatest work of literature ever written about X. Guaranteed to entertain you for several minutes at least. I think he hangs around
Really, it's solid stuff. Think about it, instead of having a knee-jerk reaction.
w/m
X has some...unpleastness, but it's also incredibly flexible and useful. Remote display absolutely ROCKS. Window manager independence makes be drool. Widget choice makes me horny. Etc.
I'm not saying we should keep the problems as some kind of testament to the good features--I'm saying let's not throw out the baby with the bathwater.
--
Linux MAPI Server!
http://www.openone.com/software/MailOne/
(Exchange Migration HOWTO coming soon)
Hmm... well, if you took an Object Oriented approach to it... you could theoretically (god I can't even spell that word) abstract the "DISPLAY" into a class so that if you want to add remote displays later, you would just have to implement a new class to do it.
If a new system was designed with the possibility of these types of add-ons in mind, it would probably work out nicely. This is a project that I thought about working on about a month ago. I decided against it because I didn't think people would take interest in it. Maybe, it's not such a bad idea.
--
"What do you want me to do? Whack a guy? Off a guy? Whack off a guy? Cause I'm married."
It is only a more natural expression because *you* happen to be more used to referring to a trademark of the Microsoft Corporation than using the proper term. Using incorrect terminology just assists those wishing to create their alternative view of the world. Read some George Orwell and be happy. :-)
X is highly polished and efficient distributed graphics protocol. Berlin is based on CORBA - the most awkward and bloated programming interface known to man - go to www.omg.org and research it for yourself. Especially read about the sub-optimal IIOP on-the-wire marshalling for basic data types. But what am I thinking? Of course you won't. You just like to spout tired old cliches.
There's Berlin (Still kind of slow and buggy right now). You could always just replace the Kernel with Atheos which comes with its own GUI. or even port the GUI bit to Linux. there's probably a smattering of others too. Developing a GUI isn't a problem. Its getting others to support it.
http://www.berlin-consortium.org/
Still unstable, but getting there!
How is this only up to a 2? That "You'll envy the dead" line got me to laugh out loud. Thanks.
My other
So X needs to be improved. All software can be improved, but we don't necessarily need to dramatically change X, or rid ourselves of it. Ridding ourselves of X would be very difficult, but perhaps we can optimize how it deals with users and hardware. XFree86 4 improves upon this, and I look forward to seeing newer versions of X that blow other proprietary interfaces out of the water. I, personally, have no problem with X. Sure, it can be a pain in the ass to set up sometimes, but the openness of it is great. I've changed my WM several times in the past few months, and have settled upon Window Maker. But I don't have to, and that's the point.
programmers are notorious for sticking in new features rather than fixing old bugs
Does this guy work @ M$?
No sharp objects, I'm a programmer!
An interesting article, yes. Considering its a part of the
... because it is in a <em>different way</em> that you should think of yourself, the user, as the client of the machine that holds all your software for you (the server). Being the client of a client of a server isn't that strange when you work in a manufacturing field, but for some reason, Comp. Sci. people have brain deficits in these ways and see normal human beings as stupid or silly.</P>
<blockquote>For some perverse reason that's better left to the imagination, X insists on calling the program running on the remote machine "the client."</blockquote>
<P>To help the author out, the server is the machine or more appropriately, software, providing a service. The client is the software needing the services. Labelling machines as clients and servers is not necessarily the 'right thing' unless you're running a large VAX machine with dumb terminals. At any rate, it seems obvious, when you understand how X was designed to work, that the software package needs a number of things to be able to work. It needs a screen to display on, and a keyboard to get input from or maybe a light pen or plastic rodent thing. It needs a font management utility and basically anything else that would help it talk to the user.</P>
<P>Putting most or all of those 'services' into a package would make it the 'server' software. Thus, X is the server and the software package is the client.</P>
<P>If you still think this is strange, you're not allowing for the possibility of multiple layers of abstraction
<P>To give credit where credit is due, the author does manage to pull out a lot of features of X that were added, naturally, as after-thoughts because the hardware didn't exist yet. That said, the 'other answers' (ahem, Windows or BeOS) don't really excite me much, and I'd be much more impressed with a ground-up redesign of X.</P>
- Michael T. Babcock (Yes, I blog)
An interesting article, yes. Considering its a part of the Unix Haters Handbook, I had a slight smile before even starting to read it. The writer's inability to understand why clients and servers are called clients and servers on X was what made me laugh first.
To help the author out, the server is the machine or more appropriately, software, providing a service. The client is the software needing the services. Labelling machines as clients and servers is not necessarily the 'right thing' unless you're running a large VAX machine with dumb terminals. At any rate, it seems obvious, when you understand how X was designed to work, that the software package needs a number of things to be able to work. It needs a screen to display on, and a keyboard to get input from or maybe a light pen or plastic rodent thing. It needs a font management utility and basically anything else that would help it talk to the user.
Putting most or all of those 'services' into a package would make it the 'server' software. Thus, X is the server and the software package is the client.
If you still think this is strange, you're not allowing for the possibility of multiple layers of abstraction ... because it is in a different way that you should think of yourself, the user, as the client of the machine that holds all your software for you (the server). Being the client of a client of a server isn't that strange when you work in a manufacturing field, but for some reason, Comp. Sci. people have brain deficits in these ways and see normal human beings as stupid or silly.
To give credit where credit is due, the author does manage to pull out a lot of features of X that were added, naturally, as after-thoughts because the hardware didn't exist yet. That said, the 'other answers' (ahem, Windows or BeOS) don't really excite me much, and I'd be much more impressed with a ground-up redesign of X.
- Michael T. Babcock (Yes, I blog)
I'm not saying the designers of X, or its hypothetical replacement, should design the widget set. But neither should the designers of X applications choose the widget set, as is done now. That choice should be up to the user, by configuring the display server (i.e., the workstation).
Here's the scenario: an X application resides on a departmental server. The users of this app have various types of boxen on their desks: Linux, Windows, Mac, etc.
When the application starts, it sends a message to the workstation, saying "the application has a 'File' menu, containing the following items ...": no description of how those items look, where the menu should appear, etc., just an abstract description of the menu contents.
When the application is run from the KDE box, the workstation software interprets the menu description and renders it on-screen as a KDE menu; the Windows box renders it as a Windows-style menu; and so on. In a configurable X display server, the user could change a display setting, and presto! the KDE app is magically turned into GNOME app.
Because the display software, not the application, would determine look and feel. And thus the application could adopt *any* look and feel that the user desired, without having to be ported or even recompiled.
Well said!
[ Blairism is the continuation of Thatcherism by other means. ]
Why not submit your patch to the maintainers of GNU getopt() then? Why do the former poster want an _alternative_ if an improvement is good enough? I see that as unnecessary fragmentation. Fragmentation is not always so healthy. That's what the people dissing UNIX for lacking a standard GUI is arguing about anyways.
And if an alternative is really called for, whats the use in whining about it?
- Steeltoe
http://www.debunkingskeptics.com/
X is not an OS. Windows and MacOS are.
X starts faster on my box, too, but Windows starts up faster than linux --> KDE.
A true minimalist (when not in text mode) would probably be using Athena, not Motif...
:)
--Phil (Then use lwm and you should be set.
355/113 -- Not the famous irrational number PI, but an incredible simulation!
another very interesting point about open source not lending itself to r&d (and something that has been discussed and i'm sure will be discussed more in the future). but there's a couple of flaws here. it's not that "user testing" is unknown to open source coders. i would argue that open source coders do a lot more of it. they just have different users for the most part. when you release your code with your software, and give an email address, you can expect to get feedback about said code from your users. the problem for monty manley is that there is no "user testing" to joe schmoe software user. but, joe schmoe software user isn't using the open source stuff yet, and hence isn't a user. it will be the responsibility of players like corel and red hat to do new usability testing with desktop people they hope to reach, but "user testing" certainly hasn't been ignored.
the worst, though, is the last statement. it plain old doesn't make sense. the argument is that if you reengineer someone else's visual designs your code will be bad? give me a break.
osopinion articles are quite often written this way, which is extremely conterproductive. i think the author has some really good points. i wish there weren't so many throw away, unproven, useless statements sprinkled throughout that do nothing more than enflame dissenters and confuse people unaware of the issues.
The idea of an abstraction layer is that it's rewritten (as much as required) for each platform it provides an abstract interface to. Of course GDK would be rewritten, thats what it's for. It's primary purpose is to provide an API wherever it is ported to/written for, not to be even more legacy code that needs to be ported.
-- http://thegirlorthecar.com funny dating game for guys
The X Consortium requests in their documentation
that it not be referred to as "X Windows".
Acceptable alternatives:
X
X Window System
X Version 11
X Window System, Version 11
X11
Have you actually set an X resource in your life? Motif can be *made* to look nice. Simply because it isn't by default, like GTK+ is, doesn't mean that it is crap.
I would *prefer* working with GTK+ or Qt to working with Motif, but Motif is by no means inferior, and, in some ways, is superior. I *like* X resources!
X has shortcomings. Its only real strength is remote display. Nearly everything else -- drawing model, font support, speed, complexity/bloat/instability -- is NOT good.
VNC is faster than X over a slow modem. I regularly use Xvnc and a remote VNX client, because it works better. It's faster, platform-independant, and I can reconnect without losing work. If my modem hangs up, a true remote-X session kills all of may apps. Crufty.
---- ----
Napster-to-go says "Fill and refill your compatible MP3 player", which is a lie. It's not MP3. It's WMA with DRM.
Don't be silly. We currently run our production data distrib apps on NT servers, with the record so far being 2 years. Unfortunately we needed to upgrade the OS :(
My point is that you're not gonna fix anything by give it another name, or coming up with an entirely new way of doing it without assessing what you are fixing and what you're breaking with what we already got (and not just X). So it's not so trivial even if you decide to "start all over". I'd say it'd be very easy to do some major errors if you're not looking back.
- Steeltoe
http://www.debunkingskeptics.com/
With computers as cheap as they are, why would we need to fit X on a floppy. I know it can be done. someone else liked to it somewhere in this mess. I just don't see the point. I use my linux boot disk when my pc screws up, because i know it will work. I don't have to boot it up and fight with X to run, just because i plugged it into someone's pc who runs a 3dfx card. My boot disk has telnet, fsck, mkfs, and a few modules for network compatability. Video drivers are such a pain, they should be reserved for the Hard Drive.
I guess if you want to climb the mountain because it's there, go for it, but i'd rather waste a few megs of disc space so i can run KDE if i'm in the mood, and then the next day switch to Motif, and then show my friend what gnome looks like. The options are what makes X X. That's why it's not Windows 95.
as far as the browser, telnet is my browser. If you're going to do the one disc thing, you definately don't need a browser if you get X to run. Xterms! that's why they're there.
-Superb0wl
-Superb0wl
It's not that I'm lazy....it's that I just don't care.
the lack of a GUI standard on the platform doesn't appear likely to be resolved.
I don't want you telling me how my windows, menus, titlebars, and desktop are arranged or operated, thank you.
UNIX is about being able to get your hands dirty and being able to design an environment that suits you. That includes what my X desktop looks like -- or how it works.
Gnome pisses me off. KDE pisses me off. The various OEM's CDEs piss me off. olwm sucks. They pretty much are all an attempt to wield the same GUI/HCI stratification and conformity that the Microsoft family of products enforces. I don't like it much there, either (though with the greater tweakability of Win98+'s GUI, my desktops are almost unusable by anyone else besides me. That's too bad for them, who shouldn't be using my computer anyway.)
X is too deeply embedded in the Unix world to be easily dislodged
Look -- you either want a strict GUI standard, or you want choice. If it's GUI standardization you're after, having more than one windowing system is just an ineffectual attempt to try and uphold your open-source cred. What is gained by having (say) five different windowing systems that all look and work the same?
My point is, if you want an alternative to X, don't complain that everything doesn't look the same. If someone does replace X, it better actually BE different, not just be made by a different person.
Keith "you can have my peculiar fvwm2 config when you pull it from my cold dead fingertips" Tyler
--
Terrorists can attack freedom, but only Congress can destroy it.
X can be a major pain in the ass. It can also be remarkably wonderful. You'll get your 3d soon enough. I almost have my tnt2 working... Standard desktop? Buy a copy of RedHat or Mandrake. I'm sure there are 3-doxen .rpms that the download resds 'for Linux-Mandrake'. I like having choices. And if that still is not enough for you, go work on berlin (http://berlin.sourceforge.net/) >
------------------------ LordLobo - Because I can
Why not use the X protocol, then, and compile XFree for Windows? (Yes, it's possible using Cygwin and DX, IIRC)
from the link: The first time I tried it, I was flabbergasted; they somehow managed to shoehorn not only the core OS and windowing system onto a floppy, but also a small web browser!
Let's see, QNX has support for what, ONE network board? ONE scsi adaptor? And just try to do remote display with QNX's windowing system, I dare you. Linux kernels tend to be big because they support (you guessed it) more hardware! Besides, LIJAK (Linux is just a kernel). Don't confuse Linux with RedHat.
I think you've missed the point almost entirely. The GNOME and KDE folk are busy trying to gain some ground back from Windows on the usability front. This is a laudable effort to be sure but leaves all the original problems of X intact.
These aren't merely the things that it (perhaps rightly) doesn't address, like consistency of GUI. Authentication is still a prize pain. There is no mechanism for adding extensions dynamically making use of them in practice almost impossible.
Papering over a dubious API with n layers of toolkits and RAD tools is something that should be left to M$. Every time I hear yet another /. reader say something like: "that's the Unix way, it can't be improved upon - innovation, no thanks", I despair.
If a piece of software has had no real improvements in 5 years, then it's a sign that it needs a serious redesign. X is moribund: let it die in peace.
Yes. When I first installed Red Hat Linux 5.0, the biggest stumbling block for me wasn't the command line or unix "way" (I can use *nix just fine, although administration is another thing). It was X. Everything was pretty straightforward until it came to configuring the most important part of a desktop system. I had to run obscure configuration programs and scripts and provide carnal knowledge of my hardware, with the disclamer that my monitor may be destroyed, etc. I had to choose amongst myriad window managers, each with their own control key and window manipulation conventions. Basically the GUI on Linux is a trainwreck of klunky mismatched mixed up parts (or so it was at least from a user perspective).
A Linux GUI needs consistency. Repeat this. While inconsistency under the guise of "choice" is a good way to scare off newbies who are not 1337, it is just a major headache for anybody who want to *quickly* *accomplish* *tasks* without becoming intimitely familiar with the idiosynchrasies of the various parts of the GUI. Look - I may not be a super unix guru, but I'm not the dullest person either. I am a programmer, but I am *also* a user. There are times I want to wear my user hat but *not* my programmer/hacker hat. Unlike in star wars, everything good should NOT need hacking on to work well.
It's 10 PM. Do you know if you're un-American?
Why oh why oh why do so many people harp on here on slashdot that X is 'bad'? Do you even understand the issues? Have you even ever tried comparing X with other windowing systems? Do you have any idea of the design goals of X?
In short, do the people who post "X sucks let get rid of it!" to threads like this have ANY feckin' clue?
"It's slow - lets get rid of it!!!":
Is it really slow? Seems fast enough to me, and I started out with X11R6 on Sparcstation 1's. Perhaps you are confusing X with XFree86?
Also, most other windowing systems have a huge advantage over X, ie they are called as library or system functions, whereas X was designed as a PROTOCOL for network transparency. This has an impact on speed but only slight, and if the X client and server are running on the same host there is no reason why they can't communicate via shared memory or some other X extension (see below). However X has something that these procedure call window systems don't: SEAMLESS network transparency. If I show you my desktop you have absolutely no way to tell which windows are running locally and which are running on various other machines round here.
"It's bloated! lets get rid of it!":
What is bloated exactly? X the protocol is a very lean protocol (though very chatty), designed with extensibility and low-latency connections in mind. ie if you can't do it with X, then go write an EXTENSION. Implementations are a different story, but again X != XFree86. (though XF4 is a different story - leaner and faster).
If the implementation you use is bloated go use a different one. Have a look at handhelds.org they're working on a small footprint X server for handhelds.
"Xlib/Xt suck!! let's get rid of X!":
Then don't use Xlib or Xt! Use Qt or GTK+.
"X sucks for fonts. let's get rid of it!":
Firstly, I bet you havn't read the X-Font-Deuglification HOWTO. Go to linuxdoc.org/HOWTO and read it and find out how to make all those sites like microsoft.com, dabs.com, etc, look right under netscape. Don't blame X cause it wasn't setup right! Blame your Vendor.
Secondly, X apparently won't handle anti-aliasing of fonts as it stands now. ("So let's get rid of it!"). HOWEVER do you know why anti-aliasing of fonts was invented? Cause in the mists of time, a lot of computers had terrible resolution screens. Anti-aliasing is a HACK to make fonts look better, nowadays we nearly all have at least 100dpi displays so you are better off setting X up CORRECTLY and getting clear fonts without anti-aliasing.
Thirdly, if there truly is a problem with font handling in X, well then let's do something about this small problem. Either implement an extension (Display Postscript springs to mind - most commercial Unices have this), or else fix X if needs be so that X11R7 has even better font handling.
In Summary:
X is one of the most amazing software concepts ever! It's like Unix, a timeless classic.
- If it can't do something, extend it!
- If it has a limitation, then get it fixed for the next major release of the X protocol!
but please stop the silly misinformed whinging and whineing.
I use Friend/Foe + mod-point modifiers as a karma/reputation system.
Here is a site that offers links for tiny X, a little X windows that fits on a floppy. There everyone is happy now, and we can live in a world of 1.4 mgs!
If we don't make light of everything, we are just stumbling in the dark - Blank
No myth. X renders all fonts into BITMAPS, and programs use the BITMAPS. That makes, among other things, printing pretty screwed up.
---- ----
Napster-to-go says "Fill and refill your compatible MP3 player", which is a lie. It's not MP3. It's WMA with DRM.
Because it is all written in assembly. The entire microkernel is written in X86 assembly by hand. That is why it only runs on intel architecture.
If you write a OS with a small team in assembly, it can be very small. Witness Unix in it's first incarnation on a PDP11, before the rewrite in C.
As far as other graphical systems being significantly more effecient. Windows does not count, It is large a bloated. Millions of lines of code that are unstable. The Mac is better, but neither the Mac or Windows is network transparent. I personally like the fact that X is.
Troy
Semantics, semantics.
Download GDK. Oh, you can't, because although it is a separate library it still forms an essential part of the GTK+ package. The fact that GTK+ hasn't been *successfully* ported to another system is proof of how many X-isms are in the GDK/GTK+ code. So my original comment is still valid, an Xlib emulation layer would still be required below GDK - or else a major rewrite of GDK.
Chris
I think what he means is that, if a new windowing system was developed, we could just port GTK+ and QT to the new windowing system (and keep the GTK / QT API the same) - that way most existing applications could continue to work, without the overhead of some kind of X emulation layer.
yes but it does it poorly. Sure, you can write extensions to X, and there are examples, such as the shaped-window extension. But what I'm refering to is having an API that is much more flexible.
----
Celebrate the finer things in life
It does a very nice job of connecting to both WinFrame 1.7, and Windows NT 2000 Server - Terminal Services.
--Mike--
And that's the beauty of Open Source Software. :)
Peer review, essentially "voting" with your choice of software, allows it to improve in a free environment without the burden of deadlines, market conditions, or any of that BS. Software, like sex, is best when it's free.
X offers configurability. Not generally very easy, but it is there. Don't like the fact that your window manager binds CTRL-F4 to "Window Close?" Change the parameters and restart your window manager. How easy is that on Windows?
There is a very very very good reason why this is so hard to change on Windows and MacOS, this makes sure the interface is consistent.
One thing I have learned is that an interface does not have to be "simple" in terms of "the user sits down and just gets it", but it had better not keep changing the rules on them.
In windows world, when a user finally figures out that alt-F4 closes a window they KNOW that no matter what box they sit down at alt-F4 will still close a window.
And don't even get me started on skinning...
END
Yes, gdk was originally built on X, but it has since been ported to Win32 and BeOS, and work is underway porting it to Microwindows/Nano-X.
That doesn't say anything about its dependence (or lack thereof) on Xlib. The fact is that Xlib, and therefore X windows, still draws every primitive you see on the screen, whether you're running KDE, Gnome, or anything else. Gdk, GTK, and Gnome add successive levels of abstraction to form higher-level primitives, but basic commands like "draw a line" or "shade this box" all go back to Xlib. Gdk strings a whole bunch of these together to make drawing buttons & such easier, and GTK itself strings a lot of Gdk commands together to make columned lists, scrolled windows, and the like. But if you can somehow pull all that off without using Xlib, drop me a line and I'll send you a cookie. Because it's not gonna happen.
Porting gdk to other operating systems is a matter of changing from the Xlib API to whatever API Windows uses to do things like "draw a line" or "shade this box". GTK+ is "not" built on X only in the sense that it runs on better platforms, and in saying this you're not conveying the whole truth - X is your only option if you're running Unix.
--
I think there is a world market for maybe five personal web logs.
"What is bloated exactly? X the protocol is a very lean protocol (though very chatty), designed with extensibility and low-latency connections in mind. ie if you can't do it with X, then go write an EXTENSION."
... and therin lies the problem. We've been doing this for the past 20 years, and it's starting to add up. Almost everything in X is an extension now, and the code required to support them is really adding up.
DNA just wants to be free...
I think at least half of this discussion will contain arguments about having a widget-set directly on top of the hardware. You don't want that. X is what makes us UNICS. It is network transparent. It is an abstraction layer that does not impose any look or feel. You can run Gtk or Qt or Xaw or Motif, or whatever widgetset suits you. Or build your program on bare Xlib. Yes, X may need to go awayt, but not to favor Gtk or Qt on framebuffer, but to favor another network transparent windowing system (not widget set) that features transparency, antialiased fonts and non-horizontal text.
--The knowledge that you are an idiot, is what distinguishes you from one.
--The knowledge that you are an idiot, is what distinguishes you from one.
Its handy for remote desktops and xterms and such but the majority of people are concerned with its speed when used locally. Here my plan:
The network code is pretty much optimized, its been around for how long now? Concentrate on video card drivers and have it access hardware directly. Have the network part be installed as a module for the people who need it.
Only the State obtains its revenue by coercion. - Murray Rothbard
Im saying theres little point in trying to re-work X. Time would be better spent making Y-Windows (or whatever), which does what you'd like X to do, but lacks the problems and is streamlined. For now I just dont bother using X at all.
Seriously, if you're that worried about it, there are many alternatives. Obviously, since you are complaining about the side-effects (bloated code, lack of features, etc.) of almost all common open-source projects, perhaps you are not suited to run an OS that is primarily open source. *nix was never intended to run a GUI in the first place. If you find one of the *nix GUIs inconvenient or not worth using, you could use another OS (there are even *nixy alternatives like Solaris) or you could design your own GUI for the one you run now. Who knows...in 20 years, you might have developed something that we all will use instead of X. Good luck.
People make programs and invent new things. ;-)
People, not companies. Companies only exist in peoples minds and on paper. So I don't understand how people "hate" Microsoft and "love" Apple, as if they're people. Because they're not (duh
This is NOT a flame, just an observation.
- Steeltoe
http://www.debunkingskeptics.com/
---- ----
Napster-to-go says "Fill and refill your compatible MP3 player", which is a lie. It's not MP3. It's WMA with DRM.
Why do you need to trawl through tonnes of configuration files to set the system up as you want it. And installing an icon quickly is not done, just like you still need to shell out to mount the CD-ROM drive and to install a printer.
And that is not mentioning that you can only use alpha stage software for many important services like ICQ and I can't do my home banking on it as you need a Win or Mac to do that.
Besides Gnome keeps hanging the system up all of the time and Lino-heads say that Win 98 is buggy.
Gnome crashed my PC
Look here.
$ cat < /dev/mouse
However, the X protocol is a rather heavy-weight one. A protocol such as ICA could prove useful.
----
Celebrate the finer things in life
I really hate to point this out but there was a benchmark at Linux Games that shows Windows beating Linux in 3d accelaration with several different cards. Personally I think this has a lot to do with X.
You're absolutely right - it has a lot to do with X. MS Windows programs running on local windows machines have direct access to the graphics hardware. DirectX / OpenGL libraries have direct memory mapped interfaces with your graphics card.
When a traditional (indirect) OpenGL 3D game runs on X (via the GLX extensions) it undergoes translation to X window calls, X protocol encode and gets queued to the X server at which point (in a very basic not-at-all-aware-of-what-happens program) we block - stall completely. We wait for a context switch to the X server before doing a protocol decode and finally transferring the graphics request to hardware. Lastly we have to wait for another context switch before we can carry on with whatever processing we were gonna do. At the minute GLX is (almost) entirely based on this scheme.
Perhaps the largest XFree86 development project at the minute is Precision Insight's Direct Rendering Infrastructure. This will give X a similar mechanism to Windows for accessing 3D hardware. See Precision Insight's Design Docs or SGI's take on how graphics hardware should be accessed. Youll see that for the particular case that people whinge about (why can't local programs just have local hardware access?) this is precisely what is needed.
Even more remarkable is that the DRI retains all the network transparency assosciated with X for indirect rendering; using direct rendering when available on the local machine. Im not to sure of the framerate you'd get if you ran 3D games over PCAnywhere; or whether itd be worthy of the title 'framerate'.
This isn't the only comment to mention HURD... Look, I find it terribly ironic that in an article talking about how X lacks performance people are talking about switching to a microkernel...
While architecturaly microkernels are really smooth, the fact is that they suck for performance. Why? Because a system call (or passing a message) takes at least four context switches. That is slow on modern machines, and is why Mach never took off. It's a great research platform, and among the easiest OS's to port in the known universe, but it is not fast.
Consider that mem sizes keep growing, and that 700K (or even 1.2M) will hardly be missed. Hang onto your monolithic kernel for now, and just compile stuff as modules. While it is possible that the emergence of Simultaneous Multi Threading on next gen processors will resolve the main issue with microkernels, I have yet to hear a design that allowed you to run both kernel and user threads on the machine at the same time. Until then, just say NO to microkernel.
The enemies of Democracy are
in many cases, the GDK calls are simpler than the corresponding X calls. Some rarely used parameters are omitted and the correct values for other parameters are determined automatically
... but GDK is still heavily tied to the X model. Porting it to some other system is not trivial, as is proved by the flakiness of the Windows port.
Mmm
Chris
The only thing missing is a web browser which runs on the Linux framebuffer. Once this is available I would not even need a Windows machine on the side anymore. How about a framebuffer version of Mozilla?
...but I've never encountered this problem.
"Don Box is a migrant user interface designer and graphics programmer. Don received a BSCS degree from the University of Maryland while working as a researcher at the Human Computer Interaction Lab. Don has worked at UniPress Software, Sun Microsystems, the Turing Institute, Carnegie Mellon University, Kaleida Labs, and Interval Research. He ported SimCity to NeWS and X11 for DUX Software."
I think you meant to type 'Don Hopkins' here. The Don Box that I know of has a completely different resume, and was one of the founders of DevelopMentor. They mostly teach classes in MS programming, but have recently branched off into Java as well.
And therefore I think the mention of OSX is quite significant. Remember, regardless of the proprietary nature of one technology or another, it is the building we do on top of or parallel to those technologies that brings us forward. Apple has great ideas, and they have dumb ones. I think the point is that we need to borrow the best ideas from everywhere and use them to our advantage. Nobody is going to build a new GUI in an hour, its going to take some work. First the path needs to be flushed out, and I think this is a viable one.
So we should just keep working with it because it does remote display? No! Write a new standard that does remote display, better font support (like the article mentioned) and gets rid of tons of unneeded code.
There are a lot of things I'd love to see in a GUI system: You mentioned remote display, I'd love to see something that cuts down on the overhead (ever tried to do remote display over a modem?). Maybe some kind of two way communication where the remote system looks for the graphics binaries on the client and just sends data to update rather than data for the whole binary. (If the client has them). BTW: Windows can do remote display but it does suck, its even slower than X.
I'd also like to see some kind of standard widget set built into the server itself. (GTK would be fine with me). Its soooo incrediably annoying when I find programs that look really cool but don't run correctly (or not at all in my window manager).
I'd still like to see mulitple window managers to have different looks though. Some people need a Windows/Mac look. Personally I love BlackBox. Which as far as GUI's go I feel is pretty innovative.(and its really small. If anyone wanted to take the chalange in the article to put the GUI and kernel on a floppy, try BlackBox!)
Q3A isn't very slow using XF86 && glX either, now is it?)
I really hate to point this out but there was a benchmark at Linux Games that shows Windows beating Linux in 3d accelaration with several different cards. Personally I think this has a lot to do with X.
Never knock on Death's door:
The Anti-Blog
I would like to note that Berlin expects to have an X server component availible eventually. Obviously, you're going to have to be able to display X apps for a long time to come.
X support is a necessary evil, but that doesn't mean we should keep X as the primary desktop architecture.
Additionally, Berlin doesn't rely on any one kernel graphics architecture (or even there being one). I think right now they've got postscript, OpenGL and GGI display kits in various stages of completion. It's not really dependent on any one "Linux-specific" architecture.
Worst-case, on a commercial Unix with only an X server for graphics support, it can even display on that.
DNA just wants to be free...
But if you take away my X Window System/X11/XFree86 I will hurt you, pain guaranteed.
X was the thing that turned my eye to Linux (which then led to FreeBSD).
The thing that attracted me the most was choice; the choice of what my desktop looked like, the choice of a multitude of applications, choice choice choice choice!
ps. CHOICE!
You are correct. The only people complaining are the dippy high schoolers and college kids who grew up on Windows, found Linux, and now think they should make Unix look, feel, and operate like Windows. That's not Unix or X's purpose in life.
OK, first of all, for those who are afraid that whatever replaces X might not have remote window servers over a network, relax. The feature is not that difficult to do. NeXTStep had it a decade ago, Aqua has it now, and I'll bet you get it in Berlin and BeOS as well.
Second, some people claim that X windows is "just fine". That's crazy -- I can't even copy a sentence from my Netscape window and paste it in my xterm. That's really frustrating. Now you might say that it's not the fault of X, since X is supposed to be a lower-level protocol. But then where does the fault lie? Do you really think it is realistic to expect applications developers to agree on, and conform to, pasteboard standards? While other platforms get dragon drop interfaces even for their file compression utilities (viz. WinZip/EasyZip), my Debian woody box can't even handle text properly.
Ridiculous.
Kernel32.dll for my NT box is 364 KB. And the drivers aren't included so you are right about that. However on stability the last time my nt box went down there was a power outtage that lasted long enough to drain my backup power supply.
I/O, I/O, its off to disk I go, with a read and a write, and a bit and a byte, I/O, I/O, I/O, I/O
No more worrying about re-draws, or where the window is on the screen in pixels.. just clean virtual co-ordinates, scaled by the windowing system at the display end. Buttons and input handled by the display and only important information sent back to the client as and when it it is needed, defined by the client's application when the object was created. Applications simple enough that in only a few lines of code an application can get a window displayed, scaled and controlled.
This is the dream of many a programmer. Instead, X is archaic, making the programmer at the application end do all the hard work, sending large pixel maps down the network every time a window is uncovered etc. all of which the display side of things should know how to control more efficiently anyway.
How many megabytes of code is written just to do the basic control of a simple window? Wouldn't it be better if all this is taken out of the application's hands, unless it asks to have that degree of control?
What's needed is a new windowing system which does all the hard work for the programmer and the application, is networked like X and gives an X api for backward compatibility.. but with the application being given it's own virtual display which is mostly managed for it by the windowing system.
This would solve three problems:
- Application complexity.
- Network bandwidth.
- Backward compatibility.
The downside would be that the display system on the computer displaying the data would have to be more capable..it would have to know how to redraw windows for it's clients, it would have to know how to scale, scroll and generally transform the windows and their contents. it would need a get deal more computing power and memory than X, in other words. The other side of the coin would be that the code would only be there once.. the applications would be FAR smaller and FAR less complex, helping with stability and speed, especially over a network.The only question is.. who is going to do the hard work and write such a system?
Agrajag: "Oh no, not again!"
There IS a lot of R&D going on right now, but you're not seeing it, because R&D is rarely ever at a level to be used by consumers, even the high level consumers that many slashdoters are.
Eros:
http://www.eros-os.org/
MIT Exokernel Operating System
http://www.pdos.lcs.mit.edu/exo/
HURD(for its experiments in translators)
http://www.gnu.org/software/hurd/hurd.html
and a billion and one other OS projects. While many of these do not provide much, there ideas and ideals (and often bastards there of) are often incorporated into more frequently used OSs.
For innovation on the other fronts check out:
Freenet
http://freenet.sourceforge.net/
Berlin (for combining a lot of good ideas)
http://berlin.sourceforge.net/
GiNaC (algebraic extensions to C++)
http://www.ginac.de/
LyX (What you see is what you Mean editor)
http://www.lyx.org/
There is a ton of innovating software out there, all developed in open source. It's just you don't see giant leaps forward in computer science and gui interfacing. But then, you never do anyway! Innovation is a gradual process, and takes a LOT of time. But it is out there, you just have to start looking
A lot of times, people will look around on their desktop and say, "Gee, nothing here looks new." But that's 1) Because you've been sitting there i front of that desktop for who-knows-how-long(oh god, that's not 5.0 is it?!). When's the last time you installed something new? And 2) Because vendors try to plop down in front of you an interface that is intuitive. And what is intuitive in gui's? Almost always it is something you're already familiar with(almost nothing is truly intuitive). So you get the same-old same-old in front of you.
So get out there and look for something already! Find something you think is cool and work on it, or start working on your own idea. Even if it doesn't succeed, its ideas can probably be passed on to something that will.
It'd be pretty cool if the next UNIX window system could be called "Y". It'd be the start of many a "who's on first" conversation. And imagine the marketing... Y Windows? Because it's better than X!
Perhaps we can get the Berlin project to change their name.
--Threed-Looking out for Numero Uno since 1976!
"How can you have a vision without a visionary?"
Its big and horribly slow? How much farther can you get with remote displays? Concentrate more on local display. I want to be able to play 30fps megs at full screen with 8% cpu usage like in windows.
Only the State obtains its revenue by coercion. - Murray Rothbard
the X protocol is a rather heavy-weight one
...
True. This was probably a consequence of the Athena team's lack of experience in developing a networked system for windowing. A recent article I read (I regret taht I can't remember where) openly stated that some aspects of X were ill considered with hindsight. At the level of the X protocol it's probably to late in the day to do any major re-engineering. Or maybe not
Chris
Yes, this is the standard response to the litany of "X sucks" rants, and it is the appropriate one. Users flocked to Windows 3.1 despite its horrifying lack of technical sophistication, because there were lots of applications which ran on it. Application support is the #1 impediment to quick adoption of Linux on the desktop. You've heard this before. You've heard it too much. The bottom line is that it's true. Get the apps out there and the architecture will follow.
--
Tired of FB/Google censorship? Visit UNCENSORED!
The glibc is spartan down to counting asembly instructions. Other than some linker tricks I am not familiar with, it is straight forward code.
Linux has VERY LITTLE code it doesn't need. Some cruft exists but you have to hunt for it. The issue is NEED. A LOT of the code in Linux 2.x is to support functionality QNX will NEVER attempt. This functionality goes to scalability; the dcache, VFS, and VM layers are huge compared the the simplistic implementations on QNX, BUT they HAVE to be to scale like we want Linux to scale.
The QNX comparison was BULLSHIT. Concidering the obvious ignorance this author had of Glibc and Linux, I can't trust his critique of X.
Yes we have to get Sub-pixel awareness (anti-aliasing) into X. Yes we need to accelerate X more (XFree 4.0 is a good beginning). The XFree folk SHOULD NOT wait for standards to come from XOpen (or whom ever is in charge of "standard" X). XFree should FORK from the X11R6 code base/standards. We should make XFree become the standard X by force of numbers.
THAT is a realistic, yet aggressive, GOAL (but I say so in humber ignorance ;).
-- I am not a fanatic, I am a true believer.
Yes, X IS bullcrap. I'd like a system than can support modern display and media technologies, not a 20 year old bloat-o-vision that still forces use of bitmapped fonts and doesn't allow any sort of compositing, etc. X sucks!
The GOOD things about X can be provided for in other display systems. The main good thing about X is remote display. So Berlin uses GGI which can rener to the VNC protocol. Done.
---- ----
Napster-to-go says "Fill and refill your compatible MP3 player", which is a lie. It's not MP3. It's WMA with DRM.
X was designed with extensions in mind in the first place.
Framebuffer... forgot about that. Now that would be NICE if I could use only the console, and play games on my console. Fuck X, why not a graphical console?
:)
Despite the fact that I prefer console mode and apps to GUIs, I think the X Window System is excellent. Sure, it's not perfect, and the wide range of widgets and such that vary between applications... well, those confuse the heck out of new users.
But if you ask me, I'd rather have the flexibility and small dose of confusion than have a standard, rigid interface. X is great because it's flexible, and lets program authors (as well as users, in many cases), to mold their interface and application experiences to whatever they want.
X lets your desktop have personality and power, and that is what makes it great.
-----
Moreover, if you want to do an embedded device and don't want the X overhead, port or implement your widget set in GGI or something and don't use X.
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
No, you're right. The non-geek contingent isn't interested in setting up Linux and configuring their window manager. But, quite frankly, I'm going to have to go with Marie Antoinette on this: "Let them eat cake." People want all the power, and none of the responsibility. I say, you want power? Fine, but be willing to learn the skills it takes to get it. Don't bitch to me about how you want everything to only require the IQ of your average housepet. You have a large brain, so start using it god damnit.
_____
Sam: "That was needlessly cryptic."
Max: "I'd be peeing my pants if I wore any!"
You know I have read a lot of your arguments and I am not very sure they are well founded at all.
I have looked a lot of GTK code.. and yeah GDK is a little X centric.. but not really. I mean your GOING to have a hard time getting other ports working PERIOD.
Hello you are porting an entire graphics library to a totally new operating system, you have to account for all the nuances(read:BUGS!!!) and flaws and benefits of doing graphics rendering on that operating system
Its not pretty doing that in the Win32API which I believe accounts for much of the untidy unstable stuff. I like GTK a lot and I think that a key to success is getting something that CAN run very fast and have direct access to hardware.. Ive used the Gimp in windows and.. it works rather well if you ask me
Ive done minor work even and was not disappointed with the gimp..
The point is it is getting more stable every day and it is really a nice toolkit with a damn good design. So what if the middle layer is tied to one Platform that IMO is the point.
Tune it up take advantage of the OS's features so that once you got the middle layer working Viola the apps are ALL there and running beautiful and fast as ever. Is that not the point of the middle layer of the GDK?
Jeremy
If you think education is expensive, try ignornace
Who needs an OpenGL graphical user invironement. For that matter, who needs any graphical user environment. I've been using line printers for 40 years now and the only bad things about line printers is wasting so much paper in arguments about GUIs.
Nothing beats the sound of the print head against a long tractor feed roll of paper.
-vax computer, vi, lynx. 'nuf said
Last I heard Berlin wanted to make everything a CORBA service, and didn't sound to lickety-split fast itself.
For games to make it on the linux desktop, they need something FAST.
. . .maybe then I'll understand why X is bad!
X is the one thing that makes me LOVE unix. Remote displays. Platform/architecture independence. LOTS of toolkits. 20 years of develepment. Almost the same qualifications for greatness as Un*x itself and you hate it? Wow. that's some serious wackiness.
** Martin
X is a protocol that has worked very well over the years. Other operating systems with their own display systems don't even come close to what X provides. How many times I have wanted to bring up NT applications remotely and have had to resort to a kludge such as PC Anywhere and VNC. Don't get me wrong, they have a purpose and work fairly well. But if NT had a network based display system they wouldn't be neccessary.
And arbitrarily killing X because it is big and bloated -- come on. It takes years to get something like that right. Over the years since these free OS's have been available there have been attempts at providing other display systems, but nothing has been able to unseat X. There needs to be a viable alternative, and I haven't seen anything that comes close.
So, please, just make sure the new display system allows me to display my applications remotely, and allow me to work from home without hoakey kludges.
As I remember, the key thing was that X was much faster than NeWS. Having lots of the window system in interpreted PostScript made my uni's sun 3/50s *crawl*. X seemed like a real pleasure in comparision.
X was such a deeply ingrained part of most applications that we just couldn't do it until now! It took the community a number of years to develop a rich, fully featured set of toolkits to sit on top of X that didn't require any sort of programmer knowledge of the X system.
There are still a number of Unix apps we use that are purely X-based. Look at some of the eye-candy apps that come with any default install of Linux.
GTK+ and KDE are becoming the new toolkits of choice for Unix GUI programmers. As we have to rely less and less on X-tied programs, we can get closer and closer to dumping this beast.
Any new system would probably need to be able to run an X emulation layer at some point. The cool thing about keeping X around this long is that we've learned a great deal about how to optimize gfx operations under Unix - we can use all of this information later to build ourselves a top-notch windowing system. Even X is running pretty fast right now. If we trimmed it down and got it running direct to an API on the system, we'd blow Win32 GUI stuff away.
æeee!
I haven't read tha other comments yet, but come on? who really cares that much about bloating? when you can get gigahertz processors and 72 gigabyte hard drives! What's tha freakin difference if its 1mb or 10mb or 100mb? I mean sure it'd be nice if programmers fixed bugs before making new features, but I really don't care about the size of a program.
/me tells the author of this article to go buy a ne hard drive or a CDRW
So? W and MicroWindows are running on another smaller and cheaper PDA. X on a PDA? Who cares? Let's not bring all of our X baggage with us into the PDA world, which requires mostly PDA-specific apps... Look into W, MicroWindows/Nano-X and Squeak for better GUI alternatives for a PDA. Squeak is exceptional in the sense that it can scale from the PDA, to the desktop, to the server.
Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
I personally don't see that as "worse." I see that as giving users the choice of desktop managers. Motif is beautiful, and i can put up with Gnome. I used to run KDE and it was tolerable. The thing is, at the root, X is X and all your binaries will run on any of them. The way i look at it, you even GET to pick what your desktop looks like.
Basically, the impression i got from from this article is that ol' Monty wants to run Windows 95 on Unix! he wants a standard DE and i have to stand up and disagree. And if you still don't like X, run lynx and vi. that's the beauty of the *nixes. You don't HAVE to do anything you don't want to. That's why i like it, and that's why i use it.
-Superb0wl
-Superb0wl
It's not that I'm lazy....it's that I just don't care.
Nor does Flexibility == Usability.
I don't know where this attitude comes from, but it is appearing a great deal in this discussion. "X is flexible. UNIX is flexible." Great. There have been very few efforts that generated a lot of interest ot make X usable for more normal people who don't have 4 or 5 years to put into a bachelor's degree or 6 months to a year of training on the job. What efforts there were weren't that accepted. Admit it. X hasn't moved much since the 80's, even with KDE, GNOME, and whatever else.
Get over it, people. I'm getting a feeling that everyone is trying to hold to X and defend it, mainly because they can put time into it. I would say it's more like we (as geeks) like to put time into it.
Granted, Windows sucks to. Definitely in the areas we geeks are concerned about. But how many more tech questions would your friends ask you if they ran UNIX, or some variant thereof? Isn't the majority of computer users a little more relevant in the entire scheme of things than our little clique?
Go ahead. Call me a troll. Tag this as flamebait. Put yourself into your parent's shoes. Your co-worker's shoes. Does your manager have the time to learn X and customize his Linux distro and learn all the fun under the covers?
Well, X may not be the best thing out there (in fact, it pretty much sucks for a lot of things..) I've heard about things like Display Postscript and NeWS, and perhaps development should be refocused on rebuilding them and similar projects.
There is a Display Ghostscript project, and many people have heard about the Berlin project. I've watched Berlin a bit, and I'm not sure it's going in a direction I like (they seem to only want one widget toolkit, which is both good and bad).
Obviously, for any of these projects to take off as projects independent of X (right now, they are often used as a layer on top of X), framebuffer support in the Linux kernel must be improved. Therefore, before we go off trying to re-write the world, a good foundation of security and stability must be built into the kernel.
I know many people don't like the idea of having graphics in the kernel, though this can be worked around by having modules that merely open a pathway to the video registers and memory and grant you safe access to the hardware (i.e., no more suid-root graphics systems).
Blah, I'm beginning to ramble (plus I really need to get some work done...)
--
Ski-U-Mah!
Stop the MPAA
In what way?
I have to agree. Terminal Server is incredible. Here at the college I work for my department is setting up the school to use Terminal Server to access a database. I think a web front end would be better personally but the people higher up want the terminal server. Terminal Server info can be found here.
I/O, I/O, its off to disk I go, with a read and a write, and a bit and a byte, I/O, I/O, I/O, I/O
While some of the political issues you mentioned were factors in the community's decision to go with X, there were technical issues as well. It's been so long that I don't remember all of them, but some that come to mind are
There were plenty of great features in NeWS, and some of them are enjoying a comeback today. But it's worth remembering that NeWS wasn't a clear-cut technical win. X carried the day for a variety of reasons.
I wonder about the idea of encapsulating GTK and/or Qt toolkit operations into a network protocol... although I wonder... does GNOME already do that with its CORBA architecture? i.e. have GNOME apps running on a remote machine make Bonobo calls to a local GNOME graphics component so the gfx I/O isn't as horrible as it would be with Xlib... 'cause then porting GTK and GNOME over to a lightweight non-X architecture would be easy with the network transparency already inside the toolkits...
the real at&t mix
"So the question is, given that Linux and the *BSD's have the basis of a GUI as good as Aqua in the form of X"
But the real problem is not that we have themes that look as good as Aqua, and may in fact not have some of Aqua's shortcomings. The real gap is in the rendering. If we aim for Aqua, and neglect to also aim to duplicate Quartz, we lose.
Quartz is the real power for OS-X. It generates the OpenGL, QT and Postscript display. Aqua is just a theme, like Afterstep, Gnome, K. It's useability and power come from Quartz, X Window's real competitor.
Tom
Reality does not happen until you analyze the dots. -Don DeLillo (Underworld)
I tend to look at Linux as a geek/hacker OS, and therefore flexibility is far more desirable than rigidly enforced UI behavior.
There are some people who really want to see Linux become the "next Windows", or at least a "Windows killer" in the consumer market... The day that happens, I guarantee you the geeks will have moved on to something else.
World domination by Linux just isn't that important to me, I guess. (Nor is Gnome... good ol' BASH is good enough for most of the things I use my Linux boxen for anyway.)
Information wants to be anthropomorphized.
Have you even seen Mandrake? I'll be the first to admit that Linux is not for everyone, but one of the great advantages of Linux over MS is you can get a distribution tailored to your needs, and then you can tailor more precisely to your needs.
You obviously need a good visual user interface out of the box, with easy installation. So, try Mandrake. Not only does it do all the crap you want (like automounting CD's) and I don't know what the heck you're talking about "installing and icon quickly is not done". What the hell does that even mean?
BTW, if your bank had any brains at all they'd have web based banking from home on a secure server so ANYBODY can use it. That's how my bank is, and I jump back and forth between Windows, Linux, and Irix - they did such a good job it looks and works the same on all.
That is the future.
I'm sorry, I shouldn't have even answered this uninformed troll. My apologies to everyone else.
----------
Stupid sexy Flanders.
But back to Unix and X11 for the moment. Most of us like being able to configure the GUI and to turn it off when we want to, not to mention the networking features. Embedded Qt might fill 2/3 of the bill, at least it might if it were more open, but I'm not sure if it supports remote displays without X11.
Running an Aqua theme on KDE,
-- Dirt Road
-- Dirt Road
Improvise - Adapt - Overcome (unofficial USMC motto)
X windows:
Accept any substitute.
If it's broke, don't fix it.
If it ain't broke, fix it.
Form follows malfunction.
The Cutting Edge of Obsolescence.
The trailing edge of software technology.
Armageddon never looked so good.
Japan's secret weapon.
You'll envy the dead.
Making the world safe for competing window systems.
Let it get in YOUR way.
The problem for your problem.
If it starts working, we'll fix it. Pronto.
It could be worse, but it'll take time.
Simplicity made complex.
The greatest productivity aid since typhoid.
Flakey and built to stay that way.
X Windows? What's that? Some kind of new technique in house building?
This article is nothing but an old USENET rehash. Hell why didn't CmdrTaco just post about which linux distribution is better?
F /...
This isn't a flame... more just a reminder that some of us out here who still browse slashdot wonder where the hell the quality has gone in the past 3 or 4 months. Slashdot has seemingly relegated itself to behaving more like sites ZDNet and it's bretheren. That is, articles intended solely to rile people up and create traffic. Shame.
---
Solaris/FreeBSD/Openstep/NeXTSTEP/Linux/ultrix/OS
--- I do not moderate.
Thats not what GUI standards are about, they are about what you find in which dialog and what your mouse button's behave like in general etc etc.
If I want to use mouse button's in X programs I always have to play the "what does the button do this time" game. Hell I have used programs which arent even internally consistent in how they use the mouse buttons.
X bloated? I really don't think so...
Checke this out
A linux distro that is about 8 MB. It includes X and networking capabilities.
If this is bloat then all the software in the world is bloated. And windows is just obese.
If at first you don't succeed, skydiving is not for you.
Two of the most popular Real-Time Operating Systems, VxWorks and QNX, offer X-Windows as a windowing environment. Yet their footprint is incredibly small. Check out the QNX website for a demo (http://www.qnx.com). A dialer and a graphical web browser all on a floppy disk?!
If you really want to see a replacement for X, you can rally behind Berlin! They definitely need the help. They are at version 0.2 right now, and have been mentioned on Slashdot from time to time.
Opinions change daily as new information arrives. Stay tuned.
You know, we moderate down user postings as flames & trolls, but then an article comes along like this that itself is a flame/troll. Useful, interesting news items are rejected while this opinionated blather is considered worthy of our perusal?
The guy talks about bloat, then puts up OS/X as a shining example of finesse and millions of investment in user testing? Has he seen the complaints about the new MacOS's usability?
So the open source community doesn't spend millions on R&D... SO WHAT? How COULD they? What still confuses me is: Is this a rant about technical problems with X, or is it a rant about the lack of innovation in window managers? Because I don't see much substance here regarding real problems with X, and I certainly don't see much being done in the MS/Mac world by way of giving users a CHOICE in their UI.
These people looked deep into my soul and assigned me a number based on the order in which I joined.
'X is bloated!'
'X isn't easy to use!'
et cetera...
yes, we've been well aware of these things for years and years, thank you Captain Obvious.
the notion that Apple is the paragon of usability is laughable to me, though.
MacOS is the Safety Scissors of the computer world.
just because Cletus can't take his eye out with it doesn't make it great. i prefer the scalpel, myself.
i would love it if a more efficient, standardized, tight GUI system would pop up fir *NIX.. but it hasn't yet, and i really don't have the spare time to code one myself (nor the inclination, since, as so many others have said in this thread,... X works just fine for me.)
ahh well, back to XSweeper..
...dave
Think different? I'd be happy if most people would just think...
X is running on a Compaq iPaq.
Don't piss off The Angry Economist
Terminal server is only copying things X has aready done. ;-)
Or the cut buffers....try cutting and pasting between an xterm, XEmacs, and Netscape. It's a mess.
I'm a moderator at the moment and the problem with browsing with Newest First is that you mark a comment as Insightful, say, and further down the page you find that someone has already made the same point earlier possibly much earlier. Now the ``first'' comment isn't Insightful it's Redundant and you have to go back and change your moderation.
Browsing with Oldest First encourages moderators to give their points to the first person who posted a good comment rather than spread them between the people who couldn't be bothered to read all the (moderated up) comments that had already been posted before posting themselves.
X is a protocol. It needs to be expanded to take advantage of the new hardware. It's network transparency is a big win. And just for that I would keep it.
If you're talking about the technically impared users that cannot configure anything, Gnome and KDE bloat the system to unuse. As a release to the masses system, you cannot say that the default X settings aren't slow. You could use Afterstep to cut out some of the performance loss, but you can't get rid of all of it. The article complains about trying to get a working system on a *single* floppy (with X), which i've seen easily done on 3, but the problem is not disk space and loading times. If we're trying to win over the populous that cannot program their WM, then we're competing against a 400~MB (?) default install of windows 2k. 3 floppies should be sufficient in this market.
There *is* a program I enjoy using on windows... It's called FDISK.
XFree86 has already addressed the Bad Thing in two different ways - with DGA (much faster) and GLX. GLX is the future of X display - clients draw into an OpenGL accelerated window (woo hoo!).
Who wants to start porting gdk to GLX?
Not really. VNC works at, basically, the pixel level of the screen. The VMC protocol amounts to sending a list of all of the pixels that just changed to the client. X at least allows for more abstraction than that.
Speak for yourself. My ratio is probably closer to 75% local. Most of the apps I run are indeed local, but I make frequent use of the ability to run programs remotely and display on my desktop. This is useful for doing stuff on my servers, which are in another room and headless anyway. At home, I really like my X terminal. It's small and quiet (no moving parts) but allows me to use any of the other computers in the place more conveniently.
X isn't perfect (it's very far from being perfect), but for me the advantages far outweigh the problems.
--Phil (If only NeWS had supplanted X.)
355/113 -- Not the famous irrational number PI, but an incredible simulation!
At the risk of being flamed, are you a Sack, or did you actually READ the article? I mentioned Apple because it was PART of the article, and a quite relevant part.
Sory to take up board space with this
For the curious, the Photon GUI for QNX (the one that fits on a disk with a web browerer, etc.) can also be displayed remotely over the network without any special addons or protocols. Network transparency does not have to imply a huge bloated ugly hack like X.
Ah, so you want a completely new system that forces every program to adhere to the same interface and everything will look the same, despite the users wishes. Now, I'm sure there's an OS out there already that does that...
Okay, X may have a few problems. But I happen to like the fact that interfaces can be different. I like the choice of different toolkits. What would be very cool is if some of these toolkits played nice together.
Maybe if there was some kind of keybinding database that these toolkits use by default, so that paste is always ctrl-v, for example, whichever toolkit and program you use. That would eliminate a lot of the problems. Surely this wouldn't be *that* hard to implement. Anyone like to comment?
Troll Tech's emebedded version of QT will do without X. That could be an alternative (but it's not free).
Stephen Molitor steve_molitor@yahoo.com
It's funny that I see this article just 1 minute after reading this one about the Yopy. It uses the W Window System
Now off I go to read this article before I post anything else.
134340: I am not a number. I am a free planet!
The original Macintosh 128k booted from a floppy and featured no browser, but a word processor, and a paint/draw program that is essentially still the model for every major graphics program out there. Take a look at MacPaint. Notice the icons it uses for tasks. Now switch over to Photoshop or Illustrator. See the similarities?
The Word processor the same way. MacWrite is the model most GUI word processors use.
I am certain these ideas were stolen from someone, either PARC or some other great unsung genius, however, clearly the functionality has not been enhanced proportionately to the volume of lines of code. SO what happened? Features overcame form.
The article is very on target when it says that programmers would rather add features than debug. We should all respect that. That desire is what pushes innovation forward.
However, if Linus is right, the advantage of the open source model is that at least SOME debugging that would not be done by an innovator is done by the end user community.
I am very interested to see what happens with the upcoming culture clash of OSX from Apple. On one hand, it will be a feature and bug laden hack filled with unnecessary lines of code and poorly designed work arounds. By definition it has to be in order to support all the legacy software (if you think DOS support is strong, look at the legacy life of Mac software; folks are asking questions about support for apps that haven't been improved since 1987!)
On the other, the underpinnings are Darwin, which, still filled with over coding and bad form, appears to be moderately streamlined, in terms of today's space usage.
So will the OpenSource community keep Darwin clean and help keep the bugs down? Will they just build a new layer of patches? Will Apple keep the OpenSource Darwin as the bottom layer? Will the OpenSource community be able to reverse engineer the "Cocoa" layer or figure out some other way to strip the legacy MacOS code out to make a cleaner system that has a small footprint?
I don't know about everyone else, but I view OSX to be a real experiment in combining the R&D and oversight of a closed system , and the bug crunching, never satisfied nature of the OpenSource movement. I am sure there are tons of other projects combining the two, and I am sure they will all be the "next great thing" (TM) but you have to admit, this is the only one of this scale or scope.
A sig?!? I don't think so.....
Well, the reason why X Window is so deeply rooted in the UNIX world is that, to quote one of my friends, "There are no fucking attractive alternatives!". I agree that X is a nightmare and should be killed off by a better competitor, but there is no better competitor.
And BTW, X has plenty of problems but user interface inconsistency is not one of them. X is low-level and user interface standards are clearly not in its domain. The fact that, say, a middle mouse click can do anything at all in an X application is not a drawback of X -- it's a side effect of the UNIX world being fragmented, idiosyncratic, and, yes, free to do whatever one wants.
Kaa
Kaa
Kaa's Law: In any sufficiently large group of people most are idiots.
I just typed this comment in Emacs,
pasted to Jed in an xterm, and then pasted from the xterm to Netscape. Works fine.
Until people move to languages and methodologies that emphasize runtime safety, runtime type information, and component based programming, these problems aren't going to get fixed. In fact, that's the real point of the UNIX Hater's Handbook.
Of course, people try to use dynamic loading in XFree86, the Linux kernel, and Microsoft Software. In fact, MS COM probably represents the best attempt at doing this kind of thing, but without language support, it is ultimately too complex to be really useful. Plan 9 has a different take on modular software composition, but they have not demonstrated that it scales (Plan 9 is pretty simplistic, IMO), and it pays for the use of C in a lot of context switches.
As long as the mainstream of free software writes in C/C++, this simply isn't going to change. Any new attempt is just going to get as bloated and complex as the previous systems when it hits the real world.
But as far as 1970's style, C/C++ systems go, X11/Linux is the best there is, and I'll continue using it until I see anything better come along.
It stems from NeXTSTEP, which used a native GUI because X was not ready for the real world when NeXT needed it to be. That, and Jobs and the NeXT engineers hated it. X, by NeXT standards, is still not ready for the real world. Jobs once said that he expected it to die within two years of NeXTSTEP's release. A quote comes to mind- "Steve Jobs said two years ago that X is brain-damaged and it will be gone in two years. He was half right." - Dennis Ritchie. (And does anyone know if Aqua is network transparent like X? I've never used NeXTSTEP or OpenSTEP so I'd be keen to know). In NeXTSTEP and OpenStep, the Window Server was network transparent, not unlike X, via a facility called NXHost (later renamed to NSHost). Quartz (the Window Server in Mac OS X, Aqua is just a defined look and feel, with the possibility of other "themes) lost this ability, but Apple has reported that there are still hooks for this, and a third-party could very well add it. Not just through something like VNC, but in a network transparent way like NS/NXHost or X. Aaron
Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
Those HOWTO docs didn't exist back in 1991-92 when this was written. Back then a sparc2 with an 8 bit framebuffer was top of the line! In case you missed it there were several references to the 'man' command.
Only the State obtains its revenue by coercion. - Murray Rothbard
Well, unfortunately, all you codeheads are beating up on X pretty hard. I happen to think that X is a good thing for Unix/Linux because it is the only chance to break free from the shackles of doze, and bring the things a little closer to Linux world domination.
I don't code, so I can't say much about the nitty gritty, but I think X is just a good chance to change the computing world a little. It makes Unix more user friendly. I know that all of geekdom whishes to keep Unix in its own secluded server-based territory. However, one day I would like to see Unix or Linux on everyone's box here in the office, and schools, etc. I think X is the key that will get things there.
It's time to bring a new GUI system to the world.
To some Extent, GNOME and KDE are helping to solve the problem, but IMO it's the wrong approach.
We really need a more sensible GUI system; getting an app up and running shouldn't be this difficult; sadly, all the futzing with Xresources and stuff is all too real.
One thing I think a replacement GUI toolkit needs is a standard window manager with standard widgets. This is probably the biggest barrier to most people ever accepting Unix as their desktop (even technical people where I work dislike X, because every program looks, feels, and works differently.)
Furthermore, a revised GUI system needs to recognize that today's clients are high-powered machines, not dumb monitor+keyboard+terminals. It need to let the client do most of the processing. It also needs to have working functionality for basic concepts like the clipboard (cutting and pasting between X apps is just silly....which cut buffer do I use?!?)
I hope Berlin truly improves upon the ideas presented in MSWindows/Aqua to deliver a new GUI system that is usable. Making any concessions to X for (compatibility) would be such a disappointment.
"all my friends say, you hate windows so much , you install linux, and then run X, isnt it the same thing?" people dont seem to realize the stability, remote display, easy multiple monitor support, endless array of free software, and the flexibility of X that lets you customize it to run basically however you please... none of this is available in windows, nor will it ever be.. lets see a windows box stay up for more then 7~10 days running the windows kernel and then we can compare it to linux boxes running X with uptime over a year... until then i dont see any reason for anyone to badmouth Xwin
You act as if the font system were the only area in which X doesn't meet my needs. It's not.
What's really required to fix X is that the X implementation needs to be stripped back down to the base protocol, and the extensions and auxiliary protocols rebuilt from the ground up based on the lessons learned from the past 20 years or so.
We're too late for that, though. We can't afford to jettison compatibility with X11 and its standard set of extensions; there's too much legacy out there. It'd have to be kept around in the codebase too.
I don't feel like doubling the size of the codebase for only an incremental improvement in functionality.
Assuming I had the time (or got enough people interested in the open source project), even if I only addressed the font subsystem, it'd be the same problem, only on a smaller scale.
I may as well just contribute to something to replace X, and get X11 compatibility through an X server component that didn't have to be part of the base implementation.
DNA just wants to be free...
These comments are the most interesting I've seen all day (talking about X and going out to see X-Men, any way, back to the point). Granted there are some inconsistencies in what old Monty has posted (i.e regarding QNX and Linux in the same light, although Linux is built to be more capable for programming, QNX is to be smaller and faster and not nearly as powerful...), Mr. Manely does have a point, the *someone* needs to come up with a leaner more effiecient GUI for the times, an X on steroids, if you will.
:-)
A good adjustment will be somthing provided that has what we all love:
a) Remote display capabilities
b) The guarantee that an xterm on my system will behave the same as an xterm on my boyfriend's system when I'm trying to get something done @ his place.
c) Configurability
d) *Thats all I could think of right now*.
I'm quite disappointed that we didn't take this opportunity, when someone has pointed out that this aspect of *nix is dying, to talk about the new, the more innovative and skillfull approach to creating a GUI in general. Now that we have better monitors, more memory, more developers getting excited about contributing to their community...more of everything... Since we couldn't do that, after such a simple article, I wonder what this means....?
To kill X doesn't mean we get rid of the good stuff, it simply means we improve.
Nuff Respec'
DeICQLady
7D3 CPE
c:\>ls c:\windows\system\kernel32.dll
-rw-r--r-- 1 500 everyone 471040 Apr 23 1999 c:\windows\system\kernel32.dll
-- "Perceptions create reality. By changing your perceptions you change your reality."
This isn't FUD. It's worse. First of all, the article is actually chapter 7 of The Unix-Hater's Handbook. What do you expect from such a person? He is going through everything in Unix and exagerating every flaw, and then going on to claim every feature is actually a flaw, and then making up his own false flaws that never existed. Or, at least, that's what he does in this chapter. It is as if he doesn't actually know how to use unix. He quotes one e-mail from a guy who clearly had no clue what he was doing. The guy actually said that he could not fathom why someone would have to tell the X-Server who was allowed to connect to it. He wrote, "Oh, yes, you have have to run xauth... I give this ten seconds of thought: what sort of security violation is this going to help with? Can't come up with any model." Err... how about stopping other people from opening up porn on your display? He also didn't seem to get why his telnet session did not automatically know about X. Ugg. And then the author quotes the e-mail as an example of X's "security through obscurity". A little biased?
Sure, the article does cover many of X's actual weaknesses, but with all the mis-information around it, anyone who doesn't know about these problems already is not likely to be able to tell the real stuff from the lies.
------
Sample paragraph:
"Well, I hate to burst your bubble, folks: Linux (and even the FreeBSD to a lesser extent) is just as overweight as most other operating systems these days. The kernel alone (when compiled), can take up anywhere from 700K to 1.2MB, depending on the configuration and whether drivers are compiled in. The GNU C library is likewise huge, nearly twice the size of the comparable BSD C library."
1) 700K - 1.2MB is "just as overweight as most other operating systems"? I challenge ANYONE to run Windows95/98/NT/2K, any non-free Unix or MacOS with less. Yeah "most of that is DLLs/Systemware"--so? If the OS requires it it's part of the OS.
2) Bloat IS bad in a piece of software--but libraries are a whole different beast. It isn't a "piece of software"--it's a library of software that's largely non-interdependent. Larger libraries generally means more available subroutines--but the subs don't call themselves so the bloat isn't a maintenance nightmare.
--
Linux MAPI Server!
http://www.openone.com/software/MailOne/
(Exchange Migration HOWTO coming soon)
So, write something to replace it that runs better. BTW, GUI "standards" have nothing to do with X. It just gives you the basic stuff to do GUIs on. Also BTW, the reason for the lack of a GUI "standard" is because X is not proprietary software like Microsoft's and Apple's.
"Maybe the embedded space can offer some salvation -- programmers will *have* to forgo X to run on smaller devices, and perhaps this will be the wedge that gets X out of all our lives."
Following that logic, maybe future advancements in Rollerblades will offer some salvation for the Automotive industry. Embedded and Desktop are two completely diverse areas; you can't say how or if one will affect the other.
It's a very dark ride.
Apple will have solved this problem in the next several months. OS X will have a great GUI, based on stnadards such as OpenGL, XML, and PDF technology. While this is not an open source solution, that doesn't make it a bad one.
Once upon a time the world took the GUI que from Apple Computer. Look what it did for M$. Give a little time and the Unix community can do the same with OS X. Whatever Apple does will be adaptable and maybe will give the community a few hints on what to do next.
To the statement that no original GUI work has really been done in X-Windows, I say this...re-inventing the wheel is great, but why not refine it to make it do what you want? Building iff of other people's ideas id how we humans got here, so why snub people for it.
I live in a house with several Win95 machines and several less-than-impressive computer users. My computer has the only scanner, CD burner, video capture card, etc. I find X to be absolutely invaluable to "idiot-proof" my computer. None of my family or friends want to learn a (GASP!) command-line interface. It's too complicated. They're too lazy. They still hunt-and-peck. With X, however, and (ick) fvwm2, I make it look enough LIKE win95 that they can use it. I use KDE, personally, but that can be changed for each user. The FLEXIBILITY is one of it's strongest points, and the reason that everyone uses it. If you don't *WANT* a GUI, don't USE one. I don't when I code! If you *WANT* a GUI, USE one. I play Arachnid on mine!
"I'm not even supposed to BE here today!"
The problem is that X (and unix in general) don't provide a smooth learning curve. For *normal* *users* it should be easy and intuitive to start doing basic stuff, and one should gradually be able to perform more complicated and powerful things as they learn. The problem with windows and the mac is that they have such a shallow learning curve, that there really *isn't* all that much powerful you can gradully learn to do. The problem with *nix is that the learning "curve" is actually a mile high cliff face on a plateau, which must first be entirely scaled before you can do anything, simple or complicated. It's this curve, or learning cliff, that offputs a lot of newbies. Smooth the curve. Nobody is saying DON'T allow people to do complicated things, but at least have some sort of interface so that a new user sees a facade in which they can get simple things done without having to immediately be exposed to and have to assimilate a lot of complexity.
The cliff might be useful in keeping newbies away but if you *want* to attract normal users you have to make that cliff into a decent slope.
It's 10 PM. Do you know if you're un-American?
Molog
So Linus, what are we doing tonight?
So Linus, what are we going to do tonight?
The same thing we do every night Tux. Try to take over the world!
O.K.
let me get this straight
X ran on the Unix systems of long ago
Computer power doubles every 18 months.
Now X is too much for our desktops and embedded devices.
Did I miss something here?
X good
I like
Because the different formats are fairly deeply different. For example, you simply can not do a lossless type 1 to true type conversion. TrueType to Type1 is also potentially lossy because the hinting is lost.
Other systems manage just fine with a generalized abstraction --
The other systems you speak of tend to use only one format -- True Type.
there's no reason the introduction of a client/server architecture should change that.
The printer ( or the printing system ) needs the outline files ( for example, postscript and PCL printers render fonts by themselves -- from the outlines. ) Conversion is both unnecessary and in a lot of cases, lossy. And the printing system resides on the same machine as the client, not the X server. So this idea of doing everything on the server side is just plain wrong, because you really need fonts on the client as well.
If you want client/server, you still need a way of mapping server fonts to client fonts.
BTW, if the X protocol is truly extensible, it begs the question -- why not just redo the font handling part of X and leave the rest of it. I'd certainly agree that X's font handling could be improved.
I want a good, complete, WORKING OpenStep. Objective-C
Rox my Sox. Until GNUstep is usable, i'll be sticking to python and Tkinter with pyOpenGl.
anyway, the thing that bothers me about this article is that it doesn't suggest what we should use intead of X. Does the author think we should switch to berlin, write something completely new, or just give up on free software use QNX?
I mean, we all know that X has many problems, but it's not as if the non-free apple and microsoft products are a viable alternative. (to those of us who care about freedom)
Hamsters are at least as feathery as penguins. HamLix
Are you this guy's old uncle? Gee, I miss OOG the caveman...
BTW, and very OT, happy Bastille Day to all French slashdotters.
Information wants to be beer, or something like that.
Take a look at the Simula-67 and Algol-68 manuals (yes, those numbers refer to dates in the 20th century). Simula-67 looks not all that different from Delphi or FreePascal. Take a look at Smalltalk-80, Cedar, and the Xerox PARC workstations. Take a look at the MIT Lisp machines from the early 80's. They had powerful, easy to extend window systems, component based development, runtime safety, incremental development, and a lot of other features that even today, almost every environment lacks.
Yes, those systems had limitations and problems. But instead of fixing those problems, the whole research community and industry went on a C/C++/UNIX binge. The end result is that 20-30 years later, C/C++/X11/UNIX (and its inferior clone, Microsoft Windows) is still the only realistic choice for real systems. Alternatives like ML, Smalltalk, and Lisp aren't feasible because only a handful of people has invested any significant efforts in them over the last few decades. Java is the only effort to bring at least some of those technologies out into the mainstream, and you know what most OSS hackers seem to think about it.
The aims of the research and development community seem so low now that reinventing WYSIWYG word processing, computer algebra, or component-based software in C/C++ is considered innovation. Unless R&D starts aiming even just a little higher, things will continue to bloat and stagnate.
I wish I had moderator points left. Please moderate parent up.
I would just add that don't limit displaying to pixels. OpenGL like style with viewport defination and positioning relative to that would be much better. In a few years we will have displays with 100 - 400 ppi (perhaps stereo) and even if only our icon sizes are based on pixels in our displays we are in deep shit.
_________________________
_________________________
Spelling and grammar mistakes left as an exercise for the reader.
Have you ever tried Programming for X? Much of X's current functionality was thrown on as an afterthought. At first it wasn't even designed to use a window manager! The point is, I think it's high-time we start from the ground up and design a windowing system with an easy-to-learn API, extreme flexibilty (which X does have), compatibility, and extensibility. All systems as complex as a windowing environment are going to show their age after a while. Well, X is beginning to show it's age...We need a system designed from the ground up to render fonts of all types, alpha channeling and anti-aliasing, 3D graphics rendering using GL. These things are part of a mondern windowing environment. X is trying to tack these on as afterthoughts to a system not designed with that in mind.
----
Celebrate the finer things in life
If the Jane Doe types only surf the web -- and there was only one browser in the world -- you'd have a point. You could just boot straight into that browser and have done with it. Sounds like you're talking about an information appliance, not a general-purpose desktop computer.
In this world of machines running dedicated applications, it really doesn't matter what you have underneath -- Jane won't ever see it. The appliance could well be running Linux with X11 and a browser based on Mozilla (all cut down to the bare essentials); it doesn't matter since the configuration is locked down.
X is becoming strikingly similar to Windows. Lots of features that 90% of the people don't know about, huge size, and layer of code on top of layer of code on top of layer of code
I don't know about the becoming similar to Windows part -- you can still run a *nix with GUI on hardware that Windows won't touch anymore. Newer hardware? Toss it all in, the computer will still be waiting on the user instead of vice versa. I'm talking desktops here -- if you're installing a server, turn the GUI off (can you do that with NT?).
Like it or not, X11 is probably entrenched. It'll take something significantly better that works with X11 apps to replace it.
-- Dirt Road
-- Dirt Road
Improvise - Adapt - Overcome (unofficial USMC motto)
While X-windows might be slow and could use some optimizations, there is one thing that puts it way ahead of Windows and Mac GUIs: Remote Display.
I would never go from X to a hyper-accelerated GUI which only provides local display, and have to use third-party programs to display remotely! Have you ever tried to do serious work over VNC or PCAnywhere? (Hint: It's _dog_ slow.) And some of us still have to use slow lines from time to time, thankyouverymuch.
(Q3A isn't very slow using XF86 && glX either, now is it?)
Now I've seen many good points on here, and I've come to one conclusion. Why don't we make a 100% free, 100% original GUI system for Linux?
Sure, it would be a large project, but if you want something done right, you gotta do it yourself. So, let's organize a group to start working on something like this. Maybe even have sub-groups working to port X toolkits over to our new system. (I think this would be possible) Then anyone who wanted to could port their applications over to this, without having to worry about much at all.
Is anyone interested in this? Let's start a project, and do this. The time is ripe for something like this. This is your chance to make a big difference in the Linux or Opensource community. I think I may even register a sourceforge project. If anyone's interested, write me email.
How could I perform this feat? Easy, really:
- Exclude ALL non-essential kernel options
- Compile in all essential options in, so module code isn't needed
- Recompile X with no debugging, and -O2 to minimize space. Shred the symbol tables, too. And only compile in the stuff needed by GGI
- Use GGI and EvStack for all graphics, and use the GGI X server. Better still, dump X and use Berlin.
- There are some -great- lightweight window managers out there, now. A WM doesn't really need to take a gazillion bytes.
- A browser is easy. Again, plenty of lightweight ones around. That really isn't any big deal.
- Shells! (Ooops, no, that's Pernese.) Shells are no big deal. You're talking about a 3-line program, which reads a line, then sends that to system(). Wow, this is going to take space.
Then, all you need to is remove all symbol tables, dynamically link ANY code used more than once, and statically link everything else.Oh, and minimise the number of directories. Those just waste space. You don't need them, except for organising thoughts. Also use a minimal filing system - inefficiencies there chew up disk space like nothing else. (You could stuff a 20 meg application in the dead space of most HD's.)
Last, if the gap is minimal, use 1-sector/track floppies. Then you don't have the inter-sector gap, which should give you about 1-2K per track extra.
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
X is a superb system. The X11 part is great--the X protocol, and excellent extensions like APPGROUP, XIE, LBX, PEX, etc. Also, the parts of the X Window System on top of that are great too--Xlib, Xt intrinsics. It's all extremely well-engineered. Who cares if it's large? Memory is cheap. That's one of the key components of the UNIX philosophy: "efficiency" is irrelevant because machines keep getting better, so we should focus on portability, modularity, extensibility, etc. I personally never have any speed problems at all with X. X runs incredibly quickly and I don't care about the memory usage. X programs are perfectly efficient. I think this guy just has a bone to pick--I don't see any evidence at all that X is slow.
X also has an excellent model for what it does. It provides for pretty much everything you could want from a programmer's standpoint below the widget level, and everything you could want from an integrator's standpoint, as it's just an excellent display system. What more could you want? Why wouldn't you want all these excellent extensions? Anyway, modern X servers can dynamically load extensions as modules when needed--so the idea that they take up memory is just faff.
And another thing. What's this about "the Unix community hasn't standardized on a desktop" ??? Duh! Haven't you heard of CDE? Maybe the Linux community hasn't standardised, but CDE is the standard desktop for UNIX and has been since 1993 or so. CDE and Motif, by the way, are two of the most excellent pieces of technology ever produced. Most people insult them without knowing what they're really capable of, but if you know what they're really capable of (ToolTalk, XmContainer, etc etc) you begin to realise that they really are excellent. And they're built on top of X. With Xt and Xlib. I think it's a perfect situation.
So what the hell would be the point of doing away with X? You wouldn't gain any noticeable performance. You would only gain headaches. I think it's really just a question of ego tripping. This guy and people like the Berlin guys are just ego tripping--they are going to create something with no real, practical advantages because they want to have something NEW NEW NEW, and more importantly, because they want to have their name all over it.
I sure hope they don't win, it will be a waste of excellent technology.
Does anyone really want to consider developing something that has all X's strengths (and there are many) and none of its obvious weaknesses, right from scratch? I don't think so. It would take years.
What about the strengths of the other contenders? Does anyone have experience with things like, say, Berlin? Though, for a start, you certainly can't get that on one floppy :)
GROGGS: alive and well and living in
The average idiot that I end up on the phone with at work will always, always, pick pretty pictures first. And yes, that seems to be what Apple has done with the MacOS X interface. Too bad... Functionality and stability seem to take a back seat to the graphical appeal of a GUI as we progress.
Every "serious" computer user I know hates the MacOS. Granted: They don't attempt to appeal to serious users.
A "serious" computer user would not be so blind or nearsighted to be a platform bigot. A.K.A., a troll. Real computer users would recognize that every platform has its advantages and shortcomings. In an ideal world, we'd have something that includes the best of all worlds and none of the crap. Alas, this isn't an ideal world.
The way the world of computers is going now, they are becoming more accessable to the extreme newbie; in fact, companies are pushing sales at the newbie. And why did they buy their computer? Because it was "cute" (iMac) or came in a box that looked like a cow.
Think about it: does anyone honestly think any alternative platform can make a dent in something that has a prettier interface or nifty graphics? And I consider "alternative" to mean anything except Windows. If the goal is to take over from Windows, you gotta think of who your target audiance is going to be. X, while it's great, still isn't as clean as the MacOS interface. And why? Probably because a small army of programmers/developers/etc. who were paid large sums of money have put years into developing and refining the MacOS with a fine-toothed comb. X hardly has the same kind of 24/7 drive behind it that could make it a lot more robust than it currently is.
What it'll take is for a group to sit down, and rewrite everything from scratch, but that doesn't really seem realistic. But that's exactly what Apple did with MacOS X. They took what was learned from previous versions, and discarded all of the junk that didn't work. Yes, in the end, it will have its own problems and a whole new set of whatever to deal with and worry about, but essentialy, MacOS X is BSD with an Apple developed GUI.
Personally, I prefer my Linux boxen to be command line based. I find I can get more things done than in a GUI. But for GUI purposes, I prefer the MacOS (yes, flame me...) over Windows any day. GNOME still has a way to go before a Linux box will become my OS of choice. Until then, I'll live with Linux and the Mac side by side, since they both offer their own advantages over the other.
--
this is my sig
X does what it was designed to do *very* well. THe lack of conformity in Unix desktops until projects like KDE and GNome came along is an indication of how fragmented the Unix market is/was - not an indication of shortcomings in X. The CDE and Motif suffered from this fragmentation, as adjudged by their designed by committee aspects.
...
Projects like Gnome and KDE have simply given X the toolkits and desktop environents it always needed - driven by user requirements not vendor factionalism. It should come as no surprise that the successful alernatives to X (NeXTSTEP, Sunview for example) were the products of lone companies. Even OpenLook suffered once it became a 'standard' rather than an implementation - resulting in more than one toolkit
As for criticising X because it works over slow modems, well I'm thankful that it does. BEing able to ssh to a remote system on another continent and have X forwarding work is fantastic. Especially when I can do this from a dial-up at home rather than the T1 at work.
To paraphrase:
Those who don't understand X are destined to reinvent it poorly
Chris
/me yells FUD!
The author makes assertions and pseudo-quotes without a citation, postfixing quips like "We kid you not" as if that makes us more likely to accept them as true.
Other flights of fancy, exagerations, and general pettiness include things like:
- Microsoft Windows owes more to Pascal than to hand coded Assembler.
- Ranting about the terms client and server. The X model uses the terms correctly, the client program asks the server to perform graphical tasks.
- Things claimed to be improvements do not exist on the competing windowing systems either. (e.g. the extensible server model)
- Ranting about individual _bugs_ in specific pieces of software on single proprietory operating systems which come with X. (e.g. the DBX bomb)
- He doesn't like some of the best features of X (e.g. the ability for the client to select which server it wishes to display via, and the ability for servers to reject such requests.)
...
I could go on, but as I'm only a third of the way through the article, I think this post may become too long.
Am I partisan?
Yeah, I avoid X windows most of the time, I have 6 virtual text-mode consoles, and that is plenty for me for 90% of the things I do. The other 10% of the things? No more than one or two force me to go into M$ Windows. The rest is X.
Hmmmm, if X is so slow, why do some programs run quicker under Wine emulation and X than they did under M$ Windows? (e.g. 'proth.exe', try it, see I'm not BS-ing)
FatPhil
Also FatPhil on SoylentNews, id 863
Its not really X in general thats slow its Xfree86 (which really isnt that slow) you think X is slow you might wanna try Xmetro , you will be rather suprized.
Right tool for the job is what I always say. Weather he likes it or not, X is extremely versitial, that's why it's been around for so long. And if he thinks X is bloated, then he hasn't installed a copy of Windows 9[5,8] in a damn long time... Try and run what he's asking for with Win32 on a 50MB HDD... Nevermind a floppy. I could have everything I need for linux in 50MB...
The proof of his wayward ways is that he's looking for things like a "graphical text editor." Why? Linux isn't about doing everything the way Windows does it, or how MacOS does it, just with a different name. Why waste your time trying to figgure out what all those toolbar icons mean. What this guy wants ISN'T UNIX. THat's fine for him. But he shouldn't be trying to get UNIX to change for him.
Sure, QNX is lighter then linux. It wasn't designed to be like linux either. Linux does more for the programer then QNX. Now for embedded systems (which QNX wants to play) this is bad, but for a general purpose OS, or server OS this is good.
The parts of X that make it slow are also the parts I use day to day. The machine I'm typing on now has a slow CPU (68030 if I remember right), but I don't care because the programing I'm typing into is running on a 300mhz sparc (maybe faster I don't know) Desptie sharing the sparc 10 other users all my programs run fast enough, and the boss finds one good machine to be cheeper then 10 cheaper not as good machines. I like not having a fan on my desk.
Perhaps we should start blasting telnet for being slower then sitting at the console.
I've only twice seen situations where X was slow. The first was when running my sun3, which has a slow X because of the slow framebuffer. The other was when running across a 14.4 dial-up. (Needs to further explinnation, though it could be speeded up, graphcis still take a lot of time to transfer at that speed)
Bloat is not a valid arguement, at least not where you site Fred Brooks. For thsoe who don't remember, Fred Brooks was the leader of a project that turned out something an order of magnatude more bloated then anything else. I know folks today who swear at unix because OS/390 is so much better. (I have no expirence with OS/390, but I know it is a direct decendant of what Fred Brooks did) The point, bloat isn't to be aimed for, but you need to balance features with bloat. Each time you add a feature you add a few lines of code. Sometimes it isn't worth it, and sometimes you should step back and find a better way, but in the end you cannot get a full functioned program without many lines of code.
Bloat is not a problem if the programed is well designed. Each person knows their part, and how it fits in with the whole. I don't know what George and Suzie are doing, but when they completely re-write their part of the code from scratch (to make it better) I don't care because in the well designed program it doesn't affect me.
One of the things that I've loved about unix over the many many years is that I can *pick* between my GUIs. This is certainly even more true now, with KDE and Gnome being so prevelent.
I've loved showing Microsoft advocates how I can change the entire look of my desktop simply by using a different windowing environment. Having multiple options is not a bad thing. It's one of the things I hate most when I use windows. There is only one GUI, and its one I'm not very happy with.
Need a different or missing feature for your window manager? Simply change managers!
The next site to slashdot will be ready soon, but subscribers can beat the rush and start slashdotting it early!
I actually like X. It's stable, it's networkable, it's customizable, some fine implementations of it are free software, and it's one of the few things that is actually standard across UNIX platforms. It gets the job done in a big way.
Over on the Windows side of the world there are companies charging an arm and a leg to put networking functionality into the GUI that X has had for many years.
Yes, X has some shortcomings with regard to lack of support for antialiased fonts, lack of support for transparency, and lack of a "gaming" API that bypasses all the userland graphic abstractions that every other application needs, but I can't see why these are impossible obstacles. There's got to be a way to add new features to our beloved warhorse, the X windowing system!
*grin*
-OT
I like some of the functionality and abilities that X has, but coding for it is a bloody nightmare. The toolkits help quite a bit, but its still pretty messy to do any hand-coding. Nobody mentioned the fact that one of the good things--the ability to run the manager separately from the server, also bites you in the butt on a single-user machine. Rather than having the enviornment spawn the window directly, you've got two steps: the server requesting a window spawn and the WM providing the window. The two are racing with each other. Ironically, this bites Linux folks hardest...
Qt comes in a number of different versions, with X and win32 being the better known. But there is now a frame buffer version that completely avoids X on Linux. This version of Qt (Qt/Embedded) already offers anti-aliasing and alpha blending: stuff you can only dream of in X. Thanks to Qt/KDE, a lightweight GUI with lots of available apps is theoretically possible.
Hmm, I use remote display on a daily basis... in fact much of what I use my desktop at work for is as a glorified xterminal. Perhaps some of you out there who just use linux/bsd/etc on the pc at home don't realize that the power of unix and of x11 is the network.
--Rob
jee...isn't it strange micro$oft had to consider back compatability dos...3.x...95...98..ect... i wonder if gnu/linux GUI's are headind down that road.
* checks *
You're right. ~14 years, modulo some preliminary work. Sorry.
The problem is not the X protocol, nor its extensibility.
It's the extensions.
Most of the core X extensions and related protocols (the ICCCM stuff is really the worst offender by far, followed by the font stuff) are incredibly poorly designed, and not themselves particularly extensible.
Try discarding all the existing extensions and then rewriting them properly, on top of the existing X protocol. Assuming you did it right (and with 14 years of experience to refer to, it'll be easier), you'll end up with a very nice, clean, extensible system.
The only problem is, at that point, you either have to take all the old extensions back, or you may as well not bother calling it X, because it won't be compatible with anything.
Otherwise, you may as well just redo the X protocol a bit to fix the couple (minor) deficiencies it has... and... hrm... if you're going to be doing that, why not just scrap it completely and redesign from the ground up anyway?
It should, of course, be extensible.
Extensibility is a very good thing, but, like customizability, if it has to be used too much, then there's something fundamentally wrong with your original design (in this case, primarily the core extensions).
DNA just wants to be free...
just a note:
/bin/sh. That means you need a shell to run any program that uses system()
You cannot build a shell just with calls to system(); all that system() does is exec'ing
Here's an article entitled the X-Windows Disaster written by Don Hopkins.
Anyone who reads this article may be inclined to yell FUD, FUD, FUD as has been written in comments to this article or MSFT supporter but not in this case.
Don Box is a migrant user interface designer and graphics programmer. Don received a BSCS degree from the University of Maryland while working as a researcher at the Human Computer Interaction Lab. Don has worked at UniPress Software, Sun Microsystems, the Turing Institute, Carnegie Mellon University, Kaleida Labs, and Interval Research. He ported SimCity to NeWS and X11 for DUX Software.
X-Windows has serious problems that are evident to anyone who has ever done any serious investigation but since it's *nix most people put up with it's clunkiness. Similar to how an alternative to GNU getopt(3c) has not been written yet, because getopt works well enough (or so people think).
--
Seriously, if you purists want to harp on someone, at least try to make it funny...
In the past, I have been almost fanatic in correcting people who call X "X Windows." Windows is a piece of software (of questionable quality..but that's a tirade for another time) written by Microsoft. There is no X Windows, thankfully. Microsoft can keep its hands off free software. I'd say that it is almost disgraceful to call X "X Windows." I am suprised to see so many people interchanging the two terms. My question now is, what are people more annoyed with: X itself, or window managers? It's one thing to hate certain window managers, but does that mean you hate X overall, or is this just another broad use of "X Windowing" to cover everything under the umbrella of GUIs for 'nix flavors?
choob
Now running chaOS
(powered by ta)
[RANT]
every thing this guy thinks is a problem is what makes me happy I run X.
I don't want to use YOUR window manager, I want to use MINE!
I dont like YOUR widgets, I like MINE.
I HATE PEOPLE WHO THINK THERE IS ONLY ONE WAY TO DO THINGS!!!
X allows its users to do things however they want, not how some Ph-Freakin-D in ergonomics thinks we should.
[/RANT]
The difference between Theory and Practice is greater in Practice than in Theory.
I don't have a problem with X, it lets me do multiple tasks in multiple Xterms quickly. Mmm, Xterm.
What I do have a problem with is the continuing use of the term "X Windows". Read your X documentation, it's not one of the listed names. it drives XFree86 authors (and other X Consortium members) crazy, and only makes *nix systems running it sound more and more like Bill of Borg's Windoze line.
To read straight from the X manpage:
"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"
"X Windows" sounds ugly, plus it's a lot easier to just type "X", no? The sooner we stop calling it X Windows, the sooner newbies become less confused.
He goes on to complain about window managers being broken away from X. COME ON! Modularizing code into small components is only a good thing. God knows we don't want to end up with a windowing system that is basically unchanged (except for the applications and the window chrome) since 1984.
I don't agree with ALL the criticism, but X must DIE - soon. A new graphics architecture (with a legacy plugin for handling old school X apps) is needed.
Gee Wiz graphics after he mentions FVWM in the paragraph before???? I think Apple's focus groups must have included my grandmother, chimps and those people who operate their computer by blowing into a straw. YUK! Every "serious" computer user I know hates the MacOS. Granted: They don't attempt to appeal to serious users.
I do think he's right. Big Linux Vendors: create a project to make the next generation windowing system with all those nifty features. Don't forget to invite the BSD folks.
The last thing I want is to have to run KDE because the masses decide it should be the standard. Yuck!
X is just a bunch of graphics primitives. Lots of middle level APIs exist to make it more manageable for programmers, and if anything needs to be done its cleaning up, optimizing and standardizing stuff on that level and below. But I think one of the strong points of X is I can configure every little widget and pull down menu to suit my needs. Don't make ME run YOUR desktop.
That said, KDE and Gnome are both looking pretty spiffy these days; maybe it's time to give them another try.
You know, he comments a lot on the size of the linux kernel, but 700k isn't really that large in my mind. In days where computers are shipping with at least 64Megs of ram, 0.7k isn't much to ask for the guts.
The fact that linux can scale down to embedded systems speaks for how well it was written.
BesidesHow many people are using the wonderfully fully-functioned QNX as their main desktop OS?? anyone??
If the X font protocol had been designed extensibly, there's no reason it shouldn't be possible to add facilities for retrieving font metrics and so forth.
Why should outline fonts be dependent on a particular file format, anyway? Other systems manage just fine with a generalized abstraction -- there's no reason the introduction of a client/server architecture should change that.
If most X extensions were as extensible as the base protocol they were built on, there wouldn't be a problem.
By the way, what you describe is precisely what a lot of these apps that want their own font directories do.
DNA just wants to be free...
As you can see from all of the flaming nonsense erupting yet again when someone dares to question the supremacy of X, the future of desktop Linux is totally screwed. Even companies dedicated to nothing but applying makeovers to the standard Linux desktop (Eazel) can't make the ugly bitch presentable.
The only way out is to do the hard work that NeXT/Apple did in creating a unified vector-based imaging model. The GNUstep project actually has done most of the work here already with gnustep-xdps and gnustep-xgps but the larger Linux community keeps banging head against wall with X and KDE/Gnome. Defend X all you want but you'll be forced to come around eventually.
Those who are ignorant of NEXTSTEP are doomed to recreate it...
Night
> In windows world, when a user finally figures out that alt-F4 closes a window they KNOW that no matter what box they sit down at alt-F4 will still close a window.
And any X box I sit down at here at work works identical for me. Why? Because my defaults are in my home directory, so any X I start looks at them, configures X to my preferences, then I use it like my home desktop (which it is). If you boot up X with your prefs, you get your prefs. Like alt-F4? Set it to that, and it's that everywhere. Like Alt-Q? Set it to that, and it's that everywhere.
Isn't network transparency wonderful?
Among other things, all window managers (ICCCM), and any X application that displays text.
Because we haven't replaced X yet.
DNA just wants to be free...
If we really want X replaced, we have to deliver something a lot better than X has now in order to justify the trouble to developers and users to make the switch. Simply being "just as good" won't cut it. Perhaps Berlin will be worthy when it's finished, but we're not quite there yet.
Ita erat quando hic adveni.
I didn't understand X, so naturally when I read articles at the Unix hater's website I started hating X. At the time I was spending much time trying to do Xlib programming. Eventually I went back to Windows.
Now a few months later I am back in X and loving it, because I now know much more about programming, X, and Unix. There are some ackward things about X, but in general it is a *good* system.
The issue about speed is not as valid as it was in years past, because personal computers are much faster now. I don't care if X and the BSD kernel don't fit on a floppy. I rarely ever use floppies in fact.
Any modern system seems bloated when compared with a TI-994A.
If you think that X sucks, then by all means write your own window system, otherwise don't complain.
Sorry, but this guy is out to lunch. First off there are other alternatives, but why would you want what is effectively a proprietary solution? X servers are available for all unix platforms that have frame buffers. Xlib is available for all unix platforms so you can run the apps. Sure it may not have the snappyness in certain areas, but that is being solved as we speak by the DRI architecture (no, it's not just for 3D.)
Besides if the author of the article wants a pared down Linux/BSD/Unix you can pretty much put it on a floppy with X and a few basic tools. Much like the QNX demo disk.
Too bad that the clueless are allowed to stand on soap boxes.
Go get VNC and run X remotely and btw, run Windows remotely too.
VNC is from AT&T and Free. search for it. I use it all the time, and I can run everything remotely.
I can program myself out of a Hello World Contest!!
I read something along these lines by one of the original designers of NeWS (forgot his name). Many companies have been releasing their less-than-successful projects under an open src license. When Plan9 was released this way, I wondered if Sun would do so for NeWS. That cannot be a bad thing for Sun/NeWS.
What about pie menus?
Don't piss off The Angry Economist
I generally agree that X has some deficiencies, I take exception to the original article. It sounded like the rants of folks who really didn't know too much of what they were saying. The things that I _LOVE_ about X that I would want to see in another windowing system: -network transparency -extensibility -Xt has some cool features -platform independence -tools for mapping keys and other events are NICE Some things that are bogus: -the font mechanism is incredibly painful to use. Definitely not meant for human consumption. -The X visual system is not easy either. -X is a pain in the butt to get applications written from scratch (granted, Windows is too...) -X REALLY could have benefitted from a better event model. It feels too cumbersome. Programming X would have been sooo much easier if a better event model had been adopted, as well as using an actual OO language instead of trying to mimic OO in C. -Ralph I disagree with your point about X being tied to a particular GUI. That is a shortcoming of the toolkits that have been developed, rather than the X protocol and interface. It _IS_ possible to write skins GUI toolkits for X, just noone has done much of that work.
Christ, you're almost as big a dork as this guy.
Can you metamoderate?
Learn to spell.
I dunno, I think X is okay.
On days when I'm doing serious work, I've got 8 desktops loaded. On one I've got Netscape and an electronic calendar. On another, a CD player and control panel. On 2 others, development or analysis environments of 3 xterms and emacs. Another has xv, another has ghostview, xephem runs on yet another, and finally some game runs on the last.
Yes, there are some sucky things with X, and a better environment would help. Yet, I would find it inconvenient to do all of this from a virtual console. "screen", while powerful, isn't enough. Geez, sometimes I'll even be using screen in one or more of the devel/analysis xterms.
Once X is running, it is generally okay for me. It lets me do the things I need or want to do. To me, that's the point of using a computer. Imho, that is.
Graham
Graham
Linux - Fast Pane Relief
Then exactly where can I download NeWS? Huh????????????????????????????????????
I like how everyone is pointing to non-existent alternate programs. Berlin seems neat, but it is no where near finished, all the others examples are dead technology from '91.
The current Slashdot moderation system is made by gay communists!
Does anyone else see the similarity between this and the question above about "Why are we still using gasoline?"?
In mathematical terms, both are trying so find the minimum in an equation with lots and lots of variables. More precisely, both are trying to change the coefficients to give the desired answer rather than the current one. And do it while creating the minimum number of dis-continuities.
As much as I'd like to see X go, you've hit the real nail on the head here. It's the appalling quality of X app user interfaces and complete lack of consistency across them that really kills unix's usefulness as a desktop OS.
Window managers can make unix look pretty - but that impression lasts only until you sit down and actually try to use the apps.
A re-occuring theme in open-source seems to be that 90% of programmers can't design effective user interfaces, yet alone UI's "for the rest of us" (I have a personal suspicion that GUI's like KDE will never mature until the programmers have their CLI's removed and are forced to do everything in the GUI they are building, you sometimes get the impression they're just copying something they don't really understand).
I feel I should also say something positive and encouraging instead of just trashing other peoples noble (and appreciated) efforts, but I can't see a light at the end of this tunnel yet.
(I would mod you up but you know the story).
Well, best would be to kill this article and forget it (maybe the author was little bit confused about the variety of available X-based desktop solutions (CDE, KDE, Gnome, xsm/twm etc.)).
X can run even on embedded devices (there's a JAVA-based X server available), some of those handhelds are smarter than most Xterminals ten years ago.
-- __ . . __ (o.\ \/
Very little of QNX is written in assembler. The bloody thing runs on almost as many architectures as Linux, without the 50 million (exaggerated of course) coders that Linux has. Without a portable code base, that wouldn't be possible. A lot of OSs do that. For example, BeOS can fit into less than a 16 meg permanent disc (sans some features of course) its just that the code base is really small, (around 1.5 M lines) not any assembler tricks or anything (most of BeOS is C and C++)
A deep unwavering belief is a sure sign you're missing something...
Always thought it would make a comeback....
[NOT]
try { do() || do_not(); } catch (JediException err) { yoda(err); }
Many people have come up with reasons that it must die. Most talk about its interface, and its "bloated" aspect. Lets discuss these things
1. X is bloated. Interesting that you say this when you consider that you can run X from anywhere from a floppy to a 460 meg installation. X is what you MAKE it. It is NOT bloated.
2. X does not have an interface that is usable. X is not an interface (splitting hairs?) X is a system in which, graphically, data is passed from a server to a Display specific client. This display specific client is the issue. Well, more importantly, it is the window managers. Well, I tend to like MWM, Fvwm, and even Gnome better than windows because I KNOW what I get. I get something I really can code in for one, and I get something I can replace if it does not do what I want.
X should not DIE! because of the very simple fact that I can do whatever the heck I want to do with it, and so can you. With Windows do these things and open up a myriad of serious problems.
---
Why is it, people think X is the problem with Linux? It is not X people... it is the fact that no one has written a really decent System Manager. LinuxConf does not yet come close to what is needed. Write this, and people will flock.
I can program myself out of a Hello World Contest!!
Where can I get a java version of X (compatible with Netscape under Win9x) so that I can connect with a Linux box from anywhere? I have a Java based tool which lets me connect to WinFrame and to Terminal Server. I tried searching, but I just keep coming up with Netscape for Unix... nothing useful. If I had found one... I'd now have a VA Linux system on order (along with a copy of VMware) instead of a spiffy new Dell PowerEdge
--Mike--
GNUstep is progressing, contrary to the author's statement that it's in eternal limbo. It is moving, albeit slowly, and has picked up quite a bit in the last year, as the OpenStep API is once again in the spotlight, in the guise of Apple's Mac OS X. Want it to move faster? Lend a hand! No open source project moves forward without the help of volunteers!
Also, the author seems to be under the impression that GNUstep doesn't rely on X. Although it's quite possible to write a new back-end to interface it with Berlin, or any other graphics archetechture (it was designed with that forethought), it currently uses X (with a Display Ghostscript extension) as a display medium. GNUstep is cool, but as of now it certainly is not a replacement for X, and that's not it's primary intent.
Aside that, the article hit the bull's eye. I'm happy to see that Slashdot sucked it up and posted it; too many *BSD and (in especial) Linux users think that X is the epitamy of cool, simply because you can have 'l33t things like enlightenment. Bah!
Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
Link here.
This is being developed for the embedded market. OTOH it also has development environments running under X. Therefore anyone who wants can develop real applications to microwindows, and let people run it on whatever graphical system they want...
Cheers,
Ben
My usual seat in the cluetrain is at A HREF="http://pub4.ezboard.com/biwethey.ht
Backwards compatibility, so we'll be stuck with the crappy X apps forever?
Let's face it, UNIX programmers are lazy and won't follow any UI guidelines if they are able to recompile their old crappy stuff.
---
>80 column hard wrapped e-mail is not a sign of intelligent
>80 column hard wrapped e-mail is not a sign of intelligent
>life
Is there anything more suitable for these upcoming, thin, networked devices than X? Photon may fit on a floppy, but can it distribute where the various parts of the GUI are actually executing code? If thin clients are the future (and I believe that for the commonplace mom 'n' pop user, they are) then that future will run on X.
PS--He's right about one thing. Enlightenment _IS_ a train wreck.
-- The Sage does nothing, and nothing is left undone. --Lao Tzu
try w3m (search on freshmeat). It's way better than lynx. It renders tables and frames.
The componentization of the window manager was in the abstract a good idea, but the execution (ICCCM) was an abortion. You say that X wouldn't have survived as long without it. But if X had died because it was stuck with one bad window manager, then we wouldn't be in this dead end prediciment that we're stuck with today!
X should have been designed to self destruct. Like shareware that expires after a few months. I wish somebody would patent X11, and sue everyone who tries to use it. Where are SGI's lawyers when we need them?
The ICCCM window manager protocol is like an emergency tracheotomy performed with a rusty crowbar, that's been inflamed and oozing infected pus for the last decade. ICCCM is the scab on a stigmata that will never heal. But people keep trying to fix the problem by enlarging the hole in the neck and sticking tubes down it! Isn't it about time to just cut the head off and bury the body?
There's nothing clean nor extensible about the X protocol, and to make such a statement ignores reality and history, and promulgates bad taste. NeWS had an truly extensible protocol that allowed clients to dynamically download code to the server at run time. X extensions just don't cut it. You could just as well call Perl a clean simple well designed language with an easy to learn syntax, if you're going to distort the facts so grossly.
-Don
Take a look and feel free: http://www.PieMenu.com
Why is X so large? It's the server, mostly. It has to respond to a number of basic operations, in a way that makes sense when you realize that the xterm that you have on your window may have originated on the same system, a Linux system on a local network, or even an RS/6000 at work.
X is a protocol that allows a number of different workstations to interoperate. That RS/6000 xterm will react to my window manager in the same way that a local xterm will. No surprises.
A program that uses the X libraries and the Intrinsics (Xt) toolkit can usually be recompiled on any other system with X Window support, and run as is. If the program uses GNOME, KDE, Motif, or any other set of libraries that run on top of X, the only requirement is that those libraries must also be installed. But the program runs the same on all of those systems where those libraries are installed.
Is X a large program? Certainly. It could have been designed differently and work well on a single architecture. A window manager could have been integrated into it. Hell, add a file manager with tree-views. Microsoft took this tack, but if you write a program using the Windows libraries, they will only work on Intel boxes (or maybe Alphas, prior to Windows 2000).
X offers configurability. Not generally very easy, but it is there. Don't like the fact that your window manager binds CTRL-F4 to "Window Close?" Change the parameters and restart your window manager. How easy is that on Windows?
X allows you to separate the fact that you wish to draw a circle from the actual act of rendering that circle. Send a graphics request to a display, and the display will figure out how to draw that circle. It doesn't matter that the program may be running on a different machine than where the display is. It works.
If you are running NT, try opening a DOS command prompt on your neighbor's box, with the commands appearing on your box. You can probably purchase a special utility to do this (and install it on both boxes), but that capability is not built into Windows. On X, all you have to do is to be able to authorize myself via the network (rlogin, rstart, ssh, xauth). Voila!
X reigns supreme when you wish to work on multiple computers, but don't want to hop around from keyboard to keyboard. It was developed for such a collaborative environment, and is machine neutral (works on Intel, Motorola, Alpha, HP, and many other chip sets), network neutral (it works with DECNet, TCP/IP, and Unix sockets), workstation neutral (just need an X server for the computer(s) you wish to work on), and operating system neutral (you can get X servers for Unix, Linux, Windows, Macintosh, and a lot more).
Do you wish for better graphics support in X? Well, if you have an anti-aliasing library that will render fonts better IN A MACHINE-NEUTRAL WAY, then donate code to the Open Group to perform the function and everybody wins! Bitstream offered their Speedo font technology for font scaling. Others have donated other technologies. XFree86 has done wonders with having it work on microcomputers.
It's open source. Add what you think is missing. Yes. This will make it even bigger, of course.
Smaller isn't always better. I can remove X Window from my Linux system, and have a character-oriented prompt. Doesn't take up much disk or memory space as X, but it doesn't offer me as much flexibility.
(void) lar3ry();
--
"May I have ten thousand marbles, please?"
For all his statements he sure doesn't look around too much. We all mostly know about Enlightenment and it runs on X-window with everything that he wants including the anti-aliasing and such. As to a single floppy with xwindows and a kernel. It can be done, our university had it done as a masters project. True it doesn't use a support everything kernel or anything like that but it does meet all the requirements.
Telcos have alot of dark fibre in the States. Most people assume that's optical fibre...but it's actually moral fibre.
SO you would rather have better performance for the 0.1% of the time when used over a remote display than the 99.9% of the time that its used on the local display!!!!!!!!!!!!!!!!!!! IMHO that is simply STUPID. doing stuff on local displays is far more common. If you need support for remote displays then you should use something else like VNC. Not force all the people using local displays to suffer for something which is rarely needed for the vast majority of people.
I'd really like to remove all the IDE Bus-mastering code, and have the processor use PIO for everything.
I can't believe how big the "kernel" of linux is. Why did they suck everything known to man into the driver, instead of making loadable modules? If I don't have a 3COM 3C905B, or whatever... why do I need to have it linked into the kernel? Everything not absolutely essential to the purpose of the kernel (memory and task arbitration) should be pulled out, and made into loadable modules. If it requires a special boot file, or whatever (because the File System isn't loaded yet), it's worth the price.
</RANT>
I'm shocked and disappointed that Linux can't fit a bare minimum version (with GUI) onto a single 1.44 Mb disk, like QNX can. If it's sooooo efficent, why is that?
Possible answers
--Mike--
X had a few design criteria, including:
- support all sorts of weird frame buffers
(video RAM was once very expensive)
- not prescribe policy
Let me address this last one: the reason you see a plethora of window managers is _because_ there's a plethora of GUI preferences out there. Every time I see phrases like "standard GUI" I cringe in fear. This is the path to user entrapment. To take an example, I don't have _any_ window borders or title bars on my desktop; they waste space and are an inefficient way to manipulate windows anyway. Only under X have I this flexibility.
X is good. It's bloated, and the graphics model shows some age (not alpha, etc, as you remark), but it gets some things more right than many other platforms: it leaves policy in the hands of the user (via _many_ very different, very configurable wm choices) and it separates the app from the wm and rendering system. That division is a damn fine thing.
What would I have "fixed" in X?
I'd have an "emulation" facility to let lazy apps request one of a very small number of basic graphics modes (1 bit deep, 8 or 16-bit mapped colour, 16 or 24-bit true colour) and let the server handle transcription to the video hardware.
As it is, several apps don't cope well with less common graphics models.
Cameron Simpson, DoD#743 cs@cskk.id.au http://www.cskk.ezoshosting.com/cs/
First of all i'm writting this message from QNX's little OS which is what this little contraversy get rooted from. It's a single floppy boot with a GUI that is really quite cute and works very well. But the topic of the matter is weather or not X is a lumbering dinosaur waiting down linux from being able to be the next super OS. Answer is not at all simple. X windows is designed the way it is to be able to be accessable across networks and serial connections as a way of doing graphics via remote. A lighter weight remote capable GUI has been tried and tried again through out history and it is simply not a easy task. So as far as I can see in any given future linux would be retarded to give up the ability to communicate via X protocol, it would loose alot of its capabilities in the unix work field. Is there room for a new GUI that would be for home users that would not have remote capabilities there for giving the end-user 100% of his machine to him. I would say its not that bad of a idea really.
I love it when people throw around the fact that the system waits for the user. When I am running 3D Studio, the system is certianly NOT waiting for the user. It is busting a gut to redraw the screen. I don't want my windowing system taking up 40MB of RAM that COULD be going to my rendering package. I don't want my GUI sucking up CPU cycles that should be going to my renderer. Or if I am background rendering, I don't want the GUI to steal those cycles. Sure I could run TWM, or turn the GUI off when I'm rendering, but damn it, I'm not blind! As a graphics person I LIKE pretty pictures. I can tell you that Windows does a lot more with hardware than Linux plus X can. To get the same features as Win95, you have to run Linux + X 4.0 + KDE 1.91 (sure you could use TWM, but it doesn't have anything like COM, or embedding, or the cool features in Win95) A 486/33 will run Win95 decently, but will puke on the equivilant Linux configuration. Sure, you can pare Linux down, but why bother competing if you can't compete with an equal feature set?
A deep unwavering belief is a sure sign you're missing something...
John
John_Chalisque
One of the biggest problems I see is that the current generation of X GUI programmers don't understand where X came from. They are most likely using Gtk+ or Qt and don't know the first thing about X resources, app-defaults, and the other things that made X customizable and useful.
If there ever is a replacement for X, I hope it's done by people with the engineering know-how as those who made X. Look at it. It's survived and remained useful for around 20 years. It's been ported to platforms the original programmers never even imagined (handhelds, Windows, you name it).
For any system to last that long (X, TCP/IP, ethernet) it has to have been well designed and designed to be used in cases the original designers might not have imagined.
That's my rant... I like X. It works very well for me.
From the X(1) manual page, right on top:
\begin{quote}
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
X Window System is a trademark of X Consortium, Inc.
\end{quote}
It's depressing when people who don't know how a
piece of software is called start discussing its
fate and how it "must die."
-- Stanislav Shalunov
Dont say "theres nothing else out there" and continue using X-windows forever. Develop something new. Im nothing speaking to anyone in particular here, but it doesnt make any sense. I dont believe anyone can honestly say that they have no problems with X-windows. Starting over seems like a much easier step than going through the maze of code and attempting to fix bugs and "features" that make it so bloated.
I'm not Lars, silly!
Can you metamoderate?
Learn to spell.
The more I read about Microsoft's new initiative to take over the internet, it sounds more and more like they've "re-innovated" X. With one important exception; it'll only run on Microsoft.
If you want really fast games, you're probably writing directly to the video memory. VNC isn't going to be able to work under those circumstances. So, having a super fast local display probably means no remote display.
Where I work, I can't live without remote display.
Does this guy know what he's talking about? 700K-1.2M??
The largest kernel I have EVER seen is 674K (albeit no SCSI); two of my home workstations have kernels both easily under 500K (close to 450K). My school's Linux server with SCSI has a 556K kernel. Unless you make some monolithic monster with support for 10 different ethernet cards and 3 SCSI adapters I find it hard to believe a _standard_ kernel can get that big (there may be exceptions, yes). Someone with a Windows box care to tell me how large kernel32.dll is? (keep in mind a windows 9x kernel doesn't have device drivers built in like many Linux kernels have, and is much less stable)
And about the C library: yes, it is a few Megabytes, but only when unstripped!! If your distribution strips its libraries (I know Debian does, RedHat didn't as of 6.1) you'd know that libc-2.1.3.so is around 400K. The rest is mostly debugging symbols. I can easily make a rescue disk set that contains all the basic functionality of a linux system (in terms of file manipulation and viewing) using a compressed ramdisk of about 1.3Mb; Windows can't give me all its functionality like that, MacOS can't either (anymore, as of 7.5.5?).
# debian/rules
X is one of the greatest things about a *nix! At work I am required to run windows about half the time. It doesn't bother me much though because I have this wonderful little X server for windows. I can run ANYTHING from my linux box in the next room. Lets see you run a windows program remotely. Oh you can't you say? hmmm... And what are you talking about it being slow? If its slow for you get the right server for your card. I'm running Xfree86 4.1 with the nvidia drivers, and X HAULS BUTT!!! It is much faster than windows at everything that it does, and it looks SOOO much better. I personally run enlightenment. You complain about bloat? Your bloat is your stupid task bar. You will never get windows to look anywere near as beautiful as my desktop looks in linux. You will never get windows to be anywere near as functional. Of course now your argument is that its not setup a standard way. Some newbie can't some sit down at my desk and use it. Of course not!!! It MY way. I spent a lot of time to get it running MY way. If a newbie does a fresh install of redhat though the newbie gets KDE. I got my Mom to use KDE once. She can't get around in windows!!! I've seen a linux system boot off of 3 floppies and run X, and had a lot of little tools on there. Lets see you get windows to do that. It just doesn't compare. X is the best thing there is. YOU KILL X I KILL U!!!
Problematically, X does a lot of that too these days. Most of graphics laden stuff done by modern systems like Qt and GNOME often use shared memory, and in the end X ends up just pumping pixels back to the server. Of course, there would be a really easy way to prevent this all. Switch to a disjointed client/server model. For example, BeOS uses a message passing model. Client apps send requests to the display server. It is damn fast on a local machine (mainly because message passing is pretty efficient and highly optimized) and theoretically, the display server could be replaced by one that shunts the calls to a remote server over the network. Thus, you get two hops for a local system, and three for a remote one. True, the local server would have to be replaced by a remote one and the system restarted, but most remote display machines operate in one mode for a long time, so that is not really a problem.
A deep unwavering belief is a sure sign you're missing something...
The thing is called X Window System or X. There's no X-windows.
-- Si hoc legere scis nimium eruditionis habes.
It could be that X is old and slow. I don't care.
I suspect that many people don't have a clue about redirecting displays, and the real power built into Unix and X based tools.
Over the 7 years I've been playing and working with various Unix/X flavors I've worked with a lot of SW developer types who didn't know they could telnet/rlogin to another host, and then actually run programs ( that's right! ) on that other hosts CPU. And then, after typing "setenv DISPLAY" and "xhost +", wonder of wonders, actually run a GUI program with the display redirected right back to your local screen!! Amazing..
Unless you have actually done this once or twice, you probably don't get it.
Until there is some real comparable functionality that can really both redirect windows, and display redirected windows, out of the box, with no additional expense or configuration, X is here to stay.
Here are some hints:
- an X-server can displays GUI's for programs running on local AND remote clients.
- An X-server runs on most all modern Unixs out of the box
- X-windows based programs can all display locally OR redirect their displays
- X-windows programs can redirect out of the box, with no special, expensive client or server SW.
Sit at your desk, and compile on your cube-mate's cpu. No problem. No special SW.
Sit at your desk, and and run a tool that's only installed on your boss's machine.. No problem. No special SW..
Sit at your desk, and use a Window Manager that only exists an that brand new machine over in the lab. ( clue: In X you can redirect window managers just like everything else. ) No problem. No special SW.
A lot of your Windows bigots don't have a clue about this.
Kevin
"They that give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety"-B.Franklin
From their homepage it's said to do something similar to what you're asking for...
There are two types of dirt: One dark kind that sticks to light objects and one light kind that sticks to dark objec
X was developed in the MIT environment, which at the time consisted of big servers, pathetically underpowered workstations (no local storage, <=8 bits per pixel), and 10Mbit Ethernet everywhere. Thus, the architecture of X presumes that most of the computing power resides on the central servers, and the servers and clients will be able to communicate at high speed.
In the modern Internet, with massively overloaded servers, workstations capable of running Quake and Unreal Tournament, and dial-up modem connections, each of these assumptions turns out to be exactly wrong.
(You could even view the Web as an attempt to address the same problem -- distributed computing with a graphical interface -- and one far better adapted to existing environment than X.)
Widget sets should reside on the client side (I'm using "client" and "server" in the conventional sense here, not the inverted X usage). The application on the server shouldn't have to say, "draw a rectangle here with these dimensions, with this text here with these fonts, etc...", followed by events and drawing instrucitons traversing the net as the user drags the mouse. It should just say, "here's the menu description, don't bother me again until the user chooses something from it."
If that approach had been adpoted, we wouldn't have distinct Motif apps and KDE apps and GNOME apps. We'd just have X apps, rendered as Motif or KDE or GNOME (or Win32 or Aqua or AfterStep or...), depending on how your workstation is configured. And we'd be deploying these apps across the (low-bandwidth) Internet, not just across (high-bandwidth) LANs.
"I've never seen anything fill a vacuum so quickly and still suck."
--Rob Pike on X
what did you do 15 years ago that couldn't use some updating now?
nothing, huh?
well, maybe instead of bitching you could help XFree and PI come up with something a bit lighter.
byatch.
Treatment, not tyranny. End the drug war and free our American POWs.
See my user info for links.
So X is buggy, so it's slow and lacks features that would make it ideal. Perhaps the choice is to completely replace it with more efficient, smaller code. I completely agree with that.
The only catch is: Make it look good. I doubt very few people want to sacrifice the customization and beauty of X. I spend a lot of time getting my desktop to look great, to make people who use the boring Windoze GUI stare and wonder what I did to my computer.
People (including me) are visual, and I don't want to give up aesthetic quality I currently have in X in trade for a smaller code base.
But, hey. If we can make it look good, innovative and efficient, I'm all for it.
-- Breaking Windows: Not just for kids anymore KDE
The primary problem with X isn't that it's the worst display server man ever created. The problem is X applications which are in total chaos. There are two methods to tackle this problem: the MacOS method and the NeXT method. In MacOS the toolbox doesn't force any programmer to follow any UI guidelines whatsoever. MacOS would have been in total chaos much like X except Apple published UI guidelines, and when a programmer failed to follow them Mac consumers would let them know in every way possible, even if they put a certain command in the wrong menu. FYI: UI guidelines have absolutely nothing to do with looks, or one's theme, or application switcher or window manager. Window manager does not a UI make. In NeXT programmers used an OO framework to build their applications, so they had little choice but to follow the UI guidelines. In fact you can replace the UI with another by moving the standard menu items around or changig how text is selected etc. The difficulty with X is nobody is going to use one application framework because UNIX programmers are lazy hackers who don't give a hoot about users. Truth is most X apps looke like Windows freeware. With all the millions of X toolkits (and programmers who don't even use toolkits) I do not see any way to use the NeXT model. The community's abandonment of GNUstep just about sums that up. The only solution that I can see if to write up or adopt some guidelines like menu item placement, ICON shape (although admittedly not all mac apps folloow Apple's guidelines which state applications ought to be diamon shaped, although I wish they did), text handling (unfortunately OpenStep and MacOS are almost completely different in every way text is handled, from the way arrow keys and pgdown/pgup/home/end are used to the way text is selected and the way the cursor is positioned), standard key shortcuts (I HATE the way windows apps use up the F-keys when I prefer to program these for global use!), etc. I don't know if we can adopt Apple's guidelines since they rely on so many tools available in the OS. For example all preferences are stored in a runtime-defined directory. All files have a type and creator allowing all file ICONs to display what app and what kind of file it is at the same time. There are other file attributes like 'kind'. Plus some things like drag+drop can't be universally had without a toolbox or framework. MacOS for example supports ubiquitous drag+drop text whereby any selected text is a draggable item. This can be implemented in OpenStep, and perhaps GTK but not in X generally. I guess they can adopt Apple's guidelines and programmers will just have to adopt the subset they are able to, not that I have much confidence that they will give the effort. After all most of them behave you shoud be thankful they program to begin with, and kiss thier feet no matter what a piece of crap it is.
---
>80 column hard wrapped e-mail is not a sign of intelligent
>80 column hard wrapped e-mail is not a sign of intelligent
>life
Am I missing something here? What the hell is wrong with using XWindows? I've used it for years and have absolutely no problem with it. It allows me a huge amount of flexibility, especially when compared with the display managers used by a certain other OS. Get a life.
More complex hardware demands more complex software to run it. Shall we all lose the 2.2-2.4 kernel and see how fast would our computers run on original kernel? Andrei
Seriously, it seems that he doesn't understand the underlying flexibility of X - that the display and application can be in separate locations.
This is something that the Windows world lacks. So PC-Anywhere et al allow remote control, but these are limited to one simultaneous controlling user. (Ever tried to remotely connect to a NT box to run some admin utility that can only be controlled from the console, only to find that someone else is controlling some other application at the same time).
A window manager is a matter of choice - you don't even need one if only running one application under X. I currently run fvwm2, mainly to the small footprint and a cronic lack of disk space. I could be running sawmill/sawfish this weekend (he didn't mention that one), or maybe try the latest CVS snapshot of enlightenment.
His other main criticism was on the size of the code. The QNX installation he quoted is a very basic environment, I believe only using basic VESA modes with no acceleration. Yes it fits on a floppy, but then I ran Gem/DOS 3.2 from a single 360K floppy 11 years ago. X (and the Linux kernel itself) is certainly more complex in nature than the QNX demo software (which is only a demo after all, and not a fully featured OS).
Oh, and he got the name wrong - there's no such thing as X Windows. I have an instant distrust of journalists who get the name of software wrong - it never bodes well on the content of their articles.
Don't criticise what you can't understand!
Instead of hacking around X's problems, why not redesign the system to fix those problems?
----
Celebrate the finer things in life
Food is not politics, and windowing is not a protocol, yet we have vegans and X.
IMO, tools like VNC obsoleted the "power" of X ages ago. 99% of the time, the X client and server are on the same system. The overhead is wasteful, and the terminology annoyingly confusing for newbies. I'm sure there would be significant performance and appearance improvements in GUI Un*x applications, especially games, if X were replaced with a standalone graphical system.
I registered my hate for Jon Katz
(Anyone remember Fargo North, Decoder from Electric Company)
Well, if X is so *bad* and there's no *good* alternative to it, then why don't we just all get together and create a *good* alternative... it'd be great fun... just keep us away from the "shiny things" so we don't get distracted....
"The best laid plans of mice and men gang oft agley..." - ROBERT BURNS
Some alternatives to X11 that I've come across:
D11 - Proposed replacement for X11 (from 1995), but I don't think it made it past the idea/proposal stage.
Berlin - Under development, "Latest News: June 12, 2000: 0.2 is out".
See also: Berlin page at Sourceforge
I hate getting into a GM car and finding the cruise-control on a stick, much like the wipers and turn signals. Whenever I rent a car that happens to be a GM, I end up not using the cruise control because I don't want to time the time to figure out their back-asswords way of doing cruise-control.
The next time you whine about customizability, try and figure out what it is your really want to customize. Then, figure out how important it is.
Do you want an OS that has on/off switches instead of checkboxes? One master menu bar (a la old-style Mac System 7)? What is it that you are so worried you'll be tied into that a mainstream UI couldn't offer you?
If X is supposedly so hated by all, why is it the overwhelming standard? Because it works and works damn well. If you have a better alternative - by all means - show us. Put up or shut up. In an age of open protocols (HTTP, HTML, XML, FTP, POP3) X is a shining example. X is amazingly powerful and very well abstracted. No one argues that HTML/HTTP is inefficient - but no one can ignore it because it is the web standard. Just because X can't get 75 frames per second on Quake III does not mean it should be abandoned. Go buy Windows 2000 and an NVidia card to play your games if you like, and I'll stick with X and do some real work.
Well, I'd like to start by commending all the XFree86 guys for doing such a excellent job with XFree86 v4. My performance has improved a _lot_ from v3 to v4 (on Red Hat Linux 6.2), and the support for modular plug-in video drivers is a real bonus.
X for me only seems to get more stable and faster rather than slower. The X Windows System provides a complete client-server method with host / user authentication for graphical display - not just a method to dump some pixels on a local display. X Windows is as complicated as it is only because it offers so much. This and the fact that nothing else I am aware of yet comes close, is one very good reason why its used today as the GUI by Linux, BSD and other *NIXs.
The thought of replacing X with an alternative that offers the same functionality and support, yet is faster, leaner and better designed is a huge long-term project, and joining such a project is going to mean more than just a few late nights. (Most people I know never even begin to understand some of the capabilities of the X Windows System.)
While there are _some_ valid points being raised here, I believe that there has been a genuine and demonstrated effort by the Linux + Open Source communities towards making a better environment! When I demonstrate Linux (with GNOME + SawFish) to people who have never seen it before, they love it. Why? Because it is well designed and things fit. Just because something is radical doesn't mean its going to be "better", particularly given existing user experience and training. There are too many exciting developments to spend time going through them all here.
If you don't like X as it is now, devote some time (or money) towards making it _better_! If your changes / patches are really for the better, no Open Source maintainer I know will laugh them off! Open Source development allows for strong peer review of code and encourages contribution and improvements. Not the opposite.
The current outcome? The combination of GNOME + SawFish WM + XFree86 v4 + Linux just blows me away. Want games with that? How about Quake III Arena with full 3D acceleration?! Now _that_ is a nice environment.
well, that is a valid complaint.
why doesn't telnet know about X?
ssh fixed the problem, it does know about X
greetings, eMBee.
--
Gnu is Not Unix / Linux Is Not UniX
as a POSIX complient OS, without the need for X Windows. BTW, the Be GUI does support remote veiwing (well it is POSIX complient) just not under the default settings.
While I agree with most of your points, I disagree here. We would actually have Athena apps, with no possibility of even getting a working menu that looks different.
Not putting widgets on the server was one of X's big wins, really. It is the only reason X has survived so long that we are having troubles with it's primitive design.
I very much recommend that the designers of X's replacement not be so arrogant as to think they can dictate the design of user interfaces!
PS: I really loved NeWS but it was the PostScript rendering model, and the ability to download drawing functions, that was the big win for me. I really did not care for their widget set.
I think:
startproxy -port 12121 -blockads -filter '*.gif *.jpg *.js'
...would do the trick (quotes).
Wouldn't you have to do that anyway to avoid shell globbing?
I have no opinion one way or another about X in general. I would just like everyone here to sit back and notice that this debate could and would never take place regarding any other "part" of any other "OS". See, the system *does* work! God bless the GPL and peer review.
"Reactionaries must be deprived of the right to voice their opinions; only the people have that right." - Mao
Interestingly, PCTools for Windows (Symantec) did this as a shell for Win3.1, along with nesting desktop folders, etc. Did a lot for other stuff too, most of which really should have been ripped off by MS for Win95... all those features are still not implemented.
I actually miss that environment... made it possible to use the Win desktop scheme in an efficient way.
[|]
I play gtetrinet all the time over
remote X displays. It works great. Occasionally
I've even played big games like CTP over X
as well.
For every problem, there is at least one solution that is simple, neat, and wrong.
Berlin, a windowing system which has many of X's strengths (toolkit independence, network transparency) but few of its weaknesses (primitive framebuffer-based graphics model, bitmap fonts, no alpha channel, high bandwidth requirements).
Fiasco, a free microkernel which is a drop-in replacement for L4, used in several research operating systems.
$ cat < /dev/mouse
It's X11, X, or the X Window System...
Sure, MacOS X is damn nice, but it's for a proprietary system, not for Linux. Macs have always had nice GUIs, and we've always had X. Of course, MacOS X would be a nice example from which to draw inspiration. Something with the speed and polished look for MacOS X, AND with the flexibility and choice of X give Linux a HUGE advantage in the desktop market. And we can't forget easy configuration. Having to figure out sync rates is just not acceptable.
Seem to be reading this from the perspective of Linux activists that don't understand the difference between two operating systems, only that using Red Hat makes them more elite. Grow up, any idiot can see that X is an oversized, bloated piece of [software] that is completely and totally outdated.
Yes, X11 is cool. We all know the configurability, etc, etc, but realistically people, configurability isn't what the end user market truly desires. A 35 year old Jane Doe that uses her computer only to check her hotmail account doesn't CARE if she can have pretty colors, she wants to be able to open a browser, and read her mail. Nothing more.
Yes, remote connect rules, but people, I think the community could devise a better way of doing things. Right now X is becoming strikingly similar to Windows. Lots of features that 90% of the people don't know about, huge size, and layer of code on top of layer of code on top of layer of code.
--
If there is a God, you are an authorized representative. - Kurt Vonnegut Jr.
If there is a God, you are an authorized representative. - Kurt Vonnegut Jr.
Parable:
Before enlightenment, write code, fix bugs.
After enlightenment, write code, fix bugs.
Commentary:
Perhaps the author of the X Windows Must Die! article should get back to writing code and fixing bugs?
Also, it is important to remember that in this parable, the word enlightenment does not mean a window manager.
Why not start with a efficient design, and provide a X compatiblity module?
X is slow enough as it is, will running as a emulation module on top of something alot more snappy be too big a price to pay to ween ourselves off it?
Before everyone mods me down for being a troll, I'm not, honest, just trying to be objective. Here goes. I largely agree with the article. My Powerbook G3 is split in two. I've got MacOs on one side and LinuxPPC on the other. My machine is merely a tool, and I'll use the best app/OS for the job. I shan't even bother to open the gate to the path that is computer evangelism. It's a computer - use it, get on with your tasks. Shut up. It's a tool. Remember that. I've had LinuxPPC on my machine for about 3 months. I've got most of the popular productivity apps on there, but I have to say, whilst on the whole it's pretty damn stable, the window environment is somewhat disappointing. A Gnome user, I have to say that this *is* just a kludge up of something that looks Win98/Mac-esque. Sad really. I really do think that a cut-off point should be established, and that the whole system ought to be dissected. It should then have significant amounts of time spared to be made more efficient (cut down on the code line count) and reassembled, because if it isn't already, the whole X system is merely going to turn into bloatware, equally full of the same bloat that we decry when we see all the little Easter eggs that exist in Windows. A couple of the core components don't look any different to when I used X Windows V1.0 for AIX all those years ago.... (and that was about 10 years ago) Don't get me wrong, I'm actually quite pleasantly surprised that the open source community has produced something that is pleasantly useable, but to me it lacks true (dare I say it, Mr Gates) innovation . It doesn't present things in a new and exciting manner - it's looks like Windoze. The window furniture is pretty much the same, the behaviour of the window managers seems the same, and all it is trying to do is hide the same layers of complexity from the user that certain other Window Systems are doing. It's a bit like drinking Coke or having the Happy Shopper brand - you know which one you really want, if all you want is a pretty GUI. I mainly use it because of it's stability. Oh yeah, and it's free. :) I suppose this is what happens when trying to put into the computing mainstream. I may jump to Mac Os X when it comes out though.... M.
Actually the Windows 2000 and NT 4 terminal services are pretty good. I use RA terminal servers and find them to be snappy and great.
The Toddler
Unfortunately, this particular baby's grown into an immense, slimy, tentacled beast that's strangling the development of graphical technology on Unix.
I would like to note that I don't agree with some of the criticisms in the article -- for example, I think the componentization of the Window manager and various other items is generally a Good Thing. X wouldn't have survived as long as it has if something like the 80s-era window managers were part of the standard server.
While X has a lot of good points (network transparency, platform independence, flexibility in window management), those doesn't make up for its defects. It IS possible to design systems with these characteristics that don't have the downsides that X does.
The underlying X protocol is incredibly clean and extensible, but there are now so many (effectively mandatory) extensions that the code required to support them makes the X server software absolutely huge. ICCCM is a nightmare in its own right.
Moreover, many of these extensions/auxiliary protocols (a prime example would be the X font system) were not designed in the same forward-looking manner as the basic X protocol, meaning that it is necessary to replace, rather than enhance them. However, since existing software still relies on the old extensions, it's not possible to drop them -- you end up with even more redundant code bloat.
X doesn't really give you any choice with regard to widget toolkits, either. You're stuck with the one the app was compiled with, or, more often, coded soley against.
With an architecture like Berlin (or a number of others), it's possible replace the widget set in any or all all apps with the one of your choice -- on the fly.
There's also the problem that EVERY primitive operation in X requires the request to be marshalled/demarshalled across process boundaries.
The address space separation (and consequent easy network transparency) between client and server is not a bad thing, IMO, as it helps stability, but I belive the X designers made a fundamental mistake when they cut the client/server boundary at such a low level.
Having to do this sort of low-level chatting across process boundaries really hurts performance.
Architectures like Berlin maintain the client/server separation, but cut down on the performance hit by communicating at a significanty higher level of abstraction. This means a decently-written Berlin app, even if using a chunky protocol like IIOP, would create significantly less IPC traffic (in bytes) than the equivalent X app.
Of course X has DGA. X has shared memory. Unfortunately, those only work locally. If you rely on them, you just shot network transparency. Whoops.
And, there's another problem: instead of writing graphics drivers independent of any one application class or GUI architecture (which means basic kernel support), everyone's been writing drivers directly for the X server. (Thanks, XFree86!)
This means that to even reach a usable stage, every non-X project has to rewrite their own driver suite from scratch (as a rule, X drivers make too many assumptions about X for the code to be readily reusable for other things).
Although we have fbcon now, fbcon is pretty much unaccelerated, and doesn't have that broad a range of hardware coverage. Berlin is still mostly tested on top of X as a result.
If you have to keep X around to run Berlin, or face severely reduced hardware support, then what's the point?
X has been repeatedly marginalizing other graphical efforts this same way. (Who here has heard of Y Windows, for example? How many of you know someone who uses it? What hardware does it support?)
Thankfully, due to GGI, Berlin can run on fbcon and KGI -- if KGI ever becomes more widespread, Berlin might finally be able to break free of X.
It's time we stopped relying on the X server for everything graphical.
It's too late to throw out the bathwater, baby or no. It's outgrown the bathtub and eaten your dog.
It's time to break out the napalm...
DNA just wants to be free...
I like lynx's way of handling frames. Tables are usually usable too.