Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Slashdot Log In

Log In

Create Account  |  Retrieve Password

Qt Opens Source Code Repositories

Posted by timothy on Tue May 12, 2009 10:23 AM
from the good-news-on-a-few-fronts dept.
sobral writes "Following the announcement of the LGPL license model, since yesterday the Qt source code repositories are open to the public together with their roadmap. The contribution model is online and will enable developers from the community to submit patches through a single click process, avoiding the previous hassle of sending in signed paperwork. The code is hosted at qt.gitorious.org and an instant benefit of this launch is that Qt Software has been working together with Gitorious maintainers for the last four months to improve Gitorious and all these new features are already submitted upstream."
+ -
story

Related Stories

[+] Qt Becomes LGPL 828 comments
Aequo writes "Qt, the highly polished, well documented, modern GUI toolkit owned by Nokia, will be available under the LGPL starting with version 4.5! It was previously only mainly available under the GPL and a commercial license. Selling licenses was an important part of Qt under Trolltech as it was the company's main source of income, but Trolltech is a fruit-fly compared to Nokia, who want to encourage and stimulate the use of Qt Everywhere [PDF]. This is fantastic news for all commercial developers looking to create cross-platform applications without the need to buy a $4950 multi-platform license per developer."
This discussion has been archived. No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More
Loading... please wait.
  • Qt GTK (Score:5, Interesting)

    by Anonymous Coward on Tuesday May 12 2009, @10:41AM (#27922855)

    I hope Gnome switches to Qt one day, its so much nicer than GTK.

    • not a troll (Score:5, Insightful)

      by CarpetShark (865376) on Tuesday May 12 2009, @12:44PM (#27924713)

      What reactionaries are modding this "troll"? It's a perfectly valid comment, for anyone who has actually sat down and compared the libraries. Also, it's a perfectly reasonable issue to consider, now that both desktops' core libraries share common licenses and have essentially become interchangeable. Yes, that interchange would involve hard work, which may lead reactionaries to reject it, but what progress doesn't involve hard work? It would at least be nice to see a study of some GNOME app re-implemented in Qt, and what the pros/cons are. I know for a fact that at least a few apps have have been ported from GNOME to Qt (Qt3, though, I think), and probably some have been ported the other way too. Even just those historical cases with Qt3, the case study would be interesting.

  • by master_p (608214) on Tuesday May 12 2009, @11:08AM (#27923237)

    1) replace Qt memory management with TR1::shared_ptr (or boost).

    2) replace Qt collections with STL collections.

    3) replace Qt threads with boost::threads.

    4) replace Qt signals and slots with boost::signals.

    In other words, make Qt play nice with STL and boost, which are the foundations for developing C++ code these days.

    • by Clith (5063) <rae@tnir.org> on Tuesday May 12 2009, @11:12AM (#27923303) Homepage Journal
      Qt's collection classes are API compatible with STL. So I would argue that it plays nicely already. I prefer Qt containers to STL containers because Qt's classes have been optimized. STL has some issues with performance.
      • Re: (Score:3, Insightful)

        by Futil3 (931900)
        Better than STL? [google.se]

        An STL implementation has a few things going in its favor:

        STL implementations use best-of-breed algorithms.
        The designers of STL implementations are, more than likely, domain experts.
        Those domain experts were entirely focused on the mission of providing a flexible, powerful, and efficient library. This was their primary task.

        But then again. (only) You know your own usage scenario, data types and platform. That knowledge can probably offer some profound short cuts and o

      • Re: (Score:3, Interesting)

        by Brandybuck (704397)

        Almost, but not quite. STL containers tend to be optimized for speed, while Qt containers are optimized for size. There is an old Qt Quarterly that discussed the implementation of Qt's containers what was quite interesting. Go online and search for it.

        • Re:pointer (Score:4, Informative)

          by zander (2684) on Tuesday May 12 2009, @12:34PM (#27924553)
          the shared_ptr equivalent in Qt is QSharedPointer (surprise!) not QPointer which is something quite different. I do suggest not using shared_ptr as the Qt version has better cross-platform support and is easier to use and like most Qt things has better readability.
          • Re: (Score:3, Informative)

            by mzs (595629)

            To be fair QSharedPointer showed-up in 4.5, hence the reason I had never heard of it until now. OPointer was forced upon me due to everything being a QObject, but then there was the other non-Qt half of the code that used boost, it was not pretty.

    • by pyrico (1034804) on Tuesday May 12 2009, @12:06PM (#27924117)

      1) replace Qt memory management with TR1::shared_ptr (or boost).

      For the core purpose of Qt (GUIs), Qt's various memory models work very well. Every widget is a QObject and by default they fall into parent child releationships that include life-cycle management of your objects. Why would you want to mess up that clean model?

      2) replace Qt collections with STL collections.

      Another unnecessary generalization. I actually much prefer Qt's collections because A) they are implicitly shared (you can pass them around without getting deep copies) and B) they have one clean and very efficient implementation across platforms, so I don't have to worry about the memory and performance characteristics of a MSVC std::map vs a GCC std::map. Also they are much cleaner to work with and don't require hideous iterators every step of the way.

      3) replace Qt threads with boost::threads.

      Again, Qt threads will perform as good as native threads on each platform, something you can not guarantee with pthreads (with weaker windows support). Also, QThread and friends (QMutex, QSemaphore, QWaitCondition, QThreadStorage) are very C++ oriented and stylistically much cleaner than pthreads and even go beyond it in scope.

      4) replace Qt signals and slots with boost::signals.

      This is probably the most valid argument, and there is some legacy reasons why Qt had to throw a meta object compiler on top of C++ to get this to work 18 years ago. But in the mean time, that moc layer has paid off in gold. Now you the ability to get free introspection on classes of your choosing which is vital in making C++ suck less in well designed programs (i.e. can do automatic class instance serialization etc).

      In other words, make Qt play nice with STL and boost, which are the foundations for developing C++ code these days.

      In other words, Qt is a great one-stop-shop for cross platform development and I wouldn't change a single thing you listed. In fact, if you write your C++ code in stylelistic keeping with the Qt libraries, you avoid most of C++'s warts and can even enjoy the language.

    • Re: (Score:3, Interesting)

      by PerlDudeXL (456021)

      boost::thread has a different design concept than QThread. I would appreciate if Qt
      would introduce a Functor-style API for Threads.

      boost::signals doesn't work across threads (this is docuemented in the boost API).

      Throwing both Qt and boost APIs together would create an ugly mess.

  • TGI Git (Score:5, Interesting)

    by iluvcapra (782887) on Tuesday May 12 2009, @11:55AM (#27923951) Homepage

    I have to say, I'm glad of this trend lately for open source projects to primarily publish their source through Git, and particularly through these very able Git hosting sites like gitorious and github [github.com]. If you've worked with CVS and SVN open-source projects most of your career, the experience is simply incomparable. With the way Git works, and particularly with the implementations the hosting companies provide, it's very easy to fork a project, make the changes you want, and always have the power to commit to a remote repository that not only keeps track of all your commits but ALSO how all your commits relate back to the original forked project...

    Instead of downloading someone's tarball and (maybe) emailing them a diff (or just posting your own duplicate of their source with your little changes), it's like you're making a shadow copy of a projects source, where you have all the control but no information is duplicated or lost.

    • Re:TGI Git (Score:5, Interesting)

      by ultrabot (200914) on Tuesday May 12 2009, @12:31PM (#27924523)

      have to say, I'm glad of this trend lately for open source projects to primarily publish their source through Git, and particularly through these very able Git hosting sites like gitorious and github [github.com]. If you've worked with CVS and SVN open-source projects most of your career, the experience is simply incomparable.

      However, if you've worked with mercurial before, the experience is comparable - but not really favorably for Git.

      It seems Git is this shiny thing every trend chaser is picking it up right now, but it has the overall feel of not really being ready yet. I'm glad it's having some serious competition right now, so it won't be the "obvious" choice like svn was for the previous generation. It's a mixed blessing - I'd really want us to have one obvious DVCS choice, but on the other hand I don't want it to be git as it is right now. And Git doesn't seem to be getting better fast enough, since the current users are familiar with its quirks and don't really mind that much.

        • Re: (Score:3, Informative)

          by ultrabot (200914)

          Where does Hg succeed over Git? My understanding is that a lot of people really don't like the way git merges..

          - It gets by with far smaller amount of commands, that are generally understandable and do "what you would expect" (whereas with git, to get "what you would expect" you need to do some serious study).

          - It reports failures in a terminology that a normal person can be expected to understand.

          - It's implemented in Python and little C for speed, not a hodgepodge of every language known to man.

          - Probably deriving from previous point, it has a first-class windows implementation

          - It gives revisions in local repo a

  • by Kensai7 (1005287) on Tuesday May 12 2009, @03:53PM (#27927991) Homepage

    What can I say... Qt is becoming a dream platform thanks to Nokia's insight!

    - a powerful language/library (C++)
    - real cross-platform
    - support for embedded and mobile applications (a great alternative for the difficult Symbian C++ language)
    - open source and nice licence (LGPL)
    - exemplar own IDE but also Eclipse/VS integration
    - additional languages supported

    What else could one ask?!

    • by NoStarchPlox (1552983) on Tuesday May 12 2009, @10:28AM (#27922687)
      Yes, QuickTime is definitely shitty but what does that have to do with Qt?
    • by Frnknstn (663642) on Tuesday May 12 2009, @12:02PM (#27924079) Homepage

      I wasn't aware that software could smell at all. Unless...

      >>> import odour

      Oh Python, I love you...

    • by CarpetShark (865376) on Tuesday May 12 2009, @12:18PM (#27924309)

      It does have a certain shitness to the look, for some reason, at least in KDE. I noticed a while back that a bug was fixed in KDE 4 that rendered stuff with too many borders -- so when a widget was inside another widget, or adjoining another widget, they would both render a border. Kind of hoped that would solve the vague cluttered/weird/awkward feel, but it's hard to tell, since KDE 4 went with the horrible Oxygen theme which could make any widget library look like crap. I suspect Qt itself can still look very nice though. I don't mind the look of Google Earth, for instance, and QtDesigner is quite nice in places at least, though simplistic, even WITH it's horrible KDE4-like colors etc.

      That said, Qt is way more than than a widget look/theme. It's a very nice OO library for cross-platform GUI (and non-GUI) applications, with modern threading and event-driven programming support, etc. It's one of the few libraries that make me even consider using C++ these days, as opposed to nicer, more rapid languages like python++. I also think that, if GNOME had used a library of similar quality** and similar OO features, then the GNOME desktop, and Free Software in general, would probably be a lot more advanced at this stage.

      ++ Yes, I know PyQt is available
      ** Yes, I know that GNOME was a reponse to Qt's early licenses, and that Harmony didn't pan out

      • Re: (Score:3, Informative)

        by salimma (115327)

        Qt 4.5 has an excellent GTK style that makes Qt and KDE applications look just like GTK/GNOME applications, down to button ordering.

        Also, Qt Creator, their new C++ IDE, is a good illustration of what a Qt application can look like. Delicious.

            • Re: (Score:3, Insightful)

              Kubuntu is not a decent version of KDE. Or KDE really sucks.

              If they put half the time into kubuntu that they put into ubuntu it could become a great operating system.

    • by skeezixcodejedi (1344929) on Tuesday May 12 2009, @10:36AM (#27922801)
      Ignoring the enormous benefits of a single codebase for Windows, Linux/BSD and Mac OSX of course. (Yes, people still make applications for desktops and notebooks .. not just netbooks, PDAs/smartphones)
    • I worked on the software for a Motorola unit that used Qt UI framework. What is interesting is that Moto moved away from Qt when one of their major competitors (Nokia) bought Trolltech (the company that makes Qt). Two years later they open source it, I don't quite get it...
      • Re: (Score:2, Informative)

        Qt was open source long before Nokia bought Trolltech. The issue was that the original license they used didn't allow you to redistribute modifications and then the subsequent Q Public license, which was a free software license, wasn't compatible with the GPL. Then in 2000 Trolltech released it under the GPL. So I'm not sure where you got that Nokia open sourced Qt, since it had been open source for close to a decade before Nokia came along.
        • by larry bagina (561269) on Tuesday May 12 2009, @11:02AM (#27923161) Journal
          Qt was Open Source in that it was GPL, however trolltech was dual licensing it. Being GPL, it was toxic to anything but GPL programs, which meant closed source (or even non-GPL open source) would need to pay for Qt.

          Nokia relicensed Qt as LGPL which makes it usable by non-GPL programs.

    • by Anonymous Coward on Tuesday May 12 2009, @10:49AM (#27922993)
      • by rackserverdeals (1503561) on Tuesday May 12 2009, @11:10AM (#27923275) Homepage Journal

        You have to understand the "ABC is dying/dead" mentality.

        It doesn't matter how much market share you have, only that your market share is decreasing and some smaller technology which they favor has an increasing market share.

        IE is dying because Firefox use is increasing in the market and IE is declining.

        Unix is dying because Linux is growing and Unix is not.

        It doesn't matter that at the rate of decline it would take 20 or more years for whatever it is to die. Or that the decline may be arrested. Saying something is dying is usually misinformed or more likely spreading FUD to hasten the decline.

        Old technology with 80% market share drops down to 79% marketshare and new cool technology jumps up from 2% to 3% market share and old technology is declared dying. Here's a perfect example [cnet.com].

    • by entgod (998805)
      You forget who owns Qt. Symbian is not really dying yet (come on, the biggest mobile phone manufacturer uses it in all its smartphones), if it were, it would mean that Qt were becoming more relevant as, you know, the day symbian dies is the day that nokia switches to linux (not the android kind).
    • by vrai (521708) on Tuesday May 12 2009, @10:51AM (#27923009)

      Yes - because web frontends are the silver bullet that solves all of our client-side needs. In fact, why bother having general purpose computers out side of data centres? Instead we can have a global installation of five (for example) really big computers and we can access them using dumb internet terminals. Luckily the infinite bandwidth and uninterrupted global connectivity on offer, combined with the well enforced WWW standards means that even the most complex of GUIs can be provided via the browser. Why do we even bother with proper operating systems when everything man could need from a computer can be provided via a TCP/IP stack and XULRunner?

      Oh wait, because even the best web based GUIs are primitive and unresponsive compared to a well designed, well implemented local interface. With Qt it's possible to create a native GUI that runs on all major desktop platform (and even Solaris) with less effort than it takes to get even a moderately complex web interface running correctly on IE, Firefox, Safari, Chrome and Opera.

      Web interfaces are excellent for simple tasks like email and feed reading; they are terrible when deployed in more complex arenas. Even when you take in to account proprietary, binary only workarounds like Flash and Silverlight.

      • by DuckDodgers (541817) <keeper_of_the_wolf@yaho o . com> on Tuesday May 12 2009, @01:11PM (#27925099)
        The problem with fat client software is not that it's equal or inferior to a well-built website. It's definitely superior.

        The problem is deployment and support. As much as Javascript is a pain, non-standard HTML support in IE is a pain, and a million other headaches come with a website, in many ways it's far less headache than supporting a .msi/tar.gz/.deb/.rpm installer and getting tech support calls that have nothing to do with your application.

        There's certainly a wide range of applications that will always remain fat client only. But the terminal-server model makes a lot of sense from the support perspective for many applications.
    • by Anonymous Coward on Tuesday May 12 2009, @10:58AM (#27923111)

      Yeah sure...

      >> Sales of Linux netbooks collapsed.

      Proof? Sure lots of netbooks are Windows, but that doesn't mean sales of Linux models aren't increasing with the market segment.

      >> Google is providing a standardized UI on top of Linux.

      Incredibly immature project, and isn't even close to a competitor to Qt on anything but embedded.

      >> Symbian is dead.

      Well, there are millions of devices out there still with Symbian, but I agree it probably has little future.

      >> Basically, there is very little need for a specialized UI toolkit like Qt

      Qt is not a specialized UI toolkit. It is a general class library for C++ that happens to include UI classes.

      >> now that there are both fewer platforms for it to run

      Qt runs on more platforms now than ever before. I don't know what you're talking about. Symbian, WinCE, Windows 98 to 7, Linux (normal and embedded), and Mac (with Cocoa even). Name another platform that can do that.

      >> and more mature competitors on the remaining platforms.

      Like what? Each platform has their own thing, but unless you feel like implementing your interface 5 times, that's not really an option.

        • Re: (Score:3, Insightful)

          by pherthyl (445706)

          None of those run on as many platforms as Qt does. And all of them look out of place on all the platforms they run on (except for SWT, which looks ok on Windows and Gnome, but runs badly on Linux).

    • by NormalVisual (565491) on Tuesday May 12 2009, @11:05AM (#27923183)
      Qt offers quite a bit more than just an abstracted UI model. Being able to have a totally common codebase across a number of platforms for a given application (including lower-level network code, threading, non-UI graphics manipulation, file I/O, printing, etc.) is a great help.

      The only thing holding me back from totally adopting Qt was the outrageous licensing cost, not anything lacking in the toolkit itself. With it having gone to LGPL now, that is no longer an issue.
      • by Jurily (900488) <jurily@@@gmail...com> on Tuesday May 12 2009, @11:40AM (#27923713)

        Qt offers quite a bit more than just an abstracted UI model. Being able to have a totally common codebase across a number of platforms for a given application (including lower-level network code, threading, non-UI graphics manipulation, file I/O, printing, etc.) is a great help.

        Not to mention an XML parser, localisation and Unicode support by default, a great scripting engine, MD5 and SHA1, and awesome documentation, while the whole API is built to encourage best practices.

        About the only thing I'm missing is archive handling with QDir. Including bzip for a fully functional NMDC client is so last year :)

        • Re: (Score:3, Informative)

          by pherthyl (445706)

          I've never used QtUiTools and I use Designer all the time.
          I don't see any reason to create the UI at runtime. I just do the single inheritance model and everything gets converted to C++ at compile time.

    • Re: (Score:2, Insightful)

      by noundi (1044080)
      That horrible GNOME/GTK of yours drove Trolltech into relicensing Qt to GPL. Thus Qt, and even Linux, wouldn't even be close to where it is today without GNOME. Say what you want about Ubuntu, but it's a fact that FOSS (and in particular Linux) awareness has grown immensely due to its contributions, and I doubt Kubuntu is to thank for this. It's a question of flavor, and I like to have options. Both projects thrive from eachother and the constant "battles" drive devs to find out new creative ways in order t
      • Re:Die to unify (Score:5, Insightful)

        by Saffaya (702234) on Tuesday May 12 2009, @11:34AM (#27923619)

        Just to clarify :

        Nokia acquired TrollTech.

        Nokia then decided to license QT under the LGPL, it wasn't a decision made by TrollTech while they were still independent

      • Re:Die to unify (Score:5, Informative)

        by MemoryDragon (544441) on Tuesday May 12 2009, @12:43PM (#27924711)

        Actually Qt was relicensed into GPL because of KDE, not because of Gnome. KDE used Qt and came under heavy fire due to using Qt, TrollTech relicensed then Qt due to this criticis, and later on hired some of the KDE developers!

        The relicensing to LGPL now happened after the Nokia buyout, and was also preplanned because Trolltech always said, if it was bought or went bankrupt it would relicense it into LGPL!

      • Re:Die to unify (Score:5, Insightful)

        by Brandybuck (704397) on Tuesday May 12 2009, @12:58PM (#27924933) Homepage Journal

        Interested rewrite of history. But it's not true. GNOME didn't drive Trolltech to open source Qt, KDE did. GNOME wasn't (and still is not) using Qt, so why should have Trolltech cared about their whines? It was KDE developers advocating for real open source that did it.

    • Re: (Score:3, Interesting)

      Agreed. GNOME is great and all, but I feel it could have gone (and could go) a lot further with a better underlying (and fully OO from the start) library. All the stats I've seen suggest that Qt is much faster than GTK+ (and Cairo) too. The only thing is... I'd hate to lose the GNOME look/feel (especially not in favor of the god-awful KDE4 look and feel), and more importantly, I'd hate to lose Pango. Pango is probably the best thing that ever happened in GNOME.

      • Re: (Score:3, Funny)

        by Anonymous Coward

        Motif vs OpenLook: Sun capitulated to let Motif win.

        Don't know why, but the phrase "Motif vs OpenLook," make me think of two retards wrestling in a vat of pudding.

      • by sys.stdout.write (1551563) on Tuesday May 12 2009, @12:31PM (#27924515)
        As somebody who has just spent the morning trying to work out inconsistencies in wxWidgets between Windows and Linux, let me just say: shush. It's not that wxWidgets is bad, but Qt's we-are-going-to-implement-everything-ourselves-so-it-acts-the-same-on-all-platforms approach has merit.
        • Re: (Score:3, Interesting)

          by mzs (595629)

          Somebody mod this insightful.

          There are also incompatibilities with MacOS X. It really is a lot in regards to feel to how Java was circa '98 where you have different versions of wxWidgets and on different platforms really affecting how you have to write the code so that it works right on everything. Also long ago, when they were still wxWindows, they dropped the support of wxX11 and had you use wxGTK on unix-alikes. The wxX11 code stayed so close to working, only little tweaks are needed every now and then,