Interview with Berlin core developers 42
jregel writes "Linux.com has an interview with Stefan Steefeld and Graydon Hoare, two of the Berlin core developers. Interesting stuff that should dispel a few rumours and inaccuracies surrounding this project. "
People joining OSS projects (Score:1)
Yes, I agree. Berliners care to explain? (Score:1)
Re:questions that should have been asked: (Score:2)
Re:Berlin and X. (Score:1)
Berlin uses OpenGL as a 2D imaging layer (yes, OpenGL is useful for 2D, too), so you won't need hardware acceleration, though that would certainly be a good thing to have.
And yes, I have seen these working well on a Linux box, as well as Berlin itself (well, as well as you can expect from version 0.1.0).
To say Berlin relies on vaporware (or semi-vaporware) is simply nowhere near the truth.
Re:conservatism (Score:1)
Things which may seem antiquated will always have a place because they were written for a specific purpose.
Now this is not to say new development shouldn't be encouraged. That attitude is somewhat shortsighted. I'm arguing that dismissing existing technologies as "out of date" is just as shortsighted. Companies still use COBOL, BASIC and FORTRAN!
--
Re:Scarcity of good programmers (Score:1)
Early Berlin, anyone? (Score:1)
Re:Berlin and X. (Score:1)
People should let them write what they want to write and be prepared to learn from the results rather than pooh-poohing the idea out of hand.
I can see why people would want to stop NASA doing the same sort of bluesky work (though I don't agree with it), given that it's costly, but Berlin costs nothing; why on earth do people seem to want to knock it on the head?
History: Things To Understand About Berlin. (Score:4)
In the beginning, Berlin was a project started by some Assembly-Language "uberhackers" that really disliked X, who had the notion that they could somehow write a windowing system that would be so fast that it would somehow displace X.
In that "distant past," there was much unfriendly flaming, and there were "dueling web pages" between myself and some Berlin folk. My page has since evolved into On the Thesis that X is Big/Bloated/Obsolete and Should Be Replaced, [hex.net] which is rather less "anti-Berlin" now.
Acrimony arose over a generally "uncooperative" attitude; the designers were quite prepared to eschew CPU architecture portability, only to ever run on IA-32, quite prepared to eschew networking support, never to be able to display apps remotely, and quite prepared to ignore any and all existing GUI APIs, requiring that all-new apps be deployed.
The original grouping of designers largely evaporated; they seemed to get the beginnings of a font renderer working, but apparently little else.
I get the impression that there was some politicking along with the GGI Project that was involved in the "staff turnover;" 'tis not completely clear...
A largely new generation of folks came along, bringing a somewhat more cooperative spirit, and an interest in being hugely "buzzword-compliant," between "being 3D-compliant" via OpenGL, network transparent via CORBA, and by the same token, as architecture independent as C++ and GGI get you, and language-independent (sort of) via UNICODE.
I had a nice chat with Graydon Hoare last year in Atlanta; they hadn't gotten too far, but certainly had a more useful attitude.
In particular, they are now not presenting the former, laughable, message that "X is Dead, And Berlin Is About To Replace It."
After about 3 years, you'd expect there to at least be a text editor or something available. At this point, they're fairly happy to now have some apps that can display widgets that show that there's some working code.
I would suggest that they are still labouring under some significant handicaps as compared to some of the alternatives, and am skeptical that there is a good likelihood of success:
This is a vicious circle; it's hard to attract developers to a system that doesn't work yet, and other projects like GNOME and KDE, as they do function today are vastly more attractive, as well as being vastly less risky propositions.
This effect is vastly magnified when you consider that commercial enterprises are investing considerable effort in X-based efforts.
The high probability of failure completely discourages commercial investment of time/effort/money.
The fact that the GGI project developed a library to allow GGI apps to run atop X means that at least that forcible dependency has been cut, but there's still just too many things that need to work for Berlin to work.
Contrast this with GNUstep, [gnustep.org] which, it seems to me, has a strategy more likely to succeed. [hex.net]
It is thus based on the use of a substrate that is feasibly run on X, but which, unlike Motif, doesn't force vast amounts of X dependancies onto programs, it would be conceivable for X to be replaced, eventually, by Display GhostScript Running On Something Else. (Similar is actually true for some of the major "X" GUI toolkits like Tk, GTK, Qt, and FLTK, which all can run on things other than X...)
Good News Even If The Big Project Fails
For instance, they may wind up producing a font rendering engine that could be useful elsewhere.
It is arguable that the adoption of Motif (with sundry ugly implementationness as well as proprietariness) over Fresco is part of what has set back progress in X development for a goodly five or so years. (I'd argue that...)
Re:Berlin and X. (Score:2)
questions that should have been asked: (Score:1)
what architectures does/will berlin support under linux?
standard (Score:1)
So has CDE...
Scarcity of good programmers (Score:1)
Not that I think Berlin is doomed. I think it has the potential to be very interesting.
Re:Berlin and X. (Score:2)
The idea is that Berlin will send messages like "display dialog X with message Y" instead of doing all the low level drawing. I saw Gettys linux-kernel posting too and he seemed to gloss over that fact.
The great thing about Berlin is that you don't have to define one communication protocol like the X protocol. You can easily move the functionality between client and server in order to get the best latency/bandwidth ratio. Sure, there are X Extensions, but those aren't nearly as easy to add as new CORBA objects. And CORBA objects aren't only for graphics.
The way I see it, Berlin is just different enough that it is worth doing (the rewards could be great), yet based on enough standards that it shouldn't be too hard to get working. I'm exciting to see how it progresses.
Re:Berlin and X. (Score:3)
From what I see, the Berlin people are planning to counter this by making the protocol higher level, including toolkit-level stuff (menus, buttons, any kind of low level widgets) in the server. This is probably a move in the right direction (at least, having the *option* to do that; there's always a case for supporitng plain X 'draw rectangle' functionality for things like themable apps), but I don't think it's nearly as important as streamlining the basic protocol.
In this interview, they also sounded ilke they didn't know what to say about embedded systems, which is very disturbing. Makes me think that they haven't really thought about making their system scalable on the lightweight end. This is IMO one of the bigger points that a new-generation GUI needs to address.
For the moment, my bet is on X11 for mainstream stuff, and NanoGUI [linuxhacker.org] for embedded use.
Re:Berlin and X. (Score:1)
Re:questions that should have been asked: (Score:1)
Berlin is built on OpenGL (currently via the GGIMesa target of Mesa), using LibGGI to receive input. This gives an extremely flexible and fast (Yes, OpenGL is plenty fast if you're only using the 2D parts) UI system.
The component model uses CORBA, and the whole thing is written in standard C++. This all means that it will run on any system that has a good C++ compiler, a CORBA ORB (eg omniORB), and OpenGL libraries. You just need to write a bit of code to get input (which libGGI can be ported to provide).
This means when it is finished, it will run on just about any unix (and this is only their implementation - you could write your own to provide the interface they come up with), and many other OSs.
--
Re:Berlin and X. (Score:1)
I am also concerned about how applicable it is to embedded uses - though the required core seems to be very small and fast - put a simple blitter object in the server and there's your embedded desktop. I don't think X can beat that, you have to put almost all X functionality in the server (If you don't, it's not X and you can't start comparing X to Berlin), which you don't have to do with Berlin. I'm not an expert on embedded systems though.
--
Re:Yes, I agree. Berliners care to explain? (Score:1)
I would be suprised if a low-overhead, optionally compressed stream protocol for low-level drawing primitives *didn't* turn up soon. CORBA objects can negotiate the connection at startup and you get a low-overhead communication between points. This pretty much *guarantees* network performance better than X after only a little maturing time (except at startup which is only done once for each client
--
Re:GGI target of Mesa? (Score:2)
fbdev is a very basic graphics subsystem that is not very good ATM - James Simmons (who you can contact on the fbdev mailing list) is improving it to near the level of capability of KGI - then it still won't supercede KGI but will be a partner to KGI for the people who choose to use it.
Hopefully James will choose to merge vgacon in by simply making a vga-text16 fbdev driver which is treated specially so that X servers and DRI continue to work, while reducing the code needed to support all uses. This gives the simple vga text console that the die hards want, and allows everyone else to have their hardware handled properly for games. This has the benefits of being more maintainable, and stabler for the gamers.
This is getting offtopic now so I'll stop before it gets moderated down.
--
Re:Berlin and X. (Score:1)
discussed naming things with "b-" prefixes
and decided against that. They also wisely
decided not to name too many things after
cities (they got Berlin, Moscow, and others),
because noone would know what those things do.
Re:Berlin and X. (Score:2)
As to the question "why not simply stick with X?", the berlin FAQ [berlin-consortium.org] has this to say:
Note that I don't actually use or develop berlin. I just find the project interesting and would like to see reasonable discussions about it.
-Scott
"there once was a big guy named lou
Re:Berlin and X. (Score:3)
-Scott
"there once was a big guy named lou
conservatism (Score:1)
Examples:
- Each time the word Java is dropped on this site a herd of C fans jumps on it claiming that its slow and bla bla bla. They usually end saying that C is quite adequate and that we don't need all this OO shit in the first place.
- Each time browsers are discussed. An awkward program called Lynx shows up. This reflects the fact that some users don't like graphical environments.
- Each time X alternatives are discussed, people start worrying about standards.
People, X is ugly, Java like languages are the future and the command prompt has no future only a long past. (I'm being provocative now
Developments like above are called progress. I'm not saying all progress is good. But one should have an open mind towards progress. X has its limitations (see other recent threads, and yes I know its not a GUI). Berlin addresses some of these issues. No matter if Berlin is the right solution, these issues are real are not going away.
Conservatism slows down change both in politics and technology. This may be good if no change is needed but in my opinion that is rarely the case. As a techonlogy junky I like to see lots of change. I annoys the hell out of me that people are still bothering with C, discussing the beauty of X and proposing Lynx as a viable alternative for generation 5 browsers while it is so painfully obvious that all of these are relics of the past (which does not mean they won't be around much longer). Please move on.
Berlin is not a reimplementation of X - it is new! (Score:1)
(1) X works, why fix it?
(2) CORBA is slow, how can you use it?
(3) It is vaporware, ignore it.
In answer to number one: Berlin does not appear to be trying to "fix" X, or anything else. Berlin is trying a new approach to GUI implementation. Yes, they have looked at a number of existing designs, but with the attitude of looking for past mistakes and things to avoid, not "Well, ABC is broken, so we sure don't want to use that!"
In answer to number two: If Berlin was trying to wrap the X wire protocol in CORBA, you can bet it would be slow. But they are not trying to give us a new X Window System. They are trying something new.
One of the key differences is: X is basically concerned with drawing primatives (dot, line, circle, square, etc.). Berlin instead focuses on GUI concepts (window, button, list box, etc.). While X has to draw an entire dialog box pixel-by-pixel, Berlin can just say, "Give me a dialog box." [1] Thus, the slower speed of CORBA matters significantly less.
Incidentally, one of the benifits of the Berlin approach is that it uses less bandwidth. X, on the other hand, uses a lot more bandwidth. Thus, Berlin (or something like it) might be well suited to, e.g., cell phones. [2]
One person mentioned what Jim Gettys had said about Berlin in the past. I was lucky enough to be present when Mr. Gettys spoke at the GNHLUG [gnhlug.org] meeting in August. One of the other meeting-goers asked him about the Berlin project. He seemed fairly neutral on it, saying that X does many things wrong, and that new ideas are worth looking at. His main concern with the use of CORBA seemed to be W.R.T. latency, not raw throughput. In other words, you couldn't implement, e.g., Quake, using Berlin. But, as others have pointed out, there is no reason Berlin cannot incorporate a "high speed" link, negoiated with CORBA, but run outside of it. Indeed, there are already similar efforts with X, as plain X isn't fast enough for Quake, either.
In answer to number three: The Berlin people readily admit that they have a ways to go. Like any software project, it could fall apart and disappear. However, the key difference is vaporware claims to be ready Real Soon Now, and is often used to forstall competition. Berlin doesn't claim to be ready to sweep X away on its irresistable march to glory. [3]
Footnotes:
[1] This is over-simplified, but you get the idea.
[2] There are low-bandwidth X extensions that also aim to do this.
[3] Or, Berlin doesn't anymore. I have read that in the past, some Berlin people were rather more zealous. [4]
[4] But, in fairness, that was really an entirely different project.
Re:questions that should have been asked: (Score:2)
what platforms does/will berlin support?
Actually, this was answered in the interview:
So judging from this it could be expected that they intend to make it as platform-independent as possible.
And I guess architecture indepence comes with that, too.
--
Re:move to berlin (Score:1)
some ppl are soooo programmable
Re:Berlin and X. (Score:1)
Berlin and X. (Score:2)
GGI target of Mesa? (Score:1)
Re:Berlin and X. (Score:2)
"Third Standard," or in this case, "Second Standard," seem to be dirty words when something new comes along, but isn't looking for superior solutions beneficial to everyone eventually? Berlin is a perfect example of working on a better way, and isn't that what Linux is all about?
The greatest among us are those who have sacrificed their navels to the Potato God. -Terov
Re:History: Things To Understand About Berlin. (Score:1)
Fresco [tu-harburg.de]. If they have kept the Fresco Painter [tu-harburg.de] interface, Berlin would have a rendering model similar to PostScript, which should be interesting from a GNUStep point of view.