Slashdot Mirror


Gosling: If I Designed a Window System Today...

An anonymous reader writes "In his blog entry for the 10th August, James Gosling (finally) publishes a short paper he wrote in 2002 entitled 'Window System Design: If I had to do it over again in 2002'. His design is to make the window system do the absolute minimum and move all the work into the client."

431 comments

  1. If I were to design a window system today by shfted! · · Score: 5, Funny

    I'd make it opaque to keep my arch nemisis, the Evil Yellow Face from entering my underground command center... though my mom alredy complains the basement is too dark.

    --
    He who laughs last is stuck in a time dilation bubble.
    1. Re:If I were to design a window system today by thegoogler · · Score: 1

      Why not just spray paint the windows black and save yourself some time.

    2. Re:If I were to design a window system today by Short+Circuit · · Score: 1

      Not gonna tell your arch nemesis about fresh fruit, huh?

      Give him some. The yellow might go away...

    3. Re:If I were to design a window system today by shfted! · · Score: 1

      No, he's not jaundice... he passed out and someone doodle on him with a felt marker.

      --
      He who laughs last is stuck in a time dilation bubble.
    4. Re:If I were to design a window system today by superpulpsicle · · Score: 0

      Everyone be quiet. Don't give M$ any ideas. They steal every idea possible. Obviously the only thing they have problem stealing is how to implement security, since no one's going to share that one.

    5. Re:If I were to design a window system today by Pfhor · · Score: 2, Informative

      Aluminum Foil on your window.

      Will keep it nice and pitch black. Trick I learned from a friend who lived in Arizona.

    6. Re:If I were to design a window system today by UserGoogol · · Score: 3, Informative

      Uh, I think shfted is talking about that astronomical body which some call the Daystar, although the scientific name is Sol. "Evil Yellow Face" is probably taken from the works of J.R.R. Tolkien, where there is a character named Smeagol who enters a cave to hide himself from the evil glare of the "Yellow Face."

      --
      "Never attribute to malice that which can be adequately explained by stupidity." -- Hanlon's Razor
    7. Re:If I were to design a window system today by Short+Circuit · · Score: 1

      Hmm...that'd take some bowl of fruit...

    8. Re:If I were to design a window system today by sporktoast · · Score: 4, Funny

      For a minute there, I thought you were talking about a different Evil Yellow Face.

      --
      In a related story, the IRS has recently ruled that the cost of Windows upgrades can NOT be deducted as a gambling loss.
    9. Re:If I were to design a window system today by shfted! · · Score: 1

      Ugh!! *shudders* That Evil Yellow Face is definitely far more Evil!

      --
      He who laughs last is stuck in a time dilation bubble.
    10. Re:If I were to design a window system today by FlutterVertigo(gmail · · Score: 3, Informative

      Actually, Microsoft Bob was a successful product. The reason most people cite is Bob is the ancestor for Clippy et. al. There's a better reason - for one person in particular -- the Product Manager for Microsoft Bob: Melinda (nee' French) Gates.


      ________________________
      My TrunkMonkey can beat up your TrunkMonkey

    11. Re:If I were to design a window system today by geminidomino · · Score: 0, Offtopic

      Ahhh, I thought he meant Evil Otto

    12. Re:If I were to design a window system today by shfted! · · Score: 0, Offtopic

      Who the fdisk modded that offtopic? I thought it was a highly relevant reply to my comment ;)

      --
      He who laughs last is stuck in a time dilation bubble.
    13. Re:If I were to design a window system today by shfted! · · Score: 0, Offtopic

      Actually, he's right :)

      --
      He who laughs last is stuck in a time dilation bubble.
    14. Re:If I were to design a window system today by linzeal · · Score: 1

      As a teenage goth living in Arizona I can attest to the Al Foil trick. It is dangerous though at certain times of the day if you live on busy streets with cars and your windows point towards them.

    15. Re:If I were to design a window system today by Gordonjcp · · Score: 1

      Put something non-reflective up against the window, then the tinfoil. A bit of white scrim or something will break up the glare from the shiny tinfoil, but won't really hurt its effectiveness.

    16. Re:If I were to design a window system today by sparcnut · · Score: 1
      Who the fdisk modded that offtopic?
      Is it just me, or are you using the wrong disk tool? Try "fsck" instead.
      --
      perl -e 'print $i=pack(c5, (41*2), sqrt(7056), (unpack(c,H)-2), oct(115), 10);'
    17. Re:If I were to design a window system today by Anonymous+Writer · · Score: 2, Funny

      It is dangerous though at certain times of the day if you live on busy streets with cars and your windows point towards them.

      Not to mention everyone will think your growing an indoor hydroponic crop or running a crack house.

    18. Re:If I were to design a window system today by Anonymous Coward · · Score: 0

      > As a teenage goth living in Arizona

      Oh! You sad, sad fucking loser!

    19. Re:If I were to design a window system today by linzeal · · Score: 1

      Yeab now I am a hippy living in Humboldt Ca. I don't know if that is better or worse.

    20. Re:If I were to design a window system today by shfted! · · Score: 1

      Sorry, I was sitting at an MS-DOS terminal. A rather frightening experience, I must add.

      --
      He who laughs last is stuck in a time dilation bubble.
    21. Re:If I were to design a window system today by Anonymous Coward · · Score: 0

      No.. A hippy would be unique and try to change the world instead of endulging and rolling into feelings of emotional 'pain' and believing their uniqueness lies in like.. their black and being a freaK.

      Grow up heh. Daddy really did luv you, just a bit too much ;)

    22. Re:If I were to design a window system today by Anonymous Coward · · Score: 0

      No, I think he's right. After all, fdisk can FUCK UP a drive far worse than fsck...

    23. Re:If I were to design a window system today by shfted! · · Score: 1

      Hardly. Fdisk just modifies the partition table, and it's nearly trivial to recover that information if you know the sizes of the paritions and their types. On the other hand, fsck will actually modify filesystems, and quite possibly severly corrupting them if the wrong parameters are given.

      --
      He who laughs last is stuck in a time dilation bubble.
  2. Good idea by penguinoid · · Score: 4, Insightful

    I think it is a good idea to separate the server and the client so each does its own stuff. This will increase modularity and compatibility quite a bit, IMCUO (in my completely uninformed opinion)

    --
    Don't waste your vote! Vote for whoever you want, unless you live in a swing state it won't matter anyways
    1. Re:Good idea by shfted! · · Score: 4, Insightful

      On the other hand, it would waste resources. By consolidating your RAM in the server, copies of the same program could reference the same pages in memory -- a very significant savings, if you have a smart OS and your users typically run the same applications. Plus, because user activity tends to be bursting (i.e. the CPU and hard-drive sit idle most of the time), money could be saved by equiping the clients with less capable hardware, and/or performance could be beefed up for those bursts by having a high speed/capacity server (imagine having several timse the processing power of your client machine at your disposal). Granted, this latter benefit is reduced when your users run long-running, intensive tasks.

      --
      He who laughs last is stuck in a time dilation bubble.
    2. Re:Good idea by alphan · · Score: 1, Interesting
      Unfortunately it has its own networking problems such as font rendering etc.

      On the other hand, windowing systems progress slowly and that's why linux forces are pushing through client side. They mature very fast, and can do many tricks but not all (see transparency).

      Still, I don't see the harm of a well designed, capable windowing system, which is at least easily extendable.

    3. Re:Good idea by TykeClone · · Score: 5, Funny
      Further, more money could be saved by making the clients with simple monochrome monitors (say green in color) with VT100 keyboards.

      Sounds like it's back to the future.

      --
      A fine is a tax you pay for doing wrong and a tax is a fine you pay for doing all right.
    4. Re:Good idea by Short+Circuit · · Score: 4, Insightful

      I was at AutoZone today. (Er, yesterday. It's after midnight.) I asked the sales clerk what their computer system was.

      He said, "It's an old piece of crap." (He works on a green dumb terminal)

      I asked him if it did the job well enough...

    5. Re:Good idea by timeOday · · Score: 4, Interesting
      I'm afraid I disagree with the idea of a minimalist windowing system - one that leaves most everything to user level libraries. This still leaves the door wide open for applications to implement various looks, various copy/paste mechanisms, and other things that annoy people.

      20 years ago it might have made sense to make this very modular since nobody knew how things would end up looking. Today, let's face it, windowing is "done." All the various libraries over X look and work very similarly, just different enough to clash. Windowing is mature, I say it's time for more integration.

      Modularity should be at the level of source code, not runtime components.

    6. Re:Good idea by shfted! · · Score: 3, Insightful

      True, but in that case, the users would notice a decline in their computing experience, versus a potential (and very real) increase by centralising resources. Take another example: When you reboot a stand alone client, very rarely is the program image for say, the word processor, already in ram. Thus, when the user starts the program, he or she has to wait for the program to be loaded into RAM. Compare this to a centralised system, where another user has likely used the word processor recently, and so the program is already loaded in RAM -- making the launch take a fraction of the time for the second user. This has everything to do with making the user experience better, not worse.

      --
      He who laughs last is stuck in a time dilation bubble.
    7. Re:Good idea by timeOday · · Score: 2, Informative
      I don't think a windowing system should be built around networking at all.

      In the common case, there is no client or server, just an app running on a PC. So don't build the assumption of networking into windowing.

      Look at X: it's built on a standardized network protocol. If you want you could implement a different Xlib, even one with a different API, so long as it used the X network protocol. But that extra degree of design freedom has been a complete waste of effort, code complexity, and CPU cycles. Instead of writing code to generate X protocol network messages, everybody uses XLib. In other words, people ignored the network protocol, and standardized on the Xlib API.

      So let's centralize around an API, and write different implementations of that API that speak X over a network, or VNC, or whatever - but the first and most important implementation will simply and efficiently draw on the local screen!

    8. Re:Good idea by ipfwadm · · Score: 5, Insightful
      It takes about 2 seconds for MS Word to come up on my laptop when running on batteries. When plugged in, that would presumably be a tad faster. Even if your central server can have it open in 0.1 seconds, I would bet that the network latency would make that 1.9 seconds all but go away, and 1.9 seconds isn't much of an inconvenience to me anyway. Sure, some apps take longer, but once I've started those up, they usually stay open for a long long time. Besides, we're still only talking about a few seconds of initialization time -- Visual Studio just took 4 seconds, Photoshop CS took 20. I waste more time blowing my nose.

      There's a reason nobody runs client-server. Desktop systems with fast processors are just too cheap.

    9. Re:Good idea by be-fan · · Score: 2, Insightful

      The problem is that in any client/server architecture, you're going to need *some* sort of protocol. How else would you do it? And you can't ditch client server, because:

      a) History shows that it's rarely the bottleneck (eg: fast GUIs like QNX and BeOS are client/server);
      b) There is no other good place to put it --- kernel space is too dangerous.

      So once you've defined the binary protocol between apps, it's a tiny step to make that network transparent while you're at it.

      --
      A deep unwavering belief is a sure sign you're missing something...
    10. Re:Good idea by be-fan · · Score: 3, Insightful

      Oh, btw. The X protocol will probably outlive Xlib. XCB aims to speak the X protocol, while fixing Xlibs shortcomings. So if we had standardized on Xlib, we couldn't have replaced it with XCB today.

      --
      A deep unwavering belief is a sure sign you're missing something...
    11. Re:Good idea by YouHaveSnail · · Score: 0, Offtopic

      The scientific view of religion is not atheism. The scientific view is agnosticism and simplicity.

      And it's expressed as "On what factual grounds do you base these far-reaching assertions?"

    12. Re:Good idea by maxpublic · · Score: 0, Redundant

      It takes about 2 seconds for MS Word to come up on my laptop when running on batteries

      And the fact that Office apps are mostly loaded into memory at boot, thus providing the illusion of speed when they're 'opened', hasn't been pointed out to you?

      Max

      --
      My god carries a hammer. Your god died nailed to a tree. Any questions?
    13. Re:Good idea by Jeremi · · Score: 5, Insightful
      m afraid I disagree with the idea of a minimalist windowing system - one that leaves most everything to user level libraries. This still leaves the door wide open for applications to implement various looks, various copy/paste mechanisms, and other things that annoy people.


      So you don't want a windowing system that is flexible, because people might want to take advantage of that flexibility?


      I think your reasoning is a misguided attempt to solve by technical means what is really a politicial/sociological problem. The proper solution is to have a strong set of UI guidelines and standard libraries that make it trivially easy to follow those standards, not to limit the capability of the system just because you don't trust people not to abuse it.

      --


      I don't care if it's 90,000 hectares. That lake was not my doing.
    14. Re:Good idea by nathanh · · Score: 1
      It takes about 2 seconds for MS Word to come up on my laptop when running on batteries. When plugged in, that would presumably be a tad faster.

      More precisely, it takes 2 seconds for the Word process that is already running in the background to render a new window. Word is preloaded on startup and it adds at least a minute to the boot time on my work PC.

    15. Re:Good idea by ipfwadm · · Score: 4, Insightful
      And the fact that Office apps are mostly loaded into memory at boot, thus providing the illusion of speed when they're 'opened', hasn't been pointed out to you?

      Your point? When I double-click on the Word icon, it takes two seconds for the window to come up. Why should I care if the app is pre-loaded or not? If it's pre-loaded on everyone's system, why should we time it as if it weren't?

      And you still conveniently neglected to address the fact that I mentioned other apps, and that even in today's high-speed world, a few seconds of waiting for your app to load really isn't a big deal. Like I said, I dedicate more time to excretory bodily functions every day than I do to waiting for my software to load.

    16. Re:Good idea by ipfwadm · · Score: 1

      A minute? What kind of PC do you have? My work PC barely takes a minute to completely load XP from the moment I hit the power button. And re: office pre-loading, I'm well aware of it; see my response to the other guy that already said the same thing you did.

    17. Re:Good idea by Anonymous Coward · · Score: 0

      What are you guys talking about? I have Office XP on my laptop and I've never seen anything like this. Are you sure you're not just making shit up?

    18. Re:Good idea by nathanh · · Score: 5, Insightful
      In the common case, there is no client or server, just an app running on a PC. So don't build the assumption of networking into windowing.

      OK. So let's run with that idea. We still have multiple clients and one set of hardware, so we need to arbitrate the access. We also need to have a common place where the clients can share information like window clip lists. Then there are issues like drag and drop, cut and paste, etc which also require inter-client communication. And how do you solve the issue of two clients seeing the mouse button being pressed, and both assuming that the click was for them?

      At one stage you realise you need to have a program, somewhere, that coordinates all of the clients. Assuming this won't be the kernel, it must be another userspace program. We call this program "the X server". And because we have all these clients in userspace, and the X server is also in userspace, they need to use some form of inter-process communication. XFree86 and X.org already use UNIX sockets; one of the fastest IPC methods available. The only thing faster would be shared memory but that's been tried before and it's more hassle than it's worth.

      Now admittedly there are some situations where the clients simply need to talk directly to the hardware. For example the client needs to upload a 3D texture or render an MPEG-2 frame. For those situations it makes no sense to send that data to the X server first. So for those situations we do have solutions that bypass the X server and go directly to the hardware. These include the DRI extension, the MIT-SHM extension and the DGA extension.

    19. Re:Good idea by nathanh · · Score: 1

      Sigh, replying to my own posts, first sign of madness. MIT-SHM extension of course does not go directly to the hardware. I reworded the second last sentence just before submitting and didn't recheck that the whole paragraph read properly.

    20. Re:Good idea by mpaque · · Score: 5, Interesting

      Curiously, the Mac OS X window system implements almost the exact design Jim Gosling describes in his paper.

      All drawing work is done on the client side, and the window server has nothing to do with fonts, cut/paste support or much other higher level work. The window server simply assembles the drawing buffers to the displays (via hardware or software) and routes events, using hints of the foreground application and the visible window area to manage the task.

      A consistent look and feel is derived by providing a consistent set of high level toolkits, residing on a set of lower level drawing frameworks.

      Shared libraries make sure the needed code is readily available and resident in memory. Font are cached and vended as shared memory resources using Mach's virtual memory semantics. Drawing buffers also leverage Mach VM semantics.

    21. Re:Good idea by Anonymous Coward · · Score: 1, Interesting

      uhm, I think that's what he said......

      but generally yes you have to be a dick when you are a UI designer. you have to say "No, you don't want that" almost all the time. it leads to a better design. This is why KDE and Gnome usability will never be as good as the mac or even windows. Unless they become complete assholes and remove features by the pound, tell users who come up with stupid feature ideas to go take a hike, and block any non-KDE or gnome app from even being installed.

      "You don't want flexibility."

    22. Re:Good idea by nathanh · · Score: 1
      A minute? What kind of PC do you have? My work PC barely takes a minute to completely load XP from the moment I hit the power button.

      The work PCs all have 256MB RAM. Office pushed it into swap la-la land. It takes over 6 minutes from poweron until the thing stops trashing. Even though the desktop appears after a mere 2 minutes you can't do anything. Clicking the Word icon on the startbar just puts the cursor into busy mode.

    23. Re:Good idea by timeOday · · Score: 4, Interesting
      I would design the system soundly, and make it flexible underneath, but not push that as the main feature, or give people cause to reimplement right off the bat.

      Here's what happened with X11 as I see it. Fundamentally, it was a network protocol spec and client/server model. Then they built Xlib to implement the network protocol. Then, they ginned up the Athena widget set, sort of a quickie prototype on how one might actually start to build a UI on X. Having done that, they called it a day, leaving it for others to implement the look and feel, and basic functionality like cut & paste. As a result, for years most developers just used the (crappy) Athena widgets as-is, while some others started off in several directions making something worth using (e.g. Motif). Finally a decade or two later we have some decent Windowing toolkits built on X, and a look-and-feel morass.

      X was overly focused on the juicy technical aspects of the day (like networking) and stopped short of providing an application-ready windowing system.

      Instead, focus on delivering 1) a rock-solid, high quality API and 2) a great-looking, high performance implementation for the common case - an app running locally on a PC.

      In other words, pick good API (e.g. GTK) and implement it over a small, relatively primitive rendering library to access hardware (e.g. OpenGL).

      If people want to come along later and re-implement the API to insert a network transport layer, fine. They can write a shared object to do that, and slip it in place of the local version. Its backend might be VNC, X, whatever.

      If they want to re-implement it to look different, or have different functionality, fine. But there probably won't be a lot of motivation to do this (except maybe to default to a different skin, or make this year's buttons round instead of square, so people feel better about paying for an OS upgrade). And if you replace the default shared GUI library with something else, *all* apps will link against it and hence look the same. (Unless you want to get fancy for some reason and run them with different link paths or something).

    24. Re:Good idea by nathanh · · Score: 5, Interesting
      Your point? When I double-click on the Word icon, it takes two seconds for the window to come up. Why should I care if the app is pre-loaded or not? If it's pre-loaded on everyone's system, why should we time it as if it weren't?

      The problem is that there isn't enough RAM to preload all the applications. My PC during the day will run (and this is a typical work day) Word, Excel, Outlook, Visio, Project, Firefox, Internet Explorer, and an assortment of programs that don't concern me like virus scanners.

      If all of these applications tried to preload themselves on startup then your swap would grind itself into dust and boottime would be in excess of 30 minutes.

      It's false reasoning to say that Word takes only 2 seconds. It takes 2 seconds plus whatever time it added to the boot sequence. And if the first application you run isn't Word then there is a good chance that the preloaded Word will be swapped to disk anyway, making the next instance of Word take significantly longer than 2 seconds.

      Take note that Mozilla also uses the preload trick. My work machine has consumed all 256MB of RAM and 450MB of swap after a fresh reboot and a login. That's 450MB of intensive swap activity that slowed down my boot sequence. If I just want to check my appointments in Outlook then why am I forced to wait for Word and Mozilla to fight over the swap? It's ludicrous.

    25. Re:Good idea by Vitus+Wagner · · Score: 1


      So you don't want a windowing system that is flexible, because people might want to take advantage of that flexibility?


      It depends on what people take advantage of flexibility - users or application authors.

    26. Re:Good idea by ipfwadm · · Score: 2, Insightful

      I wasn't advocating preloading all applications. And I really didn't intend for this to degrade into a discussion of pre-loading apps. Maybe I should have thought of that before mentioning Word. Anyways, the intention was more to point out the fact that CPUs are so fast that application load time is all but negligible, and certainly not so lengthy as to make me wish I could farm it all out to a central server.

    27. Re:Good idea by Anonymous Coward · · Score: 0

      You have to tell mozilla to do that though, and can happily turn it off later.

    28. Re:Good idea by nathanh · · Score: 4, Insightful
      Anyways, the intention was more to point out the fact that CPUs are so fast that application load time is all but negligible, and certainly not so lengthy as to make me wish I could farm it all out to a central server.

      That works fine for word processors. But there are several situations where client-server GUI is the preferred solution. For example, VPN clients are often implemented as Citrix over IPSec. In scientific and academic circles it's common for the applications to run on headless mainframes and/or supercomputers. In high security environments it's sometimes impossible to run a client locally; you must run it remotely and display it locally.

      And when you start to consider other issues - how much does it cost to patch and maintain 3000 Windows desktops? - it quickly becomes obvious that per-user desktops aren't the be-all and end-all.

      Load times, sure, I'll agree with you that's not a big deal.

    29. Re:Good idea by Anonymous Coward · · Score: 0

      "The scientific view of religion is not atheism. The scientific view is agnosticism and simplicity."

      No, it isn't. You clearly don't understand the words.

      Agnosticism is from the root "gnosis" meaning "investigation, knowledge", and the prefix "a-", meaning "without". It is the belief we cannot investigate, or gain knowledge about, the existence of "spiritual" phenomena. It is inherently unscientific, since it declares an entire category of claimed human experiences are completely beyond the scope of scientific inquiry.

      The truly scientific have only one of two positions about spiritual phenomena. They either have what they believe is convincing evidence of its existence, or they don't. In the first case, they belive it does exist, and are accordingly not agnostics but believers. In the second, they have no evidence, and assume that therefore there is no such thing, while being willing to revise in the face of new evidence if it is discovered.

      The latter are atheists. Admittedly, the term also includes those who have an unscientific and irrationally strong nonbelief in God; thus the coining of the terms "weak atheism" for the scientific viewpoint and "strong atheism" for other. But this does not mean both are not atheists.

      Similarly, while a believing Jew who has never seen evidence of God and a believing Jew who has seen convincing, solid evidence of God are unscientific and scientific respectively, they are both still theists.

    30. Re:Good idea by ipfwadm · · Score: 1

      Go to Start -> All Programs -> Startup. There should be "Microsoft Office". It basically loads Office when the machine starts, so that when you run Word you're only opening a new Word window, rather than loading the entire app.

    31. Re:Good idea by diamondsw · · Score: 1

      The proper solution is to have a strong set of UI guidelines and standard libraries that make it trivially easy to follow those standards, not to limit the capability of the system just because you don't trust people not to abuse it.

      Hey, this is Linux we're talking about.

      --
      I don't know what kind of crack I was on, but I suspect it was decaf.
    32. Re:Good idea by Inthewire · · Score: 0

      Well, shit.
      I mean, special case and all, but I reboot about every other month, and my work machine has 2 gig of RAM - your issues and mine are not the same.

      --


      Writers imply. Readers infer.
    33. Re:Good idea by maxpublic · · Score: 4, Insightful

      Why should I care if the app is pre-loaded or not? If it's pre-loaded on everyone's system, why should we time it as if it weren't?

      It isn't, and therefore your point is irrelevent. Just because it happens to work for you that way doesn't mean it does, or needs to, work for everyone that way.

      I'd prefer not to have apps load on boot unless I tell them to load on boot, thank you very much. I don't need either my RAM or swap being soaked by an app I haven't given explicit permission to load.

      But then, that may be why I don't live in a Windows world.

      Max

      --
      My god carries a hammer. Your god died nailed to a tree. Any questions?
    34. Re:Good idea by Yoda's+Mum · · Score: 1, Informative

      You're wrong, at least in your second point.

      Kernel space is only dangerous in the case of badly written graphics drivers. Windows NT has had kernel-level graphics hardware since its inception, and its only been a cause of problems with extremely buggy graphics drivers. And guess what - buggy graphics drivers are gonna cause problems whether they're in the kernel or not. Might as well put them there for the speed advantages.

      Network transparency's of only marginal value, particularly considering the cost (non-kernel graphics). Anyway, there's plenty of other methods of doing network logins without needing it built into the core graphics API.

    35. Re:Good idea by Unregistered · · Score: 1

      won't happen. However, the best method is the current one, imo. If you want integrated, you use KDE/GNOME if not, use basic qt/gtk.

    36. Re:Good idea by shirai · · Score: 4, Insightful

      So you don't want a windowing system that is flexible, because people might want to take advantage of that flexibility?

      I'm afraid you have it ass backwards. An integrated system allows you the *flexibility* to do whatever you want, including a uniform interface.

      You can still do whatever you want with the interface ultimately but you would be encouraged to do it the consistent way. The encouragement would come from the fact that you wouldn't have to build standard features from scratch every time.

      For example, Windows never stopped Photoshop from implementing their proprietary windowing subsystem for their palettes and such. But I, for one, am glad that they still use standard drop down menus, minimize/maximize buttons, etc.

      --
      Sunny

      Be my Friend

    37. Re:Good idea by Hacksaw · · Score: 3, Interesting
      Today, let's face it, windowing is "done."

      This like saying that once cars could go faster than it was safe to, no more innovation was needed.

      What would happen if such a windowing system appeared would be this: the GTK+ folks, the QT folks, and some Xlib folks would port their libraries to the new system, add in a few missing things, and we'd have the same thing we have now, but faster, and easier to maintain.

      It would also move importants bits out of the server, like the paste buffers and so on, into plain user space, where they could more easily be standardized. Free of the legacy swamp of X, clean designs could spring forth, and innovation could happen.


      For instance, I'd love for there to be an easy to use clipboard stack, that could hold as many clips as there was diskspace, and an interface to help maintain it. Click the clip you want, second button it into place. This would make things like document editing easier, and make using the clipboard less of an annoyance.

      --

      All the technology in the world won't hide your lack of vision, talent, or understanding.

    38. Re:Good idea by Kenard · · Score: 1

      Amen

      --
      (appended to the end of comments you post)
    39. Re:Good idea by nathanh · · Score: 4, Insightful
      Kernel space is only dangerous in the case of badly written graphics drivers. Windows NT has had kernel-level graphics hardware since its inception, and its only been a cause of problems with extremely buggy graphics drivers. And guess what - buggy graphics drivers are gonna cause problems whether they're in the kernel or not. Might as well put them there for the speed advantages.

      I disagree. A properly separated model like the DRI/DRM has high speed userspace drivers and doesn't cause problems when there is a bug with the driver. The model requires a tiny kernel module called the DRM. It manages the hardware resources (eg, DMA) and queues the clients so they don't stomp on each other. The majority of the driver is written in userspace and links directly into the client application (via libGL).

      Putting an entire video driver in the kernel isn't sensible. There is too much complexity and there is no actual benefit. It's actually faster with modern cards to link the driver directly to the client. The reason being that the client can fill the command buffer without context switches. If the entire video driver was in the kernel you would need two context switches per queue flush.

      Network transparency's of only marginal value, particularly considering the cost (non-kernel graphics). Anyway, there's plenty of other methods of doing network logins without needing it built into the core graphics API.

      The only cases when the network transparency causes a measurable impact is when a lot of data is being pushed from the client to the hardware. For those situations we have direct rendering in the client. For all other situations, the costs of network transparency are lost in the noise. I wouldn't be too concerned about it.

    40. Re:Good idea by Anonymous Coward · · Score: 1, Insightful

      It depends on what people take advantage of flexibility - users or application authors.

      Application authors are users. Drop the "I'm better than everyone else because I can't code applications" attitude. Or the "I'm inferior because I can code applications" attitude. Both are pathetic.

    41. Re:Good idea by BenjyD · · Score: 1

      For instance, I'd love for there to be an easy to use clipboard stack, that could hold as many clips as there was diskspace, and an interface to help maintain it.


      Isn't that exactly what Klipper does?

    42. Re:Good idea by Anonymous Coward · · Score: 0

      I removed that shortcut immediately after install and Word still starts up very fast...

    43. Re:Good idea by IamTheRealMike · · Score: 4, Informative
      I thought this urban myth had been dispelled years ago. If they're really preloaded at boot smart guy, how comes Word still starts in under 3 seconds when running on Windows emulation on Linux? How comes IE still starts faster than Firefox again, on Linux?

      No dude. They start fast because Microsoft really, really know how to optimize their software to start fast, and because that's always been a corporate priority for them. Research has shown that given two roughly equivalent apps, most people will decide on the basis of which one starts faster.

      That doesn't mean they're using dirty tricks. Look into working set optimizers some time.

    44. Re:Good idea by Anonymous Coward · · Score: 1

      But the points on which they clash are sometimes key issues.

      Personally, I can get used to different kinds of conventions, and I usually don't need to go far from the defaults of most X11 desktop environments.

      However, I fear that integration would lead to something more similar to MacOS X (which is ok, with annoyances) or MSWin (which is worse, but bearable), both of which require third-party software that perform dirty tricks to achieve some of the things I'm used to under all X11 window managers (virtual desktops, alt+left-drag anywhere in a window to move), because of their lack of modularity.

      Also note that MSWin programs are probably the worst offenders in faking standardization. While most programs look the same, some of them aren't actually really using the same libraries and widgets, which is apparent whenever the OS look changes (fairly rare) or if you modify your settings from the defaults.

    45. Re:Good idea by afd8856 · · Score: 1

      What network latency are you dreaming about? Let's talk about a network of 100Mb. Let me tell you something: a 100Mb network, with 10 dumb clients on it is extremly fast. Full color full screen images appear instantly, you cannot even guess that the display is through the network. And we're talking about the X server, that people like you call it slow and old and needing replacement and let's just throw away network transparency, who needs it anyway, right?.

      > There's a reason nobody runs client-server. Desktop systems with fast processors are just too cheap.

      From my experience, 80% of regular offices can be refited with dumb clients and the people working there won't miss a thing. And when you put one of your desktop systems in the place of the server and have 10 P2s at 200Mhz in place for clients, I don't know how cheap you can get. Check your facts, there's no need for mainframes anymore to have client-server arhitectures.

      --
      I'll do the stupid thing first and then you shy people follow...
    46. Re:Good idea by moonbender · · Score: 2, Informative

      And the fact that Office apps are mostly loaded into memory at boot, thus providing the illusion of speed when they're 'opened', hasn't been pointed out to you?

      Got some more information on that? I searched for it, and I found:

      Microsoft Office Startup - Microsoft Office Startup preloads some .DLL files to help speed the launch of Microsoft Office. Also places icon in System Tray.

      Apart from the fact that I've never seen this - but then, I'm using Office 2000 - preloading some DLL files is still far from being "mostly loaded at boot". Note that my winword also takes 2 seconds (I measured it) the first time I start it. Subsequent starts are instant. So, yeah, 2 seconds are not really an illusion of speed, they just are that fast. I guess.

      --
      Switch back to Slashdot's D1 system.
    47. Re:Good idea by mqx · · Score: 1

      "There's a reason nobody runs client-server. Desktop systems with fast processors are just too cheap."

      You are confusing "big" and "small" client/server: there's still plenty of case for client/server in a single computer with multi-processor, especially by separation of concerns between the CPU and GPU with offloading. Don't just think that client/server principles apply to the inter-computer, it's also intra-computer.

    48. Re:Good idea by Anonymous Coward · · Score: 0

      Pay attention, ye maggots -- parent posting is from the horse's mouth (proverbially speaking, of course :-)

    49. Re:Good idea by julesh · · Score: 1

      So you don't want a windowing system that is flexible, because people might want to take advantage of that flexibility?

      Actually, no. What I want, which is moving in the opposite direction to the one Gosling suggests, is a windowing system that's flexible enough that I don't have to put up with whatever UI widgets the applications I run decide is best.

      The system would be composed of the following components:

      * A basic windowing system that allows a single application window to be created using widgets provided by a variety of (probably server-side) shared libraries.
      * A set of API specifications defining how applications can access the features of standard widget types (e.g. buttons, menus, list boxes, edit boxes, etc.)
      * A basic implementation of each standard widget type
      * An application which allows me to define, for all applications running on the server, precisely which widget implementation should be used for each widget type.

      I'm aware that this is how some of the 'skinnable' toolkits available work (although some of them only allow you to vary physical appearance of the controls, and not the way they behave) -- I just want to see a standardised interface that allows it to be done server side (so that I don't have to replicate the configuration on all the client systems I use) and for all applications that don't specifically override my choices.

    50. Re:Good idea by Anonymous Coward · · Score: 0

      if word is preloaded then why does my Windows boots just as fast as it did before installing Office?

    51. Re:Good idea by Hacksaw · · Score: 1

      To be honest, I don't know. I'd never heard of it. I just started it up, and it's running, but there's no interface showing, so I suspect the answer is "no".

      --

      All the technology in the world won't hide your lack of vision, talent, or understanding.

    52. Re:Good idea by BenjyD · · Score: 1

      You need a system tray running - it looks like this.

    53. Re:Good idea by ivoras · · Score: 1
      Unfortunately, some programs of today (e.g. Mozilla Firefox/Thunderbird) rely heavily on executing "scripted" code.

      What I mean is: In the olden days, resources such as dialogs and code that manages it were included ("embeded?") in the executable file (remember win32 resources?). So true, the OS loader could easily map single resource page and code between multiple applications. Now, applications such as Mozilla keep the dialogs (and even some code behind it) in XML files, and interpret it on as-needed basis.

      Unfurtunately, that means no code sharing between executables - everything is malloc()-ed and managed on the fly. Java has exactly the same problem - multiple Java applications all load, again and again, the same class tree. (IIRC, Java 1.5 will try to address this).

      --
      -- Sig down
    54. Re:Good idea by Hacksaw · · Score: 1

      Well, this is getting off topic, but this is one thing that irritates me. Klipper is clearly a daemon. I might have guessed that if it had been named klipperd. Even better if I could find a man page on it.

      Of course, I don't know what it's like now, my system is pretty old. But it strikes me that people have gone to a great deal of trouble to make this software, and then didn't quite finish the job.

      I'd like to think that a simple to maintain system might free up peoples heads to do the whole job. But I'm leading quickly to one of my rants about the FOSS world, so maybe I'll just stop now.

      Perhaps I'll sum it up:

      It's unreasonable to expect users to search as many as five different places to find the documentation for an executable installed on their own system.

      --

      All the technology in the world won't hide your lack of vision, talent, or understanding.

    55. Re:Good idea by mattyrobinson69 · · Score: 1

      click start > run > type msconfig > press enter > goto the last tab > find where it says something along the lines of 'preload of ms office'

    56. Re:Good idea by Blurty+Placebo · · Score: 1

      How about this? Why don't we kill the GUI altogether? Mr. Raskin puts it more eloquently than I could but to paraphrase. The WIMP interface is the marriage of 2 bad ideas, slow-to-use-menus and hard-to-remember keyboard shortcuts.

    57. Re:Good idea by canavan · · Score: 1

      The only thing faster would be shared memory but that's been tried before and it's more hassle than it's worth.

      Xsgi uses shared memory as the default transport for local clients, and if you ask me, it's worth every single minute they spent implementing it. X11 suffers quite badly from round trip delays, and the much faster shared memory transport really helps. If you just look how long a complex Xaw or Motif based application (with lots and lots of windows, fonts, gcs etc..) takes to start even on a fast Linux/XFree box as compared to a slow old SGI, you'll see that the SGI will be faster even if the XFree box were an order of magnitude faster. This has nothing to do with the speed of the graphics hardware, which may have been good for its time for the old SGIs, but doesn't compare too well to modern PCs. I haven't compared Linux or BSD and XFree on an SGI to IRIX on the same box. Has anyone here done this?

    58. Re:Good idea by pohl · · Score: 3, Interesting

      Hmmm...I recognize you from the old comp.sys.next.* usenet hierarchy. Didn't you disappear after the acquisition to go work on creating Quartz? If so, it must be fun to be a few steps ahead of Gosling. Oh, and thank you for the working implementation that I'm using right now.

      --

      The "cue the foo posts in 3, 2, 1..." posts will commence with no subsequent foo posts in 3, 2, 1...

    59. Re:Good idea by mattyrobinson69 · · Score: 1

      would it not be possible to write a plugin for QT to use GTK themes and a plugin for GTK to use QT's themes (i know qt and gtk cant be hotswapped because they are both more than just widgets). This way, everything looks the same.

    60. Re:Good idea by ryanmfw · · Score: 1

      I'm sorry, but with only your word to back you up, I don't really believe you. If you found some references (I'd google it, but I'm not the one claiming it's a myth) that weren't funded by M$, I'd listen. :-)

      --
      Hurricane Ivan: A 17th century prison collapsed. All of the inmates escaped.
    61. Re:Good idea by swillden · · Score: 1

      My work machine has consumed all 256MB of RAM and 450MB of swap after a fresh reboot and a login.

      If your machine has 700MB of RAM allocated after a fresh reboot, you're preloading something besides Word and Mozilla. A *lot* of somethings besides Word and Mozilla. I'll grant that it's been a few years since I used Windows, but I can't imagine that XP has gotten to be that much of a hog.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    62. Re:Good idea by mrm677 · · Score: 1

      It's false reasoning to say that Word takes only 2 seconds. It takes 2 seconds plus whatever time it added to the boot sequence. And if the first application you run isn't Word then there is a good chance that the preloaded Word will be swapped to disk anyway, making the next instance of Word take significantly longer than 2 seconds.

      Word running on CrossOver Wine, on Linux, loads quicker than OpenOffice (but slightly longer than 2s). Is Linux loading part of MS Office when it boots too?

    63. Re:Good idea by tacocat · · Score: 1

      You forget that even the most basic client today has more than enough horse power to run the graphics rendering and the RAM to do the same. It's actually difficult to find a cheap computer that can't manage the 64-128MB of RAM and the video necessary to support client side graphics as mentioned in this article

      The only possible exception would be the high definition 3D graphics of gaming, but then who would want to attempt graphics display over a network in that environment anyways!

    64. Re:Good idea by Anonymous Coward · · Score: 0

      I do see that shortcut, but when I pull up the task manager I don't see anything that looks like an office program in the processes list. If it really is loading everything it's doing a good job of hiding it.

    65. Re:Good idea by Bloater · · Score: 1

      Are you proposing that the windowing system should not provide straightforward access to plain drawable windows unless it also provides an easier to use interface for a widget set? Does that mean that the windowing part of the project *must* *not* be released for testing before the widget part? If GTK+ included an X server, would that satisfy your requirements so that QT developers "specifically override [your] choices". You know that the GTK+ library and the QT library could be made to draw on any window system that provides OpenGL/GLUT or a canvas from which events can be obtained, so the mere existence of GTK+ and QT makes it trivial to produce applications that conflict with any "standard" widget look and feel for a window system.

    66. Re:Good idea by Anonymous Coward · · Score: 0

      You maybe right that Word is not preloaded, but your argument is incomplete.

      - Are you running Windows on Linux or using WINE? If you are running Windows on Linux, then the apps could have been preloaded when you run Windows. If you are using WINE, can you show that WINE contains only code necessary to run basic Windows apps? I.e. it doesn't contain specific code used by MS apps?

      - It's known that Microsoft likes using illusion of speed. You can start using softwares while other parts of softwares are being loaded into the RAM. Can you show the load times of applications after all have been loaded?

      - In the old days of Mac OS, MS liked to litter Extension folders with tons of crap so that they were loaded at boot times (which causes extension conflict problem). You couldn't avoid this even just to run Word. Why would a word processor need so many extensions to run? How can you be certain that Microsoft doesn't use tricks such as undocumented APIs in Windows?

    67. Re:Good idea by Anonymous Coward · · Score: 0

      There's a reason nobody runs client-server. Desktop systems with fast processors are just too cheap.

      Companies are always looking to save money, and the difference in initial and continual cost (eg, electricity, air-conditioning) for less powerful systems can be huge when you multiply it across the entire employee base.

      So no, I think that isn't the reason. I think the reason is that most client-server systems suck. Or perhaps merely because most client-server systems aren't Windows.

    68. Re:Good idea by Anonymous Coward · · Score: 0

      Assuming this won't be the kernel, it must be another userspace program.

      That's kind of a false dilemma actually. Drivers aren't part of the kernel, but they're often in kernel space. But that doesn't really change much, even if the windowing system *is* part of the kernel, you still need to coordinate client communication.

    69. Re:Good idea by DonGar · · Score: 3, Informative

      No, they really preload. It's a background process started at boot. Some versions of office display in the system tray and some versions don't. You can kill the process or prevent it from loading, and Office takes longer to load. But you also boot faster and have more free RAM when office isn't running.

      However, they aren't alone in this at all. Apple Quicktime, Mozilla, Real, and dozens of other packages all try and do the same thing. Fortunatly, the trend has been away from trying to hide this from the user.

      --
      plus-good, double-plus-good
    70. Re:Good idea by The+Ego · · Score: 3, Informative

      Karma whoring: to understand who the poster is, please check this previous post
      of mine.

      And for a one-post description of Quartz and links to Usenet posts from "mpaque", you can see this post.

      Mike's post have always impressed me, hence the apparent fanboyism of those post. And the more experience I gain in this industry, the more I respect this king of professionalism in non-official communications.

    71. Re:Good idea by Sivaram_Velauthapill · · Score: 1

      I think scripted code is the way to go. I personally think the ideal application is similar to a computer game. What I mean by that is, you'll have the core application written well and optimized (eg. core engine of a game) but you will have all the "extra stuff" done using scripts (eg. AI in a game). This is sort of how Mozilla is and I think it'll be the future.

      I think this is best because you can minimize bugs, optimize for speed, and so on, if you keep the core small. The scripts will easily allow anyone to modify the appearance, theme, or add features. Allow some scripting language will also allow more people to create plug-ins or add features.

      We are still in the early stages of this paradigm so things aren't THAT great. Mozilla seems clunky; scripting seems lame; performance isn't better; etc. However, things will improve pretty rapidly. Since hardware (particularly CPU and memory) is improving quickly, scripts will not impact performance in the future (as long as the core stuff is solid).

      As far as code sharing is concerned, things may be repeated a lot but if we have the cpu power (we do), and if we have the RAM (we do), and if we have the permanent storage using hard drives/memory stick/whatever (we do), none of this matters. Modern computers' CPUs are underutilized, video cards are not used much, and hard drive space isn't a problem either (hard drives are at 250MB/$1--haven't checked prices in a while though). The only problem I see is RAM but we should see some improvements on that end too.

      --
      Sivaram Velauthapillai
      Seeking the meaning of life... @slashdot of all places ;)
    72. Re:Good idea by Sivaram_Velauthapill · · Score: 2, Interesting

      I think you are going to be proven wrong... my feeling is that there is going to be some key changes in the future with 3D acceleration. I'm expecting window systems to radically change in the future when 3D features of graphics cards are used. Let's face it: we have 3D cards, which are not used for anything. Doesn't it seem plausible that the windowing system will start using the unused capabilities of modern video cards? Doesn't it also seem logical to have everything in 3D rather than 2D (which is old school)? For instance, having everything as vectors (as under 3D) would significantly improve desktop quality as it pertains to resizing windows, changing icons, chaging colours, etc. Arguably, the display may also improve significantly (things like pixellation and blurriness on some monitors/laptops won't be as bad).

      So to sum up, I think there is a revolutionary elephant knocking on the doors of window systems. That elephant is none other than 3D features of modern graphics cards...

      --
      Sivaram Velauthapillai
      Seeking the meaning of life... @slashdot of all places ;)
    73. Re:Good idea by NtroP · · Score: 4, Insightful
      There's a reason nobody runs client-server. Desktop systems with fast processors are just too cheap.
      Actually, we do, and very successfully. I can get an empty Microtel workstation from Walmart for $168.00 with a 17 in monitor for another $120.00 or so. This gives me a great "thin client" for under $300.00. Sure, that's not much more savings over, say a $500.00 stand-alone desktop, but the savings (in a lab environment) comes down the line. With a standalone desktop I have to replace it in 4-5 years and probably at least add RAM in the mean time (think Longhorn will run on 128Mb well?). At, say $500.00 a pop for 30 workstations, you are looking at $15,000 to upgrade the lab (and a $500 standalone workstation won't last very long). I can put a whole new thin-client lab in for under $10,000 or upgrade an existing lab (either monitors or CPUs) for half that (though why I'd ever need to do that I don't know - maybe moving to flat-panel monitors or bigger CRTs?)

      The thin clients, once in place, are good indefinitely. If I need more speed or capacity, I just upgrade the server - not a whole lab of 30 workstations. The savings continues from there. With no internal moving parts the energy consumption for the lab goes down, and the lab also stays cooler - requiring less energy again from the H/VAC system. Small savings, but with 30 labs - it adds up. On top of this, I don't ever have to touch the clients. They PXE-boot from a central Tao-tc Linux server which loads a small kernel and rdesktop on the client and then severs the connection. The client connects to a Dell rack-mount Windows 2003 Terminal server or one of our Fedora LTSP Terminal Servers, depending on our needs.

      This means that, for any given lab, I have, at most, one machine to manage, install apps on, patch, secure and otherwise babysit. This saves big bucks on time, OS upgrade licenses, Patchlink licenses, Antivirus licenses, etc. that I would have needed for every computer in the lab (assuming they were Windows desktops). I also have much greater reliability: if one of the servers goes down I just change a setting on the Tao-tc box, have the lab reboot their clients, and presto, they're pointing to one of the other servers in another building and sharing it's power while I re-ghost the dead server.

      We also allow our users to disconnect from their sessions instead of logging out. This means they can come back later to any of the thin-clients in the building, log in and be exactly where they left off before. This is a godsend during power outages - the servers are on UPS's, when the power comes back on, the users reconnect to their existing sessions and no work is lost, no data is corrupted.

      Granted, the thin-client scenario is doesn't work for every situation - we use high-end workstations for CAD/CAM and Video Production Labs. We also use dedicated workstations for those staff who need to sync Palms or use local USB devices, etc. but for "normal" staff, classroom and lab use - it rocks!

      One Dual-processor 3.2GHz server with 4Gb of RAM can serve over 100 clients running Office at blazing speeds. Word and Exel load "instantly". You should see the look on peoples faces when I show them an empty IBM 300PL (P2 133 MHz) system net-booted to windows, and I click on Word. It invariably blows their workstations away. And because people using the Terminal Server can't install every shiny, blinky piece of software that shows up it STAYS fast. And saves me more money and headaches in the process.

      The best part is that our our Mac OS X users can use RDP to connect to the terminal servers too - allowing them to use the Windows-only software with ease - instead of forcing them to give up their Macs. In fact we just did a week-long class on some proprietary Windows-only app in our iMac Lab. With the 3-button scroll-mice plugged in, they never even knew the difference; worked, like a charm.

      So, yeah, you aren't going to use thin-clients for gaming and surely not at home, but in a controlled corporate or school environment, you can't beat it for ease of management, performance and cost savings.

      --
      "terrorism" and "pedophilia" are the root passwords to the Constitution
    74. Re:Good idea by tmortn · · Score: 1

      Might not remain the common case. Computers are going from one per houshold to multiple per household.

      If you had a default network setup that could utilize wireless networking for KVM then you could beat the price point of multiple systems for a power home with a single system that could serve all users instead of one box for each person.

      Say a default 2-4 processor system and a desktop cube with CD/DVD burner and KVM inputs/ USB etc... and a wireless connection with the server.

      If you can make it plug and play then it could catch on fairly easy I might imagine.

      Only real practicality issues in my book is satisfying gamers in the family simultaneously and useability. Can't require real knowledge to set up and use... that seems to have prooven the case over and over again in the home market.

      --
      I don't ask you to be me. I only ask you not expect me to be you.
    75. Re:Good idea by be-fan · · Score: 1

      I'm definitely not wrong. We're not talking about just putting the graphics driver in the kernel. We're talking about putting the entire window system into the kernel. Window systems are complicated, and it's a definite stability issue, and it shows given that NT 4.0 was far less stable than it's predecessor (NT 3.x). Heck, XP still isn't as stable as NT 3.x.

      I don't think you've got a very clear understanding of where the various costs involved are. In the DRI model, the server isn't in the hot-path between application and the GPU. The server manages windows, coodinates access to DRI contexts, provides lot's of utility services and IPC, but doesn't handle graphics data. Graphics data is DMA'ed directly from a userspace buffer to the GPU via a small kernel driver. Putting the server in kernel-space would make creating and removing windows slower, but how fast do those operations need to be? You could make them take no time, and you wouldn't get any speedup in real applications.

      --
      A deep unwavering belief is a sure sign you're missing something...
    76. Re:Good idea by BorgCopyeditor · · Score: 1
      Today, let's face it, windowing is "done."

      This like saying that once cars could go faster than it was safe to, no more innovation was needed.

      Excuse my ignorance, but I would have thought it was more like saying that once cars standardized on four wheels and a round steering wheel, there was no need to revisit those design decisions in the of name of some supposed "flexibility."

      --
      Shop as usual. And avoid panic buying.
    77. Re:Good idea by rd_syringe · · Score: 0, Redundant

      I'd prefer not to have apps load on boot unless I tell them to load on boot, thank you very much. I don't need either my RAM or swap being soaked by an app I haven't given explicit permission to load.

      Good thing Office doesn't do this. It's a false rumor that it's loaded on boot. Nobody seems to care that's it not true.

    78. Re:Good idea by gnuman99 · · Score: 3, Insightful
      X was overly focused on the juicy technical aspects of the day (like networking) and stopped short of providing an application-ready windowing system.

      Instead, focus on delivering 1) a rock-solid, high quality API and 2) a great-looking, high performance implementation for the common case - an app running locally on a PC.

      Common case for X? Local PC? WTF are you talking about. X was designed for UNIX servers during the days when "Local PC" didn't even exist. I'm *very* glad that X is such a flexible and bullshit-free protocol. That's why you can have different desktop environments be it KDE, Gnome or even stuff like blackbox.

      I had yet to crash X by passing some null value or whatever to the Server. Windows API, on the other hand, "solid" as you imply, craps out when you start passing NULLs to it. Heck, you can still crash the entire box by passing some weird numbers to the right functions!

      Sorry, I'll take the simplicity and flexibility of the protocol over any copy&paste or drag&drop "standard".

    79. Re:Good idea by shfted! · · Score: 2, Insightful

      Right. There's absolutely nothing wrong with, say, sending OpenGL down the wire and have the client's graphics system render it. :)

      --
      He who laughs last is stuck in a time dilation bubble.
    80. Re:Good idea by wormbin · · Score: 4, Informative

      I can't speak about the way the preload problem is handled today but when I worked at Microsoft (10 years ago) we spent an insane amount of effort to get the apps to load faster, or more accurately, to give the apps the appearance of loading more quickly. Often at startup we would just load as little of the app we could to render the main frame and then load the actual functional code in the background.

      This was prioritized over code maintainabilty, obviously some features, and even some bugs.

      I really can't see this being a huge priority in open source projects since code maintainability (modularity) and the associated flexibility is such a high priority in most of them. Just look at linux bootup. You could probably speed things up significantly by not running all those sh scripts in /etc/init.d/ (or running them after the console login has appeared, giving the appearance of boot) but what developer would give up that flexibility for a little speed?

    81. Re:Good idea by julesh · · Score: 1

      Are you proposing that the windowing system should not provide straightforward access to plain drawable windows unless it also provides an easier to use interface for a widget set?

      I'm not suggesting limiting functionality -- of course it should be _possible_ for applications to directly draw on their windows if they want to. Any function that is unique to an individual application should be performed this way.

      But any common functions should be implemented as part of a standard widget set.

      oes that mean that the windowing part of the project *must* *not* be released for testing before the widget part?

      No. In fact, it would likely be impossible to develop the widget implementations before the window management side was complete.

      If GTK+ included an X server, would that satisfy your requirements so that QT developers "specifically override [your] choices".

      Probably not. I'll admit I don't know much about GTK+ at a technical level, but I believe it only supports overriding the drawing mechanisms as part of its theme mechanism. What I'm proposing is an interface where the application is unaware of the specific implementation of the widget, which is chosen by the user. So, for example, I could replace multi-line edit boxes with either a vi or an emacs implementation if I so chose.

      If GTK+ did support this feature level, then that would be a reasonable implementation... although the API to use it should be as lightweight as possible, preferably requiring only one or two small shared libraries to be loaded into the application. The shared libraries implementing the controls would be loaded by the server, meaning that the OS doesn't have to waste resources on mapping them into each client (which is part of the reason why environments like Gnome/KDE are so slow -- the huge number of dependencies their applications have).

      You know that the GTK+ library and the QT library could be made to draw on any window system that provides OpenGL/GLUT or a canvas from which events can be obtained, so the mere existence of GTK+ and QT makes it trivial to produce applications that conflict with any "standard" widget look and feel for a window system.

      Of course. And I'm not suggesting making this impossible -- what I am suggesting is that the presence of a standard encourages people to code for it. Particularly when that standard implements easily what they want to do.

      I suspect it would be fairly easy to modify GTK+ and QT to use the widget sets provided by the server, and once this had been done any applications using either of those toolkits would function adequately. Any other system designed for cross platform portability is likely to be portable to the new functions of the server, also.

    82. Re:Good idea by TykeClone · · Score: 1
      No, it's not that much of a hog. I wouldn't run an XP system with less than 256MB RAM, though.

      I've worked on cleaning up some XP systems with 128MB RAM, and even at that amount, the system is working out of virtual memory after all systems are loaded. They are preloading some stuff, but no office apps - just messenger and antivirus stuff.

      --
      A fine is a tax you pay for doing wrong and a tax is a fine you pay for doing all right.
    83. Re:Good idea by Anonymous Coward · · Score: 0

      10 years ago is 1994, this can hardly be considered relevant today. Windows 95's minimum system requirements were 4 megs of ram.

    84. Re:Good idea by Bloater · · Score: 2, Interesting
      Are you proposing that the windowing system should not provide straightforward access to plain drawable windows unless it also provides an easier to use interface for a widget set?

      I'm not suggesting limiting functionality -- of course it should be _possible_ for applications to directly draw on their windows if they want to. Any function that is unique to an individual application should be performed this way.

      But any common functions should be implemented as part of a standard widget set.

      oes that mean that the windowing part of the project *must* *not* be released for testing before the widget part?

      No. In fact, it would likely be impossible to develop the widget implementations before the window management side was complete.

      As soon as you have a window system, people can start creating multiple widget sets that have a different programming API, different lines drawn between similar widgets (eg, combo/list/text boxes), and different look and feel. And since there are tens of widget sets already available and Open Source, any new window system is likely to have them ported very quickly to get applications ported over. So you immediately have the polydigm problem.
      If GTK+ included an X server, would that satisfy your requirements so that QT developers "specifically override [your] choices".

      Probably not. I'll admit I don't know much about GTK+ at a technical level, but I believe it only supports overriding the drawing mechanisms as part of its theme mechanism. What I'm proposing is an interface where the application is unaware of the specific implementation of the widget, which is chosen by the user. So, for example, I could replace multi-line edit boxes with either a vi or an emacs implementation if I so chose.

      If you have a window system that can be talked to from outside it's process, there is an IPC mechanism with a protocol. You can *always* use that protocol without even having the standard widget set installed on the system. For a window system that is designed to work over the network, this is forced to be even easier to do since the protocol must be very well specified.
      I suspect it would be fairly easy to modify GTK+ and QT to use the widget sets provided by the server, and once this had been done any applications using either of those toolkits would function adequately. Any other system designed for cross platform portability is likely to be portable to the new functions of the server, also.
      I assume you are not familiar with computer programming. Each GTK function has a specified behaviour, it will cause a certain widget to appear with a certain relationship to other widgets, in a certain state - if the new standard widget set does not have the same available widgets (or the GTK widgets can not be described by a combination of the new widgets), or the same expressiveness of relations, and the widgets don't have at least the same states with any extra states being merely logical "substates" (for want of a better word) of the GTK states, then making GTK use the widget set from the window system will be hard. Furthermore any change in future versions of the widget set will probably screw GTK up right royal unless extreme care is taken. That means that unless you *enforce* a no GLUT/canvas policy, existing widget sets will be ported as is, with all the user interface oddities.

      In short, it ain't gonna happen so start trying to persuade existing widget developers to harmonise, and application developers to hurry up and move to the new harmonised versions. *That* is the only reason there is a consistent look and feel on Windows and MAC OS. As an example, The GIMP was ported over to Windows, and it looks like a GTK application even though Windows has a standard widget set.

    85. Re:Good idea by Hacksaw · · Score: 1

      If you think about it, what Gosling is saying is "okay, after 20 years of technical innovation, we can toss out everything but the four wheel and the round steering wheel, and let the user decide how it should be from there. Huge engine, or tiny. 2 seats, 4, 8? A giant cargo box, or a sleek aero dynamic wing shape. 3D interior window with 2D title bar, or a 3D title bar, or even 4D.

      Right now what we have is a beast where you have to fit your ideas onto the seats and box they give you. The widget libraries have done a great job getting around that limitation, but they'd be better off without it.

      --

      All the technology in the world won't hide your lack of vision, talent, or understanding.

    86. Re:Good idea by ipfwadm · · Score: 1
      Full color full screen images appear instantly, you cannot even guess that the display is through the network.

      Uhhh, I export displays all the time at work over our 100mbps network, and I can easily tell the difference. I export from one Linux box to another, from a Linux box to a Windows box running Cygwin, and from Solaris to Linux. And I can easily tell the difference. It's not enough to be annoying, but it's noticeable. Especially at application load.

      And we're talking about the X server, that people like you call it slow and old and needing replacement and let's just throw away network transparency, who needs it anyway, right?

      Please point out to me a post in which I EVER said that X is too slow or in need of replacement. Don't tell me what I say when you have no clue.

    87. Re:Good idea by Anonymous Coward · · Score: 0

      But we don't want it to appear faster. With Linux, the systems does all its tasks, then it leaves us the fuck alone to do ours. With Windows, it give us the illusion of fastness, but then you leave it idle and it keeps working in background for no apparent reason and clogging your system for the next 10 minutes.

    88. Re:Good idea by IamTheRealMike · · Score: 1

      I have reinstalled Windows on top of Office, and it loaded in exactly the same amount of time. Maybe they do preload on some systems but they certainly never have on any of mine, and they still start within 1-2 seconds at most.

    89. Re:Good idea by xenotrout · · Score: 1

      As a developer of my own window manager, I can disagree with your last two paragraphs. I have crashed X many times, but that was dealing directly with Xlib. Also, X is supposed to have copy&paste and drag&drop standards, but people are often too lazy to implement them in their X clients. The ICCM (X standards) isn't exactly easy to use, but it does specify a lot of features and behaviours.

    90. Re:Good idea by IamTheRealMike · · Score: 1
      I was talking about Wine. I can't "show" anything about Wine to somebody who doesn't have a good understanding of C by definition, and those who do would not ask these questions. So we're kind of stuck there. Suffice it to say that Wine is a reimplementation of the Windows API and is not integrated with the boot sequence of Linux. So, it has no opportunity to preload anything.

      As to speed vs the illusion of speed - if the app starts and is usable within 3 seconds, who cares if it's still loading stuff behind the scenes? Not me. Not if it's usable.

      As to how I can be sure MS Office doesn't use undocumented APIs, I never said it didn't. In fact you can find out exactly what APIs it uses very easily by running it in Wine, or using depends.exe etc - lots of ways. None of the undocumented MS APIs can magically make you go faster though, sorry. Most of them are very boring indeed.

    91. Re:Good idea by jdowland · · Score: 1

      how comes Word still starts in under 3 seconds when running on Windows emulation on Linux?

      I've never seen this myself - do you know this from personal experience, or are you also propagating an urban myth?

    92. Re:Good idea by jdowland · · Score: 1

      Often at startup we would just load as little of the app we could to render the main frame and then load the actual functional code in the background.

      I can't see whats objectionable about this. I'd much rather have bits of mozilla (or whatever) load in the relatively large window of idleness that happens whilst I move the mouse pointer over to the address bar with mammalian slowness, or in the wait for the network to return a response, than up front when I am (unwillingly) idle.

    93. Re:Good idea by aaronl · · Score: 1

      Word starts in under two seconds on my machine, on anything from Windows 98 to Windows 2003. This has been true on my P-200MMX, Celeron 300, P3-800, and Athlon 2600. It is true for the machines of more than 15 people that I know.

      I'm do not use the preload crap as I like to have free RAM and short boot times. The difference between 1.2 and 1.8 seconds doesn't concern me very much, and certainly isn't worth the memory usage.

      MS puts out a huge amount of effort to make this the case. You don't need to preload a damned thing to make Office applications start fast, they're just written to make sure that it happens.

      I've also tested this in Linux using Wine, and it takes slightly longer for Wine to load itself up, and then Word starts just as fast as on native Windows.

    94. Re:Good idea by Anonymous Coward · · Score: 0

      Significant amounts of GDI were only moved into the kernel for NT 4.0. It may seem hard to believe today, but there were releases of NT before 4.0 ;)

    95. Re:Good idea by HFXPro · · Score: 1

      Nope. I run windows xp and even with norton (bloatware), mozilla, office, and gaim open, I'm only allocating 250 megs. He has something else running. Usually in linux just start some basic services and X I'm already over that mark.

      --
      Reserved Word.
    96. Re:Good idea by Billly+Gates · · Score: 1

      " You could probably speed things up significantly by not running all those sh scripts in /etc/init.d/ (or running them after the console login has appeared, giving the appearance of boot) but what developer would give up that flexibility for a little speed?
      "


      Which is why I run FreeBSD.

      Bootup time is many times faster and simple rc scripts vs bloated bash scripts that load more bash scripts that load more bash scripts symlinked to god knows where.

    97. Re:Good idea by man_of_mr_e · · Score: 1

      I think you're making a few assumptions. There are several viable methods of handling the common functionality that would not require a user process to handle it. For example, if your drawing libraries can communicate with each other to negotiate resource access,clip lists, etc.. then this is handled in the applications thread. This is how it works on older versions of Windows, for instance (not that i'm advocating Windows approach, but that doesn't mean everything they do is bad).

      Another way would would be handle this as a device driver. This would effectively put this code in the kernel, but if it's small enough and tested well enough that shouldn't be much of a reliability problem, especially if all it's doing is handling clip lists, ipc, and message passing from input devices.

    98. Re:Good idea by Wolfrider · · Score: 1

      > I can't imagine that XP has gotten to be that much of a hog.

      --Want to bet?
      :b

      --
      .
      == WolfriderV6 == I'm willing to admit that *I just might* be wrong... Are you??
    99. Re:Good idea by sparkz · · Score: 1

      Congrats - you've just invented the SunRay (http://www.sun.com/sunray) It does all that - as Gosling says, it's not ideal for everything, as ethernet speeds haven't increased according to Moore's law (which is why he suggests that video-intensive tasks be passed on to the client) but IMNSVHO, most apps can be served by the SunRay model - one Word Processor, one Web Browser, one Mail Client running for hundreds of users. The CAD/CAM guys can get their own GPU's, of course.

      --
      Author, Shell Scripting : Expert Re
    100. Re:Good idea by Anonymous Coward · · Score: 0

      As opposed to the traditional command line interface that has no menus and hard-to-remember commands. Unix deserves special honors because it's hard-to-remember commands are also poorly named.

    101. Re:Good idea by Anonymous Coward · · Score: 0

      No local windowing systems prior to X? You're joking right?

    102. Re:Good idea by Anonymous Coward · · Score: 0

      And what was his answer?

      The local library used to have a dumb terminal at the end of each book stack, for card catalog lookups. Now they have Pentium PCs running Windows 98. The only program running on these PCs is a terminal emulator, which is used for...wait for it...card catalog lookups.

      There are half as many PCs now as there used to be dumb terminals. I would guess that the PCs cost twice as much as the dumb terminals did.

      This is progress? If I ran that place, I'd have someone's ass on a platter for making that particular purchasing decision.

      Oh yeah -- the next time you see an office full of computers on the TV news, take a look at what's running on those computers. Probably a terminal emulator program.

    103. Re:Good idea by Short+Circuit · · Score: 2, Insightful

      He said it worked great. I think he started out trying to look "cool."

      It's funny how many places still use text-based systems. Autozone is one example. Blockbuster does it too.

      The latter was an interesting discovery, because the clerk preferred to type in the commands, rather than hit the shortcut keys. And she was a pretty quick typer.

    104. Re:Good idea by Vitus+Wagner · · Score: 1
      I've meant exactly opposite thing.


      It is end-user who have to have total control after his desktop.


      So, approach when everything moved to client-side library gives more control to application authors and less to user. In old times where there is Xaw and Motif and nothing more, I could completely restyle my desktop using central (per display) resource database.


      Now with lot of Gtk and Qt programs out there, I cannot tune my desktop as I like.

    105. Re:Good idea by Anonymous Coward · · Score: 0

      I'll take that bet. I'm running XP SP2 and my web browser, and my memory usage is only 125MB. If someone's using up 700MB at boot time, he likely doesn't have a clue about maintaining his machine.

    106. Re:Good idea by Anonymous Coward · · Score: 0

      It doesn't have to be that way though. Mac Os X has an extremely minimal windowing system yet maintains UI consistency. This is because users would not accept an application that had a UI with even the slightest change in UI look/behavior.

    107. Re:Good idea by PhilHibbs · · Score: 1
      various copy/paste mechanisms,
      I think that's the thing I'd find most annoying if I moved from Win to Linux. I have a whole bunch of Perl scripts that read the clipboard, process the contents, then write the results back to the clipboard. Bind them to keypresses (like Ctrl-Shift-Q to wrap the clipboard text with &ltblockquote><i> tags, to take the simplest), and you have an awesome productivity boost. I use them to clip text from the console, my editor, Word, 3270 sessions, Terminal Services sessions, etc. indiscriminitely. I don't think Perl has any clipboard modules for Linux, except maybe Tk.
    108. Re:Good idea by 4of12 · · Score: 1

      ...what developer would give up that flexibility for a little speed?
      "Those who give up essential flexibilities for a little speed deserver neither flexibilities nor speed."

      Fen Branklin

      --
      "Provided by the management for your protection."
    109. Re:Good idea by Magius_AR · · Score: 1
      I'd prefer not to have apps load on boot unless I tell them to load on boot, thank you very much. I don't need either my RAM or swap being soaked by an app I haven't given explicit permission to load. But then, that may be why I don't live in a Windows world.
      Another option of course would be to simply disable prefetching.

      What? Don't know how to configure a Windows machine?
      I wouldn't say it's any more obscure than your typical *nix system

    110. Re:Good idea by trouser · · Score: 1

      blowing your nose is rarely a waste of time.

      --
      Now wash your hands.
    111. Re:Good idea by jdowland · · Score: 1

      I think the preloading thing is a mix-up. It is rumoured (I haven't personally confirmed this but I have no reason to doubt it) that office is prelinked rather than loaded - i.e. the libraries it depends on have dedicated locations in memory which favour office over other applications (boundaries etc.) and lowers the start-up time due by removing the need to assign VM locations to the dynamic libraries then.

      More info at http://www.crast.us/james/articles/prelink.php

  3. I Love Linux! by Anonymous Coward · · Score: 0, Funny

    Why speculate about how Windows could be recreated with all the Linux distros that exist and the ease of any user rolling their own?

    I defecated on my old Windows CDs and buried them in the yard. Sadly enough, when I told this to some Windows users, they actually mentioned that they wanted the CDs and asked me very seriously without a hint of joking, "can you dig it up?"

    *snort* Sounds like a drug addict who will search through feces to dig out a fix. Sad.

    1. Re:I Love Linux! by Beek · · Score: 1, Funny

      Wow, you really do love Linux! :-)

  4. Can we get a non-pdf'd link please? (no text) by oldosadmin · · Score: 0, Redundant

    blah, there's nothing written here.

    --
    Jay | http://oldos.org
    1. Re:Can we get a non-pdf'd link please? (no text) by waferhead · · Score: 2, Informative

      What, you cant run xpdf, or kpdf, or gv, or even (if all else fails of course) use the free Adobe PDF viewer?

      Jackass...

    2. Re:Can we get a non-pdf'd link please? (no text) by oldosadmin · · Score: 1

      No, I just find it bothersome to load up a large, clunky program to load an article that half of the damn people on slashdot don't even read anyway.

      --
      Jay | http://oldos.org
    3. Re:Can we get a non-pdf'd link please? (no text) by BasilBrush · · Score: 1

      You want to get yourself a better computer or a better OS if loading a PDF viewer is something painful enough to avoid.

    4. Re:Can we get a non-pdf'd link please? (no text) by Eric604 · · Score: 1

      you work for microsoft? I don't need a new puter to display text and images, it does that just fine. Adobe needs a new fileformat / viewer.

    5. Re:Can we get a non-pdf'd link please? (no text) by BasilBrush · · Score: 1
      No. I use a Mac at home. Displays PDFs just fine without any help from Adobe. At work I do have a PC, and that displays PDFs just fine (with help from Adobe).

      So, is it your computer or your OS at fault?

    6. Re:Can we get a non-pdf'd link please? (no text) by de+Selby · · Score: 1

      I've always hated loading PDF's. I've got a mid-range PIII with Windows 98 and a decent-fast P4 with Windows XP. Both have very fast hard drives and plenty of memory.

      Both grind and take (in my mind) forever to load the huge mega-app that is Adobe Acrobat.

    7. Re:Can we get a non-pdf'd link please? (no text) by julesh · · Score: 1

      Try downgrading to v5. It can handle 95% of the documents out there, and uses about a quarter of the load time of v6 and above. Version 4 is even faster, but there are significantly more documents it won't open.

    8. Re:Can we get a non-pdf'd link please? (no text) by grammar+fascist · · Score: 1

      Alternatively, you can use PDF SpeedUp. Works wonders.

      --
      I got my Linux laptop at System76.
    9. Re:Can we get a non-pdf'd link please? (no text) by de+Selby · · Score: 1

      Great googlie mooglie! That's about as fast as it should be.

      Thanks.

  5. Wait... by StevenHenderson · · Score: 4, Funny

    His design is to make the window system do the absolute minimum and move all the work into the client.

    Wait, so you mean you wouldn't require this?
    http://it.slashdot.org/article.pl?sid=04/05/04/222 3237&tid=201&tid=137

  6. New windowing system from scratch? by zoloto · · Score: 3, Interesting

    Would be a system that is both lightweight and fast. Everything could move at the speed of a finely tuned video game. Advances in rendering pipelines and library design would be easy to
    accommodate. This window system design isn't particularly radical: it's more just pointing out that this is the way that X is going already, given the increasing predominance of applicationside rendering libraries. Once you accept that fact and admit that it's actually the right way to go, the design falls out, simply by
    stripping away legacy stuff that isn't needed any more.


    So. Who's with me to create tihs sourceforge project? Dead serious folks, not a troll. BUt who has the gumption to get it started and make it run VERY fast, then after a while see how the X.org people would think of merging or using it? Eh eh?

    let me know, use my gpg key to encrypt messages (it's the wave of the future!).

    --zoloto
    1. Re:New windowing system from scratch? by Mr2cents · · Score: 1

      SDL already has much of the wanted features, it seems.. just make some WM mods, no?

      --
      "It's too bad that stupidity isn't painful." - Anton LaVey
    2. Re:New windowing system from scratch? by AKAImBatman · · Score: 1

      I suggest you start here. The JNode guys are working on a completely new OS and need someone to design them a windowing system. If you feel you've got the expertise and direction, go kick out some code.

    3. Re:New windowing system from scratch? by IamTheRealMike · · Score: 4, Insightful
      Gosling basically described DirectFB so if you like this sort of idea, go hack on that.

      However, I'd suggest talking to various people in the industry first - people tend to get lots of misinformation that sounds correct but actually isn't by reading random stuff on the web (and slashdot). See the remarks about Office preloading above - doesn't happen.

      So the design of X it turns out isn't actually a serious bottleneck on performance. If you do profiling runs and such, you find that having everything co-ordinated by the X server isn't a serious speed problem and that much larger issues are things like having to read from the fb to do XRENDER blending (or was last time I checked).

      Basically, before going "wow yeah, right on!" I suggest you do a lot of research into the design of past and present windowing systems - what sounds intuitively right often isn't.

    4. Re:New windowing system from scratch? by electroniceric · · Score: 2, Interesting

      See the remarks about Office preloading above - doesn't happen.


      I followed that thread with a lot of interest, and I believe the poster who said that MS is just really good at optimizing apps. I think the preloading "myth" may have to do with the shortcut to Office that appears in C:\Documents and Settings\Start Menu\Startup after installing Office. If this isn't a preloader for Office, what is it?
    5. Re:New windowing system from scratch? by IamTheRealMike · · Score: 2, Informative
      That's (iirc) FindFast and is entirely optional. It indexes files in the background a bit like updatedb does in Linux. I don't think it preloads parts of Office, it certainly doesn't need to do that.

      Basically Office starts really fast because it makes heavy use of lazy loading (only loads code just-in-time), and because Microsoft do things like reordering code and functions in the source to ensure that frequently used code resides in the same pages in memory.

      OK, I can see from the replies to my first post some people are still sceptical.

      Startup time in most desktop apps has multiple components:

      • Disk IO. This is by far the slowest. Modern CPUs and memory are so fast relative to the disk that loading anything from disk kills your performance. Obviously you can't actually remove this bottleneck entirely but it turns out that you can significantly reduce the amount needed in order to load your app into RAM.

        Code is split into pages. When the OS (this is true of all modern operating systems, Linux and Windows alike) starts your app it doesn't read each byte from disk into memory then jump to the entry point. It maps it into memory, so when the processor accesses a piece of the code it will be faulted in from disk. This is a good optimization because it means code that is never used is never loaded. However, pages are fairly coarse grained: 4k on standard IA32 setups (you can run it in 4mb mode as well but I don't know anybody who does this). Page faults hurt performance: each time your app faults, it's suspended while the hard disk seeks to the right place on disk then you have worst case a rotation of the disk platter before you can start reading. Therefore it's possible to speed up starting time significantly by packing all the code you need to start the app and bring it to the main screen into the same pages. This can often be as trivial as moving functions around in the file (hence the comment by an ex-'softie about code maintainability and such) but more advanced tools exist to do the same sort of thing in a systematic fashion.

        You can also use code compression. This is counter-intuitive (decompressing stuff is slow right?) but some simple algorithms can be very fast and CPUs are sooooo much faster than disks are that it can actually be worth doing.

      • OS housekeeping overhead. On Linux+OpenOffice this is the biggest bottleneck. Due to the way OO.org [ab]uses shared libraries the bulk of the time is spent inside the dynamic linker joining the bazillions of C++ shared libraries it consists of together.

        This is fairly pathological behaviour for all C++ apps on Linux. Lots of string comparisons and such. OO startup was analyzed and it was performing over 1.8 million strcmps inside the linker alone.

        Prelink was developed to address this case for "normal" C++ apps like KDE things, but OO unfortunately dlopens much of its code so making prelink ineffective.

        A good solution to this problem for us would be to implement DT_1_GROUP support in glibc, but this involves hacking on glibc which is a nightmarish task that nobody wants to do. But this is what kills OO in the OO vs MS Word on Linux (via Wine) test.

      • Context switches. If you have to sync to external programs during startup this can slow you down as IPC is expensive (much cheaper on linux than most operating systems but still expensive). For instance most GNOME apps sync with the X server, session manager, gconf, and some with bonobo-activation-server. That's a lot more than zero, which is how many servers (afaik) MS Word syncs with. Actually Word may talk to the RPC switch service to register in the ROT for automation purposes BUT this isn't critical to startup and can be done by a thread started after the main screen has been brought up.

      You get the idea. You don't have to "cheat" to start fast, you just have to know what you're doing and make it a priority when coding. Unfortunately most developers aren't aware of these issues and ignore them until it's too late and you have something like OpenOffice or Eclipse ....

  7. Wow comment on X by mjh · · Score: 2, Interesting
    I think the most interesting part of the article was this:

    The Result Would be a system that is both lightweight and fast. Everything could move at the speed of a finely tuned video game. Advances in rendering pipelines and library design would be easy to accommodate. This window system design isn't particularly radical: it's more just pointing out that this is the way that X is going already, given the increasing predominance of applicationside rendering libraries. Once you accept that fact and admit that it's actually the right way to go, the design falls out, simply by stripping away legacy stuff that isn't needed any more.

    I can't count how many times I hear on /. someone saying that X is too bulky, etc, etc. And here's Gosling saying (2 years ago) that X is headed in the direction of slim and lightweight.

    Am I misreading what he's saying?

    --
    Key to financial independence: Spend less than you earn. Save and invest the difference. Do it for a long time.
    1. Re:Wow comment on X by Sheetrock · · Score: 0, Troll
      No, but I'd bet you'd get to Gosling's destination faster by designing from the ground up a client/server with the speed/flexibility of Windows XP than you would by stripping out a thing at a time from X-Windows.

      The argument is more over method than situation. We all agree X is too bulky for the average user.

      --

      Try not. Do or do not, there is no try.
      -- Dr. Spock, stardate 2822-3.




    2. Re:Wow comment on X by be-fan · · Score: 5, Informative

      Doubtful. Stripping things out is easy. Writing new stuff that works is hard. X is already moving in the direction Gosling mentioned. Both GTK+ 2.8 and Qt 4 will support rendering via OpenGL. Once you're rendering with OpenGL, you're 90% to wher eGosling is going. At that point, the X-server (actually, the DRI), becomes mostly a manager of window contexts, and doesn't lie at all in the hot-path from application to GPU. Sure, the X servers unused features will take up some space (not too much, though, the X server is only 1.7MB on my system, much smaller than the OpenGL library!) but that's not a huge price to pay for backwards compatibility.

      --
      A deep unwavering belief is a sure sign you're missing something...
    3. Re:Wow comment on X by nathanh · · Score: 5, Informative
      I can't count how many times I hear on /. someone saying that X is too bulky, etc, etc. And here's Gosling saying (2 years ago) that X is headed in the direction of slim and lightweight. Am I misreading what he's saying?

      No. You've read him correctly. What Gosling is saying is a simplified version of the X.org roadmap.

      For example, X11 contains a font renderer. The design is really ancient. No anti-aliasing. Poor kerning. Clients couldn't access the glyphs very easily, which made it impossible to do arbitrary things like strokepaths or proper printing. It kind of sucked. A number of font extensions were considered for XFree86. Any one of them would have addressed all of the existing issues but they were heavyweight solutions.

      So in the end Keith Packard wrote a better solution. He implemented the XRender extension. This extension simply knows how to draw rows of glyphs. It also knows about alpha masks (Porter Duff compositing). The client now turns the font (typically TrueType) into alpha-masked glyphs and sends the glyphs to the X server. If you're using a GNOME or KDE desktop with antialiased fonts then you're using Keith's XRender extension and client-side font rendering instead of the X11 font renderer. This is only practical because the client-side libraries (eg, libxft2) are shared.

      Another interesting example of "slimming down" the X server is the Composite extension. Rather than implement a heavy compositing engine in the X server, Keith designed this extension so it simply renders the window into offscreen memory. Another extension, XDamage, tells a special client called the "compositor" when any region of the window changes. The compositor then uses the XRender extension to render the damaged region with appropriate drop shadows and/or alpha masks. Notice how the rendering is still done by the X server so it can be hardware accelerated.

      For the future of X.org there is more of this "slimming down" being planned. Jim Gettys and Keith Packard gave a presentation in July 2004 where they suggest the future of X is as an OpenGL client. They are both keen on a new design where the X server stops being the arbitrator of video hardware. Instead it becomes an OpenGL client with direct access to the video hardware through the DRM, just like every other DRI client. There is a simpler version of that paper in the short slideshow Life in X Land.

    4. Re:Wow comment on X by Brandybuck · · Score: 4, Interesting

      The trouble with doing everything over OpenGL is that you're subjugating X11 to the video chip manufacturers. While I understand that gamers could care less about closed versus open drivers, I for one don't want to mess with proprietary drivers just to use a 2D desktop. I could be using Windows if I wanted that.

      Right now the Open Source nv and ati drivers in X.org are more than adequate for normal 2D display, but they suck for OpenGL.

      I'm not idly ranting about ideology, I'm talking practical problems. When I bought my new computer I put an GeForce in it because everyone said NVidia drivers were the best for FreeBSD. But NVidia never bothered update their driver for -CURRENT for six months. Six freaking months! I should be the one deciding what branch, OS and kernel to use, and *not* NVidia.

      I fully understand that NVidia and ATI have proprietary intellectual property tied up in their drivers, and can't open them. But that's their problem, not mine. I'm not going to cry for them, because I don't have this problem with my ethernet card, hard drives or CPU.

      --
      Don't blame me, I didn't vote for either of them!
    5. Re:Wow comment on X by IamTheRealMike · · Score: 1
      X is already entirely reliant upon video card manufacturers releasing specs. NVidia doesn't really have an open source driver - I'm afraid the code you're thinking of is obfuscated, undocumented and utterly unhackable. It's basically a binary driver but written in C.

      So not much changes if you flip everything on top of OpenGL. We're still dependent on video card manufacturers and will be until either they return to the culture of open specs, or people write "open hardware" video chips.

    6. Re:Wow comment on X by Anonymous Coward · · Score: 0

      The trouble with doing everything over OpenGL is that you're subjugating X11 to the video chip manufacturers.

      You've built your post around this argument, but it's wrong. I'm writing this on a machine with a nvidia card that uses an open source driver. The driver is not 3d accelerated and uses Messa for OpenGL rendering. This is more than enogh for any windowing system. It's not fast enough for games - but that is another story entirely. For every closed, accelerated driver out there we have a plain open 2d driver that works nicely with Messa and can render 3d with speed perfectly suitable for GUI widgets. The move to OpenGL renedring is a *fantastic* one.

    7. Re:Wow comment on X by chez69 · · Score: 1

      Messa? rip jar jar binks out of X now! that will speed it up and help the user experience.

      the solutiuon is so simple.

      --
      PHP is the solution of choice for relaying mysql errors to web users.
    8. Re:Wow comment on X by Splork · · Score: 1

      so you're suggesting the correct futuristic design shouldn't be used because some particular bits of hardware are difficult to support to their theoretical best?

      sheesh. thats giving up and handing control to the hardware manufacturers right there.

      design it right. good drivers will happen.

    9. Re:Wow comment on X by FooBarWidget · · Score: 1

      But if you flip everything on top of OpenGL, and the video driver doesn't support accelerated 3D graphics, then things can turn out to be *slower* than what we already have, because now you have to emulate OpenGL with software.

    10. Re:Wow comment on X by IamTheRealMike · · Score: 1
      Emulating things like texture blitting in software isn't really that slow. 3D games have very different performance characteristics to 2D compositing engines.

      But yes this is an issue.

    11. Re:Wow comment on X by jcr · · Score: 1

      Stripping things out is easy. Writing new stuff that works is hard.

      Funny, I'd have said exactly the opposite. Taking parts out of an existing sytem is usually like pulling teeth, or worse.

      -jcr

      --
      The only title of honor that a tyrant can grant is "Enemy of the State."
    12. Re:Wow comment on X by Brandybuck · · Score: 1

      I'm not arguing against throwing away a good design, I'm arguing against throwing away a currently working design. Add in all the eye candy you want, but keep the present X11 protocol, libraries and server in place because a lot of people will still need it.

      If you look at the new Enlightenment and related libraries, you'll see that they've managed to support hardware rendering without screwing over the guy that still needs software rendering. But I never hear about proposals like this when it comes to X. Everyone is screaming that all of X11 needs to be thrown out and replaced wholesale with a PC-centric design.

      --
      Don't blame me, I didn't vote for either of them!
    13. Re:Wow comment on X by vakuona · · Score: 1

      I thought the whole premise of something like OpenGL was that you would have software fallback for the functions that your graphics hardware can't handle, or functionality is missing. So you could still use the open source drivers, and you would incur a speed cost, but seriously, it is much easier and mosr cost effective to buy a tnt card and use it to accelerate your desktop. I am sure you will find a video card with good coverage with an open source driver in any case.

  8. Lame. by Anonymous Coward · · Score: 2, Interesting

    First, it says he wrote this article 2 years ago -- talk about a slow news day for /.

    Second, isn't this more or less what X11 is doing today anyways? Yes, the xserver is getting some new extensions added to it to handle things like compositing or polygonal shapes efficiently, but a lot of the cool new features we're seeing in applications come from userspace libraries on the client side of the X11 protocol. Cool little hacks like shadows or translucent windows are just the result of rendering a window off screen and using some compositing rules on the server for generating the final image.

    Cairo looks like it will make a nice DPS-like library to use for graphics (it really looks like Postscript minus any programming language features which presumably get replaced by your own choice of language) and that hits Gosling's "postscript-like" display feature.

    Is this just an attempt by him to say "told you so" or something?

    1. Re:Lame. by Short+Circuit · · Score: 1

      It usually gets slow at about 8:00PM ET, then picks up again about 12 hours later.

    2. Re:Lame. by Anonymous Coward · · Score: 0

      Talk about lame! I've seen some horrible moderation on Slashdot (my account maxed out on karma, for example), but this takes the cake. Wrong, stupid, uninteresting, and uninformative from the very beginning to the very end, and it gets modded up. Let's go through it:

      One, Gosling wrote the article two years ago, but he only recently made it available. So it's not /. posting some two year old story. You didn't read the synopsis.

      Two, in the article, Gosling says that this is more or less where X is going (and he said it two years ago). He wasn't claiming to be saying anything new, he was just saying the way he'd do it is the way it's being done. You didn't read the article.

      Three, what are his motivations for publishing the article now? People were asking about getting NeWS open sourced, and he thought it wouldn't be worth the effort because, if he had it do over again, he'd do it differently. You didn't read the link to Gosling's blog.

      But for being a lazy, ignorant bastard you got modded up as Interesting. Which just goes to show you don't have to be an AC to be a fucking idiot.

  9. NON-PDF text... by zoloto · · Score: 2, Informative

    Here it is..

    Window System Design:
    If I had it to do over again in 2002.
    James Gosling
    December 9, 2002
    In the deep dark past I have been involved in building window
    systems. I did the original design and implementation of both the
    Andrew and NeWS window systems. Both of which predated
    X11. They shared with X11 the architectural feature of being
    networked: clients sent messages to the server over TCP
    connections. I occasionally get asked "if you had to do it over
    again, what would you do? Would you do the same thing". The
    answer is a strong no. It's now 20 years later, and the
    technological landscape is totally different. So here is what I
    would do. But first...
    The term "window system" is somewhat loose. It generally refers
    to the mechanism by which applications share access to the
    screen(s), keyboard and mouse. Beyond this it generally contains
    facilities for inter-application messages such as support for cutand-
    paste, and drag-and-drop. It also often contains support for the
    decorations surrounding windows that provide the user interface
    for resizing, opening and closing windows; although in some
    systems this has been left up to the application. Sometimes the
    window system provides higher level abstractions like menus.
    When a system is designed, there are always tradeoffs made that
    reflect the technology of the day. In the case of Andrew and
    NeWS, these tradeoffs were based on the state of the art 15 to 20
    years ago (this probably applies to X11 too, but I wasn't involved
    in the design analysis behind it). There were a number of things
    that were very different between then and now.
    1) The most significant is the relative performance of graphics
    rendering and network communication. Back then,
    rendering was relatively slow. The overhead of network
    communication was significantly overshadowed by the
    overhead of rendering.
    2) Back then, there were no shared libraries. This seems odd,
    looked back at from today, but back then no version of
    Unix had the ability to have a library like libc or OpenGL
    that was shared between processes. All applications had to
    be "statically linked". There was a primitive segment
    Background
    History
    sharing facility that allowed one segment per process to be
    shared, that was at the beginning of the address space; but it
    wasn't powerful enough for this purpose.
    3) Putting large things, like windowing libraries, into the
    kernel is generally a bad idea. It has a significant negative
    impact on the reliability and testability of the system.
    4) When hardware acceleration was available, it generally had
    no interlocking mechanisms for arbitrating amongst
    independent threads that were trying to use it. This
    generally meant that either the accelerator was permanently
    allocated to a thread (very common, since acceleration was
    normally 3D hardware used exclusively for CAD), or there
    was an software interlock mechanism that added some cost
    to each operation.
    So, given these, where do you put all of the code that is involved in
    the window system - including the graphics rendering library?
    Remember that rendering libraries tended to be large, since
    hardware acceleration was almost non-existent.
    They couldn't be in each user process, since without being shared,
    they would take up an unacceptable amount of RAM. So the only
    way to get one copy of the code, and have it outside of the kernel,
    was to have it in one process, and to have applications
    communicate with this "window server".
    But today, while putting large amounts of code into the kernel is
    still a bad idea, rendering performance has improved dramatically,
    and most operating systems have shared libraries. The increase in
    rendering performance has outstripped Moore's law, which in turn
    has outstripped the increase in generally available bandwidth,
    making the overhead of shipping requests through the network an
    unacceptable burden.
    High per

  10. Don't remember who it was... by Short+Circuit · · Score: 2, Interesting

    But someone mentioned on Slashdot actually implemented what sounded to me like a pretty good idea. They used the structure of XML to transfer data between client and server.

    It makes sense, if you think about how graphical elements are grouped and have properties...

    1. Re:Don't remember who it was... by Pieroxy · · Score: 2

      It makes sense, if you think about how graphical elements are grouped and have properties...

      This is probably the worst application of XML I have ever heard. And believe me, people are using it for everything and nothing already.

      So your proposal is to use a protocol that takes 10x the size of the data it needs to transfer. XML (used that way) is just a file format. Why taking the most bulky one?

      Talk about a fast and lightweight system. I need to draw a pixel. Size of the XML packet: 165 bytes. Wow.

    2. Re:Don't remember who it was... by kvigor · · Score: 4, Funny


      <objection tone="disgusted">
      <body>xml is too sodding verbose for any use ever anywhere. Satan himself recoils before its horror.
      </body>
      </objection>

    3. Re:Don't remember who it was... by be-fan · · Score: 1

      If you're just drawing pixels at a time, you're screwed anyway. In any case, they were shipping WBXML (binary-XML) not XML.

      --
      A deep unwavering belief is a sure sign you're missing something...
    4. Re:Don't remember who it was... by Short+Circuit · · Score: 1

      Data isn't transferred in ASCII...it's a compacted binary format that follows the structure of XML, not the actual character set.

      As an example, think of replacing every possible tag with a three- or four-bit binary code. All data types are transferred in binary, not ASCII representations of the data.

    5. Re:Don't remember who it was... by Anonymous Coward · · Score: 0

      (response
      (tone "shrugging")
      (body "So skip the verbose crap and use s-expressions that do the same thing"))

    6. Re:Don't remember who it was... by Anonymous Coward · · Score: 1, Interesting

      XML is really bad for data representation; it's hard for both machines and humans to parse. S-expressions, as another poster mentioned, are far more convenient, especially where you have lots of structure and elements, but few larger blocks of text.

      Note that XML-style tags were reasonable for HTML (originally, not recently), but that was mostly because HTML pages primarily contained lots of text with occasional markup, rather than the other way around, which is the way XML is being used now...

    7. Re:Don't remember who it was... by lahi · · Score: 1

      That sounds an awful lot like Apple's PICT data type, doesn't it?

      -Lasse

    8. Re:Don't remember who it was... by julesh · · Score: 2, Funny

      You forgot to define a schema and use namespaces to reference all your tags, as most modern XML based systems seem to do. Here's a revised version:

      <?xml version="1.0" encoding="ISO-8859-1"?>
      <argument:objection xmlns:argument="http://www.mynamespaceserver.com/n amespaces/argument" tone="disgusted">
      <argument:body>xml is too sodding verbose for any use ever anywhere. Satan himself recoils before its horror.
      </argument:body>
      </argument:objection>

    9. Re:Don't remember who it was... by julesh · · Score: 2, Funny

      * 897 FETCH (ENVELOPE ("Sat, 21 Aug 2004 15:39:35 +0100" "Re:Don't remember who it was..." (("Julian Hall" NIL "jules" "acris.co.uk")) (("Julian Hall" NIL "jules" "acris.co.uk")) (("Julian Hall" NIL "jules" "acris.co.uk")) (("Julian Hall" NIL "jules" "acris.co.uk")) NIL NIL NIL "") BODY[1] {32}
      What, you mean like IMAP does?
      )

    10. Re:Don't remember who it was... by FooAtWFU · · Score: 2, Insightful

      XML is verbose, yes. That's why anyone sensible uses it as a mere file format and pipes it through gzip or something when loading and saving.

      --
      The World Wide Web is dying. Soon, we shall have only the Internet.
  11. Network bandwidth? by daVinci1980 · · Score: 2, Insightful

    One problem is his treatment of remote windows... He suggests sending them over as video streams.

    If networking bandwidth is a problem now with the X format (which is basically just sending clicks and so forth), why does he think the response is going to be any better when sending *a huge ton of pixel data*?

    Even if you assume that you only have to transmit differences, there are still cases where the difference will be several megs. (For example, a fullscreen clear in 1600x1200x32).

    --
    I currently have no clever signature witicism to add here.
    1. Re:Network bandwidth? by be-fan · · Score: 5, Insightful

      He's not suggesting sending over huge amounts of pixel data. If the app speaks OpenGL, you can ship over the OpenGL command stream. Since OpenGL was designed to support network rendering from day 1, this can be very efficient.

      --
      A deep unwavering belief is a sure sign you're missing something...
    2. Re:Network bandwidth? by be-fan · · Score: 1

      Bah, I'm a moron. He *does* apparently suggest sending pixel streams. Why would he do that??? OpenGL works just fine over a network!

      --
      A deep unwavering belief is a sure sign you're missing something...
    3. Re:Network bandwidth? by andreyw · · Score: 1

      ...and we already know of a protocol that does just that... RFB (err... VNC). Anyone who thinks RFB is the future, needs to get off his soap-box and get a stick of clue passed on to him.

    4. Re:Network bandwidth? by daVinci1980 · · Score: 1

      Yes, but even though Open/GL supports sending info over a network, what happens when you have view-dependent data.

      For instance, it would be efficient to send vertices, matrices, and large amounts of other data across the network (maybe). But sending texture data is going to suck.

      You can assume that he would require all clients to have all textures used within the application. But what about (for instance) the gimp?

      --
      I currently have no clever signature witicism to add here.
    5. Re:Network bandwidth? by be-fan · · Score: 1

      Well, the thing about texture data is that you'd have to send it anyway, no matter what you're system looks like. Take the Gimp for example: it keeps the image as a client-side buffer, and just sends the pixel data over the wrire for exposed regions.

      --
      A deep unwavering belief is a sure sign you're missing something...
    6. Re:Network bandwidth? by Brandybuck · · Score: 1

      If OpenGL is going to be used for everything, then it's going to be used for everyone's everyday 2D applications. If we're mapping an OpenOffice window (as an example) onto a 2D OpenGL plane, then isn't it essential a texture? And if we send the textures as pixel data, aren't we back at square one?

      --
      Don't blame me, I didn't vote for either of them!
  12. pixel pushing for remote connections? by DataPath · · Score: 2, Insightful

    His idea of making remote connections a highly compressed pixel stream doesn't excite me - it seems less than ideal.

    I would think that you would want to stream, when possible, rendering api calls, so that you can send pixel data as pixels, vector data as vectors, and 3d surface and texture data as such.

    Maybe have a method for negotiating what rendering api's are supported, stream those, and then render the rest as pixels and push those.

    My intuition tells me that doing so would make remote connection streaming a lot more efficient. Maybe someone with more knowledge than me can explain why this would/wouldn't be a good idea.

    --
    Inconceivable!
    1. Re:pixel pushing for remote connections? by Anonymous Coward · · Score: 0

      I would think that you would want to stream, when possible, rendering api calls, so that you can send pixel data as pixels, vector data as vectors, and 3d surface and texture data as such.

      ... Maybe someone with more knowledge than me can explain why this would/wouldn't be a good idea.

      Because then he'd have nothing to write about. This is exactly what X11 (plus GLX, XVideo, etc) do today.

    2. Re:pixel pushing for remote connections? by Splork · · Score: 1

      bandwidth is increasing much faster than display resolution and bit depth. while the first thought is "on no, thats bad we should send vectors" think again... it makes for an -extreemly- simple display server that doesn't need to keep being upgraded and updated for new 2d, 3d, etc vector tricks and complex negotiations with clients to see what it can/can't do.

      instead it pushes rendering to the client (shared libs, etc) and display to the server. no more complexities inbetween.

      vnc works well. this is similar but better.

  13. X is moving in this direction by be-fan · · Score: 5, Interesting

    As Gosling mentions, X is moving in this direction today. In a year or two, when the newest X changes are stable, the average GTK+ or Qt app will talk to the server via OpenGL. On most DRI-like setups, the route from GL to GPU looks like:

    OpenGL -> userspace command buffer -> graphics memory (DMA via Direct Rendering Manager).

    Text layout, fonts, etc, are all done server-side, and the only thing the "server" sees are pixmaps and GL commands.

    --
    A deep unwavering belief is a sure sign you're missing something...
    1. Re:X is moving in this direction by Anonymous Coward · · Score: 0

      That seems like a lot of bandwidth.

    2. Re:X is moving in this direction by be-fan · · Score: 1, Insightful

      Where? You mean OpenGL over a network link? It'll probably take more bandwidth than the regular X stream, but mostly because it'll lead to graphically richer apps. In any case, OpenGL was designed for network rendering, and there are very efficient network protocols for GL command streams.

      --
      A deep unwavering belief is a sure sign you're missing something...
    3. Re:X is moving in this direction by rd_syringe · · Score: 1

      X is always "moving" somewhere. Whenever someone points out the flawed designs of X, someone else mentions that they're "working on it."

      What Gosling describes sounds a lot like the new Longhorn technologies, but more importantly, it sounds like what OS X already does today.

    4. Re:X is moving in this direction by be-fan · · Score: 1

      OS X doesn't work like this today. As for 10.3, OS X does rendering via the CPU into memory buffers. It doesn't use OpenGL for drawing, only compositing.

      Anyway, when I say it's moving in this direction, I mean it's already taken some steps, and has some more steps to go. On a modern X setup, pretty much everything *is* client side, including fonts. EVAS and Cairo are fairly mature, and Qt4 and GTK+ 2.8 (which will be built on top of OpenGL and Cairo, respectively), will be out in 1H 2005. At the end of the day, X is comparable to where Windows is now, and when Longhorn comes out, it'll be competitive then too.

      Oh, and it's silly for you to criticize me for talking about what is coming, and then mention Longhorn which won't be out for another two years at least.

      --
      A deep unwavering belief is a sure sign you're missing something...
    5. Re:X is moving in this direction by Anonymous Coward · · Score: 0

      YHBT. YHL. HAND.

      Love,
      rd_syringe (aka Overly Critical Guy aka bonch)

  14. trust your eyes, not negative comments. by twitter · · Score: 4, Insightful
    I can't count how many times I hear on /. someone saying that X is too bulky, etc, etc. And here's Gosling saying (2 years ago) that X is headed in the direction of slim and lightweight.

    People who complain about X being "bulky", "bloated" and all that are trolls. It was designed on slim hardware and designed flexibly.

    The real test is to simply use it. Try Feather Linux or any of the other tiny distros out on some crufty old hardware and see for yourself. I've got a 90 MHz laptop that runs X just fine with 24MB of RAM thanks to Woody, fluxbox and other light applications. Gnome 1.4 also is snappy enough, though KDE is a little slow. X is not the problem if there is one! Feather runs even faster running testing and unstable Debian code and I suspect that two further years of going down Gosling's path is responsible. Of course newer hardware runs better and I don't have problems with things like xawtv, Xine or quake running with KDE or Window Maker on top of X.

    From where I stand, I have no idea what people are talking about when they complain about X. They never say anything specific.

    --

    Friends don't help friends install M$ junk.

    1. Re:trust your eyes, not negative comments. by Anonymous Coward · · Score: 0

      how about you shut the cheney up yourself?

    2. Re:trust your eyes, not negative comments. by dbarclay10 · · Score: 1

      You didn't mention anything specific :)

      The only times I've ever seen numbers compared (for instance, frame rate or how long it takes to perform given operations), the differences were so negligble such that they could be attributed to random cosmic rays. And in XFree86's favour typically (though very, very, very marginally).

      It's also worth noting that X11 is not "Linux", nor is the main implementation of X11 (XFree86 in other words) "Linux". Nor are they even particularly well-associated with Linux - XFree86 is developed largely by BSD nuts (meant in a nice way, one of them is a good friend of mine).

      Right, so anyways. Got any numbers? *Anything* other than foaming at the mouth?

      HTH, HAND

      (Yes, I Have Been Trolled :)

      --

      Barclay family motto:
      Aut agere aut mori.
      (Either action or death.)
    3. Re:trust your eyes, not negative comments. by Vskye · · Score: 1


      People who complain about X being "bulky", "bloated" and all that are trolls. It was designed on slim hardware and designed flexibly.


      Really? I'm not a troll, and running XFree86 from
      the current unstable on Debian isn't exactly fast
      on a Pentium 120MHz system. (in no way) Comparing
      my old system to the new 1.6GHz system is like
      driving a Pinto vs a Ferrari.



      The real test is to simply use it. Try Feather Linux or any of the other tiny distros out on some crufty old hardware and see for yourself. I've got a 90 MHz laptop that runs X just fine with 24MB of RAM thanks to Woody, fluxbox and other light applications. Gnome 1.4 also is snappy enough, though KDE is a little slow. X is not the problem if there is one! Feather runs even faster running testing and unstable Debian code and I suspect that two further years of going down Gosling's path is responsible. Of course newer hardware runs better and I don't have problems with things like xawtv, Xine or quake running with KDE or Window Maker on top of X.

      From where I stand, I have no idea what people are talking about when they complain about X. They never say anything specific.


      Running Xine, quake or anything else on my old
      computer is like my comparision above. Just don't cut it. Xine on the new system work's great. I also run Apache2, Xprt and XFS in the background, along with APRS software. I think KDE sucks, reminds me of Windows to much.. although I do run some KDE apps. WindowMaker is *my* choice, and I even gave KDE a shot for a few weeks... still hated it. XFree86 *has* eaten up resources as it matures, which is *ok*..., but saying that it's ok on a 90MHz system is bullsh*t..., really.

      --
      Life was hell, then I discovered Linux...
    4. Re:trust your eyes, not negative comments. by Anonymous Coward · · Score: 0
      What a bunch of tripe. What, on a P90 with 24MB of RAM? Jeesus, what do you do with that, play solitaire?

      I can't believe the mods fall for this type of thing.

    5. Re:trust your eyes, not negative comments. by jcr · · Score: 1, Flamebait

      From where I stand, I have no idea what people are talking about when they complain about X. They never say anything specific.

      You want specific? Here you go!

      -jcr

      --
      The only title of honor that a tyrant can grant is "Enemy of the State."
    6. Re:trust your eyes, not negative comments. by Anonymous Coward · · Score: 0

      It's a bit hard to find anything specific there as every other sentence consists basically of "X sucks".

    7. Re:trust your eyes, not negative comments. by kfg · · Score: 1

      Ten years later, most computers running X run just four programs: xterm, xload, xclock, and a window manager. And most xterm windows run Emacs! X has to be the most expensive way ever of popping up an Emacs window. It sure would have been much cheaper and easier to put terminal handling in the kernel where it belongs, rather than forcing people to purchase expensive bitmapped terminals to run character-based applications.

      Ok, have you got any specific complaints that are relevant to the past decade?

      KFG

    8. Re:trust your eyes, not negative comments. by aussersterne · · Score: 1

      This link is written by a clueless individual.

      All of the specifics he comes up with are either unrelated to X (i.e. the core dump drag and drop "bomb", file managers that don't update their file lists, etc.) and related instead to poorly written applications, or they're just fscking WRONG... for example, the discussion of magic cookie exchange and the way this joker tries to accomplish it rather than just piping through rsh/ssh demonstrates a serious lack of knowledge about the guts of the system.

      If the person doesn't know how to use it or how it works in the first place, I'm sure as hell not going to accept their criticism about what's wrong with it.

      --
      STOP . AMERICA . NOW
    9. Re:trust your eyes, not negative comments. by xenocide2 · · Score: 1

      As far as I can tell, the link is actually a crude form of satire. At least, that's what I think when I hear the promotion of putting terminal handling code in the kernel.

      --
      I Browse at +4 Flamebait

      Open Source Sysadmin

    10. Re:trust your eyes, not negative comments. by Anonymous Coward · · Score: 0

      I trust my eyes. I've used X for over 15 years on Suns and since Nov 1992 with SLS Linux. It is bloated and horribly slow. At work, we have about 400 Sony Vaio laptops with maxed-out RAM, and Firebird and Opera are too slow to use because they swap continuously. A simple "vmstat 1" will show the problem. Since we have 400 of them, we've invested a lot of time and money into trying to get them to run acceptably. I replaced Red Hat with Debian, removed all nonessential background programs, and even fallen back to using twm (yuck, Tab!). It's better, but still not pleasant to use. It can take 10's of seconds to display a complicated web page, like CNN's home page. We've had to fall back to using w3m (a text browser) with our internal systems to make them usable. They are all dual-boot into Windows, and they run an open window or two of MSIE just fine. X is bloated, and it is slow.

      > They never say anything specific.

      They almost *always* say specific things. You just don't want to hear it. You almost always see posts like "my XMHz computer with X MB of RAM runs application X very slowly." You remind me of my son when he puts his hands over his ears and mumbles so he can't hear something he doesn't want to hear.

    11. Re:trust your eyes, not negative comments. by twitter · · Score: 1
      You didn't mention anything specific :)

      I did not have to, but I did anyway. I mentioned specific window managers and applications that run well on a 90MHz P1 with 24MB of RAM under X.

      Right, so anyways. Got any numbers? *Anything* other than foaming at the mouth?

      No, and I don't know what you are talking about when you say "foaming at the mouth". You have my opinion that X works well enough for me with the applications I mentioned.

      --

      Friends don't help friends install M$ junk.

    12. Re:trust your eyes, not negative comments. by jcr · · Score: 1

      This link is written by a clueless individual.

      Guess again. The X-Windows chapter of the Unix Haters' Handbook was written by Don Hopkins. Look him up.

      -jcr

      --
      The only title of honor that a tyrant can grant is "Enemy of the State."
    13. Re:trust your eyes, not negative comments. by Anonymous Coward · · Score: 0

      Simple fix - start playing exclusively eighties music in the lift. Make the men wear skinny ties and the women shoulder pads. They'll regress and think they have more computing power than they had imagined.

  15. No thanks by ewe2 · · Score: 0, Flamebait

    ...if it's anything like his language design, I'll pass.

    --
    insecurity asks the wrong question irritation gives the wrong answer
    1. Re:No thanks by burki · · Score: 2, Funny

      specially if it is as sexy as his last window toolkit

  16. What about Y by rlmassie · · Score: 1

    X has it's flaws. This sounds good but doesn't have any implementation. But we seem to forget about our little fledgeling, the Y-Window system. I'm sure they could use some help.

  17. WHAT'S WRONG WITH PDFs? by Anonymous Coward · · Score: 0

    Can't your poor Lunix handle PDFs? Get a real OS, hippie!

    1. Re:WHAT'S WRONG WITH PDFs? by Anonymous Coward · · Score: 0

      Lunix handles pdfs just fine... ghostpdf, xpdf, acroread...

    2. Re:WHAT'S WRONG WITH PDFs? by Anonymous Coward · · Score: 1, Informative
      Can't your poor Lunix handle PDFs? Get a real OS, hippie!

      Most Linux distros come with PDF support included. Unlike Windows.

    3. Re:WHAT'S WRONG WITH PDFs? by Anonymous Coward · · Score: 0

      Some days MS is evil for bundling too much, other days not enough, I guess. Anyway, I've never seen a computer that didn't come with Acrobat Reader so you're just talking out of your ass.

    4. Re:WHAT'S WRONG WITH PDFs? by Mycroft_VIII · · Score: 3, Insightful

      Actually I haven't seen acrobat on a windows install cd yet. I also can't recall the last motherboard drivers cd that didn't have it.
      That said pdf is EVIL INCARNATE a simple 15 page document suddenly becomes a 4 meg monstrosity trying to be a 'book' in a medium where it's inapropriate. That is a pain to navigate, and you can't cut and past sections from it most of the time so you can have just the part you need in a small usuable text file.
      Needless to say I equate putting docs in a pdf file on par with most of the other stuff PHB's do with tech they don't understand.
      Sorry for the rant, but I just spent an hour downloading docs in 4 pdf's averaging 3 megs+ each that would have easily fit (images included) in less than a meg in any other format and been more usefull as well. The smallest was 164k, 3 pages, no images.

      Mycroft

      --
      https://signup.leagueoflegends.com/?ref=4c3ed6600b6ea
    5. Re:WHAT'S WRONG WITH PDFs? by sessamoid · · Score: 1
      That said pdf is EVIL INCARNATE a simple 15 page document suddenly becomes a 4 meg monstrosity trying to be a 'book' in a medium where it's inapropriate.

      Umm... the linked pdf weighs in at a whopping 75KB. While more than the equivalent HTML, most of us are on high-speed lines now and the difference is negligible.

      --
      "No, no, no. Don't tug on that. You never know what it might be attached to."
    6. Re:WHAT'S WRONG WITH PDFs? by Anonymous Coward · · Score: 0

      Man, you are so full of shit. What do you want? Word .doc files? Be happy we have PDF so that everyone can view the file and it looks the same for everyone. It's just a sad fact of life that Windoze doesn't make ps.gz files that well.

      Speaking of which, I do find PDF a superior format to Postscript. Slightly larger than gzipped ps files, usually, but not too much. More easier to navigate, assuming the index has been made by the document creator.

      If you spend an hour downloading 12 Mb you should get a faster line, or find the documents elsewhere.

      You can always print the PDFs, or are you a "DEAD TREE" zealot? If so, do you cry "dead tree" when you wipe your ass in the toilet? Why not just wash it.. sheesh.

      Sorry for the rant but people who in principle oppose PDF are so full of shit I can't even begin to describe it.

    7. Re:WHAT'S WRONG WITH PDFs? by ballfire · · Score: 1

      Try to read a PDF from a ssh session, you, insensitive clod!

    8. Re:WHAT'S WRONG WITH PDFs? by Anonymous Coward · · Score: 0
      Be happy we have PDF so that everyone can view the file and it looks the same for everyone.

      It usually doesn't matter if it looks the same for everyone. This article was a good example.

    9. Re:WHAT'S WRONG WITH PDFs? by anynameleft · · Score: 1
      Here the great strength of X comes into play: you can forward it straight through SSH!

      Wait, you use Putty? Then there are always the utilities like ps2txt and pdfps.

    10. Re:WHAT'S WRONG WITH PDFs? by ballfire · · Score: 1

      Yes, x forwarding is great, now, try to do it over a modem line.

      Plain text is still of great useness in some cases, when PDF gives no extra advantage... the simplest format should be used, IMHO

    11. Re:WHAT'S WRONG WITH PDFs? by Doctor+Faustus · · Score: 1
      That said pdf is EVIL INCARNATE a simple 15 page document suddenly becomes a 4 meg monstrosity... each that would have easily fit (images included) in less than a meg in any other format

      I don't get why Unix people seem to love PostScript and hate PDF when PDF is really just a semi-binary, random-access version of PostScript with less potential to cause trouble (since it's not a full language).

      PDF and PostScript are very efficient ways to store a document. You can instruct either to draw a 1 point line 2 inches from the top of the page, from half an inch from the left to half an inch from the right (a PostScript version would be "1 setlinewidth 36 648 moveto 540 0 rlineto stroke"), print "Sales Report" in 14 point Helvetica at the top, and print a page full of detail lines in 9 point Times, for probably 3kb with PostScript or 4kb with PDF (because PDF has a file-pointer index added to allow random access). If you have inline images, PDF is actually better, because it can cleanly put the image data into a binary object (everything in PDF is an object; each is numbered, they reference each other by number, and the index says, basically, "object 1 is at bytes 17-38, object 2 is at bytes 40-452, etc."), while the PostScript version would have to be a procedure and not everything maps cleanly.

      The problem come from the data source, in two ways:
      1. PostScript and PDF's natural letter spacing is perfectly good. I've used PostScript to send something like two million pages of phone bills using without ever wanting to do anything to override PostScript's defalt spacing. However, the PostScript/PDF (Adobe Imaging Model, which also includes SVG) spacing is not quite the same as what Windows or any other display system does (unless based on PostScript, like NeWS, or on PDF, like I've heard OS-X is). Since WYSIWYG requires that the print output look exactly like the screen output, much lower-level documents are created. A typical PostScript print file that was created by a print driver will look like "72 72 moveto (J) show 72.4 72 moveto (a) show 72.6 72 moveto (c) show", etc., while something I wrote by hand would simply be "72 72 moveto (Jackdaws love my big sphinx of quartz) show".

      2. I don't really know other operating systems that well, but the Windows MetaFormat system that Windows uses to send information to print drivers seems to be really low level. The application used to create a document may know that it contains the same image 5,000 times so it only stores it once, and PDF could also store it just once, but that information is lost by the print driver sytem. This isn't necessarily a bad design on Windows part, since most printers use PCL (which, I believe, came from Hewlett Packard, not Adobe) and PCL can't do anything useful with that sort of information.

    12. Re:WHAT'S WRONG WITH PDFs? by iantri · · Score: 1
      If 15 page PDFs are that large and cant be cut and pasted from then the fault is the idiot who created it -- many manuals are created by scanning a series of images and sticking them in a PDF. This offers all the benefits you can imagine over a series of images; none.

      If you, however, take a Word document and create a PDF from it using decent software it will be reasonably small, since the PDF will actually contain the text and the instructions on how to draw it, instead of an image of it.

    13. Re:WHAT'S WRONG WITH PDFs? by Anonymous Coward · · Score: 0
      What's wrong with PDFs? Where do I start? You want more?
    14. Re:WHAT'S WRONG WITH PDFs? by Mycroft_VIII · · Score: 1

      Since you were the most strident I'll respond here, though this is a general response and clarification, not aimed at any one person (except maybe the guy(s) who foisted pdf on the innocent).
      Someone said if a pdf is way to huge then it's the document creators fault, in that case most of them are idiots.
      There are VERY few cases where such a rigid (from the document READERS perspective) format is needed. Usually for typsetting or properly connecting graphs etc. to text. For both of those there are better tools available.
      I've seen info that would be just fine as a simply 5k text or even rich-text document bloated out into a 1meg+ monstrosity for no reason.
      And that just covers some of the stupid doc creator problems. There is probably a higher percentage of people who are cluefull about securing thier xp boxes than are about pdf's.
      The other problems of PDF stems from thier faulty premise. That being that since you can have text in both therefore a computer screen can be treated as a book. This results in an unwieldy interface, that clutters much of the area in the document with interface that should be reading space, you also can't do anything with word wrap so your stuck with whatever the doc creator chose.
      PDF just tries to hard to creat the false and innapropriate illusion that your reading a book.
      Add in the frustration when the doc creator decides, NO you can't cut and paste any of this, you'll just have type manually in a text editor. or no you can't print or save or whatever. it's flat out stupid. Not to mention that untill very recently the stupid reader wouldn't even save all your settings and had stupid defaults that made a broken interface even worse.
      And this has nothing to do with unix vs windows vs mac vs amiga or whatever. The format is designed to do 2 things, one ill-advised, the other unwanted. (look like a book on a computer screen, and controll presentation DESPITE the wishes of the reader).
      Between faulty premise and faulty users you wind up with a hard to use document that is usually grossly larger than needed.

      Mycroft

      --
      https://signup.leagueoflegends.com/?ref=4c3ed6600b6ea
  18. Quite frankly I wouldn't let him design a windowin by melted · · Score: 0

    g system. I mean, seriously. I'd understand if someone from Apple was talking about this stuff, but looking at Java, especially the parts in any way related to the UI, I can't help but wonder just how badly a company can shoot itself in the foot. The only reason why we're not seeing tons of Java apps everywhere is because of this moronic and slow Swing library.

  19. What about Drag n Drop and the Clipboard??? by Brian_Ellenberger · · Score: 3, Interesting

    Maybe its because Gosling is coming from X11 land and its sucky drag n drop/clipboard implementations but this is seriously a big deal is a Windowed operating system. In a Windowed Operating System, it should be easy to move data from one application to another---even though they are made by different companies. And not just text either---things like pictures as well. Going beyond this, dynamic linking and embedding is a handy feature as well.

  20. Enlightenment DR17 re-write? by Anonymous Coward · · Score: 1, Interesting

    Does this mean that Rasterman and the Enlightenment crew are going to have to re-impliment Enlightenment DR17? Maybe next year will be the year of E... but no matter, doing the job correctly is more important than rushing a release. Still I wish they could get sponsored or something to speed up their developement. How long has it been? *sigh* and no, I'm not even a [great] programmer, that's why I have to make such a silly comment to begin with...

    1. Re:Enlightenment DR17 re-write? by beakburke · · Score: 1

      Hmmm good question. And I was looking forward to E17, being that E was the best and coolest in it's day (before GNOME and KDE were all the rage and *box/XFCE came to dominate the low end).

      --
      ----- Question authority, but not ours. Hate the man, but we're not him.
    2. Re:Enlightenment DR17 re-write? by commrade · · Score: 1

      e17 has an OpenGL backend; which would be architectually very compatible with upcoming X.org releases. This (probably) won't make e17 delvelopment any slower than it already is.

  21. You know... by Short+Circuit · · Score: 1

    ...that gives me an idea.

    Run an X server on (insert your preferred platform), then run your X client apps on each of the platforms they're needed on. Be it Linux, Win32, OS X...whatever.

  22. How about by Anonymous Coward · · Score: 1

    A system where the client simply sends a command to the server like "ls" or "cp x y", etc. The client is free to display it however it wishes.

    One could implement a web client file manager (with Flash or some future SVG thingie or whatever).

    1. Re:How about by Anonymous Coward · · Score: 0

      Have you ever heard of bash, csh, sh, ksh, mc, Gentoo (the file manager, not the Linux distro), Norton Commander, File Manager, or Windows Explorer? I hear that thing like this already exist...

    2. Re:How about by Anonymous Coward · · Score: 0

      Reverse that example? The client is on the remote machine in X and the server is located on the local machine. Strange no?

  23. Re:For those that can't open PDF by Anonymous Coward · · Score: 0

    Go buy yourselves a decent computer.

  24. If I had to design the app over again... by lawpoop · · Score: 2, Interesting
    ... I would choose an windowing system that did more work.

    Seriously, all we are talking about is modularizing the windowing system. If the WS is as simple as possible, people are going to rely on libraries and windowing toolkits to get their work done. I guess that's already happened with GTK, etc.

    --
    Computers are useless. They can only give you answers.
    -- Pablo Picasso
  25. Really dumb, missing the point entirely by JessLeah · · Score: 2, Insightful

    "His design is to make the window system do the absolute minimum and move all the work into the client."

    This is ridiculous. Look, ALL modern software has gotten so incredibly bloated and complex that it's just a joke. What we need is a windowing system that adopts the concept of Apple's old "toolbox"-- windowing functions and basic graphical functions AS PART OF THE CORE SYSTEM-- without the horrible kluge that I've heard "classic" Mac OS coding was. The concept was nice, though.

    Look at GNOME, KDE, Windows XP. It's fucking ridiculous. How many fucking library dependancies do you need for a modern windowing system? Have you ever run 'ldd' on a modern GNOME or KDE app? It's enough to make you vomit.

    It shouldn't have to be so fucking complex. The windowing system should offer basic 2D and 3D functions, widgets (file selection boxes, drop-downs, radio buttons, checkboxes, crap like that), they should be efficiently and tightly coded (preferably in C, with some ASM for speed on common architectures, and in the most CPU-intensive crap like 3D).

    Look at what the Amiga was able to do with a 680x0. Sure, it had some custom chips too, but it was still a 680x0-- and modern CPUs are so fast that those extra chips are no longer necessary. With an old Mac Plus, it would take maybe a minute to boot up System 6... and with a modern Windows XP or RedShat/Fedorka box, it takes... maybe a minute. And this is progress? Also, most programs for System 6 required how many libs? Count 'em... YES, THAT'S RIGHT: ZERO! They simply used Toolbox calls, and any functions that were needed beyond that were not so hard to include right in the binary itself.

    Simplicity, people. What we need is simplicity. For most tasks, a P4 running XP "feels" no faster than a '386 running Windows 3.0 in '386 Enhanced Mode did.

    And that is sad...

    1. Re:Really dumb, missing the point entirely by prockcore · · Score: 1

      Also, most programs for System 6 required how many libs? Count 'em... YES, THAT'S RIGHT: ZERO! They simply used Toolbox calls

      What do you think the toolbox was? A library.

    2. Re:Really dumb, missing the point entirely by Anonymous Coward · · Score: 2, Insightful

      Well, what the problem *really* is isn't so much that People Are Making Bloat, but that Bloat Is Made To Solve Certain Percieved Problems. In the older days, everyone wrote their own GUIs if they wanted them - OR they used the single included toolkits.

      But now neither choice is considered applicable. We want a unified desktop that's also infinitely customizable, so that you choose a theme or default fonts or whatnot and it goes everywhere automagically.

      This massive chain of desktop environment dependencies is some attempt to do everything for us. It's silly, of course.

      The better solution would probably be not to integrate the "desktop look&feel" from the ground up, with unified configurations and whatnot, but to build every app from the ground up, with its OWN look and feel, using whatever kind of libraries they want to. The best apps will offer extensive customization so as to make unifying the environment a matter of having an appropriate theme for everything.

      I guess there could be some amount of crossover in configuration settings, but what exists today in Gnome and KDE feels overextended. It's no wonder they're so bloated.

    3. Re:Really dumb, missing the point entirely by be-fan · · Score: 4, Insightful

      How many fucking library dependancies do you need for a modern windowing system?
      Quite a lot, and they are all pretty necessary.
      I think you're understimating all the things that modern applications are required to do.

      The windowing system should offer basic 2D and 3D functions, widgets (file selection boxes, drop-downs, radio buttons, checkboxes, crap like that),
      What about ListViews? TreeViews? IconViews? What about internationalized text? Text-layout libraries? Image-loading libraries? Component libraries? HTML renderers? Interprocess-communications libraries? Event-notification libraries? Audio libraries? You can't "un-invent" all of these features. Few people want to go back to the bad-old days of poorly formatted text, apps that can only read BMP files, each app needing to reinvent stuff like PDF display and HTML display widgets, apps that can't talk to each other, apps that can't handle multimedia, apps that don't notice when things in the system change, etc, etc. Doing things "quick, fast, and shitty" is a lot easier than doing things "right," but you'd be stupid to want "shitty" over "right."

      They simply used Toolbox calls, and any functions that were needed beyond that were not so hard to include right in the binary itself.
      What the fuck do you think the toolbox was? It might not have been a shared library (it was a widget in ROM), but it *was* a library nonetheless. It was no different than Qt is, only it can't handle HTML, internationalized text, etc, etc.

      --
      A deep unwavering belief is a sure sign you're missing something...
    4. Re:Really dumb, missing the point entirely by mike_sucks · · Score: 3, Insightful

      JWZ once said about Mozilla bloat: "Mozilla is big because your needs are big."

      People demand a lot from their desktop these days, so their desktop does a lot of things. It can take a lot of code to do it all. Sure, you may get smaller binary sizes and no library dependencies writing everything in assembly, but a) it's infeasible and b) the desktop would lack most of the features people want.

      But you're missing the point. Ever done an ldd on X or an Xserver? That's what Gosling is talking about.

      Using this new windowing scheme with have little/no effect on existing clients because they will still use some toolkit like GTK to do their windowing and widgets. It's not like that client developers would have to write their own widget set for each client, they will still use GTK or Qt or whatever, just like they do today.

      What will need to change is the toolkits themselves.

      If you had actually RTFP you would see that he was advocating a windowing system that was even more simple what you suggest.

      --
      -- "So, what's the deal with Auntie Gerschwitz et all?"
    5. Re:Really dumb, missing the point entirely by TheInternet · · Score: 2, Insightful

      With an old Mac Plus, it would take maybe a minute to boot up System 6... and with a modern Windows XP or RedShat/Fedorka box, it takes... maybe a minute. And this is progress?

      The question is could most the average consumer realistically replace their current machine with a Mac Plus? I believe the answer is no. Why? Because there are lot of things that weren't around in those days that we take for granted now.

      Imagine trying to tell people that they can no longer use 24-bit color, watch videos, play MP3s, surf the web, render PDFs, use instant messages, compose home movies, download photos from their camera, create DVDs. Do you think it would work? :)

      Obviously all this code has to go somewhere and has to be loaded at some time. And don't forget about internationalization and accessibility features.

      - Scott

      --
      Scott Stevenson
      Tree House Ideas
    6. Re:Really dumb, missing the point entirely by Dwonis · · Score: 1
      How many fucking library dependancies do you need for a modern windowing system? Have you ever run 'ldd' on a modern GNOME or KDE app? It's enough to make you vomit.

      What's wrong with that?

    7. Re:Really dumb, missing the point entirely by Anonymous Coward · · Score: 0

      So you measure performance by the number of libraries they open? Sounds like you're missing the point.

    8. Re:Really dumb, missing the point entirely by Brandybuck · · Score: 2, Insightful

      How many fucking library dependancies do you need for a modern windowing system? Have you ever run 'ldd' on a modern GNOME or KDE app? It's enough to make you vomit.

      You're talking about windowing systems, not application frameworks. There's a difference. Using ldd on this currently running Konqueror process, I see the following "windowing system" dependencies: KDE, Qt and X11. That's it. And most of KDE and Qt are NOT part of the "windowing system".

      Most of the libraries you see in the ldd are part of X11. Don't consider them extra dependencies just because X11 has been split. The dependency is still just one X11 package (not counting fonts).

      Don't place stuff like expat, jpeg, fam, libc and the like under the "windowing system" category. And leave off the app framework libraries of KDE. They're going to be used by your application no matter what the underlying windowing system is.

      --
      Don't blame me, I didn't vote for either of them!
    9. Re:Really dumb, missing the point entirely by Anonymous Coward · · Score: 0

      What about ListViews? TreeViews? IconViews? What about internationalized text? Text-layout libraries? Image-loading libraries? Component libraries? HTML renderers? Interprocess-communications libraries? Event-notification libraries? Audio libraries?

      Well out of that list at least internationalized text, component libraries, HTML renderers, Interprocess-communications libraries and Audio libraries should definitely NOT be part of a windowing system.

    10. Re:Really dumb, missing the point entirely by de+Selby · · Score: 1

      "JWZ once said about Mozilla bloat: "Mozilla is big because your needs are big.""

      About that quote... My needs aren't that big. Almost nobody needs an XUL interface to their browser. That's why there are so many smaller, faster, better Gecko-based browsers that work just fine--and what's missing from them is a mystery to the casual user.

      They wanted to built a suite. People didn't want one.

      They wanted to make Mozilla a platform for writing cross platform, network apps. People didn't want it to be one.

      They wanted to use it to eventually make productivity apps. That's just stupid.

      They've been turning it around, but they still have a while to go.

    11. Re:Really dumb, missing the point entirely by de+Selby · · Score: 1

      "Imagine trying to tell people that they can no longer use 24-bit color, watch videos, play MP3s, surf the web, render PDFs, use instant messages, compose home movies, download photos from their camera, create DVDs."

      Or imagine a simple little system where there is one component (call it a driver) that can deal with hardware and an abstraction (call it an api) that anything can get at in the same way, regardless of the driver underneath.

      Then we could have 24-bit color, videos, mp3's, tcp-ip and the web, images from your camera... and it wouldn't really be that big or inefficient. Some OS's specialize in media and are small and efficient. I'd be all for that!

      But, no. We have something that started out like that and became: hardware -> driver -> abstraction -> abstraction -> abstraction -> abstraction -> abstraction -> abstraction -> abstraction -> abstraction -> abstraction -> abstraction -> abstraction -> abstraction -> ... etc.

      But at least it's not out of place. Everything else is wrapped in a wrapper, in a wrapper, in a wrapper, in a wrapper...

    12. Re:Really dumb, missing the point entirely by ensignyu · · Score: 1

      Okay, let's look at System 7.5 running on a 100 mhz PPC. Not quite as fast as System 6, but could use 24-bit color, watch videos, play MP3s, surf the web, render PDFs, use instant messaging, compose home movies, download photos from a camera. Consumer DVD/CD-R burning didn't exist back then.

      I set up Basillisk II (a 68k emulator) and had it run Mac OS 7.6 on a 633 mhz Celeron. Absolutely blazing fast.

      It wasn't perfect, of course. And the lack of preemptive multitasking, memory protection, journaling filesystems wasn't so great -- although it could have been done back then if they chose to. But there isn't that much we can do now that couldn't be done on OS 7 -- if the hardware were up to the job, at least. Not bad for something nearly a decade old.

      A better statement is that the programs had fewer features then. No videoconferencing over IM systems or revision-tracking word processors. No super-complicated Javascript+DOM stuff in browsers.

      I think a big reason why software is slower today is flexibility, compatibility, and programmer time. Software on the Classic Mac OS didn't make much use of non-system libraries. Changing stuff in the system involved writing extensions that would override code in the system ROM. Making your own window decoration and widget styles involved clever hacks. Handles required locking and unlocking code to manage memory efficiently.

      Nowadays, we have widget toolkits, which -- as mentioned elsewhere in this discussion -- require tons of libraries. Abstraction everywhere. C++, Java, C#, Objective-C, Perl, Python, etc. Preemptive multitasking has overhead. Compatibility layers and emulators. No more hand-written assembly or highly-optimized graphics tricks -- well, except in games. All of this to make the programmers' lives easier, and get a product done quicker. Which is good, because software is pretty cheap now. And we get a lot of useful features.

    13. Re:Really dumb, missing the point entirely by Anonymous Coward · · Score: 0

      Sounds like you are describing a desktop environment, not a window manager. I mean, Audio, wtf?

    14. Re:Really dumb, missing the point entirely by be-fan · · Score: 1

      They aren't part of the windowing system. But they *are* part of the application framework. The original poster wasn't talking about what should be in the windowing system, he was bitching about all the dependencies KDE and GNOME apps have. Try to keep up with the thread, 'k?

      --
      A deep unwavering belief is a sure sign you're missing something...
    15. Re:Really dumb, missing the point entirely by Anne+Thwacks · · Score: 1
      How many fucking library dependancies do you need for a modern windowing system?

      Quite a lot, and they are all pretty necessary.

      Yeah, we really need all these dependencies on audio related crap to install a Windowing product on a machine with no soundcard.

      Its pretty damn clear that nobody on the KDE design team knows what dependency means. There is absolutely NO reason to have ANY sound related functions whatever. Equally, why all the games dependencies? If I am building a radius server, and I want some tools to manage the data graphically, why do I need to install a bunch of GAMES?

      --
      Sent from my ASR33 using ASCII
    16. Re:Really dumb, missing the point entirely by be-fan · · Score: 1

      1) KDE is a *desktop* environment. It's not a windowing system. It is assumed that desktops have soundcards, and applications need to support it. Lot's of apps need sound support. People would bitch if IM clients couldn't beep when you received a message, or if you couldn't have an audio player that integrated neatly into the desktop, etc.

      2) There are no games dependencies. The fact that you think so shows that you don't understand what the KDE dependencies really are. Hint: "apt-get install kde" is a meta-package that explicitly installed everything KDE has available. The only required things are "arts," "kdebase" and "kdelibs", and neither of those have any games dependencies.

      --
      A deep unwavering belief is a sure sign you're missing something...
    17. Re:Really dumb, missing the point entirely by FooBarWidget · · Score: 1

      In fact, using ldd is the wrong way. ldd displays the entire dependancy tree - meaning it displays the dependancies of the dependancies.
      Use objdump -p foo | grep NEEDED

    18. Re:Really dumb, missing the point entirely by Anonymous Coward · · Score: 0

      yeah, xcept that the quote you replied to starts with The windowing system should offer ...

      followed by your long list of stuff that does not belong in a windowing system.

      But I guess your point is (partly) valid in the KDE/GNOME context. I personally believe that there are too many layers/dependencies there, but I don't really care to start an argument about that.

    19. Re:Really dumb, missing the point entirely by iantri · · Score: 1
      So?

      Implement a basic set of widgets, including a few of the more important ones you mention (WTF? Audio libraries?), put in a strong system OLE/dynamic linking type thing and leave the rest up to the individual apps.

      This is pretty much the way it is in Windows, and aside from the horrendous mess that the API appearantly is (though this is the fault of poor coding, I think), it seems to work pretty well.

      And there aren't 15 different widget libraries that each do the same basic functions.(*COUGH*QTGTKwxWindowsAthenaMotifFLTK*CO UGH*)

    20. Re:Really dumb, missing the point entirely by mike_sucks · · Score: 1

      "My needs aren't that big."

      No, but other's are.

      "Almost nobody needs an XUL interface to their browser."

      For Moz, Firefox and others, that's not true. They need XUL in the same way that Gnome apps need GTK.

      "That's why there are so many smaller, faster, better Gecko-based browsers that work just fine--and what's missing from them is a mystery to the casual user."

      Like XUL-based Firefox, that is at best a 4.7M download?

      The Debian Firefox package is 10M. Compare to Epiphany, which is about 2.5M. That's only a difference of 7.5M which in the scheme of things is hardly significant, but Ephiphany doesn't even come with Gecko, NSS, NSPR and all of the other (essential) components that are included with Firefox and are essential for it to run. It takes more space to install Epiphany on my Debian machine that it does Firefox.

      XUL is not heavyweight. It's just another markup language that Gecko can render.

      "They wanted to built a suite. People didn't want one."

      Many people do. Some of them complain bitterly everyday on Mozillazine about the suite being the poor cousin. In terms of footprint and convenience it does make some sense.

      "They wanted to make Mozilla a platform for writing cross platform, network apps. People didn't want it to be one."

      No, the Mozilla developers wanted a platform so they could write cross-platform apps, namely the suite, then later Firefox and othe others. But don't forget all of the extensions and developer tools that are also written for the platform and hence are all available on Windows, MacOS and Linux because of that.

      "They wanted to use it to eventually make productivity apps. That's just stupid."

      I don't know if that's the case or not, but why is it stupid? Their approach isn't any different to how OpenOffice works.

      "They've been turning it around, but they still have a while to go."

      I think they're there already. They have many kickarse products, which I use on a daily basis.

      --
      -- "So, what's the deal with Auntie Gerschwitz et all?"
    21. Re:Really dumb, missing the point entirely by be-fan · · Score: 1

      Implement a basic set of widgets, including a few of the more important ones you mention (WTF? Audio libraries?), put in a strong system OLE/dynamic linking type thing and leave the rest up to the individual apps.
      You're confusing two things. The poster I was replying too was bitching about all the dependencies KDE/GNOME apps have. My point was that those dependencies exist because people expect their apps to do a lot of things that people didn't back in the day.

      We weren't talking about what functionality needs to be in the server. In truth, none of what I mentioned needs to be in the server (except some small primitives for synchronization of graphics with sound). It can all be done client-side. Putting widgets server-side is dumb for two reasons:

      1) Most clients need custom widgets, so you have to implement a low-level immediate-mode API in addition to the widget-oriented API. There is no point in doing that when you can just do the immediate-mode API and be done with it.

      2) It restricts evolution. If X had standardized on a toolkit back in the day, it'd still be using Athena, and that would suck royally.

      And there aren't 15 different widget libraries that each do the same basic functions.(*COUGH*QTGTKwxWindowsAthenaMotifFLTK*CO UGH*)
      First of all, nobody uses Athena, Motif, or FLTK apps any more than people use Win 3.1 apps in Windows. Second, wxwindows is a wrapper over GTK+ on Linux. Third, you're obviously not a Windows programmer. Windows programs have several different toolkits. They are, along with the apps that use them:

      1) OWL (old Borland apps)
      2) VCL (new Borland apps)
      3) Win32 (most Windows apps)
      4) Office (Microsoft Office)
      5) .NET 1.x (Visual Studio)
      6) Whatever toolkit Visio XP uses.
      7) Qt (many apps, including some consumer-level stuff like Adobe PhotoAlbum)
      8) Numerous custom toolkits and widget sets (Ephpod, iTunes, QuickTime, Windows Media Player, WinAmp)

      That's a lot of toolkits, and four (soon five!) from Microsoft alone! When Longhorn comes out, you can add .NET 2.x to that list.

      --
      A deep unwavering belief is a sure sign you're missing something...
    22. Re:Really dumb, missing the point entirely by TheInternet · · Score: 1

      Then we could have 24-bit color, videos, mp3's, tcp-ip and the web, images from your camera... and it wouldn't really be that big or inefficient. Some OS's specialize in media and are small and efficient. I'd be all for that! But, no. We have something that started out like that and became

      Programming at lower levels always yields speed, but you're trading in development speed, ease of debugging, and overall flexibility and maintainability.

      It's always easy to provide simplistic cases where low-level, low-abstraction technique seem to work -- but that's the programmer's perspective. The business owners and end users have all sorts of crazy ideas that require a flexible, properly abstracted architecture. And it becomes even more important when you consider all of the low-level code that is being shared between various platforms at this point.

      You can, of course, have too much abstraction -- (and actually make things too complicated in the process!). I think we'd agree on that. I can think of some programming languages that take this route. :)

      - Scott

      --
      Scott Stevenson
      Tree House Ideas
    23. Re:Really dumb, missing the point entirely by Edie+O'Teditor · · Score: 1
      People would bitch if IM clients couldn't beep when you received a message
      I'm deaf you insensitive clod!!!!
      --
      If X is the new Y, and Y is "X is the new Y", solve for X.
  26. if I made a windowing system... by mcovey · · Score: 2, Insightful

    it would have a control panel, and every app would have to register with it, so it's all central (of course they can link to their part of it from tools>options or whatever. There would be one toolkit, so everything would always look the same. there would be a quicklaunch menu like on windows, where the overflow becomes a menu. There would be good support for hotkeys, drag and drop, and an overall common look and feel. I think windows comes closest to this, but the lack of the ability to theme explorer without hacks sucks, and of course it's windows. I wish someone would write an explorer clone for linux.

    --
    Amen.
    1. Re:if I made a windowing system... by elcugo · · Score: 2
      I wish someone would write an explorer clone for linux.

      Er, have you heard about Konqueror?

    2. Re:if I made a windowing system... by dbIII · · Score: 2, Insightful
      it would have a control panel, and every app would have to register with it
      This is impractical, and doesn't happen anywhere.

      Look at MS Windows - if you go into add/remove programs you will see a few things listed. Do a find for *.exe *.com and other executable extensions. You find a few hundred more applications that are not listed there, many stand alone like ntbackup, cmd and tens or hundreds of others. Now consider a *nix system, which has the philosopy of lots of little programs that do one tiny job well. How are you going to list all of those? The best that's done is to list the commonly used things, taken to extremes with MS Windows XP where it lists recently used programs and hides the rest.

      I wish someone would write an explorer clone for linux
      I think the gnome people are on it - right after they do a windows registry clone and a talking paperclip.

      The problem with any explorer clone is that if it looks like MS windows and sometimes acts like MS windows it will confuse when it sometimes can't act that way because the underlying system is so different - even things as trivial as people looking for a C: drive. We have to make things as usable as possible but still make it obvious to people that they are not on an MS windows system with all the assumptions that come with it (file extensions, ejecting CD's and all the rest).

    3. Re:if I made a windowing system... by BenjyD · · Score: 2, Insightful

      I think you're confused about what a Windowing System is. The windowing system is just the part that handles the drawing of client apps to the screen and moving them around, nothing else.

    4. Re:if I made a windowing system... by Billly+Gates · · Score: 1

      Which is why KDE and gnome were formed.

      This made X inferior to macos and windows which had everything integrated fully.

  27. He's talking about the Amiga by MagikSlinger · · Score: 4, Interesting

    For my fellow Amigaites out there:

    I would build a "device driver" that did nothing more than manage the clipping lists and hand out graphic device ports. This might actually be best done at user level, rather than a device driver, using shared memory and semaphores.
    I wouldn't use signals for anything. Everything would go through a unified message queue (along with mouse and keyboard events).

    *sniff* That brings back memories. Sadly, my Amiga RKMs now support my monitor, but oh... this is so familiar. :-)

    For the rest: the Amiga had a graphics library layer that talked directly to the hardware. On top of that was built the "Layers" library which does what Gosling is talking about. It just handled clipping lists and "stacking" without any other details. On top of this layer was built the GUI.

    Also, the Amiga used a single message port to communicate with the application. You could have more msg ports, but rarely needed it. You waited politely for a message, fetched it, then acted upon it as you will. All your GUI events queued up nicely in the message port.

    --
    The bitter lessons of a veteran coder: http://bitterprogrammer.blogspot.com
    1. Re:He's talking about the Amiga by Ben+Hutchings · · Score: 1
      For the rest: the Amiga had a graphics library layer that talked directly to the hardware. On top of that was built the "Layers" library which does what Gosling is talking about.

      The implementation of clipping is built into the low-level graphics library. The layers library is just used for setting up and maintaining the layer and clip list information, if I rememebr correctly

      Also, the Amiga used a single message port to communicate with the application.

      Actually, by default it allocated one message port per window. It is possible to share ports between windows, but it's a bit of a hack (albeit one that was officially documented and supported). See the CloseWindowSafely.c source file for the messy details.

  28. Astonishing that Gosling is getting things wrong.. by Anonymous Coward · · Score: 2, Insightful

    Since the advent of Quartz Extreme, the "clip list" should be a thing of the past. There's no application level support for clipping. There's barely Kernel support for CLipping. It's all 3-D graphics card clipping at this point. The "refresh event" should be a thing of the past by 1996, much less 2004, despite any Plan 9 patents.

    Clip list for mouse events, sure. But for screen refresh? In 2004? I thought this was already a dead issue!

  29. THIS is the worst application of XML by anti-NAT · · Score: 1
    --
    The Internet's nature is peer to peer - 20050301_cs_profs.pdf
    1. Re:THIS is the worst application of XML by Pahalial · · Score: 1
      Ahahahahahahaha. Part of their rationale:
      The legacy control protocols are too tightly packed. This makes it very difficult for third parties (e.g., routers, firewalls, and the US Department of Homeland Security) to analyze the traffic as it flows by.
      (Emphasis mine)
      --
      Stuff.
  30. GMail? by Alex+Reynolds · · Score: 2, Interesting

    Gmail's interface is an interesting design, hiding away functionality until you need a specific feature.

    I always wondered if a generic window system could be designed in the same modular way, with smart application modules anticipating your behaviors and adding more and more specific, functional components into the UI as you perform a particular task.

    1. Re:GMail? by Anonymous Coward · · Score: 0

      Microsoft has already done this with their "Personalized Menus". You know these; those annoying start menu and Office menu items that are hidden and appear only once you use them?

      Personally, I hate the things.

  31. On top of that by be-fan · · Score: 4, Interesting

    In order to get good performance out of such a simple window system, applications need to be reasonably intelligent. One thing I think this entails is getting rid of immediate-mode APIs as the standard way to draw, and make retained-mode APIs the standard way to draw. To refresh your memory:

    - An immediate mode API is something like GL or Cairo. The app sends drawing commands, and the engine executes them immediately. If something moves and needs to be redrawn, the app musdo all the work of redrawing the scene.

    - A retained-mode API is something like EVAS. Instead of submitting drawing commands, specifies what the scene looks like in a scene graph. The canvas library does all the dirty work of redrawing scenes efficiently when things change.

    The plight of X (which has very fast drawing, but often has brain-dead application redraw behavior) shows that no matter how fast your graphics API is, many application programmers (who usually aren't graphics programmers), will still make it look slow by writing apps that redraw the whole scene on even the smallest change. A good canvas API like EVAS fits very well with how most apps work. Canvas APIs are slower when scenes change quickly, but for most apps, most UI elements stay static. Where canvas APIs excel is in allowing simply-coded apps to demostrate good redraw behavior, because all drawing optimization can be done in the canvas.

    Of course, for scenes which are animated and quickly-changing, apps should be able to access the underlying immediate-mode API, but this hsould be the exeception rather than the rule.

    --
    A deep unwavering belief is a sure sign you're missing something...
  32. RTFA? by jbellis · · Score: 2, Informative

    he also says that (a) sending pixel data is basically what the Sun Ray product does and (b) it's about as efficient as using the X protocol would be, or (reading between the lines) they wouldn't have done it that way...

    1. Re:RTFA? by daVinci1980 · · Score: 1


      a) Hi. Read the article. What you're not understanding is that I'm asserting that he is wrong.

      b) That's totally wrong. Consider the size of a windows message in another OS. For instance... Windows. Messages are 32-bytes. They are sent infrequently. Sending pixel updates would require 32 bytes PER PIXEL. Sent frequently.

      --
      I currently have no clever signature witicism to add here.
    2. Re:RTFA? by AKAImBatman · · Score: 1

      b) That's totally wrong. Consider the size of a windows message in another OS. For instance... Windows. Messages are 32-bytes. They are sent infrequently. Sending pixel updates would require 32 bytes PER PIXEL. Sent frequently.

      Reread the article yourself. He's not suggesting pixel by pixel. He's suggesting compressed pixel streams (although he didn't make this very clear). This is fundamentally similar to what VNC does. Every time a graphics area is "dirtied", its rectangular area is calculated and a sub-image extracted. The sub-image data is then compressed and sent over the wire to be decompressed and rendered.

      If you've tried VNC on Unix/Linux, you know that the performance of this is quite good. The only reason for poor performance under windows is that the VNC designers had to build several "hacks" to figure out when Windows has changed the screen. VNC then performs a screenshot and compares it against the last screenshot it took. This is a very time consuming and memory intensive task. Under Unix, however, VNC is able to run the X commands and figure out EXACTLY what has changed. These changes can then be sent over with minimal latency and memory usage.

      Personally, I'm a bit surprised by this article. Not because he talked about anything extraordinary, but rather because he didn't say anything revolutionary at all. Given his work on the NeWS project, I would have expected a much more complex (yet flexible) document rendering model out of him. Instead he merely streamlined existing Windowing technology without bringing anything new to the table.

    3. Re:RTFA? by daVinci1980 · · Score: 1

      As I mentioned, there are cases where the entire window has been dirtied.

      Do the math. 1600x1200x32 ~= 7.6M. Even if you compress that using png, you're going to be looking at around 2M worth of data.

      That's not an acceptable amount of information to be sending across the network.

      --
      I currently have no clever signature witicism to add here.
    4. Re:RTFA? by AKAImBatman · · Score: 1

      Sure. But the idea is that a complete screen refresh is a very rare thing in real-world systems. And even on the rare occasion that they DO happen, the screen consists of highly compressible data. This is a side effect of the large fields of single color that are prevalent in GUI designs. For example, a fresh desktop might paint in the following fashion:

      1. Flood fill the screen with the background color. (This should compress to almost nothing.)

      2. Draw taskbar.

      3. Draw desktop icons.

      That's really not so bad. Wallpapers would slow things down, but you have to transfer those anyway. The worst case scenario would tend to be something like scrolling a web browser window with a complex page rendered inside. In cases like this, you have to cheat a bit. Instead of sending the entire scrolled area, you simply send a command that area X has moved to area Y, then send an update for the amount of the remainder of the screen.

      Obviously such a design would be unsuitable for video games or video. There's really no good solution to the former, but the later can be solved by adding a special stream for the video. Instead of decompressing the video on the server, the client can be notified of the codec, and the data can be sent to him with no decompression or decoding.

    5. Re:RTFA? by Anonymous Coward · · Score: 0

      Yes, people do seem to be misunderstanding his point about video streaming the screen updates.

      That's really not so bad. Wallpapers would slow things down, but you have to transfer those anyway. The worst case scenario would tend to be something like scrolling a web browser window with a complex page rendered inside. In cases like this, you have to cheat a bit. Instead of sending the entire scrolled area, you simply send a command that area X has moved to area Y, then send an update for the amount of the remainder of the screen.

      Scrolling a window wouldn't even cause that much problem with modern video codecs -- they support the idea of pixels in motion used in compression. As well as just sending what has changed, compression is achieved by sending a command to just move blocks of existing pixels around. Really... modern video codec techniques would work beautifully for remote desktops. The current X-style remoting is a disgrace to humanity.

  33. Ummm - that would be HTTP... by Anonymous Coward · · Score: 0

    with XHTML.

  34. Re:Quite frankly I wouldn't let him design a windo by Anonymous Coward · · Score: 1, Informative

    You're an idiot. Gosling had almost nothing to do with Swing, which came out a while after Java had already become big. If anything, he might have had a hand in AWT.

  35. Hey JC, sir, after you do the outer space thing by 2TecTom · · Score: 2, Funny

    ... could you take a wee break between engines and do an Id OpenGL GNU GUI?

    --
    Words to men, as air to birds.
  36. Re:Quite frankly I wouldn't let him design a windo by Knight2K · · Score: 2, Informative

    I feel like I'm responding to a troll here, but I think you haven't used Swing in a while. The latest releases in 1.4 are significantly better looking and faster. They also make better use of the underlying graphics hardware in Java 2D. I've written apps in Swing that have been very responsive; you just have to take the time to learn the framework.

    I will grant you that Swing can get complex and it can take serious effort to eliminate bottlenecks. It's intended to be a general framework for MVC based applications, so it has to cover a lot of cases that may not be applicable for all applications. You sometimes have to subclass and override default painting behavior to tailor it to your usage. But at least you have the ability to do that if you wish.

    It also has a tendency to be lower-level then some other approaches. I've seen people throw together VB apps with a lot of functionality pretty quickly. It can take longer to get there in Swing, but the results generally are more maintainable and scalable.

    There are efforts in the works to generate standard higher-level constructs, such as database-backed tables with sorting, that other GUI frameworks provide. Check out JDesktop Network Components to see what's in the works. There are also efforts underway to allow Swing apps to fit more neatly into the native shell (such as tray icons).

    Swing was pretty deadly in the past, but it has improved significantly recently. Ironically, I'm seeing a lot more MacOS X apps written in Java or Java apps developed on MacOS since Apple has put a lot of effort into their Swing look and feel for Aqua. If you are looking to Apple for direction, I think that is a significant data point.

    --
    ======
    In X-Windows the client serves YOU!
  37. Sounds like a good idea... by Anonymous Coward · · Score: 2, Funny

    ..But then what will I make my hat out of?

    1. Re:Sounds like a good idea... by Anonymous Coward · · Score: 0

      Tin foil, perhaps?

  38. Yes, but... by Phekko · · Score: 3, Funny

    ...what do you think of a person who only does the bare minimum?

    --

    Sigs for Nerds. Sigs that Matter.
  39. Re:Astonishing that Gosling is getting things wron by TheInternet · · Score: 1

    Since the advent of Quartz Extreme, the "clip list" should be a thing of the past

    For whatever it's worth, this was written just a few months after Quartz Extreme become available to the public in Jaguar 10.2.

    - Scott

    --
    Scott Stevenson
    Tree House Ideas
  40. client side libraries by CaptnMArk · · Score: 4, Insightful

    He is mostly right.

    The one problem is there though: by using lots of client side libraries with their own per-client state some efficiency is lost and startup time increases greatly.

    We are already seeing this with today's gtk and kde programs that already have disastrous startup times.

    [mark@silver mark]$ time xterm -e exit

    real 0m0.111s
    user 0m0.066s
    sys 0m0.007s

    [mark@silver mark]$ time gnome-terminal -e exit
    Bonobo accessibility support initialized
    GTK Accessibility Module initialized
    Atk Accessibilty bridge initialized

    real 0m0.311s
    user 0m0.203s
    sys 0m0.032s

    [mark@silver rxvt-unicode-3.3]$ time src/rxvt -e exit

    real 0m0.052s
    user 0m0.004s
    sys 0m0.003s

    The machine is Athlon XP 2500+ 1G RAM, no swap, Fedora Core 2.

    1. Re:client side libraries by IamTheRealMike · · Score: 1

      I guess the messages about accessibility escaped your notice. Last time I checked, gnome-terminal also had far more features than xterm did: eye candy, a modern configuration UI, unicode support, accessibility support, etc etc - it's hardly fair to compare two such totally different programs.

    2. Re:client side libraries by Anonymous Coward · · Score: 1, Interesting

      Have you tried with prelink? I'm still 50/50 whether the effect is placebo or not. (partly because how the system used to work isn't anymore in my short term memory due to having to spend a few days in fixing what prelink -a did after my /usr got full..)

    3. Re:client side libraries by Anonymous Coward · · Score: 0

      okey, I'll bite.

      bash-2.05b$ time xterm -e exit

      real 0m0.356s
      user 0m0.024s
      sys 0m0.008s
      bash-2.05b$ time xterm -e exit

      real 0m0.114s
      user 0m0.019s
      sys 0m0.011s
      bash-2.05b$ time xterm -e exit

      real 0m0.112s
      user 0m0.016s
      sys 0m0.009s
      bash-2.05b$ time xterm -e exit

      real 0m0.111s
      user 0m0.021s
      sys 0m0.006s
      bash-2.05b$ time xterm -e exit

      real 0m0.112s
      user 0m0.023s
      sys 0m0.010s

      this is on a athlon xp 2000+ with 256mb ram running kde 3.3 on a gentoo system

    4. Re:client side libraries by CaptnMArk · · Score: 2, Insightful

      Exactly my point!

      By running all this behavior (accessibility) independantly for all clients you have lots of overhead.

      The above time is a second/cached run (w/ prelink). For the first one, it takes 4+ seconds while rxvt and xterm are still 1.

      This encourages big/monolithic applications which is not the unix way.

      note: rxvt I also listed has unicode support and eye candy can be enabled too. There's no need for configuration gui to run on startup.

    5. Re:client side libraries by Anonymous Coward · · Score: 0

      Bonobo accessibility support initialized
      GTK Accessibility Module initialized
      Atk Accessibilty bridge initialized


      It's no surprise at all that gnome-terminal took longer if it's outputting text in the process. Find a way to turn off that text output and then things should be more fair.

  41. If I had the chance... by Madcapjack · · Score: 2, Funny

    If I had the chance to do it, I'd call it Lindows.

  42. Re:Astonishing that Gosling is getting things wron by mpaque · · Score: 4, Informative

    In the Mac OS X window system, there's still clip lists, but they are not visible to the application. The app just draws in it's window buffers.

    The clips are needed to handle event routing, as you mention, and to take care of some subtle internal housekeeping, even when Quartz Extreme is in use. Since not all systems or graphics cards can run Quartz Extreme (there are certain specific graphics card capabilities needed) the clipping information is needed for software compositing cases.

  43. another unethical sig by Anonymous Coward · · Score: 0
    Have you read Asimov's lost masterpiece?

    No, but I have read your referral ID that's hidden in your signature's link (hello "ase_datadino-20"). And I'm electing to respond rather than mod you down for this sleazy behavior, since this reponse will hopefully get you modded down to -1.

    1. Re:another unethical sig by Anonymous Coward · · Score: 0

      It's hardly hidden. The only reason for the redirect is to keep the length of the URL under Slashdot's lame 120 character limit. But if the mods feel the need, they may mod me down. I would appreciate a quick AC response to explain their exact problem with it, however.

  44. DirecFB anyone? by Mystilleef · · Score: 1

    Why does it remind me so much of directFB?

    --
    "My logic is undeniable."
  45. I would win...I have two; was: Re:Wait... by FlutterVertigo(gmail · · Score: 1

    I have two quotes because I heard both of them in person[1]:

    1) "...people don't want bug fixes, they want new features."
    2) "...I don't care what the Information Superhighway looks like as long as I have a toll booth on it."


    [1]This shoud help alleviate the FOAF|UL factor.


    ____________________
    My Trunk Monkey can beat up your Trunk Monkey.

  46. Short-sighted design by Dwonis · · Score: 2, Insightful
    From the article:
    I would make the "window system" so minimal that it is almost non-existent. Each graphical application gets direct access to the hardware, and a window is nothing more than a clipping list and an (x,y) translation. I would build a "device driver" that did nothing more than manage the clipping lists and hand out graphic device ports. This might actually be best done at user level, rather than a device driver, using shared memory and semaphores.

    The last thing we need is a new design that allows arbitrary user programs to have read/write access to the entire screen (read-only access is bad enough). Sooner or later, we are going to start running arbitrary programs on our computers in a secure sandbox environment that is enforced by the OS (and ultimately, the CPU). What happens when some cute little game your spouse downloaded yesterday decides to make itself look like your electronic banking program? Under this architecture, how do we avoid that? Hack every display driver in existence? Trust the shared library to prevent this?

    1. Re:Short-sighted design by mpaque · · Score: 4, Interesting
      The last thing we need is a new design that allows arbitrary user programs to have read/write access to the entire screen (read-only access is bad enough).


      Subtle point here. The hardware the apps have access to may not be the screen, but an off-screen surface which the graphics acceleration subsystem (such as OpenGL) can draw into. The window system takes care of getting the bits drawn in the off-screen surface onto the displays.


      These surfaces can live in VRAM, or DMA addressable main memory. Lots of tricks can be done here by having the app draw at what is essentially the front end of the display processing pipeline.


      Consider for example the GL buffer-as-texture path. Apps draw into a buffer, which when flushed is treated by the window system as a texture to be applied to the app window. The whole GL pipeline can be applied, scaling or warping the texture, altering the geometry the surface is to be applied to, mixing the texture with other texture sources, and so on.

    2. Re:Short-sighted design by Anonymous Coward · · Score: 0

      Simple enough:

      Add a layer that has direct hardware access, but only gives up access to a particular region. Don't give untrusted applications rw access to the screen device. Untrusted applications will then need to be written to use the restricted layer. Trusted apps can continue to have direct hardware access.

      It'd be rather neat to have an untrusted app trying to read outside of its assigned screen region segfault.

    3. Re:Short-sighted design by BenjyD · · Score: 1

      Processes have read-write access to main memory, but they are kept from accessing each other's memory by the kernel (excluding secrity flaws, obviously). I'm sure he's suggesting a similar seperation here.

  47. Re:Quite frankly I wouldn't let him design a windo by Panaflex · · Score: 2, Insightful

    I guess you never heard the NeWS have you?

    Pan

    --
    I said no... but I missed and it came out yes.
  48. Hey... by TheDredd · · Score: 2, Informative

    sounds a bit like describing the OSX window system, extremely minimalist, and the drawing is done on the client side

  49. If I Designed a Window System Today... by RAMMS+EIN · · Score: 2, Interesting

    If I designed a window system today, it would have themeable standard widgets, and the protocol (function calls for local, some sort of RPC for remote) would only have to specify the widgets to be used, as opposed to all the drawing operations, which is what X11 does.

    Also, it wouldn't require each and every event (mouse move, click, ...) to be communicated between server and client. Rather, clients would be able to indicate which events they wish to receive for each widget (basically like onclick, onmouseover and friends in HTML).

    All this is simultaneously going to do away with the many competing and incompatible GUI toolkits for X and the non-themeability of Windows and Aqua, and make network transperency work without huge bandwidth requirements and sluggish responsiveness.

    It's worth pointing out that this window system exists in the form of PicoGUI. Sadly, the site is currently down.

    By the way, what is it about OpenGL that makes it so suitable for acceleration, yet it's horribly slow when implemented in software?

    --
    Please correct me if I got my facts wrong.
    1. Re:If I Designed a Window System Today... by Anonymous Coward · · Score: 0
      By the way, what is it about OpenGL that makes it so suitable for acceleration, yet it's horribly slow when implemented in software?

      1. Lots of matrix/matrix and matrix/vector multiplications
      2. GPUs are optimized for the rendering pipeline, CPUs are not
      3. Running it on the GPU leaves CPU time to run the application logic.
    2. Re:If I Designed a Window System Today... by Anonymous Coward · · Score: 0

      I think he might have meant, "Why is it slower than other software renderers?"

    3. Re:If I Designed a Window System Today... by imroy · · Score: 2, Interesting

      I must say I still prefer the idea of a "heavy" windowing system/manager, mainly for the benefits it gives to network transparency. For example, imagine several clients connecting from several different machines and/or user accounts. Under X11 with GTK+/QT/whatever, the different widget sets appear differently, and can appear differently depending on user settings. I like the sound of Fresco - all widgets are rendered by the server. Under this sort of system the differences between GTK+, QT, etc would simply be in API, not appearance.

      I like your bringing up of HTML and the use of onclick, etc Javascript events. I'd like to take it one step further: perhaps an application or widget set could send small scripts to the windowing system to handle simple local events.

      For example, the app puts up a dialog with a number of text entry boxes, buttons, and perhaps a graphic (a preview perhaps). Along with the basic widgets, it also sends to the window server a set of event handlers written in some scripting language (lisp, postscript, javascript, python...). These event handlers then control how these widgets interact without bothering the app/widget set running on the client machine. The user can fiddle with buttons and stuff, only needing actual client-server interaction when the preview needs to be updated or when the user hits the [OK] button.

      So these scripts would handle the little interactions with the low-level widgets. They would allow the widgets themselves to be rather simple. The applications and/or widget sets would provide scripted event handlers to customize their exact behaviour. In this way, the set of "fixed" widgets in the windowing system could still remain flexible without becoming too complex. And like another poster said, GUI's are mostly "done" right now. Assemble the most common and unique widgets in the server, and let client-side widget sets customize them with a server-side scripting language.

    4. Re:If I Designed a Window System Today... by RAMMS+EIN · · Score: 1

      ``I like your bringing up of HTML and the use of onclick, etc Javascript events. I'd like to take it one step further: perhaps an application or widget set could send small scripts to the windowing system to handle simple local events.''

      That was actually how I generalized callbacks in my design. A client registers event handlers by telling the server what code to execute. If you want to be notified of the event, you have that code send a message back to you. If you just want to change the color of the text under the mouse, you don't have to make a callback.

      The funny thing is that the WWW is actually a pretty good low-bandwidth widget system. However, it has two major shortcomings: the web server cannot push data to the client, and HTTP requests are heavy (including User-Agent headers and such). And, of course, XML is not very efficient for machines.

      --
      Please correct me if I got my facts wrong.
    5. Re:If I Designed a Window System Today... by imroy · · Score: 1
      The funny thing is that the WWW is actually a pretty good low-bandwidth widget system. However, it has two major shortcomings: the web server cannot push data to the client, and HTTP requests are heavy (including User-Agent headers and such). And, of course, XML is not very efficient for machines.

      The problem I see with Gosling's suggestions is that it relies on a fast, low-latency network. While this is certainly true of modern local networks, it certainly isn't of the wider internet. People have already long been using things like X11 (with DXPC or LBX), or Citrix/WTS over the public internet to remote-control machines and to tele-commute. I can only see this usage increasing in the future.

      While the internet may be becoming faster for bulk transfers, latency is still a problem. And latency is very important for interactivity, especially in Gosling's client-heavy model. A more server-heavy model like we're discussing would allow good interactivity over high-latency networks. The server-side event handler scripts would allow all the nitty-gritty little details to be handled immediately in the local window server. The interface would only slow down when it needs to communicate with the client. Obviously that would depend a lot on how the application and/or widget set is structured, but at least the capability is there to make things more effecient.

    6. Re:If I Designed a Window System Today... by julesh · · Score: 1

      If I designed a window system today, it would have themeable standard widgets, and the protocol (function calls for local, some sort of RPC for remote) would only have to specify the widgets to be used, as opposed to all the drawing operations, which is what X11 does.

      Agreed; I'd also suggest having the widgets being specified as interfaces, with a per-user database to decide which implementation to use for which interface, thus allowing radical changes in behaviour in addition to appearance.

      Also, it wouldn't require each and every event (mouse move, click, ...) to be communicated between server and client.

      I do believe X11 supports this. I remember from my brief foray into Xlib programming having to specifically enable events that I wanted to receive.

      All this is simultaneously going to do away with the many competing and incompatible GUI toolkits for X

      I believe you could even re-implement them to use your underlying features.

    7. Re:If I Designed a Window System Today... by mburns · · Score: 1

      Let's abstract the problem to finally say that an all-purpose extended sensory system for computers is what X needs to build toward. Other kinds of networking protocols extend the internals of a computer, but X should neatly and efficiently package for distribution the sensory functions of a computer.

      These extensions are plainly impelled to be smart and complex, not minimalist.

      --
      Michael J. Burns
    8. Re:If I Designed a Window System Today... by Nurgled · · Score: 1

      A network-transparent windowing system which communicated high-level widget creation/modification messages was my degree dissertation project. One drawback of this approach is that it puts applications at the mercy of the system to support the widgets it needs. This is okay for simple interfaces such as a file browser (just a tree view and an icon list) but something like a wordprocessor would need to draw its main canvas manually.

      For the aforementioned project, I designed the server to accept "plugin" widgets and claimed that this would allow application vendors to optionally offload some of their drawing to the display server, but I also implemented a drawing canvas with a simple API, which is in reality how most applications would approach the problem. I toyed with the idea of having a transparent negotiation system where the application would use the server-side implementation if available and otherwise use its own local copy, but that put a lot of extra burden on the application-side which I had to accept that few developers would bother with.

      My project is not released, since it is not a complete implementation -- I had to cut it down for the purposes of the project -- and also I'm still waiting for clearance from the university that they are not interested in the copyright on it, so I'm not legally allowed to distribute it yet.

  50. he's actually quite right. by bani · · Score: 1

    try running complex X apps (like openoffice, mozilla) over a slow WAN link.

    it's intolerably slow, because of all the rendering api calls. even (seemingly) simple apps become pure torture. if a window becomes obscured and has to redraw, you'll want to put your fist through the monitor.

    now run the same app via something like vnc. it's no longer totally unbearable. it's actually usable.

    gosling is quite right on this point. it's far more efficient to just stream it as (compressed) video data when you have to talk over networks.

  51. Simpsons did it. by Anonymous Coward · · Score: 0

    god, fucking slashdot clearing my post on previewing, no other site does that...

    fuckit, suammary:

    Windows already does all this.

    Now go do it in an Open, non-patent encumbered way.

  52. Re:Quite frankly I wouldn't let him design a windo by Joe+Tie. · · Score: 1

    I know this is getting a bit off-topic, but I've been pretty impressed with swing latly. Which is pretty amazing considering swing is the reason I stopped coding in java about three years ago. Since then I've made a modest increase in ram (just from 128 to 372), and upgraded to the 1.5 jvm for linux. I don't know if it's the additional ram, the jvm, or a combination of the two, but the swing applications I've played around with are almost exactly as responsive as gtk2 programs. That, combined with potential for also allowing an option to use real gtk2 from SwingWT finally managed to make me look into Java for the next project I'm working on.

    --
    Everything will be taken away from you.
  53. windows on my world by Doc+Ruby · · Score: 2

    I'd make the windows group by process tree, and offer frames of grouped windows, panes of subwindows, and visual pipes for STDIN/OUT/ERR among them - all embeddable among one another. I'd save window geometries in an OS DB. I'd strictly define the windowing system as merely the presentation layer, independent through an API to a logic layer, in turn independent of a data layer. And I'd write the entire windowing layer in OpenGL.

    --

    --
    make install -not war

    1. Re:windows on my world by Jherico · · Score: 2, Interesting
      Computers are general purpose machines designed to process just about anything. Each processor design has its advantages and disadvantages in this world of generalized computing. How hardware optimization applies in this case is hard to explain, so let me take an example from another field, cryptography. The DES algorightm has several steps for encrypting a given block of text. Two of them involve an arbitrary reshuffling of bits. For instance in a given 64 bit block, bit 2 might be put in bit 5's position, while bit 5 gets put in bit 29's position and so on. Doing this in software requires a lot of steps because you can't just move a bit to its final position without saving the bit you're replacing somewhere. There are some optimizations you can do but ultimately its a lengthy operation to do this kind of thing in software. However, in hardware specialized for DES it takes virtually no time at all. That's because in hardware you can just make an input register that is crossed wired to an output register in exactly way you need. The physical design of the chip actually rearranges the numbers for you without you having to do anything at all in software.

      The fact is that's there's pretty much nothing you can do in software that you can't optimize in hardware to run faster, sometimes orders of magnitude faster. But the fact is that there are far more general problems than there are specialized problems. 3D rendering and by the way, encyrption and compression, are just some of the specialized problems common enough to warrant the creation of dedicated hardware. Even then the tendency is for one or two generations of moore's law to cause generalized processors to surpass even the best hardware. 3D is still a relatively immature technology, so this hasn't happened for it yet, but give it another 10 years and you might find 3D accelerator cards are as rare as dedicated hardware encryption devices today.

      --

      Jherico

      What can the average user can do to ensure his security? "Nothing, you're screwed"

    2. Re:windows on my world by Doc+Ruby · · Score: 1

      I'm assuming that you are taking issue with the part of my post where I say I'd code my windowing system in OpenGL. OpenGL is an API, the actual implementation of which could be defined in hardware or software. So according to your logic, whichever is faster, or better for some other reason, can be chosen for the execution under the hood. That's one reason why I'd do it in OpenGL.

      --

      --
      make install -not war

  54. Re:Astonishing that Gosling is getting things wron by Animats · · Score: 1
    Agreed.

    I was thinking along these lines a few years ago, when I did some work with the GLOW toolkit, which offers a portable GUI built on top of OpenGL. Once 3D hardware got reasonably good, that approach worked fine. It was clear that much of the complexity of existing window systems was now unnecessary.

    The main job of the window system at the OS and graphics card level is protection - keeping each application locked inside its own windows. Everything else, as Gosling points out, really should be done by the application.

    More important, though, is that it is time for window systems to become real time. You should never wait for the window system, and you should never see any artifacts of the window system. Any card that can run even older video games can do this.

  55. Bad idea by haraldm · · Score: 5, Insightful
    This concept kills the concept of thin clients and X terminals - that are way more in widespread use than most people think.

    Letting the app take care of its own window borders is a bad idea as well. This is one of the worst parts in M$ Windows - once an app hangs, there is no way of closing or minimizing a window or simply of getting it out of the way. It's way better to have this handled by a separate process.

    --
    open (SIG, "</dev/zero"); $sig = <SIG>; close SIG;
    1. Re:Bad idea by IrresponsibleUseOfFr · · Score: 2, Informative
      This concept kills the concept of thin clients and X terminals

      It doesn't kill the concept of thin clients. You render to a servers back-buffer, and transmit it over the network to the client. Then you proxy mouse and keyboard events to the window on the client to the server. It is non-trivial, but definitely possible. From the article:

      I think that a more viable solution in the long run would be to replace the X protocol with a very simple pixel copying protocol that uses the user-level rendering libraries in the application to render to a local image buffer, then copies the pixels over the net in something that looks vaguely like a video stream. There are a variety of compression hacks that make this surprisingly efficient

      So, no, this type of window system does not preclude thin clients, nor kills their concept. According to an actual study done by Sun, it is actually about as efficient as X and much easier to implement.

      Letting the app take care of its own window borders is a bad idea as well... once an app hangs, there is no way of closing or minimizing a window or simply of getting it out of the way.

      If your app doesn't respond to commands, you kill the process. I mean really, how often do you expect your applications to hang? I don't consider it an absolute requirement to be able to kill applications right from the window decorator. In fact, I will claim the opposite: it is a bad idea to have abortive closes so easily accessable from the UI. Make an app that matches up process id's to clip-lists and make them kill from there. I don't consider this complaint particularly damning.

      Look X11 is a baroque architecture. We know now what the architecture of machines look like now, and what is likely to change within the next 10 years. Gosling's proposal directly takes advantage of the way things are likely to change. X11 comes along kicking and screaming every step of the way. That said, Gosling's window system is just an idea on paper. X11 is alive and in the flesh. The only way this debate means anything is if someone goes out and implements Gosling's proposal. Then, things will get interesting. We will finally get to use some of the wisdom computer scientists have accumulated over the last 20 years since X was designed.

      --
      Facts are meaningless. You could use facts to prove anything that's even remotely true! -Homer Simpson
    2. Re:Bad idea by tesmako · · Score: 1
      But with the network bandwidth of today a simple compressed bitmap scheme along the lines of VNC is plenty for most uses, since the manager handles the clip-rects it can correctly send root-less windows as well, making it close enough to the functionality X11 provides.

      Network latency is the killer, and since X11 does nothing better when it comes to latency than VNC when VNC is given sufficient bandwidth I don't really think it is worth it having an abstraction of this level of complexity kicking around for the relativly niche use of network transparent GUI's.

    3. Re:Bad idea by T-Punkt · · Score: 1

      It's worse: It's not just the borders, even if they weren't rendered by the application and done by an window manager you wouldn't been able to move, resize etc. the window if the application hangs:

      Until the application acknowledges the clip change, the old window shape has to be considered as being continuously damaged by the application.
      With X11 in case you can't kill an process for whatever reasons (hung in disk-wait-state e.g. if the application accesses files on an NFS server that went down) you still can close it's windows. (Or iconify them or move them to another window... )

      With this concept presented here a wild running application can ruin the whole X^Hwhatever-its-name-will-be session: All screenspace occupied by the application's windows will become unusable, i.e. you can't even move an other window over it.

    4. Re:Bad idea by Anonymous Coward · · Score: 0

      very simple pixel copying protocol

      VNC is pretty much that. And it's slow.

    5. Re:Bad idea by Anonymous Coward · · Score: 0

      That is until the application grabs the keyboard and crashes locking control for the complete Xserver.

    6. Re:Bad idea by julesh · · Score: 2, Insightful

      This is one of the worst parts in M$ Windows - once an app hangs, there is no way of closing or minimizing a window or simply of getting it out of the way.

      Huh? If an app hangs in MS windows, I find clicking on the window's close button results in an "Application not responding -- do you want to kill the process?" dialog box popping up. Whereas X tends to cope really badly with hung clients, generally requiring you to use an entirely different command (e.g. "kill window" rather than "close window", although the names vary according to your window manager) to get rid of such windows.

    7. Re:Bad idea by cortana · · Score: 1

      Server should release if the App crashes. If that fails, Ctrl+Alt+KeypadDivide/Multiply. :)

    8. Re:Bad idea by Sax+Maniac · · Score: 2, Insightful
      If your app doesn't respond to commands, you kill the process. I mean really, how often do you expect your applications to hang?

      All the time. Let's say I do mass-scale operation in Finale that's going to take a lot of time - extracting all 25 parts from a score and grinding them all out to disk. It's going to take a few minutes, where the application window goes dead.

      Sure, I could kill the process, but that wouldn't give me the desired results, would it?

      It would be sure nice to be able to minimize the !@#*&$!@# window when it does this, and go do something else.

      --
      I can explanate how to administrate your network. You must configurate and segmentate it, so it can computate.
    9. Re:Bad idea by argent · · Score: 1

      If an app hangs in MS windows, I find clicking on the window's close button results in...

      That works a lot of the time. It's as if the application isn't actually hung, but some critical thread in the app is deadlocked. I've had apps hang so badly I had to go down to the task bar and select close, or even bring up the task manager and kill them from there.

      And skinnable apps that use their own library always need to be killed when hung.

      I suspect the main difference is that on WIndows there's one company responsible for the GUI and libraries, and they've put in a special case in the library to deal with this.

    10. Re:Bad idea by argent · · Score: 2, Insightful

      You render to a servers back-buffer, and transmit it over the network to the client.

      Bitmap scraping. Been there, done that, got the bad rendering, latency, crummy feedback, etcetera. By making heroic efforts and badly compromising the user experience you can actually make it more network efficient than X, but you completely blow the feedback you need for end-user efficiency.

      The usual scenario is that when you click on an object the application's idea of what the UI looks like is completely different from what's actually there. You can prevent that from happening in X by having the display server aware of where the objects are and delivering the events to them, but in a bitmap scraper that information never gets all the way to the display... so where in X you can dependably click on an object as soon as it appears, in a screen scraper you have to wait to make sure it's stable and not going to go away in the next update.

      I've used them all, and unless you have a really fast network so you can keep the updates coming they cause too much human-computer latency to be worthwhile.

      how often do you expect your applications to hang

      Unless you have an infinitely fast processor every application goes through periods where it's unresponsive for a few seconds now and then, and a lot of applications can hang for half a minute or more. In Windows, you might be able to kill these windows, but you can't minimise or move them until the app comes back.

      Look X11 is a baroque architecture

      Indeed, and there are much better designs, but taking all the problems that X has and making them bigger isn't the direction to go... but it's the direction Gosling seems to be suggesting.

      As for where we should go from here... there are a bunch of alternate window systems out there and some have come quite a long way. Look them up.

    11. Re:Bad idea by IrresponsibleUseOfFr · · Score: 1

      Multithreading will be more important to this system than it is in X. Whether your multithreading is through threads or child processes doesn't matter. The original poster talked about closing, not minimizing. That was the issue I was addressing.

      However, I'm not totally convinced minmizing couldn't be handled through a clip-list manager app. But, you are correct, if the application is b0rked, you won't be able minimize it from "the window". However, I'm relatively sure equivalent ways of doing what you want to do can be accomplished - get this window off my screen... yesterday.

      --
      Facts are meaningless. You could use facts to prove anything that's even remotely true! -Homer Simpson
    12. Re:Bad idea by mpaque · · Score: 3, Informative
      Letting the app take care of its own window borders is a bad idea as well. This is one of the worst parts in M$ Windows - once an app hangs, there is no way of closing or minimizing a window or simply of getting it out of the way. It's way better to have this handled by a separate process.

      Annoying, isn't it? The trick here is not to let the apps draw to the visible frame buffer, which requires all this visible region locking, but instead to have the app draw to a buffer (in off-screen VRAM or main memory, addressable by the window system). The window system is then responsible for placing the content on-screen.

      So, how does that help? The app always has a place to draw, and the separate window system process always has control over moving the bits onto the display. This means that a window manager can always order the window out, or move the window aside, without the cooperation of the application. In one implementation, the draggable areas used to move the window are registered with the window manager, so the app need not even be involved in moving the window.

      One of the more interesting possibilities here comes into play when the window system is implemented atop a powerful engine such as OpenGL. In this case, the window buffers can be treated as texture sources and applied using the various texture combiner paths, along with scaling, filtering, and various transforms, all applied after the application has rendered it's content..

      This allows the window system to be extended in a variety of ways without changing one line of the application's code. The windows can be minimized quite literally by adjusting the transformation matrix, or by playing with transparency, without the cooperation of the application. One could transform the window contents down to icon size, and composite the content with an iconic badge, producing a minimized icon representing the window, complete with live content, without the cooperation of the application.

    13. Re:Bad idea by julesh · · Score: 1

      I suspect the main difference is that on WIndows there's one company responsible for the GUI and libraries, and they've put in a special case in the library to deal with this.

      That's a good point. There are a lot of special cases in Windows that just put little touches like this on the UI -- another example is that when an application is starting you get the 'background processing' mouse cursor... and if the application crashes before displaying a window, it goes back to the normal one. KDE puts a little animation next to the cursor (iff you started the application through a standard KDE process... start it from konsole and it won't happen), but if the program crashes you end up sitting there waiting until it times out.

    14. Re:Bad idea by rmdir+-r+* · · Score: 2

      Actually, the 'softies have fixed that. Use one of the newer NT based OS's- XP comes to mind- and you'll find that a crashed/stalled app can simply be tucked away until it crashes, or you kill it. No more of the wait-10-minutes-for-windows-to-wake-up thang you had to do for '98.

  56. He already designed two windowing systems! by Per+Abrahamsen · · Score: 1

    Or at least were involved with it. Andrew, which I have never used but were "talked about" a lot, and NeWS which was simply amazing, but unfortunately was marketed after X10 (and later X11) has become the de-facto standard for Unix desktops.

    1. Re:He already designed two windowing systems! by Anonymous Coward · · Score: 0
      ez and messages were kind of cool.


      All in all, I liked Andrew. It had rich content a long time ago.


      I wouldn't call it "easy to use" by any stretch though. You can still get the auis code a lot of places. At one point I did have it built on linux but this was back in the 1.2 days when Andrew seemed more significant.


      I could see someone turning ez or messages into a significant project though. All the pieces were there.

  57. Re:Quite frankly I wouldn't let him design a windo by fm6 · · Score: 2, Interesting

    Not fair to blame Gosling for Swing. He mostly participated in actual Java development back when Java was still called Oak, and was still viewed mainly as an embedded systems language. Swing didn't appear until after Sun began its big push to sell Java as a general-purpose platform. By then, Gosling had been promoted to "Chief Scientist", a job that seems to consist mostly of giving speeches and writing papers.

  58. Mod him up! by jcr · · Score: 1

    Moderators take note, please: anything Mike Paquette posts on Mac OS X should be moderated +10, Reference.

    Thanks,

    -jcr

    --
    The only title of honor that a tyrant can grant is "Enemy of the State."
  59. Gosling on everythign and anything by Anonymous Coward · · Score: 2, Funny

    If I designed an $X today, it would be built with nanobots and turn the Earth's surface into a gray goo.

    Later some small robotic rovers will come by and say "Holy shit it look like there used to be water on this planet!"

  60. Consistency by Bluelive · · Score: 2, Insightful

    To have consistent looking application you still need to do everything in the server. Adding more layers like is now happening with X and GTK or one of the other packages, is one way of doing that. And moving this to the server instead of the client makes it all abit faster because less data has to be moved long distance

    1. Re:Consistency by TeknoHog · · Score: 0, Troll
      Adding more layers like is now happening with X and GTK or one of the other packages, is one way of doing that.

      It's probably been said before, but turning GTK+ into an X extension instead of a client library would be great.

      --
      Escher was the first MC and Giger invented the HR department.
  61. Re:No thanks and fuck him and fucking language by Anonymous Coward · · Score: 0

    Seriously, the guy is basically the computer anti-christ from Revelations.
    He comes and people proclaim him the savior, only after everyone has been well marinated in the OO KoolAid(tm) do people realize, damn we've been had, this whole this sucks, is not productive and the prophesied code-reuse never happened.

    It turns out the drunken monkey fulfilled the code reuse promise.

    If I ever met the guy, I would beat him within an inch of his life for all the fucking extra work I've had to do to pull these Java-Only idiots through even the simplest troubleshooting or development tasks. Oooh! Java is so great - good then learn how to open a fucking socket listener and handle a few connections.

    Sorry, I'm very bitter from doing all the work while a team of asses sat around complaining that there was work to be done and collecting a salary.

  62. Legacy by ooze · · Score: 2, Interesting

    From the Article:

    <i>Once you accept that fact and admit that
    it&#146;s actually the right way to go, the design falls out, simply by
    stripping away legacy stuff that isn&#146;t needed any more.</i>

    This is actually the hardest thing to do. Todays Computer systems ar still mostly based on the concepts of 30 and more years ago. So many things that got hacked in into Unix and/or Windows in the last decades could be unified in the way it is accessed. Plan9 is actually a nice step in this direction.

    --
    Just because I can imagine doing a hippopotamus, doesn't mean I'd like to do it.
  63. Most complaints are about the same topics by Anonymous Coward · · Score: 0

    (1) X/gnome/kde does not behave exactly like Windows. Peoples will always blame the new behavior.
    (2) Peoples are not using the proper drivers. Open-source NVIDIA drivers are a lot slower than the proprietary one.
    (3) The Window manager and the applications are not synchronized so most WM managers eat all the CPU during opaque resizing. The faster your mouse send the motion events, the worse it becomes because the WM might end up redrawing the borders hundreds of times per seconds.
    The advantage of having a WM is that windows controled by non-responsive applications are never stuck in the middle of the screen like in Windows.
    (4) Peoples use fancy themes with gradients. XFree does not have any efficient way to draw gradient so they have to be rendered off screen and transfered to the server. It is diffficult to cache gradients because their content depends of several factors so most theme engines do the offscreen rendering each time.

    The gradient problem is probably the only one of those issues that could be blamed on X/XFree86.
    All modern graphic cards can do hw gradients, so an efficient X extension would really speed up things.

  64. DirectFB by Anonymous Coward · · Score: 2, Informative

    Actually, what he's describing sounds a lot like DirectFB. Take a look at : http://www.directfb.org/

    It's library that interfaces the Linux kernel framebuffers and hardware acceleration directly. At the moment, supports Matrox cards best (with partial support to ATI Rage and S3 and others.) The application suite includes X11-implementation and SDL programs should run directly.

    I tried it a while ago but switched back to X.org. (Switched G400 to R9200 too.. UT2004 needed more kick.)

  65. Question by beakburke · · Score: 1

    My level of understanding on this is pretty low, but what differentiates DRI from SHM and DGA?

    --
    ----- Question authority, but not ours. Hate the man, but we're not him.
    1. Re:Question by nathanh · · Score: 5, Informative
      My level of understanding on this is pretty low, but what differentiates DRI from SHM and DGA?

      DGA is Direct Graphics Access. It allows a client to directly access the framebuffer. The client needs to handle all the pixel packing models (eg, RGB555, RGB888, RGBA8888) and work out the line strides and so on.

      MIT-SHM is MIT Shared Memory. Though the magic of shared memory, the client and server share a piece of memory containing an XImage or a Pixmap. The client can change the contents and then tell the server to render the image/pixmap to screen.

      DRI is the most complicated of the bunch. It stands for Direct Rendering Infrastructure. The basic explanation is that it allows a client to send commands directly to the video card. At the moment the only DRI implementation is OpenGL. So for example, quake3 links to libGL.so which is a DRI aware library. The library finds out which video card you have and loads the appropriate video card driver. This driver knows how to turn OpenGL commands into the hardware commands for your video card. These commands are shoved into a buffer which is provided by DRM (the DRI kernel module) and then blasted off to the video card. X only gets involved to setup cliplists and create windows; the actual 3D rendering is all done from the client directly to the hardware.

      Those 3 extensions take care of the biggest bottlenecks in X: framebuffer access, image transfers, and 3D streams. There are some other issues with the X pipe - things like latency moreso than throughput - but I'm not sure that removing the X pipe would solve those problems. The biggest issues with X on Linux right now are things like latency, single-threading, libraries that block, lack of double buffering, lack of synchronisation between window managers and widgets and clients, etc.

  66. WBXML Anyone? by Slashamatic · · Score: 1

    XML has its problems, the main one being the characterset representation which makes it so verbose. There is a variant called WBXML, which was designed for WAP based mobile phones (i.e., limited bandwidth). With this form you can considerably reduce the size of the XML and also ease the parsing process.

  67. Transferring binary by Anonymous Coward · · Score: 0
    Piece of cake:
    <binary>
    <one/>
    <zero/>
    <zero/>
    <one/>
    <zero/>
    <zero/>
    <one/>
    <zero/>
    <zero/>
    <one/>
    <zero/>
    <zero/>
    <one/>
    <one/>
    </binary
    ...etc
  68. It already exists by gsfx · · Score: 1

    It is called MS Windows and DirectX.

  69. linking to pdfs: if he had to do it over again now by mikieg_99 · · Score: 1

    hopefully he'd notify the user that it's not a normal link. basic stuff, really...

  70. Ever run "X" without a Window manager? by polyp2000 · · Score: 1

    On the face of it this is the almost the same thing.
    Try running blender under just the raw X, blender handles its own environment as is suggested in the article. (im sure there are other examples too).
    If you think about it you will realise that your favorite window manager is just an application that handles its own environment.

    Actually whats really left at the end of it all is that his Windowing system, isnt a windowing system at all, rather an ultra basic framework that handles only the minimal requirements, that provides a basis to build windowed applications atop. Rather like the philosophy behind the X server really.

    --
    Electronic Music Made Using Linux http://soundcloud.com/polyp
  71. Re:Quite frankly I wouldn't let him design a windo by LordLucless · · Score: 1

    But now is too late for Java. It already has a reputation. Nobody I know considers Java an application language, and it's primarily because of it's GUI - non-native widgets, and slow response. Even if it's now improving, and it is, it lost the lead, and its gonna be tough for it to play catch-up.

    --
    Just because you're paranoid doesn't mean there isn't an invisible demon about to eat your face
  72. Practice! by Anonymous Coward · · Score: 0

    I waste more time blowing my nose.

    You'd be amazed how much better you can do with a little practice.

  73. Re:linking to pdfs: if he had to do it over again by saddino · · Score: 1

    Since he's a Mac OS X user, he could have used Trapeze to drag and drop convert his PDF to HTML. If he had to do it over again, of course.

  74. Not in the windowing system by Anonymous Coward · · Score: 3, Informative

    Neither of these features is the responsibility of the windowing system. A windowing system only records events and distributes them. To the windowing system a drag and drop is a click, a mouse move, and a declick and nothing more. All the windowing system does is alert through messages, "Hey, a click happened here", "Hey, the mouse is dragging", "Hey, the mouse was declicked." The application is responsible for knowing what those events signal. The application is responsible for interpretting the results, and for converting data from source to destination.

    The same is true of cut and paste. The windowing system sends only the events. An application at a higher level is responsible for actually transfering the data. The windowing system might offer facilities for locating the source of the data, or notifying the destination to pick-up the data, but the windowing system neither knows, nor should it care, what that data is.

    Linking and embedding, needless to say, is also the responsibility of the application. The application has to recognize that the data transfered is an object, load the appropriate embedding library, and make the causal link between the two.

    The practical upshot of the above is that one should not confuse the functions of the windowing system, which are to arbitrate access to user interface devices and screens, draw upon those arbitrated screens, and transfer events with the functions of the application. There is nothing to be gained by burdening the windowing system with the application tasks and much to be lost in terms of flexibility.

    1. Re:Not in the windowing system by Anonymous Coward · · Score: 0

      See, this is the thing... While in principle I agree that drag-and-drop, copy-paste and embedding shouldn't be the responsibility of the window system, I also don't think they should be handled by the applications, or even the window managers - that's the way to fragmentation between applications written for different window managers that takes *years* to sort out. It's basic data transfer between processes that should be marshalled at the OS level, arguably (especially in the case of embedding) at the kernel level.

      Any particular reason I'm wrong?

  75. So to some up.. by t_allardyce · · Score: 1


    -if he designed windows today he would do what everyone else is doing already.
    -therefore windows must be stuck on legacy ideas and structures that cant be changed even in new versions because everything else would break
    -or windows developement has gone stale and each new version of windows is just a patch on the previous one..

    --
    This comment does not represent the views or opinions of the user.
    1. Re:So to some up.. by Anonymous Coward · · Score: 0

      Jesus fuck, this article has nothing to do with Windows!

      Honestly, I don't even know why I read commdnts any more.

    2. Re:So to some up.. by t_allardyce · · Score: 1

      Lol i didnt RTFA or even notice it said "Window". I made a funny!

      --
      This comment does not represent the views or opinions of the user.
  76. All the mistakes of X, made worse by argent · · Score: 2, Interesting

    His new design duplicates the big mistake of X... putting policy in the application... and makes it worse. Why is it that people use Mac OS or Microsoft Windows? Because they have a consistent GUI, however it's implemented, that isn't subject to the whims of each applications programmer.

    And it's unnecessary... most applications need a fairly limited set of graphic primitives, and where composition of those primitives is needed scripts in the window system can virtually always do the job: the limiting factors in a GUI are rendering, which would still be handled in native code, and the human. Yes, some applications need tightly coupled high performance control over their display, but this is still and for the forseeable future an exception. Even art software really doesn't need the kind of GPU-intensive performance he's shooting for. The applications that need to do their own direct rendering of complex scenes, rather than just a fast way to pump bitmaps to the display, are pretty rare and can be dealt with as they are now with a shortcut through the window system. With OpenGL you can even have multiple applications of that kind running concurrently without interfering with each other.

    So the special case he's optimising for is already well handled, we don't need to build the window system around it. And in the general case it wastes the performance of the graphics card by keeping the application way off in the processor intimately involved with the mechanics of moving images around. As GPUs get more power and memory it will be more and more practical to move more of the window system into the GPU, and it will be more and more desirable to handle rendering in a common layer that's close to the display (in the GPU, where possible) the way Mac OS X already handles compositing.

    Quartz Extreme is pretty crude. It shouldn't be necessary to do rendering in the processor and compositing in the GPU (the normal case, because it doesn't copy rendered windows back from the GPU to the CPU and maintains the master of each Quartz window in main memory at all times), with all the extra memory traffic that creates... but it shows the way forward. A truly 3d GUI where windows and more complex application objects are managed in 3d space the way a window system handles them in 2d space should be possible and efficient.

    But consider what happens when you move a window into the 3d background... the GUI moves it away from you and tilt s it at an angle so you can keep it in view "off to one side". You can't keep going back to the application over and over again to re-render its part of the screen as your viewpoint changes. Instead you let the GPU map it onto a surface, and navigaton of the environment is smooth and more or less invisible to the application. Perhaps one might send the app a signal that say "suspend updating" when it's too far away or out of your viewpoint, but that's an optimization.

    No, this is exactly the wrong time to go back to the X model of a dumb server and smart applications.

    1. Re:All the mistakes of X, made worse by jaoswald · · Score: 2, Insightful

      Gosling is not discussing the details of widgets, etc., which make up the (hopefully consistent) USER EXPERIENCE of a graphical user interface; instead, he's concerned with the low-level plumbing which lets multiple applications share the screen and mouse, without having to be aware that other applications have windows which might be overlapping one's own. These problems are totally different, and mostly unrelated.

      The widgets that make up the GUI of each application, as well as the lowest-common-denominator graphics tasks could be provided by a single system-wide library that every application would use, to ensure consistency. Gosling is only thinking about how this library would send colored bits to the screen and get mouse clicks from the user.

      Quartz doesn't enforce a single user interface, as Apple's own "interface of the year" adventures demonstrate.

    2. Re:All the mistakes of X, made worse by argent · · Score: 1

      The widgets [...] could be provided by a single system-wide library

      They could, but if you do that then that library is where the window system is defined, not how that library interfaces with the display. That library is the interesting part of the GUI from the point of view of the window system design.

      In Windows, for example, the calls from Win32 to GDI are one place where the window system is defined. You can replace the GDI calls with calls that translate GDI operations into X operations, and run Win32 under the X Window system instead of GDI. There was a product called NTerprise that did this for NT 3.51 and would have done it for NT4 (they had it working) but Microsoft refused them the licenses they needed for multiuser NT and bought Citrix instead. It was MUCH more responsive and usable than any of the bitmap scraping schemes, even if the display updates were sometimes slower over our 10 megabit network at the time... mostly for applications that did a lot of manual refresh operations like Microsoft Project.

      By defining the window system in terms of clipping masks and damage operations Gosling is locking it in to the low level X model. Define it in terms of widgets and little scripts (like NeWS) without worrying about whether the widget update is in the application library or at the end of a network link or in the GPU: this gives you a MUCH more flexible design.

    3. Re:All the mistakes of X, made worse by StrawberryFrog · · Score: 1

      Why is it that people use Mac OS or Microsoft Windows? Because they have a consistent GUI, however it's implemented, that isn't subject to the whims of each applications programmer.

      I think that's where the shared libraries, which run in user not kernel land, come into play. Yes, there should be a standard set of widgets and windowing routines that apps normally use.

      But doesn't it also sound appealing that this is a choice, that can be bypassed?

      Would this result in chaos? I don't know. A lot would depend on how good the default widget set is, and how strong the policy of always using it is. These are not entirely software architecture decisions.

      --

      My Karma: ran over your Dogma
      StrawberryFrog

    4. Re:All the mistakes of X, made worse by argent · · Score: 1

      But doesn't it also sound appealing that this is a choice, that can be bypassed?

      Superficially, yes. That's why X has no policy in the server, because back in the '80s when people were trying to understand how window systems worked there were a lot of questions about the best way to handle a 2d windowing environment. Putting the policy in the application let people easily experiment with different models. Today, though, applications that create their own menu and widget styles are actually a problem. The interactions in the standard GUI are so complex that applications that do their own thing end up having to reproduce an enormous amount of code (like Mozilla, for example), or do a poor job of implementing all the functionality of the standard libraries.

      Consider jwz's excellent rant on skinnable applications. Not only would this result in chaos, but it does result in chaos, all the time.

      And in any case, this isn't the kind of bypass that's really interesting.

      First, it's trivial to implement: if a programmer really wants to design their own GUI, they can still do it. Just ask for a structured drawing widget and lay down bitmaps and nested objects in it.

      Second, the really interesting kind of bypass is something that gives you realtime control of the graphics processor... and having the underlying window system implemented in terms of cliprects and damage lists doesn't help there, you need OpenGL and DirectX and SDL. Letting a bypass happen by accident doesn't help, you need to send structured objects to the GPU through the window system, so having a window system that operates on structured objects inherently at a deep level should actually help.

  77. Double Buffering by zatz · · Score: 1

    From the article:

    These days it's becoming required to implement double buffering. For anyone who's ever used OSX, the experience is totally addicting and quickly become a non-negotiable feature

    I believe Windows XP has this too; you pass WS_EX_COMPOSITED to CreateWindowEx(). Sadly it's not the default... does anyone know of a way to force all windows to get this flag? (Aside from some gross hack like replacing user32.dll, or installing a CBT hook and calling SetWindowLong(hwnd, GWL_EXSTYLE, GetWindowLong(hwnd, GWL_EXSTYLE)|WS_EX_COMPOSITED) for each window created. Hmm, perhaps I'll go try that.)

    --

    Java: the COBOL of the new millenium.
    1. Re:Double Buffering by julesh · · Score: 2, Informative

      From what I've heard, this is the way the next release of Windows will work -- all windows will be drawn to independent buffers in video RAM and then composited once per refresh to produce a smooth display. Options such as rotating and scaling windows will be available.

  78. Re:Astonishing that Gosling is getting things wron by zatz · · Score: 1

    Do you think it causes harm for the application to know which regions of its windows are exposed? I agree that it shouldn't be necessary, but at the same time, it is nice to avoid speculatively drawing things which the user can't even see.

    --

    Java: the COBOL of the new millenium.
  79. Don't remember who it was...Looks smart. by Anonymous Coward · · Score: 0

    You know? There's ways to get around the verbosity being a problem. But since you all are bloody geniuses, I'll let you all figure it out.

  80. Better yet... by Anonymous Coward · · Score: 0

    let's all just go back to 80x25 ASCII graphics with green or amber displays and just good ole dos or linux command line. Then it should only take a few seconds for a system to boot up.

    Besides, if you need a GUI, then you're too stupid to use a computer.

  81. Actually... by Anonymous Coward · · Score: 1, Informative

    This is actually exactly how Qt/Embedded works :)

    --

    (I used to be jo@trolltech.com)

  82. Office doesn't add anything to the boot sequence by rd_syringe · · Score: 2, Informative

    Microsoft Office isn't preloaded into memory on bootup. This is yet another false Slashdot meme that gets regurgitated over and over until it becomes "fact." At most, all Office ever did was automatically run a quicklaunch bar at the top of the screen. I don't even see that around anymore.

  83. No by rd_syringe · · Score: 1, Informative

    And the fact that Office apps are mostly loaded into memory at boot, thus providing the illusion of speed when they're 'opened', hasn't been pointed out to you?

    And the fact that that's not true hasn't been pointed out to you? Yet, I fully expect to see ignorant people repeat this false idea again in the next Windows discussion.

    1. Re:No by silverfuck · · Score: 2, Informative

      Actually, I think you'll find it is. I recently blew my system away with a really dodgy device driver, and had to reinstall, including Office 2k. Under the startup folder, it placed a shortcut with the name "Microsoft Office", which points to ""D:\Office\M$ Office\Office\OSA9.EXE" -b -l". A little Googling turns up many sites that say this is a program that precaches offcie components to speed up access times. Admittedly, they could be falling into an urban myth, but there are more of them than you, and I think I trust 9,630 websites more than one slashdot user who doesn't back up with evidence. (Sorry to flame slightly.)

      --
      You know you've been IMing too long when you almost say 'lol' out loud to a non-geeky friend...
    2. Re:No by rd_syringe · · Score: 1

      Yes, there is a file called Office Startup Assistant that precaches things like fonts and shared libraries. It has to be placed in the Startup folder, often done during Office Setup. In older versions of Office, you could turn this off so it didn't do it, but Office doesn't even install it by default anymore.

  84. Y-Windows--the X killer by rd_syringe · · Score: 1

    It's called Y-Windows.

  85. News for Nerds. by pbryan · · Score: 1

    Stuff that's nearly two years old.

    --

    My car gets 40 rods to the hogshead, and that's the way I likes it!

  86. Re:Office doesn't add anything to the boot sequenc by Mr.+Slippery · · Score: 1
    Microsoft Office isn't preloaded into memory on bootup. This is yet another false Slashdot meme that gets regurgitated over and over until it becomes "fact."

    Sorry, but Microsoft says you're wrong:

    The Osa.exe file initializes the shared code that is used by the Office 2003 programs. When you use the Osa.exe file to initialize shared code, the Office 2003 programs start faster. If the Office programs, instead of Osa.exe, initialize the shared code, the programs take longer to start.
    --
    Tom Swiss | the infamous tms | my blog
    You cannot wash away blood with blood
  87. How about by Anonymous Coward · · Score: 0

    Not posting if you are a fucking moron?

  88. From the very page you link to by rd_syringe · · Score: 1

    From the very page you link to:

    The Office Startup Assistant (Osa.exe or OSA) is a program that improves the performance of Office 2003 programs. Office Setup no longer puts a shortcut to the Osa.exe file in the Windows Startup folder as do the earlier versions of Microsoft Office.

    I haven't seen Office Startup Assistant in the Startup folder since using Office 97 in college.

    1. Re:From the very page you link to by Mr.+Slippery · · Score: 1
      I haven't seen Office Startup Assistant in the Startup folder since using Office 97 in college.

      Apparently it was still there as of Office XP. I suppose other jiggery-pokery is used with Office 2003.

      --
      Tom Swiss | the infamous tms | my blog
      You cannot wash away blood with blood
    2. Re:From the very page you link to by rd_syringe · · Score: 1

      I suppose other jiggery-pokery is used with Office 2003.

      None is used.

  89. don't blame X for big applications. by twitter · · Score: 1
    Running Xine, quake or anything else on my old computer is like my comparision above.

    Well, no, you should not try that on a P90, but that's not X's fault. I doubt a svga version of quake or xine would work well either. The basic rendering system is what's OK. It delivers fonts and graphics good enough for most purposes. Text editors, email, reasonable web sites and Gimp all work well, so my 8 year old laptop is still useful.

    --

    Friends don't help friends install M$ junk.

  90. opps. by twitter · · Score: 1
    sorry, I missed the comment from one of my AC fans. Yes, they foam at the mouth for almost every comment I post, mostly cut and paste obscenity.

    --

    Friends don't help friends install M$ junk.

  91. So many posts and nobody mentions Plan 9 by Anonymous Coward · · Score: 1, Interesting

    The plan 9 way of doing the windowing system is very interesting. The way /dev/bitblt is handled is probably the nicest way to implement a windowing system...

    An intro to 8 1/2

  92. typical. by twitter · · Score: 1
    You almost always see posts like "my XMHz computer with X MB of RAM runs application X very slowly.

    No, in this and most other cases, the troll says something like this instead:

    At work, we have about 400 Sony Vaio laptops with maxed-out RAM, and Firebird and Opera are too slow to use because they swap continuously ...

    My 233 MHz P2 with 64MB of ram renders the web just fine through KDE3.2 with a default Debian Sarge install. X seems to do just fine supporting all of that, so I still have no idea what you are talking about. What kind of hardware are you running 400 of that's more pathetic than mine?

    You know, AC, I think you are lying.

    --

    Friends don't help friends install M$ junk.

    1. Re:typical. by Anonymous Coward · · Score: 0

      > renders the web just fine

      Again, you sound like my son with his hands over his ears so he can't hear what he doesn't want to. X is absolutely horrible. Running just Firebird, it's running 100M into swap. It just took me 129 seconds to open a new tab in Firebird, go to cnn.com, wait for it to display, then go to yahoo.com. Over two minutes to view two web pages is not acceptable. Spending $400,000+ for new laptops plus the labor to install Debian on each is less acceptable, so we're stuck with it.

      Below is the output from vmstat. Are you still going to lie and say that no one ever posts specific info when you know that's not true?

      procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
      r b swpd free buff cache si so bi bo in cs us sy id wa
      1 0 100832 1796 576 13940 5 3 10 4 104 129 98 1 1 0
      1 0 100832 1908 576 13952 0 0 12 0 118 91 96 4 0 0
      1 0 100832 1904 584 13952 0 0 8 0 109 97 99 1 0 0
      3 0 100832 1820 588 14012 260 0 352 0 321 562 68 8 25 0
      1 0 100832 1888 588 14008 0 0 52 0 196 495 77 5 18 0
      0 1 100832 1872 596 13572 460 136 868 136 345 935 51 13 36 0
      0 2 100836 1884 572 13488 508 216 804 216 371 437 2 8 90 0
      0 1 100836 1864 576 13536 56 376 140 376 243 108 0 7 93 0
      0 1 100836 1880 596 13700 212 236 772 236 243 206 3 8 89 0
      0 1 100836 1868 592 13748 136 268 404 268 224 52 1 6 93 0
      0 1 100836 1864 600 13860 192 288 392 288 224 79 2 4 94 0
      0 1 100836 1872 600 13840 340 280 512 280 235 69 2 9 89 0
      1 0 100836 1876 600 13884 76 204 120 220 180 62 26 8 66 0
      0 1 100836 1844 600 13928 316 44 412 44 166 103 58 2 40 0
      1 0 100840 1864 600 13676 724 100 840 108 257 355 20 5 75 0
      1 0 100840 1788 600 13580 276 56 288 56 155 364 64 6 30 0
      0 1 100840 1888 596 13620 56 204 160 204 168 111 49 3 48 0
      1 0 100840 1876 600 13752 104 304 272 304 256 158 3 4 93 0
      1 0 100840 1812 604 13948 396 40 724 40 215 222 40 5 55 0
      1 0 100840 1812 604 13948 0 0 0 0 114 115 100 0 0 0
      2 0 100840 1812 604 13948 0 0 0 0 165 302 98 2 0 0
      procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
      r b swpd free buff cache si so bi bo in cs us sy id wa
      1 0 100840 1804 604 13956 0 0 8 0 197 448 92 3 5 0
      2 0 100840 1920 604 13956 24 96 24 96 106 278 92 3 5 0
      2 0 100840 1900 604 13956 16 0 16 0 220 484 92 3 5 0
      1 0 100840 1900 604 13956 0 0 0 0 218 506 98 2 0 0
      1 0 100840 1828 604 14008 20 0 72 0 184 361 88 2 10 0
      2 0 100840 1908 600 13956 52 352 52 352 219 450 91 3 6 0
      2 0 100840 1876 600 13988 0 0 0 0 114 297 84 1 15 0
      1 0 100840 1876 600 13988 0 0 0 0 150 454 99 1 0 0
      1 0 100840 1876 600 13988 0 0 0 44 169 352 99 1 0 0
      1 0 100840 1816 600 14148 24 356 184 356 272 231 10 5 85 0
      0 1 100840 1876 580 14512 20 312 472 312 225 69 3 7 90 0
      1 0 100840 1836 580 14616 64 376 168 376 219 38 2 9 89 0
      0 1 100840 1888 576 14744 52 468 208 468 219 39 0 8 92 0
      0 2 100844 1836 584 15148 184 204 684 204 264 175 4 12 84 0
      0 1 100844 1812 588 15528 124 44 672 44 227 106 8 7 85 0
      1 0 100844 1812 604 15840 244 124 752 124 238 245 25 7 69 0
      1 0 100844 1872

    2. Re:typical. by Anonymous Coward · · Score: 0

      > renders the web just fine through KDE3.2

      I would like to try KDE, but since we have these systems setup to dual boot with XP, there isn't enough room on the Linux partition to install all of the Debian KDE packages. I'm stuck with Opera and Firebird unless I can find something else. More frustration.

      Some more detail since you claimed you never see any, when every single time there's an article here about X, there's plenty of posts about its problems:

      Running Firefox (aka Firebird) with four open tabs, it's using 65.9 MB of RAM. xfs-xtt is using 18.2MB, which is just ridiculous. X is using 24.7MB, which again, I thought X was supposed to be light-weight. Just those three processes consume a total of 108 Mbytes of RAM. That's nearly the entire amount of RAM in these $3,000(!) laptops which does not include the other processes running or the RAM the kernel uses. I'd love to find a way to get X and X apps to use less RAM. It would save my job.

      To show you why I'm so frustrated (and might lose my job), they cost the company nearly $1.2M when new. We've put a lot of money into installing Red Hat last summer then Debian early spring to dual boot with the XP that came with them. Now most of our guys boot back into XP to use the web then reboot to use some of our text-based terminal programs (ignoring the fact that they don't have to reboot if they would just run Putty). Anyway, taking over a minute to display cnn.com is just insane.

    3. Re:typical. by Anonymous Coward · · Score: 0

      hey clown, the other poster replied with some real numbers. please go ahead and "debunk" the "myth" that X is a piece of crap. c'mon, it should be entertaining. please remove your hands from your ears and stop drooling while you do it, kthx.

    4. Re:typical. by Anonymous Coward · · Score: 0
      You know, AC, I think you are lying.

      He replied below with some data, that we'd like for you to address, please.

      Let's see you slither your way out of this one, like so many other before.

  93. Doh! by Short+Circuit · · Score: 1

    He's talking about Pelor! But Pelor's not evil...he's Neutral-Good.

  94. Do NOT underestimate the network transparency by Anonymous Coward · · Score: 0

    Whenever I see someone oushing to make a new X without the networking as part of the base functionality because it's not used all that much, I wonder if they've done their research. I use it daily, and I'm just your average hobbyist. It's one of the things that I miss in windows. (No, VNC is not an acceptable substitute.)

  95. Throwing things away in Plan 9's 8.5 windows by billstewart · · Score: 1
    Rob Pike gave a talk at Usenix in the early 90s about Plan 9's 8.5 windowing system. His memorable comment was that he and Ken had spent a decade learning all the things that a window system shouldn't do and had written one that didn't do them.

    Startup time was basically instantaneous - from the command line, you type "8 1/2" (in Unicode :-), hit carriage return, and the window system was up and running in about the time you'd expect to wait for shell to give you a $. I think it was about 64K lines of C code. This was running on a Next pizza box workstation, so it was a 68040 at probably 33 MHz - nice for its day, but not blazingly fast. The screen was 2-bit grayscale, which is fine for software development though obviously it'd be nice to have something a bit fancier...

    --

    Bill Stewart
    New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
  96. TCL/TK by Latent+Heat · · Score: 1

    The TK part of TCL/TK is another canvas-based approach (also usable as TKInter from Python).

  97. Gosling, Hopkins, JCR, and Unix-Haters Perspective by billstewart · · Score: 2, Interesting
    It's worth keeping the personalities and time frames here in perspective.
    • James Gosling wrote the NeWS Network Extensible Windowing System.
    • Don Hopkins was one of the absolute wizardly programmers using NeWS.
    • JCR was a NeXT Weenie, and is now an Apple Weenie. (I forget if you worked directly for NeXT or only were a heavy user...)
    • The Unix-Hater's Handbook was written in the late 80s, so the comments mostly relate to X11R2 or thereabouts, and when Don was referring to a 486, that was a fast computer. I thought the book was misnamed - it was largely the sendmail- vi- and emacs-hater's handbook, and many of the things that were evil about Sendmail, Vi, and Emacs then are still evil today.
    So when Don was ranting about architectural choices that were wrong with X, he was comparing it to more interesting architectures like NeWS or various experimental things that have been left in the past, or to Windows which was relatively lightweight (though badly buggy) back then (the "lightweight" part has since been fixed.) And the things that he complained about mostly haven't changed a lot, except that Motif was really bloated back then, while these days Gnome looks bloated (but does a lot more) and Motif looks comparatively lightweight.

    The one major difference is that today, the main uses for X are to run a browser as well as Xterm. To some extent, this balances the really big advantage of X (or NeWS) over Windows, which is being able to access resources on lots of machines at once.

    What Don *didn't* rant about, because he was ranting about X, was that NeWS had its own horribly broken tradeoffs as well. The way it implemented really good WYSIWYG rendering and let applications decide which pieces of work should run on the client vs. the server was to pass executable chunks of Postscript code around for the interpreter on the NeWS Window Server to run. When everything worked, it was excellent, a joy to work with, and received the kind of raves that NeXtStEp enthusiasts give NeXt'S environment, but it had an almost total lack of security between applications, and if anything broke your screen tended to explode into an angry fruit salad. There were few people capable of doing real debugging in this environment, though Don, who was one of them. wrote an amazing debugger for it.

    Java took many of the good ideas from NeWS about letting you safely hand chunks of code between cooperating interpreted processes, but did so with an actual security model built in from the beginning. There are people who don't like it (especially ObjectiveC fans), but one of its worst problems, slowness, has been fixed in part by JIT compilers and in part by Moore's Law. Unfortunately, some of Java's competitors, like ActiveX and JavaScript, didn't have a solid security model built in to them, so while they also let you divide labor between clients and servers, they're a security nightmare that could, and should, have been avoided.

    Disclaimer: JCR and Don are friends of mine. I've met Gosling occasionally, but it's been a few years.

    --

    Bill Stewart
    New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
  98. Uh by Anonymous Coward · · Score: 0
    None is used.
    And you know this how? Oh, I forgot, you're on the Office programming team and privy to Office's internals. Silly me.

    Oh, you're not? Then where did you pull this assertion? Out of your ass?

    Thought so.
    1. Re:Uh by rd_syringe · · Score: 1

      Not only does the very KB article linked to state the very same thing, but you can monitor the process startup yourself if you decide to take off your anti-MS blinders. It's called reading comprehension skills. *shrug*

  99. MODS: TROLL ALERT by Anonymous Coward · · Score: 0

    This is to inform you, gentle moderator, that the parent post is from a person who has trolled Slashdot in the past under the names bonch and Overly Critical Guy. Please, do all of us a favor and don't be taken in by this person's moronic brayings.

    Thank you.

    This has been a public service announcement.

  100. MODS: TROLL ALERT by Anonymous Coward · · Score: 0

    This is to inform you, gentle moderator, that the parent post is from a person who has trolled Slashdot in the past under the names bonch and Overly Critical Guy. Please, do all of us a favor and don't be taken in by this person's moronic brayings.

    Thank you.

    This has been a public service announcement.

  101. MODS: TROLL ALERT by Anonymous Coward · · Score: 0

    This is to inform you, gentle moderator, that the parent post is from a person who has trolled Slashdot in the past under the names bonch and Overly Critical Guy. Please, do all of us a favor and don't be taken in by this person's moronic brayings.

    Thank you.

    This has been a public service announcement.

  102. MODS: TROLL ALERT by Anonymous Coward · · Score: 0

    This is to inform you, gentle moderator, that the parent post is from a person who has trolled Slashdot in the past under the names bonch and Overly Critical Guy. Please, do all of us a favor and don't be taken in by this person's moronic brayings.

    Thank you.

    This has been a public service announcement.

  103. MODS: TROLL ALERT by Anonymous Coward · · Score: 0

    This is to inform you, gentle moderator, that the parent post is from a person who has trolled Slashdot in the past under the names bonch and Overly Critical Guy. Please, do all of us a favor and don't be taken in by this person's moronic brayings.

    Thank you.

    This has been a public service announcement.

  104. MODS: TROLL ALERT by Anonymous Coward · · Score: 0

    This is to inform you, gentle moderator, that the parent post is from a person who has trolled Slashdot in the past under the names bonch and Overly Critical Guy. Please, do all of us a favor and don't be taken in by this person's moronic brayings.

    Thank you.

    This has been a public service announcement.

  105. MODS: TROLL ALERT by Anonymous Coward · · Score: 0

    This is to inform you, gentle moderator, that the parent post is from a person who has trolled Slashdot in the past under the names bonch and Overly Critical Guy. Please, do all of us a favor and don't be taken in by this person's moronic brayings.

    Thank you.

    This has been a public service announcement.

  106. Gosling ignores the lesson of HTML. by mburns · · Score: 2

    Yes, I agree with you that HTML must be mentioned. It is the most successful of GUI interfaces after all. And, Gosling is defying this success. File caching and fonts are left to the browser to optimize the use of bandwidth. HTML pages are incomparably preferable to PDF transmissions. As for improvement of the X protocol, whatever happened to the X compression methods where fonts were cached instead of being resent?

    The future must resist this kind of reductionism proposed by Gosling. Instead, high extensions are needed for caching and parametric transforms, and for audiovisual channels, joysticks, and other kinds of telemetry.

    --
    Michael J. Burns
  107. Twitter: Life and times of a petulant cock-gobbler by Anonymous Coward · · Score: 0

    Twitter, you're a petulant cock-gobbling sycophant to Linux Torvaldyos! Quit taking DP from ESR and RMS's feculent cocks and why don't you try to stop sucking quite so much? Get out of your parents' basement and see the real world - maybe then you'll see how pathetic you sound, with your neverending stream of bullshit about how Microsoft is stalking you. Wasn't it you who said that Microsoft believes your insane ranting is actually a threat to them, so they PAY PEOPLE to reply to you on Slashdot? No sir, I don't get any money. I do it for the love. Someone has to go up against your paranoid whining. So get back in your cage and shut the fuck up already.

  108. If I were to design a windowing system today... by Anonymous Coward · · Score: 0

    ...I would patent it and then sue everybody else for having stolen my idea!

  109. Re:New windowing system from scratch? (OT) by Anonymous Coward · · Score: 0
    However, pages are fairly coarse grained: 4k on standard IA32 setups (you can run it in 4mb mode as well but I don't know anybody who does this).


    If I wanted to optimise my page size for the "best" sized read chunk from my hard drive (say, a full cache dump), how would I go about doing it in Linux? Is it possible? How could I benchmark it? Are page management schemes good enough that I needn't bother worrying about sequential page faults?

    Inquiring minds want to know...
  110. How is this redundant if this was FIFTH POST!!! by oldosadmin · · Score: 1

    Dumbass mods, read the fucking timestamp.

    Nice to have karma to burn.

    --
    Jay | http://oldos.org
  111. insecurity by Anonymous Coward · · Score: 0

    A nice idea - giving userspace direct access to hardware, makes it all so simple.

    Unfortunately basic security requirements interfere:

    1) it MUST be possible for a user to type a simple key sequence and guarantee that as a result they will always be talking to the trusted OS
    (ctrl-alt-del on wintel hardware does this with an interrrupt)

    2) it MUST NOT be possible for an application to interfere with another applications data (including, but in no way limited to, font choices/definitions, window pixels, colour mappings)

    So a TRUSTED component (either hardware or software) MUST enforce window offsets and clipping .
    Most COTS hardware does not include sufficient facilities to implement this and so it must be implemented with a trusted software module with exclusive HW access.
    [ Obviously with minimal in-kernel support. ]

    Goslings library model does not provide this,
    and so is not a possible contender.

    [ Hopefully future hardware will include more support for specific contexts allowing the software modules to be simplified, streamlined; perhaps to the extent of having a small cache of contexts and faulting if an uncached context is provided. ]

  112. Full Refreshes happen often, not rarely! by billstewart · · Score: 1

    Right now I've got ~8 windows open on my Windows box, including File Manager, Outlook (for work email), Eudora (for my email), and a bunch of tabbed Mozilla browsers. I switch between windows fairly often, and I switch between tabs fairly often in the browsers I'm using. If you've got a rendering system that lets you download each one of those to the window server, and only refresh the parts of each hidden window that change, then yes, that's pretty rare, but if you need to refresh a whole screen whenever it you switch windows, that's a lot.

    --

    Bill Stewart
    New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
  113. "Marketing" NeWS?? by billstewart · · Score: 1

    I'm not sure that I'd call what happened to it "marketing", exactly :-) Sure, there were some third parties like Grasshopper Group that actually tried to market ports of NeWS to various hardware, and there was Sun's hybrid "NeWS/X" stuff, but Sun really wasn't all that helpful, from what I remember.

    --

    Bill Stewart
    New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
  114. Enlightenment was so bloated! by billstewart · · Score: 1

    I'm afraid I never gave Enlightenment a fair trial. I tried running it on a couple of machines with 64-96MB of RAM, and after a couple of attempts to do anything at all responded with the smoothness of Max Headroom on barbiturates, I backed it off and ran fvtwm, which performed adequately (at least for definitions of adequacy that includ fvtwm :-) (Basically, I'd rather have Sun Open Look on a Sparcstation 2 back....) And when we got a lot more RAM on the next budget cycle, I installed Gnome on some machines and KDE on others, and we ran Win2K and XP on the faster hardware...

    --

    Bill Stewart
    New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
  115. Gosling did have a hand in Swing by Anonymous Coward · · Score: 0

    Actually Gosling's is listed as one of the authors of JOptionPane, and his face appears along with the rest of the swing team in the killer swing demo (SwingSet).

    BTW I like Swing as components are almost infinitely customizable. Statup time and memory could use some tuning though.

  116. MODS: TROLL ALERT by Anonymous Coward · · Score: 0

    Don't be taken in by this idiot--he has accounts under the names bonch and Overly Critical Guy. He has a history of astroturfing for Microsoft, bashing anything Open Source, using lies and half-truths to get modded up, karma whoring, and the usual trolling (under his bonch account, he got a troll posted to the front page of Slashdot).

    All you have to do to check the veracity of this is to look at the posting history of his two old personnae (linked above) and his current one to figure it out.

    Please do not mod this jerk up--every time you do the Slashdot S/N ratio goes down while bonch/Overly Critical Guy/rd_syringe just laughs at you.

    This has been a public service announcement