Slashdot Mirror


Why Use GTK+?

An anonymous reader writes "IBM DeveloperWorks is running an interesting student article that introduces users to the world of GTK+. It explains what GTK+ is, why you should consider using it, and the benefits it provides. Together with the rest of the series, this installment provides enough introductory information that, if you decide to use GTK+ in your own projects, you'll know where to look for further materials."

356 comments

  1. Just curious by Saven+Marek · · Score: 2, Funny

    Does gimp still use GTK+ of some version or some other for its toolkit?

    1. Re:Just curious by JanneM · · Score: 2, Funny

      Does gimp still use GTK+ of some version or some other for its toolkit?

      Yes.

      --
      Trust the Computer. The Computer is your friend.
    2. Re:Just curious by strider44 · · Score: 4, Informative

      Yes Gimp still uses the Gimp Tool Kit.

    3. Re:Just curious by bcmm · · Score: 1

      Wow. Just... wow...
      I can't even summon the energy to be abusive about this post.

      --
      # cat /dev/mem | strings | grep -i llama
      Damn, my RAM is full of llamas.
    4. Re:Just curious by nawcom · · Score: 1

      You should of gotten a 5 for humorous (along with informative). :)

    5. Re:Just curious by Jozer99 · · Score: 1

      PLEASE! If you are writing a windows program, or a program you plan to port to windows, do not use GTK+. It works terribly on that platform.

    6. Re:Just curious by shellbeach · · Score: 1

      PLEASE! If you are writing a windows program, or a program you plan to port to windows, do not use GTK+. It works terribly on that platform.

      Eh? Gimp works great. So does Inkscape. I use those on WinXP all the time here at work, and I've never had a problem with them.

      Can you name anything that doesn't work well?? Gtk2 is a beautiful toolkit, IMHO - it's so easy to get your head around it, and it's powerful, too. And there's bindings for just about any higher level language you could care to name.

    7. Re:Just curious by Jozer99 · · Score: 1

      Ever tried taking a screenshot, or using alt-tab? It just doesn't work right.

    8. Re:Just curious by mixmasta · · Score: 1

      Just did using gimp on XP. Didn't encounter any problems. What was supposed to happen?

      --
      #6495ED - cornflower blue
    9. Re:Just curious by WWWWolf · · Score: 1
      Does gimp still use GTK+ of some version or some other for its toolkit?

      The GIMP still does, of course. CinePaint, a rather notable fork of GIMP, however does not, at least not for everything - the thing is being ported to use FLTK. (I haven't used CinePaint at all and I can't find any docs on the project status, but at least the Debian binary seems to depend on both FLTK and GTK+ right now.)

  2. Nokia by ultrabot · · Score: 5, Informative

    One interesting consideration when determining what toolkit to go with is that the GUI toolkit for Nokia's new internet tablet is GTK+.

    --
    Save your wrists today - switch to Dvorak
    1. Re:Nokia by Anonymous Coward · · Score: 4, Informative

      It's actually a modified version of GTK+, with some components removed (those that they felt weren't needed given the constraints of the device) and some new stuff added in (mainly the "Hildon" libraries) for creating new applications that can take advantage of the device-specific widgets and layout.

    2. Re:Nokia by ebassi · · Score: 2, Informative

      The interesting bit is that, thanks to the Maemo project, Nokia is gving back to the community some of the changes made to the GTK libraries - namely, the stylus mode and other issues that emerged during development of the Hildon platform library.

      --
      You can save space. Or you can save time. Don't ever count on saving both at once. -- First Law of Algorithmic Analisys
    3. Re:Nokia by Brandybuck · · Score: 1

      Why is that a consideration? Other embedded devices use Qt, so what difference does it make? If you're not developing for the Nokia internet tablet, why should it in any way influence your decision?

      --
      Don't blame me, I didn't vote for either of them!
  3. What is GTA? by earthstar · · Score: 3, Informative
    For those who didnt RTA,

    GTK+ is a graphical user interface (GUI) tool kit.
    That is, it's a library (or, in fact, a collection of several closely related libraries) that allow you to create GUI-based applications. Think of GTK+ as a toolbox in which you can find many ready building blocks for creating GUIs.

    Originally, GTK+ was created as a spin-off of another well-known open source project: the GNU Image Manipulation Program (GIMP). While working on early GIMP versions, Peter Mattis and Spencer Kimball created GTK (which stands for GIMP Toolkit) as an alternative to the Motif tool kit, which at that time was not free. (The plus sign was added to the name later, when the tool kit gained object-oriented features and extensibility.)

    That was almost 10 years ago. Today, a lot of activity is still going on with the latest GTK+ version -- 2.8 -- and while GIMP certainly continues to be one of the best-known programs using GTK+, it is by far not the only one. Literally thousands of applications have been written for GTK+, and at least two major desktop environments (Xfce and GNOME) use GTK+ to provide a full working environment for users.
    1. Re:What is GTA? by Saven+Marek · · Score: 1

      > Peter Mattis and Spencer Kimball created GTK (which stands for GIMP Toolkit)
      > as an alternative to the Motif tool kit, which at that time was not free.

      If true this proves the innovation in the free and open source community goes back a long way

  4. Interestingly... by Lendrick · · Score: 4, Informative
    These all apply to Qt as well. To each their own. :)

    • It's both modern and actively developed and maintained, with a vibrant surrounding community.
    • It offers a wide array of options for extending your work to as many people as possible, including a sophisticated framework for internationalization, localization, and accessibility.
    • It's simple and easy to use, both for developers and users.
    • It's well designed, flexible, and extensible.
    • It's free software with a liberal open source license.
    • It's portable, both from the user's and the developer's perspective.

    1. Re:Interestingly... by Anonymous Coward · · Score: 3, Informative

      QT/X11 is indeed free software, but what about QT/w32 ?
      Also, you are allowed to use GTK+ for proprietary projects (LGPL). The free QT is GPL.

    2. Re:Interestingly... by adolfojp · · Score: 4, Informative
      It's free software with a liberal open source license.
      Eh... not quite, unless you plan to make open source software exclusively. http://www.trolltech.com/products/qt/licensing.htm l
      The same thing applies to MySQL but people seem to mistake the GPL for the LGPL.
    3. Re:Interestingly... by ardor · · Score: 1

      This is so typical.

      CEO: Open Source is bad, we can't sell product X, we must give it away freely!
      OpenSource Advocate: Why not? Dual-license it, GPL for free stuff, $$$ for commercial usage. .... elsewhere...

      A: Why not use X?
      B: Its bad, because it is dual-licensed!

      You see a problem here? Telling people that you can sell your stuff AND releasing it as OS and at the same time yelling against it because its only GPL for non-commercial stuff?

      --
      This sig does not contain any SCO code.
    4. Re:Interestingly... by adolfojp · · Score: 5, Insightful

      You make a very good point.

      I like to call the GPL the viral open source license. Everything it touches is also made open by default.

      You would be surprised by the number of developers that I know that developed their apps using MySQL and then had to pay for the comercial license many months later because they didn't read the fine print. Lets just say that if they had known beforehand they would have charged a little more for their applications ;-)

      I am not against the GPL. I am just amused by the large number of people that advocate it fanatically and yet don't understand it.

      Cheers,
      Adolfo

    5. Re:Interestingly... by FidelCatsro · · Score: 2, Informative

      QT/w32 is believe is now GPL as are all version , but you may also purchase a commercial license if you so wish .

      --
      The only things certain in war are Propaganda and Death. You can never be sure which is which though
    6. Re:Interestingly... by rsidd · · Score: 2, Insightful
      Eh... not quite, unless you plan to make open source software exclusively.

      I just hate the GNU zealots. Qt just can't win can they. The entire GNU project is founded on the idea that proprietary software is bad (Stallman even wrote an essay on why you shouldn't use the LGPL, and renamed the first L from "Library" to "Lesser" to discourage use). But when Qt is using GPL, suddenly the GNU zealots turn around and say, hey that's bad, you can't write proprietary software with it! In fact Qt has the perfect business model -- if you want to write proprietary software, you buy a license from them and give them some revenue (as lots of people do), and if you want to write free software, it's all yours. The GNU supporters should be holding Qt up as an example.

      Anyway... let people choose the toolkits based on their merits. Plenty of people seem to be choosing both. (Mozilla=GTK+, Opera=Qt. Acrobat Reader=GTK+, Scribus=Qt. Etc.) But I dislike disingenuous articles like the present developerworks article which pretends that GTK+ is the only toolkit that exists. Everyone knows Qt exists too -- if you believe GTK+ is better, explain why, but don't sweep the discussion under the carpet.

    7. Re:Interestingly... by m50d · · Score: 1
      QT/X11 is indeed free software, but what about QT/w32 ?

      It's also free software, though this was a new thing for version 4.

      Also, you are allowed to use GTK+ for proprietary projects (LGPL). The free QT is GPL.

      And when comparing OOo to gnome office gnome people cite being GPL rather than LGPL as an advantage.

      --
      I am trolling
    8. Re:Interestingly... by adolfojp · · Score: 5, Informative
      ... I dislike disingenuous articles like the present developerworks article which pretends that GTK+ is the only toolkit that exists.

      From the article:
      In actuality, modern GUI tool kits do more than merely avoid duplication. They offer many advanced capabilities that users have come to expect in their applications and which wouldn't be attainable otherwise because the time and work investment in such tool kits exceeds whatever you could spend on a single application. Therefore, if using a GUI in your application is important to you, use a tool kit. There's simply no other way. Now, the only question left is, which tool kit should you use?
      The author makes it very clear to the reader that other GUI toolkits exist. Since he likes GTK+ he writes an article advocating it. It is not meant as a comparison between different toolkits. It is meant as an introduction to one of them.
      Also, considering the wealth of GUI toolkits avaliable, his article would loose focus quickly if he meant to mention all of them.
    9. Re:Interestingly... by Anonymous Coward · · Score: 0

      hey fuck you ok? youre getting in the way of our plans to take over the computing world. so back the FUCK OFF!

    10. Re:Interestingly... by rsidd · · Score: 0
      The author makes it very clear to the reader that other GUI toolkits exist. Since he likes GTK+ he writes an article advocating it.

      His advocacy is a list of attributes that, as one of the ancestors of this post pointed out, all apply to Qt too. Though your wikipedia link has a huge number of toolkits, very few are cross-platform and free/open-source, and none of those are in particularly widespread use -- except Qt and GTK+. So, sorry, listing the "good points" of GTK for purposes of advocacy, and thereby implying that they're unique to GTK, is just wrong.

    11. Re:Interestingly... by nathanh · · Score: 1
      I just hate the GNU zealots. ... But when Qt is using GPL, suddenly the GNU zealots turn around and say, hey that's bad, you can't write proprietary software with it!

      I hate people who make sweeping generalizations (zing). I'm a GNU zealot and I think Trolltech rocks for using the GPL for QT. I have no patience for proprietary software and I look forward to a time when software like QT is the norm rather than the exception.

      Also I think that the majority of GNU zealots would feel the same way about QT and it is merely your self-professed and entirely illogical hatred of GNU zealots that leads you to believe otherwise.

    12. Re:Interestingly... by penguin-collective · · Score: 2, Insightful

      I just hate the GNU zealots. Qt just can't win can they. The entire GNU project is founded on the idea that proprietary software is bad

      No, the GNU project is founded on the idea that it is beneficial for people to share contributions to software freely. Troll Tech has adopted the GPL, but it's not being run like an open source project.

      But when Qt is using GPL, suddenly the GNU zealots turn around and say,

      AFAIK, GNU zealots generally have nothing against Qt.

      In fact Qt has the perfect business model

      So does the mafia.

      Plenty of people seem to be choosing both.

      Your examples suggest that both are about equally capable. So, the rational thing to do is to pick the cheaper one--Gtk+.

      Everyone knows Qt exists too -- if you believe GTK+ is better, explain why, but don't sweep the discussion under the carpet.

      Gtk+ is better to many people because (1) it is developed like an open source toolkit, and (2) it is free for commercial use.

    13. Re:Interestingly... by Anonymous Coward · · Score: 1, Funny

      Man, don't you hate it when you're trying to read a review about a ferrari and it's three thousand pages long because the guy felt obligated to compare it to every other car that goes fast?

      Shut up.

    14. Re:Interestingly... by Anonymous Coward · · Score: 1, Insightful

      Well, to me gtk is better because it has bindings for more languages than qt, or maybe even more importantly the reason behind this: gtk has C-interface and QT has C++-interface. It is much easier to access C-library from another language than a c++ -library. Also, there's an interesting thing called gtk-server (http://www.turtle.dds.nl/gtk-server/index.html) which enables me to use gtk from nearly any language without doing any bindings (I can do a GUI for my sed -script if I want to).

      Yes I know this may not be a major issue for others but here's an explanation from my point of view. I think C++ is pretty much an evolutionary dead end(one big reason being the unfriendliness to other languages) and would like it to die as soon as possible.

    15. Re:Interestingly... by Cal+Paterson · · Score: 1

      You would be surprised by the number of developers that I know that developed their apps using MySQL and then had to pay for the comercial license many months later because they didn't read the fine print. Lets just say that if they had known beforehand they would have charged a little more for their applications ;-)

      How could you fail to notice the fact that anything using GPL stuff has to be under the GPL? It's the entire point of the licence. What did they think it did? Stay home and bake cookies?

    16. Re:Interestingly... by tpgp · · Score: 1
      Wow! You just didn't read the article at all did you rsidd?

      The grandparent had a list of attributes from the article which he said could apply equally to QT or GTK. The parent then pointed out that one of the listed attributes:
      It's free software with a liberal open source license.
      Applys only to GTK - not to QT.

      The parent was correct. From the article:
      Liberal open source license means that these conditions are not terribly restrictive, and the degree of freedom you get is significant. Most importantly, GTK+ has adopted the Lesser General Public License (LGPL) license, which is a less-restrictive license in the family of GNU licenses. LGPL allows you to freely get, modify, and distribute any software it covers, as long as you make your modifications free, as well. LGPL also allows anyone to use functions provided by the library without requiring the user to open the application code.
      rsidd: I just hate the GNU zealots.

      Thats all you really wanted to say wasn't it?

      rsidd: Anyway... let people choose the toolkits based on their merits. Plenty of people seem to be choosing both. (Mozilla=GTK+, Opera=Qt. Acrobat Reader=GTK+, Scribus=Qt. Etc.) But I dislike disingenuous articles like the present developerworks article which pretends that GTK+ is the only toolkit that exists. Everyone knows Qt exists too -- if you believe GTK+ is better, explain why, but don't sweep the discussion under the carpet.

      This is correct - but you've only included something reasonable to make sure your troll gets modded up - classic trolling 101.
      --
      My pics.
    17. Re:Interestingly... by agurkan · · Score: 2, Informative

      its only GPL for non-commercial stuff
      you cannot do this. it is either GPL or not, if it is GPL you cannot have "non-commercial" attached to it.
      i can develop stuff with a dual-licensed library (GPL and proprietary; say with Qt) and and sell my stuff while distributing the library or its derivative works relying on GPL. however, then i have to release my own work as GPL as well; and my first customer can undersell me, because i cannot restrict further copying. only if i want to restrict further copying (or do not want to release source code etc. etc.) i have to use the proprietary license, not if i want to sell my work.

      --
      ato
    18. Re:Interestingly... by hughk · · Score: 3, Informative
      If you visit their website, you will find that MySQL are quite up front about their dual licensing policy.

      If you want to use it from something like Perl/PHP whatever, you will find the license cost is zero. If you want to incorporate it as part of an in-house system, there is no issue. It is only if you want to build non-GPL software for distribution. OTOH, you will find that many commercial users have no issues with paying for support. Although not as full featured as Oracle 10g, it costs a tad less.

      --
      See my journal, I write things there
    19. Re:Interestingly... by Anonymous Coward · · Score: 0

      So...it tells us that you have a few *very* stupid friends.

    20. Re:Interestingly... by Capt.+Beyond · · Score: 1

      All projects, whether open source or not, have disgretion over what contributions get added. Trolltech is no different. It's developed run like an open source project, because it's not wholely an open source project! The commercial licenses pay for the development of the open source code that Trolltech gives away for free. Trolltech employes a great many open source community developers.

      GTK+ is no more cheaper than Qt, unless you are talking about closed source projects. Gtker's seem to like to advocate proprietary applications.

      --
      -- "Perceptions create reality. By changing your perceptions you change your reality."
    21. Re:Interestingly... by photon317 · · Score: 1


      The virality of the GPL does not cross the barrier of a database connection. Troll?

      --
      11*43+456^2
    22. Re:Interestingly... by Knuckles · · Score: 1

      And when comparing OOo to gnome office gnome people cite being GPL rather than LGPL as an advantage.

      Because OOo is not a library.

      --
      "When I first heard Daydream Nation it quite frankly scared the living shit out of me." -- Matthew Stearns
    23. Re:Interestingly... by Nugget · · Score: 4, Insightful

      It absolutely does if you're using the mysql libraries to connect to the mysql database. Rather than being sanely LGPL'd, the mysql connector libraries are GPL which precludes their use in non-GPL codebases. So, unless you're a GPL developer, you need to purchase a commercial license for mysql (or find a database with less restrictive licensing).

      The fact that you're ignorant of this crucual detail (which is the foundation of mysql ab's ability to make money) reinforces the GP's point.

    24. Re:Interestingly... by cortana · · Score: 5, Informative

      The MySQL client libraries are under the GPL, not the LGPL.

      MySQL even claim that if you implement your own client, it speaks the MySQL protocol, and as such is a derivative work of the MySQL server and so must be made available under the GPL.

    25. Re:Interestingly... by Anonymous Coward · · Score: 0

      You "why-not-lgpl" idiots never actually read Stallman's essay, do you? You just content yourself with reading the title, wanking off and then posting it, safe in the knowledge that only blind faith can bring, that you've made your point.

      Stallman's wasn't arguing for the Qt situaton -- in fact, in that essay he was comprehenive stating that situations like Qt are the place where LGPLed libraries (ie. not Qt) *are* needed.

    26. Re:Interestingly... by doctormetal · · Score: 2, Informative
      QT/w32 is believe is now GPL as are all version , but you may also purchase a commercial license if you so wish

      Yes, QT for windows is GPL, but you must buy commercial licenses because it is GPL and not LGPL.

      If you make an application using a GPL library your application is a derrived work, which means it is also GPL.

      If you use a LGPL library, your application does not have to be open source, but it must mention somewhere it uses the library.

    27. Re:Interestingly... by squiggleslash · · Score: 3, Insightful
      But when Qt is using GPL, suddenly the GNU zealots turn around and say, hey that's bad, you can't write proprietary software with it
      I'm trying to work out why you'd assume that someone criticising a product for not letting you produce proprietary software that uses it is a "GNU zealot". Is the GP known to you and always ranting on about GNU and how wonderful the GPL, or are you just making an assumption?

      If the GP is genuinely against a license because it means a library cannot be linked against a proprietary program, then they're not a "GNU" (or FSF, or GPL) zealot. They may be a zealot, but they're not a GNU one.

      Many Free Software people, which is a diverse group encompassing many opinions, eschew the GPL for precisely this reason and consider themselves active opponents of it. One example would be the OpenBSD team, and Theo DeRaadt in particular, who is strongly against the GPL because he wants his work to be freely available even to those who'd not make public the source of their released changes.

      These are legitimate opinions. Your characterization is as bad as someone who sees, say, Bush criticised for not proposing a clearly religiously-motivated supreme court nominee, and then Bush criticised for reversing his position, withdrawing the nominee, and making an apparently religiously-inspired one, as "Christian Conservative Zealots not letting Bush win". They're different critics.

      --
      You are not alone. This is not normal. None of this is normal.
    28. Re:Interestingly... by Bloater · · Score: 1

      > I just hate the GNU zealots. Qt just can't win can they. The entire GNU project is founded on the idea that proprietary software is bad (Stallman even wrote an essay on why you shouldn't use the LGPL, and renamed the first L from "Library" to "Lesser" to discourage use). But when Qt is using GPL, suddenly the GNU zealots turn around and say, hey that's bad, you can't write proprietary software with it!

      That's not the GNU zealots saying that, GNU zealots love that QT is not LGPL. It's some other people that don't approve of GPL libraries.

      Why do you think there are only two viewpoints in this world? Do you have a bipolar mind or something?

      The world is not just KDE Foundation vs Free Software Foundation, there are far more groups with far more varied opinions and agendas. The opinions of the KDE Foundation and FSF are tiny, tiny minorities, so it is not suprising that you hear a lot of opinions that don't seem to fit into those categories properly. I find your shock at hearing a new voice to be bizarre in the extreme.

    29. Re:Interestingly... by Anonymous Coward · · Score: 0

      You are saying that Trolltech can sells licences for development of proprietary software (because they love the GPL), but everybody else that wants to use its own license is evil.
      The last line of the GPL says explicitly that for libraries one probably want to use the LGPL, and you know why? Because free software will only exist if it will atract interest of a number of people. If you need a software for your particular purposes you will need to hire a programmer, and probably will not make sense to make it GPLed. Having a library in LGPL means that a habitual free software developer will have the opportunity to make some money with custom software and support his free software activities. With Qt one have to pay the TrollTax, and as a citizen of a developing country I don't feel like a good idea to send away $1500 for a product that offers something that already exists and I can use it for free.
      And more, with GTK+ I can really take part in the process of development as a developer, and not as a "interested" user.

    30. Re:Interestingly... by Scarblac · · Score: 1

      No, the GNU project is founded on the idea that it is beneficial for people to share contributions to software freely. Troll Tech has adopted the GPL, but it's not being run like an open source project.

      Don't make the mistake of mixing up "GNU" and "open source". Most of GNU's own projects aren't run "like an open source project", if I think what you mean by that. Most GNU software is written by developers paid by the FSF, and all individuals who want to contribute something have to sign over all their copyrights, on paper, to the FSF.

      What the GNU project is about is to make available a body of software that provides certain freedoms to its users. Qt is available under the GPL, and therefore it's basically part of that body of software. That's great! If anything the FSF is probably not happy that there's another license option available also, but they don't care how the project is run.

      --
      I believe posters are recognized by their sig. So I made one.
    31. Re:Interestingly... by WindBourne · · Score: 1

      They can claim that, but I would guess that they would probably lose in court.

      --
      I prefer the "u" in honour as it seems to be missing these days.
    32. Re:Interestingly... by Tellalian · · Score: 4, Insightful

      It'd be interesting to see if such a "claim" would ever hold up in court. You'd think if it did, AOL or MSN would have sued Gaim years ago for breaking their "license". Commonsense would dictate if Gaim can implement a proprietary protocol for interoperability, than anyone could implement MySQL's protocol for the same reason. I don't have a reference on hand, but I believe a court decided client-server interaction didn't constitute a level of usage where licenses like the GPL were applicable.

    33. Re:Interestingly... by marcosdumay · · Score: 1

      How many software developpers you have seen buying a proprietary library without readding the fine print? Why don't they? Why didn't those inform themselves about MySQL? It is not because there a few people out there who know the GPL, that I am sure about.

      Just because you know some moron it doesn't make make the GPL something unethical. And there is no fine print! If you make a 5 minute research at the FSF web page you'll know more than enogh to know that you shouldn't use a GPL library on a proprietary program. If you just read the home page of MySQL, you'll discover that you must pay them to use it on a proprietary program.

      Stop blamming the GPL what should be blammed on stupidity!

    34. Re:Interestingly... by ookaze · · Score: 1

      I just hate the GNU zealots

      Fair enough, but how would you call someone who gets heated by sth that is just the truth, and has to flame because he doesn't like it ? Because that's just what you did !

      Qt just can't win can they

      The goal was not to say if Qt or GTK+ wins, the GP just made things straight.

      But when Qt is using GPL, suddenly the GNU zealots turn around and say, hey that's bad, you can't write proprietary software with it

      Read again then ! GP never said it was bad, you said that. So you are the zealot here.
      BTW, GP is right, calling RMS or GNU names won't make him wrong, sorry.

      In fact Qt has the perfect business model

      That was not what GP was discussing ...

      The GNU supporters should be holding Qt up as an example

      Whatever, but that does not remove the fact that Qt is NOT only GPL, it's double licensed, so when someone cites "It's free software with a liberal open source license", you ought to be quick to not fool people into believing it's true whatever what you do with the software.

      But I dislike disingenuous articles like the present developerworks article which pretends that GTK+ is the only toolkit that exists

      That's because you are a zealot. The article never said such a thing, and actually acknowledged the existence of others toolkits. But it requires reading at least the intro to know this.
      Like a good zealot, you got heated before reaching this point.

    35. Re:Interestingly... by adolfojp · · Score: 2
      I said:
      I am not against the GPL. I am just amused by the large number of people that advocate it fanatically and yet don't understand it.
      You replied:
      Stop blamming the GPL what should be blammed on stupidity!
      We agree on this matter. The GPL is a great open source license. We also agree on human stupidity.

      My point is that there is an ever increasing number of people who preach open source like they preach religion. Each person gives his/her own interpretation. Most people that I have worked with cannot tell the difference between the GPL, LGPL, FreeBSD and the MIT license.

      The sad thing is that I have seen this ignorance not only in script kiddies learning to dabble in php but also in local government computer people who are in charge of the state's entire transportation computer systems. To them open source is nothing but a beautifull abstract idea that lacks solid form, specifications or boundaries.
    36. Re:Interestingly... by jonored · · Score: 3, Interesting

      Leaves me wondering if you could successfully play linking games to keep your software non-GPLed when you distribute it. Construct a general database interface API (or find a compatibly licensed one - not GPL...), write your app to use that API, and distribute it. Also distribute a module that is GPLed that talks to the mysql database. The user links the module with the app, and the GPL asserts itself on this new derivative work; the end user cannot distribute this work without distributing full source; but the end user is restricted from distributing it anyways, if it's a commercial product. If not, then they can distribute it unlinked anyhow. The interface is not a work based on the GPLed work; the GPLed work wasn't involved in it's construction, it's just an database interface tailored to the needs of your app. Your app is only based on the interface; the interface isn't GPLed, no problem. The code that translates your interface to the GPLed work is based on the GPLed work; it must be under the GPL if you are releasing it. That does not, however, do anything to the licensing of the interface or your app. When linked, they are a derivative work, and therefore cannot be copied, distributed, modified and all that except under the GPL; nobody cares. This happens well after you'd want to do any of those with it - it doesn't keep you from using it. This is actually the scheme that the madwifi project uses to get their FCC-mandated binary module into the kernel; it doesn't particularly interact with the kernel, it interacts with their code, based on an interface which is licensed such that the GPL doesn't apply.

    37. Re:Interestingly... by ultranova · · Score: 1

      I like to call the GPL the viral open source license. Everything it touches is also made open by default.

      No. If you use foreign GPLd code in your program, it doesn't get licensed under GPL to anyone without you specifically licensing it so. However, if you distribute that program, without also licensing it to recipients under GPL and giving or making available to them the source code so that they can, in turn, relicense it onwards in full compliance of GPL, then you break the conditions under which GPL takes effect, which means that you do not have a license to distribute the third-party copyrighted GPLd code you included in your project, and a consequently infringing on their copyrights, which, as we all know, is the most hideous act of villainy you could possibly commit - just ask the RIAA ;).

      Put less wordily: GPL isn't viral, since no code becomes GPld just because some GPLd code was included in it. However, if you distribute GPLd code without following the terms of GPL, then you are performing a copyright violation, and the copyright owner can sue you. And distributing a program that contains GPLd code distributes that code, since it is part of the program.

      GPL isn't a virus, it's a mitochondria.

      You would be surprised by the number of developers that I know that developed their apps using MySQL and then had to pay for the comercial license many months later because they didn't read the fine print. Lets just say that if they had known beforehand they would have charged a little more for their applications ;-)

      What fine print ? I use PostgreSQL, and have only been at MySQLs website once, and that time it took me all of five minutes to figure out this dual-licensing scheme. Now, it is possible that I just happen to a data-mining genius, but I sincerely doubt that.

      Really, if you don't bother doing even five minutes of research about a component of your project until after months of coding... Then I don't think I want to use that project ;).

      I am not against the GPL. I am just amused by the large number of people that advocate it fanatically and yet don't understand it.

      If you want to use GPL licensed code or any part of it, as-is or modified, you may, on the condition that the complete source code (including any modifications to the GPLd part) of any program that you use it on is also released under GPL.

      That wasn't so difficult, now was it ?-)

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    38. Re:Interestingly... by Q2Serpent · · Score: 1

      Absolutely wrong. (IANAL, STTUMA, IYCRTYTTH)

      A piece of code can certainly be released under as many licenses as the copyright holder desires. Each blob of code is released with a license that governs how the licensee may copy it. If you get a copy that was released under the GPL, you are free to copy it as the GPL allows. If you get a copy that was released under a commercial license, you are free to copy it as the commercial license allows.

      Just because the *same code* exists somewhere else with a different license does *not* mean that the code you posess was also released under that license. Dual licensing is a simple concept that many companies use. To say it doesn't exist is simply mistaken, and to say that the licenses somehow apply to all code bases that are equal is a claim that doesn't make any sense. I'd like to see a judge agree with that argument.

    39. Re:Interestingly... by ajs · · Score: 1

      Keep in mind that while it's a bogus claim in the US, it may not be in other countries, and given that MySQL AB is not a US company, that could easily explain their reasoning for including the clause.

      There are two ways to look at it:

      1) It's open source, which is great for the open source community.

      2) It's only open source, which is bad for the proprietary software community.

      I choose to adopt the former point of view, but the latter is just as valid.

    40. Re:Interestingly... by IntlHarvester · · Score: 1

      And there is no fine print! If you make a 5 minute research at the FSF web page you'll know more than enogh to know that you shouldn't use a GPL library on a proprietary program.

      Well, that's the point right there -- The GPL implies that one can "use" the software without restrictions, and then relies on an extra-legal interpretation of copyright law to enforce the "viral-ness". Fine-print would be significantly preferable to reading their web site.

      Not to mention that the FSF's take on the issue of libraries and derived works is entirely different than every commercial library vendor's!

      --
      Business. Numbers. Money. People. Computer World.
    41. Re:Interestingly... by Anonymous Coward · · Score: 0
      Has it ever occurred to you that it's not the GPL zealots, and certainly not Stallman, who are complaining that Qt is not LGPL? Let's take look at your post:
      Eh... not quite, unless you plan to make open source software exclusively. (emphasis mine)

      I just hate the GNU zealots ...
      What made you assume that you were replying to a GNU zealot? If anything, he is not; note that he says "open source" where a GNU zealot would say "free software".
    42. Re:Interestingly... by mav[LAG] · · Score: 1

      I like to call the GPL the viral open source license. Everything it touches is also made open by default.

      A common misconception. It's copyright law itself that's viral.

      --
      --- Hot Shot City is particularly good.
    43. Re:Interestingly... by SWroclawski · · Score: 1

      In fact Qt has the perfect business model -- if you want to write proprietary software, you buy a license from them and give them some revenue (as lots of people do), and if you want to write free software, it's all yours. The GNU supporters should be holding Qt up as an example.

      First, you're lumping in an entire group of people, but others have already pointed that out.

      Secondly, Qt, AFAIK, wasn't always dual-licensed. I think I remember it having another, less Free license. The license change was a response to GTK. Though I might be wrong, this is my recollection.

      Third, the point of the Free Software movement is indeed to get rid of non-Free software. While a dual license can be good in supporting a Free program (even RMS says this), it also opens the door to proprietary software. A person who believes that something is wrong isn't persuaded to change thier mind just because there's a revenue behind it. A vegetarian would be hypocritical to try to stop people from eating meat, then have meat options at her resturant. It's not bad, it's just not good.

    44. Re:Interestingly... by arkanes · · Score: 2, Informative
      The GPL implies that one can "use" the software without restrictions, and then relies on an extra-legal interpretation of copyright law to enforce the "viral-ness".

      Not really. The viralness of the GPL is well founded - what you may be thinking of is how the FSF interperts "derived work", which is a legal grey area at the best of times. In the important cases, like when you statically link GPL code, it's pretty cut & dried. Dynamic linking is more complicated and as far as I know there's never been a court case that really spelled out the limits, and I doubt there would be - there still isn't a hard standard for music or written works. The main legal weakpoint of the GPL is actually in an area where it is overly permissive - distribution within an organization is absolutely considerd "distribution" under copyright law and should invoke the GPL, and I'm not sure why they think it shouldn't.

      Not to mention that the FSF's take on the issue of libraries and derived works is entirely different than every commercial library vendor's!

      This is totally false and you won't find any commercial library vendors saying that you don't owe them money because you only dynamically linked to thier library, or because you didn't distribute it.

    45. Re:Interestingly... by jemfinch · · Score: 1
      But when Qt is using GPL, suddenly the GNU zealots turn around and say, hey that's bad, you can't write proprietary software with it!

      Those aren't the GNU zealots saying that. At least that much should be obvious to anyone who considers other people to be even remotely rational: the GNU zealots are just fine with the GPL. It's the ones who aren't GNU zealots that are complaining about QT being GPLed.

      ("Insightful", my arse--think "mistaken" and "vitriolic")

      Jeremy
    46. Re:Interestingly... by Anonymous Coward · · Score: 0

      Qt started out with a commercial license for all platforms and a GPL license for Linux. Criticism of the use of Qt for the KDE project is what started the GNOME project and their use of GTK. Many loud and annoying voices claimed that it was wrong to rely on Trolltech to develop Qt and that if Trolltech was sold or if their business failed, then the GPL version of Qt could no longer be available.

      Trolltech signed a pact with KDE dictating that there would always be a GPL Qt on Linux and that if Trolltech were to collapse financially or bought out by a third party then control of the Qt/GPL source goes to the KDE maintainers.

      Many people, who don't even use Qt in the first place, continued to whine that there was no GPL version of Qt across all platforms and that the commercial licenses for Qt were too high. This is when Trolltech, as of version 4, released a GPL version of Qt for Windows.

      Technically, I think Qt is much better than GTK+, as Qt from the start has been a well thought out project developed by a business with clear business goals. GTK+, on the other hand, is a hodge podge of ideas developed for the main goal of offering an alternative to Qt. GTK was chosen not because of it's technical merits, but because when GNOME needed a toolkit, GTK was easy for them to take over.

    47. Re:Interestingly... by JBMesserly · · Score: 2

      But when Qt is using GPL, suddenly the GNU zealots turn around and say, hey that's bad, you can't write proprietary software with it!

      I don't think "GNU zealots" would say that. As you correctly point out, Free Software advocates prefer the GPL to LGPL in almost all cases (this link has more information). Now, years ago the Free Software Foundation recommended against use of QT, because back then it was only available under a non-free license. Now that QT is 100% free software (and even better, under the GPL) there's no reason to avoid it.

      Personally, I think QT, MySQL, BerkeleyDB and others are setting a good example. To a Free software developer, they're just another GPL-compatible software library ready for reuse. To a proprietary software developer, they're just another piece of software that has to be licensed commercially. From QT's perspective, they get testing/improvements/fixes/more free software from Free software developers, and licensing fees from proprietary software developers. Everyone wins.

    48. Re:Interestingly... by crucini · · Score: 1
      How could you fail to notice the fact that anything using GPL stuff has to be under the GPL?

      Not exactly. You can write a closed-source app and distribute it with Linux as one product. Linux stays GPL'd and you are still obliged to provide source code to Linux. The GPL does not "infect" your app just because they were distributed together.

      MySQL is different.
    49. Re:Interestingly... by Pecisk · · Score: 1

      (DISCLAIMER: I am not a layer)

      I didn't read it MySQL AB claims, but my pick is that claim doesn't hold any legal waters, because only way they can protect their code is copyright. If I write my own code to communicate with server, it is not derative work, because...well, it's not. Protocol is protocol and not software. It is not code and is not covered by copyright law. If I am linking or including mysql libs in my closed software for communication with server, then it is completely other matter.

      They could patent protocol though.

      I have seen such "legal claim and fear" methods to "push" commercial customers to pay about products (when they clearly can be distributable and usable under any commercial offerings as long as source code is provided for GPLed software). It is a little sad that MySQL pratically use such FUD method to get customers.

      --
      user@ubuntubox:~$ stfu This server is going down for shutdown NOW!
    50. Re:Interestingly... by agurkan · · Score: 1
      I'm afraid I could not express myself clearly. I did not say you cannot dual license your code. Of course you can.

      What I tried to say was, you cannot have a term in your dual licensing such as "You can either buy a license from us and do whatever you want, or you can use the software under the terms of GNU GPL, but then only non-commercially". This is incompatible with GNU GPL. If you are licensing your code under GNU GPL, then you cannot attach further strings, like "you cannot sell the derivative works of this code". Of course in principle you can write a license equivalent to GNU GPL and modify it to disallow commercial use (or better yet, you can use an appropiate CC license).

      From a legal point of view, if somebody accuses me of copyright infringement and I point out that the piece of code I use is available elsewhere with terms I am not violating, their case would go right out of the window. There might be a catch though, if when I bought the code I entered into a contract which prohibits me from using the code in certain ways, e.g., releasing it under GPL, they would have a case for violation of this contract.

      Yes, you can rely on the above advice and feel free to sue me if it gets you in trouble. I do not live in US though :-) Here everybody gives advice to everybody and if you get something for free and complain, people will not be very sympathetic.

      --
      ato
    51. Re:Interestingly... by online-shopper · · Score: 1

      QT should be the preferred GUI toolkit of the FSF, the LGPL is the *LESSER* GPL ( http://www.gnu.org/copyleft/lesser.html ) and the FSF advocates using the GPL even on libraries ( http://www.gnu.org/licenses/why-not-lgpl.html ). So any FSF sponsored projects should be converting now.

    52. Re:Interestingly... by crucini · · Score: 1

      The difficulty is in the word "using". I can "use" Linux as a platform for a closed-source application without GPL virality. Why? Because glibc is lgpl'd. However I can't do this with MySQL. Why? It's not because of the licensing status of the server - it's because the client libraries are surprisingly GPL'd, not LGPL'd.

      So, I agree that while I don't blame the GPL, its interesting to see developers fall into this trap MySQL has created. Actually, I've only seen them back off from using MySQL, not fall into the trap.

    53. Re:Interestingly... by Arker · · Score: 1

      Yet another reason to shun GTK. As if more were needed.

      --
      =-=-=-=-=-=-=-=-=-=-=-=-=-=-
      Friends don't let friends enable ecmascript.
    54. Re:Interestingly... by IntlHarvester · · Score: 1

      This is totally false and you won't find any commercial library vendors saying that you don't owe them money because you only dynamically linked to thier library, or because you didn't distribute it.

      Wrong. Microsoft says just that. Or actually they don't really say anything at all, they just offer you a distribution license and leave it at that.

      The fact of the matter is that if you build an applicaiton that uses (say) the Oracle ODBC driver, you might owe Oracle some money to distribute it, but you don't have Oracle asserting intellectual property rights over the rest of your program. Which is exactly what MySQL is doing.

      as far as I know there's never been a court case that really spelled out the limits

      There is a principle called Abstraction Filtration Comparison Test, but you won't read about it on the FSF's website :)

      --
      Business. Numbers. Money. People. Computer World.
    55. Re:Interestingly... by penguin-collective · · Score: 1

      Don't make the mistake of mixing up "GNU" and "open source".

      I am not.

      Qt is available under the GPL, and therefore it's basically part of that body of software. That's great! If anything the FSF is probably not happy that there's another license option available also, but they don't care how the project is run.

      You are, in effect, arguing that anything that is published under the GPL is in accordance with FSF goals, but that's clearly false. First of all, the FSF is revising the GPL because people are using it for purposes that are not in accordance with FSF goals. Furthermore, the FSF has chosen and recommended licenses other than the GPL when it believed those other licenses to be more in the interest of free software. Given that the FSF has given its blessing to both Gtk+ and the GNU C library and that both of those are under less restrictive licenses, it stands to reason that the FSF would find a less restrictive license for Qt also more sensible (however, I can't speak for the FSF).

      Either way, it is pretty clear that Troll Tech's model is not what the FSF wants to achieve with the GPL because the dual licensing scheme has an incentive system behind it that causes Troll Tech to push for the creation of more closed source software (because that's how they make money).

    56. Re:Interestingly... by penguin-collective · · Score: 1

      GTK+ is no more cheaper than Qt, unless you are talking about closed source projects. Gtker's seem to like to advocate proprietary applications.

      Indeed, they do that, in the same sense that the GNU project does: certain parts of GNU are under licenses that make commercial use possible because, in the long run, that's good for open source.

      Conversely, if Qt managed to become the dominant toolkit on Linux, Linux would be in deep trouble because it would simply not be cost competitive with Windows or Macintosh.

    57. Re:Interestingly... by Anonymous Coward · · Score: 0

      "Yes, QT for windows is GPL, but you must buy commercial licenses because it is GPL and not LGPL."

      That's probably the stupidest assertion of the year here in Slashdot. Please, move it to the "foot in mouth" thread.

    58. Re:Interestingly... by EvilIdler · · Score: 1

      wxWidgets is a tad more free, then - you can use it in commercial products, too.

    59. Re:Interestingly... by arkanes · · Score: 1
      The fact of the matter is that if you build an applicaiton that uses (say) the Oracle ODBC driver, you might owe Oracle some money to distribute it, but you don't have Oracle asserting intellectual property rights over the rest of your program. Which is exactly what MySQL is doing.

      I'd suggest that you re-read the license agreement for the commercial libraries you use (including the Microsoft) ones, then. And *especially* re-read the licenses from the companies that sell third party libraries as thier business (you didn't just mean Microsoft when you said commercial vendor, right?). You can't use thier stuff without paying them. You can't use GPL stuff without "paying" in the form of obeying the license agreement. You can resolve both issues in the same way - by extracting all the original code from your program and shipping it seperately.

      There is a principle called Abstraction Filtration Comparison Test, but you won't read about it on the FSF's website :)

      Well, you will, but it's not relevant to this issue. The very first step of the test is to break the program into components - is a dynamically loaded library considered a component? If it is, then theres your infringment right there. How about statically linked? What about more dynamic solutions like runtime library loading? Furthermore, to my knowledge the abstraction/filtration comparison test has never been applied to an "executable", only to source code, but the courts have been quite clear that copyright does cover the binaries.

    60. Re:Interestingly... by Anonymous Coward · · Score: 0

      "Rather than being sanely LGPL'd, the mysql connector libraries are GPL"

      You got it backwards.

      Rather than being insanely LGPL'd, the mysql connector libraries are (were) GPL.

      "which precludes their use in non-GPL codebases"

      And that's exactly why GPL is the sane option. I will share my code with you if you want to share your code with me; I won't code for free just to put money in your pockets.

    61. Re:Interestingly... by mildgift · · Score: 1

      I don't see how it's a trap. It's right on the website, and they tell you the prices up front. The price is reasonable, too.

    62. Re:Interestingly... by turbidostato · · Score: 1

      "Most people that I have worked with cannot tell the difference between the GPL, LGPL, FreeBSD and the MIT license."

      Provided that it is not as if those license where war secrets, or that they tried to be obscure on purpose, I'll bet you work in one of these four environments:
      1/ They are children under six years so they are not expected to fully understand what they read. By the way, you should be in jail. Children that young shouldn't be working.
      2/ You work with poor morons, unable to understand quite simple text documents.
      3/ You work with poor morons, unable to shut up their mouths in order not to look like morons when talking about what they have no idea.
      4/ They are not morons: they have not the sligthest interest about software distribution licenses, either because their jobs have no relation to the matter (ie: a butcher), because they are morons unable to understand the importance of copyrights within the computer industry, or because they are mischevious people that have other things they consider more important than their duty (like a government contractor mor interested in the money going under the table than what's good for society).

    63. Re:Interestingly... by turbidostato · · Score: 1

      "The fact of the matter is that if you build an applicaiton that uses (say) the Oracle ODBC driver, you might owe Oracle some money to distribute it, but you don't have Oracle asserting intellectual property rights over the rest of your program. Which is exactly what MySQL is doing."

      WHAT???

      So you really think that if I take some MySQL code, I modify it and then distribute my modification MySQL AB is going to tell people that my distribution is authored by MySQL? Or do you think that MySQL AB is going to say that it is my code copyright owner?

      Well, the case is that if I do so, all MySQL will tell me is "you can distribute that derivative work only under my rules or I will sue you" quite curiously *exactly* the same that Oracle would do.

    64. Re:Interestingly... by Jerry · · Score: 1


      Conversely, if Qt managed to become the dominant toolkit on Linux, Linux would be in deep trouble because it would simply not be cost competitive with Windows or Macintosh.


      IF Qt manged to become the dominate toolkit on Linux? What planet to you live on?

      I guess you haven't noticed that KDE has been and still IS the dominate Desktop on Linux and KDE is written using the GPL version of QT. Even when Novell announced it was switching to GNOME the backlash was so great they had to reverse themselves.

      KDE is written under the GPL using the GPL version of QT (read ZERO $ licensing costs), which helps Linux to be VERY COMPETITIVE on the GUI desktop against XP and OSX.

      I just upgraded my SimplyMEPIS 3.4.2 distro to KDE 3.5 and it is, IMO, far ahead of XP and the equal of OS X. I can even theme my desktop to look like OS X if I wanted to.

      BTW, have you also noticed that the VAST MAJORITY of projects on SourceForge are built using QT? Why do you suppose that is? Could it be that the QT widget set is more mature, richer and easier to use?

      Have you personally compared the QT Signal/Slot technology against the GTK++ callback functionality by doing some actual coding? I doubt it. Just to give you a clue, why don't you install Glade (and everything else GTK++ requires) and QT 4.1.0 GPL, then use Glade and Qt-Designer to write the same simple GUI app. Then come back and tell me which one was easier, looked nicer, will be easier to maintain, and will be easier to install. I'll know you've done your home work when you can tell me which files have to be deployed with your GNOME executable and which have to be deployed with your QT executable, to a serever that has NEITHER GNOME nor KDE installed, for both the Linux and XP platforms.

      Why is KDE more popular? Could it be that GTK++ requires wxWindows (or what ever it's calling itself these days), Perl, and Python in order to use it effectively. And God forbid that your upgrade of GTK++ require's a version of wxWindows or Python or Perl that isn't availabe in a deb or rpm for your particular distro. I ran into that mouse trap while evaluating widget sets for our in house applications. Needless to say, we went with QT. I just completed a major app using QT 4.1.0. The source will compile unchanged on XP or Linux and works against either Oracle or PostgreSQL 8.1. The project began under QT 4.01 and upgrading to 4.10 was childs play.... no version problems at all.

      --

      Running with Linux for over 20 years!

    65. Re:Interestingly... by m50d · · Score: 1

      And the license was renamed to indicate that it isn't particularly for libraries.

      --
      I am trolling
    66. Re:Interestingly... by IntlHarvester · · Score: 1

      quite curiously *exactly* the same that Oracle would do.

      No it isn't.

      --
      Business. Numbers. Money. People. Computer World.
    67. Re:Interestingly... by kryonD · · Score: 1

      "If you make an application using a GPL library your application is a derrived work, which means it is also GPL."

      Uhh....not even close.

      If I use Qt to build a UI for my application, I can licence my app however I darn well please. I only need to include the GPL as an additional license for the Qt portion of my app. An application to balance my check book is not in any way, shape, or form derrived from Qt. However, if I take Qt and add some bells and whistles to it and then package it as "Qt Plus Bells and Whistles", then that must be GPL because it is in fact a derrived work.

      --
      I've dirtied my hands writing poetry, for the sake of seduction; that is, for the sake of a useful cause. --Dostoevsky
    68. Re:Interestingly... by IntlHarvester · · Score: 2, Interesting

      No, I can ship a closed-source software product designed to use the Microsoft or Oracle ODBC drivers without having to either distribute the ODBC drivers or pay a nickle to Oracle or MS. Sure, the enduser is paying them, but that's likely why they want to use my software in the first place.

      However, if I understand the MySQL/FSF position correctly, I can't do the same thing with MySQL drivers because my application is considered to be a "derived work" of MySQL. Neither Oracle or MS claim any rights over my software program, but MySQL does. This may or may not be legally correct, but it is certainly a "gotcha" for folks used to commercial library licences.

      --
      Business. Numbers. Money. People. Computer World.
    69. Re:Interestingly... by penguin-collective · · Score: 1
      IF Qt manged to become the dominate toolkit on Linux? What planet to you live on? I guess you haven't noticed that KDE has been and still IS the dominate Desktop on Linux

      I haven't noticed. In fact, if you have data to support that claim, do share it.

      In any case, lots of people use KDE for file management and launch and use non-Qt applications as their primary applications (e.g., Firefox, Thunderbird, Gaim, OpenOffice, Eclipse, etc.). What KDE is written is about as important as what icewm or xterm is written in.

      BTW, have you also noticed that the VAST MAJORITY of projects on SourceForge are built using QT? [...] Why is KDE more popular?

      Doesn't look that way to me. Actual data:
      User Interface
            Graphical
                Carbon (Mac OS X) (124 projects)
                Cocoa (MacOS X) (2015 projects)
                Framebuffer (58 projects)
                Gnome (2364 projects)
                Handheld/Mobile/PDA (1150 projects)
                Java AWT (224 projects)
                Java Swing (1758 projects)
                Java SWT (343 projects)
                KDE (1900 projects)
                NET/Mono (472 projects)
                OpenGL (449 projects)
                TabletPC (8 projects)
                Win32 (MS Windows) (16458 projects)
                X Window System (X11) (10023 projects)
    70. Re:Interestingly... by joto · · Score: 1
      If I use Qt to build a UI for my application, I can licence my app however I darn well please. I only need to include the GPL as an additional license for the Qt portion of my app. An application to balance my check book is not in any way, shape, or form derrived from Qt. However, if I take Qt and add some bells and whistles to it and then package it as "Qt Plus Bells and Whistles", then that must be GPL because it is in fact a derrived work.

      You are of course free to interpret the text of the GPL in any way you wish. But what matters isn't your interpretation, it's the interpretation of the court! And while the GPL has yet to really be tested in the court, it has been inspected by lots of lawyers! So many, in fact, that some businesses are willing to base their entire business model on it. Trolltech is one such example.

      I'm not going to argue with you. Go ahead, try your interpretation, and watch Trolltech sue you to the ground.

    71. Re:Interestingly... by doctormetal · · Score: 1
      If I use Qt to build a UI for my application, I can licence my app however I darn well please. I only need to include the GPL as an additional license for the Qt portion of my app.

      Yes, but the QT code must be separate from the application for this to work. It may not be part of the applications executable, as stated in the LPGPL license:
      When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library.


      An application to balance my check book is not in any way, shape, or form derrived from Qt.

      Looking at the above text, it is if you link it against the qt libraries.
    72. Re:Interestingly... by namekuseijin · · Score: 1

      "Theo DeRaadt in particular, who is strongly against the GPL because he wants his work to be freely available even to those who'd not make public the source"

      the man is a humanitarian...

      --
      I don't feel like it...
    73. Re:Interestingly... by Anonymous Coward · · Score: 0

      "Commonsense would dictate if Gaim can implement a proprietary protocol for interoperability, than anyone could implement MySQL's protocol for the same reason."

      Of course yes!

      And that's why you can code a client-side library for MySQL access whenever you want, public, open, privative or what you'd like.

      But if you *use* GPL source code *within* your application (as in loading a GPLd DLL), then your codebase will have to be GPLd as soon as you distribute it.

      In other words, you are free to mimic mysql-client on whatever license, but you must distribute under the GPL if you are using mysql-client's code.

    74. Re:Interestingly... by arkanes · · Score: 1
      Neither Oracle or MS claim any rights over my software program, but MySQL does.

      It would be more correct to say that they do not *exercise* any rights over your software program. Re-read those license agreements. For your info, you do not write code that links against "the Oracle ODBC driver", but rather against the system ODBC libraries. Oracle (and Microsoft, for that matter) provide an ODBC driver that links into the the system ODBC and thats why your end user is responsible for aquiring the driver. Whoever writes the Oracle ODBC driver is responsible for abiding by the terms of the Oracle client library license, just like someone writing a MySQL ODBC library must abide by the terms of the MySQL license. Note that writing to an ODBC interface, and your clients using MySQL via it's (GPL) ODBC driver, does *not* require you to abide by the GPL.

      However, if I understand the MySQL/FSF position correctly, I can't do the same thing with MySQL drivers because my application is considered to be a "derived work" of MySQL.

      You can write code that works with MySQL via an ODBC interface and your only obligation is to whoever wrote your ODBC system libraries, but if you use the MySQL libraries directly (the so-called "native interface"), then your work is a derived work of the MySQL client libraries, which are GPLed. The *exact* same thing happens with the Oracle client libraries, except of course that the license is not GPL.

      This may or may not be legally correct, but it is certainly a "gotcha" for folks used to commercial library licences.

      I can't help but think that you don't actually work much with real honest to goodness commercial libraries and are really thinking of system libraries that ship with other products (like Windows). There are many commercial library vendors and they absolutely claim rights over your finished product - many of them require royalties.

    75. Re:Interestingly... by CAIMLAS · · Score: 1

      Yeah, but Qt doesn't have two important features which GTK+ boasts, namely:

      - Has a file dialog that is as un-intuitiive and cumbersome to navigate as possible; ironically, it is very similar to the file dialog in OS X.
      - Provides users a feeling of superiority due to the previous mentioned feature

      --
      ~/ssh slashdot.org ssh: connect to host slashdot.org port 22: too many beers
    76. Re:Interestingly... by MarkJenkins · · Score: 1
      You would be surprised by the number of developers that I know that developed their apps using MySQL and then had to pay for the comercial license many months later because they didn't read the fine print. Lets just say that if they had known beforehand they would have charged a little more for their applications ;-)

      They should of considered another option, they could of respected thier customer's freedom by compling with the license and they would not have had a need to give MySQL AB anything.

    77. Re:Interestingly... by Pseudonym · · Score: 1

      Qt, however, has one major drawback: It was designed in an era when C++ was a different beast than it is today. And as a result, it's hard to use today.

      In particular:

      • It's a framework, not a library.
      • It's not exception-safe.
      • It duplicates a lot of functionality which is standard C++ (e.g. extensible arrays, strings), and as a result, doesn't interact well with libraries which do use the standard. (One Qt developer told me once that Qt is "an alternative to the STL". Translation: "You can either write standard C++, or you can write Qt.")

      In summary, it's great if all you want to write is Qt code. As soon as you want any other library as well (e.g. actual functionality), you end up writing so much glue code that your actual application gets obscured. MFC, anyone?

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    78. Re:Interestingly... by MarkJenkins · · Score: 1

      > distribution within an organization is absolutely considerd "distribution" under copyright > law and should invoke the GPL, and I'm not sure why they think it shouldn't. Okay, what if distribution within an organization is "distribution"? One entity (A) distributes a copy of the software to another entity (B). A must pass on its freedom to B as required by the license. I hope you don't think A is now also required to post the code publicly, (such as on sourceforge) that is a myth about copyleft. A is only required to pass on the same freedoms to B. It turns out that A and B are the same organization. As A=B, this whole exercise was a bit useless. A/B in fact has no possible way to deprive itself of freedom. A/B has no way to violate the license when distributing to itself.

    79. Re:Interestingly... by MarkJenkins · · Score: 1

      Ooops, sorry for the formating, forgot to switch back to plain ol text

      > distribution within an organization is absolutely considerd "distribution" under copyright
      > law and should invoke the GPL, and I'm not sure why they think it shouldn't.

      Okay, what if distribution within an organization is "distribution"? One entity (A) distributes a copy of the software to another entity (B). A must pass on its freedom to B as required by the license. I hope you don't think A is now also required to post the code publicly, (such as on sourceforge) that is a myth about copyleft. A is only required to pass on the same freedoms to B. It turns out that A and B are the same organization. As A=B, this whole exercise was a bit useless. A/B in fact has no possible way to deprive itself of freedom. A/B has no way to violate the license when distributing to itself.

    80. Re:Interestingly... by MarkJenkins · · Score: 1

      As a self confessed "free software zealot", you sure as hell won't catch me saying “hey that's bad, you can't write proprietary software with it!” Whoever says such a thing is obviously not a true believer.

    81. Re:Interestingly... by waveclaw · · Score: 1
      MySQL even claim that if you implement your own client, it speaks the MySQL protocol, and as such is a derivative work of the MySQL server and so must be made available under the GPL.


      It'd be interesting to see if such a "claim" would ever hold up in court.

      United States code 17 section 1125(c) permits violations of copyright and patent for 'purposes of interoperability' such as a client that speaks the MySQL protocol. But you have to follow the money when any such case goes to court. Ask the bnet people when they went to court over a server that implemented the protocol in Blizzard's Battle.net online gaming system.

      (IMHO if you lose such a lawsuit, it's one more nail in the coffin of the public commons and another hayday for corporate malfeanse.)
      --

      "You cannot have a General Will unless you have shared experiences. You cannot be fair to people you don't know."
    82. Re:Interestingly... by MarkJenkins · · Score: 1
      Qt started out with a commercial license for all platforms and a GPL license for Linux. Criticism of the use of Qt for the KDE project is what started the GNOME project and their use of GTK. Many loud and annoying voices claimed that it was wrong to rely on Trolltech to develop Qt and that if Trolltech was sold or if their business failed, then the GPL version of Qt could no longer be available.

      You missed a vital part of the history.

      The original Qt was not under the GPL, it was under a license that was not free software and was not open source. Thus to use KDE, a user had to give up their freedom and use Qt. GNOME was started for this reason. If Qt had been available under a free software license on free platforms at that time, GNOME would not have been started.

    83. Re:Interestingly... by MarkJenkins · · Score: 1

      You can use the version of Qt under the GPL for commercial work too.

    84. Re:Interestingly... by afroborg · · Score: 1
      You would be surprised by the number of developers that I know that developed their apps using MySQL and then had to pay for the comercial license many months later because they didn't read the fine print.


      Then they are idiots aren't they?

      Seriously, how could you go through the whole of the MySQL site to get to the download, without noticing the words "purchase", "buy", and "license" all over the show? Even if you hadn't read the license (which I still maintain makes you an idiot if you plan on using it commercially) the site is more than explicit about the dual licensing scheme.
      MySQL Products are available under the "dual licensing" model. Under this model, users may choose to use MySQL products under the free software/open source GNU General Public License (commonly known as the "GPL") or under a commercial license. ISVs and Resellers, who are embedding and reselling MySQL as part of their own commercial solutions, can purchase a MySQL commercial license.
      From http://dev.mysql.com/downloads/mysql/5.0.html

      If you use anyone elses IP as part of your product without checking that you have licence to do so you are asking for it.
      --
      my sig could kick your sig's arse...
    85. Re:Interestingly... by Knuckles · · Score: 1

      What does that have to do with anything? Base libraries like GTK+ still have to be liberally licensed, otherwise app developers have to deal with a lot of problems. While for a major app, GPL is mostly the better choice.

      --
      "When I first heard Daydream Nation it quite frankly scared the living shit out of me." -- Matthew Stearns
    86. Re:Interestingly... by arkanes · · Score: 1
      It turns out that A and B are the same organization.

      This is incorrect. B is an employee or other person within an organization. If your employer uses GPL-based software, and it is provided to you, you have the right to get the source for it, and you have the right to re-distribute it outside the organization. If every person within an organization was considered the same legal entity, then corporations would only need to purchase 1 license for every piece of software they used, one copy of every book they need, and it would be legal to set up music servers that streamed music off corporate-purchased CDs to everyone in the company without paying any further fees. Try doing any of those things and see how far you get.

    87. Re:Interestingly... by Anonym0us+Cow+Herd · · Score: 1
      If you use a LGPL library, your application does not have to be open source, but it must mention somewhere it uses the library.

      Um, please read the LGPL text.

      If you use an LGPL library you have more obligations than to simply "mention somewhere" that you use the library.

      You must make the source code of the library available in exactly the same way(s) as if the library were GPL.

      You must provide the end user with the ability to re-link a different version of the LGPL library with your code. That means you must provide linker-ready object modules.
      --
      The price of freedom is eternal litigation.
    88. Re:Interestingly... by MarkJenkins · · Score: 1
      This is incorrect. B is an employee or other person within an organization. If your employer uses GPL-based software, and it is provided to you, you have the right to get the source for it, and you have the right to re-distribute it outside the organization.

      No. The entity owning the copy is the employer, the employee is just a person being paid to push buttons for the company, they do not own company assets. Only the owner of the copy gets the freedoms connected to the license, and the company is the entity that owns the copy.

      If an employer explicitly gave an employee a copy and said "you are the owner of this copy, not us", then you are right, A and B are now separate entities and A must pass on freedoms to B. In this case it is no longer relevant that B works for A, the exchange is no longer intra-organizational. That would be unusual, normally employers say "we own this assets, your job is to operate it for us".

      Let us entertain the absurd siltation where corporation A (the only owner of a copy) gives employee B access to its copy so B can get some work done. B could try complaining to the copyright holder, C, "A won't give me access to the source", and C will tell B to "shut the fuck up and go back to work".

      If every person within an organization was considered the same legal entity, then corporations would only need to purchase 1 license for every piece of software they used,

      A corporation can buy one license if they want, copyright law would just restrict use of it to one machine at a time. Unfortunately proprietary software companies add additional restrictions via their licenses, and they can pressure their users to accept terms concerning the # of employees, # of computers, or # of cpus.

      one copy of every book they need,

      A corporation can buy one copy of a book, leave it on a bookshelf and allow multiple employees to access it. Absolutely legal.

      and it would be legal to set up music servers that streamed music off corporate-purchased CDs to everyone in the company without paying any further fees.

      The prohibition of this under copyright law has nothing to do with entity/employer/employee distinctions. Streaming the music involves making a copy, copyright law regulates the making of copies, and fair use/fair dealing does not provide an exception allowing copying in that case.

    89. Re:Interestingly... by arkanes · · Score: 1
      The prohibition of this under copyright law has nothing to do with entity/employer/employee distinctions. Streaming the music involves making a copy, copyright law regulates the making of copies, and fair use/fair dealing does not provide an exception allowing copying in that case.

      You are absolutely correct and this is why distribution of GPLed software within an organization should/would trigger the GPLs conditions. Distribution of software involves making a copy, copyright law regulates the making of copies, and fair use does not prove an exception allowing copying in that case. The GPL does, but only with certain limitations, including an offer to provide the source and not being able to restrict further distribution. Either distribution within a company is "copying" under copyright law or it is not - it's not one thing for GPLed software and another for everything else.

      You've got an unsupported and unsupportable double standard here. When I get a company PC, and it has software loaded on it, that software is being *distributed* to me. If it's not distribution (and if it doesn't trigger GPL provisions, it cannot be distribution), then copyright law cannot apply, and while a software EULA may (questionably) apply, software or music with no EULA should be just as freely "distributable" as GPL software.

    90. Re:Interestingly... by MarkJenkins · · Score: 1
      When I get a company PC, and it has software loaded on it, that software is being *distributed* to me.

      Distribution is only taking place if the company says "you are now the owner of this PC, and you are the owner of this software copy". By own, I mean that if you quit the job you could take the PC and the software copy with you.

      If it's not distribution (and if it doesn't trigger GPL provisions, it cannot be distribution), then copyright law cannot apply, and while a software EULA may (questionably) apply, software or music with no EULA should be just as freely "distributable" as GPL software.

      The company is the owner of the original copy, and if it makes a second copy it also owns that second copy. Yes, this activity is regulated by copyright law, and the company only gets to do this because the license allows them to. The second act of them providing an employee with the computer (while maintaining ownership of this computer), does not involve copyright law.

      When the company makes a copy of music by streaming it, copyright law regulates the activity.

    91. Re:Interestingly... by jma05 · · Score: 1

      Uh! Did you even read the parent post?

    92. Re:Interestingly... by IntlHarvester · · Score: 1

      Note that writing to an ODBC interface, and your clients using MySQL via it's (GPL) ODBC driver, does *not* require you to abide by the GPL.

      MySQL disagrees and claims the "viral" nature crosses the system ODBC or JDBC boundry:
      http://www.mysql.com/company/legal/licensing/comme rcial-license.html

      Plus your disagreement with MySQL defeats the claim that "If you make a 5 minute research at the FSF web page you'll know more than enogh"...

      > many commercial library vendors and they absolutely claim rights over your finished product - many of them require royalties

      Their legal principle is distribution rights of their software, not "derived works" rights over your software. Your are correct that the net-effect is the same, but the argument is quite different.

      --
      Business. Numbers. Money. People. Computer World.
    93. Re:Interestingly... by arkanes · · Score: 1
      MySQL disagrees and claims the "viral" nature crosses the system ODBC or JDBC boundry: http://www.mysql.com/company/legal/licensing/comme rcial-license.html

      MySQL claims that using MySQL via ODBC means you need to either abide by GPL or use a commercial license for MySQL (which I find questionable, but okay) but what I was talking about was the GPL "infecting" client software, not finalized solutions. It does *not* mean that any software anywhere that uses ODBC must be GPL because you might use it with MySQL.

      Their legal principle is distribution rights of their software, not "derived works" rights over your software. Your are correct that the net-effect is the same, but the argument is quite different.

      Untrue. The legal principle is use of the software, which is creating derived works (the only use for a library). Otherwise, for example, you could freely write programs using commercial third party libraries provided you didn't distribute them, which is not true.

    94. Re:Interestingly... by Anonymous Coward · · Score: 0

      * It's a framework, not a library.
      Which means that all the standard stuff you would write more than once is done for you. The idea is that you only have to code the parts of your app that are different from a an empty appliation that does nothing.

              * It's not exception-safe.
      By defualt it is built witout EH due to overhead. You can build it with EH turned on, and it is fine.

              * It duplicates a lot of functionality which is standard C++ (e.g. extensible arrays, strings), and as a result, doesn't interact well with libraries which do use the standard.
      Really? I was under the inmpression that (at least in Qt v4.x) STL and QT iterators can be used interchangeably, and STL support can be compiled in as an option.

      I asked the Trolls about this at their Qt Developer Days conference this summer, and was told part of the reason they still use their own container libraries is that they need a library that works across compilers and platforms in predictable consistant ways. On many systems, STL has edge conditions that vary.

      Besides, there is a lot of (good/solid/old) code in QT that has been working properly since before the C++ standard library was called the STL. I would rather they sepnd their finite resources on fixing bugs and adding features while keeping the API stable, than waste time trying to keep their code "pure."

      ** (One Qt developer told me once that Qt is "an alternative to the STL". Translation: "You can either write standard C++, or you can write Qt.")
      As mentioned above, you can do both. Choice it not always a bad thing...

    95. Re:Interestingly... by IntlHarvester · · Score: 1

      Well, if I buy a "finished solution" and want to use MySQL with it, then I'm infected and have to pay. Oracle says I have to pay a per-seat charge for copying privileges, which I understand, but I've read the FSF website back to front and I don't get MySQL. That's really my point.

      As for whether commerical library licences rely on "derived works" claims, I'd like to see you find one, because I can't. And I have seen "buy you own copy of library X" used by commercial vendors .. it's common for VB and Foxpro apps.

      --
      Business. Numbers. Money. People. Computer World.
    96. Re:Interestingly... by Brandybuck · · Score: 1

      The 'G' in "GTK+" and "GNOME" stands for "GNU". GTK+ zealots are GNU zealots. When GTK+ zealots criticize Qt for not being LGPL, you are seeing hypocrisy in action.

      --
      Don't blame me, I didn't vote for either of them!
    97. Re:Interestingly... by Arker · · Score: 1

      Uh, yeah, did you? Read this too, if you reread it and still don't see what I'm talking about.

      --
      =-=-=-=-=-=-=-=-=-=-=-=-=-=-
      Friends don't let friends enable ecmascript.
    98. Re:Interestingly... by Pseudonym · · Score: 1
      * It's a framework, not a library.
      Which means that all the standard stuff you would write more than once is done for you. The idea is that you only have to code the parts of your app that are different from a an empty appliation that does nothing.

      I agree that Qt is a fine choice if you want to write an application that differs in a small way from an empty application that does nothing. :-)

      Let me rephrase less flippantly: Qt is a fine choice if you want to write an application which is almost all GUI. Any time you need to add nontrivial non-GUI functionality, it doesn't play nice.

      The reason is that it takes over your program. If everyone wrote their libraries as frameworks, then you would never be able to integrate two or more libraries. Qt is the one that's not playing nice.

      I don't know about you, but the only parts of my app which are different from an empty application that does nothing is the stuff inside main(), and the stuff that it calls.

      Contrary to popular belief, it's not difficult to write something which does pretty much what you want, but is expressed as a library, not a framework. Frameworks are for OO purists, mostly because there is no other option. C++ is a multi-paradigm language, not an OO language.

      It's not exception-safe.
      By defualt it is built witout EH due to overhead. You can build it with EH turned on, and it is fine.

      That's not what I mean by "exception-safe".

      I've seen the Qt source code. It's full of this:

      QLabel *label = new QLabel;
      QScrollBar *scrollBar = new QScrollBar;

      If the second allocation fails (which, according to the C++ standard, happens by throwing std::bad_alloc), the first allocation leaks. That is not exception-safe.

      This is not a question of purity, it's a question of correctness and interoperability. If a well-behaving exception-throwing third-party library throws an exception, it should not cause Qt to leak. If it does, Qt is broken.

      Really? I was under the inmpression that (at least in Qt v4.x) STL and QT iterators can be used interchangeably, and STL support can be compiled in as an option.

      I believe that's true of the containers now, finally, but IIRC it's still not true of stream I/O and strings.

      For the record, my complaint here is not that Qt is poor quality. My complaint is that it is a relic of an era of C++ which no longer exists. The really unfortunate part is that Qt doesn't really have much competition: It's still the best GUI toolkit for C++. This makes the situation all the worse, because it interferes so badly with modern C++ code.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    99. Re:Interestingly... by Anonymous Coward · · Score: 0

      I will not support your shitty database then. Seriously, what the fuck does trying to prevent people from supporting your database get you? Its the CLIENT side libraries, all it lets you do is connect to the database. Making it GPL is completely retarded.

    100. Re:Interestingly... by jma05 · · Score: 1

      Parent says...
      You can't use Qt if your application does not happen to be GPL, but with GTK you can.

      You say...
      Yet another reason to shun GTK. As if more were needed.

      I say...
      Uh?

      You point to...
      "
      Using the ordinary GPL is not advantageous for every library. There are reasons that can make it better to use the Library GPL in certain cases. The most common case is when a free library's features are readily available for proprietary software through other alternative libraries. In that case, the library cannot give free software any particular advantage, so it is better to use the Library GPL for that library.

      This is why we used the Library GPL for the GNU C library. After all, there are plenty of other C libraries; using the GPL for ours would have driven proprietary software developers to use another--no problem for them, only for us.

      However, when a library provides a significant unique capability, like GNU Readline, that's a horse of a different color. The Readline library implements input editing and history for interactive programs, and that's a facility not generally available elsewhere. Releasing it under the GPL and limiting its use to free programs gives our community a real boost. At least one application program is free software today specifically because that was necessary for using Readline.
      "

      Now me says...
      I was somehow supposed to figure that was on your mind?

      Now back to the article...
      Qt and GTK are not unique. GUI functionality is available from other sources. So according to RMS, LGPL is better for them rather than GPL. And GTK is LGPL. Now care to explain why that is reason to *shun* GTK?

    101. Re:Interestingly... by Arker · · Score: 1

      I suppose I was in a hurry when I dropped that comment, and didn't expand on it much. But seriously, this is supposed to be a geek-oriented website - I would expect most readers had thought about the issue enough to know what I meant. At any rate, QT and GTK aren't unique in that there are plenty of GUI toolkits available. They ARE, between the two of them at least, unique in that they provide a lot of functionality far beyond a simple GUI toolkit, and they do it across all the popular platforms. But try and think slightly more abstractly here, look at the underlying principles instead of the specific words used in a rather dated article.

      QT is available to free software developers under the GPL. The license problems were real, but they've been fixed for many years. It's also available to developers of proprietary software under another license. This is a business model that free software folks have been advocating for years - and one that Trolltech risked their very existence to prove viable. Free software devs pay to use it in the currency they have - code. Proprietary software developers, unwilling or unable to pay in code, are given the option to pay in a different currency instead. And the payments of the proprietary developers then go to continue Trolltechs work. And let's not forget, QT IS their work - work they've done very well, and work they've wagered to the hilt on this free software model.

      QT is also the only real competition to GTK. Yes, gui toolkits there are a'plenty, but GUI toolkits that work on all the major platforms and provide the kind of 'desktop' infrastructure access are not.

      Now given this, the only real purpose that could be served by releasing GTK under the Lesser GPL instead of the Greater, is to undercut TrollTechs ability to sell those proprietary licenses, and thus to continue as a profitable business supporting free software. Not a goal I want to support, and not one I can see a reason for anyone outside of the dark side to support, really. It doesn't give free software developers any advantage at all - quite the contrary, and if you reread that article you might discern that THAT is the underlying logic to the recommendations there.

      --
      =-=-=-=-=-=-=-=-=-=-=-=-=-=-
      Friends don't let friends enable ecmascript.
    102. Re:Interestingly... by jma05 · · Score: 1

      >> I suppose I was in a hurry when I dropped that comment, and didn't expand on it much. But seriously, this is supposed to be a geek-oriented website - I would expect most readers had thought about the issue enough to know what I meant.

      The problem isn't me not being geeky anough to understand your comment. The problem was the lack of presentation of flow of logic from parent's comment to yours, especially when the parent presented it as an advantage and you as a disadvantage and implied the arguments were in agreement. Being in a hurry explains it better.

      >> They ARE, between the two of them at least, unique in that they provide a lot of functionality far beyond a simple GUI toolkit, and they do it across all the popular platforms.

      wxWindows goes beyond being just a GUI toolkit.

      >> Yes, gui toolkits there are a'plenty, but GUI toolkits that work on all the major platforms and provide the kind of 'desktop' infrastructure access are not.

      No they are. Toolkits don't provide the desktop infrastructure. You build it on top of them.
      Qt - KDE
      GTK - Gnome, IceWM
      Fox - FoX Desktop
      FLTK - EDE

      >> Now given this, the only real purpose that could be served by releasing GTK under the Lesser GPL instead of the Greater, is to undercut TrollTechs ability to sell those proprietary licenses, and thus to continue as a profitable business supporting free software. Not a goal I want to support, and not one I can see a reason for anyone outside of the dark side to support, really.

      I have been using cross platform GUI toolkits for about 5 years now. The very reasons why GTK became popularized were the licensing issues with Qt. Qt's adoptation of GPL is very recent in it's long history and when I was evaluating GUI toolkits, Qt simply gave no choice. My clients among other platforms had to run on MS Windows. There wasn't a Qt/GPL for Windows then. So I went with GTK, wxWindows, Fox and FLTK not to mention TkInter.

      GTK (And why single out GTK. That applies to other toolkits as well) never tried to hurt Qt. It did something that TrollTech refused to do for a long time (and I am sure they had their business reasons). There is nothing 'dark side' about GTK's licensing and you will find that FSF agrees.

    103. Re:Interestingly... by civilizedINTENSITY · · Score: 1
      If entity (A) distributes "a copy of the software" to another entity (B), then what matters is did said distribution of "software" mean binaries, or binaries plus sourcecode. If you distribute sourcecode, then that ends it. If not, then you are required to make the source code available "to all third parties". So if A distributes to B (source and binaries), and B distributes to C (source and binaries), and C distributes to D *just* binaries, then persons E thru ZZ have the right to ask C for the sourcecode. If C doesn't make it available, then C violated the distribution to D, because the only thing that gave C the right to distribute to D was the GPL. The GPL is simple, just read it.
      3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:

      a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

      b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

      c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)

      The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.

      If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.
      Now what is true is that person D only recieved binaries, and so person D only has to pass along the offer from person C. However, any third person has the right to sourcecode from person C, because they didn't ship sourcecode to person D. This means people who never even recieved the binaries have a right to ask person C for the sourcecode.

      So if someone downloads ReallyCoolApplication in binary form, they can freely distribute it as long as they also distribute the information they recieved as to the location of the sourcecode. However, if someone downloads sourcecode and modifies it to make it EvenCoolerApplication, then at that point they can no longer just give information about how to get ReallyCoolApplication. They either distribute the EvenCoolerApplication source with the binary, or distribute binaries and make the sourcecode available to "any third party".

      Thus, by not considering "in-house" distribution to be distribution, it is possible for the binaries of in-house modified GPLed software to be distriubted "in-house", and people like me (a "third party") don't get their modified sourcecode.
  5. Distribution on Windows by yogikoudou · · Score: 2, Interesting

    GTK is fine, but as long as it takes a few megabytes to download, only Linux applications will use it. Take a look at The GIMP for example: it is ok to download GTK because it is a big program, but who would develop a small application ( 1MB) if it depends on 6-8 MB for GTK ? On the other hand, Linux users rejoice, as they have good distributions with good dependency resolvers.

    1. Re:Distribution on Windows by Max+Threshold · · Score: 5, Insightful

      Yeah, right. How big is the latest vbrunxxx.dll?

    2. Re:Distribution on Windows by mikkom · · Score: 1

      6-8 MB? Just take a look how big installer packets are today, 6-8MB is absolutely nothing.

    3. Re:Distribution on Windows by ardor · · Score: 0, Offtopic

      I develop in Windows and Linux, and would NEVER use Gtk in Windows. I tried. If you want to do cross-platform GUI development, I recommend to use wxWidgets, ftlk or fox instead (or Qt if you got the money).

      --
      This sig does not contain any SCO code.
    4. Re:Distribution on Windows by KiloByte · · Score: 4, Insightful

      vbrunxxx.dll? That's nothing. Try the .NET runtime, and talk about bloat again.

      --
      The creatures outside looked from Alt-Right to Antifa; but already it was impossible to say which was which.
    5. Re:Distribution on Windows by CaptnMArk · · Score: 2, Interesting

      And currently, I have better experience with GTK+ than WinForms.

      MS still can't do large fonts and resizeable dialogs.

    6. Re:Distribution on Windows by TheLoneCabbage · · Score: 4, Insightful

      No one distributes software on floppies any more. 6-8MB added to your installer isn't a BIG deal. It translates into another 30sec worth of download. If its a burden on anyone, it's a burden on your webservers.

      The Advantage of course is that for that 6-8meg, it installs with virtually no hassles, and all the way back to w95.

      I've dealt with numerous ditribution issues, and while sysadmins are worried about the package size, mostly they are worried about hassle. Try shoe horning .NET apps onto w98 systems (it won't install on anything earlier), it's a 21MB hair ball and a real paint to install. Once my employer made the decision to port their entire app base to .NET, which made development LOTS easier, but we went from a 5meg install to a 30meg nightmare that wouldn't run on w95 no matter what (still an issue believe it or not).

      The GTK pack isn't HUGE and it installs with virtually no problems. If download size is a problem the NSIS2 installer does support on the fly package downloads.

    7. Re:Distribution on Windows by tux_fairy · · Score: 1

      Right... yet, you didn't back your claims up. What's your reason you dilike GTK+ so much?

    8. Re:Distribution on Windows by wysiwia · · Score: 2, Informative
      ... I recommend to use wxWidgets ...

      Biased by my own project wyoGuide (see http://developers.slashdot.org/comments.pl?sid=172 263&cid=14343909) I can say that wxWidgets is probably the best choice for cross-platform development.

      O. Wyss

      --
      See http://wyoguide.sf.net/papers/Cross-platform.html
    9. Re:Distribution on Windows by wysiwia · · Score: 0, Offtopic

      For a user it's simple, just look at some screen shots. On Windows you'll immediately recognize a GTK+ application while you almost can't figure out what's wxWidgets or what's MFC. I've never compared QT but think it's about the same as wxWidgets.

      For the developers it's not that easy since it depends on what features you need. E.g. I'm quite sure if you need drag&drop between any application you're better off with wxWidgets or QT. Choosing between wxWidgets (cheaper) or QT (better supported) should you do yourself. My personal preferences can be found here http://developers.slashdot.org/comments.pl?sid=172 263&cid=14343909.

      O. Wyss

      --
      See http://wyoguide.sf.net/papers/Cross-platform.html
    10. Re:Distribution on Windows by schumaml · · Score: 1

      Size isn't something that bothers many users nowadays. In the past, some have been bothered by the fact that GIMP and GTK+ installers are separate packages. This division is somewhat natural - GTK+ can and is used by other programs as well. Windows' lack of a package management system bites, though, so the current GIMP 2.3 installers come with the ability to detect the possible lack of GTK+ (this was already present in previous versions, in fact) and to download it directly from Sourceforge if needed.

    11. Re:Distribution on Windows by schumaml · · Score: 1

      I for one are quite happy with the look of GTK+ apps on Windows (I rely more on consistency per application than per platform, though), and I also run GTK+ without the MS theme engine on my own systems.

      Some differences might be caused by the fact that a GTK+-based GUI is likely to be based on the GNOME HIG.

    12. Re:Distribution on Windows by Alioth · · Score: 1

      I doubt GTK will require 6-8MB if the developer made a 'dependency pack' for systems that don't come with GTK+.

      Even GNUstep doesn't require that much - the dependency pack for the game, oolite, includes a minimalist GNUstep to support the Objective C runtime and the Foundation, as well as all the required SDL libraries. The resulting autopackage installer for Oolite on Linux is the same size as the .dmg installer for Mac OS X. If a developer is willing to pare a runtime dependency pack down to just what's needed, it can be made quite small.

    13. Re:Distribution on Windows by kentheman · · Score: 1

      .NET 2.0 has resizable dialogs. SQL Server Management Studio uses these throughout the application.

      --
      ... sometimes I fly with the white swan to my Liffey home.
    14. Re:Distribution on Windows by owlstead · · Score: 1

      That depends. Until some time ago (say, 1 month, but I try to forget asap), I was still using a 56 MBit line for internet hookup at my parents home. If I wanted to install a small tool over the internet, the 6..8 MB download would be a pretty big burden. I've already got Java installed for Java applets and applications, and perl for others. But I downloaded those at home and took them with me. It has to be a pretty important app. for me to download GTK+ or take it with me from home...

      Anyway, now it's a pretty cheap (20 euro/month) 700Mbit + ADSL line. So 6..8 MB is nothing anymore. But there is a huge number of people that are still behind a 56Kbit - if you're lucky - modem.

    15. Re:Distribution on Windows by wysiwia · · Score: 0, Offtopic
      I for one are quite happy with the look of GTK+ apps on Windows...

      Sure if you're happy, everything is fine. Unfortunately not everybody thinks like you and from the complains it seems to be the vast majority.

      Some differences might be caused by the fact that a GTK+-based GUI is likely to be based on the GNOME HIG.

      Yes that's the big problem, for cross-platform application you should definitely follow cross-platform guidelines. And that's exactly what I've tried to explain here http://developers.slashdot.org/comments.pl?sid=172 263&cid=14343909

      O. Wyss

      --
      See http://wyoguide.sf.net/papers/Cross-platform.html
    16. Re:Distribution on Windows by eraserewind · · Score: 1

      Not to knock your choice or anything, but as a user I absolutely hate anything developed with wxWidgets when ported to Windows. Perhaps it was just the particular apps that were using it incorrectly, and maybe tons of others use it correctly and I never notice they used it, but (at least where I noticed it) it always felt annoying and somehow wrong. Just not quite behaving as an app should on Windows.

    17. Re:Distribution on Windows by Anonymous Coward · · Score: 0

      I don't know about vbrun but the MFC DLL is less than a meg in size. Compared to GTK it's tiny.

      FLTK is an excellent cross-platform lightweight kit.

    18. Re:Distribution on Windows by Richard+W.M.+Jones · · Score: 4, Informative

      if it depends on 6-8 MB for GTK

      Our cross-platform "hello world" program including Gtk is about 300K compressed in total on Windows.

      Rich.

    19. Re:Distribution on Windows by wysiwia · · Score: 1

      I cannot speak for other developers or other projects but you can send your complains to the wyoguide-users mailing list and I'll see if I can forward any to the appropriate developer. I can't guaranty anything but most developers I know are rather responsive.

      Also you can try out any of my applications of wyoGuide (http://wyoguide.sf.net/) and see if you detect any complains there. I appreciate any feedback, positive or negative, as long as it gives me hints how to improve my software. Please send them to the wyoguide-users mailing list, not everybody reading here might be interested.

      see also http://developers.slashdot.org/comments.pl?sid=172 263&cid=14343909

      O. Wyss

      --
      See http://wyoguide.sf.net/papers/Cross-platform.html
    20. Re:Distribution on Windows by Anonymous Coward · · Score: 0
      6-8MB added to your installer isn't a BIG deal.

      Yes it is. The Firefox installer (for Windows) is 5.0 MB, and keeping it that small is very important to the developers.
      Download size is an important factor in adoption. Keeping the download size small, especially below a mental barrier like 5.0 MB keeps Firefox in the class as "simple utility applications" and is downloaded without as much hesitation by users. It also allows clever marketing ala Asa's "It's like downloading an MP3"
      -- http://wiki.mozilla.org/Download_Size (emphasis mine)
      (I heard somewhere in this discussion that Firefox uses GTK+; where did all that 6-8 MB go? Disappeared in the 7z compression? I wonder how large the compressed installer would be without GTK+.)
    21. Re:Distribution on Windows by temcat · · Score: 1

      I was able to make a screenshot of Gimp on Windows in the process of a redraw. Yuck. That says something about the speed of it on Windows. Then, despite WIMP, it doesn't blend with the environment well enough. Tooltips leave visual remnants. And, most importantly: why the hell does it use its own file dialogs and such?! There are perfectly good common dialogs in Windows, thanks.

      I use Gaim, but can't stand its look and feel. Gaim just works better than Miranda (and actually allows working from a restricted account).

    22. Re:Distribution on Windows by cortana · · Score: 1

      I'm sure GTK+'s footprint depends on the exact options enabled when it was built and, as you said, the compression used.

      $ aptitude show libgtk2.0-0 ...
      Uncompressed Size: 4608k

    23. Re:Distribution on Windows by Theatetus · · Score: 4, Informative
      I don't know about vbrun but the MFC DLL is less than a meg in size.

      And MFC.DLL is the equivalent of maybe half of glib and the stubs for the rest of the libs. Count all your non-Office OCX files; those are delivering the rest of the equivalent capability

      --
      All's true that is mistrusted
    24. Re:Distribution on Windows by Eravnrekaree · · Score: 1

      I disagree completely. With high speed internet connections becoming so common today, this isnt nearly as much of a problem than it was before. Even at modem speeds, it still isnt a problem, it might take an hour, but the user can do other things while its downloading. Its not like there are not other Windows applications that are this large, they are quite common.

      The benefits of GTK, cross platform code, programs that can be easily ported to many OSs, makes having to include the library on windows packages worth it, in my opinion. GTK provides a lot of features that make give an app designer a lot of flexibility, this is well worth the download time.

    25. Re:Distribution on Windows by Anonymous Coward · · Score: 0

      Using GTK on Windows is stupid anyway. It's incredibly slow, and very unstable. Try Gaim on Windows for an example.

    26. Re:Distribution on Windows by Cyberax · · Score: 2, Interesting

      It's about 0, because they are installed along with the Internet Explorer. It's possible to create a _full_ MFC application in just about 500Kb if one uses static versions of MFC and CRT libraries.

    27. Re:Distribution on Windows by Anonymous Coward · · Score: 0
      $ aptitude show libgtk2.0-0 ...
      Uncompressed Size: 4608k
      Okay, that's GTK. You'd have to check GDK, glib, and Pango aswell.

      With respect to Firefox, it uses Gtk+ on X11-based platforms. I'm sure it uses something else on Mac and Win. For one thing, it runs on Mac OS without an X server, and a quick look on gtk.org reveals that an OS X backend for GDK hasn't been announced until 22 November 2005.

      AFAIK, Mozilla (and thus probably firefox) uses its own toolkit called XUL. If I'm not mistaken, depending on what platform your running on, XUL gets rendered using Gtk+, Win32 calls, or whatever your heart may fancy.
    28. Re:Distribution on Windows by Kitanis · · Score: 1

      I use GTK in windows to use the PAN newsreader for newsgroups... the Windows version. much more depnedable than most of the other programs in windows for me. YMMV

    29. Re:Distribution on Windows by Anonymous Coward · · Score: 0

      Why do you have an INSTALLER for "Hello World"? Can't it just use files in its own folder?

    30. Re:Distribution on Windows by cortana · · Score: 1

      Windows users get confused if there isn't an installer. They generally can't comprehend that you can run software without 'installing' it.

  6. It is just a tool by Anonymous Coward · · Score: 2, Interesting

    It's interesting that they advocate using it vs Win32 in their examples. You really don't have a choice of the overhead for a Win32 system. You do have a choice of ignoring the overhead for GTK+. This overhead is why the POSIX and OS/2 implementations in Windows NT and later were never particularly useful. They used additional overhead (and they translated into Win32 function calls anyways!). GTK+ doesn't have this second problem (as far as I know) but it will still require additional overhead. If that's not a problem, then use it to your hearts content. Otherwise, Win32 seems to be the answer.

    1. Re:It is just a tool by headbulb · · Score: 1
      What..

      The Posix subsystem doesn't use the win32 api's, It uses the NT api's which are limited. The win32 subsystem and unix one can't even communicate to each other directly. You can't use the posix api's with the win32 ones since they are running under what seems to be a different operating system them.

      Interix is what it used to be called, But now microsoft calls it SFU windows Services For Unix. Which is a misleading name.

      Anyways. I can't tell you too many details.

      To get thinking about it. In a way you could be refering to the nt api when you say the function calls got translated to win32 function calls. Since win32 is the main subsystem of NT. If that is the case it doesn't really matter which subsystem you would be talking about.

      Now if you were talking about cygwin, Now that uses the underlying win32 api, and from what I know you could call both posix and win32 from within it.

      Now as far as the os2 still being in windows I have no way of testing it. But I have seen dll's in the windows directory for them.

      http://www.microsoft.com/windowsserversystem/sfu/d efault.mspx/
    2. Re:It is just a tool by cimetmc · · Score: 1

      Just to complete the information you gave:

      The original Posix subsystem that Microsoft provided was rather limited and therefore not very useful. However a company called Internix create a software package that built upon the Posix subsystem but provided a complete Unix like environment with shell and all the standard tools.
      A couple of years ago, Microsoft bought Internix and now provides the software for free to Windows users. Their main purpose of the software is to allow people using applications that run on Unix to easily migrate their application to Windows using the Posix subsystem. One of the main examples of such a use is Microsoft's own Hotmail service which originally ran on Unix and which Microsoft later migrated to Windows using the Posix personality of Windows to keep all the existing code and scripts.

      Marcel

    3. Re:It is just a tool by Anonymous Coward · · Score: 0
      Bullshit

      Bullshit as Bullshit can be

      Whoever moderated this bullshit?

      Incredibile..

    4. Re:It is just a tool by Anonymous Coward · · Score: 0

      Win32, POSIX, and OS/2 API functions are translated to Win32 subsystem undocumented fucntions (the nt*() functions). In this way, no API can run without the Win32 subsystem. The main purpose of the OS/2 and POSIX subsystems is to translate function calls into Win32 subsystem calls when needed.

    5. Re:It is just a tool by IntergalacticWalrus · · Score: 1

      You are right: SFU is a very misleading name. Everytime I read it, my brain interprets it as "Shut the Fuck Up".

    6. Re:It is just a tool by Anonymous Coward · · Score: 0

      The Nt* calls are the native interface (think unix syscalls). The Win32 subsystem is a translation layer and service provider between the native interface and applications. The POSIX and OS/2 subsystems work the same way; they do not speak to the Win32 subsystem.

      Sysinternals has a nice description of how it works.

    7. Re:It is just a tool by Anonym0us+Cow+Herd · · Score: 1
      You are right: SFU is a very misleading name. Everytime I read it, my brain interprets it as "Shut the Fuck Up".
      SFU is NOT a very misleading name. Everytime I read it, my brain interprets it the same way that you do. Microsoft carefully chose the name SFU, just as they carefully choose every name; because they want Unix to SFU and go away.
      --
      The price of freedom is eternal litigation.
  7. With the bazillion GUI toolkits out there.. by xtal · · Score: 2, Interesting

    a better question might be.. "why use a gui"

    For in house stuff I've been on a command line, or straight GLUT kick if I need to display graphics or data in a quick and dirty fashion. Obviously that's not going to work for everything, but you'd be suprised how far it goes.

    Are there any cross platform (linux, mac, windows) GUI RAD tools ala Builder, yet?

    --
    ..don't panic
    1. Re:With the bazillion GUI toolkits out there.. by undeadly · · Score: 5, Informative
      Are there any cross platform (linux, mac, windows) GUI RAD tools ala Builder, yet?

      You have QT Designer that is part of the QT Toolkit.

    2. Re:With the bazillion GUI toolkits out there.. by Decaff · · Score: 1

      Are there any cross platform (linux, mac, windows) GUI RAD tools ala Builder, yet?

      Yes - and there has been for years. Java + IntelliJ or NetBeans. Even open source Java has reached the stage where it will run cross-platform GUIs.

    3. Re:With the bazillion GUI toolkits out there.. by adolfojp · · Score: 3, Informative
      Are there any cross platform (linux, mac, windows) GUI RAD tools ala Builder, yet?
      I like to use this one: http://glade.gnome.org/ Its windows port works fine but I haven't tried the Mac version yet.
      These guys love to use it but it is more of a political issue than a technological one.

      And now, If you'll excuse me, I've got some work to finish on Photoshop vi. :-P
    4. Re:With the bazillion GUI toolkits out there.. by bored · · Score: 1

      I assume when he says builder he is talking about the borland products. In that regard glade is more the the resource editor that came with borland C++ back in 1990, than anything that they currently ship. Techically its hard to pinpoint what exactly the diffrence is though. Its more a statement of integration and toolkit/framework/component design, combined with clean syntax. In this regard even borland extended C++ to add the property keyword (and Visual Studio now supports it as well). So its hard to describe, its more like the polish that comes from a bunch of tecnically minor things coming together to form something that just works.

    5. Re:With the bazillion GUI toolkits out there.. by Blakey+Rat · · Score: 1

      There's Real Basic. Unlike wxWindows, it's actually a *rapid* application development tool... akin to Visual Basic, but supporting all three major OSes.

    6. Re:With the bazillion GUI toolkits out there.. by Brandybuck · · Score: 1

      I'll second that endorsement. Too many people think Qt Designer is just another dialog editor. It is not.

      --
      Don't blame me, I didn't vote for either of them!
  8. GUI? by Anonymous Coward · · Score: 5, Funny

    What the hell is wrong with printf?

    1. Re:GUI? by cciRRus · · Score: 1

      Nothing!

      Merry Christmas!

      --
      w00t
    2. Re:GUI? by archeopterix · · Score: 5, Funny
      What the hell is wrong with printf?
      Yeah, everyone seems so excited about printf. Having spent 40 years programming computers I can tell you its another fad.

      Thousands of developers all over the world are misled with the apparent ease of printf'ing the text to the stdout. They all miss the most important fact: the printf doesn't actually generate the text! You still have to supply it, although the printf marketeers might want you to think otherwise.

      Another thing - where are the mathematical foundations for printf? Relational databases rely on solid theory that dates back to 1795. Printf enthusiasts cannot deny the fact that it just lacks proper scientific support. It's a sad thing that giant amounts of investors' money are poured into a technology that relies on a wishy-washy muddy set of 'format specifiers'. Haha, 'format specifiers'! I challenge you to come up with a proper mathematical definition for that!

      And a final death blow to the whole 'printf' craze. It has no support whatsoever for colors or blinking text! Young printf-bamboozled programmers all over the world realize they're using a purely academic technology when the real world requirements call for a blinking 'Hello world\n' or a colourful 'Foobar'!

    3. Re:GUI? by A2GS · · Score: 1

      yeah!! .. or better.. What the hell is wrong with (N)Curses?? :) (N)Curses: The Ultimate Hacker Dev GUI! The MOST easy! The MOST fast! The MOST bugless! The MOST less system dependent! The MOST SSH'able simple and functional ready to use mattha'fuckar text prompt!

    4. Re:GUI? by KiloByte · · Score: 1

      It has no support whatsoever for colors
      "\e[32mReally?\e[0m\n"

      or blinking text!
      "\e[5mHello world\e[0m\n"

      ... when the real world requirements call for a blinking 'Hello world\n' or a colourful 'Foobar'!
      "\e[5mHello world\n\e[0;34;1mF\e[36mo\e[32mo\e[33mb\e[31ma\e[3 5mr\e[0m\n"

      (spell \e as \033 to make stone-age compilers like AIX cc happy)

      --
      The creatures outside looked from Alt-Right to Antifa; but already it was impossible to say which was which.
    5. Re:GUI? by whoop · · Score: 1

      Luckily, someone has even figured out a way to store a printf into a string! Why reinvent the wheel? Reuse the code!

    6. Re:GUI? by Anonymous Coward · · Score: 0

      printf you!

  9. The Question is... by Chaffar · · Score: 4, Funny
    Martin Fink Tells it like it is: The question is NOT why you should use GTK+, but WHY NOT? _______ Click here to read more
    1. Re:The Question is... by stud9920 · · Score: 1

      Martin Fink
      Tells it
      like it is:
      Roland Piquepaille is a whore

  10. Tempting.... by ardor · · Score: 2, Interesting

    to start a Gtk+ vs. Qt Flamewar here. Gtk+ is easier to install & handle (moc can be a real PITA sometimes), but until Gtk+ gets a really GOOD documentation and API, I'll stick with Qt. No, neither google nor devhelp are adequate. I want a reference as well done as the Qt one. Does such a thing exist?

    --
    This sig does not contain any SCO code.
    1. Re:Tempting.... by Anonymous Coward · · Score: 0

      Amen to that brother!

    2. Re:Tempting.... by jcupitt65 · · Score: 5, Informative
      The official docs are OK, I think. There's a tutorial too. There's also an excellent book: The Official GNOME2 Developers Guide, but sadly it's not available as a free download.

      People do rave about the Qt docs I know.

    3. Re:Tempting.... by harves · · Score: 3, Informative

      Sorry, but what's wrong with http://developer.gnome.org/doc/API/2.0/gtk/, with every supporting library also document at http://developer.gnome.org/doc/API/?

      Though when things get really tough and I absolutely have to know the little details, I like to hit the source http://cvs.gnome.org/viewcvs/gtk%2B/gtk/ instead.

    4. Re:Tempting.... by ebassi · · Score: 1
      until Gtk+ gets a really GOOD documentation

      Okay, d.g.o is still a pain to use and still has some old stuff, but the API reference should qualify as "good documentation". GNOME core libraries are basically all documented - except libgnomeprint/libgnomeprintui, which have large gaps - and if you don't find enough documentation, Just. File. A. Bug..

      --
      You can save space. Or you can save time. Don't ever count on saving both at once. -- First Law of Algorithmic Analisys
    5. Re:Tempting.... by mpeg4codec · · Score: 2, Informative

      Sean Egan's Open Source Messaging Application Development: Building and Extending Gaim covers basic to intermediate GTK+ programming [with sockets, no less] quite nicely. He meticulously describes everything he does with numerous examples. He never skimps on the details and even gives insights into his own thinking on most problems.

      It's a very, very good read, even for non-Gaim developers. On the plus side, you'll be supporting open-source development if you purchase it.

    6. Re:Tempting.... by SnarfQuest · · Score: 1

      Sorry, but what's wrong with http://developer.gnome.org/doc/API/2.0/gtk/

      Especially with such helpful definitions like this one:

      http://developer.gnome.org/doc/API/2.0/gtk/GtkTree Model.html#GtkTreePath

      Tells you everything you need to know, doesn't it?

      --
      Who would win this election: Andrew Weiner vs Andrew Weiner's weiner.
    7. Re:Tempting.... by ookaze · · Score: 1

      GTK+ actually has a good API documentation.
      What is more lacking are good up to date tutorials, and some functions are not always documented.
      But the framework is there for all of this to come together, once every one write documentation for every method, which is now a requirement for some libs.
      People can say what they want about Anjuta, but it includes plugins that uses useful things like devhelp http://developer.imendio.com/wiki/Devhelp which is a very useful tool, integrated with gtkdoc, which should be used to write all the API docs for Gnome.
      When I see the number of good docs available in my devhelp, I think Gnome doc is improving, and recent decisions do everything to improve the state of docs in Gnome.

      What I think is sad, is that good practices are lost, because there are no good tutorials, and the most up to date book about Gnome 2 development is already out of date, to a point where if you forbid the use of deprecated methods, most of it won't even compile. Don't get me wrong, as long as you allow deprecated methods, they work just fine, but newest ones are more efficient. I just want to show how up to date doc with some examples of good practices is important for Gnome.

    8. Re:Tempting.... by Anonymous Coward · · Score: 0

      "A path is essentially a potential node. It is a location on a model that may or may not actually correspond to a node on a specific model. The GtkTreePath struct can be converted into either an array of unsigned integers or a string. The string form is a list of numbers separated by a colon. Each number refers to the offset at that level. Thus, the path "0" refers to the root node and the path "2:4" refers to the fifth child of the third node."

      From the same page, higher up, easier to find: You freakin' idiot.

      GtkTree stuff is quite difficult to get a handle on using. But it's very powerful. If you'd like an inflexible toolkit I'm sure you can find one; but gtk is not one. And flexibility means increased complication of use.

    9. Re:Tempting.... by AtrN · · Score: 1
      what's wrong with <link elided>

      Followed by,

      when things get really tough and I absolutely have to know the little details, I like to hit the source

      I think you just answered your own question.

      Qt suffers the same thing. The docs look okay on the surface but are inadequate when it comes to details.

  11. GTK is alright...but no raves by Hosiah · · Score: 5, Interesting
    I'm not a very big fan of *any* GUI toolkit. GUIs are a pain to program in anyway, no matter what language or library you use. GTK is much easier if you hook it up with Glade, which drains some of the pain from the experience. Personally, for small jobs, I'm more apt to use Tcl/Tk, which is very brief. Literally, I will be unhappy with *every* GUI toolkit until I find one where you can express an entire dialog box in a SINGLE LINE (I don't care how Perl-like the syntax!) and get on with your life.

    No, I'm not kidding: a dialog box with three buttons should be:
    D(H:50,W:200){M:"Quit without saving?",B1:"Save"(do_save()),B2:"Don't Save"(no_op&exit()),B3:"Cancel"(drop_quit())};

    1. Re:GTK is alright...but no raves by Theatetus · · Score: 1
      Literally, I will be unhappy with *every* GUI toolkit until I find one where you can express an entire dialog box in a SINGLE LINE

      Umm... you're supposed to roll that yourself. Write either a wrapper function or a macro for the common stuff you do with your toolkit. That, or move on from C to a more applicative language like lisp or ocaml.

      I mean, it's a five-minute thing to write the D wrapper you want; do it and move on with your life.

      --
      All's true that is mistrusted
    2. Re:GTK is alright...but no raves by ichin4 · · Score: 5, Insightful

      Um, you mean like this C# code?

      DialogResult result = MessageBox.Show("Quit without saving?", "", MessageBoxButtons.YesNoCancel);

      Many slashdotters like to drone on about how evil business practices got Microsoft where it is today. But one thing that definitely helped is that, for much of GUI history, it's been easier to write GUI code for Windows than for almost any other platform.

    3. Re:GTK is alright...but no raves by Theatetus · · Score: 3, Informative

      Then again, actually GTK has what you want anyways, despite my earlier response rant:

      mywidget = gtk_dialog_new_with_buttons("Quit without saving?", GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, "Save", GTK_RESPONSE_OK, "Don't Save", GTK_RESPONSE_CANCEL);
      --
      All's true that is mistrusted
    4. Re:GTK is alright...but no raves by Techster · · Score: 4, Insightful

      Not even close to what the OP wanted. Yours just specifies text, an empty title, and the fact that it has three buttons (yes, no, cancel). You still need a block statement to handle the response, not to mention the fact that width and height will be determined automagically.

      His code specified the height, width, alternate text for the buttons (which some of us want without having to make a new dialog at times) and methods/functions to perform when the buttons are activated. Currently, a wrapper/class/function is the only way to accomplish all that in one line.

    5. Re:GTK is alright...but no raves by agg-1 · · Score: 1

      Well, if you want GTK+ with the brevity of Tcl/Tk, then you might wish to try Gnocl: http://www.dr-baum.net/gnocl/ Great stuff.

    6. Re:GTK is alright...but no raves by red990033 · · Score: 3, Funny

      >I will be unhappy with *every* GUI toolkit until I find one where you can express an entire dialog box in a SINGLE LINE (I don't care how Perl-like the syntax!) and get on with your life.

      I'm pretty sure you can do this with Visual Basic.. happy now?

      --
      Do what I say, cuz I said it.
      -Meatwad
    7. Re:GTK is alright...but no raves by Anonymous Coward · · Score: 0

      D(H:50,W:200){M:"Quit without saving?",B1:"Save"(do_save()),B2:"Don't Save"(no_op&exit()),B3:"Cancel"(drop_quit())};

      Wow. My first thought was, "You need three callback routines just to call a single, stupid Quit dialog?"

    8. Re:GTK is alright...but no raves by ichin4 · · Score: 1

      I don't know about "not even close", but I'm certainly willing to grant that it doesn't do exactly what his code did. On the other hand, one could argue that having standardized dimensions and button text is better anyway, and, as another poster pointed out, having the library provide the code for standardized scenarios improves maintainability as well.

      But really I wasn't trying to solve his exact coding problem. (Do any of us expect that he would switch to C# on Windows if it did?) I was trying to illustrate the point, which I still claim is valid, that Microsoft has historically done a better job of making GUI programming easy that most of the other players in that market.

    9. Re:GTK is alright...but no raves by Hosiah · · Score: 1
      OK, wise guys, I used the classic "yes/no/cancel" as an EXAMPLE knowing that everybody would understand the concept. Yes, I know yesnocancel is standard. My example would work for EVERY three-button dialog, not JUST yesnocancel.

      *Ahem* and let's belay the jabber about the *cough* *cough* "superiority" of so-called "Windows-programming". I tried C++ in Windows, and I was least impressed of all my programming experiences. We're talking GNU/Linux hence the name "GTK" which stands for "GIMP" tool kit, and "GIMP" stands for "GNU image manipulation program", so we're not talking about anything that works with Visual Basic, and God forbid we ever, ever should.

      As for the wrapper idea...yeah, I should, if I don't ever find somebody else who's done it first. That is one hangup with Open Source. You want something and can't find it; you give up and write it yourself, and immediately find somebody else wrote one after all, and now you're stupid because you "reinvented the wheel". This has happened to me a few times.

    10. Re:GTK is alright...but no raves by Anonymous Coward · · Score: 0
      Zenity!
      Display a dialog, asking Microsoft Windows has been found! Would you like to remove it?. The return code will be 0 (true in shell) if OK is selected, and 1 (false) if Cancel is selected.

      zenity --question --title "Alert" --text "Microsoft Windows has been found! Would you like to remove it?"
      Ok, you can only call it from the command line, but...
    11. Re:GTK is alright...but no raves by Anonymous Coward · · Score: 0

      How is this any different than the Java equivalent?

      int result = JOptionPane.showConfirmDialog(null, "Quit without saving?", "", JOptionPane.YES_NO_CANCEL_OPTION);

    12. Re:GTK is alright...but no raves by ceeam · · Score: 2, Insightful

      /me blinks
      /me laughs hard

      "Uhm, we _need_ to change 'No' button to 'Review' - that should be easy to do, right? 5 seconds worth, right?" - so said the boss.

    13. Re:GTK is alright...but no raves by Anonymous Coward · · Score: 0
      Well, it's not exactly one line, but it's quite short and self-explanatory. In python-gtk+ i'd be something like:
      dialog = MessageDialog(None,0,MESSAGE_WARNING, BUTTONS_YES_NO, message)
      res = dialog.run()
      dialog.destroy()
      I've used None here, but you can pass the parent window and prevent it from getting the focus. 0 are the flags, which can be DIALOG_MODAL, etc.
      It's really well documented, and allows you to write an application in minutes (Python + gtk + glade). That's what I call RAD!
    14. Re:GTK is alright...but no raves by imsabbel · · Score: 1

      So you are just saying that you are actually talking out of your ass and just needed some minutes of slashdot fame by supporting the "gui stuff is crap" groupthink.

      Nice going,man.

      --
      HI O WISE PRINCE. WHT TOOK U SO DAM LONG?
    15. Re:GTK is alright...but no raves by AnyoneEB · · Score: 2, Informative

      I don't know about the C# message dialog, but Java's Swing has a very similar method to which you can add an array of new names for the buttons. I would expect the C# method to allow for the same.

      --
      Centralization breaks the internet.
    16. Re:GTK is alright...but no raves by Anonymous Coward · · Score: 0

      That is interesting.. and I have heard C# is rather nice, but honestly having done much GUI programming in Java, GTK+, and others and now moving to MFC for my current project, I must say that I have been absolutely amazed by how awful and painful it is to write GUI code in windows. And quite amusing that MFC isnt even OO. wait, you can't simple say TextField.SetBGColor(Color), no you have to listen to and respond to an event in the parent to relay the color to that child widget... wait u mean u can't create a menu with dynamic menu items without giving them unigue global ids... u mean u have to to preallocate a buffer of memory to store a list of filenames before passing it into a file selection dialog to prevent overflows.... is there really no layout managers! everything absolute, and resizing, all done by hand... u mean, you are actually suppose to use DeferWindowPos functions when moving more than one window at a time! u mean.. every god damn widget is a subclass of CWnd, and every one has useless functions like: CheckRadioButton, DlgDirList.. not to mention the awful SubclassDlgItem(), and the fact that every widget has scrollbar and menus!! jesus has MS developers ever heard of a bloody decorator pattern...

      I just have to say, I have never wasted so much of my time in my life on learning a new API, and strugling with it. I have never been a huge fan of MS, but after programming there APIs, I do not understand how others can put up ith such a primative API.

    17. Re: GTK is alright...but no raves by Black+Parrot · · Score: 1
      > Um, you mean like this C# code?
      DialogResult result = MessageBox.Show("Quit without saving?", "", MessageBoxButtons.YesNoCancel);
      FWIW, the Ada bindings for GTK+ support that. Actually, all the arguments except the message string are optional, so you can go with:
      Result = Message_Dialog ("Quit without saving?");
      There are other optional arguments that provide it with more flexibility.

      Of course, if you do stuff like this regularly you should already have your own convenience functions in your development libraries. I have everything from a show-hide widget to application-independent data display widgets. If I start developing stuff that needs your example more than a couple of times, I'll build a parameterless function to handle it and stick it in my library. I will probably even include a wrapper around the choice of action, though for flexibility that would require accepting arguments for the relevant quit and save-then-quit procedures.

      But it will still be a widget; that's the point of OOP.

      The toolkit has to provide maximum flexibility, or else you can't do that. Which convenience functions go in the toolkit vs. which go in your development or application library is a matter of opinion. (In practice, my widgets tend to evolve from application-specific widgets to more general-purpose library widgets.)

      --
      Sheesh, evil *and* a jerk. -- Jade
    18. Re: GTK is alright...but no raves by Anonymous Coward · · Score: 0

      Plain ol' X is much better. I can write:

      if (confirm_quit ()) { ...

      and it works! LOL!!!

    19. Re:GTK is alright...but no raves by mangu · · Score: 2, Informative
      DialogResult result = MessageBox.Show("Quit without saving?", "", MessageBoxButtons.YesNoCancel);


      How is that easier than this example from the Qt dcoumentation:


      QMessageBox::question(this,tr("Overwrite File?"),tr("A file called %1 already exists.Do you want to overwrite it?").arg(filename),tr("&Yes"),tr("&No"),QString:: null,0,1))


      Note that Qt provides translation to your local language and choice of button text and keyboard shortcut as well.


      for much of GUI history, it's been easier to write GUI code for Windows than for almost any other platform.


      Maybe I don't know much about GUI history, but at least from the late 1980s when I started writing GUI code for VAXstations until today I have never noticed anything as being easier in MS-Windows. The Petzold book was well written, and maybe that's why you think it was easy, but any advantage that MS-Windows had stopped there. I have written or supported GUI code in Xwindow, Motif, Qt, MFC, OWL, Gtk, FLTK, Tk, wxWinodws, Java, and maybe a few others that I can't remember right now.


      My personal choice of toolkit for new projects is Qt, due to three factors: an excellent API, the absolutely best documentation of all those I mentioned above, and a good set of development software, consisting of kdevelop and Qt Designer.

    20. Re:GTK is alright...but no raves by Spy+der+Mann · · Score: 1
      Um, you mean like this C# code?

              DialogResult result = MessageBox.Show("Quit without saving?", "", MessageBoxButtons.YesNoCancel);

      ...

      But one thing that definitely helped is that, for much of GUI history, it's been easier to write GUI code for Windows than for almost any other platform.


      Um, perhaps you meant something like this cross-platform C++ (wxWidgets) code?
      int result = wxMessageBox("Quit without saving?", "", wxYES_NO | wxCANCEL);
      Using wxWidgets isn't that hard, it's very similar to MFC, and it's used in many F/OSS apps, like ABC bittorrent client, Shareaza and FileZilla.
    21. Re:GTK is alright...but no raves by Hosiah · · Score: 1

      Your script is posting to the wrong comments again.

    22. Re:GTK is alright...but no raves by laffer1 · · Score: 1

      MFC is quite old. Microsoft recommends using C# for gui apps now. They have for several years in fact. Pull a gui toolkit from the mid 90s for unix and i bet it sucks too.

      The best OO gui toolkit/framework i can think of thats old is Cocoa in OSX/NEXTSTEP.

    23. Re:GTK is alright...but no raves by bwbadger · · Score: 1

      In VisualWorks Smalltalk:

      Dialog choose: 'Quit without saving?' labels: #('Save' 'Don''t Save' 'Cancel') values: #(1 2 3) default: 3

      And it's been this easy from at least 1980. And it's cross platform, so it'll run just as well on a Mac or Solaris or Linux, i.e. pretty much every OS. And on Microsoft Windows too.

    24. Re:GTK is alright...but no raves by ipfwadm · · Score: 2, Insightful

      not to mention the fact that width and height will be determined automagically ... His code specified the height, width

      I know it differs from what the OP asked for, but how is automatically determining width and height a bad thing? To prove my point, I encourage you to give a specific size for your dialog box and then come back and tell me how it looks when you change your default font to something that a person with vision problems would use. Dynamically computing dialog sizes is A Good Thing(TM).

    25. Re:GTK is alright...but no raves by Moses+Lawn · · Score: 1
      It may not be what the OP (Hosiah) wanted, but it's much better, cleaner, more maintainable code.

      Hosiah's code:

      No, I'm not kidding: a dialog box with three buttons should be:
      D(H:50,W:200){M:"Quit without saving?",B1:"Save"(do_save()),B2:"Don't Save"(no_op&exit()),B3:"Cancel"(drop_quit())};


      It's nice and all that he's managed to squeeze 7 or 8 lines of easily understandable code into 1 very long line that needs a fair amount of visual parsing to understand, but:

      * Windows like this should not be specifying exact sizes - aside from all the time wasted determining what numbers fit, the end user is going to have a different font size, resolution, and screen size than you do. I hope your default window is resizable!

      * It does not specify positioning - yes, it's assumed to be centered, but if you're all that interested in having so much control over the button text, it seems like an oversight to leave this up to the system.

      * I hope you don't ever need to pass any params (or deal with any return values) from those functions.

      * Yes, it's nitpicking, but his logic is wrong. The "Save" handler should save and exit, the "Don't Save" handler doesn't need a NOP for no reason, and the "Cancel" handler should do nothing (what on earth does drop_quit() do?

      The art of programming does not consist in geting your program down to the least number of statements possible. It has much more to do with using the least amount *necessary to do the job and be clearly understandable*.

      How is that code any better than this (other than being able to specify the button text)?
      // Win SDK syntax off the top of my head from a long time ago...
      // What is up with the <ecode> tag?
      retval = MessageBox("Quit without saving?", NULL, MB_YESNOCANCEL);
      if (retval != BM_CANCEL)
      {
      // Save first, then bail
      // MB_NO == don't quit without saving
          if (retval == MB_NO)
              do_save();
       
          do_quit();
      }
      There. 10 lines, yes, but 2 are comments, 2 are just braces, and one is blank. Not a lot of stress on the old typing fingers, and a dramatic increase in readability and extensibility.
      --

      What if life is just a side effect of some other process and God has no idea we exist?

    26. Re:GTK is alright...but no raves by pizzarobot · · Score: 1
      How about this Java code, which was intented to, and will, work on Linux, Windows, Mac, BSD, and who knows what else:
      int result = JOptionPane.showConfirmDialog( null, "Quit without saving?" );
      which I believe is older than the C# equivalent.
    27. Re:GTK is alright...but no raves by rabiddeity · · Score: 1

      Providing vanilla text right in the function call is horrible international practice. The corresponding C# code produces a dialog box in the appropriate native language on every system. On an English system, it will produce Yes/No/Cancel. On a Japanese system it will produce the appropriate text in Japanese. In most cases I don't care about the exact size of the box.

      Sure, it's sacrificing functionality for the sake of brevity. But while a pair of scissors isn't ideal for every cutting task, it's simple and fast for a majority of them.

    28. Re:GTK is alright...but no raves by squiggleslash · · Score: 1
      Fortunately, in C, C++, Java, and C#, you can put your entire program on a single line if that's what you want.

      Maybe you should have added something like a limit of 80 characters or something, though I don't think your example works for that either.

      --
      You are not alone. This is not normal. None of this is normal.
    29. Re:GTK is alright...but no raves by Anonymous Coward · · Score: 0
      I will be unhappy with *every* GUI toolkit until I find one where you can express an entire dialog box in a SINGLE LINE (I don't care how Perl-like the syntax!) and get on with your life.
      Checking if the user should overwrite a file in Qt.

      if ( QFile::exists( filename ) && QMessageBox::question( this, tr("Overwrite File? -- Application Name"), tr("A file called %1 already exists." "Do you want to overwrite it?") .arg( filename ), tr("&Yes"), tr("&No"), QString::null, 0, 1 ) ) return false;

      I'd argue that you can probably do this with just about any toolkit if you completely disregard whitespace.

  12. Re:yawn by ardor · · Score: 1

    AJAX for 3d modeling? AJAX for word processors? AJAX for image manipulation?

    Yeah right.

    --
    This sig does not contain any SCO code.
  13. A better title would be "Why use a toolkit"? by spaceturtle · · Score: 2, Interesting
    It seems that most of the information would be true for any toolkit, and it isn't clear what toolkit they are attempting to contrast GTK+ with. The only alternative they mention is "writing your own UI code".

    It doesn't seem to give any information about GTK+ itself, even what the difference between GTK+ and plain GTK is (I am guessing that GTK+ is simply the C++ bindings for GTK).

    Basically, I think this introduction is too simplified and high level. I imagine that anyone who ever even considered writing their own GUI code directly above X or raw devices would immediately see the advantage of using a toolkit, and the only questions remaining would be "which one?" and "why GTK+ rather than e.g. GTK or QT?". Possibly it is aimed purely at Windows developers. I remember that several years ago Windows GUI code was a beast to write, and I was amazed at how simple GTK was. If Windows is still that bad, I guess just listing GTK+'s features would be enough to make win32 developer's mouths water, but I'd still prefer the article if it made it clear that win32 is what it is comparing GTK+ to, and did a proper compare and contrast. That way I'd actually have a summary of what Microsoft has been up to in the last decade :).

    1. Re:A better title would be "Why use a toolkit"? by Anonymous Coward · · Score: 0

      GTK+ is the toolkit, it's no longer known as simply GTK, GTK-- (http://www.gtkmm.org/) is the C++ bindings to the toolkit, i guess since you've come back from reading the article with the misconceptions you've displayed so far we can safely say that it's not a useful or well written piece. I'd have expected some coverage of the miriad of different language bindings available for GTK+ in such an article, maybe all of the /. feedback will help him produce something useful in his next installment.

    2. Re:A better title would be "Why use a toolkit"? by aconkling · · Score: 1

      It doesn't seem to give any information about GTK+ itself, even what the difference between GTK+ and plain GTK is (I am guessing that GTK+ is simply the C++ bindings for GTK).

      http://en.wikipedia.org/wiki/Gimp_Toolkit:
      "Initially created for the graphics program the GIMP, the GIMP Toolkit -- abbreviated as GTK+ -- is one of the two most popular widget toolkits for the X Window System, intended for creating graphical user interfaces."

      I do agree that this is a less-than-informative article. This was the kind that really frustrated me when I was figuring out which toolkit I wanted to favor when I started programming. (I chose GTK+.)

      But yeah, GTK+ is the proper abbreviation, though I'm not sure why they appended the +.

    3. Re:A better title would be "Why use a toolkit"? by Draek · · Score: 2, Informative
      Originally, GTK+ was created as a spin-off of another well-known open source project: the GNU Image Manipulation Program (GIMP). While working on early GIMP versions, Peter Mattis and Spencer Kimball created GTK (which stands for GIMP Toolkit) as an alternative to the Motif tool kit, which at that time was not free. (The plus sign was added to the name later, when the tool kit gained object-oriented features and extensibility.)
      from the article, second paragraph =)
      --
      No problem is insoluble in all conceivable circumstances.
    4. Re:A better title would be "Why use a toolkit"? by aconkling · · Score: 1

      Damned skimming, why do you fail me now?!

  14. GTK+? No... by Anonymous Coward · · Score: 0

    If I was looking x-platform I would be using wxWidgets and not GTK+.

  15. Cross-platform GUI RAD (for GTK+, etc): wxDesigner by Chuck+Messenger · · Score: 5, Informative


    Are there any cross platform (linux, mac, windows) GUI RAD tools ala Builder, yet?


    Yes -- wxDesigner is a very nice RAD for use with the wxWidgets GUI-building environment. wxWidgets is a cross-platform GUI framework which uses native widgets. On Linux, it uses GTK+. On Windows, it uses Windows widgets. On Mac, it uses Mac widgets. There are other somewhat-supported platforms. This approach contrasts with that of the Qt framework -- another cross-platform builder (which is excellent), which implements all its own widgets on each platform. Also unlike Qt, wxWidgets is not bound by the GPL -- you're pretty much free to do as you like with it (i.e. incorporating it into commercial apps, without the requirement that you release your source code, or pay any licensing fee). wxDesigner is a very nice GUI RAD builder for wxWidgets. It's not free, but it's cheap. You definitely get your money's worth.

  16. Actually, standard versions of wrapper 'd be good. by spaceturtle · · Score: 2, Insightful
    Recently the PLASH project had to override the standard GTK file open dialog box to achieve certain security related aims. This was somewhat complicated by the fact that there is no standard GTK file open dialog box function ;).

    Also it would be one less function that has to be written and maintained across the thousands of projects that use GTK.

  17. gtk is doomed by cg0def · · Score: 1, Insightful

    for as long as MS/windows holds over 95% of the desktop market there is absolutelly no poit in using gtk. Gtk+ performs pretty bad on windows and yes it is a huge pain to include an 8mb lib just so you can run a small program. That said gaim i great and I use it all the time but programming in c with custom classes over c++ ... you have to be joking. Yes I know there are c++ wrapper but the programing lang. is the least of the problems that gtk+ has. Apparently the gui libs are developed by the same natzi who are leading the gnome project to it's inevitable doom. You cannot contantly mess with the UI and change things arroud just because someone though that it would be better. First of all OSS projects do not have enough money in order to actully condict a study on what the user thinks is best and 2nd if the gnome and gtk+ teams don't realize that software is written for the end user and NOT for the developer, both of these projects would stand no chance against any competition. For crying out loud this is one of the first principles in any OS textbook and those people are supposed to be way above a textbook level. SO should you use gtk+ I really don't think so. After all there are qt and wxwidgets and they both do a better job. Oh and I cannot stress enough how important documentation is. But I guess some people don't think so ... sad ...

    1. Re:gtk is doomed by SpacetimeComputing · · Score: 1

      wxWidgets, on Linux at least, is simply a wrapper around GTK+...

      --
      :wq
    2. Re:gtk is doomed by electrichamster · · Score: 1
      "yes it is a huge pain to include an 8mb lib just so you can run a small program"
      Have you SEEN the mono and VB runtimes recently?

      "First of all OSS projects do not have enough money in order to actully condict a study on what the user thinks is best and 2nd if the gnome and gtk+ teams don't realize that software is written for the end user and NOT for the developer, both of these projects would stand no chance against any competition."
      Go look at the usability testing Novell's been doing with Gnome - some OSS supporting companies actually have, you know, money.
    3. Re:gtk is doomed by jcupitt65 · · Score: 1
      To try to address your points in order:

      vs. win32: GTK+ is a cross-platform toolkit. If you need to run on more platforms than just win32, then it's worth looking into.

      Performance and download size: you're right, it does feel a little slower, but win32 performance is improving. The gtk+ runtime is a 3.5MB download.

      Programming language: you can use C, C++, C#, Perl, Ruby, PHP, Haskel, etc. There are many language bindings.

      UI guidelines: The GNOME HIG has been around for years and projects really do try to conform to it. The GNOME desktop is pretty consistent. The HIG was developed with usability studies from Sun and others. Novel are doing some now I think.

      vs. wxWidgets: The usual argument here is that wrappers which attempt to put many toolkits into a single API force you to a lowest common denominator. For example, GTK has a very nice text widget (derived from the Tk one) which lets you embed any other widget. Of course wxWidgets does not suport this useful feature on all platforms, so you can't use it.

      Documentation: there are comprehensive API references, a good tutorial and many excellent published books.

    4. Re:gtk is doomed by nickrooster · · Score: 0

      Jeff K is that you?

    5. Re:gtk is doomed by Anonymous Coward · · Score: 0

      So GTK+ is doomed because the GNOME designers are interface natzis? Give me a break...

      FYI GTK+ is also used by Xfce, a desktop environment completely independent of GNOME.

    6. Re: gtk is doomed by Black+Parrot · · Score: 1

      > for as long as MS/windows holds over 95% of the desktop market there is absolutelly no poit in using gtk

      As long as graphical applications are needed for the other 5% of the desktop market (or any percentage of any other market), some toolkit will be needed for those platforms.

      --
      Sheesh, evil *and* a jerk. -- Jade
    7. Re:gtk is doomed by Anonymous Coward · · Score: 0
      [..] as long as MS/windows holds over 95% of the desktop market [..]
      Well, it doesn't, statistics that are not pulled out of your ass showed >3% Mac and >3% GNU/Linux, and that was a few years ago.
    8. Re:gtk is doomed by usrusr · · Score: 1

      > if the gnome and gtk+ teams don't realize that software is
      > written for the end user and NOT for the developer

      i often get the impression that the gnome people are secretly thinking that everybody who uses a gui is so lame that they could not make effective use of a computer anyway and consequently there would no be such a thing as GUI efficiency.

      from that point of view writing for their assumed end user would be keeping everything simple and inefficient enough to force the advanced user to the command line. much like the reasoning behind the one-button mouse, just for CLI rather than for keyboard shortcuts on GUI.

      personally i could not agree less but then i'm a badly windows tainted person with a strong tendency towards kde, so it might make more sense for other people.

      too bad that in real life the choice is more often based on the different flavours of "free" and the difference between the UI philosophies only comes second.

      --
      [i have an opinion and i am not afraid to use it]
  18. Holy 5417! by Black+Parrot · · Score: 4, Funny

    > GTK+ is a graphical user interface (GUI) tool kit.

    And all this time I thought everyone was talking about a game called "Grand Theft Potassium Ion".

    --
    Sheesh, evil *and* a jerk. -- Jade
  19. Actually I really liked GTK, coming from Windows. by spaceturtle · · Score: 1
    Using Turbo C (admittedly a Borland product) to write GUI code under windows was a nightmare. It had hundreds of arcane "manpage" like descriptions for the graphics classes, and made you guess the correct way of stringing them together to actually do something useful. GTK, where the documentation told me *exactly* how to do what I wanted to do was a real breath of fresh air to me.

    GTK may not be a single line of code, but at least it was a single cut-and-paste from the standard docs. (I did find Delphi v2.0 was in principle very easy to use, but in practise it's bugs tended to bite).

  20. not portable by Anonymous Coward · · Score: 0

    That only works on ANSI terms.

    1. Re:not portable by KiloByte · · Score: 1

      That only works on ANSI terms.

      In other words, on every single terminal in existence made within the last >15 years.
      This may be an issue if the output goes to something that is not a terminal (like redirected to some GUI), but, in that case you can simply check isatty() or pipe it through ansi2txt or ansi2html (bundled with a package of mine, trivial to recreate on your own).

      --
      The creatures outside looked from Alt-Right to Antifa; but already it was impossible to say which was which.
  21. Printf? by Armadni+General · · Score: 1

    What the hell is wrong with a piece of pressed rice paper and lead shavings?

  22. Re:Cross-platform GUI RAD (for GTK+, etc): wxDesig by wysiwia · · Score: 2, Insightful

    True, wxDesigner is an alternative on Linux I haven't thought of. Thanks :-)

    BTW see http://developers.slashdot.org/comments.pl?sid=172 263&cid=14343999

    --
    See http://wyoguide.sf.net/papers/Cross-platform.html
  23. Re:Time For Apple To Release The Cocoa Runtime by Anonymous Coward · · Score: 0

    To able to build one fat binary on either Linux or Windows that runs on both Windows and Linux would turn the computing world on its head.
    Ahem, nineteens called and it wanted its JAVA-argument back! :)

  24. Re:Time For Apple To Release The Cocoa Runtime by penguin-collective · · Score: 0

    Cocoa is essentially 1980's NeXTStep, which was available briefly on Windows. You can get a pretty good FOSS approximation as GNUStep. None of those have been really successful. Even Cocoa's success is modest on the Mac itself, with probably the majority of applications being built using other tools.

    Personally, I find Gtk+, Swing, and even WinForms to be preferable to Cocoa.

  25. Re:Time For Apple To Release The Cocoa Runtime by Anonymous Coward · · Score: 0

    "Ahem, nineteens called and it wanted its JAVA-argument back! :)"

    Thanks for the input dimwit...

    Back to Eclipse,Azureus,...

  26. ... but still needed by wysiwia · · Score: 1

    I agree with many of your objections but GTK+ is still useful for all the underlying technologies. As I said here (http://developers.slashdot.org/comments.pl?sid=17 2263&cid=14343999) serious developers don't use plain GTK+ but without it, these wrappers wouldn't be possible. There wouldn't be Pango or ATK etc. if GTK+ wouldn't exists.

    About your UI rants there is a solution I explained here (http://developers.slashdot.org/comments.pl?sid=17 2263&cid=14343909) but it needs some time until all the enthusiast and fans recognize its value. So instead of just complaining help improve it so we all have something better in the future.

    O. Wyss

    --
    See http://wyoguide.sf.net/papers/Cross-platform.html
  27. No, 3.5 MB by jcupitt65 · · Score: 2, Informative

    No, the current stable win32 GTK+ runtime is 3.5 MB. Here's the download page.

  28. Text Message Speak by Ophion · · Score: 1

    The article lost me when it degenerated into text message territory.

    When you're creating software for all to use, keep three keywords in mind: internationalization, localization, and accessibility (commonly abbreviated i18n, l10n, and a11y, respectively).

    1. Re:Text Message Speak by Anonymous Coward · · Score: 0

      Wn ur crtg sw 4 al 2 use kp 3 wds n mnd il8n l10n n ally cny abr i l n a rspt

    2. Re:Text Message Speak by drewness · · Score: 1

      The article lost me when it degenerated into text message territory.

      Those terms (i18n and i10n at least) have been used by the people involved in those areas for a long time. Before text messaging became big, I'm sure. Professionals in any area start abreviating terms that they have to use a lot. It's a pain not to. Plus, text messaging terms do things like abreviate a word or sound with a letter or number that sounds like it, whereas these give you the first and last letter and the length of the word. It's a different method altogether.

    3. Re:Text Message Speak by Ophion · · Score: 1

      Plus, text messaging terms do things like abreviate a word or sound with a letter or number that sounds like it, whereas these give you the first and last letter and the length of the word. It's a different method altogether.

      Here are two steaming piles of crap. This one is a bit darker, but it smells just as bad.

  29. Cocoa port for the Mac by wysiwia · · Score: 1

    I just want to mentioned that there's a Cocoa port in wxWidgets for the Mac albeit I don't know its current state. It probably isn't much work to do the same for Linux if Apple really releases it's runtime. That means any wxWidgets application which currently can be build either with GTK or Motif on Linux will build on Cocoa as soon as it's available. Nice isn't it?

    O. Wyss

    --
    See http://wyoguide.sf.net/papers/Cross-platform.html
  30. wxWindow by DesiStud · · Score: 2, Interesting

    Hey u all forgot wxWindow. That's strange. I think it is a strong competitor of GTK+ and Qt. Isn't it

    1. Re:wxWindow by 0123456 · · Score: 1

      Personally I use wxWindows: however, can't it be built to run on top of GTK+?

    2. Re:wxWindow by wysiwia · · Score: 1
      --
      See http://wyoguide.sf.net/papers/Cross-platform.html
  31. wxWidgets? by El_Muerte_TDS · · Score: 3, Informative

    Why not wxWidgets? It's more flexible if you ask me. It simply wraps the native GUI stuff, or an other toolkit like GTK+.
    I don't have any numbers, but I think the performance would be better and the distribution size shouldn't suffer much (as with Qt or GTK+).

    1. Re:wxWidgets? by Dwedit · · Score: 1

      Last time I checked, a hello world button program takes up 500k on disk. Why is all that unnecessary support code being included?

    2. Re:wxWidgets? by Brandybuck · · Score: 1

      There are two problems with wrapping native GUIs in cross-platform toolkits. First, you're stuck with lowest common denominator controls and widgets. Second, the wrapping code itself is performance draining.

      --
      Don't blame me, I didn't vote for either of them!
  32. Article? by muyuubyou · · Score: 1

    I'm always game to discuss the state of the art in cross-platform GUIs, as it's always changing and usually for the better... but this is not an article. My first grade homework was twice as deep. This article reeks of GTK+ advocacy for the sake of it... "why GTK?" and no mention of the alternatives? It doesn't say more than gtk.org's main page, for heaven's sake. It's more like "why should you read my next article"!

    Maybe if the following parts say something interesting, it would be worthy of making it to the developers section, if that.

    1. Re:Article? by jascat · · Score: 1

      People seem to forget about a thing in writing called "Scope". Say it with me now, "Scope". The scope of this article is not to inform you, the reader, of Qt, Motif or anything other than GTK+. Baby Jesus on a cross, I'm sick and tired of everyone turning crap into holy wars. You guys sure you don't worship (GNU/Linux-distro of choice|FreeBSD|OpenBSD|Solaris|Windows|OS X|XFree86|X.org|Gnome|GTK+|KDE|Qt|Bread|Water)?




      What the hell happened to reading an article about one thing and not getting INSANELY JEALOUS that YOUR thing of choice, which happens to be similar to the thing in the article, isn't also being talked about?

    2. Re:Article? by muyuubyou · · Score: 1

      I don't think I see your point. I like GTK, and I think giving it a look it's almost a must for any programmer lookin into cross-platform GUIs, but comparison is totally needed when you write a "Why use XYZ?" article.

      By just enumerating features, you are tricking the reader into thinking those features are somewhat exclusive, while actually NONE are. I'd concede "It's free software with a liberal open source license" as relatively exclusive compared to most of the competition, but how would the reader know? the article doesn't say shit about it. In fact, it doesn't say shit about anything. It's an ad that could be summarized in three parragraphs at most.

  33. Inaccurate article by Anonymous Coward · · Score: 0

    accessibility - GTK is not accessible on Windows, X11 accessibility still fishy (just exposing 50 actions via screen-reader is not enough to make a GUI usable, a document/action framework and workflow manager is required).
    portability - No native Mac OS X port, Win32 port still lacking.
    extendability - Wow, ever tried subclassing and extending a widget? Last time, I spent 20 minutes just copy/pasting strange macro definitions and debugging my crashes.

  34. Yes but... by wwahammy · · Score: 4, Informative

    IBM seems to skip over one of the biggest reasons to NOT use GTK+ - it just doesn't look right on Windows. I'm not sure who said it but a commentator suggested a while ago that one of the reasons open-source programs weren't overtaking closed source was due to a lack of polish (which does of course cover more than just appearance); he used GAIM vs. MSN Messenger as an example. The jarring difference between controls in GTK+ or Java or even Mozilla to some extent vs Win32 is important when you're creating an application for normal end users. In my opinion, that difference can look unprofessional. I would figure that the issue of appearance could be mitigated but it hasn't yet so I don't know for sure.

    A question for someone who knows more about GUI toolkits: What are the issues involved in matching the appearance between toolkit controls and the native controls?

    1. Re:Yes but... by cortana · · Score: 1

      Nothing looks 'right' on Windows. Even after you turn off the godawful 'my first computer' style, every other app is determined to implement its own widget set. :)

      Fortunatly I only boot into Windows to play the odd game, but when I do, programs that use the gtk-wimp theme don't look out of place at all.

      At the end of the day, however, the only way to have a cross-platform application to feel native on any platform is to implement a completly separate, native interface. Use GTK+ for Gnome, Qt for KDE, Cocoa for Mac OS X, and whatever MS's flavour-of-the-month toolkit is for Windows.

    2. Re:Yes but... by louzerr · · Score: 1

      this is just my "take" on this, and is little more than a guess, but ...

      When MS or Mac plans to come out with a new system, they typically tweak the GUI appearance enough to make the consumer feel that buying the new system was a worthwhile investment. These are generally done as new calls to the underlying system, or maybe a new set of widgets that weren't available before. Long before the new system ships, MS/Mac will share these new tweaks with other software vendors, either at a cost or for free depending on the relationship. This allows vendors like Adobe (as an example) to have software ready to take advantage of these features as soon as the new system comes out, which is good for both the software and OS vendors.

      But open source projects don't have the same luxuries. First, they don't have the right consumer base to convince MS/Mac to give early releases of their OS's for free. Second, the open source developer is NOT going to pay big bucks for an early release developer license. Lastly, while mosts GUI tweaks are "cool", most offer no new functionality - I suspect many developers simply don't bother to rework/rebuild their apps only to take advantage of new GUI tweaks, preferring to wait until they can add new features to the app as well.

      --
      "The large print giveth, and the small print taketh away" -- "Step Right Up", Tom Waits
    3. Re:Yes but... by Anonymous Coward · · Score: 1
    4. Re:Yes but... by Anonymous Coward · · Score: 1, Informative

      Fortunatly I only boot into Windows to play the odd game, but when I do, programs that use the gtk-wimp theme don't look out of place at all.

      Oh, yes they do! Simple list:

      * Menus and tooltips don't use window shadows when they're enabled on Windows 2000/XP.
      * Menus are shaded flat-out wrong. That's not Windows 9x OR Windows XP style, that's some third style.
      * Menu separators should be a single solid gray line on Windows XP.
      * Menus should fade in when that setting is enabled. (Firefox is guilty of this too.)
      * When a menu option is selected, the rest of the menu should fade out fast and the menu option should fade out slower. (Firefox is guilty of this too.)
      * "Access" keys (the little underlined letters on buttons/menu items) are always displayed, even though they should only be displayed when ALT is pressed when that setting is enabled. (Firefox is guilty of this too.)
      * WIMP ignores requests to change the theme, so if you switch color schemes while a WIMP app is running, it'll keep the old theme and not change to the new one. Includes changing certain other settings. (Just checked to see if this is still true, it turns out that will CRASH the GTK+ app.)
      * Button contents "depress" when clicked when using Windows XP's theme. They do not in Windows XP apps.
      * Drop down combos should animate extending when that option is enabled. (Firefox is guilty of this too.)
      * The list dropped down by a drop down combo should be placed below the combo, only pushed upwards/left if it hits the edge of the screen. (WIMP does it MacOS style, with the selected option centered over the combo.)
      * When the "empty" part of a scroll bar is clicked, that half should darken while the content scrolls. (Firefox is guilty of this too.)
      * Check boxes and radio buttons should darken when depressed.
      * Table headers should turn orange when hovered over when using Windows XP.
      * Non-active tabs should turn orange when hovered over when using Windows XP.

      Those are just the things I've noticed in normal use, I'm sure there's more. As noted, Firefox, which ALSO attempts to mimic Windows using a different themeing engine, ALSO screws some of this stuff up. Trying to mimic a native theme is nearly impossible.

      The best "widgeting toolkit" I've seen for actually creating native-looking apps in SWT, a Java toolkit. But it still has some serious drawbacks, and the only real way to create apps that don't just look right on all platforms but actually FEEL right is to create a separate version for each platform.

    5. Re:Yes but... by DoktorSeven · · Score: 1

      So GTK+ commits some Windows fashion faux pas? I don't give a crap how the application looks as long as it does what it should. GTK+ is easy to build applications with and very powerful, and that's all I care about, not whether or not it clashes with the decor.

      --
      This is a sig. Deal with it.
    6. Re:Yes but... by DoktorSeven · · Score: 1

      and *is* very powerful... damn disappearing words. :)

      --
      This is a sig. Deal with it.
    7. Re:Yes but... by professorhojo · · Score: 1

      firefox was built out of gtk, right? and it looks pretty OK to me.

    8. Re:Yes but... by _xeno_ · · Score: 2, Informative

      Nope. Firefox is built using a custom toolkit designed explicitly for Mozilla.

      Firefox has the ability to import theme data from both Windows XP and GTK+, so it should look (sort of) like a native app under both platforms. It comes real close under Windows, but it still messes some things up. I've never tried it under GNOME since they added GTK+ themeing support, so I have no idea if it works under that.

      However, the Mozilla toolkit is actually much closer to properly mimicing the Windows environment than GTK+'s WIMP is. WIMP needs a ton of work to properly fit in with Windows.

      --
      You are in a maze of twisty little relative jumps, all alike.
    9. Re:Yes but... by ookaze · · Score: 1

      IBM seems to skip over one of the biggest reasons to NOT use GTK+ - it just doesn't look right on Windows

      Give me a break. Like you admit yourself, your "big reason" is from a commentator somewhere, you don't even remember who it was.

      I'm not sure who said it but a commentator suggested a while ago that one of the reasons open-source programs weren't overtaking closed source was due to a lack of polish

      Give me a break again. People will cite "one of the reasons why open-source programs don't overtake closed source" whenever they want to make feeble minded FOSS users take their side. I see people use that countless times here. Let me tell you : your first premise is wrong, so stop the BS.
      When someone puts out gaim on Gnome, I don't think the primary goal is to overtake closed source.

        he used GAIM vs. MSN Messenger as an example

      Which is a bad example. MSN Messenger won't even work on Linux without emulation.
      Don't BS me about polish when the app won't even work. Know your priorities.
      The few Gnome or GTK apps I tested on Windows platform have widgets that actually look better than the rest, showing how crude the Windows platform widgets are. Actually, Office 2003 apps have the exact same effect on a Windows XP OS : they make the rest of the OS looks outdated.

      The jarring difference between controls in GTK+ or Java or even Mozilla to some extent vs Win32 is important when you're creating an application for normal end users. In my opinion, that difference can look unprofessional

      MS can't even make controls in its apps the same as in its OS, and you dare talk about other toolkits looking unprofessional ?
      Most Windows apps don't even use the standard widgets for everything. Win platform is king of custom widget. Just look at your win32 desktop apps.

    10. Re:Yes but... by bored · · Score: 1
      When MS or Mac plans to come out with a new system, they typically tweak the GUI appearance enough to make the consumer feel that buying the new system was a worthwhile investment. These are generally done as new calls to the underlying system, or maybe a new set of widgets that weren't available before.

      This sort of belies the fact that you haven't done any windows programming. Much of the "look and feel" is determined by windows. AKA the window manager. If you write your application properly (ie don't invent to many custom components). Then things just tend to work when you go to new versions of the OS. Oviously there are special cases, but the majority of the look and feel of the OS is determed by the OS not the applications. Now if your application is written using GTK then when you pop up a file open dialog your getting the GTK version not the windows common dialog (which almost always changes between windows revisions) and as such the things the users expect (like being able to view image thumnails vs detailed view) don't behave the same way, if they even exist at all. This is why things like the scroll wheel on the mouse just work in windows (and always have for windows applications, applications ported from linux tend to have the same problems in windows that they had in linux with the wheel). Its because the mouse driver is simply sending WM_SCROLL messages to the top level application window. Because its just the right way to scroll a window, when M$ came out with the scroll wheel it just worked in applications that had never seen a scrolling mouse in thier whole existance.

    11. Re:Yes but... by sarlaque · · Score: 1
      The jarring difference between controls in GTK+ or Java or even Mozilla to some extent vs Win32 is important when you're creating an application for normal end users. In my opinion, that difference can look unprofessional.


      Hm, I don't really think so. Look at how many Windows apps use custom widgets. This includes MS programs like media player. And if web applications really are the next big thing, we can kiss standard widgets goodbye anyway. Most users don't seem to mind, or even notice, what the widgets look like, as long as they behave somewhat predictably.

    12. Re:Yes but... by Anonymous Coward · · Score: 0

      Actually, in Java 1.5 Swing has platform specific look and feels that are almost identical in L&F to the native widgit set (be it Win32, GTK, Motif, or the other supported platform widgit sets). There are still some minor differences that a Geek will notice, but to Joe Sixpack, they are identical.

    13. Re:Yes but... by Blakey+Rat · · Score: 1

      You think it's bad on Windows? Try it on OS X. I'm still waiting for someone to smack a Firefox developer on the head with a Powerbook and yell, "THIS IS HOW ARROW KEYS IN TEXT BOXES WORK IN MAC OS!" (No, it's not the same as in Windows or Linux. Stop making them the same! Wrong! Ugh!!!)

      Sorry. I hate it when my arrow keys are wrong because a program is ported.

    14. Re:Yes but... by jeremy+f · · Score: 1
      So GTK+ commits some Windows fashion faux pas? I don't give a crap how the application looks as long as it does what it should. GTK+ is easy to build applications with and very powerful, and that's all I care about, not whether or not it clashes with the decor.

      You may not give a crap, but you're far from a typical user (just posting at Slashdot in a GTK+ discussion tells me this), and it's completely foolish to believe your users think the same way you do.

      A lack of consistency and not following native conventions is a HUGE hinderance to user acceptance. As long as there's a choice between similar/identical software packages with similar/identical functionality, your users almost always pick the one that feels more comfortable to them, sometimes (much to our chagrin), at the expense of using the *better* program. In computer UIs, a good amount of comfort comes from familiarity. An example: If you use Gnome, you're probably reluctant to run QT applications when a GTK+ alternative is available, and vice-versa. Providing a familiar look and feel really helps with acceptance amongst non-power users. Your users may not know *what* they can do in your application, but at least the decor looks familiar so they're more apt to explore, and they can recover more gracefully from usability mistakes (and continue to use your application) because they've done so before in familiar looking interfaces.

      Some UIs have completely shucked conventions (most of Metacreations' software comes to mind), and have still been very usable; but if you're going to build an application for a particular environment, unless you have a few Ph.Ds dictating your interface, you should make it look and behave like other programs in the environment as much as possible.
    15. Re:Yes but... by alder · · Score: 1
      ...one of the biggest reasons to NOT use GTK+ - it just doesn't look right on Windows.

      Well, to match Windows L&F pretty closely one usually installs GTK-Wimp, so "[w]hen running on Windows XP or 2003, the Windows theming API is used so that GTK widgets look like native widgets." And GTK-Wimp is integrated into GTK+ installation for windows (since August 2004)...

    16. Re:Yes but... by Lehk228 · · Score: 1

      the last version of MSN messenger i saw didn't conform to windows standards either, it used a "web" style interface that bugged the crap out of me till i just stopped using it.

      --
      Snowden and Manning are heroes.
    17. Re:Yes but... by DoktorSeven · · Score: 1

      Well, personally, I don't care what toolkit is used as long as the app is solid, but yes, I do understand that some can be a bit put off by "clashing" applications. I expect as much from a society that pays more attention to, for example, idiotic beautiful people and dumb movies loaded with special effects than intelligent people and good, intelligent movies.

      Human nature, and all that.

      --
      This is a sig. Deal with it.
    18. Re:Yes but... by kisielk · · Score: 1

      Funny that you should mention MSN, which... doesn't look like any other Windows app at all! It uses its own crazy-ass themable curvy colored UI everywhere... *very* consistent indeed. That being said, I think that GTK even with WIMP looks like crap on Windows. Take a look at the file selectors in Gaim for example, godawful ugly.

    19. Re:Yes but... by damiam · · Score: 1

      Technically, Firefox for Linux does use GTK for some backend drawing stuff; that's why Firefox packages depend on GTK. The Windows/OSX versions use GDI+ and Quartz respectively.

      --
      It's hard to be religious when certain people are never incinerated by bolts of lightning.
    20. Re:Yes but... by cortana · · Score: 1

      Hardly. It only works with about one GTK+ theme. Back when I used Industrial, java would spit out errors in the console about how the GTK+ theme was unsupported, and the program would look like crap. These days I use Clearlooks, and get the same behaviour.

  35. Re:Time For Apple To Release The Cocoa Runtime by Anonymous Coward · · Score: 0

    "Cocoa is essentially 1980's NeXTStep,"

    That wasn't a smart thing to say if you want anyone with even a passing knowledge of the subject to take anything you have to say seriously.

    "Personally, I find Gtk+, Swing, and even WinForms to be preferable to Cocoa."

    Uh, no you don't.

  36. Re:yawn by kwoff · · Score: 2, Insightful

    (I find it hilarious that I was marked offtopic for pointing out that the original story was offtopic. I stand by that comment regardless of how it's modded, though.)

    AJAX for 3d modeling? AJAX for word processors? AJAX for image manipulation?

    Okay, you're undoubtedly right. (By the way, I maintain a Perl-Gtk module, so I don't mean to knock on Gtk. It's simple to use, and importantly for me the Perl-Gtk community is very active.)

    I'm not sure though for example why you couldn't implement a word processor in AJAX. Or, using SVG, you could do something with 3-d modeling? I guess it would depend on the features. A grammar checker might be hard to write in JavaScript, for example... Then again, you might be able to send the text to the server to do something like that. (I think the distributed computing dream has never seemed to materialize. That's the context in which I see "AJAX" being really powerful, though. I imagine having a web service (use JSON instead of SOAP, if you want) running on a server dedicated to grammar checking. You might whine about network latency, but then again you never had to download (or even load into memory) the grammar checker, and it could be optimized on the server end (in practice, it'd no doubt be hammered all the time, though, which along with security concerns is probably a big reason why distributed computing has been a pipe dream).)

    But your point is that not every application can be done using AJAX. Okay, granted. But maybe a generic XUL-like framework? Why isn't something like Gtk exposed through Mozilla, then? (Maybe it is. I think you can write custom widgets, expose them using...XBL or XPCONNECT or whatever it is.) The browser itself is done with Gtk. So a browser can be implemented in Gtk, and using XUL we can create fairly sophisticated GUI applications (browser, mailer, calendar). I wouldn't be surprised if in fact you couldn't implement a word processor in XUL. So my argument has drifted from AJAX to XUL. But XUL and AJAX are similar in ways, just different focuses. Another dream that hasn't seemed to have lived up to its initial promise, XUL. Now this comment does deserve to be modded offtopic. Thanks.

  37. Re:Time For Apple To Release The Cocoa Runtime by Anonymous Coward · · Score: 0

    I just read your recent post history.

    Yeeech.

    Everyone else should for a laugh(or cry).

    Do the computing world a favor - stay out of language debates. Your only area of competence in comparative language analysis seems to be making a fool out yourself.

  38. Java by ChunderDownunder · · Score: 1
    Even open source Java has reached the stage where it will run cross-platform GUIs.

    Indeed, GTK+ for instance. :)

    1. Re:Java by Decaff · · Score: 1

      "Even open source Java has reached the stage where it will run cross-platform GUIs."

      Indeed, GTK+ for instance. :)


      Yes - but my point is - why do you even need to know that you are using GTK+? Isn't this as irrelevant as knowing which filesystem type you are saving to? With something like SWT on Java you can use GTK+, Win32, Motif, MacOS/X etc. without knowing or caring which GUI is implementing your widgets. Surely this is the way forward, rather than trying to code for a particular GUI library?

    2. Re:Java by ChunderDownunder · · Score: 1
      I'm merely pointing out that Java people shouldn't feel left out in the perception that GTK+ is somehow a C library that runs only under X11. Someone has gone to the trouble of creating JNI wrappers so it can be used like any 'normal' Java API.

      Each toolkit has it's strengths and weaknesses, e.g. with some SWT platforms such as Win32 and GTK+ receiving more attention that OS X.

      At the end of the day, you're programming to an API. Thought experiment: What if programming to the GTK+ API proved to be more productive and pleasurable to coding to the SWT API? And what if the GTK backends to X11, OSX and Win32 were of overall more robust than SWT? Then a thin JNI layer over the C libraries is a minor piece of the puzzle.

      A good degree of effort has gone into porting GTK+ to non X11 platforms, most recently BeOS. The point of the article is to assert that it is a valid API to build cross-platform applications. Perhaps even in Java!

      I'm not hear to bash SWT - It's a Java toolkit that is an alternative to Swing, but then so can GTK+ be. :) However, be aware it has been a toolkit initially developed specifically for eclipse while GTK+ has been used widely for 1000s of applications, so its scope is broader. Hence GTK+ may in fact be a richer and more mature API, with IBM adding features to the SWT toolkit only as eclipse requires.

      Try to keep an open mind, yeah? :) :)

    3. Re:Java by squiggleslash · · Score: 1

      Meta-meta widget toolkits? It doesn't sound right to me somehow. Surely SWT should be hitting the metal (that is, X11) directly? What's gained by having it go via an intermediary whose API almost certainly isn't a one-to-one match?

      --
      You are not alone. This is not normal. None of this is normal.
    4. Re:Java by Decaff · · Score: 1

      Meta-meta widget toolkits? It doesn't sound right to me somehow. Surely SWT should be hitting the metal (that is, X11) directly? What's gained by having it go via an intermediary whose API almost certainly isn't a one-to-one match?

      Portability. You can have exactly the same SWT code on a large number of platforms. Don't think of SWT as 'meta' - think of it as mapping between a Java API and the 'native' API.

    5. Re:Java by Decaff · · Score: 1

      Try to keep an open mind, yeah? :) :)

      I am, and what you have posted is very interesting. Personally, I don't much like SWT - it has real performance problems on some platforms I use - especially Linux. So, Java/GTK+ interests me if it can be neatly packaged for many platforms.

    6. Re:Java by mrchaotica · · Score: 1

      If your SWT code was mapping to GTK+, wouldn't your application then use the GTK themes, and match the rest of your applications?

      --

      "[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz

  39. Re:yawn by muyuubyou · · Score: 1

    You have a point, but give this a try: http://www.fckeditor.net/demo/default.html

  40. Forget something? by RedBear · · Score: 4, Insightful

    No one distributes software on floppies any more. 6-8MB added to your installer isn't a BIG deal. It translates into another 30sec worth of download. If its a burden on anyone, it's a burden on your webservers.

    I think you meant to say it IS a big deal, since it translates to 30 MINUTES of extra download time on a dial-up line, which unfortunately most users are still stuck with. Even broadband lines aren't all 1.5Mb/s.

    1. Re:Forget something? by Anonymous Coward · · Score: 0

      30mins? are you INSANE?

      6-8 megs on most home users (aka, most people you are concerned with have broadband now, it is almost 2006 afterall so skip the sob stories about some relative that lives in bumfuck no where cause that isnt most people).
      shouldnt take more than a minute or two

  41. GIMP and GAIMs dll hell. by saur2004 · · Score: 0, Flamebait
    I dont have a beef with GTK but I do with those using it.

    The latest GIMPs all are 2.8 exclusively and if you try to run on 2.6 you get all sorts of problems.

    Even the new GAIM 2 beta is 2.6 and if you try to use 2.8 you get all kinds of problems.

    I REALLY HATE WHEN DEVELOPERS CREATE DLL HELL.

    1. Re:GIMP and GAIMs dll hell. by Anonymous Coward · · Score: 0

      I use gaim 2.0 on GTK+ 2.8.9, and I have no problems at all.

      So instead of saying it has problems and having us trust your word for it (dream on...), tell us what the problems are.

    2. Re:GIMP and GAIMs dll hell. by saur2004 · · Score: 1

      When I have any GAIM up and running on a 2.8 GTK and when Im just about to start chatting with someone on the AIM network, as soon as I hit return on my first message, the chat window completely dissappears. When I downgrade GTK to 2.6 this behavior stops. Its very consistant and reproduceable on my system.

    3. Re:GIMP and GAIMs dll hell. by Anonymous Coward · · Score: 0

      I've had this problem too on Linux, but that was because of sound problems on FC4.

      My resolution was to update arts (yes, sounds really stupid, but that really fixed it..).

  42. Want colors and blinking text in your output? by Chemisor · · Score: 1

    > It has no support whatsoever for colors or blinking text!

    <shamelessplug>
    Want colors and blinking text in your output? Use the Useful Terminal I/O Library! You get all that and the other things you have been missing since you traded DOS and conio.h for Linux.
    </shamelessplug>

  43. Re:yawn by Anonymous Coward · · Score: 0

    DOM3 Load/Save? OpenGL-enabled ? Yeah right.

    Who needs that crap when all we need are tables and <font>?

  44. Re:It boggles the mind by trifish · · Score: 1

    Because it is not cross-platform? Of course they don't want you to create programs that builds for Win, Mac and Linux from a single code base.

  45. Re:Time For Apple To Release The Cocoa Runtime by Decaff · · Score: 1

    To able to build one fat binary on either Linux or Windows that runs on both Windows and Linux would turn the computing world on its head.

    You mean like this?

    javac MyApplication.java
    jar cvf MyJar.jar MyApplication.class

  46. but not mine because ... by wysiwia · · Score: 1

    the free VC++ distribution is by far not the full VC++ distribution. It's enough for compiling but not for debugging.

    Besides MFC is not cross-platform and even on Windows you are IMO better off with wxWidgets.

    see also http://developers.slashdot.org/comments.pl?sid=172 263&cid=14343999

    O. Wyss

    --
    See http://wyoguide.sf.net/papers/Cross-platform.html
  47. Re:Time For Apple To Release The Cocoa Runtime by FellowConspirator · · Score: 2, Informative

    In many industries, this is the preferred method. I know our company increasingly is offered (and purchases) laboratory information management systems (LIMS) and curated databases with various front-ends that are Java apps.

    Comment as you will, they have actually proven to perfom exceptionally well and been quite resilient and easy to install across a variety of platforms (like most in our industry, we have a combination of Windows, Mac OSX, and Linux desktops with Solaris, Irix, and HP/UX servers).

    For things like Linux, the ability to treat jar-files as native executables (using the binfmt-misc mechanism) makes it dead-simple to deploy apps.

    This is not entirely unique to Java. .Net holds some promise here. It won't be useful in our industry until it's well-supported outside Windows, but I imagine that there's other industries that still have less heterogeneous environments...

    I whole-heartedly favor cross-platform VMs to whatever extent they are appropriate and I really don't buy the "jarring difference in appearance" argument. Clipboard interoperability, maybe; hosting native media widgets, sure, but button textures? Dumb.

  48. Re:yawn by O2dude · · Score: 1

    Actually AJAX for football! www.ajax.nl

    --
    - It took western civilisation 2000 years to ensure popular literacy, and now we work with icon driven GUI's. Go figure.
  49. Other languages by rpg25 · · Score: 3, Interesting

    One issue that I like to look at when I'm thinking about GUI toolkits is the question of what programming languages does it support.

    I often need to rapidly prototype a graphical UI, and one that's not just a standard set of static attributes. I find that for these cases the graphical layout tools fall down pretty quickly, and I'm back to writing code to make the UI.

    Now, if I'm going to be writing code for GUI prototypes, I want code that I can write, test, and show off fast. I don't want to start a language war, but to me that says "not C++."

    So a big question for me is "what other languages does your toolkit support easily?" Is there a good perl interface? python? scheme? What can I use to lash it together quickly?

    For this kind of thing, sadly enough, it seems like the venerable Tcl + Tk combination is still hard to beat.

    And when you need an alternative language APIs, we need documentation that is native to those languages. All too many of these toolkits provide some rudimentary alternative UI, but it's just an export of the C++ API, and the programmer is expected to read the C++ documentation, and mentally convert that to the appropriate perl, python or what-have-you alternative.

    So what are the easy cross-platform, scripting UI alternatives? Tcl + Tk, python + wxWidgets, and what else? Any way to get at those Swing libraries without heavy lifting with Java?

    1. Re: Other languages by Black+Parrot · · Score: 2, Informative

      > So a big question for me is "what other languages does your toolkit support easily?" Is there a good perl interface? python? scheme? What can I use to lash it together quickly?

      For GTK+, see http://www.gtk.org/bindings.html, where they have a status table for ~28 languages. Presumably the Qt site does the same thing.

      > And when you need an alternative language APIs, we need documentation that is native to those languages. All too many of these toolkits provide some rudimentary alternative UI, but it's just an export of the C++ API, and the programmer is expected to read the C++ documentation, and mentally convert that to the appropriate perl, python or what-have-you alternative.

      FWIW, the GtkAda project does provide pretty good documentation, both a User's Guide and a Reference Manual. There are holes sometimes, but they usually tell me everything I need to know.

      --
      Sheesh, evil *and* a jerk. -- Jade
    2. Re:Other languages by Anonymous Coward · · Score: 0

      How about JavaScript + SWT? Check out Banteng.

    3. Re: Other languages by Anonymous Coward · · Score: 0

      Sure, you have good documentation, but basically your programming with a C or C++ API, not with an API adapted to scripting languages.

      Tk has an API built for use by scripting languages (which makes it a bit harder to use from C/C++, as you often need to call Tcl_Eval() to execute small Tcl snippets or take the road of PerlTk and rewrite it as a pure C API (which incidentally is slower than the newer Perl::Tk, which uses a Tcl interpreter to talk to Tk).

      The API designed for scripting language use is one of the plus points for using Tk for rapid prototyping, you get more control from the C/C++ side, but you usually don't need it for 80% of your work. (and if you need it its easy to add).

    4. Re:Other languages by Anonymous Coward · · Score: 0

      There's a bit of an undercurrent among Javaheads about implementing scripting languages on the JVM; the most prominent things out there right now are Groovy, Jython, and JRuby (one is its own thing, while the two latter are JVM hosted implementations of Python and Ruby, respectively). I've not done a heck of a lot of work with all of 'em, but it's actually pretty easy to build a Swing GUI in Jython, and I know Groovy exposes the Java API underneath it as well (I'm not sure to what degree JRuby does this).

  50. Any real change since Xt/Motif roamed the Desktop? by O2dude · · Score: 1

    I was looking at crusty old Xt/Motif (in combination with ViewKit) the other day and it seems to me that most 'modern' toolkits basically do the same thing that Motif did 900 years ago. Other than AA fonts and widget themes, (stuff that could have been implemented in Motif way back when, and now actually has been for the most part in its Open Source versions) I'm not convinced that GUI programming has moved on a lot since Motif was dropped on GIMP 0.54.

    In fact it seems to me that the only stand-out toolkit is Tk, with its excellent Text and Canvas widgets and dead-simple syntax.

    --
    - It took western civilisation 2000 years to ensure popular literacy, and now we work with icon driven GUI's. Go figure.
  51. Why I won't use GTK. by bored · · Score: 1, Insightful

    Basically its archaic. GUI development is one of the few areas where object oriented design makes a big difference to the programmability of the system. This has been known for the better part of 15 years. All those little buttons/menus/combo boxes/etc with the hundreds of properties to control behavior. The need to override behavior, the need to hook events. The list goes on. Sure you can make it work in a non object oriented environment, but I could be writing everything in assembly too. I don't choose to write everything in assembly, and I'm not going to use a GUI tool kit that isn't object oriented. You can argue that GTK is object oriented C but that completely misses the point since object oriented languages assist in a particular design methodology. Oh, and i'm aware of the C++ wrappers for GTK+ which are just that wrappers, plus they are ugly and poorly maintained. I'm not going to spend all my time debugging the wrapper when I could be getting useful work done.

    1. Re:Why I won't use GTK. by ambrosius27 · · Score: 1

      To dissect your comment:

      (1) a GUI toolkit must be object-oriented: ok, as you mostly concede, GTK+ is object-oriented. Point (1) is moot.

      (2) a GUI toolkit must be written in an object-oriented language. Ok, why is that so? Sure, a language with built-in object-oriented features makes things easier for you. On the other hand, C has the advantages of (a) relatively easy to compile everywhere, (b) ABI compatible, and (c) relatively easy to bind with other languages.

      (3) language wrappers just get in your way, and for Gnome, are poorly maintained. I can see how debugging a program can be more difficult in deciphering whether the bug originates in the wrapper code or the underlying C code. In practice, does this happen very often? More pointedly, what evidence do you have that GTKmm is poorly maintained? Murray Cumming will be very interested to hear why you think that, especially as he puts out new releases with the Gnome release schedule, every six months.

      It sounds like your criticism is mainly that you don't like C for GUI programming and are therefore damning all of GTK+, even though many programs written in other languages use GTK+ happily. GTK+ is a very nice toolkit used by people who like C, C++, Perl, Python, Ruby, and other languages. Some of the most active GTK+ projects these days are written in C++, C#, and Python. As Owen Taylor, a principal GTK+ developer, has said, one of GTK+'s goals is to help people write GUI code in whatever language they like best. It was designed with that goal in mind. So, feel free to write your code in whatever OOP language you like. GTK+ will likely be there to help you. Cheers!

      --

      ~~~~~~~~~
      dissertus scribendo latine videri volo.
    2. Re:Why I won't use GTK. by bored · · Score: 1
      (1) a GUI toolkit must be object-oriented: ok, as you mostly concede, GTK+ is object-oriented. Point (1) is moot.

      That is not what I said. What I said was the people like you claim it is. Its not, anymore then it is possible to write high level code in a macro assembler.

      In practice, does this happen very often? More pointedly, what evidence do you have that GTKmm is poorly maintained? Murray Cumming will be very interested to hear why you think that, especially as he puts out new releases with the Gnome release schedule, every six months.

      Every time I go to use it, I find bugs. Which is every year or so, as such I conclude its poorly maintained. Or maybe poorly excercised is a better description. Maybe its just me, but the title of this thread is "Why I won't use GTK"



      It sounds like your criticism is mainly that you don't like C for GUI programming and are therefore damning all of GTK+, even though many programs written in other languages use GTK+ happily.

      Thats right, I think using C for GUI development is not the most intellegent idea. Sure it has better language bindings, and if your writting GUI code in perl, then go for it, GTK+ fits just with the midset of the kind of person that would consider writing a full GUI application in Perl. Personally I am going to use something that does more to assist my development than hinder it. I'm constantly amazed at the stuff you have to do manually in some of these GUI toolkits. As I sort of stated in another post GTK+ and Glade remind me of doing GUI programming in the early '90s with Borland's OWL and ResourceWorkshop. Today I expect an enviroment more like Borland C++ builder. The techical diffrences (why one is better than the other) are hard to point out, its more a collection of small things that come together to form a complete whole. Some of it is just synatic sugar designed to make things more intutive. For example being able to say MyForm.Width=500; and have the GUI redraw the form to match the given width (if the form is visible, otherwise to save the property) without having to call a function to redraw the form, or call a method to set a property. Another thing that is really nice is having icons/images/default properties stored in resource forks instead of hardcoded into the code somewhere that a resource editor has to parse out. The list goes on things that can be done in C++ for example code like `MyNewform SpecialForm(self);` to get a new form using default properites and have it automatically paint. In the short term it may not seem like much but when you have a GUI toolkit that allows you to write 1 line of code instead of 5 you only have to maintain a 50k program instead of a 250k one.

    3. Re:Why I won't use GTK. by ambrosius27 · · Score: 1

      (1) a GUI toolkit must be object-oriented: ok, as you mostly concede, GTK+ is object-oriented. Point (1) is moot.

      That is not what I said. What I said was the people like you claim it is. Its not, anymore then it is possible to write high level code in a macro assembler.


      Well, then how do you define "object oriented"? GTK+ allows for subclassing, for instance. see here, which references subclassing. See also the GTK+ tutorial at gtk.org, which states, "GTK is essentially an object oriented application programmers interface (API). Although written completely in C, it is implemented using the idea of classes and callback functions (pointers to functions)." I believe GTK+ also allows for encapsulation.

      GTK+ *is* object-oriented. You just want an object-oriented language as well. That's fine. Pick one of these. Good luck.

      --

      ~~~~~~~~~
      dissertus scribendo latine videri volo.
    4. Re:Why I won't use GTK. by bored · · Score: 1
      Well, then how do you define "object oriented"? GTK+ allows for subclassing, for instance. see here, which references subclassing. See also the GTK+ tutorial at gtk.org, which states, "GTK is essentially an object oriented application programmers interface (API). Although written completely in C, it is implemented using the idea of classes and callback functions (pointers to functions)." I believe GTK+ also allows for encapsulation

      Like I said you don't get it. Passing function pointers around, and messing with tables of function pointers is not object oriented programming. Its procedural programming with a bunch of function tables. Object oriented languages support this kind of stuff without a bunch of manual code. Its like my comparison to macro assemblers, you can write all kinds of high level macros to simulate for loops, if then else conditionals etc. At the end of the day though your still programming in assembly not some high level procedural language. This means that the syntax will be clunky, and when the maintenance programmer shows up they have to learn a bunch of system specific macros. Running GTK in a language with OOP support doesn't make it mysteriously OOP either.

  52. Why I chose GTK+ by ChaoticCoyote · · Score: 3, Informative

    I haven't read the article, since GTK+ is already my preferred GUI toolkit. And this in spite of the fact that I run KDE as my primary desktop! I run both Gnome and KDE, and my choice of KDE over Gnome is based more on organization and flexibility than it is on the underlying GUI toolkit.

    As background: My wrote my first GUI programs back in the days of Window 3.1, and while most of my work is on data-crunching engines, I do write quite a few GUI applications. I need to rapidly generate an interface, back it with code, and have it presentable on Windows and Linux.

    As a programmer, I don't like QT. It feels klunky, bloated; nor do I find QT Designer all that friendly. Beyond matters of taste and comfort, TrollTech requires a commercial license for certain tools (e.g., a MathML widget) that I can obtain under GPL for GTK+.

    I'm rather fond of Glade. Most of my GTK+ GUI programs are in C, some in C++; I define an interface in Glade, fill in the appropriate functions, and I'm ready to rock and roll.

    GTK+ 2.8 brought with it Cairo, a very nice drawing toolkit. I just put together a little interactive graphics application, just to better familiarize myself with Cairo, and the result is quite nice.

    In the near future, I'll be writing some very extensive OpenGL applications, and I'll likely wrap these in a GTK+ GUI. If something better comes along, I'll try it -- but for now, GTK+ provides what I need. Your mileage may vary.

  53. Mod parent down by Anonymous Coward · · Score: 0

    I happen to use GTK+ to run both The Gimp and Gaim on XP, so the overhead isn't that big a deal. I even sat there and downloaded Gaim with GTK+ over 33.6kbps dialup. The whole point is that the Windows ports of these toolkits give cross-platform compatability; win32 defines cross-platform as "other versions of Windows."*

    For instance, you have the option of downloading the .NET framework which Microsoft touts as the alternative to Java (and in some ways it is), but that is 23.1 MB for v1.1 and 22.4 MB for v2.0, and this doesn't even include the Windows Installer you might have to upgrade first. How about that overhead?


    *Microsoft's .NET has some amount of compatability with other platforms too thanks to Mono, but why not opt for a truly cross-platform toolkit?

  54. GTK, the good and the bad by sick_soul · · Score: 2, Insightful

    I like GTK and use it both with C and with python (pygtk).
    I also used other toolkits, like tk, wxwindows, QT, java swing.

    I like the native C API + language bindings for every taste, so I can
    program GTK at the abstraction level I want. I like the pango markup. Also interface prototyping is fast enough (though not as fast as with tk) [...]

    Among the few things I do _not_ like are the new GtkTreeView, which is very general and powerful, but it makes doing very simple things too complicated, and the terrible new gtkFileChooserDialog.

    However, I can still avoid those using some deprecated widgets (for now).

  55. Mod parent up by Anonymous Coward · · Score: 0

    so true, so true

  56. Re:Development of GTK+ by EzInKy · · Score: 1


    These days any serious developer doesn't use plain GTK+ anymore.


    Once you leave plain old 'C' a library's usefulness takes a serious hit. Even C++ requires contortions to be callable from other languages.

    --
    Time is what keeps everything from happening all at once.
  57. how about other toolkits? by belmolis · · Score: 1

    I'm surprised that nobody seems to have much to say about how GTK+ compares with other toolkits other than Qt. How does GTK+ compare to Tk and and WxWidgets? I'm curious in part because, after a long period of doing no graphics programming other than some tweaks to old programs, I went from using raw Xlib to Tk. I've studied GTK+ a little but haven't really used it. My impression is that GTK+ may have the advantage when you need very fine control, but that otherwise Tk is much faster to write and requires less code because it takes care of many of the details for you and chooses good defaults. The only comparisons of this larger set that I've seen are rather dated.

    1. Re:how about other toolkits? by sick_soul · · Score: 2, Insightful

      > How does GTK+ compare to Tk and and WxWidgets?

      GTK is more powerful (you can tweak widgets more), but it's bigger and more painful to program. You can do the most complicated things, but easy things are longer to achieve. To the random user, a well built GTK interface looks decent.

      With Tk you have a much simpler API, where the common operations are much easier to perform. However some things you can do in GTK are almost impossibile to perform on tk (things the average programmer seldom needs though). To the random user, tk looks horrible. To me it looks perfectly ok, so I really do not understand what hurts people's eyes.

      I have played with wxWidgets, but I leave the comparison to someone else.

    2. Re:how about other toolkits? by WWE-TicK · · Score: 1

      wxWidgets optionally (and I think is the default anyway) wraps around GTK+ on UNIX like OSes. So when you use wxWidgets on these operating systems, you indirectly also use GTK+.

    3. Re:how about other toolkits? by belmolis · · Score: 1

      I've seen the complaint that Tk looks awful on Unix but as I understand it the complaint is out of date as Tk on Unix has not been based on Motif for some time. Do ordinary users still think that Tk looks awful? It looks fine to me, but I too am not a good judge of what the average user will like.

    4. Re:how about other toolkits? by schlenk · · Score: 2, Interesting

      Badly written Tk looks horribly Motif like and dated. Good Tk (with theming thanks to the tile project http://tktable.sourceforge.net/tile/ ) can look quite nice an modern, take a look at the screenshots. Its just the little extra polish thats often missing in Tk apps, because the authors are adding features instead of polishing the GUI.

  58. Re:Time For Apple To Release The Cocoa Runtime by Anonymous Coward · · Score: 0

    I will take your advice for what it's worth--nothing.

  59. Re:Why you shouldn't use the Lessor GPL by Arker · · Score: 1

    That was not flamebait, that was informative. It also contained an error, however, it's the LESSER GPL, not the library gpl. It's ironic that GTK was started because of licensing problems with QT, but now it's GTK that has licensing problems.

    --
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-
    Friends don't let friends enable ecmascript.
  60. Re:Time For Apple To Release The Cocoa Runtime by penguin-collective · · Score: 1

    That wasn't a smart thing to say if you want anyone with even a passing knowledge of the subject to take anything you have to say seriously.

    There's no need to debate about this, you can simply read the GNUStep Testimonial and Mission Statement.

    GNUStep isn't going for full compatibility, but the technology, APIs, and libraries are very similar, and large parts of it are identical at the API level.

  61. Opensource GUI Toolkits in a nutshell by Anonymous Coward · · Score: 0

    i've programmed a number of these toolkits over the years, quick reviews..

    gtk - really nice, but low lots of low level OO encapsulation ( ala treewidgets, omg.), which means any signifigant application is going to be developing its own abstractions on top of the base apis. using it in C is painful imho, but it has really nice language bindings in just about every language (python,csharp,ruby,java,etc) where its OO nature can shine through. The biggest issue with gtk is the lack of portablity imho, as regards the lack of native widgets on windows or the lack of a solid mac port, on win32, you'll need to distribute with WIMP themes to make it resemble native, but thats not always a viable solution. on OSx you have to run it as an X11 app ( read shitty mac end user experience), although some preliminary work by imendio to port it native to OSx has been done, its still at least a year away from being solid, and it still doesn't look or feel native. as far as gui design tools go glade is pretty weak, it works, but its useability and functionality are behind the times, tools like stetic and gazpacho are alternatives i'd recommend. gtk's secret weapon are in all its cross-platform extensions accessible (mozembed, spell, sourceview, canvas).

    tk - its dead, forget about it, its really low level, and looks like ass everywhere.

    qt - imho, this is the best solution for cross platform applications. the toolkit api is very well thought out and useable, and includes mondo functionality (db access, xml parsing, network, etc), and looks good on win32 and osx. the accompanying toolset in qtdesigner/linguist are strong. qt 4.1, makes printing a snap with pdf output. it scales very well to larger programs and the gpl version of QT is now available for all platforms ( embedded, linux, osx, win32).

    wxwidgets - for good looking cross platform apps, this is a strong contendor, without the dual license (GPL or Commercial) nature of Qt, however its API designs are imho much weaker, and can turn larger apps into a mess unless you've got strong experience with building GUI apps. ie. the cost to maintain and extend wx apps are higher imho then qt or gtk. the non commericial gui builders for wx are all pretty weak imho, and most wx apps i've seen tend to just lay things out programatically. that said if you want to build cross platform, non gpl compatible apps, then its worth a strong consideration. the chandler project, over the last year, has been doing sponsorship of getting wx's osx support up to production standards, and it works well now.

    incidentally all of the above have first class bindings to python ;-)

    1. Re:Opensource GUI Toolkits in a nutshell by schlenk · · Score: 1
      tk - its dead, forget about it, its really low level, and looks like ass everywhere.
      Tk isn't dead. Call it mature (or dying if your pessimistic, your choice). Try looking at the screenshots at: http://tktable.sourceforge.net/tile/ If you replace 'ass' with 'Motif', your right that Tk's default look is very much Motif and dated.
  62. Only 40.7% by tepples · · Score: 1

    most people you are concerned with have broadband now

    Are you sure that this is true? True, 63.8% is more than half, but you're still cutting 36.2% out of your market. In fact, if your application involves communication, the lack of network effect means that you're limiting your market even further, as users who have broadband need to communicate with users who do not have broadband. For a word processor, this means a compatible file format. For instant messaging, this means a compatible wire protocol. As network effect tends to apply quadratically, I'd estimate that a broadband-only application is only 100% * .638^2 = 40.7% as useful as an application that is practical over both broadband and dial-up.

    1. Re:Only 40.7% by Anonymous Coward · · Score: 0

      He probably lives in Western Europe...

  63. .NET Framework is fscking huge by tepples · · Score: 1

    Microsoft recommends using C# for gui apps now.

    Developers of applications distributed to the public over the Internet typically won't use a language that depends on the .NET Framework until the .NET Framework takes significantly less than an hour to download over a dial-up Internet connection. (I am permitted under trade secret law to state this benchmark result only because I have not installed the .NET Framework and thus have not accepted its EULA.) The GTK+ package (GTK+, GDK, Glib, Pango, etc.) currently has a much smaller download size footprint than the .NET Framework.

    1. Re:.NET Framework is fscking huge by laffer1 · · Score: 1

      Developers don't care about download sizes. They don't think about them. Why else would iTunes be 37mb? Have you seen ati's video drivers? What about virus definitions? The last version of msn messenger?

      Besides, if someone does have the .NET framework installed, apps are much smaller than MFC versions. I've written smaller apps (blogging client) that include ms word integration for spell check (so a bunch of dlls) and still its only 800kb. The non developer version of the .NET framework is like 21mb which is smaller than iTunes. My app and the framework are still under iTunes.

  64. Fat cross platform binaries, just do it by schlenk · · Score: 1

    Another variant for Tcl/Tk with Tclkit:
    http://www.equi4.com/tclkit

    Create a starkit with:
    sdx wrap myapp
    Run it on any of the supported platforms for Tclkit (30 or so http://www.equi4.com/pub/tk/downloads.html) with:

    tclkit myapp.kit

    Or do a transaction safe differential update of the app from the internet server with:
    sdx update myapp.kit

    And yes, you can build fat binaries which can include compiled C libraries for use on Mac/Linux/Windows. If they use the Tcl Stubs mechanism you do not even need the same Tcl version for the runtime you used for the libraries, no recompile of library packages for minor version changes. (thats currently 7 years of no recompiles for most Tcl extensions).

  65. Modula 2 bindings? by Anonymous Coward · · Score: 0

    I'm using XDS Modula 2 and would like to be able to use GTK+ easily. Thanks

  66. Hmmm by Delifisek · · Score: 1

    GTK widgets are ugly...

    Gaim far more adwanced than Messenger and look crappy than messenger...

    --
    [My english is better than most other people's Turkish, so please point out mistakes politely. Thank you.]
  67. Qt is a bad example by HiThere · · Score: 1

    The Qt license requires that if you start the development with the GPL version of the library, that you ONLY develop it with the GPL version, and that if you release the code, that it be released under a GPL license. You can't decide after starting development that you might want to sell it, and then buy a commercial license. If you start with a GPL version, you must then stay with that version. This isn't a requirement imposed by the GPL, it's imposed by Trolltech. (And I suppose that technically it's a condition of the license of their commercial library rather than of their GPL library.)

    So don't use Qt as an example here. They have added their own wierdnesses.

    --

    I think we've pushed this "anyone can grow up to be president" thing too far.
    1. Re:Qt is a bad example by agurkan · · Score: 1

      I stand corrected. Thank you.

      --
      ato
  68. Touching by bitspotter · · Score: 1

    Everything it touches is also made open by default.

    Why, hello, Mr Ballmer! Welcome to Slashdot.

    You are right of course, if by "touching", you mean intentionally and laboriously incorporated into your own source code files. The disingenuous implication is that developers will wake up one morning and find a surprise in their code. "Oh my! How did THAT get in there!"

    GPL code is never made open by default, but by choice.

  69. Re:Development of GTK+ by woah · · Score: 1

    Why the troll moderation?

  70. Is this a joke? by MythicalMan · · Score: 1

    How can someone dare to call that poor advertising piece an "article"? There is no useful information in the text that can not be obtained at GTK.org or after five minutes of web searching.

    And they rated it "intermediate". Spare me the "low" ones...

    --
    --- Signature? You must be kidding!
  71. Re:yawn by Anonymous Coward · · Score: 0

    AJAX for anything besides dog-slow web applications with broken back buttons?

    Unlikely.

  72. Why you should drive a Ferrari (short version) by spaceturtle · · Score: 2, Funny
    Walking can be time consuming, driving a Ferrari is much faster. The Ferrari has the following features:



    - A steering wheel for ease of navigation!

    - Four wheels providing good stability, even while turning!

    - Car seats, so you don't fall though the floor!

    - There is even a vibrant community of fuel stations than can refuel your Ferrari!!!

  73. In the interests of salesmanship by obeythefist · · Score: 2, Informative

    Yet another slashdot article referring to a product without explaining the purpose of said product.

    GTK+ is a toolkit for GIMP.
    GIMP is an open sourced graphics manipulation package (think Photoshop but free as in speech and beer).

    --
    I am government man, come from the government. The government has sent me. -- G.I.R.
  74. With the bazillion GUI toolkits out there.. by 0xB00F · · Score: 1

    ...none of them seem to offer an easy, consistent, and cross-platform solution to reports printing. I think this area of GUI toolkits is a bit lacking. There are third-party solutions like GNOME-Print, JasperReports (Java), ReportLab (Python), one other toolkit which QT-based, plus two other wxWidgets-specific solutions and yes, there's the expensive and Windows-only Crystal Reports. But they offer either a steep learning curve to use (Jasper) or tend to be a lot more fundamental in the features offered.

    It's pretty easy to create a nice GUI program with all of these toolkits. But when it comes to implementing report generation and printing, it's a total nightmare. I know GUI toolkits should stick to GUI-specific objects and functions, but printing (and report generation) should be taken into consideration too.

    So far, the only workable solution I have come across is using ReportLab as the report generation backend, with either PyGTK+, PyQT, or wxPython at the GUI frontend.

  75. Re:Development of GTK+ by wysiwia · · Score: 0

    I have no idea, ask Slashdot.

    Anyway, as a troll I'm leaving Slashdot for a news site without unfair moderation.

    O. Wyss

    --
    See http://wyoguide.sf.net/papers/Cross-platform.html
  76. You might want to read your link... by Anonymous Coward · · Score: 0
    Using the ordinary GPL is not advantageous for every library. There are reasons that can make it better to use the Library GPL in certain cases. The most common case is when a free library's features are readily available for proprietary software through other alternative libraries. In that case, the library cannot give free software any particular advantage, so it is better to use the Library GPL for that library.
    Did you actually read the link or are you just repeating what you have read from other QT supporters?
  77. The replace them! by krischik · · Score: 1

    With GTK+ - like most modern widget toolkit - you can replace the widgets if you don't like them. There are literaly hundreds of different so called "Themes".

    And you don't have to pay for them - unlike Windows Widgets kits which usually cost $$ and the development kit isn't free either.

    Martin

  78. Re:Development of GTK+ by Anonymous Coward · · Score: 0

    You must be new here. If you're looking for a news site where useful comments don't get modded down into oblivion by crack-headed moderators then you've come to the wrong place.