Trolltech Developing Qt That Doesn't Need X 240
Thrakkerzog writes: "Here is an article about Qt/Embedded, a version of Qt which is source-compatable with Qt/X11 and Qt/Windows. It doesn't use X11, and just uses the Linux framebuffer. This is very ideal for embedded systems. Check the link for more info."
According to Trolltech's release, "Qt/Embedded will also provide functionality not found in the X Window System, such as anti-aliased text rendering and alpha-blending of images. For increased performance, Qt/Embedded can utilize hardware graphics acceleration and it is well suited for multimedia and Web applications."
Flashy graphics without the overhead of X looks like a winner for all the companies providing embedded Linux devices and sofware.
Re:don't be silly (Score:1)
X is designed to be an extensible framework, like OpenGL. This is a GOOD THING, and is why both the OpenGL and X APIs remain clean, while Win32 and Direct3D are horrible kludges.
X is actually relatively memory efficient comapred to citrix winframe or the like. A common problem is that people think that the X process memory size quoted in ps or top is correct - actually, since the whole video card is mapped into X's process space, the process size includes the entire gfx mem on the card, as well as it's control registers. This can be in excess of 16Mbyte - but this is not subtracted from the total main RAM in use on the system.
Re:A way for QT to take over? (Score:1)
Re:BeIA still way ahead technologically (Score:1)
But Linux is an OS, not a company... how can it give it up? Seriously, though, BeOS is much more advanced & better designed in a number of areas... A program/game can write directly to the graphic buffer (full screen or in a window), a window's contents can change while the window is being moved, resized, etc. I don't want to say "innovation" (MS has given it a bad name, and it isn't an innovation), but someday people will recognize that it's a better solution
BTW BeOS now runs on crusoe
BeOS has run on crusoe since day 1 (of the announcement :-)
good (Score:1)
If this means KDE/Qt is more widespread, various open source OS's must be too. More uses for Linux/*BSD/open source is a Good Thing =)
like grits? [unlimitedcontrol.com] who doesn't!
Whoa! Looks SOMEBODY forgot our slogan 'round here (Score:1)
Xwindows today, Xwindows tomorrow, Xwindows forever!
After all, if it was good enough for Dad why change ?!?
seriously people, when do you think maybe it might be time to move on? Are there any plans for that day or do we just wing it here?
Re:X or no X? Choice is good! (Score:1)
X11 runs in the userspace, so misconfiguration (or just switching your video card or screen) doesn't lock up the system
X11 can crash the system just as bad as if it was kernel space, i.e. on NT. The actual X server, which controls the hardware, runs setuid root. Indeed, with the new Direct Rendering Architecture it is not possible to use the direct access modes without being root.
If this was a microkernel and the X server used a kernel interface for controlling the hardware, it would be one thing - but XFree is directly banging on the hardware, and has the ability to bang anywhere in memory. A bad pointer can still lock the machine, as can a bad PCI setup.
XFree 4.0 has many highend features which framebuffer-based GUIs will lack: multihead support, truetype support, modular drivers, 3D/OpenGL etc.etc.
Windows CE has truetype font support, some have video output - and they are framebuffer devices.
Some even have DirectX support
X11 is GUI toolkit agnostic. You can run KDE, Gnome, GNUstep, Tk, Motif... apps under one X11 desktop, which you can't on a framebuffer-based desktop
You can too! There is absolutely no reason why you wouldn't be able to do this - try it out with the X framebuffer server!
The reason you would not be able to do this is because having the same application loaded in memory three times and using three different functionally equivelant library sets is dumb. The only reason this happens is because X is toolkit agnostic, and spent twenty years without ever having a decent toolkit. So you have a native X protocol version of biff, a xaw version, an xaw3d version, an openwindows enhanced version, a version packaged with enlightenment, gnomebiff, kbuff, etc etc.
Re:Similarities to Berlin or GGI? (Score:1)
Berlin might be implimented in terms of Embedded QT, which might be implimented on top of GCI. Well, not really, but I hope that got the idea across.
Re:Confused about details (Score:1)
That's a little harder than it seems. kwm (the KDE window manager) has communicate fairly tightly with the X server. You can't write a window manager purely in terms of the functionality QT provides, you have to speak Xlib.
For there to be an Embedded QT window manager, QT would have to add a significant chunk of functionality beyond what would be required to draw widgets into a framebuffer.
Great expectations. (Score:1)
There is no OS restriction in the Qt license.
For example, I am doing a microwindows port. Microwindows runs just fine on DOS. You could use Qt on win32(with some effort) using it.
Of course, jg was one of the primary authors of X (Score:1)
Jim Gettys is a name that should be familiar to all old-time X developers, as his name is on a whole lot of the code from way back when
Anyone with some free moderation points might want to bump up his post.
Re:Doesn't *ANYONE* know about Berlin? (Score:1)
Re:This is seriously kick ass. (Score:1)
Do you have any evidence for these assertions? I can believe that BeOS's deeply multithreaded kernel and display logic is more efficient than X, and I believe that MacOS X's Quartz API provides some fancy operations that would be expensive to emulate in X, but you're really making a lot of sweeping statements here.
I happen to use X Windows over a network all the time, both at work on my X terminal to several machines in our computer center, and at home when I'm doing work there. If having X able to support those uses were a terribly heavy burden for the desktop, I could see moving away from it, but I don't believe that it is.
I'd love to be educated as to the precise technical factors that you believe make an X desktop so painfully slow, but I haven't heard any yet.
How To Speed Up X (Score:1)
Just thought I'd offer a tidbit on X performance from the XFree86 FAQ. They recommend that you run the X server on Linux at nice priority -10 so the X server gets first priority for interactive use.
It would be interesting to see if doing this would make any impact on your feelings on X.
Re:This is seriously kick ass. (Score:1)
A) The whole X server over network paradigm isn't really needed for a local desktop (most of the time) by utilizing the framebuffer and hardware acceleration, this is provide an increadible peformance and memory usage boost. One reason I use BeOS that its GUI is so ridiculously responsive. Meanwhile KDE on a PII300 and TNT chugs along. Ever open up SysV init editor and resize the window? Talk 'bout major redraw. I really hope they put in support for writing directly to the framebuffer. That way OpenGL could be put on it and we'd be in desktop heaven.
I don't think XFree86 really has any significant overhead due to the X server network support, anymore. As others have pointed out whenever this topic comes up, local clients talk to the server through UNIX domain sockets (i.e., no TCP/IP involved), pipes, and shared memory. XFree86 is about as efficient as you can get while still having a separate process responsible for actually managing the display.
For embedded applications, it might make sense to have support for a system in which one process can serve as both application and as framebuffer driver, to reduce overhead, but in general this cost of the context switch is overwhelmingly outweighed by the convenience of having multiple applications able to put forth windows on the same screen, and by the convenience of not allowing everyone's code to have a chance at trashing registers on the video card, etc.
As far as DirectX-style API's, isn't DRI on XFree86 4.0 working quite well?
What I wish X had was an API for creating and switching between multiple video contexts, at different resolutions and color depths, the way Windows does. I'd love to be able to configure Wine to create an 8bit 640x400 video display context for playing StarCraft, rather than having to kill the X server, edit XFree86.conf and restart the whole thing in low-res/color mode.
There's plenty that's wrong with X and could use fixing, but the basic decision to use a separate server that can be communicated with over a network is not one of them.
Re:Now how about GTK+? (Score:1)
Re:Acceleration API .... (Score:1)
I only place I use the framebuffer support is on my laptop with its fixed pixel LCD. The text console looks terrible with uneven stretching of pixels to match the LCD resolution -- very annoying to read. With a frame buffer, I set the console to use a mode that matches the LCD resolution, making things more readable.
Re:A way for QT to take over? (Score:1)
It's not as simple as that. You cannot use it for making open source windows software without shelling out big bucks (relatively speaking) for the professional version (unless you port the linux version to Windows yourself, if I read the license correctly.) This is what prevented me from using QT for an open source project I was considering - I wanted to have cross-platform capability. When I asked them about it, they used the "we have to eat somehow" line. So much for believing in open source.
Re:A way for QT to take over? (Score:1)
Then he should have stuck to that objection, instead of bringing food into it :-)
I made the (apparently false) assumption that slashdot readers would know that the "we have to eat somehow" line is a false argument. As the post you replied to stated, whether or not Troll Tech developers are able to eat has nothing whatsoever to do with whether or not they allow QT to be used for free in open source windows applications.
To be more explicit: in refusing to allow this, Troll Tech essentially states that they don't believe that the model they pay lip service to (free for open source, not free for closed source) is a viable one. If they did believe this, there would be no operating system restrictions on the QT license.
Re:~/There's something wrong with make world today (Score:1)
YES!
All the stuff going into XFree86 has killed development of fb or gdi or other simpler protocols. It does not matter how well they are designed, if you want your fancy card to run at full resolution, you have to use X, because all the hardware control is hidden in the X server.
One plausible solution: could new replacements interface with the binary plug-in interface that the new XFree86 4.0 has? Then they could get all the hardware. I'm sure the interface will be painful because it will make X assumptions, but not impossible to program for. Once an acceptable replacement for X has been made, a new low-level interface can be designed, and instructions on how to change the drivers.
Re:X (Score:1)
There is nothing wrong with buffered network protocols. In fact they use less context switches than api's. If this were not true, why do we have interfaces that write more than one character (or one bit) to a device? Isn't the overhead of copying those characters to a buffer from where they originally were inefficient? NO!
Another way to look at it: if Xlib puts 10,000 requests in a buffer and sends it, we get TWO context switches (one to the kernel, one to the server). Win32 gets 10,000 context switches (each one to the kernel for each call). And X, despite being 5000 times more efficient in context switches, does not have the risks of putting complex code in the kernel! (PS: yea I know Win32 ain't that bad, but their solution is exactly equivalent to buffering multiple requests!)
What does lose in network protocols is synchronous communication. When Xlib has to wait for an answer from the server, we get at least 4 context switches, plus the network overhead, and we lose. But we don't need so much synchronous communication!
The solution is to chuck out most of the Xlib design except for the fact that it is a network protocol. A program that displays a non-interactive display should be writable with a *single* "write" to the server (plus it may have to wait for redraw events and send that write again).
Get rid of colormaps! Trash the horrid font system and put in something so that if I ask for "Times" and 12 points, I get something (even if it is not Times at 12 points, if it has letters in it it would be an improvement over Xlib!). Either get rid of window managers, or make it sequential so I can create a window and send drawing to it in one block, without waiting for a stupid expose event to indicate syncrhonization with the window manager. Get rid of atoms, or make it so I can define thousands of atoms in a single round trip.
While we are at it, put some non-primitive graphics in. It is inexcusable that we don't have anti-aliased fonts, or anti-aliased polygons (even though Win32 does not have these), or a call that draws a color image without me having to figure out how to dither it to the hardware!
Re:Eyecandy (Score:1)
Hey, I wrote a program that did radiosity and drew the result on the screen, but I don't think anybody would claim that because of that Linux graphics now supports radiosity!
We need advanced graphics in the server. And we need to stop making excuses.
Re:A way for QT to take over? (Score:2)
The difference is that what Caldera does provides much more benefit to the community. You cannot use portions of Qt in a GPLed program because of the incompatible licenses. And you cannot make a purely free fork of Qt -- any extensions to Qt have to be distributed under some sort of license that allows proprietary use by Troll Tech (I don't remember the exact terms).
Caldera uses a symmetrical license -- it obeys the GPL, you obey the GPL, everyone has equal rights. But Troll is more equal than everyone else with Qt -- it can do whatever it wants with your patches to Qt, but you don't have the same rights. You can't say "this extension I wrote is only available to free software programs" -- and you probably don't want to, but they don't even give you the choice.
This could be more important if/when Qt moves to embedded or otherwise Abnormal environments. In an embedded environment, things are often statically linked and integrated. But if you want to integrate Qt into general graphical interface, you will have to give up a lot of the control of your code to Troll Tech. The same is true with the GPL, but in that case you are giving up a lot of control to the community, not a company. That's what Open Source/Free Software is all about: community. The QPL is one-way, centralized on Troll Tech.
Re:A way for QT to take over? (Score:2)
3. You may make modifications to the Software and distribute your modifications, in a form that is separate from the Software, such as patches. The following restrictions apply to modifications:
It is, altogether, a rather short license. It doesn't seem to make any definition of "modified Software" or derivative work. I would thus assume that anything that used a portion of QPLed code would fall under this clause, and that would include many forms of extensions (though again, extension is not well defined either).This also clearly means that the initial developer has the right to distribute your free modifications under their proprietary license ("right is granted to the initial developer of the Software to distribute your modification in future versions of the Software provided such versions remain available under these terms in addition to any other license(s) of the initial developer."). This is a confusing notion, as each piece of the software has an initial developer, so I don't know why Troll Tech takes precedence...
Told you so... (Score:2)
I figured this would happen once I saw what KDE and gnome were trying to do, namely isolate applications from X completely. Older apps communicate with graphics hardware via X. This meant that graphics hardware could be swapped in and out (and even across the network!). But now both KDE and gnome (with the help of GTK and QT, respecively) have become a complete layer between apps and X. This means it should be possible for KDE and gnome to completely skip X, and go straight to the hardware. The advent of the Linux frame buffer makes this even easier.
There were hints of this already in projects like the now defunct Harmony (FreeQT) in how it handled TrueType fonts.
As others have said, choice is great. It isn't (yet) time for X to die completely, being able to skip the rather large and complex called Xwindows will often be a great boon.
I hope that at some point, all gnome and KDE apps will be run-time (or maybe shared-link time, which amounts to the same thing) switchable between framebuffer and X. Run the app, and if the DISPLAY is local, skip X, otherwise be an X client. ...or something like that, but now I'm just rambling.
--Chouser
Re:Similarities to Berlin or GGI? (Score:2)
"Embedded QT" represents an abstract API for constructing GUI apps. That does parallel Berlin.
GGI represents a physical API that abstracts away only the lowest level of "talking to hardware."
The net result is that you might want to run "Embedded QT" on top of GGI, much as you have to run Berlin on top of GGI.
In the process, it's pretty evident that you'll lose the ability to have remotable network applications with "Embedded QT." (Berlin has no such loss, as it runs atop CORBA...)
The thing that I don't see any information on is what they're doing about font rendering. That's one of the major things that X does which a framebuffer doesn't do...
Re:Similarities to Berlin or GGI? (Score:2)
Berlin depends on there being some lower-level display substrate like GGI.
It would make sense to implement Berlin atop X; implementing it atop QT, of whatever form, would not make sense.
What could make sense would be to implement Berlin (or, by the same token, X or Display Postscript) atop whatever low level framebuffer scheme lies underneath Embedded QT. But I suspect that this layer will more closely resemble GGI than anything else...
Re:Confused about details (Score:2)
whoa... hold on a second here. i haven't looked at the kde code enough to prove this, but i kinda doubt that kde uses only qt. im pretty sure kde uses a lot of X calls as well. so if you have this new qt which doesn't use X, kde will not automatically compile for you. i may be wrong about this, and i would appreciate if someone would verify this for me, but i don't think kde can do all of the things it does based solely on the qt libs.
but that's actually my secondary point. the more important part is this: For set top boxes, and consumer Linux installations, windowing can be provided by KDE, or any other Window Manager that is ported to Qt.
now this i do know enough about to comment on, because i have worked with window manager code before. just porting a window manager to qt will do squat for you. in the most basic sense, the window manager does very little really. all it does is give you the means to move your windows around and resize them, and maybe close/shade/iconify them. X is what actually does the work of creating and displaying the windows. the wondow manager uses X library calls to modify the windows state, and do the other things it does. take away x, and oops! our wondow manager is now useless. want proof? run x without starting a windowmanager. see, you still get all of your windows, you just can't move them around. and you lose al of the little control options your window manager gives you. now try starting your window manager without x? what's that? you cant? ohhh.... ok, this isn't really proof, but it does illustrate my point. with this qt, the best you could do is a sort of MDI thing. you would write one big qt app that swallows smaller ones, kinda like the gnome control center. but this doesn't completely work, because all of your pre written qt apps wouldn't run inside this monster app. you'd need to rewrite them at least a little bit to make them compatible with an MDI scheme.
> Sure it's nice for embedded stuff, but a lot of people seem to have the idea that they're getting a small, fast, free X11 replacement for their desktops.
And for those who are looking to run their Qt/KDE applications, they are.
nope, sorry. you are right about the framebuffer thing providing the video drivers, but it doesn't provide the windowing system for you, and kde, while it is an excellent desktop, is not a windowing system. so at best, you'd be able to run one app fullscreen on each of your 6 or so consoles, or run screen and switch between n different fullscreen apps, just like you would use it now to switch between a bunch of curses programs running on the console. (or the previously mentioned MDI app, with it's custom "applets")
Re:Food for thought: Qt on MacOS X (Score:2)
You're half right. You wouldn't need an X server, but you'd need Linux framebuffer support, which Mac OS X doesn't have, and isn't likely to have.
Looks like a nifty hack for Darwin, though....
X or no X? Choice is good! (Score:2)
These developments are important in a time where companies like Samsung are working on Linux-based PDAs with proprietary user interfaces and proprietary applications on top of the kernel. Although it's good that Linux becomes popular for settop boxes, PDA and other embedded devices, it would be a substantial drawback for the cause of Free Software if proprietary GUIs and userspaces would prevail on such systems. So Trolltech's move deserves applause from our community.
But is it free software? (Score:2)
I believe it is now time for a fully free (GPL, perhaps) windowing system that fixes the major problems with X. Such a beast would:
A lot of the infrastructure that we need already exists. Libart [levien.com] provides the imaging model. FreeType [freetype.org] can take care of the fonts. I've seen some early results from FreeType 2, and I have reason to believe it will be juicy. We can certainly make use of all the wisdom learned from mature systems such as X, as well as newer systems such as Berlin [berlin-consortium.org] and Microwindows [censoft.com].
This idea, I think, is gathering momentum. If you're interested in contributing to the project, let me know and I can hook you up with some of the other people who are working in a similar direction.
Project EverBlue (Score:2)
--
Re:Nice for set-top boxes (Score:2)
Actually that is where I most wish they would use X so I can have my non-embeded program display on my TV, or wrist watch, or car stereo's display, or PDA (assuming some sort of net connection). Witness the vast horde of folks wanting to do little more with the i-opener then turn it into an X terminal :-)
Of corse I can see where the company that wants to sell a dirt cheap box would rather have a cheaper device... or want to lock me into their application.
Re:X (Score:2)
What about tunneling X over ssh?
Re:The open source alternative (Score:2)
Yes, but most QT applications will be source compatable. You can't say that about any of the gui toolkits you mentioned.
-- Thrakkerzog
don't be silly (Score:2)
Re:Been done (Score:2)
I think the point is that X was designed to operate over a network, period; in hindsight, it probably would have been better to define a local display protocol that could be modified to work in a more peer-to-peer or client-server fashion as the need for that arose. There's nothing particularly wrong with "tacking on" functionality later, as long as the original specification was designed with that sort extensibility in mind.
If that had been the case, then this discussion wouldn't be happening, because I could run X the way I want to, and you could run it the way you wanted, and we'd both be happy. As it stands right now, you get what you want, and when I try and get what I want, I get a shrug and a "Live with it - it's a good feature" reply.
Re:Told you so... (Score:2)
If you wanted to use a toolkit like Qt or GTK to replace X11 as a general purpose window system, you'd have to add a lot more functionality. And, in the end, you'd still end up with something that can't do as much.
Embedded versions of those toolkits are very useful. However, they are no replacement for a system like X11.
There's nothing wrong with X11. (Score:2)
X11 does lack a few features, like antialiased drawing and fonts. Those can be added easily with X11's well-defined and widely used extension mechanism, and without breaking backwards compatibility. If you type "xdpyinfo", you'll see that you are already running a dozen or so extensions.
Using libraries that access the frame buffer directly does make sense for embedded systems, but for general usage, they would represent a big step backwards.
Re:~/There's something wrong with make world today (Score:2)
As for writing window managers, if you think writing them under X11 is hard, try doing it sometimes under Windows or MacOS. X11 at least delineates and defines responsibilities and puts the window manager in control. The fact that the protocol is complex is a result of the fact that there are a lot of complex interactions that can happen between different applications from different machines.
Re:X (Score:2)
Re:X or no X? Choice is good! (Score:2)
Two truly open source GUIs for embedded systems are MicroWindows and NanoGUI. You can find more information at http://microwindows.censoft.com/. There are lots of other GUI libraries that can access the frame buffer as well. A port of GTK+ to SVGAlib or libggi probably wouldn't be all that hard either.
Re:Eyecandy (Score:2)
Antialiased fonts and drawing could simply be added as a separate extension, with a separate set of requests. That way, for example, the antialiased FreeType code could probably be dropped in without a lot of changes.
Whether to use antialiased operations probably should be left to high level toolkit libraries and/or applications, since it affects performance, color allocation, and color maps.
For the common cases, of course, low-level client libraries could try to map non-antialiased calls onto antialiased calls.
Re:Whoa! Looks SOMEBODY forgot our slogan 'round h (Score:2)
But X11/Xlib isn't the culprit. X11 clearly is not the best thing since sliced bread. It's an old design, a bit clunky in places, and lacks antialiasing for low resolution screens. But the would-be X11 competitors for desktop applications don't aim much higher. And the clunkiness of the low-level X11 API is of little concern to programmers, since it's mostly hidden by the various toolkits.
The really important areas where Linux GUIs ought to innovate (but don't) are at the toolkit level. Well executed as they are, Qt and GTK+ are still MFC/toolbox-style, event driven, decades old technology. There are a lot more interesting and innovative ways of writing GUIs out there. Whether it's X11, GDI, Java, Berlin, SVGAlib, GGI, or anything else under the covers doesn't matter much.
While for embedded systems, getting rid of X11 makes some sense because of space constraints, trying to replace X11 on the desktop to me is just barking up the wrong tree. I'd much rather see some of that effort go into something like a desktop based on scalable UIs, notebook interfaces, transcript-based interfaces, or any of a large number of other interesting, innovative approaches to GUIs.
KDE is not Qt (Score:2)
KDE uses Qt, but Qt is not a desktop environment. It is just a library.
KDE will continue to use Qt/X11, as it always has.
Been done (Score:2)
Isn't that pretty much what AmiWin [nordicglobal.com] does, when you link it with the proper libraries?
Because it's cool, and occasionally useful. Ever taken a look at the size of the market for Windoze products like Symantic PCAnyWhere or Citrix WinFrame? If your windowing system doesn't have that capability built-in, then someone's just going to have to tack it on later, anyway.
It actually makes sense for X to have this feature. It's a good feature.
---
Re:X (Score:2)
--The knowledge that you are an idiot, is what distinguishes you from one.
Yes (Score:2)
--The knowledge that you are an idiot, is what distinguishes you from one.
X isn't as big as you think... (Score:2)
A few factoids to add to the discussion.
The size of the X server on Itsy is under 700K, courtesy of Keith Packard's new frame buffer code; contrast this with your current X server weighing in at 2 megabytes. This is due to the changes in machine speeds over the last decade. (Note that Keith did the previous frame buffer code: but on 10 mip machines, you had to do things differently to drive a frame buffer flat out).
DDX's are beginning to cut over to this code, so expect your X servers to get smaller over the next year or two.
Keith is also working on an anti-aliased text and graphics with alpha blending extension: come hear his paper this summer at Usenix.
Oh, and someone said X is 20 years old: incorrect, the first thing called X was created less than 16 years ago, and X11's design is about 12 years old.
Re:A way for QT to take over? (Score:2)
Don't worry, I won't flame
The reason Qt has a cost is because Troll Tech is a business. Hmmm, was that a tautology? I actually think their marketing makes a whole lot of sense. Free for Free Software, proprietary for proprietary software. I wish the would do the same for their Windows product as well.
Troll Tech is still largely a one product company. They would be foolish to give away their only source of revenue. But this embedded Qt, coupled with some other new products coming out the same time as Qt 2.1, means that there will be more of an incentive to opensource their professional version as well. If they can make more profits by giving Qt away and selling the complementary products, then they will do so.
Re:This is seriously kick ass. (Score:2)
Re:A way for QT to take over? (Score:2)
Re:Food for thought: Qt on MacOS X (Score:2)
Installers (Score:2)
An embedded Qt would allow distributions to use their own video detection routines. I don't know about frame buffers, but it seems that having two ways of making a GUI installer covers more bases than just the X way. Just load the library that's appropriate and use the same installer.
Re:Qt Public License incompatible with itself (Score:2)
However, you claim about the QPL being incompatible with itself is totally off base. Troll Tech has zero rights to the code of third parties. Just because the QPL makes you open up your source code, it does not follow that Troll gets any rights to patch it into their proprietary version.
Re:Qt Public License incompatible with itself (Score:2)
At the worst, you would be disallowed from combining the two. But in that case it's a very simple matter of making a distinct library that links to the original Qt and QPLd athena widgets.
Re:A way for QT to take over? (Score:2)
It doesn't have to define "modify" or "derivative" as they are already defined under copyright law. If you only link to Qt, then at most your code is an extension. But the only way you can be derived from Qt is to take parts of their actual code and modify them. The latter is what clause 3 refers to.
But I assume you want to modify Qt itself...
This also clearly means that the initial developer has the right to distribute your free modifications under their proprietary license
That is true, but they also have the obligation to keep it in their free version as well. In short, they cannot close source it. The only way they can use it as proprietary code is to simultaneously issue it as open source code.
Re:A way for QT to take over? (Score:2)
But that's not a true statement. Their employees may lose their jobs and the company may fold, but they can always get other jobs.
Re:A way for QT to take over? (Score:2)
You don't remember them because they aren't there. Troll Tech only gets rights to Qt derivatives (in the sense of copyright law), not to extensions.
But actually, they might not be able to proprietarize you derivations either! IANAL, but look at the clause in question:
Re:Qt Public License incompatible with itself (Score:2)
They can't proprietarize your code unless it is a modification to their code.
Re:A way for QT to take over? (Score:2)
Re:Been done (Score:2)
-B
Finaly (Score:2)
Re:I want X-lite (Score:2)
You mean like xterm -fn '-bitstream-courier-bold-r-normal-*-*-220-*-*-m-*- iso8859-1' &?
James
Qt/fb via DGA if local, else Qt/X (Score:2)
A Qt/KDE based app. can determine if it's X display is local or not, and act accordingly: If the display is remote (i.e. over the network), then the normal Qt/X is used, but if the display is local, then the new "embedded" Qt/fb is used "on top of X" via DGA to provide a seamless display.
What would really make this solution would be if XFree accelerated drivers could be used by Qt for direct screen access rather than using the framebuffer which has very limited 2D acceleration only.
Re:What is the licensing? (Score:2)
-----------
"You can't shake the Devil's hand and say you're only kidding."
Qt Public License incompatible with itself (Score:2)
It's an asymmetric license - Troll can use your derivatives in a non-free product, but you can't use theirs in a non-free product.
This means that you can't combine code from both QT and a QPLed product from someone else. You'd have to give both original authors rights over each other's code which the QPL doesn't let you give.
Compared to standard proprietory licenses, the QPL is a good deal. But don't mistake it for a license which allows the community-style code reuse which has made OSS mushroom so fast.
Re:A way for QT to take over? (Score:2)
I don't think the original poster was objecting to them eating, merely to their use of proprietory licensing.
Most people in the world get paid without creating proprietory software. Even software developers (most of them write in-house software, which is not licensed *at all* - and hence does not have the same socially divisive effects that non-free packaged software does).
In any case, this claim that people will `starve' if they don't write proprietory software is completely false, especially in Norway.
Re:Qt Public License incompatible with itself (Score:2)
The QPL insists you give the initial developer these rights in your derivative works. In the case of QT, that means Troll. The relevant paragraph is 3c:
This means exactly that they get the right to patch it into their proprietary version.
Re:Qt Public License incompatible with itself (Score:2)
Assuming that copyleft-style licenses are capable of standing up in court, that's what would happen.
On a desktop machine it would be. A random palmtop platform might not have any facility to do dynamic linking.
But I think the QPL is much more dangerous for applications than for libraries. As you say, generally you use a library by linking to it. Troll say that "We feel [the QPL] is particularly well suited for anyone who wants to run an Open Source project and still have the possibility to earn some money to eat from sales to closed source commercial developers." Other people on the net are starting to take that opinion. If two equivalent programs were both QPLed it would be very annoying, because there are many times when you'd want to share the code. E.g. you might want to rip xemacs's context highlighting code, modify it and then stick it into Abiword or KWord. If these were QPLed you couldn't. As a result, it becomes very hard to share new features without a complete rewrite, which is one of OSS's principal technical advantages.
This is seriously kick ass. (Score:2)
A) The whole X server over network paradigm isn't really needed for a local desktop (most of the time) by utilizing the framebuffer and hardware acceleration, this is provide an increadible peformance and memory usage boost. One reason I use BeOS that its GUI is so ridiculously responsive. Meanwhile KDE on a PII300 and TNT chugs along. Ever open up SysV init editor and resize the window? Talk 'bout major redraw.
I really hope they put in support for writing directly to the framebuffer. That way OpenGL could be put on it and we'd be in desktop heaven.
B) Its X compatible so no re-writing apps to support a next Gen interface!
C) It dumps all the X stuff that is in qt and is redundant anyway on a Qt system.
I think they seriously have the right idea with this release. Finaly, a great kernel like Linux gets a good windowing system to go along. If this is GPLed, it will not make its biggest splash in the embedded market. It will make a splash in the desktop market, because even if Trolltech doesn't have the right focus for this product, I'm sure lots of media obsessed users pissed of by poor interactive performance do. This is seriously cool. This also bodes well for a DirectX type API on Linux. Think about it! It support hardware acceleration, so SDL could be put on it and have a very direct route to the graphics hardware. If basic SDL-style input services are put in, and OpenAL plays nice with it, you have a Direct, low-overhead API that is cross platform to boot!
Re:This is seriously kick ass. (Score:2)
PS> Network transparency should be a much higher level service. In a desktop environment, stuff like X and OpenGL and DCOM and SOM disgust me for their performance robbing network transparency.
Re:This is seriously kick ass. (Score:2)
Re:This is seriously kick ass. (Score:2)
This is why the Vesa frame buffer + X11 frame buffer server exist. The problem is that it is totally non-accelerated. X11 uses the XAA (X Acceleration Architecture), which is a gain. True, redraws are somewhat expensive, but that's mainly because the app is written poorly.
Use Slackware -- BSD style init scripts
"B) Its X compatible so no re-writing apps to support a next Gen interface!"
It's QT compatible. I'm a GNOME guy.
---
No mention of the license (Score:2)
I hope someone ports Mozilla to this (Score:2)
Or to some other frame-buffer based GUI. I want to use Mozilla/XUL/XPCom as the basis for a whole set of applications. And it would help if I could use it embedded.
Jack
Fast sleek and elegant? (Score:2)
X isn't designed to be fast sleek or elegant. It's designed to be stable flexible and powerful. It is that.
How much of a performance hit the flexibility costs seems to be a subject of great debate. Not being an X hacker all I can offer is subjective, anecdotal evidence - on my box, certain things are noticeably slower, but other things are noticeably faster, I don't see any significant overall speed advantage to win32 over X on my hardware, just some fairly minor trade-offs going both ways.
Of course X itself is flexible enough to adapt to a lot of situations - if I stuck a larger window manager on X I could make it slower than win32, and if I stuck a smaller one on I could speed it up a bit too.
There are downsides to flexibility, to be sure, but there are advantages too. If you really don't like X, why not make something you like better? X isn't a part of linux, remember that. It's one of many open source programs that you can run if you choose.
Qt w/o X? Now this changes everything. (Score:2)
Re:A way for QT to take over? (Score:2)
Someone writing proprietary software does it for the money. It's fair that all the developers (including the ones working on the widget set etc.) would profit from that if the programmers don't give back anything else (their code).
It's not much unlike the GPL in that respect (the difference being that you can write proprietary software with Qt if you pay, and you can't do it at all with the GPL).
Re:A way for QT to take over? (Score:2)
This is one of the reasons that I like the LGPL more then I like the GPL. My point was that if they want to make Qt a standard then it should be free for "everyone" to use. The BSD license is also good in this regard. I'm not really critizing them for charging money for it but it isn't what I would do. That's it basically.
Molog
So Linus, what are we doing tonight?
X !=> networking (Score:2)
troll tech/qt is kind of a ripoff. (Score:2)
TrollTech: A set of libraries; $1550 per developer.
Microsoft: Visual C++ Pro AND W2K. About $500 per developer, for both.
My sources: The trolltech webpage and pricewatch.com
I think the price for Qt is ridiculous. Borland sold their stuff to anyone, for $49.99, at a time when the cheapest alternatives were over a thousand. Phillipe Kahn is still a very rich man. The way they (Troll and KDE) keep yapping about the "QPL" is sickening. The Qt libs do not even have a value of a Borland product, let alone MSHAFT.
Really, I know a lot of people don't like to hear it, but far too many Linux OS and add-on companies are guaging their price structures off of Microsoft, Borland and Apple.
Here's some news for you: your product only runs on a few percent of the world's machines, if that. Stop staring at your P&L and get the products out for low cost so developers can use them.
You are killing Linux, which wouldn't exist without people like RMS and Linus, who were selfless and knew they would have to give for a long time before the rewards came back.
Wake up, Trolls.
I want X-lite (Score:2)
Anomalous: inconsistent with or deviating from what is usual, normal, or expected
Re:Acceleration API .... (Score:2)
Since this new Qt is built on top of the linux framebuffer infrastructure it will most likely use the standard frambebuffer drivers too. Currently there's at least drivers available for the Matrox cards, some TGA cards and a generic VESA 2.0 one.
BTW, if you haven't checked out the frambuffer stuff yet, you really should, it's quite cool. You get a Tux logo while Linux boots up and you can have hi-resolution text consoles. Framebuffer support seems to be tagged experimental in the 2.2 kernels at the moment, but I've found that it works pretty well.
No X, No way !!! (Score:2)
And if Gnome release such environnement it will only create more fragmentation. I don't really like this idea.
Re:X (Score:2)
But jesus, are we still in the days of VAX? Big servers are great and it's useful for people to share them, but everyone ALSO has a decent desktop box. Why on earth do we need our computer to talk to itself through networking calls just to render a window?
If we're going to keep up the desktop-user push, we have to make the windowing environment better. Does anyone have any figures for how much slower the X server system is than a direct windowing API? If it's a signifigant speed issue (and I imagine it is), we're going to have to do something about it.
How difficult would it be to abstract communication layer of the X server so that if it were running locally, it used direct calls, and if remotely, then by networking like it does now? Best of Both Worlds.
Re:X (Score:3)
I find that the majority of my time in X is spent with something onscreen not running on the local machine. Even if we call the programs running on the same machine as my window manager this is true.
Maybe your desktop machine is fast enough, but not mine. I used to have an ultra sparc on my desktop. I hated it, genuine noisy fan, poor keyboard (You think Sun would know the controll key belongs next to the A. xmodmap is for more difficult tasks than that) And when I kicked the power cord all my compiles stoped. Now the server is in a back room, I have a NCD (A dumb terminal that can run X) on my desk.
As a devolper I find that my programs have to run on a machine in the lab. Pop an X window from the lab machine to my desktop and its like working in the lab. THen I can go home and pop an X window from the lab to my home FreeBSD machine. (I don't normally work from home, but if I can check my compile over night and fix the one typo after supper I save time at work the next day)
I used to have a sun3 in one room, and my main machine in anouther. In theory I could run programs on the sun3, but since the main machine is 400 mhz, and the sun is 16 (20? doesn't matter as m68k and x86 of different generations don't compare well by looking at mhz, but you can get the idea) who wants to? X still has life. Xfree86 is very fast on a local machine, and works just fine on a remote one.
It's all about KOffice. ( Nice sarcsim ) (Score:3)
I read through the comments looking for someone who gets the real significance of this and came up with a blank. So here is my take on this baby.
When WinCE was 1st released oneof MSs major promises was that it would let you run the same apps and exchange files in the same format on both desktop and palmtop. Basically they promised MSWord in a pocket sized version.
It never happened and the reason is simple. MS office is over 200 megs of bloat. If they could have made it smaller they probably would but frankly that's tough to do. a 16 meg office suite and OS combination just isn't going to happen.
fast forward to the present. portable Linux has a compressed file system almost dubbing the capacity of a flash card so all you really need is a 32 meg office suite to fit in 16 megs of flash. KOffice is normally under 30 megs with the kdelibs. add on 2 megs of QT and 400 K kernel with all the drivers for that device plus frame buffer and you are running in 16 megs of cache with an OS and an OFfice suite. add another 16 or 32 megs of RAM to run everything in and you can get decent performance plus a desktop.
THAT is the significance of this thing. Linus plus Transmeta plus Troll Tech and the KDE team are about to deliver on Bill's promise.
Frankly I would hate to be a microsofty right now.
As for little issues like "dose this interface match the small size device?". They don't matter. Interfaces can be hacked and adjusted and with tidy modular code like this it doesn't really take much for good GUI designers to "fix" it.
I don't really like the look of this (Score:3)
But I don't want to see a "toolkit" interface as the low-level API. This will completely freeze all gui devlopment. It will also make Linux much harder to "hacker" program and will make it less fun. If I am forced to use Qt, I might as well use MFC and Direct X.
What we need is a true replacement for X that keeps the (few) good ideas of X:
A networked, buffered protocol. Despite claims above, this is more efficient than a call-based API. There has to be context switches, unless we want to allow the programs to write and peek at each other's windows and to be able to clobber the video registers. The way to keep the context switches down is to buffer requests. Nice simple buffering at a low level, and we get an efficient interface, and we get networked transparency for "free" (rather than having to add it on, as MicroSoft is feverishly trying to do right now...)
The server does not have to do any "GUI" things. X design is 20 years old, yet it is obvious that it can draw all the GUI components ever invented (like we can copy Windoze quite exactly, and that was not a design criteria when X was made). I do not want a server that has any concept of a "menu" or "button". That is bloat. Put it in the user-level library (much like Qt and GTK are now). I really really fear Qt becoming the standard interface, even MicroSoft was smart enough to not cram MFC down everybody.
The server does need advanced graphics capabilities. Here the opposite is obvious: X obviously cannot duplicate new ideas. We have seen antialiasing for years now and X cannot do it. 3D requires a whole new interface (OpenGL) that does not interact well with the rest (it does not use X gc's or colors, for instance). And way too many programs "work" by creating a local image buffer, doing all the work there (thus losing all hardware acceleration), and drawing the image.
I envision a server much like X, but with graphics capabilities like a combination of PostScript and OpenGL (plus antialiased everything, like Flash, and 4-channel images, and transparent paint, and UTF-8 text).
It seperates programs into arbitrary-shaped "windows" (perhaps with transparency) and does not allow one program to draw in another's "window" or intercept events to another's "window". But except for that it is "GUI stupid". It must deliver raw events to the clients and make absolutely no assumptions about anything, for instance a "window" does not mean it has a border.
Re:Confused about details (Score:3)
It sounds nice at first, but don't get the idea that Qt is replacing X on the desktop anytime soon.
As others have mentioned in here, it is likely that as a consumer desktop graphical system, an X-less QT/KDE interface could fill a big need. Consumers who just want to run graphical applications locally, don't ever need the overhead that X provides.
Is Qt becoming its own windowing system as well?
Seeing that KDE runs on Qt, if Qt/Embedded is source compatible, then the problem is solved. KDE on non-X displays.
Will you be able to run more than one Qt app and have them windowed?There are 2 answers to this. 1, with embedded devices, such as webtops, PDA's, and refrigerators, only one app is running, and therefore windowing isn't needed. For set top boxes, and consumer Linux installations, windowing can be provided by KDE, or any other Window Manager that is ported to Qt.
Where are the video card drivers coming from without X??Frame-buffer devices. This is what gives you the graphical penguin on most distributions bootup now.
Sure it's nice for embedded stuff, but a lot of people seem to have the idea that they're getting a small, fast, free X11 replacement for their desktops.And for those who are looking to run their Qt/KDE applications, they are.
-BrentRe:A way for QT to take over? (Score:3)
Do you have a problem with them eating? The levels of intolerance here at Slashdot have reached an all time low.
Re:A way for QT to take over? (Score:3)
Then he should have stuck to that objection, instead of bringing food into it
Seriously, it is unrealistic to expect commercial developers to give up their jobs and become waiters as suggested by RMS. But we are not talking about developers here, we are talking about the companies that employ developers. Before these companies can pay their employees, they need revenue. If Troll Tech open sourced their professional version, they would end up with ZERO revenue, and be forced to lay off their employees. If they can get complementary products to support Qt with in the future, then that may be an option at that time. But it is not an option now.
Qt is not the type of product that you can shrink wrap, put on store shelves, and hope enough users buy it to subsidize those that download it instead. And it's unrealistic to expect them to convert to a support company, particularly since their customers are in the profession least likely to need support.
The unfortunate fact is that Troll Tech has only one product. They don't sell other proprietary software like Redhat does. They don't sell hardware like VA Linux. All they have is Qt, and if they don't sell it they have to lay off their employees.
Their current situation is in my mind nearly ideal. The software is free if you write free software, but it's proprietary if you write proprietary software (I only wish that the Windows version were the same). But one who is of the opinion that all software must be free takes a strange stand by insisting that proprietary software get the benefit of a free library.
GTK/Gnome sans X (Score:3)
Confused about details (Score:3)
Is Qt becoming its own windowing system as well? Will you be able to run more than one Qt app and have them windowed? Where are the video card drivers coming from without X??
Sure it's nice for embedded stuff, but a lot of people seem to have the idea that they're getting a small, fast, free X11 replacement for their desktops.
-JD
The open source alternative (Score:3)
Both share a common graphics engine. Nano-GUI is based on an X-like protocol called Nano-X. Microwindows sports an interface similar to the ECMA APIW spec with some advancements.
Re:This is seriously kick ass. (Score:3)
Acceleration API .... (Score:3)
A way for QT to take over? (Score:3)
Molog
So Linus, what are we doing tonight?
Nice for set-top boxes (Score:4)
This version of QT without X looks very nice for running on Set-top boxes - anti-aliased text and all. In this sort of environment, the 'display anywhere' X protocol is just excess baggage and a more direct route to the screen makes a lot of sense, especially if you are a company intent on providing a cheap device for general home use and want to get maximum speed out of the hardware. This does of course assume that the license for QT/Embedded is reasonably set... On the flip side, just how much software are you cutting yourself off from if you don't provide X libraries? Quite a lot I suspect unless QT/Embedded is providing some extra coverage.
Cheers,
Toby Haynes
~/There's something wrong with make world today/~ (Score:5)
Really?
Only if you consider marshalling/unmarshalling individual drawing primitives across some sort of IPC (network or local) efficient. No, I'm not advocating direct application hardware access. Think outside the box, and maybe go back and look at how systems like NeWS, Display Postscript and Berlin are designed.
No, not really. Try writing a window manager sometime. The original idea was (is) pretty simple, but once you start adding the various standard extensions that accumulated over the years, if you're writing something major, it's a real mind-bending mess. You're fortunate nowadays that GTK+ and Qt hide a lot of the evil from you.
No argument there; X is tried, true, and it works.
That doesn't help you if you're remote ... and yes those are nice sometimes if you're remote.
Ever wonder why that hasn't been done yet? It's because most people who thought about it decided it wasn't worth the trouble: existing applications might run, but they wouldn't get the new functionality (i.e. antialiased characters). They would still still require a rewrite (yes, a rewrite, not just recompiling). The APIs and necessary backend code are just necessarily that different, because the original X ones were designed so badly.
[To be fair, the situation is a little better now, just because modern toolkits abstract the stuff enough that you could get by with only minor changes to the library APIs ... in most cases you'd just have to recompile the apps that didn't use the changed APIs, and only make minor changes to the ones that did, or that bypassed the library in some way]
If the antialiased font server was backwards compatible, it would only be because it kept the entire old (now redundant) architecture and API, in addition to implementing the new one.
The necessity of taking this approach to extend other aspects of X is one of the contributing factors to its bloat over the years.
Agreed, for the most part. However, arbitrated (i.e. not totally unsupervised) hardware access is still good for certain classes of specialized applications, and of course games. That's the need that ultimately spawned fbcon and KGI (the GGI kernel layer).
Something to ponder in parting... if someone wants to experiment with a windowing system that is not X, they either need to rewrite all the drivers themselves, run under X (...then what's the point?) or they need to have some kind of non-X driver infrastructure availible.
i.e. has the reliance on X to drive graphics hardware directly strangled the development of alternatives on Unix?
Similarities to Berlin or GGI? (Score:5)
I have to wonder, though, how many X apps will really work well on a handheld? It's a different environment, after all, with somewhat different inputs and uses. Just dumping X apps to a PDA would be like the approach MS used for WinCE, and it didn't really work.
Jon