Slashdot Mirror


Berlin Project Lead Holds Forth

infodragon writes: "Here is a good interview with the project lead of Berlin. It is very informative and interesting, they talk about technologies such as gtk+, bonobo, corba ... If Berlin takes off it looks like X-Windows may have a competitor." That project head is Stefan Seefeld, and Seefeld gives good answers to questions like whether GNOME can or will be ported to Berlin, and how Berlin can hope to win converts from the millions of Xf86 users.

18 of 140 comments (clear)

  1. Replacing Xfree!?! by mobydobius · · Score: 3

    We can't replace Xfree! If we did, what new scapegoat out there would we blame for performance bloat?

    --

    "I like to wear big boy pants."
  2. Why we should keep X. by karzan · · Score: 3
    While there have always been complaints against X, most of them are due to lack of knowledge about what X can really do. X is a highly capable piece of work, highly extensible, highly portable, and very, very useful. It does the job, and it does it well. Does it do translucent anti-aliased animated menus? No, but with an extension, it easily can (don't ask me why you'd ever *want* those, but some idiots seem to).

    Anyway, all technical issues aside, X is an accepted standard that works across every UNIX platform, VMS, Windows, Mac, RiscOS, BeOS, Java, you name it. There is no practical reason to replace it; it does what it's supposed to do, and it does it well, and if there's something you don't like about it, it's extensible. IF for some bizarre reason it was felt that the protocol should be scrapped in favour of a new one, it should be X12, and it should be developed with the expertise and experience in the X crowd, not by random idiots who want alpha channels as a top priority! Furthermore, anyone who knows anything about the X protocol knows that it inherently supports a server supporting multiple versions of X simultaneously. So migration to X12 would be relatively simple, you would start with X servers and libraries supporting both X11 and X12 and move over. Whereas if some dumbasses decided to switch to Berlin we'd end up with fragmented, incompatible stuff and redundant work.

    Bah.

    1. Re:Why we should keep X. by Hard_Code · · Score: 3

      "it does what it's supposed to do, and it does it well"

      Yes, but did it ever occur to you that what it does (well, at that) might not be exactly what everybody wants?? X is great for network display server. But guess what, there are some people who couldn't give a sh*t about a network display server. There are some people (um, 98% of desktop users?) that just want a fast (*fast*!) gui, which can do all the neato stuff like opengl, directx, etc. as close to the hardware as possible, while having at least some basic GUI semantics built-in, so every application doesn't look and behave differently. Oh yeah, it needs to be easy to configure (X is a bitch...I never ever want to deal with scanlines and refresh rates!!). You may consider these people wackos, but these are desktop users, who would never run a display over a network in their lifetime. Explain to Joe Sixpack Gamer why his GUI has been built on a framework for network-based display. If anything the remote display stuff should be built on the gui, not the other way around. There is *plenty* of room for another display server. Um, isn't "choice" defined as GOOD around here anyway?

      --

      It's 10 PM. Do you know if you're un-American?
  3. Why X is a POS and needs to die. by be-fan · · Score: 3



    Everytime X is mentioned, the UNIX grognards come out of the woodwork. All through the halls of /., shouts of "compatibility!" "network transpareny!" "maturity!" "flexibility!" "extensibility!" and "X only sucks a little bit!" resound. Every comment I've seen seems to be from people who are so attached to their antiquated way of doing things that they cannot handle the mind-expanding notion that maybe, just maybe, the best GUI has yet to be designed. Let's just iterate (or maybe recurse?) through some of their misgivings about replacing X.

    Compatibility: If I cared all that much about compatibility, I'd still be using Windows. 'Nuff said.

    Network transparency: This is a half-decent point. However, Berlin does network transparency as well, so it is a moot point anyway. The truth is, other windowing systems do network transparency, and some better than X. If you don't believe me, read the docs on QNet and QNX's Photon. Whoa, somebody actualy DID come up with something better than X!

    Maturity: I don't know how to explain this to the grognards. Let me put it this way. I love my grandparents. I want to learn from my grandparent's vast life-experience. However, there is no way in hell I'd be caught dead dressing like them. Even with a cap on backwards, a tweed coat is a tweed coat. The same thing holds true for software. 30 year old software, just like 30 year old people (no offense to those of you that far over the hill ;) should be replaced. People say, "we shouldn't reinvent the wheel." The first wheel was made of wood roughly hacked together. Now we have high-tech rubber-wrapped precision wheels. I'd say wew've done a fair bit of reinventing. Besides, a better analogy is the cart. The cart did its job of getting stuff from place to place. Then came carriages, and while they were based upon carts, they suddenly had the new capability of ferrying people around! After that, we invented cars (with some steps in between ;) and while the car is an extension of the carriage, it is a radically different beast and enables people to do things like go across the country. Then we invented planes (which use wheels as well!) which make international travel easy, at least as long as you're not booked on United. While the airplane too is an extension of the cart, it is a radically different idea that makes new things possible. A more technology example is UVM. I keep reading bits about how BSD VM is so great because it is a mature codebase that is the product of years of development. Then I read the thesis paper on UVM, and I find that this "green" piece of software blows BSD-VM out of the water. Looking at mature methods to implement your software is good. Deluding yourself into believing that everything good in computer science had been invented by 1980 is bad. The lesson of all this is that we must learn from the past and we must build upon the past. We should not, however simply modify the past.

    Flexibility: Flexibility is over-rated. No, its true. X had to make some tough design decisions, and it chose to make things more flexibile rather than better. While a certain amount of flexibility is necessary, software should be designed with two goals in mind: Providing the absolute best experience for the next ten years (a generation in software-time) and providing some sort of migration path to the next level. While X, due to its flexible nature, has survived the last decade and a half, it is not, in its current form, able to keep up with its younger competitors.

    --
    A deep unwavering belief is a sure sign you're missing something...
  4. Re:Berlin missed the boat by naasking · · Score: 3

    Perhaps you missed the fact that Berlin is a Vector-based GUI. You know, like Aqua? I don't think there are any other GUI's out there with that capability(besides proprietary Apple one of course) and you certainly won't find any vector-based rendering extensions for X.

    -----
    "People who bite the hand that feeds them usually lick the boot that kicks them"

  5. Re:Linux's GUI problems by FattMattP · · Score: 4
    --
    Prevent email address forgery. Publish SPF records for y
  6. Re:Don't start over, just help X by Jason+Earl · · Score: 3

    Exactly, when I read the part about Berlin enforcing MVC I knew that there was no way that Berlin was ever going to take off.

    X is here today, it works, it is improving, and it allows you to write your application however you want (even if it is the wrong way to approach the problem). Besides, the biggest problem with X is the fact that it is too low level to really promote code reuse, but both KDE and Gnome are frantically at work trying to fix this. Honestly, what new GUIfied software being written today for Linux doesn't rely on either the KDE or Gnome libraries for much of the heavy lifting?

    If Berlin + GGI would have been available when X was still crusty and before KDE and Gnome existed then possibly it might have generated a following, especially if it would have included a legacy X compatibility so that I could still run all my X applications (there is no way I am using a desktop that doesn't include Emacs).

    As my grandmother always says, "If wishes were horses then beggars would ride." The reality is quite different.

    The Berlin folks are welcome to prove me wrong though. Competition is always good. And it's their time and effort.

  7. "If they only opened Be" (song) by Ukab+the+Great · · Score: 3

    "If They Only Opened Be" (to the tune of "If I Only Had a Brain")

    I'd move my windows rapid, and they'd redraw not vapid,
    They'd move responsively
    I'd get such vast improvement In my mouse's pointer movement
    If they only opened Be
    My afternoons spent quaking, While simulatenously making
    Illegal Mp3's
    In multimedia heaven, Not in hell, like X11
    If they only opened Be
    Oh I, Linux guy, Would thrown my redhat CD in the trash,
    If Jean-Louis would GPL the code, I'd ditch Linux--in a flash
    No more time I would spend waiting, For massive screen updating
    When launching apps concurrently
    We'd all be very happy, With an OS far less crappy
    If they only opened Be.

  8. Re:Don't start over, just help X by benb · · Score: 3

    > * It seamlessly allows local and remotely-running
    > programs to work together on a display

    As does Berlin, Berlin does even better than X.

    > * It is flexible enough to allow programs to fully
    > determine how it is to behave on lots of things

    Berlin does, too. But it strongly encourages to use the common facilities.

    Here, less freedom for the app developer means more freedom for the user.

    Think GTK Themes, just with much more configurability. The user can easily replace a widgetset implementation, and it will apply to all apps, because the API for the widgetsets is standardized.

    Have you checked out Berlin's design? It is very powerful and flexible.

    BTW: If you "fix" X, it's not the standard X anymore. You "enhanced".

  9. Re:Don't start over, just help X by Simon+Brooke · · Score: 3
    I strongly agree with this. People who want to replace X generally don't understand X. X is far and away the most powerful and flexible windowing system available on any computing platform today. Certainly it isn't the prettiest. It isn't it's job to be pretty. X provides a framework in which you can provide your own window managers, widget sets, and so on. If the window managers aren't pretty enough, that isn't X's fault. Write your own. Make them better.

    Dammit, X has supported non-rectangular shaped windows since 1986, but try opening a round window in either KDE or Gnome, and what happens?

    X has a few deficiencies in the multimedia area. These can be fixed. It's got to take less work to fix them than to replace X. Meantime, creating a new competing windowing layer is not going to unify the Linux desktop - Linux is not like that. Many people will stick to X anyway, some because they use programs which were written for it, some because they appreciate it's qualities, some (not many!) because they're too conservative to change. So what you'll get is more diversity, not less.

    Not of course that diversity is bad. Diversity is good. And one of these days there will be a competing windowing layer that is better than X (if windows don't just become irrelevent before then). But if you think that X is bad, you're the wrong person to write a windowing layer, because you fundamentally don't understand the problems.

    --
    I'm old enough to remember when discussions on Slashdot were well informed.
  10. Re:Don't start over, just help X by ceswiedler · · Score: 3

    X is great if you define great as a GUI protocol for running applications over a network. Unfortunately, that's not how applications are run today. I have my OWN processor, thank you very much, and I don't need to run Mozilla off of a honkin' big Solaris server. It's nice to be ABLE to, and sure, that flexibility is an advantage. Unfortunately, flexibility also has drawbacks, because you can't optimize for the specific cases. How fast do you think Direct3D would run over a network? The whole point of accelerator video cards is REDUCING the bottleneck between CPU/RAM/video. If X is going to survive, it doesn't necessarily have to drop the networked-application functionality, but it's sure as hell going to have to implement a "I know I'm running as both client as server, let me optimize" mode.

  11. What Berlin needs to do by spitzak · · Score: 5
    I have followed this for years, in the hope that something reasonable will replace X. However I don't see the Berlin people really trying to produce what is needed, nor do I see anybody else doing so.

    First, we do not need another toolkit. We need an environment that makes it easy to write toolkits. If we have this, GTK and Qt will be ported quite quickly, and maybe new toolkits simple enough to be programmed by mere mortals will appear.Berlin should only provide unnamed shaped "canvases" that belong to different clients, it should not provide any "buttons" or "menus" or "windows", but conversely you should be able to easily (ie with no setup before the drawing function) do full PostScript and OpenGL graphics into these, and anti-aliased fonts, full UTF-8 formatting of text, and high speed placing of images with arbitrary linear transformations from user memory onto the screen.

    (The problem with Berlin and the other projects like it is that is is really trivial to write a toolkit compared to writing what powerful antialiased graphics or asynchronous communication interfaces, and writing toolkits appeals to the programmer's desire to control how others use his/her system, so the programmers get diverted to this useless bloat that actually makes their stuff less likely to be used.)

    Berlin has to have an Xlib emulation library so that X11 programs (and remote X clients) can display on the Berlin server. Fortunately this is easier than it used to be because the emulation library only has to pretend that a TrueColor visual exists (a few years ago emulating an 8-bit colormap was mandatory to get some of the awful X clients to work, but these have disappeared). This emulation is absolutely necessary so that people can migrate to Berlin. There is no need to be able to run X window managers.

    Conversely, Berlin programs must work on X11. The graphics can be lousy, very slow, and plenty of functionality can be missing (don't crash, but leave blanks in the output). This requires an implementation of the Berlin interface that works atop Xlib. Without this people will not write new applications for Berlin.

    Finally Berlin must be easy to program. It should be absolutely clear to someone without a PHD exactly what you do to create a window and draw into it, and to get events, by reading the manual in sequential order. The set of calls should be reduced as much as possible, there should be as few arguments as possible, and none of the arguments should be structures or pointers to structures. Use a static graphics state like OpenGL. And there should not be gratuitous objects, colors are identified by rgb numbers, not "color objects", fonts are identified by names, not "font objects", etc. Use integer ID's for the canvases.

    The library has to be C rather than C++ or any other language to make the Gnome/GTK people happy.

  12. Re:Don't start over, just help X by barracg8 · · Score: 4
    I think some moderators got blinded by the clever troll...
    • X is NOT bad. It's very well-designed.

    Yup. X is a brilliant protocol for remote display. It's just a goddamn awful protocol for local display. Just because something is well well designed does not make it appropriate for the given task.
    • I see a future where X actually has most of the stuff running inside the video card, and programs on the local machine sending updates to it, similar to the way in which programs update remote displays over a network.

    Not possible, X's primatives are simply too fine grained.

    I look forward to using a gui that runs directly onto an accelerated local framebuffer, with an X server running on that. The network abstraction should run ontop of the gui. Not vice versa.
  13. Slow development by Anonymous Coward · · Score: 3

    I've been following the Berlin project for a few years and I've had the opportunity to look through the source and even compile it on a few occasions. It saddens me to say that the development of Berlin is very slow and is verging on stagnant. It is the most advanced X alternative out there, but I'm afraid that it's not getting the attention that it deserves from developers. Perhaps dropping their ties with Python and implementing a more common C++/C api would assist in the acceptance of Berlin as an X replacement.

  14. X *is* bad by mbessey · · Score: 4
    It seamlessly allows local and remotely-running programs to work together on a display
    Okay, I'll accept that it allows you to do that (that's pretty much the whole point of X, really). But I wouldn't exactly call it "seamless". Between configuring .mumble files, and having to launch applications with just the right set of arguments, you can make it work, but it's not exactly transparent. A little GUI work would go a long way here.

    It is flexible enough to allow programs to fully determine how it is to behave on lots of things -- X does not force you into a specific widget set or window decoration method, window placement behaviour, or anything else
    Sorry, this is just about the most annoying thing about X for most end-users, and there is always somebody who jumps up trying to defend it. I don't want every program to use a different widget set. I do want my programs to be able to support basic cut-and-paste. I want good support for scalable fonts. It is flexible enough to have extensions to help with some things. Lately we have seen extensions to add Anti-Aliased fonts and to aid in 3D display and moving picture display.
    Having a general extension mechanism is a good thing. Needing to use it to provide basic functionality isn't such a good thing.

  15. Linux's GUI problems by Ukab+the+Great · · Score: 5

    1. Many (not all, but many) Linux people do not understand the desktop, nor do they understand end-users, nor do they understand fundamental GUI design concepts. Go to a LUG meeting and ask everyone who knows what "Fitts' Law" is to raise their hands. Few hands if any will be raised. The linux community is approaching the concept of linux on the desktop from a server-based perspective, and this will not work. Mention killing X and immediately your get arguments of how great X's network transparency is. "Linux on the desktop" will not work. A desktop that "just happens to use Linux" will. A successful linux UI will be one that will be designed as if the command line never existed.

    2. Standards have to be good standards. They have to be well chosen standards that are done for sound reasons that are based on fundamental usability principles. We're not talking about "you say tomato, I say to-ma-toe" issues, we're talking about stuff that's been proving by the cold, hard science of cognitive psychology and usability labs. As mentioned in #1, most of the people involved with linux don't understand basic usability principles, so they copy others who they think do understand these principles. Unfortunately, the people that they copy are just as much in the dark about designing good UI as they are. I'm talking about Microsoft. Microsoft started off on a bad note in the initial design of windows when they intentionally violated many proven UI design principles just to avoid Apple look-and-feel lawsuits. Throughout the last ten years of computing history, the only consistency microsoft GUI's have had is the consistency with which they have been cluttered, confusing, unintuitive, inefficient, and inconsistent. Everything from cluttering UI widgets with zillions of underline accelerators to MDI windows within windows to adaptive menus that move around on the user have made Windows the textbook case for bad UI design. I've heard myths of micrsoft usability labs in the Himalayas that have large staffs of highly trained Yeti's with PhD's in design and cognitive psychology. Apparently Microsoft's own programmers have never heard of such myths. Check out the Interface Hall of Shame website. Microsoft is by far the most frequente inductee. I guarantee you that any standards (including any set by the GNOME Foundation) will be nothing more than "Let's go copy Windows". I'm not very optimistic, which is why I'm forking GNOME. The one thing that linux has going for it in the standards department is that people who understand how to craft good standards have the code to do so.

  16. Berlin missed the boat by janpod66 · · Score: 3
    I think Berlin has missed the boat on many fronts:
    • Even the few valid criticisms they had of X have been addressed: X now has antialiasing, transparency, and scalable fonts. (Yes, they are extensions, and that is quite proper: you want to be able to have low-footprint implementations of X without those features.)
    • Java/Swing is an almost literal implementation of the Berlin manifesto: instead of C++, it uses Java, instead of Fresco, it uses Swing, and in addition to CORBA, it also has RMI, SOAP, and a lot of other RPC mechanisms. It turns out that in practice, Java/Swing isn't usually used in the simplistic way envisioned for Berlin (although IBM has a remote AWT implementation). Once you bother with RMI, it's more efficient and simpler to run much more code on the display server. Unlike Berlin, Java/Swing also has a safe and efficient "display-side" extension language--Java itself.
    • Systems like Qt and Gtk+ now work directly on the framebuffer, and with VNC, the resulting system can even be accessed remotely.
    • (And, incidentally, Fresco is a nice toolkit, and it runs nicely on X11.)

    I think Berlin has missed the boat. X11 has caught up, and better implementations of Berlin's ideas already exist. This is not the time anymore to loose another C++/CORBA thing on the world.

    The frontiers in toolkits is elsewhere anyway. If you want to play around with a powerful, extensible toolkit, spend some time digging into Squeak. It's a research system and on the surface, it looks like a pretty unappealing and cumbersome system with a bunch of oddly colored windows. The documentation is so-so (take a look at the Wiki, it contains some tutorials). But Squeak and its toolkit, Morphic, are also extremely powerful, a window system in which everything is open to inspection and modification, in which everything can be made to interact with everything else, and in which there is a huge number of tools, browsers, and development tools. The whole thing can run on a plain frame buffer (it also runs fine under X11, Windows, or MacOS), and everything is built in Smalltalk.

  17. Don't start over, just help X by Erich · · Score: 5
    X is NOT bad. It's very well-designed.

    • It seamlessly allows local and remotely-running programs to work together on a display
    • It is flexible enough to allow programs to fully determine how it is to behave on lots of things -- X does not force you into a specific widget set or window decoration method, window placement behaviour, or anything else
    • It is flexible enough to have extensions to help with some things. Lately we have seen extensions to add Anti-Aliased fonts and to aid in 3D display and moving picture display.
    Many of the old ``problems'' of X, such as no anti-aliased fonts and poor support for moving pictures and 3D, are being addressed within the existing framework of X. This is because X is great, it allows for this sort of advancement while still having compatability.

    If you want to make your windowing stuff faster, if it's X's fault you can almost always fix it. But I think that we can do a lot from within the framework of X. I see a future where X actually has most of the stuff running inside the video card, and programs on the local machine sending updates to it, similar to the way in which programs update remote displays over a network. Without the framework of a flexibile windowing architecture this is impossible, but with flexibility it is within reason.

    Please don't get rid of the good to go with the new. Don't just sit around and bash X, either. 'Cause X kicks butt. If you have a problem with X, fix it. Don't just whine.

    --

    -- Erich

    Slashdot reader since 1997