Slashdot Mirror


WxWidgets 3.0: First Major Release in Several Years

First time accepted submitter VZ writes "The first new stable wxWidgets release in years and the first new major release since 1998 has just been announced. wxWidgets 3.0 now includes official support for Cocoa-based 32 and 64 bit applications under OS X, GTK+ 3 under Unix and has thousands of other improvements." Update: 11/12 01:00 GMT by U L : Clarification: it's been several years since the 2.8 release series, and fifteen years since wxWidgets 2.0.

147 comments

  1. Math by Anonymous Coward · · Score: 0

    1998+7 != 2013

  2. Seven Years by Anonymous Coward · · Score: 0

    What's 2013 minus 1998 again?

    1. Re:Seven Years by narcc · · Score: 2, Funny

      Seven, of course.

      Didn't you read the summary?

    2. Re:Seven Years by VZ · · Score: 3, Interesting

      This is my first ever submission to /. so maybe it's perfectly normal and I just have no idea how do these things work but I'm as puzzled as you because the original submission said "First Major Release in 15 years"...

    3. Re:Seven Years by twistedcubic · · Score: 2

      Several != Seven

    4. Re:Seven Years by narcc · · Score: 1

      It's been corrected from Seven, as evidenced by other early comments, including the one to which I replied.

    5. Re:Seven Years by VZ · · Score: 1

      P.S. Thanks for the editors for correcting this, I'd still prefer my original submission but at least the current one is not factually wrong any more.

    6. Re:Seven Years by gmhowell · · Score: 3, Insightful

      The irony is that while the readership complains about the lack of editing of submissions, as your story and others illustrate, those editors do far more harm than good when they bother to read/alter submissions.

      --
      Jesus was all right but his disciples were thick and ordinary. -John Lennon
  3. A suggestion... by BitterOak · · Score: 0

    Yes, we can all look it up, but would it have killed the submitter or editors to mention in the summary, even with a sentence or two, what the heck WxWidgets actually is?

    --
    If I can be modded down for being a troll, can I be modded up for being an orc, or a balrog?
    1. Re:A suggestion... by Anonymous Coward · · Score: 0

      Sounds like a different implementation that does the same thing as QT.

      Anyone used this and QT that can give us a comparison? I've only used QT and for the most part like it.

    2. Re:A suggestion... by feral-troll · · Score: 1

      Yes, we can all look it up, but would it have killed the submitter or editors to mention in the summary, even with a sentence or two, what the heck WxWidgets actually is?

      WxWidgets, support for OS X, Cocoa, GTK+ 3 ... if you are a geek that kind of tells you everything you need to know to make a well educated guess. If you are not a geek, and missed the link to their website in the summary, WxWidgets is a cross-platform library for GUI development on Windows, OS X, Linux and mobile/embedded flavors of these same OS'es. It allows you to develop apps for anything from full blown desktop OS'es through mobile phones, to things like cash registers and handheld credit-card swiping machines.

    3. Re:A suggestion... by guruevi · · Score: 1

      Please hand in your geek card.

      If you are on /. with an ID smaller than mine, you should know what wxWidgets is. It's been covered before when they got Perl integration: http://developers.slashdot.org/story/01/09/18/121209/new-perl-gui

      --
      Custom electronics and digital signage for your business: www.evcircuits.com
    4. Re:A suggestion... by Guy+Harris · · Score: 4, Informative

      Sounds like a different implementation that does the same thing as QT.

      Not exactly. Both Qt (not QT) and wxWidgets are cross-platform, but wxWidgets uses native widgets wherever possible (as their home page says, "Unlike other cross-platform toolkits, wxWidgets gives its applications a truly native look and feel because it uses the platform's native API rather than emulating the GUI."), whereas Qt primarily uses its own widgets.

    5. Re:A suggestion... by Anonymous Coward · · Score: 1

      Does it support Qt? :P

    6. Re:A suggestion... by savuporo · · Score: 2, Insightful

      And Qt is not really C++ as it relies on MOC.

      Its about time for a GUI toolkit that actually fully leverages what C++11 has to offer.

      --
      http://validator.w3.org/check?uri=http%3A%2F%2Fwww.slashdot.org Errors found while checking this document as HTML5!
    7. Re:A suggestion... by Anonymous Coward · · Score: 0

      Not yet, but there seems to be a branch with partial Qt support.

    8. Re:A suggestion... by VZ · · Score: 1

      Not that I can't get a joke but actually, there is wxQT (albeit in a pretty preliminary state AFAIK, but then I've never really looked at it myself).

    9. Re:A suggestion... by Anonymous Coward · · Score: 0

      "If you are not a geek, and missed the link to their website in the summary," ...then why are you reading Slashdot? This isn't a beginner's guide to computers.

      I assume this is what you were too polite to say. I'm not going to read the American Journal of Analytical Chemistry and berate them for not including enough explanations for laypeople. Is it perfectly okay to have resources that aren't aimed at laypeople or are specific to a field. If you know modern software development, you know wxWidgets, have run across it, or can infer by context what it is. If you don't know the field, you are simply demanding that people who *do* know it hold your hand and lower their discourse to your level, which is unreasonable.

      To anybody flailing about for help: people will be polite and explain it, but demanding that a site aimed at a certain level lower the bar to your level of understanding ultimately doesn't help you in the long run. You'll understand everything all of a sudden, but only because the site's caliber of stories lowered itself to your knowledge level. Instead, try looking things up you don't understand for a few years, and when this all seems natural and you understand all the stories, you will have acquired a higher knowledge level and improved yourself rather than reducing Slashdot.

    10. Re:A suggestion... by Anonymous Coward · · Score: 0

      > And Qt is not really C++ as it relies on MOC.

      Yes, we can all look it up, but would it have killed you to mention, even with a sentence or two, what the heck MOC actually is?

    11. Re:A suggestion... by shutdown+-p+now · · Score: 1

      Qt also gives the application native look and feel, for the most part - it just achieves the same by using low-level primitives (e.g. uxtheme.dll on Windows).

    12. Re:A suggestion... by Guy+Harris · · Score: 1

      Qt also gives the application native look and feel, for the most part - it just achieves the same by using low-level primitives (e.g. uxtheme.dll on Windows).

      But some of its standard dialogs don't exactly look like the native dialogs in all cases; for example, on OS X, its "file open" dialog is most definitely different from the native one. (I'm not sure about Windows, but I suspect Gerald had a reason to continue to use the native dialog in Wireshark rather than relying on Qt's dialog.)

    13. Re:A suggestion... by LWATCDR · · Score: 1

      A. This is news for nerds.
      B. Click on the supplied link.

      It is a cross platform UI toolkit that defaults to native widgets.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    14. Re:A suggestion... by Anonymous Coward · · Score: 1

      Qt is rather inferior to QT, to be honest.

      I've never known a window widget library to have good drink selection and fresh donuts.

    15. Re:A suggestion... by Anonymous Coward · · Score: 0

      The funny thing is it has a rather unique name that comes up in Google right away, so there is no ambiguity preventing you from figuring it out, only laziness. It might be nice to save some people the effort, but this is rather different than some obscure acronym that overlaps with several other technical field acronyms with different meanings.

    16. Re:A suggestion... by Anonymous Coward · · Score: 0

      The file dialog used by Qt for Windows is the native one.

    17. Re:A suggestion... by Anonymous Coward · · Score: 1, Informative

      And Qt is not really C++ as it relies on MOC.

      Its about time for a GUI toolkit that actually fully leverages what C++11 has to offer.

      C++11 is not even supported on most of the target compilers yet. And you can use c++ for signals/slots these days without string intermediaries.

      http://qt-project.org/doc/qt-5.1/qtcore/qobject.html#connect-4

      MOC just generates some signals/slots boilerplate code, which is C++ code. You might as well bitch that UIC is not C++ either because it generates C++ boilerplates from XML.

      PS. the moderators utterly fail - the parent is neither informative nor correct. oh well. I guess I and everyone at Trolltech/Nokia/Digia didn't know they wasn't using c++ for last 10+ years.

    18. Re:A suggestion... by Guy+Harris · · Score: 1

      The file dialog used by Qt for Windows is the native one.

      Even if you add extra widgets to the dialog, as Wireshark does?

    19. Re:A suggestion... by Desler · · Score: 1

      And Qt is not really C++ as it relies on MOC.

      A non-sequitur at it's finest. Using MOC does not make Qt any less a C++ framework since the only way Qt can be compiled is with a C++ compiler.

    20. Re:A suggestion... by Desler · · Score: 1

      Only if you use the static methods on QFileDialog. If you don't it's the non-native file dialog.

    21. Re:A suggestion... by Desler · · Score: 0

      Qt is far more than a widget library. Have you ever even used it?

    22. Re:A suggestion... by Desler · · Score: 1

      *Its* finest, of course.

    23. Re:A suggestion... by brantondaveperson · · Score: 4, Informative

      I see what you mean, but nevertheless when editing Qt code, one sees additional keywords that do not appear in the C++ standard. The fact that these keywords are pre-processed by a special compilation step into C++ code does not make the code you actually edit standard C++. I think this is an important distinction.

      Also, Qt has its own notions of strings and files and threads and what-have-you. Once Qt is in your code, you ain't getting it out.

    24. Re:A suggestion... by BanHammor · · Score: 1

      WOOOSH!

    25. Re:A suggestion... by Anonymous Coward · · Score: 0

      It's about time for a GUI toolkit that stops with the C++ madness.

    26. Re:A suggestion... by Anonymous Coward · · Score: 0

      Really? The first C++ compilers were generating C. Would someone saying that C++ is not really C would have commited a non-sequitur at "it's" finest?

    27. Re:A suggestion... by savuporo · · Score: 1

      My C++ compiler does not compile signal: or slot: tokens. Qt is not C++ in the same way as Microsoft COM is not C++, even though its mostly built with C++ and MIDL generator spits out C++ boilerplate as an option.

      --
      http://validator.w3.org/check?uri=http%3A%2F%2Fwww.slashdot.org Errors found while checking this document as HTML5!
    28. Re: A suggestion... by Danious · · Score: 1

      "Also, Qt has its own notions of strings and files and threads and what-have-you. Once Qt is in your code, you ain't getting it out."

      Ummm, so does wx, that's the only way to have sensible cross-platform support. Once wx is in your code, you ain't getting it out...

    29. Re:A suggestion... by Anonymous Coward · · Score: 0

      > And Qt is not really C++ as it relies on MOC.

      Who cares.

      I always hear "OH MY GOD A MOC" and "NOT REAL C++" but I never hear any reason why it's actually a problem. And effectively (from the code you have to write) it's much prettier than comparable solutions.

      > Its about time for a GUI toolkit that actually fully leverages what C++11 has to offer.
      Qt is doing that: http://qt-project.org/wiki/New_Signal_Slot_Syntax

    30. Re:A suggestion... by DrXym · · Score: 1

      Also, Qt has its own notions of strings and files and threads and what-have-you. Once Qt is in your code, you ain't getting it out.

      That could be said of most cross-platform toolkits and its hardly surprising. C/C++ traditionally hasn't bothered to make the distinction between an immutable and mutable string, nor provide hints as to who owned the string (implementation or caller), or of making efficient use of memory, or of providing utils to convert or manipulate character sets or encodings. So the toolkits typically encapsulated strings in classes to provide these things.

      And even though the standard C++ library has a std::string class, I expect toolkits have enough reasons to stick with their own classes. And that's just strings. I expect there is a similar story for things like threads (and various thread patterns like thread pools), collections, semaphores, mutexes, file handles, sockets, etc.

    31. Re:A suggestion... by Anonymous Coward · · Score: 0

      MADNESS!? This. Is. SLASHDOT!!!

    32. Re:A suggestion... by Anonymous Coward · · Score: 0

      Anyone used this and QT that can give us a comparison? I've only used QT and for the most part like it.

      Sure. Qt is better. And you can believe it because you don't know me, and I'm putting this on the internet for everyone to see.

      More seriously, they're both good. I've used them both, but in the end I like writing applications using Qt much more that wxWidgets, and Qt is more portable too, as it supports systems beyond the main 3 (windows, osx, unix) such as mobile devices (blackberry 10, meego/harmattan/and-that-dead-line, and beta-ish support for android and ios).

      Qt has excellent python support (though I haven't used it, but I read that on the internet somewhere) but does not have Perl support. Wx has a decent perl library though (which I have used)

    33. Re: A suggestion... by brantondaveperson · · Score: 1

      From the wx docs:

      "You may notice that wxString sometimes has many functions which do the same thing like, for example, Length(), Len() and length() which all return the string length. In all cases of such duplication the std::string-compatible method (length() in this case, always the lowercase version) should be used as it will ensure smoother transition to std::string when wxWidgets starts using it instead of wxString."

      Which shows that they at least appreciate that you should leave as much as possible to the language you're writing your toolkit in.

      Write portable C++ code, write a UI layer using a portable toolkit. But don't let that toolkit get its tendrils into the bulk of your code, because at some point you'll wish you hadn't.

    34. Re:A suggestion... by suy · · Score: 1

      You've made me ruin my moderation in this thread, but I can't let such wrong statements unreplied.

      The fact that these keywords are pre-processed by a special compilation step into C++ code does not make the code you actually edit standard C++.

      Wrong. Is not a special compilation step. Is the classic C preprocessor, which is as standard C++ as any other feature of the language. Does this mean that udev is not standard C because it defines a foreach with a macro?

      Also, Qt has its own notions of strings and files and threads and what-have-you. Once Qt is in your code, you ain't getting it out.

      Qt has its own notion of string, because till C++11 there was no string type that allowed Unicode. Likewise for threads. Besides, QThread has features to integrate with an event loop, notion that the standard library doesn't have.

      How the hell were programs written with WxWidgets using threads? Relying on Windows POSIX capabilities? Seriously.

      And don't even try again the "but Qt duplicates all the containers". Qt's containers use a very different implementation (e.g. with implicit sharing), and so have pros and cons against STL containers. And Qt's containers have compatibility APIs with the STL ones as well. And you are not forced to use them at all. If some part of the API exposes a Qt container, you can convert to and from STL, since such functions are provided.

      The C++ standard library is now much better than it used to be, but Qt started in an age where the STL wasn't even an acceptable option in all the environments where it had to run.

      Once Qt is in your code, you ain't getting it out.

      Certainly not. People is migrating from VxWidgets (e.g. VLC) to Qt, and not the other way around. Why it might be? Maybe is because is such a good application framework that is convenient to use, even for non-graphical applications.

    35. Re:A suggestion... by suy · · Score: 1

      My C++ compiler does not compile signal: or slot: tokens. Qt is not C++ in the same way as Microsoft COM is not C++, even though its mostly built with C++ and MIDL generator spits out C++ boilerplate as an option.

      My C++ compiler doesn't compile "#include" either. Because it doesn't have to. You need to run the file through a preprocessor. That's part of the standard, and is unavoidable at this time.

      If don't like the use of the C preprocessor, fine. But don't lie saying that is not "standard". It might not be the part of the standard that you like the most, but is standard. And using a tool for generating code is perfectly normal. Or is protobuf no longer a "standard C++" tool?

      There is a proof of concept clang plugin that would provide the QObject features without MOC. That doesn't make it better in all use cases, since that would be tied to a compiler.

      No, seriosly, one might not like one solution to a problem. But having no solution is worse. If one day there is a better solution, the Qt project will adopt it. But right now there isn't one that fills all the features provided by Qt with the current implementation.

    36. Re:A suggestion... by brantondaveperson · · Score: 0

      You've made me ruin my moderation in this thread, but I can't let such wrong statements unreplied.

      Well, that's no bad thing. Replies > Moderation, IMHO.

      Wrong. Is not a special compilation step. Is the classic C preprocessor, which is as standard C++ as any other feature of the language.

      Really? I thought that moc.exe was a special bit of magic that transformed your code around a bit, and generated 'moc' files (which are actual C++, of course). I didn't know it was just the C pre-processor, and by implication that all the magic is implemented as macros.

      None of the reasons that Qt had for its own implementations of a whole bunch of stuff stand up anymore. And some of them, the copy-on-write semantics of the containers for instance, run contrary to some of the design principals of C++. Which are that you don't pay for what you don't use. You pay for copy-on-write because the container must be thread-safe, whereas it seems to me that one should use more explicit constructs such as smart pointers to achieve such things.

      Qt just smells of a bit of Not Invented Here syndrome to me...

    37. Re:A suggestion... by spitzak · · Score: 1

      Qt uses the moc precompiler, which is *not* c macros. It does transformations to the input text that is impossible with C macros. If it was possible with macros they would just have you include some QtMacros header at the start and not have to run a Qt-specific program that wrote the input to the C++ compiler.

      Qt has its own notion of string, because till C++11 there was no string type that allowed Unicode

      Only for fools who thought you need 16-bit code units to store a larger character set, rather than a variable-length encoding. Considering UCS-2 has been scrapped and replaced by the variable-length UTF-16 encoding you look pretty stupid now. And we are all paying for Qt's and Python's and Window's blindness to how to actually get things done (hint: look up UTF-8 for a solution proposed 30 years ago now and implemented in ONE DAY on Plan9). 16-bit code units is a blight that has probably caused more damage to internationalization that the most red-neck American programmer.

    38. Re:A suggestion... by suy · · Score: 1

      Qt uses the moc precompiler, which is *not* c macros. It does transformations to the input text that is impossible with C macros.

      Next time you write about something, use it first, please. MOC is not a precompiler nor "transforms" input text. It generates code. Like a bazillion other tools that generate perfectly standard C++ code.

      Only for fools who thought you need 16-bit code units to store a larger character set, rather than a variable-length encoding.

      Execellent. That's why everyone is using std::string in i18n-ed text, and why C++11 didn't introduce new string types.

      But yes, call people stupid as long as you want. Now you are probably right.

    39. Re:A suggestion... by spitzak · · Score: 1

      What I meant was exactly what you said: MOC is *not* a macro expansion. I was responding to somebody earlier who claimed it was macros.

      Yes, intelligent people are using std::string in i18n text, and in fact the best i18n and Unicode support is from libraries that work this way. The biggest impediment to Unicode is morons who want to treat it as glyphs and thus think it is really important to work with the code units rather than sequences of text. Look up UTF-8 before you stick your foot further in your mouth.

    40. Re:A suggestion... by suy · · Score: 1

      Read again the thread. You said that MOC is a precompiler (wrong, is a code generator), and that it transforms the input text in ways impossible with C macros (even more wrong).

      I said "Is the classic C preprocessor" in response to "these keywords are pre-processed by a special compilation step into C++ code" which is absolutely right.

      And you still fail to explain how you can use std::string for text instead of for low level manipulation of the string bytes.

    41. Re:A suggestion... by spitzak · · Score: 1

      I see. You wrote "Is the classic C preprocessor,..." which I misread as "It is the classic C preprocessor..."

      I would argue that both the C preprocessor and MOC *are* "compilation steps", however.

      And you still fail to explain how you can use std::string for text instead of for low level manipulation of the string bytes.

      By using pattern matching. For instance, strstr(utf8text, "utf8char") will find the character given in "utf8char" (with the really nice advantage that the definition of "character" can be modified to follow the Unicode standard). I would be very interested in why you think this is impossible. Should be fascinating!

    42. Re:A suggestion... by suy · · Score: 1

      OK, I give up. The fact that you still think that using a string as a vector of bytes is comparable with a class that is capable of understanding the text it stores, with some encoding conversion capabilities, and more, should be a clear enough indication that we don't have the same expectations on what is a class for human text. And the fact that you still try to put words in my mouth signals that it isn't worth wasting time with you.

      Luckily enough that people admit that you should use a Unicode library, because even C++11 supports Unicode terribly, and there is work underway to improve it. Meanwhile, I'm happy to have QString. And I'll be happier if with Qt6 there is a type that can replace it.

    43. Re:A suggestion... by spitzak · · Score: 1

      Maybe you should read stuff from people who actually program:

      http://www.utf8everywhere.org/

      Here is some actual comments from boost developers:

      http://www.boost.org/doc/libs/1_55_0/libs/locale/doc/html/recommendations_and_myths.html

      Here is an actual proposal to fix filenames on Windows by translating from UTF-8 (filenames on Windows are the *only* reason people use UTF-16, and Microsoft's refusal to allow the a api to handle UTF-8):

      http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3505.html

      Long discussion with many points of view (including yours) but I hope this convinces you that there is disagreement with you:

      http://programmers.stackexchange.com/questions/102205/should-utf-16-be-considered-harmful

      Here is somebody trying to patch boost to handle unicode by supporting UTF-8:

      http://sourceforge.net/p/tinyxml/patches/54/

  4. Some (in)equations by fatphil · · Score: 5, Funny

    2013 - 1998 = 15

    Fifteen != Seven

    Slashdot Editors != Editors

    --
    Also FatPhil on SoylentNews, id 863
    1. Re:Some (in)equations by Anonymous Coward · · Score: 1

      "The first new stable wxWidgets release in years and the first new major release since 1998"

      Read that again more carefully.

    2. Re:Some (in)equations by fatphil · · Score: 0

      Explanation, which the useless wastes of biomass couldn't be bothered to include in the summary:

      This is the first stable release for 7 years, which presumably has had a whole bunch of maintenance (minor) releases in the prior 8 years since the last actual "major" release.

      Strangely, I don't see IOS and Android (yeah, yeah, and Tizen, not that you pay me to say that) listed as supported platforms, so they're kinda marginal here.

      --
      Also FatPhil on SoylentNews, id 863
    3. Re:Some (in)equations by BSAtHome · · Score: 1

      "Big number" minus "Another Big number" is approx.7

      That is about right, isn't it?

      Just like 2+2=5 for large values of 2.

    4. Re:Some (in)equations by twistedcubic · · Score: 1

      It looks like the new generation of kids is redefining "several" to mean "seven". Generally, "several" is used to mean more than three, but not much more than 3. The progression is "a couple" (2), "a few" (3), "several" (more than 3, but not too many), and "many".

    5. Re:Some (in)equations by Aphadon · · Score: 1

      Depending on your species, it could also be one (1), two (2), three (3), many (4) and lots (16).

    6. Re:Some (in)equations by Anonymous Coward · · Score: 0

      All finite numbers are approximately seven when you start talking about transfinites :-)

    7. Re:Some (in)equations by Desler · · Score: 1

      No, you simply missed that the "editor" had said it had been seven years. Your post qualifies for the standard "Whoosh?" response.

    8. Re:Some (in)equations by Anonymous Coward · · Score: 0

      Fifteen != Seven

      It does for sufficiently large values of Seven.

    9. Re:Some (in)equations by pjrc · · Score: 1

      wxWidgets 2.6 and 2.8 were pretty major releases, actually.

    10. Re:Some (in)equations by tinkerton · · Score: 1

      Yes, one wonders if they've made an ordinary numbering policy for releases into something more fundamental. On the other hand one could claim that development on Wxwidgets is not as dynamic as on QT.

  5. Is it still relevant? by nurb432 · · Score: 1

    Its great they are still alive, but how many people have moved over to other toolkits like QT the years?

    Why would it be worth going back?

    --
    ---- Booth was a patriot ----
    1. Re:Is it still relevant? by VZ · · Score: 5, Informative

      The main reasons to prefer wx to Qt remain the same as always:

      1. Native widgets (especially important under OS X).
      2. Written in 100% standard C++ (no compiler-specific extensions, no preprocessor).
      3. More permissive licence (notably allowing static linking for non-open source applications).

      And then there is wxPython which is quite popular in Python community.

    2. Re:Is it still relevant? by LWATCDR · · Score: 3, Interesting

      I would say yes. Unlike QT it uses Native Widgets so it looks more like a native app than a QT or GTK app does. It was also pretty light weight as well. The fact that Audacidy uses it means that it is important enough. If you are a developer and are interested in multi platform it is really worth the time to explore.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    3. Re:Is it still relevant? by oodaloop · · Score: 1

      Their website has a list of users. It's more than a few.

      --
      Tic-Tac-Toe, Global Thermonuclear War, and relationships all have the same winning move.
    4. Re:Is it still relevant? by pjrc · · Score: 4, Informative

      I use wxWidgets. I've mostly used verson 2.8 with ansi strings.

      As far as I know, wxWidgets is the only cross platform toolkit that compiles to program that use the native GUI widgets on Windows, Mac and Linux.

      You can usually spot Java and QT programs. They work, but things look a little out of place. Firefox does a better job, but things start going wrong if the user customizes or "themes" their desktop. Emulating the look of native GUI controls just isn't ever as good as actually using the native ones.

      wxWidgets isn't perfect. I've hit a good number of bugs. It has a pretty steep learning curve. It also doesn't seem like "new" technology. But it works. If you want to write a native application that truly looks and feels and actually is native on each platform, short of writing the code 3 times, wxWidgets is pretty much the only toolkit.

    5. Re:Is it still relevant? by Anonymous Coward · · Score: 0

      Yeah but do you see major companies or major players using it? I see a bunch of research labs from major universities, minor products from some corps, and miscellaneous small companies. Is there a major user / well known product?

    6. Re:Is it still relevant? by aristotle-dude · · Score: 1

      Yeah but do you see major companies or major players using it? I see a bunch of research labs from major universities, minor products from some corps, and miscellaneous small companies. Is there a major user / well known product?

      Google?

      --
      Jesus was a compassionate social conservative who called individuals to sin no more.
    7. Re:Is it still relevant? by Guy+Harris · · Score: 1

      Yeah but do you see major companies or major players using it? I see a bunch of research labs from major universities, minor products from some corps, and miscellaneous small companies. Is there a major user / well known product?

      Google?

      What do they use it for? (No, "Google Earth" is not the correct answer; that's Qt-based.)

    8. Re:Is it still relevant? by Guy+Harris · · Score: 2

      What do they use it for? (No, "Google Earth" is not the correct answer; that's Qt-based.)

      Google Drive, as per the wxWidgets home page, which says "The recently released Google Drive system desktop client uses wxPython."

    9. Re:Is it still relevant? by Lord+Crc · · Score: 4, Informative

      1. Native widgets (especially important under OS X).

      Ironically this is the reason we moved our cross-platform OSS app away from wxWidgets to Qt. The native widgets just didn't work properly and it was a pain to fix. We made the move some 4 years ago or so, and I can't say we've noticed we're missing something...

    10. Re:Is it still relevant? by VZ · · Score: 1

      As already mentioned, you might know about the company making Google Drive. And you might recognize a few other products from this list.

      There is also Intel VTune about which I learnt completely accidentally, so who knows which other major companies use it without advertising it.

    11. Re:Is it still relevant? by LWATCDR · · Score: 1

      It is also pretty light not as light as the FLTK but still pretty light.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    12. Re:Is it still relevant? by amigabill · · Score: 1

      The main reason for me to be interested in wxWidgets is the apps that use it.

      I'm interested in KiCad, therefore I'm interested in wxWidgets. Audacity, etc...

      I'm also interested in Qt, GTK, etc. as well. For example, I'm interested in GTKwave, therefore I'm interested in GTK... And so forth.

    13. Re:Is it still relevant? by occasional_dabbler · · Score: 1

      3. More permissive licence (notably allowing static linking for non-open source applications).

      And then there is wxPython which is quite popular in Python community.

      This.

      --
      "Our opponent is an alien starship packed with atomic bombs," I said. "we have a protractor"
    14. Re:Is it still relevant? by dkf · · Score: 1

      1. Native widgets (especially important under OS X).

      Ironically this is the reason we moved our cross-platform OSS app away from wxWidgets to Qt. The native widgets just didn't work properly and it was a pain to fix. We made the move some 4 years ago or so, and I can't say we've noticed we're missing something...

      Some users really want the perfect look of native widgets, though totally looking correct does require more than that, as different platforms have different layout norms too (and then there's the "feel", which is harder still unless you go completely native). Other users don't care nearly so much.

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    15. Re:Is it still relevant? by temcat · · Score: 1

      Do you mean Qt or wx?

    16. Re:Is it still relevant? by Lord+Crc · · Score: 3, Informative

      Some users really want the perfect look of native widgets

      Yeah, I get that. But given than the OSX offering from wxWidgets was pretty much broken on a constant basis, not-quite-native-but-functional Qt widgets won the day over broken-every-other-week wxWidgets.

      I exaggerate slightly, but the lack of proper OSX support was the main driver to Qt for us.

    17. Re:Is it still relevant? by Anonymous Coward · · Score: 1

      >3. More permissive licence (notably allowing static linking for non-open source applications).

      You can use LGPL version of Qt and link statically.

    18. Re:Is it still relevant? by Isaac+Remuant · · Score: 1

      1) This could be a factor. I don't develop for OS X but it could be relevant to some (Although, personally, I feel there's too big of an obsession about "look and feel" from mac users).
      2) This is barely relevant, imo. MOC does a great job and code generators have always been a good thing if you know what they generate and are one way only.
      3) This could be a factor although I don't usually see a problem with dynamic linking.

      for Qt, there's PyQt (I've used it and it's great) and PySide (no idea).

      I used WxWidgets a couple of years ago and while it was easy to learn, it was nowhere near Qt in terms of features and documentation. Still, I hope it does well. I've seen plenty of nice programs using it.

      --
      "Science can amuse and fascinate us all, but it is engineering that changes the world. " - Asimov.
    19. Re:Is it still relevant? by LWATCDR · · Score: 1

      QT is not light at all so WX.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    20. Re:Is it still relevant? by Raenex · · Score: 1

      You can use LGPL version of Qt and link statically.

      Note that the LGPL requires that you provide a way to relink in a new version of the library (QT in this case).

    21. Re:Is it still relevant? by lordDallan · · Score: 1

      Xojo (formerly RealStudio) is a visual basic-like language except that it's realy OOP (has nice things like interfaces and delegates for example) that compiles to programs that use native GUI widgets on Windows, Mac, and Linux. No, it's not as powerful as C/C++, but it's a lot easier/quicker.

      It's biggest weakness (IMHO) is that it's developed by a small, private firm that seems resource constrained. This leads to some releases having real issues and it taking some time for those issues to be sorted. That can mostly be mitigated by only updating once you know the current version is quirk-free.

      Xojo also has a decent plugin architecture/SDK so you can write "heavier things" in C if you need to. It also handles decalres against C libs pretty well.

      Xojo's definitely worth taking a look at (again IMHO) if you really need to build cross-platform software (small business applications for example).

    22. Re:Is it still relevant? by anarkhos · · Score: 1

      What app? I have yet to use a Qt app on OS X which wasn't a complete clunker. May as well just use wine

      --
      >80 column hard wrapped e-mail is not a sign of intelligent
      >life
    23. Re:Is it still relevant? by Anonymous Coward · · Score: 0

      So, why you didn't contribute to fix this if you have access to the library source code?

    24. Re:Is it still relevant? by Lord+Crc · · Score: 1

      So, why you didn't contribute to fix this if you have access to the library source code?

      We didn't have a dedicated developer on OSX, more like an enthusiastic user who could compile it but not so much code. Sometimes he could Google some workarounds other times we did a workaround in the blind.

      In either case we did not feel comfortable hacking the wxWidgets internals, as we had no OSX experience or ability to debug.

      With Qt this isn't an issue, as we mostly don't have to worry about stuff not working on OSX if it works on Windows and Linux.

    25. Re:Is it still relevant? by Lord+Crc · · Score: 1

      What app? I have yet to use a Qt app on OS X which wasn't a complete clunker.

      To be fair, our GUI demands are very modest. Project is LuxRender, a physically-based open-source renderer. The GUI is mostly just for visualization of the resulting render and tweaking tonemapping and other post-process parameters.

    26. Re:Is it still relevant? by Anonymous Coward · · Score: 0

      QT is commercial product, and it was very restrictive in the past much money invested on it, now this situation appears to be changing. QT is a good API too. wxWidgets is a library driven by community, the development for OS X is getting matured now by users that contribute for this port giving source code or feedback by reporting issues to be fixed by other people. It is much more productive to put the issues that you have found on Trac (http://trac.wxwidgets.org/) to be solved by someone else. If you don't have experience with a platform and can't debug on it, how can you offer a trustable software for it?

    27. Re:Is it still relevant? by Lord+Crc · · Score: 1

      If you don't have experience with a platform and can't debug on it, how can you offer a trustable software for it?

      Because we use portable libraries and code, and we have plenty of testers.

  6. Because I was sick of posts about 15!=7 by aitikin · · Score: 1
    FTA:

    So wxWidgets 3.0 is finally released. We should have done it much sooner than 7 years after 2.8.0 release, but better late than never. And at least this gives us a lot of statistics to analyse to see how much has changed since the last major release. So let's do just this.

    Yes, this should have been explained in the summary. No, the editors did not catch it which sucks. Yes this is the first X. release since 1998 or 99 depending on your source.

    --
    "Don't meddle in the affairs of a patent dragon, for thou art tasty and good with ketchup." ~ohcrapitssteve
  7. That's that thing... by dohzer · · Score: 1

    ... that everyone's using and needs no introduction.

  8. But what does it really mean in practice? by Shag · · Score: 2

    If I'm parsing this all correctly, this is great news because it means I can port my graphical C++ (or whatever language, with hooks to C++) applications from Linux to Windows or OSX (or from Windows to Linux or OSX, or from OSX to Linux or Windows, whatever the case may be) without having to worry about UI widgetry.

    Of course, unless my applications are already written in a language WxWidgets likes, and don't make any calls to other platform-dependent things (DirectX, I'm looking at you), this sounds like it makes my job a little easier, but not a whole lot. Admittedly, I haven't tried porting graphical apps across platforms before, so for all I know, getting the UI widgetry right could very well be 90% of the work.

    I'm guessing I'm still going to need my platform-specific compilers/SDKs/IDEs on each platform for this all to feed into, as well. On the Mac side (the last place I built a graphical app, and that was several large cats ago) I'm a little unsure how using this with C++ or whatever is going to save me time over using Xcode with ObjC.

    I welcome responses or thoughts on the pros and cons of all this, either from the WxWidgets folks themselves, or from other devs.

    --
    Village idiot in some extremely smart villages.
    1. Re:But what does it really mean in practice? by osu-neko · · Score: 4, Insightful

      Admittedly, I haven't tried porting graphical apps across platforms before, so for all I know, getting the UI widgetry right could very well be 90% of the work.

      Yeah, writing the UI code is 90% of the work. Debugging it to work consistently across all platforms is the other 90%...

      --
      "Convictions are more dangerous enemies of truth than lies."
    2. Re:But what does it really mean in practice? by pjrc · · Score: 5, Informative

      I use wxWidgets. Most of my experience is with version 2.8.

      If you care deeply about making a native applcation that truly has a native GUI on Windows, Mac and Linux, wxWidgets is great. Nothing else even comes close. Java, QT, XUL, FLTK, TCL/KT and others all produce programs that aren't quite right on some plaforms.

      If you don't care about cross platform native GUI applications, or you target browsers with javascript+node+[insert newest buzz], then wxWidgets is not for you. If you really only want to produce a program for Windows but maybe someday have the option to easily port to Mac and Linux, while wxWidgets can give you that, if you don't truly care are doing all 3 from the beginning, I believe you'll find wxWidgets it simply too much trouble.

      The truth is wxWidgets is pretty much its own system, an SDK in itself. It has a tremendous amount of somewhat complex design, like sizers, which means you have to go to some extra effort. Of course, for making things work well on all platforms... not simply just work, and not work well on Windows but end up sub-standard on Mac or Linux, but work truly well on all 3, the extra effort to use wxWidgets is definitely worthwhile.

      But the truth is you do have to put in extra effort. wxWidgets has great documentation to help, but the other truth is everything is heavily steeped in C++ class heirarchy. If you're good with C++, it'll feel pretty natural. If not, well, you'll get much better with C++ in the process, if you persevere. In the end, if your goal was a native application that truly works natively on all 3 platforms, the sort of thing users take for granted and never notice, you'll be rewarded.

      But if you don't really, truly, earnestly care about targeting all 3, if only Windows has to be high quality and the others are afterthoughts, or if you just want to get things done as quickly as possible with minimal learning, you'll probably find wxWidgets to be far too much trouble.

    3. Re:But what does it really mean in practice? by sg_oneill · · Score: 1

      GCC and a cross compiler should be fine ,but if you got visual studio and put the effort into including a compile change for it, ,theres not a good reason not to use it.

      WXWidgets is great but its kind of shown a lot of bitrot over the years leading many to suspect its been abandoned. Apparently it hasnt. Its also had a degree of issues with dll hell in my experience, but thats more using it with python and a few non wx libraries that havent updated in millenia.

      It DOES tend to look good on native platforms but you will still want to adapt things to fit UI expectations, ie the radically different menu styles of windows vs macs, and so on, as well as perhaps putting some effort into following the style guides of the various platforms. Glossy plastic and brushed steel are mac stylistic language. Smoked plastic and flat greys are windows stylistic language. 70s Brown on brown for ubuntu. Etc.

      --
      Excuse the Unicode crap in my posts. That's an apostrophe, and slashdot is busted.
    4. Re:But what does it really mean in practice? by pjrc · · Score: 4, Interesting

      I've build programs with wxWidgets 2.8. It does automatically handle those platform specific style issues!

      I used wxMenuBar, populated with a heirarchy of wxMenu and wxMenuItem objects. I just pass a point to the main wxMenuBar object to SetMenuBar, which is from the top-level frame of the GUI.

      On Mac OS-X, it automatically appear at the top of the screen. One Linux and Windows, it automatically appears on the top of my program's window.

      Likewise for toolbars, I simply used with wxWidgets objects as documented, without any specific style stuff. They automatically adapt to fit the style of each system.

      That's the magic of wxWidgets. That work you mentioned, adapting things to fit the stylistic expectation of each system, is exactly what wxWidgets does so very well. It's vastly superior to other toolkits which attempt draw their own widgets, because the wxWidgets developers have gone to tremendous effort to actually use the native widgets from each platform. You just use the rather generic API for wxWidgets and you end up with really good native GUIs on all 3 platforms. Best yet, when the user customizes fonts, colors and whatever else, your program adapts like other truly native applications. Other cross platform toolkits fall down in that respect to the customized style, because they aren't really using the platform's native GUI.

    5. Re:But what does it really mean in practice? by Plouf · · Score: 1

      Note that in Java you can get something similar by using SWT, which uses JNI to call the native underlying platform widgets. Used by Eclipse but can be used in a small standalone J2SE application. http://eclipse.org/swt/

    6. Re:But what does it really mean in practice? by Anonymous Coward · · Score: 0

      Eclipse on OS X doesn't look native at all. Even on Windows, things are still a little queer.

    7. Re:But what does it really mean in practice? by Plouf · · Score: 1

      Well it depends, observe how the package explorer tree is actually the native tree widget. How the tables are actually native tables with proper look&feel for the sorting and column resizing. Observe how the menu bar on OS X is actually properly positionned. Observe how the buttons in the configuration sreens, all the scrollbars are native. Notice that drag&drop from and to the desktop or the Windows Explorer actually works, and also proper copy/pasting of files from external applications. These are all these smalls details that make a big difference at the end of the day.

    8. Re:But what does it really mean in practice? by angel'o'sphere · · Score: 1

      The problem with SWT is: it does not look native, it looks like SWT.
      On top of that, unless you have access to higher level "frameworks" programming SWT widgets feels like MFC from 1993.
      In comparision with Swing it simply sucks.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    9. Re:But what does it really mean in practice? by Raenex · · Score: 1

      Best yet, when the user customizes fonts, colors and whatever else, your program adapts like other truly native applications.

      It also makes a huge difference if you're using an app via a remote desktop. Native widgets can be efficiently mirrored without sending all the pixels over.

    10. Re:But what does it really mean in practice? by Plouf · · Score: 1

      I couldn't disagree more: I've been doing SWT development for many years, and I can tell you that SWT applications are impossible to distinguish from native applications, on any platform. Sure Eclipse looks like nothing but Eclipse, but if you take well-written SWT applications (Azureus for instance), no-one would be able to tell you that it is made out of Java. From a user point of view, SWT is just invisible. On a programming point of view, I would agree though: SWT is extremely low-level and the first think you need to put in place is a higher-level API. It has nothing to compare with Swing, which is a real pleasure to develop with. SWT is a pain in the ass, difficult to extend and very difficult to use. So it really depends what matters more to you: the integration of your application with the user desktop and preferences, or the convenience of the development framework itself? One of the (many) reasons why Java never really took off on the desktop is because, unfortunately, many developers chose the latter.

    11. Re:But what does it really mean in practice? by angel'o'sphere · · Score: 1

      and I can tell you that SWT applications are impossible to distinguish from native applications, on any platform.
      Sorry that is complete nonsense.
      The "layout" and many other things always scream "SWT!!!". If something "looks like eclipse" you can bet its SWT.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    12. Re:But what does it really mean in practice? by Plouf · · Score: 1

      We are probably not talking about the same applications then... Look at "azureus java" or "azureus screenshot" on Google Images and tell what reminds you of Eclipse from that.

    13. Re:But what does it really mean in practice? by spitzak · · Score: 1

      Native widgets can be efficiently mirrored without sending all the pixels over.

      That has not been true for a decade at least. Remote desktop on Windows sends images (with lots of compression and reuse of previosly-seen images).

      The problem is that the api to widgets is far larger than the images themselves. Remote widgets would actually increase bandwidth, not decrease it.

    14. Re:But what does it really mean in practice? by Raenex · · Score: 1

      The problem is that the api to widgets is far larger than the images themselves. Remote widgets would actually increase bandwidth, not decrease it.

      Sorry, this doesn't make any sense. Just consider the number of pixels that would be rendered in an editor window with a scrollbar. Now imagine all the painting a remote host would do if it wasn't native and you scrolled down.

      The difference is night and day between a non-native widget and a native one. I've done professional work using remote desktop, and I always knew when an app wasn't using native widgets.

  9. Trolltech's QT by EmperorOfCanada · · Score: 4, Interesting

    I have wanted to love wxWidgets but I keep going back to QT. Now that QT is allowing you to port to Android and iOS I am not sure that I will ever take another crack at WX.

    Other multi platform GUI'ish things that I like are OpenFrameworks (main complaint is that it runs hot) and cocos2d-x which allowed me to turf Objective-C on iOS.

    1. Re:Trolltech's QT by Isaac+Remuant · · Score: 1

      Documentation for Qt is top notch as well.

      --
      "Science can amuse and fascinate us all, but it is engineering that changes the world. " - Asimov.
    2. Re:Trolltech's QT by Anonymous Coward · · Score: 0

      I agree, I actually moved from wxWidgets to Qt and fell in love with being able to do things with amazing speed. I enjoyed wxWidgets too, but Qt was "another step up".

      But, um, I have an issue with your subject line " Trolltech's QT". We're 2 companies and/or an open source project beyond that at this point. They did a fantastic job getting it started, but lots and lots of good work has been done since they last touched it.

  10. Too bad it's a C++ library... by innocent_white_lamb · · Score: 3, Interesting

    There's nothing wrong with C++. However, I do my programing in C (without the ++), and would love have something like this available that I could link to my C programs.

    GTK+ works fine in its way, but it moves way too fast for my taste. Function x is deprecated, use function y instead. Function y is deprecated, use function z along with function z(1) now. Ok, it's great that you're improving that thing, but not so great for a guy like me who wants to write an application today and use it for the next ten or twenty years without having to re-invent the wheel over and over again.

    Since I have no particular desire to learn C++, I now do most of my programming using ncurses to handle the screen, keyboard and (occasionally) mouse. Ncurses is a Text-UI rather than a GUI, but just like the C language itself, it works very well,it hasn't changed in many years, and it suits me fine.

    A slow-moving GUI like wxwidgets would be a wonderful thing to add to my toolbox, if it was a C library. *sigh*

    --
    If you're a zombie and you know it, bite your friend!
    1. Re:Too bad it's a C++ library... by Anonymous Coward · · Score: 0

      Text-UI? Surely that would just be TUI? We don't call a GUI a Graphical-UI.

    2. Re:Too bad it's a C++ library... by OldFart58 · · Score: 2

      If it was a C library... well, you couldn't really take advantage of all of the advantages C++ has vs C especially when implementing a windowing UI / application framework - inheritance, polymorphism, etc. really make a difference. If you did that in raw C you'd have, well - pretty much what we had to use for programming to the Win16 (now Win32) API before Borland's OWL (Object Windows Library) made the scene (this is before MS ever came up with MFC) - opaque handles to this and that, breaking down and handling Windows messages, etc. It was very low-level stuff, tedious and prone to error.

      If you're happy with a CURSES-like library, that's fine (I've done my share of that also with C on DEC platforms, back in the VT-100 days) - but for anything this side of Y2K, application frameworks and OOP are the way to go. wxWidgets is definitely a valid way to get a cross-platform (and cross-language... look at wxPython) GUI app out there and still keep what's left of your hair.

      Disclaimer: I've been using wxWidgets (was wxWindows) creating apps for a Fortune 500 international since the early 2.0 days (mid-90's).

    3. Re:Too bad it's a C++ library... by Anonymous Coward · · Score: 1

      Do you really develop GUIs in C? I did that on X years and years ago and know its possible, but when you compare writing UIs in C++ vs C there really isn't much comparison. I doubt anyone would make a really good UI toolkit in C anymore.

      I doubt you are making UIs in C, maybe you are one of the last ones. You can make your UI in this, yes using C++ and just make calls to your C libs.

    4. Re:Too bad it's a C++ library... by VZ · · Score: 2

      I've never used it myself but there is wxC. AFAIK it's mostly used as a base for the bindings to the other languages (like wxHaskell), but perhaps it is good enough to be used directly.

    5. Re:Too bad it's a C++ library... by pjrc · · Score: 1

      Really, you've written GUI programs using GTK's C-only API and liked it?

      Did you really enjoy all that type casting of pointers? That's a lot of unnecessary trouble, when clearly some dialog box must be able to use the more generic window style setting functions. If only the compiler somehow could know your reference to the dialog box is compatible with all that other stuff the dialog box is built upon.... if only....

    6. Re:Too bad it's a C++ library... by Anonymous Coward · · Score: 0

      I understand your pain. I was in the same position once I realized that GTK was getting increasingly crappy. I do most of my writing in C and have no love for C++, but I've reached a compromise in that I write my stuff in a cleanly split frontend and backend design. With the C++ Qt code being the frontend which calls the stuff written in C. Neither leak into each other that much. If you're doing proper design in the first place this method will not fail you.

    7. Re:Too bad it's a C++ library... by Anonymous Coward · · Score: 1

      No I did it in X, long before GTK existed (1994 timeframe) on an SGI Indigo 2. I didn't like it compared to C# or Qt now. I tried GTK, but the documentation was written as if you already knew it and only needed reference. I tried Qt after that and found it much easier to learn.

      Like I said, I know its possible, but wouldn't think anyone in their right mind would still be doing it.

    8. Re:Too bad it's a C++ library... by Anonymous Coward · · Score: 0

      mmm TUI is all ready well defined, and much more than text ui... see oberon tui or plan9 tui for examples; hints: not overlapping windows, keyboard accelerated, message based text in line compiling with mouse ( to lingo bytecodes or oberon modules ) powerfull stuff, so spartan and so flexible, almost like smalltalk. Play with BlackBox for something TUI on windows http://www.oberon.ch/blackbox.html and http://oberonrevival.sourceforge.net/

    9. Re:Too bad it's a C++ library... by Anonymous Coward · · Score: 0

      The C++ type system can't help keep track of the fact that the less than operator defined for a particular class has output that's only sensible for sorting purposes, not for mathematical purposes. The C++ type system can't keep track of the fact that a particular union type's access pattern prevents classes in it from being clobbered.

      But it sure does prevent you from casting pointers.

    10. Re:Too bad it's a C++ library... by Anonymous Coward · · Score: 0

      GTK+ can be quite nice to use from Vala, everything is clear and easy and all the casting and repetitive cruff is resolved... and mix with plain old C very nice. Not bad, i like it

    11. Re:Too bad it's a C++ library... by istartedi · · Score: 1

      My solution to this problem is to let the GUI be C++, and have all your C in a library. I got used to doing that back in the MFC days. I learned C++ first, then learned C. My appreciation for C grew from looking at things like the JPEG libraries, which seemed to run on every system ever devised.

      IIRC, I didn't like wxWidgets because it seemed to insist on rolling its own versions of libraries that already existed. With 12 years of development since I lived in that world though, maybe they've got it down to where you can dynamically link whatever you want easily, with the understanding that it "voids the warranty".

      --
      For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
    12. Re:Too bad it's a C++ library... by Jeremi · · Score: 1

      However, I do my programing in C [...] Since I have no particular desire to learn C++

      I think if you learned just the basic parts of C++ you'd find it's much quicker and easier to get things working reliably than using straight C. The trick is to ignore the 253 different categories of nifty/obscure feature you don't want to deal with -- rather, only use the parts that you want to use. In particular, constructors/destructors, inheritance, virtual methods, and basic templates can all be huge time-savers once you're used to them. I started in my programming career using C, but after using C++ for a few years, writing a program in C now feels like driving a car that's stuck in first gear.

      --


      I don't care if it's 90,000 hectares. That lake was not my doing.
    13. Re:Too bad it's a C++ library... by amigabill · · Score: 1

      There's nothing wrong with C++. However, I do my programing in C (without the ++), and would love have something like this available that I could link to my C programs.

      Excellent! There is some opportunity for you to create a C layer onto the C++ subsystem, then you yourself as well as others can benefit from that. :)

    14. Re: Too bad it's a C++ library... by Anonymous Coward · · Score: 0

      I feel your pain.

      My compromise has been to use Qt for the front end stuff. It uses a benign subset of C++ which is less likely to burn your fingers than going all the way and it is quick to learn. I still have to reset my thinking from plain C to avoid the bear traps which differentiate the languages but the experience is tolerable.

    15. Re:Too bad it's a C++ library... by Anonymous Coward · · Score: 0

      Seeing that gui programming usually relies on OOP patterns I have a hard time seeing how easy it could be to program it in c.

    16. Re:Too bad it's a C++ library... by taylorius · · Score: 1

      I know what you mean, I think that c++ is way too complicated. It doesn't have to be like that, but all too often people can't help themselves, and their project develops an enormous templated husk, around what is a small kernel of useful code. The worst offender for me is cout's double arrow printf replacement syntax.That is among the least intuitive things I've seen. Classes are surely a good thing though, and new / delete is definitely better than malloc.

      This may sound lame, but I've long wished for a native-code-generating language along the lines of Actionscript 3. The closest I've seen is the D language. It's pretty good, with concurrency and parallelism built in. I wish it would get more attention (and especially a fully implemented GUI library).

    17. Re:Too bad it's a C++ library... by Vegemite_Sandwich · · Score: 1

      WxWidgets "moves" and deprecates too. I was on the dev team for Jazz++, an EXCELLENT midi sequencer written in WxWidgets. The original developer gave it up, so we tried to shine it up and bring it up to current standards. We went to the current version of WxWidgets, and the code was so horribly broken due to missing classes, method interfaces, etc. that it could NOT be made to work, and ended up abandoning the project since it would have had to have been written completely from scratch again. Too bad too. Jazz++ was amazing, very simple and intuitive, worked on Linux and Windows, etc. I miss it!

    18. Re:Too bad it's a C++ library... by spitzak · · Score: 1

      GTK is a serious attempt to make a C object-oriented library. Not sure how well it works but it is more modern than your examples.

      A advantage of working with C is that it is much easier to support it in *multiple* object-oriented languages, not just C++.

  11. You'll get used to it ... by Taco+Cowboy · · Score: 2

    This is my first ever submission to /. so maybe it's perfectly normal and I just have no idea how do these things work but I'm as puzzled as you because the original submission said "First Major Release in 15 years"...

    Don't worry, you'll get used to it

    I have had my submits turned into articles that I don't even recognized ... ahh... what can I say, the /, editors like to think that they are magicians

    This phenomenom has getting accutely troublesome especially _after_ Commander Taco has left

    --
    Muchas Gracias, Señor Edward Snowden !
    1. Re:You'll get used to it ... by Anonymous Coward · · Score: 0

      Yes, I once submitted an article about statistical analysis in Python and what came out the other end was something about the likely mating habits of the Pteranodon. I think the only words that survived the edit were "a", "an" and "the" :-)

      Captcha: primed : some may see that as the past tense of "to prime" but I've obviously been in the industry too long - my first thought was that it was a prime-generating daemon running under a UNIX-like operating system.

    2. Re:You'll get used to it ... by davester666 · · Score: 5, Funny

      Well, somebody has to add spelling and grammatical errors to the submission.

      --
      Sleep your way to a whiter smile...date a dentist!
    3. Re:You'll get used to it ... by Anonymous Coward · · Score: 0

      That's nothing. I submit fully three out of every four published stories, and not only can the editors not get the text right, they keep spelling my name wrong!

  12. Another layer by Anonymous Coward · · Score: 0

    The whole concept of wx is silly. The additional layer basically means that it's awful buggy and breaks with new releases of whichever layer. And while it's to some extent technically correct to call wx "native", I have yet to encounter a wx application where the actual user experience could be called anything close to native.

    1. Re:Another layer by Anonymous Coward · · Score: 0

      Well, it's the only thing Erlang has to use as a GUI programming interface, so any update is welcome.

  13. Some (in)equations by fyngyrz · · Score: 1

    Just like 2+2=5 for large values of 2.

    Also for small values of 7. I took a fuzzy math course too. :)

    --
    I've fallen off your lawn, and I can't get up.
  14. Further (in)equations by fyngyrz · · Score: 2

    See, 7 is why we're fat. It's that whole two pi thing. We should be satisfied with one pi, but no, we have to have two. No wonder we're rounding up.

    Mmm. Two (strawberry + key lime) pie.

    Also, two (pizza) pie. Which is, strangely enough, the same as "pie pie."

    Sufficiently large values of seven, indeed.

    --
    I've fallen off your lawn, and I can't get up.
    1. Re:Further (in)equations by Anonymous Coward · · Score: 0

      > Also, two (pizza) pie. Which is, strangely enough, the same as "pie pie."

      Not sure what you mean by that, but if you're implying "pizza" is a 1:1 translation for "pie," know that a lot of what Americans call "pies" are "torte" in Italian.

    2. Re:Further (in)equations by fyngyrz · · Score: 1

      I'll have some chai tea, please. Two cups, one identity.

      --
      I've fallen off your lawn, and I can't get up.
    3. Re:Further (in)equations by fyngyrz · · Score: 1

      I meant, walk into a pizzaria and say: "I'd like a pie" or "I'd like a pizza" and you'll get the same result (which is probably "what size, and whaddaya want onit?")

      Which brings me around to that weird question, "you want a cheese pizza?" ... I know there may be *specialty* pizzas that don't have cheese out there, but a "pizza" is crust, sauce and cheese. Anything *else* is a variable you specify. Specifying "cheese" is, at least if you're not preceeding with "goat", both superfluous and annoying. If I say "I want a pizza", I think crust, sauce and cheese are a given. Even with some of these crazy gourmet outfits where they use ovens burning 100% driftwood, unbleached dough made from GMO-free wild swamp rushes, sun-ripened clamato sauce, and Yeti foot cheese. Just gimme the damned pizza -- yes, I want cheese. When was the last time a customer came in and said "no cheese, please!"???

      When I was a kid, we had to walk uphill both ways for a pizza. And it had sauce, cheese, and crust. You young snapperwhippers need to GTFOM lawn.

      --
      I've fallen off your lawn, and I can't get up.
  15. Native look is for custom by Anonymous Coward · · Score: 0

    wxWidgets gives its applications a truly native look and feel

    That's it.

    As a developer, if I'm into writting a custom application that will run basically on one platform, I will pick wx. It gives me the most integrated look, but I don't need to learn a new API, and the application could be easily adjusted to any other supported platform (you will probably have to slightly tweak the UI).

    Qt on the other hand is great if you want an application that looks and feels consistently between platforms. That's why projects like Skype use it.

    So wx is great for custom applications, and Qt for consumer software.

  16. Re:Hello world by tgv · · Score: 1

    It's been many years since I've used wxWidgets (wxWindows it was called back then), but
    a) You don't need all that. You only need it when you want to have an about box, and a close command, etc.
    b) It's a bit boiler plate, since you do need to put that in your program time and time again, but it's very flexible, and it's not that much code if you consider it carefully. There is a function that sets up a window, one that attached menus to a window when you open it, and functions to act on menu selection.
    c) If it's too much manual labor, then there are GUI editors to get you started, if I'm not mistaken.

    I've always liked wx, and I will consider using it again when the need arises for a native app.

  17. Re:Hello world by VZ · · Score: 2

    You can reduce this to

    #include <wx/wx.h>
     
    struct MyApp : wxApp {
        bool OnInit() { wxMessageBox("Hello, world!"); return true; }
    };
     
    wxIMPLEMENT_APP(MyApp);

    if you want, but this would just show you how to display "Hello, world" in a message box while the program at your link shows you a typical skeleton of a simple but realistic application. It doesn't try to be minimal, this is just not the point.