Trolltech Developing Qt That Doesn't Need X
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.
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.
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...
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
--Chouser
"To stay young requires unceasing cultivation of the ability to unlearn old falsehoods." -LL
"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...
If you're not part of the solution, you're part of the precipitate.
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...
If you're not part of the solution, you're part of the precipitate.
Seeing that KDE runs on Qt, if Qt/Embedded is source compatible, then the problem is solved. KDE on non-X displays.
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")
If I don't put anything here, will anyone recognize me anymore?
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....
- X11 has network transparency
- X11 runs in the userspace, so misconfiguration (or just switching your video card or screen) doesn't lock up the system
- XFree 4.0 has many highend features which framebuffer-based GUIs will lack: multihead support, truetype support, modular drivers, 3D/OpenGL etc.etc.
- 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
That said, I find Qt/embedded an excellent idea, moreover in the light of the recent progress in the efforts to port Linux to Psion PDAs and WinCE palmtops. For such devices, X11 is bloated. It will be nice to have Qt/KDE applications such as KLyX available on PDAs in the not-so-distant future. I hope the GTK/Gnome folks take up the idea and do the same with GTK/GDK, hopefully in a way that makes it possible to run both Qt- and GTK-based software under the same framebuffer-based GUI.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.
gopher://cramer.plaintext.cc http://cramer.plaintext.cc:70
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 provides the imaging model. FreeType 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 and Microwindows.
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.
LILO boot: linux init=/usr/bin/emacs
The project EverBlue is a port in progress of Xlib to OS/2 Presentation Manager, so that you can compile X applications to run in a OS/2 framebuffer, using your normal OS/2 drivers and integrated with the rest of your OS/2 apps.
--
__
Men with no respect for life must never be allowed to control the ultimate instruments of death.
GW Bu
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.
What about tunneling X over ssh?
DNA just wants to be free...
Yes, but most QT applications will be source compatable. You can't say that about any of the gui toolkits you mentioned.
-- Thrakkerzog
"I love my job, but I hate talking to people like you" (Freddie Mercury)
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.
"Great men are not always wise: neither do the aged understand judgement." Job 32:9
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.
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.
It's been done, and it's widely used: VNC. It's free, it's very useful, and there are some vendors now offering thin clients based on it.
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.
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.
Qt is just a application development toolkit, with a healthy dose of GUI.
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.
Isn't that pretty much what AmiWin 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.
---
As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
I think we should bypass all of the OS and program the hardware directly, as done in windows to get better single user acceleration.
--The knowledge that you are an idiot, is what distinguishes you from one.
--The knowledge that you are an idiot, is what distinguishes you from one.
Of course I was joking! I thought that was obvious! Perheaps I should have put a ;) there to guide you...
--The knowledge that you are an idiot, is what distinguishes you from one.
--The knowledge that you are an idiot, is what distinguishes you from one.
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.
I'm sure I'll get flamed but I think that a development library should not have a cost becuase you are trying to make a standard.
:-)
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.
A Government Is a Body of People, Usually Notably Ungoverned
Why don't you guys run a separate X session? Then you can have two resolutions and desktops at the same time (something Windows can't do).
A Government Is a Body of People, Usually Notably Ungoverned
Yeah, it would be great if the Trolls treated Windows like Unix: free for free and proprietary for proprietary. I suspect that this has crossed their minds more than once. I sense some signals that something like this may happen in the future.
A Government Is a Body of People, Usually Notably Ungoverned
The Trolls are hiring Mac developers. Hmmm...
A Government Is a Body of People, Usually Notably Ungoverned
The first thing I thought of was "this would make a better GUI installer for Linux". So far, only the Mandrake GUI installer has worked on my system. And only SuSE worked on my friend's system. Everything else completely bombs. The reason for this is X. My card cannot be probed, thus, not detected automatically. My friend's card doesn't have a VGA mode, so it can't use the default.
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.
A Government Is a Body of People, Usually Notably Ungoverned
You are only half right. Yes, it is asymmetrical. But there's nothing wrong with that per se. As with any copyrightable product, the authors have some rights to derivative works.
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.
A Government Is a Body of People, Usually Notably Ungoverned
I've been thinking this over since yesterday, and there is still a problem with your scenario. The problem is copyright law. It doesn't matter what the any license says, it can't give any rights to the copyright holder that he or she did not already possess. The rights of party "A" do not transfer to party "B" just because party "C" combined their two code bases into one. In such a case, Troll could incorporate all of your modifications, including the third party stuff, into their free version of Qt, but they couldn't put any of the third party stuff into their professional version. That section of their license would be voided for that section of code.
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.
A Government Is a Body of People, Usually Notably Ungoverned
It doesn't seem to make any definition of "modified Software" or derivative work...extension is not well defined either
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.
A Government Is a Body of People, Usually Notably Ungoverned
I asked VA Linux why they don't give their hardware systems away. They replied "we have to eat somehow."
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.
A Government Is a Body of People, Usually Notably Ungoverned
...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).
...a non-exclusive royalty-free 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... To my non-legal mind, this means that they can only use your derivatives in the Qt version you derived from. If you derived from the Free X version, they can't use it in the Win32 version without your permission. They could of course put it in the proprietary X version, but they would still have to include it in the free version as well. Again, IANAL.
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:
A Government Is a Body of People, Usually Notably Ungoverned
Clause 3c refers to the Software, ei. the Qt Widget Library. You would be correct if I incorporated a third party's QPLd code into my own version of Qt, but that was not your scenario at all. You were talking about linking an application to both the QPLd Qt and another QPLd code base. The Trolls get zero rights to any of your code that merely links to Qt (beyond the demand that you open source it).
They can't proprietarize your code unless it is a modification to their code.
A Government Is a Body of People, Usually Notably Ungoverned
I see a lot of Windows developers on the Qt mailing lists. Probably just as many as there are Unix developers. From the questions they've posted and the comments they've made, I can surmise that at least a quarter of the Win/Qt developers are not doing porting. And this is despite the fact that Qt is not even close to the MS paradigm. The reason for this is that Qt is better, easier and more robust than MFC or Win32.
A Government Is a Body of People, Usually Notably Ungoverned
For the first time Im relly happy about QT, I still doesn't like it and will never ever in hell use it but it will hopfully inspire GTK hackers to imitate ;). Linux doesn't need one way to do it but more ways, long live QT,GTK, Berlin, X,Dinx,Framebuffers and GGI !
De lyckliga slavarna är frihetens bittraste fiender, legalisera!!!
You mean like xterm -fn '-bitstream-courier-bold-r-normal-*-*-220-*-*-m-*- iso8859-1' &?
James
XFree already provides DGA to remove the X protocol and network overhead for local apps, so why not combine this with Qt/fb for a seamless "do the right thing" Qt-based desktop...
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.
-----------
"You can't shake the Devil's hand and say you're only kidding."
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.
perl -e 'fork||print for split//,"hahahaha"'
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.
perl -e 'fork||print for split//,"hahahaha"'
This is not only great for embedded systems, but for desktops.
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!
A deep unwavering belief is a sure sign you're missing something...
I certainly hope that the license terms are the same as for the original Qt, but I wasn't able to verify that either from the announcement or from Trolltech's own web site. I would imagine that they wouldn't intend to change course, but it would be nice to see that confirmed. If there's anyone from Trolltech reading this, an official statement on your web site would be a good thing.
The net will not be what we demand, but what we make it. Build it well.
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
- -
Are you an SF Fan? Are you a Tru-Fan?
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.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Friends don't let friends enable ecmascript.
This is something that I am so interested in its not even funny. X is good for sharing / pumping apps up and down a network / remote login etc. but is too much cruft for something as simple as a desktop GUI. The topic de rigeur is targeting Linux as a replacement for Windows (which I think is moronic: Linux is *really* a server but everyone will disagree and follow the trend and call me an asshole anyway. oh well!). Well, not in its present state. I mean, if Caldera's WebSpyder browser can run in DOS mode, there's no reason why Linux can't have a better GUI system that doesnt require so much twisted legacy-based logic and overhead.
spam, spam, spam, spam, e-mail, news and spam.
What's wrong with the Qt license?
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).
This message is provided under the terms outlined at http://www.bero.org/terms.html
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?
So Linus, what are we going to do tonight?
The same thing we do every night Tux. Try to take over the world!
Shut up, be happy. The conveniences you demanded are now mandatory. -- Jello Biafra
'spose you write closed source...for whatever reason.
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.
Treatment, not tyranny. End the drug war and free our American POWs.
See my user info for links.
I'm not sure if this is what Trolltech is talking about, but I want a display server that doesn't take over the whole screen. I want full screen text mode consoles to use with mutt. I don't want an Xterm that uses a hard to read font and useless crap on the screen to click on with a mouse that takes my hands off the keyboard. And I want to be able to launch a graphical browser from an email using the framebuffer without all the overhead of X and either Gnome or KDE. It's just way too much stuff.
Anomalous: inconsistent with or deviating from what is usual, normal, or expected
Anomalous: deviating from what is usual, normal, or expected
Canard: a false or unfounded repor
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.
- They must convert KDE (that require X) or create a new desktop (one more
:-). - No GTK applications will work with it (Unless support developped by the GTK project group, which is unlikely)
- No X application support (Netscape Communicator
...) until a port is done.
This is a M$-like method to create standard: pressing the developers to adopt Qt as the standard application model capable to be used in all environnement (X and non-X) inside Linux.And if Gnome release such environnement it will only create more fragmentation. I don't really like this idea.
--- Bouh !!! ---
The design of the X Server sticks to the original multiuser-server philosophy that everything runs on the server, and the client is practically nonexistent. At the time "GUI" (tm) came out, people were used to telnetting and running processes on central boxen. The X Server design maintained the status quo.
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.
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.
I wonder how many slashdot readers figured out that this poster is being sarcastic? Anyway here is my take on this new embeded QT.
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.
--= Isn't it surprising how badly I spell ?
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.
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.
-BrentWhen I asked them about it, they used the "we have to eat somehow" line.
Do you have a problem with them eating? The levels of intolerance here at Slashdot have reached an all time low.
A Government Is a Body of People, Usually Notably Ungoverned
I don't think the original poster was objecting to them eating, merely to their use of proprietory licensing.
:-)
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.
A Government Is a Body of People, Usually Notably Ungoverned
In a similar vein, the YAX (YAX Ain't X) project aims eventually to build a windowing system on top of svgalib/GGI/fbcon/Mesa/whatever that will support Gnome and GTK apps. There hasn't been a lot of traffic on the list, but the code is progressing, albeit somewhat slowly.
It sounds nice at first, but don't get the idea that Qt is replacing X on the desktop anytime soon.
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
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.
RFC1925
So will there be an API for 2d drivers for common cards? (embedded systems seem to be using all the same chipsets ...) will they use an existing one so that existing drivers can be used? what about 3d drivers?
Molog
So Linus, what are we doing tonight?
So Linus, what are we going to do tonight?
The same thing we do every night Tux. Try to take over the world!
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
Anything I post is strictly my own thoughts and doesn't necessarily have anything to do with the opinions of IBM.
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?
DNA just wants to be free...
I'm wondering how this would compare to the Berlin windowing system or GGI? With the goal of running embedded, I'd guess QT's new system is simpler, and less cross-platform. Basically a way to get QT apps ported to handhelds really quickly, rather than a general replacement for X. I'll freely admit, though, that I don't know much about GUI framework design. Anyone out there in the know and willing to comment?
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
All opinions expressed herein are my own, and not those of my employers, who are appalled.