Qt Released For OS X
AxsDeny writes: "It looks like Macslash is also reporting this, but Trolltech is now offering Qt for OS X. Long live cross platform development." Doesn't look like there's a Free version, but there is a non-commerical license called the "Qt Academic License," which "Allows schools and universities to acquire and use Qt for free in relevant courses."
To a good article at Kuro5hin.
Best Slashdot Co
I've always been impressed with cross-platform initiatives. Especially the ECAs big project to get Eggplant code on every system available. Including embedded devices!
Eggplants!
Ace
Actually Cocoa is based on Objective C, which is an object oriented language based on C, but is significantly different than C++. There's also Objective C++, but I don't know anything about it.
yeah, if you read through it says that it uses the native Aqua interfaces as well as sets apps up to use the Aqua interface.
zork% mv *.asp
283 files eaten by a grue
The wxWindows folks also have a Macintosh port that I believe also uses CARBON. From what I understand they are doing a great job. For python people, wxPython is just fantastic.
You can write a GPL app and link it to non-free applications. What you cannot do is link to a GLPed library and release it with a non-free (well, non GPL) license. If the library is written under the LGPL you -can- link a non-GPL application to the LGPL library though.
If your above stated take on the license was true it would be impossible to write a GPLed application for any OS which isn't GPLed from the ground up. You can write a GPL app for Win32 or Solaris, right? Last I checked their standard C library wasn't GPL.
You need to do more research, man. You can link GPLed applications to non-free libraries, that ship with particular OS (e.g. to Cocoa.framework or Carbon.framework in MacOS X case, or to some dll in Win32). You can't link to arbitraty non-free library. Read the GPL license, ok?
Can I make software with the Qt Free Edition and release it under the GPL, BSD, or Artistic license?
Yes. Since Qt Free Edition is provided under both QPL and GPL, all license conflicts are avoided.
Is software based on the Qt Free Edition really free? Does it carry Trolltech license restrictions?
Yes, it is really free. No, there are no special Trolltech license restrictions on free software produced using the Free Edition. In fact, the opposite is true: The Qt Free Edition licensing demands that the software must be free. The receivers must have the rights to obtain the source code, change it, and redistribute it.
BUT!
Qt non-commercial edition and the GNU GPL
The GNU General Public License (GPL) is a popular free software license widely used in the Unix/Linux world. The GPL is published by the Free Software Foundation (see http://www.fsf.org ). One of the key features of the license is that it does not permit the distribution of software linked to non-system libraries that are distributed under different licensing terms. Although Qt non-commercial edition is available free of charge this prohibition nonetheless applies to it.
If you wish to port one of the many GPL'd Qt-based Unix applications to another operating system using the Qt non-commercial edition, you need to get that application's copyright holders to add an exception to its license. Similarly, if you develop a new application with the Qt non-commercial edition and wish to license it under the GPL you may wish to add such an exception to your license. The Free Software Foundation has provided the following wording for such exceptions:
As a special exception, gives permission to link this program with Qt non-commercial edition, and distribute the resulting executable, without including the source code for the Qt non-commercial edition in the source distribution.
Note that such an exception is not required for code released under other free software licenses like the GNU LGPL and BSD-style licenses.
AND!
The Qt Non Commercial Edition for Microsoft Windows is a binary only distribution requiring Microsoft Visual Studio version 6.
You know when you have to dig this deep into the site to find the pricing information, it's going to hurt when you get there.
http://www.trolltech.com/purchase/qtpricing.html
US$1550 for one professional license, US$1950 for one enterprise license?
I believe all the people that say QT3 is the bees' knees, but yikes. Guess I won't be experiencing that coolness for myself.
(Wistfully remembering the days when Think C was $99, and the early CodeWarriors were around $199)
-- http://frobnosticate.com
I've got a biggish Win32 program and wonder about moving it to Qt. How big an effort?
:)
Qt is quite a bit different from MFC, and I think porting would be more effort than simply rewriting it in Qt.
Any performance hits / gotchas?
Not really... don't pay any attention to the AC trolls who bitch and moan about moc (Qt's preprocessor)... it lets you do some really neat stuff that you simply can't do with normal callbacks. As for performance, I haven't noticed any speed hits using Qt as opposed to MFC.
Any features that we'll lose?
Nope. Anything that Qt doesn't support is EXTREMELY easy to add yourself... Qt is designed in such a way that subclassing a widget to add new features is a breeze, so you can make any widget do anything you want.
Qt also provides tons of utility classes, which make it simple to do stuff like asynchronous socket/file i/o and so on. It rocks.
Want to stop being dependent on MS before they collapse!
Heheh. Good plan
Always happy to throw fat on the fire. This was this morning's "Morning Edition" on NPR, I don't think they have the transcripts up yet. The Real Audio is here on this page.
I agree that Qt is quite well put-together, but after working with it for a little while (I'm mostly a GTK/PyGTK fan) I've found it has an annoying flaw that really prevents me from using it effectively: its memory-management system is restrictive, and it only works in C++.
The "restrictive" part is due to the fact that Qt takes a simplistic hierarchical view of resource ownership - parent objects own their children, and delete them when they are deleted. This forces you to implement most of your own code as subclasses of Qt toolkit classes. Aside from being aesthetically icky, this can get you into trouble when the rest of your own code has different ideas about object ownership and lifetimes. At the very least you need to write extra adaptor code or invent weak references for Qt objects.
The other problem of course is that Qt "only works from" C++. I've long since left static languages behind for GUI development; Python and friends are the way of the future. Sure there are bindings like PyQt, but PyQt has some serious memory management problems (since Python objects are reference counted, and can't easily mesh with Qt's object hierarchy). The result is segfaults and/or memory leaks even for simple PyQt programs.
Using Qt was an interesting and worthwhile experiment, but I much prefer Gtk's more reasonable resource management scheme (which has been designed from the ground up to cooperate with scripting language bindings).
http://www.sf.net/projects/gtk-quartz
Won't do much until the unstable branch is building on Darwin.
This is completely untrue. Objective C++ was included in MacOS 10.1. I'm using it as we speak. It allows you to mix Objective-C and C++ code freely in a single source code file. It works just as it should. It takes much longer to compile, though. Something about pre-processed headers, I think.