Ask Slashdot: Comparing the GUIs
Hanno asks:
"It seems to me that some folks think that X is outdated and should be replaced. I know of the Berlin project and the announcement of Amiga to use the Linux kernel seems to be another candidate of a non-X windowing system (if the new Amiga is ever to happen). I wonder about the reasons. With this question, I don't want to start a discussion if X should be replaced or not, but I only want to find out what's bad about it and where other solutions are better. And I don't want folks to simply bash X, just some solid, technical reasoning. Which other windowing system (on which other operating systems) are out there and what are their pros/cons compared to X?" All I ask is that you folks PLEASE restrain from the rampant advocacy. I think this is a good question that might start a thought provoking discussions. Have at it.
It's all about Workbench 1.1
To be perfectly honest, I can't find anything wrong with X itself. Where there is room for innovation is with the Window Manager. Look at fvwm. It is relatively stinky when compared with even the Windows 95 UI. To be perfectly honest, I have yet to use a GUI for real work that is much more productive than my WinNT box with IE4. I use Linux 90% of the time anyway. The main reason is that Linux is stable and has so many features the Microsloth can't match. If the UI was improved, I would mke2fs the NT box.
Po0ploop, who forgot his password
- If you compare running a remote app remotely over X to running a remote app using something like Citrix's terminal server or pcanywhere, X is kind of a dog.
We have an office near Los Angeles (where I am) and another office close to Washington DC, both connected via T1. Both branches use Applix on NT and on Solaris.If I remotely start Applix-UNIX on a SUN it runs faster than a remote Applix-NT. Whether this is just my imagination or real, I dunno. I don't think this is important anyway, since it's always subjectivity that counts.
NeXTStep is dead, long live NeXTStep.
Well, If Berlin ever gets here, we can use those 3d cards. (Berlin is based on OpenGL).
I can name at least a dozen utilities to give you virtual desktops on Windows (most of which are bundled with video cards for free). As much as I hate to say it, Windows GUI is *very* impressive if you think about, from a standpoint of getting work done at least. Microsoft's strangehold on the app developers has resulted in a remarkably consistent and well-designed interface (thanks largely to marketing & R&D dollars no doubt). I would be *ecstatic* if someone couyld port the Windows GUI over to X.... any takers?? :)
The boys from Berlin, Brazil, Byzantium ... whatever!
This is a fair point, but the problem with making the primary toolkits OO is you then kill all support for non-OO languages. This may sound like a good thing, but many people (or at least, myself) still prefer C to C++. (I also prefer perl to C, but that's a side issue
A similar situation exists with gtk+ vs Qt -- Qt is entirely object oriented, and this is probably the main reason (besides the old licensing issues) I chose to go with GTK+ for my development work. I can use GTK-- if I want to use OO, but when I don't, I can use C. It's all about choice.
That said, on X vs other GUIs, these are the points I like about X:
And here are the negative aspects, as I see them:
That's all I can think of before my first coffee.
I'm ``between nicks''.
This isn't a huge problem, merely a developer's annoyance. Like the win95/98 gdi, X only supports 16bit coordinates--when I need to draw huge lines, I am forced to write my own clipping routines (which is a royal pain). Also, especially annoying is the fact that I can't draw an small arc with a huge radius--I then have to write my own Bressenham (or borrow from Allegro). Is it really that hard to make X accept 32-bit ints as arguments? Do you have any suggestions to solve this?
Yes, a 3D environment would really be great!
But I think that X is great, too.
There is no need to replace it at the moment
and I believe that X will be the standard
GUI for a long time in the future.
Its font system is monochromatic, not allowing for antialiased fonts without slow/complicated work arounds...
Berlin on the other hand support multicolor fonts, and an alpha channel(tranparent fonts), along with antialiasing... Berlins text rendering system is awsome, especially compared to X's...
It does not get along with other graphics programs . It directly accesses the video card, assuming no other task wishes to use the video card, this is simply selfish.... Recent Xservers(not included in standard distributions) like XGGI work around this...
X is fairly heavy weight, at the protocol level, unlike QNXs system... So even when X is implemented well(the currentl implementation is not very good) although 4.0, which I have access to through CVS is much better implemented, however is still a memory hog simply becasue the X protocol is too big...
X is not up to todays engineering standards, its does not properly reuse code, which is one reason why it is so huge, yet does so little. An extensible system which allowed mutiple graphics application to co-exist on the same screen, and trhough plugins did things like font-rendering could scale from a PDA to a graphics workstation...
Check out Dimension. A link can be found at http://floach.pimpin.net
Well, on my PII-233mhz. X kills Windoze98... KillS iT!... just my .02
Not that it would be optimal to use, but maybe someone could adapt the Quake engine.
I'm actually supprised this hasn't been done yet, it seems pretty trivial once you've got the engine...
Creating Icons becomes a HELL of a lot more complicated though.
There's a syntax error in your sig -- you forgot the semicolon after the linux function call.
If you want technical details of why the X Windowing System sucks, read "The X-Windows Disaster" by Don Hopkins:
h tml
http://ecco.bsee.swin.edu.au/unix/uh/x-windows.
Yes...the titles states "X-Windows"...done on purpose by the author however.
Regards,
Chris
I DON"T want to hear anyone bitch about X. Those guys worked hard on that and didn't ask for shit. I respect them all for doing it. So I don't want to hear someone say their shit sucks. If there is going to be critisism it better be constructive.
I can't believe that no one has yet mentioned Rob Pike's light-weight windowing system he devised for plan9. As an X11 hater, Rob's statements about windowing are amusing.
Being the first time I've ever posted on /. I hope this works...
One thing I don't like about X is that you can't save your desktop right then and there.
Situation where this matters:
-You're at work. You start a lengthy process.
-You have to go home.
-You connect to your current desktop, and can see that something went wrong, _and you have all the stdout on the xterm you were running it from_.
When someone gave a presentation on VNC, this is the situation he described, and why VNC had a great advantage. Last time I tried it (a couple of years), VNC was really slow though.
It also means you can log off a machine, log onto another one, and your emacs session will have all the proper buffers loaded, and the cursor in the right place.
--
martin.chisholm @ unb.ca
This should be a part of the X protocol.
It is the one sore spot of X.
Of course, X could use some performance treatment
when running over a slow link like dial-up. It
would help to cache the frame instead of doing
so many redraws.
And you want transparency precisely why? At what cost?
Why can't anyone ever come up with something other than Windows clones, which are themselves just Mac clones, which are themselves just Xerox Star clones? The increasingly inescapable "toolbar" crap is really annoying. And why does the mouse have to be used for EVERYTHING? The mouse causes RSI. It should be used as little as possible. Where are the keyboard activated systems? A keyboard is much less painful. I'm in braces and on codeine right now. And I shouldn't be here. It's the damned mouse. Please give us menus, selections, movements, etc, without a mouse. Please. Make it possible. I hate the operations.
Taskbars make me want to hurl. If I wanted Windows, I'd know where to get it.
The lack of anti-aliasing is the biggest problem for me. Using a word processor (eg. StarOffice or WordPerfect) under Linux is very painful on the eyes and until anti-aliasing is supported I guess I'll just have to stick with TeX and associated tools which do support high quality anti-aliasing.
Of course any new windowing system will have to have an X compliant layer over it if we are to reuse our old code - I don't envy the person who writes that!
There are several serious problems with X as I see it.
/. login someday)
Firstly, X is not a desktop environment in and by itself. This means it has to have another layer -- the window manager (e.g., Enligtenment) -- on top of it to be usable, plus an insufferable amount of widget libraries called "toolkits" (e.g., Motif). And the abundance of such layers, which mostly have no idea about one another's existence, makes for a confusing experience. In general, choice is good; but when it steepens the learning curve (i.e., not only they _look different_, but there are new shortcuts to learn for cut & paste, _if_ you get cut and paste at all, and things like that), choice suddenly becomes a Very Bad Thing. Which, incidentally, is why you don't see hordes of Windows or MacOS users switching to X ( = { X + KDE + Motif + Athena + (yet-another-toolkit) x 100 } )
Secondly, X uses an underlying _network_ protocol to send messages to the X server and display graphics, i.e., it is designed to be a client-server system, even if it means sending stuff to localhost most of the time. Now, messages going to localhost are processed nowhere near as quickly as regular library calls, which is what happens in Windows (and MacOS, and most other systems with a non-network GUI), and a lot of latency is involved, which makes X very unsuitable for high-performance graphical apps (which is why your Quake in X game would be so much slower than svgalib).
These two "features" of X allowed for extreme flexibility and hardware independence back when X was developed. People could drop new servers onto it, run it across the network, pretty it up with nice new window managers, and the list goes on. X was, and is, a programmer's toy, not a user's workstation. For a GUI to be successful as a _user_ interface, it must be targeted towards _users_, not programmers, and as a result must be _consistent_. Some people may take the window manager issue up as a jihad, but in the end, consistency rules. The solution would be to junk the client/server part of X, implement a standard interface (get the KDE and gnome folks to talk ), work out an OLE/COM/CORBA-like app interoperability system (think cut-and-paste and drag & drop), and other things that seem/are very hard and unachievable in this fragmented environment . I really wish the real world were that simple.
But, we can all at least try.
Just my two cents.
----------------------
Danster
(i'll get around to setting up my
danp@sanderson.co.nz
I'm not sure why it isn't in Red Hat, but the
XF86Setup program is quite nice. It starts in
VGA mode and lets you configure modelines and
resolutions in real-time so you can see what they
will do.
Then, when you're done it writes out a nice
XF86Config for you.
On a 3D card.
:) especially in team mods. (less camping)
While I'm sure many people cannot think 3D, there are those who can, and do it damn well. Ignoring ping, they tend to be on the top of the scoreboard
I mean, who wants to point and click a little arrow when the BFG9000 is available?.
I'm sure the MSFT version of Unix will be BSD based, not Linux based.
You write: "I would be *ecstatic* if someone couyld [sic] port the Windows GUI over to X"
When you find that person, tell us so we can kill him.
X is really nice for applications until sound is involved. If I run Netscape on a remote box, using my local X server for display, keyboard, and pointer input, everything is fine... until I click on a RealVideo link. Then my 'rvplayer' starts up, and does its best to display the video frames with my local X server, but the audio comes out of the speakers on the remote box. Or not at all, if the only audio devices are on the system with the X server.
Insofar as X is a protocol for "remote consoles", multimedia apps show the most glaring deficiencies of the X video-output/tactile-input model. It would, of course, be nice to have a more generic remote console system that could abstract not only audio recording and playback, but other local resources like floppy drives, smartcard readers, infrared PDA interfaces, etc. But remote audio would be a good start.
How are you to bundle a web browser into the windowing system like Windows does when working with X11?
You're right. fvwm sucks dead donkey dick. Everybody just wants to be a catamite to the Windows bugger.
Sorry gotta disagree. Microsoft's GUI *is* easy to use and most importantly consistent, but it is FAR from flexible enough to match the ease of use I can achieve with X. With my window manager I can do things like bind my third mouse button to move/resize/close windows, just by placing the mouse over them and clicking or shift clicking. No screwing around looking for title bars. In fact I can script my window manager to create new actions that the designer didn't envision. Don't even TRY to claim similar extensibility in the Windows GUI. It doesn't exist. On top of that, X does not freeze and become choppy the way Windows (and Windows NT, which I use at work) does when the system load rises. These may be unimportant for many daytoday users, but for me these kinds of drawbacks are unacceptable.
Yes, esd is good. I haven't tried NAS, it may meet my needs. So at least there is an option there for sounds support now.
GLX isn't so bad -- with the constraint that you have to connect Xlib and OpenGL. But I don't think Xlib and OpenGL should be two seperate things. Drawing triangles in OpenGL is totally different from drawing triangles in Xlib. This is my aesthetic problem with it. But it does the job.
>1) To develop for X you have to be an X Consortium member which costs about $50k/year to
Nothing stopping a dedicated person who WANTS to make changes from making them. So make the changes YOU want. And if you are obviously correct, they will take your changes if you want them to take them.
Does X have problems....yes. In the same way *ANY* technology needs updating to reflect 'current' conditions. And current conditions 'change'..and usually come back to the old condition.
Take the CISC vs RISC arguments. CISC existed because humans wanted less op-codes to write in assembly. As assemblers improved, the op-code benifit of CISC goes away. Now, the 'new rumblings' is 'programable op-codes'. You create op-codes for your needs. (CISC all over again)
Or how 'we' used to write small, tight code. And because of vast resources, code now is 'bloated', with (some) people wanting back small, tight code.
I'm not exactly an expert, but here's my two cents: I've spent the summer semester learning basic XLib and I can tell you that I'm pretty blown away by how well-thought-out X is. At least in the lower levels, there is an AMAZING amount of support for even the most trivial things. It seems that X has evolved into a 'kitchen-sink' kind of GUI. It'll support anything and everything. Here's an example: RIGHT NOW I am finishing up my semester project by running an XServer under Win9x (no flames, bastards) and running the program on the development machines at school. The labs closed early tonight and I would be suffering a lot of heartache right now if X didn't make a differentiation between where the program is running and where you might be looking at it. That alone gives X a great deal of value. Fullbodied (not bloated) implementations are rarely a bad thing.
:) a standard GUI for free OS'es that was scalable between embedded handhelds and dekstops. Limit the goals, we don't have to do -EVERYTHING-, just basic GUI chores (ie. if the coder wants XYZ, well he/she will just have to program it themselves because we've left it out in favor of a simple API). Currently X is scalable from desktops on up, but that's not going to get us world-domination now, is it? :)
But the problem is that that X is the ONLY well supported GUI system in the unix world. The OSS community should make a big effort to put together a -LIGHTWEIGHT- hardware-independent windowing system with the emphasis on lightweight. I'd like to see (and maybe I'll start yet another unfinishable project this way
Bart 'Not AC, just too lazy to setup an account' Grantham
Well, Photon does this. Berlin will do this too. There are a couple others I can't name off the top of my head.
Get a clue - that's not X's fault.
There are two things at work:
1) Many resources that belong to applications show
up in the X server. All pixmaps (are your running E? You have lots of these), windows, masks, graphics contexts, etc. belong to the server's process. The 35 megs is for *all the apps you are
running*
2) Raster graphics are *big* - do the math for
32 bits per pixel, 8 bits per byte, 1024*768 pixels, then consider that it's not just 1024*768
but also any pixmaps, bitmasks, backing stores,
etc. you have on your system
Unless you're some kind of genius, you aren't going to make this much smaller.
I also put a good deal of thought into a 3d window manager, not having in real programming experience/X knowledge hampered this, but I still know what I'd like to do.
It's taken you'd use quake-ish noclip controls to move in the three dimensions. There would be a view mode where you position the viewport, and an interface mode where you manipulate the windows as you normally would. Clicking on the window's title bar in the position mode would enable moving it in a plane(xy), and holding some letter on the keyboard would move in the other plane(xz). One would also need the ability to rotate the windows you'd hold down another button to do that. So then you have your netscape window going down your right side at a bit of an angle, and irc up above, and your IDE for the new C project ahead of you. At anyrate it seems immensly useful in my mind, and the post is far longer than I wanted, but I'll make it even longer with an example of the bindings to make it even more clear. Blast, forgot a major point, the interface would need a way to memorize viewports.
Ex bindings:
m- changes from position/interface.
n- movement of windows in x, y.
b- movement in x, z.
c- rotation of windows on y axis.
x- rot on x.
z- rot on z.
Apple's Quartz windowing system is perhaps a good idea of what you're looking for.
Quartz is PDF based, with other things (OpenGL, Pixar technology, etc) tossed in. They had a demo of it last May at their developers conference. Very impressive - it opens your eyes to what can be done. Seems to defy discription.
Somebody asked why not just move to the next X.0 Version - well that's an option, but moving to a Quartz type, PDF based window manager would do much to further the power of Linux...
From the ground up X is distributed - that's a GOOD thing.
Windows is tied to the user's screen unless you use third party software.
Improve X, don't abandon it.
(As if this discussion would influence X's acceptance anyway. Say whatever you want - X ain't disappearing any time soon)
yeah, but just make sure you've got a firewall set up, eh?
"sorry officer, i didn't mean to kick Robert Ulrich in the groin, someone hacked my brain and forced me to"
mph
While i find the idea of a 3d gui pretty cool. I think it will probally be used more for benchmarks and the WoW factor than anything productive.
I just cant wait to try CursorMark 99 with my desktop pushing 100 Windows/sec with light-sourced
phong shaded text.
Depends. Accelerated X by Xinside bypasses the client/server model when accessing local clients. Not sure about Xfree, though.
What the hell is "minimize"? Do you mean "iconify"? Why didn't you say that? And what do you say for "de-iconify"? "Maximize"? Hee!
Where does Bill find these script kiddies?
We're not really doing anything especially
unportable or Linux-specific.
If the designers of X-Windows built cars, there would be no fewer than five steering wheels hidden about the cockpit, none of which followed the same principles -- but you'd be able to shift gears with your car stereo. Useful feature, that.
- Marus J. Ranum, Digital Equipment Corporation
The pages are rather out of date but their core issues are still relavant:
- X is horribly, horrible ram hog
- Many x applications have truly awful interfaces
- The X windows API is almost impossible to program for
- Higher level APIs make it easier to program for, but invariably add layers on top of an already slow system, making it even slower.
I don't agree with everything they say (windows in KDE are just as snappy as they are in Windows 98 on my machine here at work, and applications in GNOME are just as pretty as they are on the Mac sitting in the next room, IMHO), but they do provide a lot of arguments.It's a winbaby problem. They do not have the Unix Way.
The "Be" window manager is clean, elegant, object oriented, and could easily be extended to do remote c/s network support.
yeah
For a faster mouse, use xset m 8 1.
I don't understand what you mean about keyboard or mouse being irresponsive. They always seem fine to me, and nothing is lost.
I'd like a 3DGUI (love those acronyms) that was like a current 2d desktop, but in which you could zoom in and out through windows (with a little but not too much much transparency). The quake styled run through subdirectories wouldn't work for me, it's practically 2d anyway (as 2d as earth is, anyways). A better model would be the non-gravity Descent engine, although the control complexity would just screw over most users.
;)
But that doesn't mean I wouldn't want to try it
Delete file! Fire Photon Torpedos!
"stop adding baby to bottom of every damm sentence you cow"
Without some serious help, Berlin's not going anywhere. I had a look at their project a while ago, and it struck me as a bunch of kids with a good (but unoriginal) idea and nowhere near enough manpower to do it correctly.
X, unfortunately, has been developed too far for its own good. The technology behind the electron guns (not always so, which proves the point again) has progressed incredibly far since X was first developed, in both technical prowess and functional importance.
Construct a new windowing system. Make the basic operations atomic, and abstract them down below the API. (That way, nastiness like OpenGL, hardware work, and other such things can be relegated to people who really want to punish themselves, not those people who want to write.) The ideal level of abstraction would be somewhere between the windowmanager and the GTK+ layers currently existent.
Two things to remember:
1) Atomic operations
2) High abstraction level
(Remember, some of us don't want to hack, we want to get some work done...)
Microsoft's strangehold on the app developers has resulted in a remarkably consistent and well-designed interface
No, not really. The main inconsistenty come from MS themselves. Windows and its apps. are just as inconsistant as X is (well, maybe a little less but Mac beats them both). Look a Office 97 and Win95. There are several UI diffences, buttons that don't look like buttons (until the mouse pointer is over them) and other things. The MSN intro under Win98 also has a non-standard UI (buttons that look to be labels until the mouse is over them).
In short, I just want to say that it is incorrect that MS has a consistent UI. They are always changing it. Changing the UI in itself is not bad but, making bad choices is; i.e. buttons that don't seem to be buttons, except under some condition.
Is it possible to have a good UI with out harsh control, like under the Mac?
Oh, well.
the extra resources consumed by the client-server setup are minimal on modern HW and the benefits are overwhelming. i sure as hell appreciate being able to telecommute from my home which is about 600kms from work. I can do pretty much everything I would do from my office. i know there are some half assed non-X "solutions" but none of them come close to the functionality of client-server X11.
MacOS X Server, in it's current incarnation, uses Display Postscript. Once they get MacOS X client done, they will switch to a new windowing system, called Quartz, which is based partly on PDF and some stuff that was developed at Pixar, plus a bit of QuickDraw code, for backward-compatability purposes.
As I understand it, you have to pay a rather large licensing fee to Adobe, just like regular Postscript. Besides, Adobe wants PDF to replace PS (I'm not sure on this, could please somebody explain the relationship between PDF and PS?)
OpenStep is still around, Apple has to honour existing contracts between NeXT and some of their customers, and it still uses DPS, but it's obviously on the way out.
2 words... "Workplace Shell"
Nothing can match Os/2's desktop. things have tried and come close but nothing has matched the WPS' productive object orientated design... For the ppl who have used OS/2 you know what your missing. And it sucks. I hate start buttons... ewwwwwwww....
:)
awesome idea!!! a slide ruler that allows you to go back in time and replay the changes on your desktop!
i'm working on it right now...
MGR provides each client window with: termcap-style terminal control functions, graphics primitives such as line and circle drawing; facilities for manipulating bitmaps, fonts, icons, and pop-up menus; commands to reshape and position windows; and a message passing facility enabling client programs to rendezvous and exchange messages. Client programs may ask to be informed when a change in the window system occurs, such as a reshaped window, a pushed mouse button, or a message sent from another client program. These changes are called events. MGR notifies a client program of an event by sending it an ASCII character string in a format specified by the client program. Existing applications can be integrated into the windowing environment without modification by having MGR imitate keystrokes in response to user defined menu selections or other events.
MGR currently runs on Linux, Sun 3/4 workstations with SunOS, Coherent, and BSD. Various older versions of MGR run on the Macintosh, Atari ST MiNT, Xenix, 386-Minix, DEC 3100, and the 3b1 Unix-pc. Many small, industrial, real-time systems under OS9 or Lynx in Europe use (another variant of) Mgr for their user interface. The programming interface is implemented in C and in ELisp, although supporting clients written in other languages is quite easy.
Running MGR requires much less in resources than X, or even gcc. It does not have the user-base, software repertory, or high-level libraries of X or MS-Windows, say, but it is quite elegant and approachable.
The above is taken from t he MGR HOWTO
Can you give me a URL on that?
Does TeX do anti-aliasing? It shouldn't...
The thing about TeX is: it generates glyphs at a high-enough resolution that they don't *need* to be anti-aliased. You DO realize, I hope, that anti-aliasing is only useful on low-res devices like monitors.
Yeah, 11 is the version number. The previous version was X10. Still run into it now and then.
the closest i can think of to a 3d display would be those steroscopic glasses you can get which show each eye a different image. which is pretty much the same you would see with a real 3d display.
There you have it folks. The problems with X. Note that no windowing system I am aware of provides all the advantages of X and all that. So X is still a decent choice for a windowing system. But there are those problems with it.
Great, thanks for the info. You don't call us babe, we'll call you.
I believe you can run 8 1/2 in an 8 1/2 window.
(Its the windowing system that comes with Plan 9)
Then again, there are lots of cool things along
the same lines that you can do with Plan 9.
1) To develop for X you have to be an X Consortium member which costs about $50k/year to do any real work. This is
why so much work is being done on layers above X, because no one can actually submit the kind of radical
modifications to X that are needed to bring it into the 90's.
Uh, bullshit. The XC is not even in control of X at all anymore. The Open Group bought X a long while ago. And you do NOT have to be a member to develop X, there are many projects which work on X all the time...XFree86 for one, who add a great deal to X.
2) The X consortium maintains full control over X itself... meaning they can (and have at least once) change the
licensing to kill off any free implementations such as xfree86.
1) Impossible. Even when TOG tried to close source X, XFree86 was far from worried. They simply continued work on the older version....no big deal.
2) It has already been proven that they cannot close source X because when they tried they realized that all the support was gone and they could not continue in that way.
4) C... Object Oriented environment.. please. I'm sure a lot of people will bash this, but writing GUI programs in an OO
language is simply easier. And before you start on the OO toolkits out there, read the next point.
C does OO programming pretty well IMHO. Xt is a good toolkit.
6) Sluggish. I have AccelX and I have to admit the entire experience is still very slow. Netscape flickers gray every
time I scroll up and down, windows take ages to redraw when switching between them, etc. I multiboot to Windows
and don't have any of these problems, everything is quite snappy... even if it crashes every 8 hours.
Yours is a configuration problem. You "AccelX" apperently is the wrong server for your card or the accelleration code is all fucked up. This is not a "X" issue.
Once you understand the basics, you can switch between different applications and automatically pickup that the
scisors in the toolbar means cut or that the file menu will have an 'exit' entry or even that ctrl-c will copy the selected
text (most of the time at least
Well, learn the X way then. There is a consistency...you just apperently missed it.
realistically, the client's colormap requests should be virtualized, with routines in the graphics driver to dither the abstracted colormap selections to the display resolution and bitdepth. This way, apps run correctly in the face of too-small colormap tables, and look almost correct (with no flicker!) to boot.
> CISC existed because humans wanted less op-codes to write in assembly. As assemblers improved, the op-code
> benifit of CISC goes away.
Well, I would say "CISC existed because RISC hasn't been invented yet" or "because people didn't know it any better then".
BTW: From coding the ARM I know for sure that you generally need more opcodes if you do the same with x86: less registers, hence more storing/loading, less flexible opcodes, ARM opcodes are all conditional (less jumps), 2 adress vs 3 adress etc.
And when the GUI provides a printing interface so that displaying graphics and printing can be done with the same code, WYSIWYG will be simple (if the printing interface is done right). In fact, WYSIWYG could be almost implied. Kinda nice for publishing apps and people who want to get their program printing yesturday.
There may be "a dozen utilities" to give you virtual desktops under NT, but I've tried about 6 of them and they were all either klunky, ugly, feature-poor or buggy. Face it, Windows just makes it difficult for programs to mess with the desktop. No such problems with X and a window manager.
Berlin's a joke and everybody pretty much knows it. All that's going to happen with it that some of the Berlin code will end up being merged with X.
Switch it off then.
Actually, the early versions of Microsoft Windows used "Icon" and "Zoom" menu commands to iconify and de-iconify a window. The stodgier "Minimize" and "Maximize" commands originated in IBM's OS/2.
please remember to divide by the number of bytes in your framebuffer to have a better approximation. also try it in minimal resolution and low color (2 colors) to check what is the base size of X.
You really have no clue what you're talking about.
Your answer to his question is, to explore what a 3D gui can do....
:))...
To be productive I doubt we would have a gui that works like an FPS game.... its like despite the fact speech recognition has been developed, it would be faster to type what we think then to say it to a computer, or to click on something then to tell it a command.... I think the ultimate end in terms of voice recognition is a combination of both speech and other physical actions (at least until we get direct links to the brain)... And as I see it a combination of 3d/2d/listening user interface is the next step, maybe a Transparent HMD, to simulate holographic 3d gui that wraps around us 360 degrees.... (I already have a set up similarly with my computer monitor in front of me and my TV to the left
Two things have to happen to make 3D interfaces practical (IMO):
1) 3D output devices (holographic displays)
2) 3D input devices (positional sensors, 3D mice)
I know that #2 exists, but I am unaware of the existence of #1. Without these devices, you will still be limited to the informational bandwidth of a 2D system. Adding perty colors, shapes, and angles won't make any difference (if anything it will detract from the User Experience).
I consistently get several full days of flawless operation out of my Windows95 machine. And I don't only use Netscape either. In fact, right now I'm running Netscape, Apache, mySQL, Homesite, Frontpage, ICQ, and Lightwave... earlier today I compiled many Java programs, and a C prog. Meanwhile my system resources are doing fine. And all this in Win95 on a P90 w/ 24MB ram. I am aware that Win95 has some memory leaking problems, but it's really not a big issue. I understand that if I were operating a mission-critical server I would need 99.99% uptime, but I'm not so I don't. :) Don't be so down on Windows, just because MS makes a lot of money. They make good software, and you all know it. Even if it is grossly bloated. :p
Furthermore, I've had as much as 18 days uptime in Win95. That's not too bloody bad if you ask me.
To be completely honest, no one seems to understand the X versioning scheme. The official spec is X11R6 (X protocol version 11, release 6). XFree86 is a freeware implementation of X11R6. XFree86's version number is independed of the X11R6 standard. 4.0 refers to the XFree86 version number (4.0 is the next major release).
This is like Windows. Users like it. Programmers hate it.
Trust me Windows is not that consistent... consistency is good.... but customizable consistency is better....
:)
For example, like he said if all programs use ctrl-c to copy and ctrl-v to paste, that is fine, but it would be nice if we can change that and all programs change, so that if I am used to using alt-c to copy, I could change settings and all programs would use alt-c to copy... that means we don't need a tyranny, programmers would choose to allow the system settings chosen by the user dictate what hot keys are to copy and paste, because programmers like to be consistent, and users like it when programs are consistent....
customizable is an awesome feature and one of the reasons I like the Themes of the GTK...
This is pure nonsense. MITSHM does not do this. MITSHM lets you share a pixmap between the client and server, thus letting you draw pixmaps directly in X serverspace (though not on the framebuffer, you still need another Xlib call to do that). But MITSHM by no means avoids the pipe transfers for Xlib calls.
I have recently been looking at Windows Terminal
server, network computers, Citrix, and X-terminals as a robust solution in a factory. X has some great advantages compared to Microsoft terminal server in that you can display, in one GUI environment, applications from several remote computer simultaneously. Imagine a benchmark between NT and Linux with those ground rules. Can X network communications be optimized like Citrix ICA (or use ICA protocol) so that it is faster and less demanding on the network?
And why shouldn't a comparison between NT and Linux include X performance, NFS file sharing, and multiuser capabilities? Why play by their rules?
Don't forget the fact that you have to
code to the display format when dealing
with raw pixmap data. Yes, this can be
handled nicely with a library, but
should this really be on the client side?
Having color depth translation/dithering
on the server would solve the problem
of multiple displays of different depths
(which X cannot (and probably never will)
do). In some cases it would be slower, but
no slower than having it on the client side
(ie. like imlib or equivalent).
Windows has this feature. BeOS has this
feature. It makes dealing with image data
INFINITELY easier. And if you are really
keen (or need high performance) you can
query the display format, and tailor your
code to whatever app-specific optimizations
you can think of.
In any case, X should not pretend to be a
device independent system without accepting
arbitrarily formatted image data, to be
rendered on the server.
I guess this goes for the color model in
general, too. Computers are fast enough that
the client need not know about what it is
displaying on.
For the most part, I like X. I can change window managers thus changing the look and feel of my desktop very easily. One thing I do not like, however, is X toolkit. X toolkit just looks ancient. Sure you can install gtk or qt, but these things are hogs. I would like it updated or completely changed so it looks like it was created this decade, and more X applications to make use of it.
X is, currently, pretty much as you say, "a network [video] display system". But it's also the core piece of software for user interfaces. And when it comes to user interfaces, it's high time to stop thinking in small, discreet systems. Audio I/O is an important component of the computeruser I/O interface. And it's only natural that X should be extended to be a truly multimedia display system.
> This is a fair point, but the problem with making the primary toolkits OO is you then kill all support for non-OO languages. This may sound like a good thing, but many people (or at least, myself) still prefer C to C++. (I also prefer perl to C, but that's a side issue :)
This is the point that I would have made. No doubt the writer meant C++, which NOT (and I mean NOT) the one and only great OO language around. Interfacing to it from other languages is a pain and IM(biased)O it sucks as a language, too easy to hang yourself.
The API should remain entirely written in C, people are free to build C++ toolkits on top of that. I mostly use Common Lisp, so it always troubles me when people say that there should be OO APIs, meaning plain C++ APIs, and don't realize that the APIs are already OO, though not in a OO language.
Using C++ for API's would practically kill _all_ (including OO languages, like CLOS and Smalltalk) other languages for development. That would be plain languistic.
Off to my first coffee...
AC
ps. The world didn't start with C and won't end in Java.
really? I've had X freeze on me at least three or four times. nowhere near as often as NT, of course, but it *does* happen. also, X gets choppy when I look at a page with a lot of images (porn thumbnails? themes.org?) and netscape starts hitting the swapfile a lot.
1. Netscape's widgets are just too ugly. Makes me feel dirty.
2. GTK+ looks fine but I dislike a few things about it:
a) When I type in some stuff in a text box, and hit enter, nothing happens. In windows, hitting enter is the same as pressing "OK".
b) There doesn't seem to be windows-type shortcuts where you hit alt-(somekey) and go to respective textbox.
c) Scroll bars are still a bit ugly. Why didn't they use Next-type scrollbars, aterm uses them. Are they in GTK+ or can easily be implemented? Anyway, this is a minor issue.
3. Fonts support. In Gimp, when you choose some font, it takes *really* long time to apply the choice. Like 3 or 4 times longer than in windows. In most programs its impossible to choose a interactively and Xfontsel or whatever it's called is a pain to use.
4. copy/paste is tougher to do than either console or windows. Besides, it doesn't work between aterm and Netscape, for instance (or works only one way.. something like that).
Frankly, I much prefer the console. I only use X when I need Netscape to look at tvguide.com that uses javascript. Otherwise, lynx is perfecto. I think projects like berlin are great.. the way X is now, it doesn't seem like most desktop users will switch from windows to X. Well, maybe when mozilla is out and gnome/kde mature..
- Rainy
I tried 3DTop a while back, but didn't care for it much.. The screen res seemed low, for one, and it was fairly inflexible (and kinda slow when you try to open a prog - had to return to regular windoze mode)..
Of course, having about 10 lights scattered throughought my 3D desktop, each with wide-angle dispersion, each with a different color, and each spinning at maximum speed probably didn't help much... Looked less like a desktop and more like a bad trip.
Oh well. Personally I like Dimension's (windoze alpha shell) original idea of having several planes in which windows reside; when they gain focus they move to the foreground, when they lose focus, the move away from the viewer and get a little smaller..
Lime
I thought that the X consortium got rid of that charge and that XFree86 4 would use the standards etc.
For the dubious feature of having clients and servers on different machines? I have trouble believing anyone that has spent much time in environments with many unix machines finds this feature dubious... I'd really be curious to know how many people feel this way. I'd certainly like better performance when both pieces are on the same machine, but I am not willing to give up this feature. It is way to convenient.
In case you didn't realize, both DGA and DRI are not really X at all. They go completely against the design of X, because X is so damn slow.
Also, are they adding decent font support, or just the same font support as before with truetype built in? the font support in X sucks. No antialiasing or kerning at ALL. I lose so much screen real estate in X just because all programs that don't have their own custom font code (for instance, netscape) have to be about double the size for the text to be readable.
X should be modular. There should be the basic core, and then each videocard will have its own module.
Many of the APIs used today, such as those GNOME and KDE are based on are well defined. The X API is also defined, though rather bulky. Why couldn't a new windows server be created with API compatability? Rewrite the API to use the new interface and rebuild the old software? This would be more efficient for the higher level APIs, but emulating the X library, converting the calls to a new protocol, and displaying locally (with a network option, of course) would still be as fast if not faster. The question is... what windowing system?
Jamie
I always have to laugh when developers whine about something being outdated, all the while adding version numbers to make their product look more mature.
I don't understand why the linux kiddies think it a feature to attract individuals who can't even master a simple text editor. Keep the bar up and the riffraff out.
Somebody should create a dictionary for Us and Them. :-)
X is slow.. but that could be improved.. the basic idea of X is good and will be around for ever. Im sure Ill get flaimed for this.. but I think the X protocal should extend to sound. So when I set the display variable it not only forwards the windows and input controls (mouse/keyboard) but also forwards the audio ouput. This would also allow for a major abstraction layer between the App and the audio hardware.. thus any X app that played a sound would call the Xaudio library.. implemted on any X server.. Sure it might slow things down.. but with 100Mb internel networks standard these days it would be a great feature.. and remember its a feature and could be disabled.
Yes I remember Don. Came onto c.o.l.a. complaining all about how bad X was but never actually helping to change it. In other words all talk no action.
A lot of what he complains about is no longer true. One of these days he will come into the present. And maybe just maybe we'll get some constructive critisizem out of him.
The winbabies are always whingeing about network abilities. No clue.
Listen kiddies, I've got seven different boxes at home, all running various versions of Unix (for tolerant definitions thereof) and I damned well don't care to running around four flights of stairs just to run something somewhere. X is wonderful.
Um, ALT-ESC? That always works on the Win95 machine I'm forced sometimes to use (love lab eq. that has software for only M$ OS).
>Magic-Workbench will be included as part of X
MWb was an improvement on what went before but at the end of the day its only an icon set with backdrops and colour schemes, the only code in the distro that I know of is the bit that allows you to save the RAM disk icon position.
But it is the best set of icons I've ever seen /and/
on any system. (Mac, Be, NeXT, I will not even
mention Win "icons".) Beautiful, funny
functional.
Speaking of witch, does anyone have the icons
converted to Windows format? Wouldn't want to go
through the screenshot/convert routine...
This is exactly the problem I have been running into. I would consider myself to know what I am doing when it comes to X windows ( I have developed programs using Xlib, Motif, GTK, and several other toolkits, and I am a systems administrator having set up several networks ). I have configured X hundreds of times, and it is a breeze using a monitor capable of 1280x1024, but anything else is a pain in the ass. I can do it, but, the easiest way I have found to do it is to edit the actual XF86Config file, and this is not something I would like other people to have to do. Furthermore, this is not even addressing the fundamental problem of creating a usable interface for someone using low end hardware.
In Berkeley, their are several programs which take in old computer's and give them to people in need. What they would like to be able to do is to put Linux on the computer's and send them away, but, their are no distributions ( I know about ), that would be both easy to set up, and, at the same time, be easy to use, and contain full functionality for a new user. This would need to include a word procceser ( Word Perfect? ), a stable web browser, an easy to use Window Manager, and it needs to be able to run at a decent speed on a 386 w/ 8M and 100M HD. I know such a thing is possible.
I know their are things like PicoBSD and linux equivelents, but they are not complete packages. If anyone knows about any such distributions or they are interested in starting one, please contact me at bear@vividata.com.
MacOS X Server uses X, that's why it's called X Server!
If you are actually trying to to work, fvwm
much better than the Win interface. You get a
very fast multi-virtual desktop system, that's
configurable to you own tastes. There's no
way I could do 16 things at once under Win like
I do under fvwm
UGh, I F*cking HATE Large Fonts. It is incredibly hard to find out how to even see if they are on, let alone turn them off.
It is a great feature: make my text too large to fit in the bounding boxes on dialogs, and provide the application next-to-no way to tell if it is turned on. Do it automatically to, so when the application requests a 12 point font, return a 16 point font and don't tell them at all. After all, they are only trying to get the text to display properly..
I hear in Win2k they make it a slider.. even better! break all existing workarounds..
(goes and cries, I hate developing windows code...)
X has no facility for multimedia syncronization. Yes it is debateable if X should support sound or if it should be an entirely seperate protocol. However, either way, there needs to be a standard way to syncronize events on screen with other events like audio.
Assuming all pens grow proportionally too.. this works. The problem is that there isn't really a good way for showing something like an icon at a low resolution.. if you have ever edited icons, you know it is a pain in the butt and you have to manually set the pixels to different colors until it finally 'looks right'. Sometimes you look at the blown-up version and can't believe that the two are the same thing.
Basically, vector-based formats would be great at 2048x1572.. but at less than that, the icons will get smaller, details will be destroyed with aliasing.
1D = Command line, voice
2D = GUI, desktop, book, magazine, web page form
3D = vr immersive environment
4D includes time travel (get your bug reports,
before starting to code)
It's not Display PostScript anymore. It was going to be, but there were "licensing issues." Supposedly Adobe was going to charge too much. So they were going to go with some sort of PDF based imaging model, because the PDF specs are free. I think.
The main reported reason that Mac OS X was delayed again is because apple was switching to some new imaging system that they're calling "Quartz." That, however, is assuming that things haven't changed since then. I could be completely out of date also.
Quartz is PDF based, but I think it's got some Enhanced QuickDraw thrown in. Maybe we could get some MOSX developers to contribute?
Most X servers support compression (xfree does)
if you fire up lbxproxy, that will compress your
client's X packets and throw away the optional
ones. Alternatively, you can run X through ssh
which compresses and encrypts, an extra bonus!
I followed the link and also think it is silly. What is the point of drawing 2D windows with 2D widgets in a 3D perspective? It's just wrong-headed design - a 3D GUI based on a 2D design paradigm.
If somebody is going to create a 3D GUI, it should be based on a different design paradigm, one that makes use of 3D in a useful way to make tasks more efficient or intuitive.
I work for an outfit that uses X to string together boxes that control astronomical equipment; there's a lot of remote display involved. At the moment there's no Linux in the system, but there just might be in future if and only if the Linux boxen integrate nicely. The one thing that the Linux movement could best do to stop sites like this from using Linux would be to go away from X.
> Many of the advantages that made X so powerful in "the day" may no longer apply.
You mean as we are moving toward "thin clients" and such, with faster and faster networks, it's not important to have a network friendly operating system, or, maybe you don't like a tool-kit nuetral windowing system.
> "most" users of X only
As networks become faster and faster, you don't see any need for a network friendly operating system. With X, you can literally have a computer in every room. Rather than throwing away your old clunk of a computer, you can set it up to be a X server and then run any applications from this.
> X tends to suffer from what I call "Win32APItis", a huge assortment of functions of dubious utility
X has maybe a little over 100 functions built into it, this is hardly Win32APItis
> extensions that X is now sporting (patches for TrueType support, GLX, and printing) are useful accessories
They reveal X's ability to change, rather than rewrite the windowing system every two seconds, they created a windowing system that can adapt to the times. Some of it like printing might be stupid ( You really should just print in postscript ), other's like true-type font support are useful.
> A lot of the features a modern GUI designer would like simply aren't that easy (or sometimes possible) to implement
Do you know what gnome and kde are about? they are about building a GUI, X is not a GUI, it is a windowing system.
What features that a modern GUI designer needs are not there that can't be implemented? I can't think of any, but then again, I guess I am not a modern GUI designer. I programmed in motif, and I thought it was good, so I most really be dumb.
> won't be compelled to write entirely new toolkits
We won't compel them to write new toolkits by making it impossible to write new toolkits. Very smart, this is really a step in the "write" direction. You call this progress?
> thin (hah) Xlib wrapper on top of such projects
go ahead and write it. The X protocol is really simple, you could easily cut out network support, and security concerns while keeping the ability to compile all programs, and, you could optimize functions to eliminate all refrences to client/server ideas, But, why would you want to do that? You will have little performance gain, and you would have a less functional windowing system.
>the Mac had a more elegant interface
;)
In your opinion yes, in my opinion no.
>It sounds as if you are one of those people who trash macs because they are different. I just find that dissappointing.
I was responding to the original poster who was trashing the Amiga just because they are different. I find that even more dissappointing.
Java2D (from Java 1.2) graphics system is mostly equivalent to Postscript model. However it is an API, not a postscript interpreter (thankfully).
SGI has a demo of a 3d file system browser:
ftp://ftp.sgi.com/sgi/fsn/
Interestingly, BeOS also uses the Client/Server GUI model, and with excellent results (IMO as of 2 years ago). Of course, unlike X, the entire thing was in kernel space (Hmm... wait a minute)
Anyhow, the thing BeOS did NOT do is explicitly say that the Client/Server stuff went over the network. This allowed a more direct implementation. Also, recognizing the need for Direct Rendering, Be immediately provided the ability (it didn't take em 5 years to do it).
The main reason I dislike X Client/Server architecture is that it is unused by many users- this causes unnecessary overhead and the abstraction itself can be confusing. Why should people have to deal with the complexity of the X networked environment (security issues esp.) if all they need is a local display ONLY?
X can be a resource hog
X has SO many layers to program to that understanding the system is a dominant factor in inhibiting driver writing/application development. At this point, all I can say is thanks to the Gtk+/Gtk-- folks: Gtk*
(or its ilk) are an essential part of modern GUIs. Also, by the time you finish adding up the layers, you understand why X can take 30% CPU, large quanities of memory, and comparatively large chunks of HD. The "low-level" aspect of X, which lacked directly usable features, allowed for 40 billion different "standards" to be produced.
A lack of cohesive interface libraries and standards has produced a situation in which a competent X user is a fish-out-of-water once s/he leaves her/his own machine. This is one advantage to a standard interface: I could drop whatever I am doing on one Mac, walk over to another and still be just as effective. I don't have to lug around a familiar environment because it is already in place.
X Drag and Drop is no where near as commonly used as on the Macintosh. It makes me feel like all those icons on my GNOME desktop are just litter.
A file manager is also stock with any modern GUI (Mac OS, BeOS, Amiga... NOTE: I didn't say modern OSes..). Once again, X Windows is behind. xfm was no where near as usefull. gmc is only now approaching the same level of usability- over 10 years AFTER file browsers became a major part of the GUI desktop.
That said, I still like X. It was so well thought out that it has lasted a long time and still has some features seen almost no where else. While the sheer number of "standards" is appalling to inexperienced users, choice is a wonderfull thing for users who want more control over their environments. X R116.4 stands to raise the bar siginificantly in performance and simplicity- addressing some of the issues I raised above. I think X has proven it deserves to be around for some time to come, even if it loses mindshare to other graphical UNIX systems.
If you notice, the people who defend X use it, and the ones who attack it (have to) program for it. That should tell you something. It tells me something.
Stop your bitching... You want the future to go back in time? Thats the microsoft way.
You need a Client Server Arch. Its the wave now and the future.. Microsoft is even finding this out. Yes. Local gfx are Important but remote access is the power of UNIX. You can have it both ways.. I am a lazy bastard and I refuse to get up and walk over to a machine to do something. Thats the power of X. Now with the bandwidth increasing every day.. 3D would be nice.. but i can see it now..
You have a command line.. a 2D and a 3D server..
Wow.. hehehe
X is not perfect, but I really think its a good program.. Its stood its ground..
How many people can say that about any Microsoft Product?
A.C.
I do not feel the same way. I like X a lot for those same reasons. Years ago, I got a 64k ISDN line. Later, I got a 128k line (and a Spellcaster card [www.spellcast.com], which has supported Linux for years, BTW, and makes very nice and very stable products). Recently, I got a second 128K line on a second card. Even though ADSL is now up here in Dallas, I see no reason for more bandwidth as I can do X just fine on 128K and the second line is just gravy -- there for background stuff, like ftp and ssh. I don't have to leave my house in a North Texas ice storm (for non-Texans, that is where the temp drops 80 degrees in three hours and you wind up with 3" of clear ice on everything, so driving around sucks). I don't have to leave my house in the rain or at 03:00. It makes doing consulting and tech support far less of a challenge. So X is worth the overhead for me. Seriously, X may have saved my life on a few occasions where the weather got very nasty (driving from Ft. Worth to Dallas at 02:00 when a norther is coming so hard that it is making like it is going to blow a 6,000 pound diesel Suburban off of the highway and you can feel the cold coming through the window from the driver's seat without touching the glass and you know that it will be at least 45 minutes before you see another human being -- maybe -- and then it starts to sleet ... you don't do this if you can help it) and I elected to stay put and work from my living room.
Also, has anybody been thinking about what will happen when people with all of this bandwidth hits the basic user and they realize that that can have a USB scanner and printer and a decent tube in their house and the actual computer somplace else and rent the apps? Yes, X will solve the problems there as well. And that is coming, kiddies, and sooner than y'all think.
I know that X is slow. I know that in many ways X sucks. But X has made my life so much easier for so many years that I have a hard time holding a similarly unqualified grudge.
R. J. Tinch (who should probably get an ID)
Having programmed OpenStep/MacOS X Server recently, and owning an 040-based Color NeXT, I know firsthand that DPS is not slow. Through careful caching, the image is almost always rasterized before it gets to the display engine. NeXT's implementation was very good: they were doing window updates during resizing long before NT or KDE did it, and the display is much smoother than either (though that is simply because NeXT double-buffers). NeXT was also doing video on the 040 hardware.
As for the future of NeXT's technology, the underlying DPS calls will need to be replaced, but most calls that programmers use aren't directly to PS anyway; typically a PSFoo() call is accessed via a NSFoo function or class. Quartz is not simply QuickDraw revamped, it is a lightweight graphics layer sitting beneath both QuickDraw and NS. The reason is that the graphics models are too different for Apple to easily integrate them.
On Windows, you have to pass about 14 parameters to CreateFont(), giving height, width, weight, bold, italic, underline, strikeout, Truetype/Raster, serif or sanserif, should it scale, and (finally) the font name.
One Windows programming book describes this as "going to a fruit stall and saying "give me about four pounds of a reddish-yellow fruit"' - you might get oranges, nectarines or plums, and they certainly wouldn't weigh exactly 4 pounds.
I don't care how my windowing system works in implementation as long as:
1. Its easy to code for but powerful. I want applications to use and I want to program applications -- a GUI that is difficult to program for or which isn't robust enough will hinder application development.
2. Device transparency which has true WYSIWYG support for all devices. The code which talks with the screen should also be able to talk with my printer, plotter, network, etc. What I display on one device must look the same on another device within the bounds of that device's capabilities.
3. There is no three.
4. 2D and 3D primitives support with hardware acceleration where possible.
5. Calibration of colors for devices. I want my screen's colors to match as closely as possible my printer's colors.
That's all I can think of at the moment. Any other suggestions or deletions?
For a saner dissertation on this subject try. http://www.ntlug.org/~cbbrowne/xbloat.html
With X, I usually run programs from 3 or more
different computers at the same time and
display all their windows on the same desktop.
The machines running the programs are scattered
throughout my office, or around the world.
They are running different OSs on different
processors. But all the programs interact
seamlessly, just as if they were all running
on my local desktop. I don't know of any
windowing system, besides X, that gives me
anything near that kind of power.
Windows has the silly restriction that all
programs must run on the local machine. No
remote execution. I suppose if that is all
you've ever seen, it isn't so bad. But after
you tasted life on the network, being
restricted to the local machine will drive
you nuts.
Smart=="being correct" is a fallacy. One isn't a guarentee of another. Remember "Bob"(of ethernet fame) and his predictions? Your memory may be short so I recommend you go to Deja News and review the thread in c.o.l.a. *Several* people made similar comments to mine. Are you going to question their credentials as well? And what does that say about blind alligance?
What happened to Display Postscript? NextStep used it (does OpenStep?) I heard Adobe themselves don't like it- why?
Does Rhapsody/Mac OS X use it?
> Many of the advantages that made X so powerful in "the day" may no longer apply.
You mean as we are moving toward "thin clients" and such, with faster and faster networks, it's not important to have a network friendly operating system, or, maybe you don't like a tool-kit nuetral windowing system.
> "most" users of X only
As networks become faster and faster, you don't see any need for a network friendly operating system. With X, you can literally have a computer in every room. Rather than throwing away your old clunk of a computer, you can set it up to be a X server and then run any applications from this.
> X tends to suffer from what I call "Win32APItis", a huge assortment of functions of dubious utility
X has maybe a little over 100 functions built into it, this is hardly Win32APItis
> extensions that X is now sporting (patches for TrueType support, GLX, and printing) are useful accessories
They reveal X's ability to change, rather than rewrite the windowing system every two seconds, they created a windowing system that can adapt to the times. Some of it like printing might be stupid ( You really should just print in postscript ), other's like true-type font support are useful.
> A lot of the features a modern GUI designer would like simply aren't that easy (or sometimes possible) to implement
Do you know what gnome and kde are about? they are about building a GUI, X is not a GUI, it is a windowing system.
What features that a modern GUI designer needs are not there that can't be implemented? I can't think of any, but then again, I guess I am not a modern GUI designer. I programmed in motif, and I thought it was good, so I most really be dumb.
> won't be compelled to write entirely new toolkits
We won't compel them to write new toolkits by making it impossible to write new toolkits. Very smart, this is really a step in the "write" direction. You call this progress?
> thin (hah) Xlib wrapper on top of such projects
go ahead and write it. The X protocol is really simple, you could easily cut out network support, and security concerns while keeping the ability to compile all programs, and, you could optimize functions to eliminate all refrences to client/server ideas, But, why would you want to do that? You will have little performance gain, and you would have a less functional windowing system.
A lot of people have been pointing out X's ability to run programs over the network, which is certainly one of its best aspects. (As I was fond of saying when Microsoft tried to do the same thing: "Bringing you technology a bunch of college students developed decades ago.") However, people seem to be overlooking one of the major flaws of this system: the division of work between the client and server requires way too much traffic between the two.
In X, every single key press, mouse click, redraw, and move of the mouse sends messages from the server to the client. Every graphic drawing operation sends messages from the client back to the server. This is a lot more network traffic than is necessary for a GUI application. It can also incur a lot of latency for the user on simple operations that they shouldn't have to wait for.
A much more sensible division is to have the system with which the user interacts directly (the server in the backwards X parlance) handle all the simple stuff (drawing, direct GUI interaction like button widgets, pulldown menus, etc.) and only talk across the network when there's something meaningful to communicate machine doing the work (client in the X sense). There are systems that work this way, such as the lng dead NeWS (which has already been mentioned here), and of course Java (which was developed by some of the same people who worked on NeWS). The main problem with this kind of division is that it's hard to automatically partition an application into the two parts (user interaction and engine). It's certainly very manual with Java. (Does anybody know how much of a pain it was or wasn't with NeWS?)
Xorian
Try lbproxy (low bandwidth proxy). It can reduce a lot of the "chattiness" of X's protocol, according to the man page. It also compresses.
If anyone's gotten this to work, I'd like to hear how well it does its job.
My lbproxy wouldn't properly authenticate to my home system, even though I'd xhost +'d it.
I can understand a 3DGUI if you can show me some use. Otherwise it's almost trendy and useless as that random web browsing thing Netomat.
I suppose three-D would be great if an AIBO floating ball could move stuff between two floors of a house. A 3-D interface would be very useful to command the thing. Mix that with the Zoom-UI some people are working on.
The thing that I wonder about is: is it easy to click on a flat icon or turn and tumble an interface before you get to click.
Definitely a direct to hardware video system would be great like that in X 4.0.
But seriously speaking before we get to three-D windowing, how about a 3-D monitor? It would allow 3-D software to be so much simpler than what we see now.
Imagine a 3-D arrangement of voxels that have opacity values as well as color values.
No more Z-buffers but hard walls and models that are simply read from disk and projected without a lot of redundant recalculating to find what you can see through and what you can't. Only the faces of the cube would need Z-buffers.
The ship sank. Get over it. (This sig was cut out from another's shirt and painstakingly hand-posted)
1st!
Find and share links to celebrity profiles on MySpace! http://www.myspacecelebrities.com
<OFFTOPIC>First, I did not leave the Berlin Consortium for any political reason, and am still very in-favor of what they are doing. Basically (to make a long story short) I significantly over-extended myself. For example, right now I am:
- I am working "full-time" as a software developer for a commercial software firm. (No... not M$)
- I am involved in three theatrical productions:
- I am playing Constable Loche in "The Music Man"
- I am playing Herr Sessman in "Heidi"
- I am runnig audio tracks for "Bye Bye Birdie"
- I am involved in 3 Linux related computer clubs:
- I am marginally involved in Orange County Linux User Group
- I am (or at least was) reasonablly active in Unix User's Association of Southern California
- I am supposed to be in charge of the Linux/Unix SIG for North Orange County Computer Club (If anyone is interested in taking over this group, please let me know)
- I am going to be beta testing Railroad Tycoon 2 from Loki Software
- and... I'm trying to get back into school to finish my BS
So, basically, I was just too busy to put in any more time... </OFFTOPIC>In response to Jordy's remarks:
Yeh... But I don't see this so much as an issue. X is still (and always has been) "source-code availible" even if it wasn't always necessarily "Open-Source", so the code has always been availible for peer review. As a software developer, I feel if X was designed right, I shouldn't have to modify X in order to make it suit my needs. Yes... but (at least up until now) they have always made it "source-code availible". I really have no desire to modify X itself, (as a developer) so I see this as slightly irrelivant. (How many Windoze/Mac users have the source-code for their respective GUI?) I don't see the backward compatibility as a major problem, The big problem is limitations of the X protocol because of how people thought about GUIs 10 years ago... This is really an issue with TK, the standard X toolkit, and really isn't related to the X protocol itself. There doesn't need to necessarily be a standard way of looking at GUIs and widgets, which is what different toolkits really provide... They problem is that they need to be consistant with each other in how they behave, and how they are user-configurable... Here I totally agree, but I think I'm looking at it from a different point-of-view. I see this as a problem because how the X-protocol "quantifies" the "world". (see below where I discuss server-side GUI widgets.) Here I also agree, but I'm looking at this from a different point-of-view than most of the people who responded to this point... In X, I have one window manager (running at a time) that governs how the window borders are displayed. The user has (for the most part) alot of control with this, but the remainder of each window is decorated according to the GUI toolkit that the software developer (not the user) used to create the GUI. Generally the user has little or no control over this. GNOME (or more specifically GTK) is starting to work around this with theming capibilities, but it is implemented at a level well above the X protocol, and consiquently, it only affects GTK applications.So in short, I'm not saying that there should be one "true interface" that all GUIs should be modeled after, but rather that the user should be able to select a style of GUI that (s)he is comfortable with, and have all the apps reflect that. (i.e. I could want all the "File" menu text to be in red... in all my programs.)
Additionally, a few things that Jordy didn't mention include:
- X only supports black-and-white (or more specifially "two-tone") fonts... This might sound fine to someone who doesn't know alot about graphics rendering, but this totally precludes the possibility of anti-aliasing, which can make text much more readable... especially with smaller fonts.
- Besides the concept of a "window" X has no concept of GUI "widgets" (like buttons, scroll-bars, edit boxes, etc. ) Whenever you press on a "button" (that, lets say, depresses when you press the mouse on it) the server sends the press event accross the "network" to the client, who has to send back instructions over the "network" for how it should be redrawn to look depressed. For something as trivial as a button press, this is a terribly in-efficient use of network bandwidth. With something like Berlin, the logic of how these buttons respond can be sent to the server, so all the GUI look-and-feel issues can be handeled on the server, then it simply needs to tell the client: "I've been clicked on... do whatever you are supposed to when I'm clicked on..."
- X lacks real support for any 3D, video rendering... esspecially WRT hardware accelleration... the typical X way to do this to hand off a chunk of the screen for rendering to a program who knows how to handel the acceleration itself, not only is this a cludge, but it may tend to introduce security issues.
- no support for alpha channels (semi-transparency)... or other similar effects.
- (I may be wrong on this last point but...) There doesn't seem to be any global color-correction settings in X... for people in the publishing industry, this could prove a real headache.
I'm sure there are other issues, but this should get you started...Thanks again to Jordy (and Graydon, and all of the gang) who are helping with Berlin,
Loren Osborn
J.
damned vulpine http://sb.drtwister.com/
1) you don't have anti-aliased drawables (e.g.,
arcs) under X;
2) anti-aliasing of fonts does not exist under X;
3) you can't do font rotation under X;
Direct alpha-channel support would be another
nice thing to have. Someone else mentioned
notification upon color map changes, and that,
too, would be good.
Umm no I understood that they really never do intend to have a OS 9 b/c there alreadyh is an OS with similar name out there.
Marriage is the "pseudo-ethics" that cloaks the messy truth of sexuality in the raiment of propriety -- it's "Don't Ask,
We are obviously capable of understanding and navigationg 3 dimensionally but it was my impression (coming from some articles on neurology I think but It was so long ago I hardly want to say anything for sure) that the eye reported back images in 2d and the brain created 3d as needed. We are much better at 2 dimensionally processing being the point. We obviously can imagine and use 3 dimensional ideas, but we are better with 2 dimensional ones. This of course being part of the reason that most everything is done 2d, maps, language (written), most computers apps etc. You don't need 3d to walk across your living room. You move only in 4 possible directions. You do not move up or down. You need 3d in order to not hit the roof. How often do you need to do that?
The preceding passage has been checked for spelling, you will find no sentence without at least one mis spelled word
don't humans think in 2d (I mean we can understand 3d but we actually interpret images in 3d)? I think naviagting a 3d desktop would be difficult as it would involve allot of complicated spatial memory. Has someone adressed this? I'm sure it would look damned cool and be fun to play with, but would it be harder to understand and use?
The preceding passage has been checked for spelling, you will find no sentence without at least one mis spelled word
The latest news from Cupertino says that Quartz has support for all (or almost all) QuickDraw calls, to make things easier for developers and to allow people to run old applications. After all, Apple spent such a long time finessing the QuickDraw API that it's a shame to just ditch it. (And it's also a really elegant API, if I do say so myself...not that it couldn't be better, but it's very nice). The PDF thing is just Apple seeing the light.
Oh, and DPS was not dropped ONLY because of licensing issues, it was also slooooow. Think about it, a nice, high-quality laser-writer takes it's time imaging complex pages WITH A HARDWARE-BASED RASTERIZER! Just imagine how slow things would get when you have a few windows open. To make things really fly, they'd have to put a couple of those chips on either the mother-board or the graphics board, and THERE Adobe makes a killing.
Now, here's a thought. Can someone come up with a windowing system that will ditch the dependence on pixels? I'd like to be able to say "I want my icons an inch square, and I want my text to be 12 points" and have that really mean something at ANY resolution. I don't want my 12 point text to become 12 pixels high and darn-near-unreadable at 1600x1200 - I want them to be 12 typographic points high (that's 12/72's of an inch tall) and VERY smooth. Is there such an animal? Was NExt like that?
XFree86 doesn't support the RGBA color scheme, does it? Personally I think it would be *awesome* because then, theoretically transparent terminals would be easily possible, right? Although it would either require 32-bit color or a soft transparency engine to calculate the final color considering all transparencies... but still that would be nice to have.
the real at&t mix
I don't know about anyone else, but *I* for one am getting tired of the 2D desktops. Virtual desktop space is great, but give me 3 dimensions. After all, I do have this nice little 3D accelerator card just sitting here rendering 2D Enlightenment windows. What a waste of money. I _think_ there is a 3d window manager out there written in OpenGL, but I don't have a link. Perhaps someone else has a link?
this sig limit is too small to put anything good h
In those days it was even a case of write your own toolkit. No such things as drop down menubars, just a mouse popup. To create a menu, first create a standard popup, fix it in place and go from there, You even had to do a lot of your own background buffering for repainting of windows after the menu was hidden. You didn't even have generalised scrolling areas - only text. Want a graphics scrolled area - write your own.
It was fun (I was at Uni at the time) but there is no way I would want to use Plan9 for a commercial application. Just to write a file manager it too 3 of us 6 months of heavy hacking.
The one thing that I loved about the Plan9 stuff was 9term. Love that cut & paste of the entire window contents, not just the last command line. Also, sam was a pretty decent editor too.
Life is complete only for brief intervals in between toys or projects -- John Dalton
Implementation of an API using an OO language does not make the API OO.
MFC is simply a thin wrapper around Win32. That is why MFC and Win32 are consistent!
In short, C++ code is not necassarily OO code.
Second, that this topic is growing really quickly and in the time it took to compose this, much of this has become redundant - at least I have a link to another copy of the Unix Haters Handbook, because it just seemed appropriate to mention the canonical criticism site about Unix. This is from the X Windows portion, specifically The X-Windows Disaster; here's a brief summary of highlights.
- Confusing user interface/Too much versatility, leading to overly complex or impossible interprogram communication: "cut-and-paste never works properly with X (unless you are cutting and pasting straight ASCII text), drag-and-drop locks up the system, colormaps flash wildly and are never installed at the right time, keyboard focus lags behind the cursor, keys go to the wrong window, and deleting a popup window can quit the whole application".
- X is a non-extensible window server - in contrast to NeWS. X was based around the concept of a dumb graphical terminal, and it uses a lot of data to achieve that. In contrast, NeWS and Java offer a somewhat more intelligent terminal interface to the client, and they make better use of less data.
- X programs have lots of nasty user interface problems, including X configuration.
- (This is about halfway through, then the complaining gets more heated and lengthier, like sitting in a Unix Users Anonymous group and hearing about how someone hit the bottom.)
- X has bad hardware support - This is out of place, isn't it?
- X isn't device independent, or maybe has a limited graphical toolkit? "Drawing arcs is probably impossible in a portable fashion."
The NeWS link includes a complaint about the constant reinventing of the wheel necessary to deal with the toolkits: if you need to invent a layer of abstraction over and over, why don't you just call that the base toolkit? This makes me wonder if the choice of toolkits is lost upon the author (Barry Shein) or something; you _don't_ send e.g. gtk or tk primitives over the network for display, do you?Allowing alternate display primitives makes some sense to me; adding, say, an OpenGL extension simply to incorporate double-buffering seems like overkill. But then, how, outside of an extension, can you make use of an accelerated card, without processing the lowest-common-denominator drawing primitives? Using the X protocol, can you exploit accelerated hardware to anti-alias text and graphics, for example?
Other criticism I've heard that the X protocol should take advantage of the locality if the client and server are operating on the same machine. This only makes much sense to me if the cpu overhead in dealing with the network protocol is noticeable; being able to transparently work from another machine is too nifty to throw away.
By a coincidence, I was speaking to a more X-literate friend (hi Eric!) about this last night. My knowledge is badly limited; he had to explain the purpose of the window manager to me. So please, if you want to flame me, be brief.
I don't have any "sound technical reasoning" to bring to the table, I just wanted to point out that in the little technical brief put out by Amiga fairly recently, they stated that they *would* be using X, and adding their own GUI system on top of it. Why let X go to waste when it's so easy to build on top of it?
MoNsTeR
If you were a "nomadic user" you would speak differently. X windows saves me here.
http://www.cc.foi.hr/uh/x-windows.html
This is an except from the Xwindows chapter of the "Unix Hater's Handbook" (the full text of which is not available on line). Perhaps folks who have a deep understanding of the current state of the X protocol and the X client/server model could comment on which of these criticism can be addressed (or have been) within the framework of X, and which really are fundemental architectural issues.
I also wish there was support for a wider range of video hardware
I think to "Do the Right Thing" when it comes to greater video hardware support under Linux, a transition will be needed, that will be the move from video support in the Xserver/SVGAlib/whatever, to video support in the kernel. That is, the direction that things are going with framebuffer support and projects like GGI. Then it'll be possible to experiment with new directions for the Linux interface without having to worry about recreating all that hardware support each time.
I think that the 3D enviroment where you go through rooms to get to your apps is not such a Good Idea, but since all the buttons and widgets on your screen are 3D look alikes, why not use some of the 3D video card capabilites to draw the widgets. This way you can place the light source where ever you would like on your desktop and the button, scrollbar, widget ... etc would be highlighted and shadowed in real time.
This kind of enviroment would allow for much more interesting themes. Themes that would include the capability of surfaces and transparency in widgets and allow for types of lighting like sun light or incadescent. You can even have some real shadowing when moving the windows around on your desktop.
Hey while we're at it, why not throw in some physics, so that when you minimize a window, the icon could bounce on the bottom or your screen as if it were made of a selected material. Or have gravity in a desired direction.
ayottesoftware.com
Something I don't get about this discussion: can someone give specific examples of apps where the clueless (e.g. me) could see X obviously running slower than Windows?
I've always found Windows to be pathetically unresponsive, even on faster hardware -- one of the reasons I've never had patience for it. At my job, the management buys higher-end Intel boxes for Windows than for Unix, because Windows is unusable w/o a bleedingly fast machine.
So what's going on? Can Windows be both fast and unresponsive?
According to the FAQ :
"It supports operating in both the normal client/server mode, and
in a special "client linked into the server" mode for very low memory
applications."
So I suppose they mean client/server in the "networkable" way.
:wq
Another misconception is that X can't support TrueType fonts, or can only do so kludgily. Not true; you can compile TrueType font support directly into the display server; it becomes no different than PostScript font rendering. Stock XFree86 4.0 is supposed to ship with TT support built-in. Antialiasing (and possibly font hinting, not sure), however, is a real problem.
That being said, I'm no great fan of X myself, in particular the API. Just what I've seen from reading GDK source is monstrous. It's very true that a lot of important features were not provided for in the initial design and had to be "bolted on" afterwards.
Finally, I don't think YAX has been mentioned yet. The idea is similar to Berlin, which has been mentioned, and it's a very interesting project. They've only released an API so far, but it sounds nice: From their description it's actually rather Be-like. An actual implementation is apparently in progress and they're also in the process of porting GTK to it, in order to immediately give it a set of available applications.
Steve 'Nephtes' Freeland | Okay, so maybe I'm a tiny itty
While X might be chatty, ICA (Citrix), although it is probably much less chatty, is server-dependent, as the desktop display is run from the server machine, and just needs to communicate window changes to the client and mouse and keyboard actions to the server (Server: the WinNT Server box running Winframe. Client: Xterminal, Mac running Citrix client, Win16 running Citrix client, X).
Play with VNC, whether you're hosting (or serving) it from a Win32 box or Linux a little bit over a remote connection... (http://www.uk.research.att.com/vnc)
for a better analogy to what Citrix and pcAnywhere do compared to X.
Reminds me of the 3D GUI on the "unix" system in Jurasick Park. It seems I've seen some cheap immitaions of that floating around since the movie.
[snip]
Am I wrong? Why? I'd be happy to accept your challenge - you've described exactly the reason I've stuck with KDE as my X environment. It has lots of friendly, consistent hot-keys which were similaur enough to their Windows counterparts for me to "discover" them without having to read any manuals. Try it, you might like it.
You are guilty of doing the same thing as most of the other people in this thread - confusing X with the GUI. X is NOT a GUI. X is a platform for displaying rectangulaur pictures on your screen, and handling events from input devices. That's it!
X may or may not do a good job with it's designated task, but complaining about it's faults as a GUI is like complaining because your apples don't taste orange enough.
KDE is a GUI. GNOME is a GUI. If you want to complain about GUIs, try them and complain about them - criticism helps them improve. But please, please, please stop confusing the issue by complaining that X lets you use different styles of programs at the same time. If that really is so horrible, then just don't do it! Go without! But don't dis X for giving you the option.
Host your own websites, anywhere!
I don't know if it would be possible to create "X light" by removing the client/server stuff, or whether much would be gained by doing so.
But what you propose (a GUI w/o X) could be accomplished by porting e.g. Qt and the KDE libs (or GTK+ and the GNOME libs) to another, simpler platform, e.g. SVGAlib or GGI.
Voila, you'd have consistancy (nothing would run that didn't use those libs!), speed (fewer context switches, no networking slowing you down), etc. etc. But you wouldn't have access to all the good 'ole X apps, which is a serious drawback. So serious that very few developers think it's worth the effort. The ones that do, and care, are probably working on Berlin.
W.r.t. to this whole networking thing - I think it's a grossly underrated feature. I've used it extensively, especially when I'm squeezing the last few ounces of performance out of old hardware, by creating X terminals. Being able to run an app like Netscape 4.5 from a 386 class machine is IMHO not something to be sneered at!
I've also made good use of this feature at work, where my windows-bound co-workers run apps off my machine by using Exceed (a Windows X server).
I'm perfectly happy with the performance of X on all the machines I use (well, the 386s are a bit slow, but that's to be expected), and have repeatedly made good use of X's networking features. Having a powerful, stable, standards-compliant and most of all flexible operating system is what Linux is all about (technically speaking - freedom is also very important). X is IMHO a valuable part of that.
But each to his own - you wait for Berlin (or help them hack it), and I'll continue thinking up new ways to take advantage of the power already on my desktop.
Host your own websites, anywhere!
I don't know standard wise but "lbxproxy" is available in XFree86 3.3.2. You run lbxproxy on the remote computer and makw it connect with your LBX enabled X server. You can use "xdpyinfo" to see what is supported by your Xserver. Even the latest Exceed X server supports it. (But I don't have it) But I had difficulties to set up my MIT-MAGIC-COOKIE so that I don't have to do "xhost -". (I stop to use it. termcap or curse interface rules.)
The same people who brought us LessTiff also have been working on a project to replace X while still trying to preserve the good things about X. They seem to have some lib ideas for their Y (pronounced OO) Windows.
:-)
http://www.hungry.org/products/Ywindows/
Another note: if X is so dated and clunky, what about SGI? I thought that IRIX uses X. I can't envision a much better media OS! Maybe they know something I don't. Hopefully they will share
--God is a crutch for the codependant!
http://www.secularhumanism.org
. Penguins Surely Ca
Patterns exist everywhere; there is an order within Chaos.
I work very well spatially. Manipulating both imaginary and things I have seen within a 3d space within my nogin, its all about gaining a perspective, one shift and you might see something you didn't before.
A parallel would be, we are living on one side of a rubix cube, whats going to happen when we realize there is more than just this one level.
If no one creates it .. in time .. I will. Keep'n it real, -Malachi-
"Life is all about strategy, mathematics and psychological perceptiveness."
Many of the advantages that made X so powerful in "the day" may no longer apply. X has an extensive security mechanism that exists more or less to provide authentication/authorization in an insecure, networked environment (such as a bunch of X terminals connected to one app server). While this environment does still exist (primarily in university settings), "most" users of X only have a single display to work with and won't need the security considerations X offers.
:)
X tends to suffer from what I call "Win32APItis", a huge assortment of functions of dubious utility (it would be "GTKitis" if it weren't documented). Other projects, such as Berlin, seem to have learned this lesson -- it's possible to make an entire windowing system with the simplicity of a "regular" toolkit. Any step in the direction of a less stressful API is therefore a step towards unification of look-and-feel, since developers won't be compelled to write entirely new toolkits to scratch the itch of hating Xt/Xlib
While some of the various extensions that X is now sporting (patches for TrueType support, GLX, and printing) are useful accessories, ultimately they reveal X's age. A lot of the features a modern GUI designer would like simply aren't that easy (or sometimes possible) to implement.
All this isn't to say that we just need to chuck X in the garbage can and start supporting Berlin/GGI/whatever; I would prefer to see a thin (hah) Xlib wrapper on top of such projects, in parallel to ports of GDK or Qt or whatever people like. X has some very strong advantages, which should not be overlooked.
Nothing worth doing is worth doing today.
Anyway, this is not a problem of X per se, more of an issue with specific X server design. Accelerated X has a technology called Velvet Mouse, which addresses precisely the problem you describe - I quote from their web page:
"Velvet Mouse" Accelerated-X Display Server features smooth mouse operation, even when the system is heavily loaded. Other X servers have a tendency to ignore mouse movements and other inputs for so long that when it does get around to servicing them, the movements are large, resulting in a "jerky" cursor. Tacky.
Yeah, Accel X is a commercial product, but it demonstrates that it's an implementation issue, not a fundamental design flaw.
I don't know wich of these parts are part of the server and what is the window manager.
But I would like to see some sort of clipboard that is similair in use to the one Windows uses.
What I mean is that I don't want the marked text to be in the clipboard.. I want the part that I said Copy or Cut to be in the clipboard.
As an example.
I go into a document and mark a section that I want in another document, I then select to copy it. I go back to the document, mark the section I want replaced and select Paste and that should replace the currently selected text.
In X today I have to do this.
I go in to the document where I want the new text to appear. I select the part I want to be replaced and deletes it. (making sure I remember where to do the insert)
I go into the document I want to copy from and mark a section that I want in another document. I go back to the other document and pastes the selection. If I am so 'unlucky' or un careful that I happen to check my mail and accidentally marks a section in an email that is what shows up in the document.. That stinks like hell.
And I sure would like some kind of unified printer control as printer control is probably the thing that sucks the most in linux/unix.
Given that the X Consortium hasn't existed for several years (1996 ?), you're well and truely behind the curve of knowledge.
I can't be bothered to argue the rest...
I love my KDE gui -- I'm a lot more productive with it than I am with NT or MacOS.
But X itself is a little slow. If you compare running a remote app remotely over X to running a remote app using something like Citrix's terminal server or pcanywhere, X is kind of a dog.
My background has very little X programming; I am not interested in GUIs or graphics. That said, here is my 2 cents :-)
1. What radical mods? If you mean to fix the other points, they don't sound that radical to me.
2. Seems like a non-issue to me. Not only do they have more to lose by ditching Linux and *BSD, but said communities can continue with the existing releases, as they threatened last time.
3. Dumping everything prior to R6 would be fine with me, but how much bloat does it really add? Even if it adds a full megabyte of code, how much of that code actually executes?
4. I don't see this at all. If the core libs were OO only, other programmers would suffer. If they are going to be in both OO and non-OO, then one will be better than the other. And pure OO is not realistic. Some things work better in OO, some don't.
5. Don't understand the complaint. Is there an alternative to one lib per language?
6. No particular comment. I have never noticed sluggishness, even on my old 486. Maybe we have different standards.
7. I do not like consistency for the sake of consistency. I don't want all programs the same. Fvwm does fine by me for most things. Any enforced consistency would stifle new ideas.
What I like about X is the separation of components: display server, client, core lib, toolkit lib, desktop lib. There's a flexibility and vitality that would be lost if everything were done the Windows or Mac way. I suspect there isn't another creature out there as flexible as X. Dropping R4 and R5 support would probably be fine with 99.99% of the programs out there. The things I hear about 6.5 sound like good evolutionary improvements
I suppose I let it bother me too much, but your worries about consistency really puzzle me. The world would never change for the better if consistency were the driving force. I would rather have the flexibility of X than the so-called consistency of Windows and the Mac.
--
Infuriate left and right
1) Bullshit. Anyone can join XFree86, who wield substantial influence.
I don't know what XFree requires of its developers, but the first point is that requiring anything at all slows down development.
However, the XFree86 guys have another obstacle in their way which is that they have to comply with the X standard. To join the consortium that defines this standard, you do have to pay money. Before calling bullshit in future, I suggest you try reading what you are replying to.
1) Bullshit. Anyone can join XFree86, who wield substantial influence.
I don't know what XFree requires of its developers, but the first point is that requiring anything at all slows down development.
However, the XFree86 guys have another obstacle in their way which is that they have to comply with the X standard. To join the consortium that defines this standard, you do have to pay money. Before calling bullshit in future, I suggest you try reading what you are replying to.
Yup, XFree86 3.3.4 (you might wanna wait for 3.3.5 which should be out RSN). The SVGA driver will support the S3 Trio, the only catch being that 15/16 bit modes may have a glitch... (one of the clocks on the card being miscounted in 15/16bit mode? Something like that...)
Bringing to Linux PM would help Linux kill
winblows. What killed OS/2 was IBM non
willingness to support it for Joe Blow.
I'd live with it even if it wasn't as long
as IBM would support it. Judging by the past
we'd be better off with an open source PM.
What? What's XCopyArea there for?
"update/validation regions"? What the heck is that? Personally, I only redraw what the Expose events tell me I need to redraw, if that's what you mean.
Pierre Phaneuf
[fwvm / Windows look]
Errm - nobody forces you to configure fvwm to look like Windows... Before switching to Window Maker, I was using fvwm2 for two years and it never looked even close to Windows...
Ciao,
Argathin
It isn't a matter of cost or performance, things are moving so quickly that performance issues are mute
The exciting thing about computers is trying something new, trying to change the way we do and think about things, for the better
Things like 3d monitors (holographic displays?) and 3d input devices will follow quickly if the technology is worth adopting.
Sure we won't know if it is better (aside from eye-candy) until we try it. And I sincerely doubt that it will initially be better than GUI, just as initially GUI had little to offer above the commandline (remember X's initial function in life was to display xclock and a couple of xterms! No Window Manager even! Just as a GTK/Enlightenment desktop(example, not intending to start a war) would seem amazing and jam-packed with information to someone running one of the first GUIs, so too will a 3D gui of the future look amazing to us now. The point is it is a matter of familiarity and expression of ideas in a new medium, not "what can I picture a 3d gui being now." Just as none of us could imagine 'drag and drop' if we had been doing terminal stuff all the time, I am sure a 3d gui would bring forth new concepts when we begin to play with it.
NB: I am not even saying GUI is better than command line, but I do say it compliments it well. Imagine, then, using command line with 2D with 3D, I can't help but imagine it would be very powerful and be able to provide even more interaction than 2d gui and terminal stuff does now.
Comparing the other windowing systems (Win/GDI, Mac, etc.) is like comparing a PeeCee to a UNIX workstation or a toy yard tractor to a back hoe.
X makes graphical client-server work. Other models that I've seen vary from marginal (WinFrame) to pretty schnazzy (QNX-Neutrino).
WinNT, etc. is not even in the game when it comes to this aspect. If I had a nickel for every time I had to run into the server room at a client site to do something at the console on an NT host I'd be as rich as Billy Gee. With a real OS: gee, just telnet in and/or export your display. It ain't rocket science.
Comparing GUIs, well that is just look and feel. Windows sucks, imnsho. Great way to rip neat features from other GUIs (notably NeXT) and then screw up the implementation. It's one fugly ucker. OS/2 WPS was butt ugly in a Motif kind of way (ugh!) but at least it did the object oriented desktop environment properly.
The Mac OS is very refined for look and feel - so much so that I use the E-Mac GTK/E-themes on my personal machines.
BeOs is cute looking. Grates on my nerves after a little while, kind of like Rasterman's funky E themes. Looks pretty but functional?
r@m
I'd like to be able to say ... I want my text to be 12 points. I don't want my 12 point text to become 12 pixels high and darn-near-unreadable at 1600x1200 - I want them to be 12 typographic points high (that's 12/72's of an inch tall) and VERY smooth. As a visual designer, this would incredible! i would LOVE this. the only problems i forsee is that with switching from bitmappped windowing to vectorized windowing is that you would leave behind the nice thing about high resolutions: huge desktop real estate, since everything would be the same size no matter your resolution (just finer quality). great idea though
-- adraken
I have read somewhere that this is because in Windows the mouse pointer is the highest priority process in the system. In X it is of normal "niceness" but as another poster has pointed out it is a simple thing to change if you don't mind all your other processes grinding to a halt every time you move your mouse.
We had NeWS which used DPS as base, rendered by X. Java is kin to DPS, and XML is becoming second cousin. So is the issue Graphics or the Transport?
It appears to me that Transport should be fixed first, since we can go back to NeWS in a rather painless way, and get a better transport to begin with. And then all of X can slowly be replaced by NeWS and we'd be ahead where we'd have been in 1987 if Gosling had his way instead of MIT and DEC.
Probably not even worth $ 0.02 but there it is....
Sinan
You've [Jamie] made some excellent points -- the
same points you've made for years. The trap you
point out though is so easy to fall into that
you fall in yourself. "Mechanism not Policy"
isn't a fault of X, it was the feature that made
it possible to become a standard! Standards
basically suck, but lack of standards sucks a lot
worse. I've lately been working on Win32 which
is also a standard and sucks at least as badly
as X, but in different ways. (Compare the event
model between X and Win32 for example.)
To all those people bitching about X taking a
few dozen megabytes of RAM all I can say is that
X doesn't pick your desktop themes. If you want
to put a TrueColor background image in every
window, you've got to expect X to store the bits
somewhere. (Also, there are a lot of apps,
some poor, some good, which create huge backing
stores for which X gets blamed.)
The last point I'd like to make is that X is
an example of the "Worse Is Better" problem, but
it is one of the perverse exceptions to the rule.
X is worse because it's better -- a great shining
example how bad it can be when the better thing
wins. (There are tremendous lessons here for the
Gtk and Berlin groups. *Learn* from history.)
Anything as universally used and as critical as
a windowing system is going to suck at something.
Live with it -- or show us the code *and* a
solution to the legacy code problem.
Using your "logic" we might decide TCP/IP is a ...
total loser too. I mean what a lousy standard.
There are at least a dozen different methods
to just transfer a file -- FTP, HTTP, telnet
upload, Gopher, rdist, tar over rsh, rcp, NFS,
DFS, TFTP,
Just because you re-define a word (X11) to mean
something different than the designers intended
doesn't give you the wisdom to pronounce it a
failure.
X is a pretty decent standard. It definitely
needs some redesign to fix today's problems --
optimize for high speed local multi-processors
with huge memories for example. The lack of a
user interface standard is a problem that can't
be fixed by changing X. The only solution to
that problem is to prevent people from designing
new toolkits.
BTW, the commercial Unix community *has* a
standard user interface toolkit. It's called
Motif. You don't like that? You want to have
a different toolkit? Well, then don't bitch
because X has so many tookits!
How about XNX - XNX, Not X-windows?
K.
-
How come there's an "open source" entry in the
-- Proud descendant of semi-nomadic cattle-herders.
On the machine I'm currently working on, several column-based applications (terminal emulators, DOS programs) seemed to merely increase the smootheness of the fonts. So maybe that's what you're looking for. Not that I'm suggesting you use windows.
Sam TH
AbiWord Developer
I really wish I could run an Xserver at
SVGA resolutions and color depths with
8megs or less memory.
Win3.1 ran on my ps/2 with 8megs of ram fine
at 640x480 with 16 colors, TinyX with the same
setup running Wm2 is almost unusable.
On the other hand Win95 osr1 runs acceptably
(some where between Win3.1 and TinyX) but
with 800x600 and 256 colors.
Repeat after me: X Window System, X11R6.4, XFree86 4.0
Also, DRI will be a XFree86 specific extension, and its purpose is to allow an efficient OpenGL implementation. It has nothing to do with core X architecture or such.
I have two major commercial statistical/visualization aplications.
One does not work at 24bpp, other at 32bpp,
both suck terribly at 8 or 16.
Never have seen anything like this in Windows world.
Also fonts under X are beyond terrible.
Still use X. Sign.. Too many other good things...
<^>_<(ô ô)>_<^>
Please pardon my ignorance, but what would be the effect on projects such as gtk, qt, enlightenment, etc. if the linux community decided to scrap X and go with another system?
Would this mean a complete/partial rewrite of kde or gnome? how much developer work would be needed to switch to another system?
The Network extensible Window System. Boy, do I miss NeWS. Not the cruddy widgets and look and feel of OpenLook, but rather the beautiful architecture and capabilities I got to use for a fleeting moment before Sun dropped it. This is a ripe candidate to be open sourced. James Gosling, if you're out there, could you please convince Sun to release the NeWS source tree?
For those who've never heard of it, it was a network window system (duh) that was based around a multithreaded PostScript interpreter with extensions to draw on the screen, handle input events, and with an object oriented programming facility. Unlike DPS it was designed as client server (like X) from the ground up with a much more efficient and customizeable wire protocol. In the version shipped with OpenWindows 3.0 it was integrated with an X server.
The beauty of it was because you communicated with it in PostScript you could offload processing on either the client or the server side depending on where it was most appropriate and by creative use of definitions on the server significantly cut the amount of data that would have to go across the wire. This can include implementing the window manager entirely inside the display server.
If you want to see some of what it could do, Don Hopkins has a page on NeWS at:
Some of the problems have sinced been fixed (particularly window manager issues), but the basic architectural and political issues remain.http://catalog.com/hopkins/lang/NeWS.html
Also for a good look (now a bit dated) on why X sucks see:
http://catalog.com/h opkins/unix-haters/x-windows/disaster.html
A sample from this page:
--john dougan
Personally I find X clunky and old.
RateVegas.com - Vegas Reviews
I know that the MacOS is evil because it's not open source...but...
About a year ago there were internal Apple docs floating around on the net showing off ideas for the then-Rhapsody, now-MacOS X GUI. It looks great!! Anyone got a link to that PDF?
RateVegas.com - Vegas Reviews
OS X Server uses DPS. OS X client/consumer and future versions of OS X Server will use what is being called Quartz and is based more on PDF.
RateVegas.com - Vegas Reviews
Right now there are 528 comments on this topic and it is still growing.
This is getting frustrating as I don't have the time to read them all (gave up after reading about 200 comments...), and the future of X is IMHO an important topic.
So is there any brave man who feels like making a summary of the interesting comments ?
OK, call me lazy if you want, but I'm sure that there are others who didn't have the courage to read all these comments...
Anyway it is nice to see that this topic hasn't degenerated as an advocacy topic (my GUI is better than yours) and that people tries to evaluate the true technical advantage/disadvantage of X11.
Even if I have used XLib, I think that I'm not knowledgable enough to have an opinion on this matter, it always interesting to see these comments.
Have a nice day.
*gasp* This statement really surprises me from somebody that has used Un*x for such a long time !
In my University I used this dubious feature to do all my assignments, at work I use it to remotely connect to Linux, Solaris and AIX boxes, at home I use this feature again to connect to work !!!
What are you talking about !?!?!?!?
Sure, running Quake is slower, that's why I have a dual partition and boot up '98 ***to play games***. When I want do real work , I switch back to Linux running good old X.
- sigs are for wimps.
Heh. Clunky and old? Well, clunky is true, but just because it is old doesn't make it bad. Unix is old but still good, so is vi, etc etc. X is bad though. Bloated and obtuse are how I like to describe X. MS Windows is primitive and unstable. MacOS is pretty but crash-prone. Okay, I'll shut up now..
If it is like debian, you have to install the 16 color VGA server if you want to use XFSetup. Also the guy above who thought it was only on freebsd-- that is not true. Xfree is the same on freebsd and linux.
yep. it may BE old, but the idea itself:
:-) so damn cool.
a network-transparent windowing-system,
where it does not matter on which computer
you start the application is just so damn
cool... i can't describe.
example: a friend of mine woke up and
realized he forgot to scan a picture... but
he was late and if he had scanned the pic he
would have missed his train. so what did he do?
since he had a leased-line he lay the pic in his
scanner and drove to work. in work he logged in
his computer at home, fired up the gimp, scanned
the pic.
if there will be ever a new windowing-system it
MUST have the flexibility of X or it will be
worthless.
ps. sorry for my bad english
Meme of the day: I browse "Disable Sigs: Checked". So should you.
I agree with everything you've said, but I also wish there was support for a wider range of video hardware. Of course, moving away from X would make this problem a hundred times worse. So I don't think there's any reason to ditch X either. Since the advent of pretty GUIs, it's everything I need.
Switch the . and the @ to email me.
I agree with everything you've said, but I also wish there was support for a wider range of video hardware. Of course, moving away from X would make this problem a hundred times worse. So I don't think there's any reason to ditch X either. Since the advent of pretty window managers, it's everything I need.
Switch the . and the @ to email me.
A guy above me mentioned something about FreeBSD having a nice GUI setup utility. SuSE has one called "SaX" and it works beautifully. It allows you to test your seetings and go back and change them if necessary.
;)
Just thought I'd plug my favorite distro...
"Well, learn the X way then. There is a consistency...you just apperently missed it"
...
Yeah. That kind of bullshit statement really explains things for people
Dude, you search is over - ZX Spectrum , GUI couldn't be more stable ( at least from my experience )
Actually I know for a fact Jordy has no microsoft connections. I used to know him from irc way back in the day (Jordy, if you're reading this it's SPaM from #couzin-ed). He's a bit wacky when it comes to certain things, but generally he knows his stuff. And he's definately not a microsoft troll.
-matt
You should be able to right-click on the title-bar of every app and have some application specfic menus available. Or even better, you should be able to do this on a taskbar tab.
Look at xterm; it doesn't need a menu bar (like kterm) but it has some useful menus that it puts under a control click. Instead the app should be able to tell the GUI "hey, I have some menus" and the GUI could display them when appropriate. Then I could click on the title bar, an icon, or a taskbar tab and get options for that app.
There are a couple of apps that do this under Windows and it is nice (CRT is one).
Perhaps you are looking for XRemote and Low Bandwidth X (LBX). From the comp.windows.x FAQ :
"XRemote - this is the name of both a protocol and set of products originally developed by NCD for squeezing the X protocol over serial lines. In addition to using a low level transport mechanism similar to PPP/CSLIP, XRemote removes redundancies in the X protocol by sending deltas against previous packets and using LZW to compress the entire data stream. This work is done by either a pseudo-X server or "proxy" running on the host or in a terminal server...."
and
"LBX - Low Bandwidth X; this is an X Consortium project that is working on a standard for this area. It is being chaired by NCD and Xerox and is using NCD's XRemote protocol as a stepping stone in developing the new protocol. LBX will go beyond XRemote by adding proxy caching of commonly-used information (e.g. connection setup data, large window properties, font metrics, keymaps, etc.) and a more efficient encoding of the X protocol. The hope is to have a Standard ready for public review in the first half of next year and a sample implementation available in R6."
The above is from a very old FAQ, does anyone have the URL for the current one, from RTFM perhaps?
I think your "solution" is a bit short-sighted. If we run the competition today, how does the "perfect" tool/protocol/wrapper of tomorrow get a chance? Sure X is bloated, and at times even ugly (fvwm95), but anyone who thinks they've got an idea is free to implement it.
Besides, I thought one of the major philosphies behind open source was to keep tyranny at bay...
Pictures suck! Lynx is your lord! X takes up too much memory! Use virtual terminals instead of xterms!
Ever hear of a thing called a pager?
You move netscape and whatever else is chugging away in the background to different desktops.
Even Windows users are doing this now with the LiteStep shell replacement. (AS/WM/NeXT interface)
that first line was sarcasm. I used mock HTML tags, and it literally made them disappear.
The biggest thing that bothers me about X is that there is no uniform way to copy a block of text into a clipboard. Instead one has to select the text and then--without selecting anything else--paste the text where you want it. I find this annoying because often, like when copying a URL, I want to delete a block of text before pasting the new contents. I really like Windows model of being able to select copy from a right click.
Hey while we're at it, why not throw in some physics, so that when you minimize a window, the icon could bounce on the bottom or your screen as if it were made of a selected material. Or have gravity in a desired direction.
Many a time I've wished I could take that fscking hourglass and *smash* it against the edge of the display!
-matt
It seems that X can't do printing (correct me if I'm wrong). Pretty much all other GUIs (Win 3.1, OS/2, Mac, etc) handle printing. This makes printing very convinent because the software can use the same method to display stuff on the screen as it does to print. In fact, that makes perfect sense to do. It puts all the non-trival printing stuff in one spot and lets all software make use of it.
"Luncheon meats make the sawdust in your stomach explode."
What would be the advantages to moving to an entirely NEW windowing system? This as opposed to moving to X 4.0. The new system would have to be at least marginally compatible with current X libraries, or everything will at least have to be recompiled
Fellowship 9/11
The biggest real complaint that I have about X is that is doesn't capture the entire user interface experience.
:-). You would need some really well written APIs, and it would have to be open source to justify commiting resources to work with/on it.
The biggest current issue here is sound. Enlightenment created it's own sound server to fix this. If we could turn that into a standard that everyone agrees on, then we would really be getting somewhere.
Then you would want to generalize to other user interface components: 3D displays, touch screens, digitizers, security cards/buttons, pan-tilt cameras, etc.
If the user interacts with it, then you should be able to access (or at least coordinate) it through a single server/protocol. It must all work over a network (with bandwidth management) and require only one authentication.
It might be interesting to see of you could make CORBA do all this (tied into an X server for the graphics part). In theory it could do this, now we just need to see it really happen (sort of a summation of the whole CORBA idea
-Dan
For a fairly well implemented (albeit non-free, shareware) desktop, check out www.3dtop.com. If my computer was fast enough to handle this and a few other things at a time, i'd take it in a second. After playing with this a bit, (make sure you read the docs), imagine if all your windows functioned in the same way...
A third dimension, if you can handle it, can certainly improve your ability to manage a desktop. All we need for it to be practical are a) _fast_ computers, and b), good, 3d displays.
"You know, Hobbes, some days even my lucky rocketship underpants don't help" -- Calvin
Please !
Whatever you do to change this Situation, don't let there be 25 different projects, half of them running under linux only.
Make ONE system, so deveolpers of applications don't have to cut down features, so that the apps can run anywhere.
Widespread use is the key to establish a new system. So don't forgett all the commercial-unices ant their manufacturers. You have to convince them somehow to support your windowing-solution.
There is no use for a system usable only for a part of the unix-community and used only by few apps.
Use open standards wherever possible. Make it object oriented, consistent and intuitive (for both: users and developers)
Provide more than just some graphical functions...
Integrate as much as you can into the object-System...
one extreme example: Files are objects. Each object can be opend by more than one Application... but these applications use obejct-functions of the file-obejct for I/O. Each opened Obejct(File) is only one of many "Views" this obeject supports... etc...
another example: You can drag'n'drop objects/files/opened documents between applications. (the usual way: save in app1, switch to app2, load the file in app2)
another idea: make GUIs flexible. Let the user redesign every app like he want to have it. (merge
guis of two or more apps into one window... etc.: e.g: merge a filemanager and the Play/stop button of an mp3-player into a 'mp3manager' without making one line of code) switch between diffrent gui-sets of an app while running.
---- but forgett about this. the important message is:
don't let the community split again into KDE vs. GNOME. Don't force each user to install 5 libs for to run 10 apps. don't force developers to use the smallest set of features, so it can be run anywhere. Dont let drag'n'drop works only between apps from the same manufacturers.
In your opinion, then: can something like Berlin ever succeed? Do you think it's not even worth trying to fix the mistakes of the past, with improvements to XFree86/DRI? What do you think the community should be aiming at instead?
Don't know if you'll follow this thread again, but I've been dying to ask the obvious question: given your distaste for X, plus your experience in using it, what do you think of Berlin/GGI? Is there a better approach still? In your post-Netscape/Mozilla period, have you given any thought to applying your skills to replacing X?
No! NeXT was not like that. No one is like that.
I remember this issue came up during the BeOS initial developement. They were still deciding how they were going to do imaging, and someone suggested that they base everything on vectors.
Then they got into all kinds of trouble, 'cause there was no good way to address a pixel.
I don't think that would be the only way to make text scale automatically, but it would be difficult to make sure that all other elements scale around the text properly without going completely vector-based.
Heh. I think windoze has some kind of feature like this, though. You can set it to "use large fonts" in the display settings, which mostly just means "use even uglier fonts." It doesn't exactly do what you're talking about, but it does make things more readable on high-res monitors.
Then again, I haven't used a 'doze machine for the past four months.
--
There are no trails. There are no trees out here.
I'd love to see a GUI (stress on the User Interface part) as soon as possible in the Linux boot process. I mean as soon as vmlinuz uncompresses, the graphics subsystem (VGA, GGI, or whatever) is started and the boot process continues, but represented graphically using icons and such. That would be a serious step in the acceptance of linux as an alternative to Windows with the average technically-challenged home user. I think boot messages (especially the kind that any unix generates) scare people. And then you have the issue of actually understanding and interacting with the boot messages. You and I can use chkdsk without any problems, but in a window's world, we're the exception.
/sbin/*, /proc/*, etc...). Of course the standard console boot process would be available for the rest of us...
So, maybe we should be focusing on putting a GUI on the parts that make up Linux, like modules and devices and filesystems. But even before that, devise a nice series of metaphores that could be used in visual representations of system components. (A simple example would be the puzzle-shaped init icons are when a Mac is booting). Then we can work on integrating those concepts into the front-end (X, Berlin, GGI, whatever) and the back-end (vmlinuz,
Feel free to contact me to carry on this discussion. Maybe it can turn into a project.
_______
2B1ASK1
Greetings,
Here I go again, replying to my own post...
The rest of the non-rant portion of my post is after the 'read more' button cut it off. That feature sure caught me by surprise.
In any case, the other point I wanted to make is that many of the drawbacks of X are also features for a limited userset. The problem is that to the 'common man' (the average user) of a popular program, those are bugs, not features.
The idea that the windowing system doesn't have direct access to hardware is just plain broken in the modern era of primarily single-user machines, for example. The wonderful thing is that we can FIX that with DRI without breaking the network capabilities of the windowing system also.
Win/Win. Some good, eh?
Cyberfox!
Well put.
Some of the issues that the first (Network Model) translate to are: Lack of support for hardware accellerated rendering of UI's, lack of windowed 3D accelleration support, high resource usage.
It's worth noticing that the network model IS being worked on in X4, with the Direct Rendering Infrastructure (Interface? I've forgotten already.)
The low level nature of the X protocol is somewhat required, given the design constraints. It's not well suited for remote pixmap display, however. Not well suited at all, but at least it's possible.
Drag'n'Drop being a fundamental part of X would be a good thing too, although I'm not sure it's being addressed in X4. Drag and drop is a special case of the entire concept of transportable data, however.
The problem most often MENTIONED about X is its extraordinarily ugly default interfaces. This can be shown to be 'apparently' fixable by toolkits. The true problem here is a very difficult one, however...
Skip the section between the highlighted begin/end rant blocks if opinionated bastards like me turn your stomach.
<begin rant>
Focus.
We have QT and the GTK, and Motif, and some other toolkits, but there's no unifying conceptual interface. While I 100% agree that choice is one of the strengths of X, Unix, etc., I have to agree that the lack of focus, and the lack of uniform interface that comes from that, is a critical flaw from the users perspective.
As a technophile, you want that choice, you want to be able to fiddle, futz, adjust, modify, tweak, and perturb your interface to your hearts content.
From the perspective of the user, the purpose of a computer is to...(wait for it...)
Hell, even I as a heavy-duty technophile, sometimes want to 'just use' the computer. Browse slashdot or cnn.com, word process, view pictures, read usenet, send email, do my taxes, play music, watch videos, play games. I USE my computer, as well as programming on it.
If users have to learn several different interfaces just to use their computers, they're going to fall back and say (with righteous anger!) "Why is this so complicated?!?"
Heaven forfend that you have to change window managers to run a particular program, or use a particular feature, and then change back to use a different one...!
There are a lot of slashdotters who believe that these users should 'Go away, and don't bother us He-Men!' I say, gently, you're wrong. These people are our mothers, our fathers, our grandmothers, our grandfathers, our brothers and sisters, and our friends. We know that there are true advantages (stability, cost, performance, for example) to using Linux (or BSD of course). Why should these people be denied those advantages, when WE as the developers of this technology, can make it USEFUL to them as well...?
In the end, it's all about the freedom for more than just the He-Man User-Hating Club of technophiles, programmers, and administrators. In the end it's about freedom for the benefit of everyone. Even those who can't use the core freedoms (to change the code) deserve to reap the benefits.
To get there, I believe we need focus.
With any luck, RedHat (or some large distribution company, should RedHat be replaced) will give us this focus, by having a primary UI that the majority of commercial software companies will support, thus starting the ball rolling, and the open source projects will follow because that UI is the one users are most used to.
This isn't to say that the lesser known toolkits, window managers, or UI hacks should or will go away. However, there needs to be a consistent user interface. The interface to developers, hackers, tweakers, and admins can be whatever they want it to be. But just one default UI for users is an incredibly powerful tool in spreading the power of the system to the public.
I know these are controversial ideas, but before you respond, go to all the non-computer literate people you know, your family, friends, teachers and students, coworkers and doctors... Ask around. See what they think of using a computer where each program has a different UI, each program has different ways of doing things, each application requires a whole new learning curve. Put it in the nicest way you can, and you'll still see them look at you like you're crazy. THOSE are the people who deserve better.
Right now they're stuck with Windows. No freedom, low stability, high cost, low performance. Why leave them like that when WE can do better? Are your friends, family, and social contacts so worthy of contempt that you feel they don't deserve the power of this system? Are you SO willing to relegate them to the 'have nots' of the computing world?
<end rant>
Popping the stack to the issue at hand, one of the primary drawbacks of X in a non-technical sense is that it didn't provide that user orientation from the start.
While I dislike the Motif UI in general, it could have provided that. However, having it be a non-open-source and (worse yet) proprietary project doomed it to not be able to provide the focus necessary.
So, hopefully someone else will summarize the issues with X at this time... Mine looks like this:
MANY OF THESE ARE BEING ADDRESSED BY X4.
That's my image of it all, though... I'm not bashing it at all, I'm an XFree86 developer (just got on the list recently), and I hope to help put some of the wonderful things into X4, or at least help by testing them out.
The present X, however, has at least those as apparent limitations, both from a technical and from a usability standpoint.
Cyberfox!
I myself think something along these lines would be a complete waste of time - not only for the person who wrote it, but even more so for the people who have to use it.
Think about that line I have up there as my subject. I think that kid in JP could have done her magic a lot quicker had she not had to wait for the view to move all over the world. Also think Johnny Mnemonic - to me it is just a million times easier to type "slashdot.org" than it would be to "fly there" and look at all the pretty graphics along the way.
Yeah, it would be cool, but the novelty would wear off fast. Besides, I get motion sickness when I play Quake, so I don't play it.
Mister programmer
I got my hammer
Gonna smash my smash my radio
Yes, it is best to have both OO and procedure based. That's how windows does it. Everything is Win32 (strait C) and they wrap it with MFC (strait C++). That way you can choose to OO, or not to OO. Plus, the Win32 stuff is consistant with the MFC stuff. All very nice and organized. Either way, I quite that stuff and just do Perl now.
Corndog
Of course, this still means 6M for the server itself, which is a lot compared to, say, a ZX81 in low-memory mode
Remember the UI that chick used towards the end of the movie to turn on security systems?
If I remember correctly, that curious computer she was using had a bastardized 3D interface...
Kagenin
"All warfare is based on deception."
Sun Tzu, "The Art of War"
Synapse is a prospective 3D UI i checked the page (www.oreality.com) and it's available...the screenshots are pretty neat
Now here's a good news/bad news situation. I already used my five moderator points today on another thread, which meant that I couldn't moderate up any of the JWZ posts on this topic. On the other hand, that means I can add my own amplifications on the topic of how much X sucks.
Another sucky thing about X is...is...
Oh, what's the point. I've been an X user for almost fifteen years now. And I'm one of the lucky ones: I've never had to program for it. Fifteen freaking years and I have finally almost got a desktop I actually like. And that's only because the GTk+ people did an end-run around X and I've got a desktop machine that would stomp any supercomputer from the 1985-ish era of the X design. So I have to say that X is quite lovely if you have the luxury of running it on hardware 32,000 times more powerful than it was designed for.
But then Zawinski writes:
I feel your pain, but I'm not sure even I am as darkly pessimistic as this. I guess the claim is that replacing X would be too much work, but I think we have plenty of evidence that there are people out there for whom time and duplicated effort have very little meaning. As I write this, there are hundreds of programmers slaving away at the Wine Project in order that we might one day be able to run Microsoft Word in bug-for-bug compatibility mode. Zawinski has already pointed out the amount of wheel-spinning that has gone into the eleventy-seven different toolkits that you can run under X. Emacs now can have a built-in web browser (disclaimer: yes, I sometimes use it) and I personally know the guy who wrote its spreadsheet mode.
No, I think there's enough random energy around to write a completely new GUI for Unix and hack/slay/port all of the most useful applications to it. There are already two or three groups of people who are working on the next X itself.
I'm not sure all of this is the wisest use of one's time, of course, but there you go. Worse may usually be be better, but this cuts both ways. I remember when Linux was still in the .95 days and there was a serious question about how long Linux thing could go on before the *BSD people saved us all. It didn't happen that way for a variety of reasons, and *BSD was a far more likely candidate for world dominance in 1991 than X is in 1999.
King Babar
Babar
Before I begin my rant, I would like to make it known that I'm an avid Linux user and only use Windows to play games. I was helping a friend of mine install RedHat 6.0 yesterday. After all was installed with nary a problem, he asked how to configure some stuff, so I told him about linuxconf (I prefer editing text files myself). The first response from him was a horrified "what a disgusting interface!". He was describing the click-tree type doohickey in which you click a labeled box with an X in it and it unfolds to reveal other options. And yes, it was, to my embarassment, just an ugly bugger of a UI. Upon closer inspection, it wasn't that dificult to get around (it's your standard click-tree doohickey thing), but the use of spacing made it look very overwhelming. Anyway, to my point: We need more artists (or non-color blind people) working on our UI's! While I have gotten used to it over time, using any X desktop requires me to forget any sense of visual aesthetic. The "problem" actually lies within the widget set and window manager. But GTK (as well as any other window manager)is themeable you say! True, there is hope in that... unfortunately, while some themes are decent looking, most look quite amateurish (while they ARE done by amateurs, some are just horrid). Ok, I don't mean to insult everyone out there who is actually contributing rather than complaining like me. And yes, there's that whole "beauty in the eye of the beholder" argument... but some of those themes I see on themes.org are just obnoxiously foul! Some of the more popular ones are pretty good, but none are especially "I could sell this for money" quality. The problem is is that if Linux is to really be an enjoyable "user experience" (and become a desktop OS), it has to look and feel consistant rather than a frakenstein of rejected looking widgets and graphics. Yes, Linux is especially functional and I love that, but it's not a very "sexy" experience. As much as I detest Windows, the impression that working with Windows leaves me is that has a well crafted (though not neccessarily well designed)interface -- it's consistant and doesn't look bad. I think the Linux community could do a lot better regarding the visual aesthtics of X. Maybe RedHat could hire a few artists with that IPO money and crank out some cool professional quality themes. It seems to me that Linux can not only have better performance, stability, and other practical aspects than "other OSes", but it can look cooler too. note: yes, I know that Linux per se is just a kernel and I really mean the windowing system on which runs on a distribution of software which uses the Linux kernel yadda yadda yadda.
XFSetup is far from 'lovely' in many circumstances. I still cringe at trying to get an old (usually no-name) monitor to work at a decent resolution in X Windows. Since one of Linux's most impressive uses to non-technical users is its ability to revitalise old machines, this is a serious problem.
Why is it that a vintage monitor can display a Windows desktop at 800x600 with 256 colours after a simple Control Panel tweak (setting it as a Generic SuperVGA 800x600, I've never seen this not work), but hours of trying to guess refresh rates won't get more than a 320x200 physical desktop in X? This, combined with the 8 megs of RAM overhead, is what's keeping Linux off of millions of potentially useful 386s
1) Network support. The ability to start a remote X session is a HUGE advantage. It allows you to run machines without monitirs, it allows you to work in a GUI when you want to do remote administration, etc.
But what advantage is this on a desktop computer? Think about the number of people that this would not benefit in the least. All of those computer drones in billions of cubicals - are you going to try to sell them on Linux because of this?
If Linux really wants to replace Windows, this can't be one of it's biggest advantages. Could it be that the people that use Linux the most have forgotten (or don't know) what a typical daily computer user does with his or her machine?
2) Client Server Architecture. This means that we can have any number of Window Managers and switch among them at will. This is great becasue different people work differetly. What is efficient to you is ineficient to me, etc.
Are you going to have all those people that fit in the group above training on a system that can change COMPLETELY by installing another WM? Do you think any of those people will want or care about that? Companies already spend millions of dollars training people to use the Windows GUI, they'd never want something that would destroy the workers productivity.
X has its problems. Here are some of the ones I've seen:
..., select font, draw word".
1. Network Model
One of the prime strengths/weaknesses of X is its network model. That is, X is a client/server system. The server controls the display and the client talks to it using the X protocol, giving it messages like "draw line here" or "draw pixel there".
This is a strength, because the X protocol allows the server and client to be on two distinct machines. Thus you can have "thin" X terminals that only run an X server and display applications run on centralized servers. You can also run graphical admin tools to do remote administration.
It is also a weakness because of the extra work converting "draw line" to the X protocol, sending it though a socket (even if the client and server are on the same machine), and finally, converting the X protocol command back and actually displaying it. There are some workarounds, like the MIT shared memory extention that lets the client and server avoid the serialize-transfer-unserialize stuff, but it added programming complexity.
2. Low-level Nature of X Protocol
X is somewhat inefficient, because it converts the drawing requests into very low-level commands. Instead of saying "draw button here", it has to say "draw line, draw line, draw line,
This is unavoidable, given the design constraints of X (provide a general purpose solution and don't enforce any policy). This is why so many toolkits exist on top of X.
Note that these are both design decisions that trade off performance for utility or generality.
I have a hard time reading text in many X programs that use small font sizes. The same size text is much easier to read on Windows systems. Does X make use of the hints in fonts?
I know that "me too" posts are generally frowned upon, but since this forum does constitute a bit of a poll for the biggest problems with X, I'll break the rule just once.
Support for more than one bit fonts is the single biggest lacking feature of X.
You don't need to have an antialiasing engine built in to X itself, but you do need to add the ability to treat fonts analogously to XPM, not XBM. I'd personally love to create some 2 bit (4 levels of grey) bitmapped screen fonts. Furthermore, both the TrueType (FreeType) and T1 renderers are already set up for antialiasing support... they just need the damn drawable!
Div.
But my grandest creation, as history will tell,
But my grandest creation, as history will tell,
Was Firefrorefiddle, the Fiend of the Fell.
Don't get me started on colormaps!! A couple of jobs ago, I was the only one brave enough to really dive into colormaps and understand how they worked. After that, everyone came to me. And now I shudder at all the bad code I've seen that just has no clue and does really dumb colormap management. To be fair, none of the standard O'Reily X books really cover it well. It is a dense subject, but if you are going to write image apps, you should pay a little attention to those chapters.
If you are doing things right, your colormap values shouldn't be changing out from under you. If you allocaed them, you can change them, and no other app should be bothered, because they shouldn't be using the colormap values you allocated for yourself. If you are using "shared" colormap entries, they are read-only, so they can't be changed out from under you. If you didn't bother to allocate colors, and just rummaged around the colormap looking for some pretty colors, you deserve anything that happens to you when the proper owner changes the values for those entries.
If you are talking about color flashing due to there being only one hardware colormap, its kinda pointless to try to re-dither your image, because the window manager is going to flash, all your toolkit widgets are going to flash, the whle damn display is going to look like a mess.
There is a Colormap Event anyway. Check your man pages for XColormapEvent.
I hope there's a special table reserved for X colormap guru's in heaven's 'Old X Programmer's Bar"
According to the technology brief at www.amiga.com:
With regard to windowing environments on the Amiga MCC, we are leveraging a combination of technologies from Linux and Java. At the lowest level (managing the bits on the screen), we are using the latest Linux X Windows window system.
So while the Amiga will have a new looking GUI, it is still X.
Replacing X seems like a good idea at first, as it would solve the issues numerous others have pointed out, notably ancient font handling and colormaps, the over-abstraction of networking, and the lack of at least a semi-consistent user interface. Just drop in a new windowing system that simplifies coding, still allows the useful parts of networking, and has hooks into localhost for fast access at the console. Seems simple right?
Unfortunately, there are terrible barriers to overcome, not the least of which are current X users. X users are accustomed to the levels of customization afforded by the myriad window managers currently available. Don't get me wrong, I like choice just as much as anyone else, but how reasonable is it to expect support for KDE, GNOME, and Motif in every application? How reasonable is it to expect support for each of these environments by vendors? And how reasonable is it to expect users to choose the environment which makes the most sense for them to use, and then to choose applications which properly support the environment? The answer is it's not. There have to be baseline standards in a modern windowing system that is so widely used. This logic applies to more than just toolkits and window managers (think protocols like DND, and the idea of double clicking on a document to open it, rather than opening the program first.)
The problem is, standards don't come easy. Nobody wants to change if the current system works (or more precisely, is **perceived** to work.) Power Users want their current level of control (even if it steps on other's toes unnecessarily, and ends up stunting the growth of the windowing environment as a whole.) Application programmers don't want to invest the time to learn a new system, even if the benefits are enormuous. For many, learning a new system would involve learning new paradigms (like OOP, or component models like CORBA which Berlin relies upon.) They'd rather keep with the status quo and slowly plod along. Finally, hardware vendors really don't want to move to something new. It has taken years to get support for modern video cards in X...how long will it take them to support something new?
In short, don't expect things to change anytime soon. Berlin is full of wonderful ideas, and if it lives up to its promises, will be vastly superior to X. However, Microsoft proved (and continues to prove) that it just doesn't matter if the product is superior. XF4 will solve a number of issues, but these are simply symptoms of the problem. After 15 years, it is time to retire the codebase and start anew. However, users, vendors, and programmers have simply invested TOO much time to change.
From the X(1) manpage from XFree86 3.3.3:
The X Consortium requests that the following names be used when referring to this software:
X
X Window System
X Version 11
X Window System, Version 11
X11
It does seem to say that this is version 11, no?
The big three GUIs out there all differ significantly in their end user audiences. MacOS has always been easier to use for novices; but MS Windows, at least since Win95, has been the OS of choice for businesses, due to the range of applications and MS Office, primarily (see my point on consistency for a reason for this). X has been the GUI for client/server computing and, more recently, the geek world.
I've coded for all three, and none of them win any prizes for coding ease. MacOS doesn't implement enough in the OS, Win32 implements *FAR* too much (in an inconsistent manner), and X, well X, has just too many different toolkits and window managers.
In response to Jordy's points,
3) The software is extremely dated with over a decade of backwards compatibility which no one even uses any more bloating the code base.
3. Unfortunately, this is the case with *every* currently-useable GUI out there. Have you taken a look at Win32 recently? Backward compatability is always going to be a problem.
4) C... Object Oriented environment.. please. I'm sure a lot of people will bash this, but writing GUI programs in an OO language is simply easier. And before you start on the OO toolkits out there, read the next point.
4. Yes OO design for GUIs is easier and cleaner, but it is important that non-OO languages are supported, even if it has to be through a compatability layer of some sort. Everyday tasks are easily done with a scripting language, and usually it is overkill to write simple scripts in an OO manner.
6) Sluggish. I have AccelX and I have to admit the entire experience is still very slow. Netscape flickers gray every time I scroll up and down, windows take ages to redraw when switching between them, etc. I multiboot to Windows and don't have any of these problems, everything is quite snappy... even if it crashes every 8 hours :)
6. Agreed. X simply does not redraw as quickly as MS Windows. This is primarily because video cards have been optimised for use with MS Windows and the support for X is less prevalent. Also compare MS Windows vs Mac OS. Although, I can usually use NT for more like 1-2 days, and 95 for about 4 hours...
7) Inconsistant. With all the toolkits out there, it is so very hard to get a nice consistant desktop. I wouldn't even claim that Windows is consistant, but it is pretty close. MacOS is better.. but at least both environments are intuitive.
7. A lot of other people have been claiming that consistency is a BAD THING. However, I disagree. Sure, from the development point of view, aiming for consistency limits freedom of design, but the average end user isn't at all interested in that. The average user NEEDS to be able to use the same keystrokes and see the same menu items from one application to the next. That's why office suites became popular after all.
In my opinion, the inconsistency of X is one of the biggest stumbling blocks that Linux is going to face in its introduction to the rest of the world.
And now, my pet gripe about all GUI's: Why is it so difficult to use the keyboard? The developers of Windows 3.1 had the great design goal that all functionality had to be accessible using only the keyboard (the only real exception to this was in imaging/drawing applications).
The CUA design 'standard' gave application developers the ability to standardise on the keystrokes used in their applications. This meant that I could pick up a new app in Windows and start using it without having to hunt for menu functions or learn new keystrokes.
Now MacOS also has keyboard shortcuts for many things, but a lack of standardisation and a large number of possible keystrokes makes this less useful. Arguably the biggest advantage that Windows has in this area is its use of the Alt key to activate menus and shortcuts. MS have gone backwards to some extent in Office 97; no one is going to use or remember the vast number of key combinations that are enabled by default.
I challenge anyone to complete basic tasks (such as switching applications, accessing menus, etc) faster in X than an experienced user can in Windows; any time a user has to reach for the mouse, there is a significant time wastage.
So to sum up, from my point of view, much as I dislike the bloatedness and proprietariness of Windows, I use it as my work OS, and will continue to until someone comes up with a more useable alternative. I will occasionally use X, although I prefer to Bash and vim through my Linux boxen, and I'll avoid MacOS as much as possible.
Am I wrong? Why?
Actually, I'm perfectly well aware that X is not the GUI, but I was using the term X to describe the underling X layer + the assorted window managers out there. Perhaps that wasn't clear from my message, and I could have made it clearer.
I've tried a large number of the X window managers out there, and still none of them measure up to Windows in both performance and useability. However, I'm not saying that I won't use KDE or Gnome in the future; they are only in their early years, and will be polished, whereas MS have had close to 15 years to polish Windows. I just hope that the KDE/Gnome/whatever developers focus on useability over glitz, because in the end, glitz only sells screenshots.
So I haven't given up on either KDE or Gnome, but at this stage, they're not quite useable enough for my liking (remember, I virtually never touch the mouse).
- Threading. I'd like to see X get good threading support in it. I know the calls are there for XCreateThread() and friends, but I think that each thread created with XCreateThread() should get their own Xlib queue to talk to the X server. However, they should share all of the XIDs with each other. That way, you don't have to treat EVERY X call as a critical section. Each thread writes to its contact point with Xlib and reads from its private queue.
- GTK+ is a great library. However, I think that the gdk layer is unneeded. gdk is basically a wrapper around Xlib that does virtually the exact same thing as the underlying Xlib call. Yes, there are some differences and for those calls it is OK. However, I think that GTK+ could be more efficient if it were written on top of Xlib instead of on top of gdk on top of Xlib.
Just my musings.X does support hardware scrolling, assuming you have a decent driver. If the card doesn't support VRAM to VRAM copies, but supports DMA, you will notice a problem when listening to MP3s because the hardware scroll causes huge DMA burst to occur on the bus is unavailable to the sound card for a short period of time.
-- Virtual Windows Project
- Windows can straddle multiple screens, even if the monitors are of different resolutions and bit-depths. (XINERAMA pales in comparison to this.)
- You can change the multi-screen layout on the fly.
- You can change the resolution and bit-depth of any screen on the fly.
Supporting these features in X would require allowing the root window to be shaped and allowing resize/reshape events on the root window, would require support from the window manager (to ensure that windows don't end up off the screen on a geometry change), and would completely break the X color model. I don't know how we could extend X to support changing the color model on the fly without breaking compatibility with existing clients (or making the X server real slow).Actually, IIRC the OS X GUI is
DPS (Display PostScript), same as what NeXT used.
DPS is similar to Sun's old NeWS system, which also used Postscript to draw on the screen. NeWS was supposed to have been rather neat, but being propritary killed it.
-- -- The Dragon De Monsyne
One thing I would like to see is a standardized, embeddable X Windows. X in, say, 4 MB of ROM and 2 MB of RAM with a Linux OS and a few apps behind it. I want X on a Wince-handheld/palmtop.
"Though it may take a thousand years, we shall be FREE."
The main problem with X is poor design, an overly complicated api with little functionality. It also as a legacy of extensions that have little use in the modern world.
Better alternatives I can think of are display postscript and the Plan9 windowing system, 8 1/2.
I know the display postscript extensions to X failed to catch on because of being Adobe ip, but surely it could be run under whatever arrangement ghostscript is run?
This link has a bit of info on why dps is needed.
-- Reverend Vryl
People usually complain about the ugliness of X.
That has little to do with X itself. It's mostly
due to the primitive toolkits used in X programs.
However, that is changing thanks to efforts like
GNOME and KDE.
The really unique feature of X is its ability to
work through a network. That is its main asset,
and no other GUI system can do it, although some
third party proprietary systems try to do it in
the Windows world.
Just so you know; X does make a very important optimization when the server and client are running on the same machine. It uses shared memory instead of any sort of real "network" design; so X and the application communicate directly through your system's RAM, which is much faster than any network or pipe could be. Try compiling your kernel without SHM support, and see what kind of framerate you get in Quake :) This is one of several reasons that X sometimes appears to take up more RAM than it ought to.
The argument that "X is slow because of its network capability" doesn't hold any water and is really used only by people who don't understand X. X is slow (in some ways, it is) for other reasons... ones that, generally, can be solved.
I have seen the future, and it is inconvenient.
dear AC,
it's nice that win95 werks for you. it's even nicer that you have had 18 days uptime. but I havent had such luck. win98 will crash in 2mins to 30mins. i get no blue screen of death. everything just stops. and no im not going to reinstall everything for the 100th time.
on the griping hand, i have had uptime of weeks with linux. the only real problems are E 0.16 (which is in CVS) which crashs X not linux. so which do you think i can get more work done on?
nmarshall
#include "standard_disclaimer.h"
R.U. SIRIUS: THE ONLY POSSIBLE RESPONSE
nmarshall
The law is that which it boldly asserted and plausibly maintained..
--Colonel Burr 1783
Yeah, SaX is really nice. It won't do Mach64, though.
I found that the hard way, then used XF86Setup, which is unfortunate because it won't generate arbitrary video modes for you.
Monitor setup is a pain in the ass and takes quite a while to get just right. Wouldn't it be nice if you could move and resize your image with the arrow keys in xvidtune?
Presuambly there are advantages to running this windowing system. One of the first things you do, though, is write an X server for it, so you have backwards compatibility. Then you write native applications at your leisure.
-russ
Don't piss off The Angry Economist
Various scientific apps, such as MSI InsightII and Felix, CSD quest and Macromodel, SGI's gmemusage and sysmon, Remedy, Framemaker, you name it.
Some of the above are low bandwidth, some are very high bandwidth, some use GL through X, some are pure X.
The idea that the way to do network transparency is to have the remote machine be the one tracking the mouse is just crazy. It would be far better for all GUIs to live locally, and for the on-the-wire activity to happen with some more domain-specific RPC, or other services.
I completely agree. But as you state elsewhere, we are stuck with X because it is entrenched. And I'd like to add that for the average user it doesn't suck so badly as to be unbearable. I actually enjoy what I have.
But [SGI's X server is] still ridiculously slow, given what their hardware is capable of! You only have to compare X performance to GL performance to see this.
Well, I have benchmarked one app that comes in both flavors, although you might call both implementations below par. The numbers are not incredibly different. The overhead due to macro interpretation and number crunching involved in this app simply outweighs the raw graphics performance, and that seems also to be the case in many other scientific apps I see day in and out.
I guess my point is that for many apps real life performance is not as markedly affected as you'd guess based on the internal workings of the X protocol. In my pedestrian view that means X is mostly good enough to get work done.
As much as I respect Jamie, I beg to differ. The 'dubious feature' to remotely display lets me get my work done very effectively.
As a sysadmin / app supporter my screen is littered with windows displayed from all manner of Unix hosts, and not all of them are xterms. It saves me countless hours of walking across the hall or campus.
Before I came to work in computing support, I also used remote displays rountinely, including several sessions that crossed the Atlantic, to get essential tasks done.
In my view the remote display capability is one of the best assets that X has. Granted, it makes X a dog compared to other windowing systems, but that's why my desktop is an SGI. Their X server is as great as it gets.
As far as I'm concerned, there's two major flaws. The first being the client/server organization and its impact on standalonish workstations. Essentially, the problem breaks down such that when you move a window the client has to tell the server what's going on and the server then has to tell the client what happened. On one machine both processes fight for the same resources, slowing down operations.
The other problem is with the API. Sure, there are toolkits, but they while they are somewhat easier to use, they really do end up screwing up the look and feel: there isn't a consistent look or layout to any of them. You can smell Motif when that funny head pops up, for example. This makes life difficult both for developers who are honestly trying to keep things consistent and users who have to figure out what the hell the pyramid with the eye means.
X has a lot of good features, and its why we still use it today. When you need the client/server, it's really really nice. The fact that you can swap the window managers is nice (viva choice)! We could still do lots, lots better though. Perhaps something where O'Reiley doesn't have to sell so many books...
I've always believed that the percieved problems with X are caused by its overuse. X is great for showing pictures. Its great for shoving xterms around and allowing shells and other apps to coexist on the same screen, but its often overused.
When I start X, four huge xterms encompass my screen. They are each running screen, and often one has emacs going (go ahead, flame away.) I make sure nothing hides behind those windows, and when I need to use netscape (as I must infrequently do,) I can do so.
I'm not using to replace my shell and allow me to launch every program with the press of a button. I hate mice. I use it because it allows me to configure the layout of my screen and show pictures.
The problems arise when you throw a kludgy session manager and window manager and toolbars and other junk on your screen which suck memory (yes, I know. Emacs does too) and make things all confuzzled.
Bleh.
This thread is getting really long. Lemme just sum it up.
We need a gui that preserves the networking transparency of X, while allowing local programs to run directly (as possible) on the local hardware. The local programs should run through some sort of os abstraction layer to force them to follow "the rules". Not a difficult idea is it?
p.s. Aren't people working on this already?
#6495ED - cornflower blue
Connection speed isn't that bad seems to me.. But I usually work over a LAN.. But at least X has network capabilities. As far as widgets, in a way Xaw is as standard in that sense as you get. It comes with every release of X.. but people don't like it because it is ugly.. I don't mind having gtk+ separate :) Just because it's not included with X, it has become a strong standard, if you code for gtk you are nearly guaranteed to compile on any linux, maybe not every unix, but most unices work fine with gtk, but may not include it. qt seems ok, but not as widewspread in linux distros..
XML is like violence. If it doesn't solve the problem, use more.
Unless they've changed their mind again, the new Amiga will be using X.
X was designed to run over a (fairly high bandwidth) network. It is really fast over a LAN. The client/server model causes a bit of an overhead when running locally. Also, the X protocol wasn't designed with accelerated 3D cards in mind.
X11 is up to release 6.3 (AFAIK).
11 is not a version number.
Hands in my pocket
Should have looked around first. I stand corrected.
Hands in my pocket
X11 is not a good window system for a home
desktop user. It, indeed, lets you do much
more than the home desktop user would normally
want (I mean network GUI features). This
I would call bloat.
Next, there are inherently bad design decision in
X11 that started to impact the usability of it:
A good example would be that cursor and fonts are
by design 1-bit deep bitmaps, meaning no simple way to introduce color cursors or antialiased fonts.
(Fonts, BTW, is the weakest spot in X11 design,
right after idiotic design that makes you write
quite different code for truecolor and low-color
displays)
Most of those shortcomings are now being
addressed in toolkits like GTK and QT/KDEToolkit,
but that does not improve the X11, just those 2
toolkits.
On the other hand, we should stick to X at least
until we have reasonably good port of GTK or QT/KDE to some different platform. The price of
loosing X would be inability to iteroperate with
other UNIX systems, and, at the same time, would
mean that we need to develop new GUI framework.
Berlin is a good example of what happens when you
drop X. The idea is OK, the human resources are not adequate to do it in reasonable time.
The only other GUI I've heard of is Photon (right?) and it does seem to have few virtues of X, like network-transparent graphics, and a thin design. I did not develop for it and have no idea how good/bad it is.
Win2000 comes with network transparent GUI as well, and, unlike X, it works nicely over 36kpbs modem lines. (slow a bit)
That GUI is a standard win32 gui from the developer's point of view, and we all know what we think about it.
Try using the right mouse button on the titlebar, then click on "maximize", then "unmaximize." Is that what you were looking for?
Without going into full advocate mode here...exactly what 'features' of GNOME and KDE are lacking in Windowmaker? I think both of those lack the Easy amount of configurability in windowmaker.
hate to say it, but I fired up win95 the other day and was suprized at how easy to use the GUI was. After being on Linux for a while using windows for every day things was easier. Don't get me wrong, I'm not saying windows is better but it's UI is smoother and more predictable.
You've obviously never used OS/2's Workplace Shell. Windows 95's interface is *NOT* good. It is *NOT* intuitive. It is *NOT* flexible. It is *NOT* efficient.
There are some interesting comments about adopting 3D interfaces. However, it would prove to be a CPU-sucking task, sort of like Windows.. basically it's sticking a non-native app layer on top of hardware made to drive 2D. Instead, 3D GUIs should be installed in systems configured with 3D-dedicated video and subsystems e.g. PowerPC G4 CPUs with AltiVec for the windowing environment.
-----
Linux user: if (nt == unstable) { switchTo.linux() }
Those who laugh at you for you having a Mac.. are the people who constantly call you to fix their PC.
In regards to the comment about systems needing consistent screen/printout color handling, it already exists on Mac systems and (to a lesser degree) on PCs using Apple's ColorSync software. It allows device profiling and calibration for image files and, in Mac systems, provides system-level color consistency. It even allows device-independent profiles to be embedded in images so they appear and print the same color on different workstations.
MacOS X is supposed to provide resolution independent imaging for screens using its Quartz technology, which is based on the Adobe PDF standard. Sorry I don't have a link =(
I believe it should be an independent (read Open Source) effort to create 3D environments, however.. much effort has to be done to put together a study on Human Interfaces. You can't just put floating buttons in front of someone and expect it to be intuitive.
-----
Linux user: if (nt == unstable) { switchTo.linux() }
Those who laugh at you for you having a Mac.. are the people who constantly call you to fix their PC.
System-level anti-aliasing of fonts are already available.. on MacOS. If any of the system fonts (large, small, and views) are either TrueType or PostScript, the Mac gives you the option of anti-aliasing them. Looks great. In addition, Adobe Type Manager (the little control panel) allows you to have global anti-aliased fonts in all applications like Macromedia FreeHand, Microsoft Word, Netscape/IE, etc.. it's cool.
BTW MacOS 9 __is__ coming out and it should be officially OS 9, not 8.7. Preorders start tomorrow and should ship in October. For more info:
http://www.applein sider.com/articles/9907/sonata-beta-four.shtml
-----
Linux user: if (nt == unstable) { switchTo.linux() }
Those who laugh at you for you having a Mac.. are the people who constantly call you to fix their PC.
I forgot to mention that MacOS 9 contains some feature sets that won't be available to any platform for a short time (well built-in anyway). Find out about them here:
http://www.appleinsider.com/macos8.7.shtml
There are some cool mentionable features such as voiceprint authentication for multi-user environments and Sherlock II.
-----
Linux user: if (nt == unstable) { switchTo.linux() }
Those who laugh at you for you having a Mac.. are the people who constantly call you to fix their PC.
Oh yeah, forgot about that one. Any good monitor with any decent card (like an ATI Rage Orion 128 or 3Dfx Voodoo3 2000) can be installed in a Mac, flip the switch and it instantly works. You'll suddenly notice extra options in the Monitors and Sound control panel for: (1) Pick primary display, (2) which monitor gets to have the menu bar, (3) screen arrangement or position.. plus you can have each monitor have different resolutions and bit-depth -- all changeable ON THE FLY. No rebooting or editing config/driver files.. nada. It's basically extended workspace.. I usually use two monitors so Adobe Photoshop can fully display a HI-RES image on one screen and have all the imaging/editing palettes on the other. Very convenient. Hell, if I had three monitors with Adobe Premiere, I could have the video-editing work area on the middle monitor, my editing palettes on the right, and my output video playback on the left! Totally production-oriented setup! No IRQs, DLLs, configs, drivers, or window-managers needed! Mac has got it all (and this is just the OS 8.0 and higher.. we're getting close to the real hardcore stuff soon........)p art2.shtml p art1.shtml
More screenshots:
http://www.appleinsider.com/articles/9905/sonata-
http://www.appleinsider.com/articles/9905/sonata-
-----
Linux user: if (nt == unstable) { switchTo.linux() }
Those who laugh at you for you having a Mac.. are the people who constantly call you to fix their PC.
Jamie Zawinski schreibt:
"X is slow because of the separation of servers and clients, i.e., the client-server model, i.e., its network capacity. It doesn't matter that it uses shared segments in the degenerate case -- it still takes a dozen context-switches amongst three different processes before an X client can even pick its nose.
Windows and other window systems are way faster because when a program wants to draw a line, the DrawLine call in the graphics library ends up putting bits in a frame buffer. On X, the amount of overhead for every operation is just staggering. Even more so when window operations are involved rather than simple graphics operations."
You're absolutely correct that graphics can be accelerated tremendously by dumping the functions that get in the way of performance and running on the bare metal the way Windows does. It's a fundamental architectural decision: do you build a graphics system on top of an operating system or an operating system on top of a graphics system?
The latter approach has screaming performance as long as the various clients play by the rules and respect each others' memory, screen, etc. space. By interposing networking and security functions between the layers, OTOH, the client-server approach buys stability, security, and portability at the expense of performance (at least in a single-processor application.)
Which is something to think about: a client-server architecture makes much better use of multiple CPUs than a monolythic monster-app.
I can't help the nagging suspicion that rather than being an obsolete hog due to be replaced by the New Order where the Central Processing Unit places each pixel in memory, X may have been ahead of its time by anticipating a distributed graphics pipeline with separate devices handling presentation, rendering, and display.
Lacking <sarcasm> tags,
Oh, c'mon, how long did you really think it would be before they wake up?
Seriously, though, this will probably exist within the next two years, as they complete the port of MSFT Office onto Linux.
Will in Seattle
They only exist on the .mil side, but expect to see them on .com in the next century.
Will in Seattle
and BeOS ;)
Basic
It's not so much something to increase your efficiency, I think of it as a way to look much cooler while retaining a large amount of control. You could still use the 2d mouse to control this environment, and with a smart keyboard setup, I think it could be easy-to-use. A third dimension could be used to hold things with a perspective (a window running vi that is squished back, to where you can still kinda see what's in it).
You could deal with the FPS control issues by assigning simple key commands to navigating, if you would like. Since you aren't restricted to 'game' movement, you can instantly move anywhere, like "directly in front of netscape", or "3/4 perspective to the graphical representation of the root of the hard drive."
Again, it's not so much a productivity booster, but something usable that can still get the job done.
"Please don't sigh like that, maam"
I used to really hate X windows also. But recently i gave up trying to make a GGI/svgalib multiplexer and started to learn GTK.
After playing around with that for a while i borrowed a book from the library on X and its actually quite nice (and VERY EASY) to make a xlib/GTK app.
HOWEVER X really doesn't "feel" as fast as my win95A partition (needed for school) on my computer. The mouse seems sluggish and jerky (very much like when playing 8 player starcraft on it (p120)).
Anyone know WHY X feels slower?
In my case i have not much use for network transparency, and pcanywhere appears to do this much better anyway without the transparancy. I wish i was able to help make it quicker but x seems to me too large (bloated?) to
help develop and someone posted that you need to pay money to be a serious developer?
Anyone want to make clear all the myths of X, which are true and which arent?
Also, i think it would be a good idea to wait for V4 to come out before we switch to a faster windowing system.
And, anyone know any good stuff on writing a window manager? im editing aewm to my needs atm for a gtkwm but its not commented and some of the code is too complex for my little brain.
From the GUIs I've used, X is the only truly networking one. Running a program on a different computer is no problem at all. Yes, I know there are extensions to even Windows to run programs on other computers, but they all basically suck. ;-).
:-)
There may be other windowing systems which are better on some other areas (like speed), but these two are the main factors that count for me:
1) networking (I run a LOT of programs on a LOT of machines)
2) configurability (I wish I could have window maker on my win98
It's obvious that X is not perfect. There are many things that should be improved, basically most of those things are due to the fact that X is old. But on the other hand there is no better alternative. If one wishes to have a better GUI than X, he has to make a new one. A new one with:
1) networking, I'd say exactly the same way as in X
2) Configurability - this includes two things: a) total configurability (something X has, and Windows lacks) b) easy configurability (something X lacks)
3) speed - there are already some quite snappy X-servers, and XFree 4 should be fast enough (since the rendering goes directly to the video card), if the programs take advantage of it. The system should however use direct rendering model always when it's possible, even if running programs which don't know about it. This brings me to
4) compatibility - Launching a new GUI is impossible if it has no programs to run with it. Therefore it should be possible to run X programs with it. This should be rather easy, but having it running X programs faster than current X servers isn't easy
Now, someone might ask why I've said "Windows" several times in my text, and not once mentioned his favourite GUI, which of course is OS/2 PM, Amigas GUI or some other ultrahyperfantasically great windowing system. Well. Take a look at the sales figures.
--
It has to work - rfc1925
"You are guilty of doing the same thing as most of the other people in this thread - confusing X with the GUI. X is NOT a GUI."
Well, duh. No, X is NOT a GUI. But it is used to RUN the GUI. And since the GUI (and all the underlying layers that may affect it) are under discussion, X is pursuant to that discussion. No, I won't complain that X does a bad job at what it was meant to do. I WILL complain that what it was meant to do may not be the best basis for a GUI!
Layers to use a GUI in X: X (client/server architecture), Window Manager, Widget Toolkit
Layers to use a GUI not in X: GUI
X does add overhead. Some think it is reasonable. I say that if your task involves client/server GUI interaction then great. But myself, and I'm sure many others, just use X for the GUI at the same machine the host is on and don't give a darn for the client/server architecture. Can't this be gutted out? #UNDEF CLIENT_SERVER If I want the taste of an orange, the solution is not to complain about how my apples don't taste like oranges: the solution is to replace the darn apples!
It's 10 PM. Do you know if you're un-American?
Since you're into CORBA, have you heard of AllianceOS?
www.allos.org
The whole OS is CORBA based and network transparent. nice nice. Just hope CORBA doesn't introduce unnecessary overhead (communication negotiation).
It's 10 PM. Do you know if you're un-American?
Some people have suggested different window managers, even a 3D window manager. You need to think bigger. What we need is an immersive, FUN interface. Check out QuakeFM, the first-person-shooter file manager.
It takes the example of ash (the adventure shell), and takes it to the extreme. You wander around a fully-realized 3D environment corresponding to your file system. Directories are rooms, with files represented as objects according to their type. wav files are big stereos, mp3s are boom boxes, image files are pictures hanging on the wall. Symbolic links are transporters. Armed with various large caliber weapons of your choice, you wander around your file system with a massive capacity for destruction. But mostly, you engage in mundane tasks, such as carting files around from place to place, playing the stereos, viewing the pictures. And from time to time, if need be, you choose a file for destruction and let loose with your rocket launcher or railgun. If the destruction of an entire room is what is desired, stand outside and toss in a grenade, which will rid you of the room as well as all those pesky files.
Sure, an accidental click of the mouse can remove some files by accident, but Unix is well known for giving you the heady power to shoot yourself in the foot. Only in QuakeFM is that literal.
Anyway, check it out.
This is not a discussion about the OS as a whole. This is about the User Interface. Even without color, the Mac had a more elegant interface, because it was more uniform and refined.
I still find the Mac interface to be one of the most elegant (albeit power user unfriendly) user interfaces.
It sounds as if you are one of those people who trash macs because they are different. I just find that dissappointing.
A friend of mine says he doesn't like X's client/server over the network model. He says that this consumes unnecessary resources when everything (the X server and clients) are running locally. I said I thought any wasted resources were marginal. Anyone know for sure?
Stephen Molitor steve_molitor@yahoo.com
I heard some people complain about the X consortium's control over X. Could we fork off a different branch of X, a 'la [X]?Emacs, and would that be a good idea?
Stephen Molitor steve_molitor@yahoo.com
The Win98 machine that I am typing on right now runs for days without reboot. I know, it surprised me too. It runs the Exchange client, IE5, AutoCAD 2000, SolidWorks 98, McAfee virus stuff and of course the distributed.net Win32 GUI Client. And it runs all of these pretty much full time. 1.1 megakeys on d.net btw. And I'm not gentle with it either. Always downloading something foolish of the net. After all, if it does crash that just means that I get to take a couple days break from work and reinstall everything!
I've enjoyed X alot, or i guess i should say i enjoy gnome, KDE, and all the rest of the really awesome strides in the LInux UI development area, but i have yet to really become excited over X or to gain much attachement. I like a lot of the features that the client/server model has going for it, but clearly, that's not where it's at solely. Neither is 3D performance alone going to make a kick ass envionment. I would be really interested in seeing what replacements are available and seeing the plannign of a portable and extensible windowing system, but also interesting is the compatibility with the X beast.
If such a project were to start however, fragmentation would be the ULTIMATE enemy. Not just the same harping about UNIX fragmentation's problems, but simply the fact that a cohesive self-contained windowing look/feel/work environment needs a tight group of well trained engineers to get it right. Having people from 30 countries with 10 different hopes for an environment would be hell to keep togehter. BUt the results would be amazing.
X may very well be a limiting factor for enticing a full-blown DTP or other graphics-based industries over to linux/UNIX. The performance isn't there and also, there are too many details. THe MacOS is the best i've used, simply because it's so pervasive, self-contained and intuitive. there are only a few primitive concepts in that system that flow through the rest. much of UNIX is like this, but not X.
FInally, all the reports i read about linux is "wow, you can hardly tell it's not Windows." I HATE the windows looka nd feel! fvwm irritates me! This may be our chance to not only bring linux up to par but also to innovate. i can't see why there aren't more people, art school students, etc. jumping at this chance to create a fully functional refined and elegant system with powerful postcript, 3d, and vector support (i love IRIX's vecotr icons..)...
chimchim
Why do I have this image of deleting files and killing errant processes becoming a much more dramatic act? :) Kind of reminds me of that old exit message in Doom, "Don't leave, DOS is much worse."
I use a commercial X-Server, yes I know its not free, but its cheaper then RedHat 6.0. For $39 I have Metro-X. It's a bit smoother (ie faster) then XFree86 and easier to configure. It also supports dual headed on a limited array of Matrox video cards (and maybe some others). I have 2 Millenium II's and it works great, it feeds my 15" and my new 21". Sure it has its problems... but its as good as 4.0 will be, now!
Spyky
No I am not affiliated in any way with MetroLink, they just make a nice X Server.
The Berlin project seems really cool, in theory, and I see they are making some progress. How long is the estimate before the first release?
My experiences with X have been bad. It does not seem to handle anything very graphically intensive well at all (example: using semi-transparent backgrounds on windows is realy slow).
I like Berlin, simply because it is starting over from scratch. I think most of us would agree that X is reaching the end of its life, and is not worth trying to build new technology on top of anymore.
EverCode
We have Enlightenment, which looks great^H^H^H^H^H amazing, but it's still enclosing chunky fonts.
Wah!
There's no reason it has to be that bad. Throw it through ssh (and there's a tutorial for doing this, along with links, on VNC's site), and it'll be compressed and encrypted! Wow! Mommy, can I have one too??
Here are some of the problems with X itself (which goes with being bad.. note some is technical, and some is opinion.. I'll let you decide what
I should add that I am no expert on X. Most of this stuff is stuff that I have picked up from people who know a hell of a lot more then I do (like my friend that has a ray-tracer that runs on massively parallel machines, and can get better then 10 frames a second (last time I checked) on an array of 16 ultra10s)... The experts on the problems with X11 in the free ware community would probably be the guys who wrote XFree...
my
-andy:)
- I find the stacks and stacks of libraries clumsy... not nearly as clean as they should be IMHO.. on the gnome road... gnome sits on gtk+ sits on Xlib.. on the straight X road Motif or Athena sits on Xt sits on Xlib... etc. for all the other libraries... if it wasn't so painful to work in the core API, we would not need all these things.
- Along with being old, comes supporting old versions of the API.. while I under stand the need for this, some of the old API (which was all run through sockets) is really kludgy and takes away from the speed
- Mmm.. shared memory... shared memory (now that it exists in UNIX (at least in all of the unixes I have used: Solaris, Irix, Linux, and I am pretty sure FreeBSD, OpenBSD, prob. NetBSD, maybe AIX) all have support for shared memory which is a much faster interface then older unix ipc interfaces like pipes...
- another thing sort of messed up with X is the way it manages colors, which (again IMHO) it has never done well, since it works completely different in different modes on different hardware, except using the Xlib API, which (as I have mentioned) is slow and clumsy.
I should add that I am no expert on X. Most of this stuff is stuff that I have picked up from people who know a hell of a lot more then I do (like my friend that has a ray-tracer that runs on massively parallel machines, and can get better then 10 frames a second (last time I checked) on an array of 16 ultra10s)... The experts on the problems with X11 in the free ware community would probably be the guys who wrote XFree... myThat *includes* your video card memory.
In text mode, Linux is great for "serial multiusers" in that one person can log in on one virtual TTY and another can login on another and you can switch back and forth without interrupting each other.
Can I do that with Berlin or X(free)? It doesn't seem so incredibly difficult to implement. You swap out one person's graphic memory and swap in another person's. It might not be instantaneous but it also shouldn't take a heinous amount of time?
Paul
The tool you are referring to is xvidtune, which XF86Setup does run when most configuration is complete.
xvidtune is installed with most X distributions.
-bugg
Have you ever upgraded your libc? Never EVER had to recompile programs for GLIBC2.0 instead of LIBC5? Or GLIBC2.1 instead of GLIBC2.0?
I happen to know a fair amount about dynamic and shared library linking and loading. I wrote the entirety of the DLX Dynamic Linker for DOS/DJGPP/GNU32. I have written proprietary ones as well.
While I admit that XWindows DOES certainly slow some applications down considerably, IMX the MITSHM extension helps considerably and the DGA extension is very powerful. Discounting the extensions simply is NOT fair. How would the Win95 graphics stand up without DirectX? How is DX different from DGA (implementation details aside). Granted, DGA is simply a framebuffer interface stub, but GGI runs just fine on it.
Also, the new XFree86 4.0 comes with the new DRI, "Direct Rendering Interface". While I admit that my understanding of this new feature is limited, it is supposed to allow the XServer to communicate directly with the system libraries (the X11 libs and GLX).
I have an NT server that's down three floors, across the street, and back up three floors. When I need to run something on it, I fire up PCAnywhere, log in, run the thing, and it's cool. I usually do the same when I need to do something on the NT server on the other side of my partition. And I could do the same thing with my home system; I could scan a picture remotely and transfer it here.
Perhaps this is the time to stop thinking about CRTs (which are now over 100 years old having been invented in the last century) and start thinking about VR (immersive - you only see the alternate world) or HUD (Heads Up Display - used to superimpose info onto the real world). Either of these would extend the perceived screen size to 360 horizontal and 360 vertical and allow a huge amount of objects to be available for either simple monitoring or as links to larger applications (to be called up as either 2D or 3D, depending on function). With the growing success of voice recognition, wearable computers, and spacial mice this is just about here. The real last link is the display hardware (still buggy, or expensive, or less resolution than a CRT) and a new metaphor for a 360x360 interface. Think about that. Look up wearable computing for more info.
Regarding configuration, FreeBSD comes with a lovely X configurator called XFSetup. This is a gui based configuration thing, which allows you to choose mouse, keyboard, videocard, various monitor tweeks, test screen modes, etc. In fact, it's built into the installer should you want to try it out.
Other than that, XFree86 v4 is quite fast. The way the drivers within the servers work has been redone, making them fast, and much less bloated.
I'd say both of these problems have, or will be shortly taken care of...
Rod Taylor
You seem to be heavily pushing Berlin as a new gui for Linux. As much as this may dissapoint you, I'm hoping it'll run on more than just Linux.
X afterall, runs on all unixies, os/2, mac, and windows... Very handy if you ask me. (Yes, I do use X under OS/2 quite a bit!)
Rod Taylor
a little off topic, but on the bottom of this comment page.....
---
Congratulations! You are the one-millionth user to log into our system. If there's anything special we can do for you, anything at all, don't hesitate to ask!
All trademarks and copyrights...blah blah blah.
-----
hmmm. i'd like a million dollars please.
I don't think he meant efficient, as in the efficiency of the video display adapter, but even if he did, my P120 runs the WMaker GUI much faster than in Windows, and I find it much more predictable, and easier to use than Windows.
My major problem with Windows - 1 workspace by default, and windows are handled by their applications completely - you can't move/minimize a window of a busy program, that really can piss off.. The GUI is pretty damn ugly if you compare it to Enligthenment + GNome + GTK themes, and IS easy to use, but so is WMaker's GUI, and after getting to know both, working with WMaker is smoother and faster for me.
It was mentioned multiple times about pixmaps.
Dealing with them on the server side is much faster, but it works not just for pixmaps, but all widgets. X could supply more than just primitives, but a widget set (as a library its dynmically linked to, for example), and most of the operations on the widgets could be dealt/drawn by the X server without the clients intervention. A lot of bandwidth on the client/server connection would be saved, and drawing widgets can more easily be accelerated than drawing primitives.
I think it was referred to as a 'widget server' somewhere, that could be external to the windowing system, but would be better performance-wise to integrate in the windowed system.
In other words, have the window-system mess more with the GUI, leaving the client to its more important tasks, and saving lots of bandwidth.
Yeah. And configuring the Window manager is a pain the the rear. I LOVE the flexibility of Fvwm2, but it took me quite a bit of work to get it set up to my taste.
Time flies like an arrow. Fruit flies like a banana.
- Connection speed. It's acceptable now. I can get work done over a 28.8 connection. But it would be great if the compression were internal to the architecture so that you didn't have to worry about compatibility and getting it installed on computers that you don't administer. And from what I hear other people saying about the protocol, there is some room for simplification.
- Efficiency. The protocol needs to make better use of information already sent. Invalidate-areas would be great. Additional primitives to do basic stuff like BitBlt could help things along.
- Common controls aka widgets. You shouldn't need a toolkit to draw the standard user interface. There is a lot to be said for a few simple controls built into the standard. (This might be a "layer" issue--do they go in the window manager, the toolkit, or the GUI?) I think widgets belong in the GUI so every programmer can depend on them being there. I've seen 10 different shapes of buttons, 3 major types of scroll bars, etc. etc. Make it standard, so the programmer doesn't have to worry about it, and the user understands what they see!
- Window manager/utilities. Ok, so not technically part of the GUI. But there is a lot of room for improvement in the installation process of the window manager and the utilities.
Again, I'm not an expert, but I would love to see X++ (grin) take over the world.Time flies like an arrow. Fruit flies like a banana.
I have been using KDE for awhile, and I have really been pleased with its performance. One aspect that is a little discouraging is it seems too be a resource hog on the older systems (i.e. P100 w/ 32Mb). I think that KDE blows away anything that M$ has put out. It's easy to use and highly customizeable, I like it.
I really haven't dealt much with any of the other Window systems like Window Maker or After Step, but I like their cool graphics and theme concepts.
GNOME, I've never played with this one.
about a month ago there was a post about a 3D Gui for Linux. I was quite interested and this made me go back to their website. Low and behold they've released Synapse DR1. From the screenshots i think it looks damn cool, I just used it and whoa...i love it so far...it's pretty damn nice for a developers release
Hmm, been watching Hackers a few too many times?
Really though, why make a window manager uneccissarily complex?
I think that in theory what the people are doing with Berlin is great. However, after at least a year, they don't have anything workable. The problem with all of this fragmentation (Berlin vs. KDE vs. GNOME vs. Fubar) is that it is counter-productive and leads to much duplicated effort. People need to get over the NIH (Not Invented Here) syndrome and learn to work together more. At the end of the day, if a project remains nothing more than pie-in-the-sky speculation and committee discussion, it's worthless. X is too much entrenched for hundreds of thousands of developers to suddenly abandon it and go to a 'might be' GUI platform.
'He who has to break a thing to find out what it is, has left the path of wisdom.' -- Gandalf to Saruman
----------------------
1) Performance due to missing and wasted functionality. The "scroll" problem is because unlike Windows & Mac, X does not support a nice scrolling functions like "copy block up and only redraw the bottom line" like Windows does.
----------------------
how do you exaplain that I can scroll netscape under X without any problems?
since I do not have problems on my machine, I believe it is more problem of the specific implementation of X server (and of course, the graphic card used) then the problem of X itself.
btw I have voodoo3 and Daryll's accelerated server. the X windows are fast like hell...
erik
...all excited, don't know why...
Actually, I saw this program in action well before Jurasic Park came out. A friend of mine worked for the Geom center at the U of M. They had a whole bunch of slick SGI boxes, for math and geometry visualization, and most of them had this program where you can fly about over your file system, height showed size, color showed last access. You could spotlight one of them, I think, and see more detail about it. It was a very cool program, but seemed like it was mostly a play thing. If you wanted to get anything done you'd use the command line. :)
Call me lazy but how many of you have been there before? I think X is way better simply because it's built in a c/s way. And can use a network pretty transparently.
Yes, it would be nice if you could administer an NT box via telnet, but that's not feasible (I know, you can get telnetd for NT, they don't work well). And yes, I know you can get VNC, PC Anywhere, etc, and it works pretty well. But it's not multi-user, and it's not the same as X!
I like X, and with a product like Accelerated X mouse response and color reproduction are every bit as good as in Win and Mac stuff.
I like the diversity of X. I don't believe that there should be only one Window Manager. I'm glad there are lots of them - KDE, GNOME, FVWM, etc, etc. One group serves one type of user very well, the other another. The linux community has become way to concerned with beating Windows. Believe it or not, there is a place for both. The last 5 years of Linux prove that. It doesn't have to be David vs. Goliath, and I would hate to see X's flexability suffer in an effort to become easier for the masses.
Jordy nearly hit the nail on the head. To elaborate, I see two main issues:
1) Performance due to missing and wasted functionality. The "scroll" problem is because unlike Windows & Mac, X does not support a nice scrolling functions like "copy block up and only redraw the bottom line" like Windows does. And thus your hardware accelerated equivalent goes unused. X doesn't have the complex "update/validation regions" This shows it is missing key functions. It's just dated.
2) No single master wrapper exists, so there is no uniform interface. Windows + Mac enjoy tyranny, and thus conformity. So all apps look the same, act the same, and have the same look and feel.
The solution, if I may so boldly say, is to learn that competition is good, but cooperation is better. Compete for a new graphical protocol, compete for a new wrapper, then agree to use the winner. Doesn't KDE/Gnome/whatever promise this?
It has been done by at least 3 teams. Check out ftp://ftp.x.org/contrib/audio/. All we need is a singular standard.
This might not be on topic but I saw a few other posts on it, so..
I don't think X has a really good, usable window manager yet. I've tried all the big ones and none of them are a well balenced choice.
There's GNOME/Enlightenment- GNOME's really buggy. Some of the apps work like they're suppose to, some don't. Enlightenment is kind of slow, bloated feeling and together use a whole lot of memory. And sorry, no I don't need midevil decorations on the edges of my windows. I do like the 'feel' of GNOME though.
KDE- Nice features, some cool apps but it's way slow and uses way too much memory. It feels a little too much like windows to me.
Both of these have reset on me for no reason back to the default desktop and all my settings were gone. They feel kind of unpredictable.
WindowMaker- Quick, feels light and stable. Just not that flexable. For instance, you can't maximize a window to full screen and then back to a small window. It just doesn't have the features of GNOME or KDE.
I hate to say it, but I fired up win95 the other day and was suprized at how easy to use the GUI was. After being on Linux for a while using windows for every day things was easier. Don't get me wrong, I'm not saying windows is better but it's UI is smoother and more predictable.
X needs a WM with the lightness and stability of WindowMaker, the feel of GNOME and the features of KDE.
Just my opinion, what does everyone else think?
"We are desparate
Get used to it
We are desparate
Get used to it"
-- X
(The window system or the rock
band? You decide.)
X should be run *on top of* a window manager program, protocol, whatever you want to call it.
Instead we have window managers forced to run under X.
As a 2D raster graphics library X is pretty good, certainly not perfect but workable. But not everybody wants to run 2D raster: there is 3D like OpenGL, 2D floating point like Display PostScript, even direct frame buffer access for live video.
The job of a window manager *should* be to divide up the frame buffer and stop programs from clobbering each other, nothing more. X programs would draw using X calls, OpenGL using GL, etc. But because the window manager is an X program, every other kind of graphic program is forced into using the X model of how the display works. Hence all the GLX extensions, XIE extensions, Display PostScript extensions...all of which are hacks to X to make it work right for these other kinds of graphics.
Hugh
Fonts under X were painful to use even by the standards of 1987 when X was introduced, and are just pathetic today.
... all of which leads to those wonderful font names like
0 -iso8859-1"
With a Mac/Windows/BeOS graphics library, you as an application programmer just write code something like "Give me a Helvetica 10 point font in italic style". With X, you have to know the character set encoding, the foundry, the display resolution, the weight,
"-adobe-courier-bold-o-normal--12-120-75-75-m-7
Ack! Even worse, this notation *has* to be used in X resource files and other preferences.
Now, there are people like page layout specialists who actually care whether the font comes from Adobe or Bitstream. But what they want is to be able to say "Switch from the Adobe font folder to Bitstream and redisplay", not the anal level of detail that X requires.
Worse still, X is still stuck with these awful bitmap formats, several years after Mac and Windows switched to outline. (BeOS was outline from the start.) I'm not sure exactly why, but the complexity of an X font specification compared to anyone else (the "m" in field 11 *might* be important to the user) no doubt contributes.