Slashdot Mirror


Borland Uses (And Supports) wxWindows

jmccay writes " Back in September, Slashdot posted an article about a new tool that Borland is releasing (C++ BuilderX) which is a multi-platform and multi-compiler development environment. What wasn't mentioned in the article that I scanned in the post was that Borland is going to use wxWindows for this product. I have been working with wxWindows for about 6 months now, and I like it. A statement by Julian Smart (founder of the wxWindows project) gives more information on the product and Borland's participation in the wxWindows project. He says that they are also going to help out the project by 'contributing expertise and funding to help in areas such as enhanced run-time type information, the new build system and code reengineering, and will continue to invest in wxWindows while supporting its open source status.' There is also an FAQ available to read on the linked page. This is great news for both the project and the Open Source community as a whole."

68 comments

  1. Re:wxWindows not terribly reliable by self+assembled+struc · · Score: 1

    actually, isn't QT only LGPL if you're not selling your software?

    so for something like borland or people who don't make a living off selling their software (which some people do) can't use it.

    also, (not having used wxWindows nor wxPython, but having using python, C++, java, obj-c, etc) i would expect that any application written in C++ would be alot more stable and easily transitioned to other computing platforms (using a cross-platform toolkit, such as QT or wxWindows) than a scripting language, just by nature of the fact that C++ has had years to mature on multiple computing platforms, and yet, with all the correct cools, libraries, sane tool chains, etc, getting python built correctly is still a pain in the ass on windows, mac os x and linux (redhat 9).

  2. not only that ... by dominic.laporte · · Score: 2, Informative

    But it also comes prepackaged with ACE !

    BTW There is a free version of it that is downloadable.

    1. Re:not only that ... by jmccay · · Score: 1

      A free version of the BuilderX? Where? I would love to try it! I went to the website the other day and tried to find this rumored free version, but I didn't have any luck.

      --
      At the next eco-hypocrisy-meeting, count the private jets used to get to the meeting. Should be interesting to see that
    2. Re:not only that ... by dominic.laporte · · Score: 1

      Go here and select personal.

  3. Re:wxWindows not terribly reliable by arkanes · · Score: 4, Informative

    Without wanting to feed trolls, Qt isn't LGPL anywhere, and it's not free in any sense of the word on Windows. Just to be clear.

  4. Yeah and the BAD news is... by xagon7 · · Score: 2, Interesting

    Borland is caught in the .NET.

    Delphi 8 and the VCL are nothing more than wrappers around .NET. If I were to perform any NEW windows centric development I would use C#. The good news though is C# Builder is AWESOME.

    Just my $0.02

    1. Re:Yeah and the BAD news is... by Old+Wolf · · Score: 2

      Seeing as the VCL has been around for 5+ years (before .NET was a gleam in the monopolists' eye), I would not call one a wrapper for the other.

      VCL is, however, a snazzy wrapper for the Windows API.

      It sounds like you are the one caught in the .NET.

    2. Re:Yeah and the BAD news is... by Chester+K · · Score: 1

      Delphi 8 and the VCL are nothing more than wrappers around .NET. If I were to perform any NEW windows centric development I would use C#.

      I wouldn't necessarily call that bad news. Win32 is dead, wrapping .NET is the only way for Delphi to continue to grow. I assume Delphi 8 can use Windows Forms directly without the VCL layer, if one wanted to continue to use that language in the future; but overall I'll agree -- there's really no point to use anything other than C# or maybe VB.NET.

      --

      NO CARRIER
    3. Re:Yeah and the BAD news is... by xagon7 · · Score: 1

      I think you are uninformed. Delphi 8 is NO LONGER wrapping the arcane win32 API, it will be wrapping .NET, which itself is very VCL like, so why bother?

    4. Re:Yeah and the BAD news is... by samjam · · Score: 2, Insightful
      Delphi 8 and the VCL are nothing more than wrappers around .NET

      Delphi is much more than a wrapper, and this is GOOD news in any case.


      I much prefer delphi's wrapper to windows' API.


      It's so much easier to do an OnKeyPress, =#13 than it is to look for WM_whatever on the right dlgitem in the dlgproc.

      I think so anyway, and if wrapping .net means it is still Delphi, all the better.


      As for wxWindows I am very pleased.


      Well done Borland.

    5. Re:Yeah and the BAD news is... by Scherf · · Score: 1

      I think you are uninformed. Delphi 8 is NO LONGER wrapping the arcane win32 API, it will be wrapping .NET, which itself is very VCL like, so why bother?
      And for non-.NET platforms they still got the CLX, which is a wrapper around QT (including a licence from Trolltech for every Kylix developer).

    6. Re:Yeah and the BAD news is... by weicco · · Score: 1

      Arrr.. And just as I've learned Win32 API from head to toe. This isn't fair.

      But, but.. Is there any good crossplatform UI-libraries that works on embedded OS like Symbian and Palm? That's what I am waiting for (and of course Borland IDE to support this).

      --
      You don't know what you don't know.
    7. Re:Yeah and the BAD news is... by Haeleth · · Score: 1

      Delphi 8 is NO LONGER wrapping the arcane win32 API, it will be wrapping .NET, which itself is very VCL like, so why bother?

      Why bother? Well, um, could it possibly be something to do with backwards-compatibility? You know, allowing customers to upgrade without forcing them to rewrite all their existing applications and retrain all their programmers?

  5. whatis C++BuilderX by Old+Wolf · · Score: 1

    Has anyone got any more details on the mysterious C++BuilderX ? It has all the hallmarks of vapourware, except that it actually seems to have been released. Borland's website doesn't give any useful information.

    I currently use C++Builder 5 (most of the time, without VCL). Is C++BuilderX a "step up" , or should I be sticking where I am? Is it even similar to the older versions of C++Builder at all? Does it use wxWindows similarly to how the older versions used VCL? (ie. can I design RAD forms and stick controls on them, etc.). Does it still have all the debugger features?

    It would be nice if there was a review somewhere from somebody who had actually used the product.. or even just some screenshots?

    1. Re:whatis C++BuilderX by bmetzler · · Score: 1
      It would be nice if there was a review somewhere from somebody who had actually used the product.. or even just some screenshots?

      I just got the evaluation CD Saturday, so haven't had a chance to play around with it a lot yet. Basically it looks like it is an OS, compiler, and debugger independent IDE. You can run it on Solaris, Linux, or XP and tell it which compiler and debugger to use, and it will use it.

      -Brent
    2. Re:whatis C++BuilderX by cybermancer · · Score: 1

      C++BuilderX is a totally different creature then the prior C++Builders. It uses an IDE similar to the JBuilder IDE (written in Java). I have not used it, but just read about it. I get the impression it is designed for C/C++ developers who like to get down to the metal, and are not so worried about Rapid Application Development, hence no VCL (AFAIK). You can download a Personal Edition (free) or the Enterprise Edition trial (time limited).

      If you don't typically use the VCL, and want the flexibility of multiple platforms and compilers it sounds like something you should look into. What struck me as interesting is it does not run on Mac. I recall one of the prior editions of JBuilder ran on Mac, but doesn't anymore. Not sure why that support was discontinued.

      Unfortunately advertising is not Borland's strong point. They just make good development tools.

      --
      "Anything is possible with enough programmers, time and pizza." (Substitute caffeine for time as needed.)
    3. Re:whatis C++BuilderX by DAldredge · · Score: 1

      It is 1000.00 USD per copy or 600 USD if you are upgrading. That is the least expensive package that shows up on shop.borland.com.

      Damn.

    4. Re:whatis C++BuilderX by glob · · Score: 1

      It would be nice if there was a review somewhere from somebody who had actually used the product.. or even just some screenshots?

      here's a swf demo of it.

      --
      nostrils
    5. Re:whatis C++BuilderX by maunleon · · Score: 4, Informative

      Unfortunatelly RAD development (especially UI) was Borland's strong point. If they did abandon that, I am afraid they may end up being clobbered in the market by Visual Studio, at least on the windows platform. Will non-windows sales be sufficient to keep the company in business? I doubt it, at least judging by the /. OSS community which seems to equate open source with free.

      So, for their sake, I hope they kept the awesome RAD features they had. And furthermore, I hope they changed their mentality of abandoning versions of the compiler and forcing the user to buy whole new versions.

      Case in point: Visual C++ 6.0 had what,4-6 service packs? C++ Builder 5.0 has one. And not even that fixed all the annoying UI bugs. Borland is terrible when it comes to fixing bugs in existing releases. This is the very reason I have gradually moved my development to Microsoft tools, except when the UI is more than 80% of the total application code. And this is why I have not bothered to update my C++ Builder 5. At least I know the bugs in this version, and I know they will not fix them and break my work-arounds :)

      Sorry borland, but you lost me as a customer because of your policy of abandoning released products. You had a great product, but you had awful post-sales support. For a $1500 (?) piece of software (enterprise version), I expect a lot more!

      some annoying bugs in the 5.0 version:

      1. In two of my programs, the compiler always gives a bogus compilation error on the first full build. All I have to do is hit "build" again and the build error magically vanishes. Fine and dandy for me, but this will confuse someone else taking over the code.

      2. On a certain application, the UI locks up in the "link" stage periodically. I have to kill the task and restart it.

      3. How hard it is to fix the access violation when users select a new console application??? I get it 90% of the time.

      4. Who the hell implemented code insight in C++ builder?? It's a fine feature if you can wait 20-30 seconds for it to decide on the proper hint (during which time it locks up your UI). And i have a 2P, 2GHz Xeon workstation with 1Gb of ram. I just turn it off.

      5. The TODO list works fine with TODOs embedded in the code. Just try to use it by adding TODOs directly to the list (using the UI, instead of embedding the items in comments)... You can say goodbye to it after a few items.

      6. The XML parser for the project files is somewhat weird. If I remember correctly, XML is supposed to ignore white spaces; however simply removing a library reference using notepad can cause the whole project to be unopenable. If I use the BC++ editor, it works fine.. however the two project files are visually identical side by side.

      7. Access violations and screwed up code generation for ActiveX and type libraries. Every time I create COM or ActiveX I expect to have to manually edit the makefiles, mostly because either it access violates during the code generation or it just simply forget to generate certain code.

      These are all bugs that the service pack should've addressed. No, I am not the only one seeing them, all developers at our site have this issue. There are tons more bugs, I am just blocking them out of memory right now. Comparatively, the Visual C++ UI is rock solid. BCB5 UI barely edges out the VB6 UI if that gives you any idea.

    6. Re:whatis C++BuilderX by Old+Wolf · · Score: 2, Informative

      Yeah same here. I have a several-page document of C++Builder quirks, in case anyone else ever takes over my projects (or if I come back to it after an absence). We should join efforts and make a webpage on the topic, or something.

      The most awful part of it all is the AnsiStrings and TStringList -- since I figured out how the SCL works, I have stopped using those two. They can't even fix the bugs in those because it will break lots of existing code that (accidentally) relies on the bugs.

      Re. your problems:
      1) I think you could fix it with a bit of effort / source file reorganization.

      2) use the command-line linker to try and isolate it. Of course, you could attach the IDE as a debugger to see what is going on :)

      4) turn it off and press ctrl-space when you do need it.. I agree it is awful, they could take a leaf out of VC++ for this one

      5) dont bother with the builtin TODO features :)

      6) yeah

      7) took me a while to figure out how to enter stuff in the type library editor in such a way that it doesn't generate invalid code. I never have to edit the makefiles, just take care. You can't really blame them for that; COM is such a dog and only MS really knows what all goes on under the hood, so they have a headstart in getting it right in their compiler. I'm sure they just don't have the resource to fine-tune it any more. My solution is to develop without COM (either a VCL component, or some such), and maintain a simple COM wrapper as a separate project (that way, any COM-related errors, crashes, BSTR allocation probs, etc. are all easy to track down; or you can even throw away the whole wrapper and make a new one). This strategy has saved me dozens (if not hundreds) of hours.

    7. Re:whatis C++BuilderX by grotgrot · · Score: 1
      here's a swf demo of it.

      I am very impressed that the presenter doesn't know the difference between VPN and VNC. And as others pointed out, Borland have historically been terrible at updates and fixes for released versions of their products.

      The real question is can you trust them to keep up to date with new versions of GNU tools, Intel tools and their own without repeated dinging you for more cash?

    8. Re:whatis C++BuilderX by arkanes · · Score: 1
      Borland fucked up in a lot of ways with BCBX - if I were them, I wouldn't be selling it right now. Let me start a list...

      a) It's mainly a wrapper around other (free) tools. It's a GOOD wrapper, but it's hard to justify the kind of money they want for a simple wrapper. I'd like to see some Borland-specific expertise in it for that kind of money (like a VCL->wxWindows integration library that let people use third party VCL components from withing wxWindows apps. Mmmmmmmm).
      b) They pulled the wx support :P It was only available in the "technology preview", which is only available on the Enterprise version CDs. Postings in the newsgroup indicate that it'll only be available in the enterprise edition, and thats pretty damn pricy consiering that the RAD tool they show in the demo is pretty lame compared to existing wxWindows RAD tools. Again, it's a good wrapper, but I can't see dropping a grand on it - not when I can get wxDesigner for 100 bucks.
      c) No code completion. This one boggles me - they've got a perfectly functional class parser already, it wouldn't have taken more than a developer-week to hack out functional code completion/insight. This is a massive stumbling block, imo.
      d) No VCL migration path. I don't care about this one, but they've got a big customer base there thats really pissed off. One guy managed to get BCBX to build his old BCB6 files after some tweaking, the least they could have done is had an import function.

      BCBX has all the hallmarks of an app that was a good idea but was ruined by marketing & sales. The enterprise edition is really expensive for what it provides. Basic IDE functionality is lacking. Theres nothing outstanding that you can point at as making this a unique product - almost everything it does it does as a wrapper to something I can download for free.

      That said, it IS really cool. If it had code completion I'd start migrating my projects to it, even with the work required. The built in versioning is spiffy. The source control integration is excellent. The project management for dealing with all those compilers and settings is good (far better than Visual Studios *spit*. SyncEdit mode is nifty (select a block of code, start editing an identifier, all instances of that identifier will be changed as you edit. Not really anything that find/replace can't do but it just seems.... better.)

    9. Re:whatis C++BuilderX by Anonymous Coward · · Score: 0

      With #6, you're wrong about XML. It specifically does not ignore whitespaces.

  6. Re:Win32 dead by ka9dgx · · Score: 1
    Win32 isn't dead... nobody sane is going to want the ball and chain that comes with LongHorn, and all this .NET vaporware. Win98 is going to be a lot of places for a very long time.

    New development will shift from Win32 to a Linux base as the Monopoly gets recognised as the Naziware (Digital Restriction Ware?) (Prisonware?)that it is, and shunned in the marketplace.

    --Mike--

  7. mmmmm by Anonymous Coward · · Score: 0

    wxpython, makes windows guis easy and fun.

  8. Re:wxWindows not terribly reliable by DAldredge · · Score: 3, Informative

    QT costs a large amount of real world currency also. And you have to pay if, and this is from their site,
    "Build commercial software.
    Build software that is not sold, but that advances the business goals of a commercial enterprise.'"

    Hell, the BOX, not the license is $149.00 USD.

    Licenses start at 2325.00 USD(pro)/ 3495(enterprise) for 2 platforms and 1 developer.

    One year of support is 720(pro)/1080(enterprise) USD for one developer.

    About the QT license.

    Use the Qt Commercial License to:
    Build commercial software.
    Build software that is not sold, but that advances the business goals of a commercial enterprise.

    Two qualities of the Qt Commercial License should be emphasized:
    It is a development license.

    For desktop distribution there are no royalties, runtime licenses, or other additional costs.
    It is a per-developer license.

    It is assigned to an individual. It may be transferred, but only every six months and within the same organization. To transfer a license contact sales@trolltech.com.
    Common Elements

    Qt is sold in two different commercial editions: Professional and Enterprise.

  9. How long till they kill it? by DAldredge · · Score: 2, Funny

    How long till they kill it like they did to Kylix?

    1. Re:How long till they kill it? by Anonymous Coward · · Score: 0

      "Poll: 75% of Palestinians support Haifa restaurant attack: Respond or Ignore! Don't mod down."

      Most French people probably supported the French resistance against the German occupation.

    2. Re:How long till they kill it? by stormcoder · · Score: 1

      Since when did the French fight the Nazi's by killing random people in restaurants? Many of the victims were muslem.

      --
      Sorry my bullshit sensor overloaded.
    3. Re:How long till they kill it? by DAldredge · · Score: 1

      That wasn't flamebait (as I look at the next to usless Kylix boxes sitting on my shelf)

  10. Re:wxWindows not terribly reliable by DAldredge · · Score: 1

    From the QT site.
    You must buy a license if you...

    ""Build commercial software. Build software that is not sold, but that advances the business goals of a commercial enterprise.'""

  11. Smells bad by Anonymous Coward · · Score: 0

    Borland smells bad - worse than jazz.

  12. Re:wxWindows not terribly reliable by IM6100 · · Score: 1

    Furthermore, if you use a free QT license, you 'taint' your codebase and can not later buy commercial QT and 'relicense' it. This is, at least, the interpretation that I have heard before. It means you can't develop a product using QT and then 'buy a license' when and if you decide to go commercial with it.

    Someone please contradict me if I'm wrong, because I don't have it direct from Trolltech anywhere I can cite.

    --
    A Good Intro to NetBS
  13. Re:Win32 dead by xagon7 · · Score: 1

    I wish you were right, but after seeing Bocon this year, Borland is ALL ABOUT .NET and M$ is pushing it EXTREMLY hard.

  14. Re:wxWindows not terribly reliable - but Tk is by suchenwi · · Score: 2, Insightful

    I (as well as many others) code cross-platform GUIs in Tk - a rock solid C lib, available on Windows (down to CE), Linux, Mac, as well as many other Unix flavors. Source is wide open, and under the most free BSD-style license. Highly recommended.

  15. Re:wxWindows not terribly reliable - but Tk is by arkanes · · Score: 0
    Tk's fine if thats what you're into. I prefer wxWindows because it's

    a) highly supported and actively developed
    b) C++ (this is a minus for many people, I know)
    c)Not fugly. The fugly part is a big problem with alot of toolkits, especially the old ones like Tk.

  16. Re:wxWindows not terribly reliable - but Tk is by Pascal+of+S · · Score: 2, Informative

    I'll take the f****bait:

    A) Active development and support? Same for Tk: Ever been on comp.lang.tcl or http://wiki.tcl.tk give it a try. There are too many people to count there, most of them very helpful. Plenty of active developers both using *and* creating the language and Tk.

    B) What's wrong with extern "C" {}? Or just use a (god forbid) Tcl script to build the UI with a few lines? Forgive my ignorance, but there are dozens of Tk bindings to other languages than Tcl, how many does wxWindows have?

    C) Ah, yes, the looks. That is a bit of a sore point, yes. On windows it usually looks just like windows, though and on unix you just copy paste about 100 LOC to make it look more modern. Mind you, the way Tk works, you only need to copy-paste, no need to edit.

  17. Re:wxWindows not terribly reliable - but Tk is by arkanes · · Score: 1
    a) I'll take your word for it.

    b) wxWindows is rapidly replacing Tkinter as the standard Python GUI. There's also bindings to Perl, Ruby, Java (more than 1), JavaScript, a couple forms of Basic, Lua, and .NET. And thats just the ones I know about off the top of my head. How many of those are actively maintained, I couldn't really say, except that wxPython development parallels wxWindows.

    c) I need ZERO loc to make wxWindows look like whatever platform its running on. Thats what it's for, after all.

    Look, I'm not really an advocate. I like wxWindows and use it, but I'm not going to cry if you don't. I have no idea why anyone would use something like Tk when theres better alternatives, but I'm sure you have good reasons. It's all about choice, right? Just don't ask me to use any of your apps :P

  18. Re:wxWindows not terribly reliable by Haeleth · · Score: 1

    [Qt is] not free in any sense of the word on Windows.

    What about the unofficial Win32 port of the GPL'd X11 version? (link)

    Unfinished, yes, but an interesting project nevertheless. I must confess I'd like to know what TrollTech think of it...

  19. Re:wxWindows not terribly reliable by yerricde · · Score: 1

    if you use a free QT license, you 'taint' your codebase and can not later buy commercial QT and 'relicense' it.

    Where did you hear this? The owner of copyright in a work (such as an application that uses Qt) is the author of the work. There's no reason why he can't publish a GPL version of the work linked to a GPL library and a proprietary version of the work linked to a proprietary library. And there's no reason why the GPL version of Qt shouldn't run under Cygwin.

    --
    Will I retire or break 10K?
  20. Re:Win32 dead by Anonymous Coward · · Score: 0

    Just for reference, all the .NET apps I've written work perfectly fine on my Win98SE machine..

  21. Re:wxWindows not terribly reliable by mnmn · · Score: 1

    I have been using QT in several places and know it better than wxWindows FLTK and others. So I'm not clear why this guy got modded down. He's right. QT makes C++ actually work the way it should, and the most complex apps compile fine under different compilers in different operating systems while remaining tiny, fast and stable.

    Yes this guy is wrong about free. I just dont have the 6 grand CDN dollars to roll out commercial apps that I'd like with QT. Sucks.

    --
    "Give orange me give eat orange me eat orange give me eat orange give me you." -Nim Chimpsky
  22. Re:wxWindows not terribly reliable by bill_mcgonigle · · Score: 1

    You must buy a license if you...

    ""Build commercial software. Build software that is not sold, but that advances the business goals of a commercial enterprise.'""


    Seems like a reasonable license to me. Businesses get to pay for something to increase their revenue potential (that's pretty much the definition of a business), individuals get it for free. Nice balance. Not that I much like their toolkit, but that's a different story.

    --
    My God, it's Full of Source!
    OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
  23. Re:wxWindows not terribly reliable by pmz · · Score: 1

    QT costs a large amount of real world currency also.

    Qt has a very reasonable business model: Free software developers don't pay, commercial software developers support Trolltech by buying Qt.

    Also, a developer can protect themselves by isolating the GUI in their architecture (not impossible), so if Qt goes GPL-only only that portion of the commercial application need be open-sourced. Of course, this takes foresight, which is very rare in the software industry.

  24. Re:wxWindows not terribly reliable - but Tk is by Anonymous Coward · · Score: 1, Insightful

    Zero lines of code to make something look native? That's all well and good, but you have to keep in mind Tk has sheer elegance going for it in code quality.

    Compared with something beastly like wxWindows (which feels like an MFC/Java crossbreed from heck), Tk tastes great and is less filling. Perl::Tk kicks serious butt. Pick up the Oreilly Emu (Mastering Perl Tk) book and read it some time.

    And it's not just for Windows and Linux. Tk is everywhere. And for nearly every language. Good stuff.

    Too much emphasis is put on shiny things versus cool things. Tk is cool. And, don't know about you, but my Tk apps *ARE* shiny. (And not to mention I can write them faster).

  25. Re:wxWindows not terribly reliable by DAldredge · · Score: 1

    I don't have a proble with the buy the license part. What bothers me is the cost.

  26. Re:wxWindows not terribly reliable by bill_mcgonigle · · Score: 1

    I don't have a proble with the buy the license part. What bothers me is the cost.

    It's probably the wrong toolkit for a garage-based startup, but for MegaloCorp, it's pretty cheap.

    e.g. Motorola has a team of ten developers writing the GUI for their new cellphones. They pay $19K/year for the platform their product is based on. The developers cost them close to a million a year in salary.

    --
    My God, it's Full of Source!
    OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
  27. Re:wxWindows not terribly reliable by arkanes · · Score: 1

    Probably nothing, it's hardly a competitor for the "real" Qt. It's cygwin-hosted, not native. It's buggy. It's slow. There's been tentative work a number of times on a real, live, native win32 port of Qt/X11, but (afaik), it's never gotten very far, probably because theres other alternatives, such as (but not limited to) wxWindows.

  28. Re:wxWindows not terribly reliable - but Tk is by Salamander · · Score: 2, Interesting

    Yeah, Tk is great for quick prototyping. I've used it that way myself for years, and I very recently released some code for general use that was done that way. However, Tk is simply lower level and less polished than wxWindows. Tk has basic widgets that work which is fine for stuff I use myself or give to other developers, but I can recognize a Tk-based UI as such immediately on either Windows or Linux and that's a drawback. WxWindows has more advanced widgets that are indistinguishable from fully-native counterparts and can match the most polished professional applications. When I looked at a list of programs that used wxWindows (somewhere on the wxWindows site) I was actually surprised by some of them. I had used some of them, and it never occurred to me to wonder what framework they used. That's something I've never been able to say about any Tk-based UI, where the framework is in my face and many operations follow the framework model instead of the local UI standard unless someone has done a lot of per-application work to overcome the mismatch.

    Yes, there are plenty of packages that attempt to "raise the semantic level" of Tk-based UIs, from grouping radio buttons to providing automagical tabbed dialogs with built-in scrolling canvases and checkbox tree controls. Follow that approach to its logical conclusion, and what do you get? WxWindows. Why use Tk plus this plus that with a little bit of the other and a whole bunch of your own time sanding off the rough edges, when somebody on the wxWindows team has probably already done it? Sure, you have to learn a little bit about how they did it, but that's really no harder than learning how to do it yourself with Tk, and the next programmer has a better chance of understanding what wxWindows did than what you did. Do you want to spend all of your programming time dicking around with character-set issues and varying focus/selection semantics on multiple platforms, or do you have other kinds of problems you'd rather be solving? I know I'd rather not get bogged down writing UI workarounds just to have something that's not butt-ugly. I have better things to do with my programming time.

    --
    Slashdot - News for Herds. Stuff that Splatters.
  29. Java couldn't, .NET couldn't by Nicolay77 · · Score: 2, Insightful

    Borland can't.

    This is not a borland created product, is a very powerful and mature framework that is both open source and bussiness friendly.

    Borland builder can be killed, but not wxWindows. I use it with mingw GCC and VC++ and I don't think I will change it anytime soon.

    --
    We are Turing O-Machines. The Oracle is out there.
  30. C++ BuilderX by RyosukeFC · · Score: 2, Insightful

    I'm just a C++ student at the local community college, so I don't know a lot about the usefulness of the various other stuff it comes with, but I ordered the Personal edition on CD from shop.borland.com a few days after it was released, and have been in love with it from the beginning.

    The textbook our class uses comes with CodeWarrior, which I can't stand, so I opted for BuilderX. All CDs of BuilderX I've seen (Personal and Enterprise) have installs for all the supported OSs on one disc (Win32, Solaris, Linux) and support whatever compilers you may want to use.

    There doesn't seem to be much in the way of tools to design GUI programs, but I don't need that at the moment anyway. The Java-based UI is surprisingly fast, only slightly slower than the GTK+-2.0 port of Anjuta, which isn't nearly as stable as C++BuilderX.

    All in all, for my $10(+$12.50 S&H) I'm quite pleased.

    My one gripe would be the lack of documentation on the C Library functions. They're there, and you can of course use them, but no dox.

  31. Re:wxWindows not terribly reliable - but Tk is by Electrum · · Score: 1

    WxWindows has more advanced widgets that are indistinguishable from fully-native counterparts

    That's because they are native. On Win32, wxWindows is a wrapper around the standard Windows components, just like Borland's VCL is a wrapper.

  32. Re:wxWindows not terribly reliable by mattgreen · · Score: 2, Insightful

    wxWindows is better than Qt from a Windows user's perspective, because wxWindows uses the native API calls, whereas Qt seems to merely draw the UI instead of actually calling it. Menus look very close to the real thing but are always off in tiny, tiny ways. It is never as good as actually just letting the OS do it for you. The Qt site spins this to say it could be faster. Yeah, I don't see how.

    Qt's slot/signal mechanism is awesome. However, modern C++ compilers can do it without the additional compiler (use Boost/Loki).

    I think that any C++ library should actually use the full gamut of C++ features instead of saying "we're going to worry about the platforms that don't support exception handling/namespaces/templates and just not use them at all." That seems like a great way to end up with MFC. It is 2003 people, lets at least code like it is.

    Yes, I realize these features are not implemented everywhere. Perhaps someone should split away from the projects and start a comprehensive, powerful C++ abstraction layer that is for desktop application programming on Linux, Windows, and Mac OS X. I'm just tired of half-assed libraries getting the crap kicked out of them (comparatively speaking) from .NET because they are too afraid to take advantage of the language.

    I ended up working on a wrapper for Win32 because every cross-platform alternative ended up having an Achilles heel of some sort.

  33. wxWindows by lunenburg · · Score: 1

    wxWindows looks like a really nice toolkit, with lots of robust widgets. I just wish that A) wxPerl wasn't so buggy, and B) that the wxPerl/wxWindows documentation was better than "Here's an alphabetical list of method calls - good luck!"

    Good docs like the Perl/Tk books keep me with that toolkit. I'm the first to admit I'm not a good coder, but I've been able to do a lot following the documetation in Mastering Perl/Tk.

    1. Re:wxWindows by Beached · · Score: 1

      There are turorials that explain how to get the basics going. But the real beauty of wxWindows, at least to me, is that the name of the class tells you exaclty what it is. You want a button, wxButton.

      --
      ---- aut viam inveniam aut faciam
    2. Re:wxWindows by lunenburg · · Score: 1

      There are turorials that explain how to get the basics going. But the real beauty of wxWindows, at least to me, is that the name of the class tells you exaclty what it is. You want a button, wxButton.

      Right, the documentation will tell you that if you need a button, use wxButton. It won't tell a non-C++ programmer how to fit that button into an overall application, or how to do interesting things with the button. It'll tell you that it expects certain WX_* things, but you have to go track down the C++ documentation for those functions. The docs were written for someone who does a lot of C++, and it shows.

      And most tutorials I've seen are usually in the form of wikis with a couple of semi-commented hello world type programs, and every example beyond that in complexity is usually "Coming soon..." :-)

      I'll admit that the problem is probably mostly on my end, but I was able to pick up the Perl/Tk book and get up to speed on GUI programming fairly quickly. There's no equivalent reference for wxWindows/wxPerl that I've found that lets me do the same. So every time I try to port my app to a wxWindows binding, I usually have to drop it in frustration after a couple of weeks. Which is a shame, because I think wxWindows is a superior toolkit.

  34. Re:wxWindows not terribly reliable - but Tk is by tcopeland · · Score: 1

    > There's also bindings to [...] Ruby

    Yup, it's on RubyForge - WxRuby.

  35. Re:wxWindows not terribly reliable by arkanes · · Score: 1
    There's nothing wrong with that, but it does make Qt inappropriate for (and unaccessible to) the (very) large market of free, share, and low cost software on windows. Not to mention OSS projects that might want a Windows port.

    It is, of course, Trolltechs right to do the licensing that way and I can even agree with thier reasons, but the simple fact is that I can't use it, and since I can't use it I'll use something else (and I've grown to prefer wxWindows anyway), and that means that when I get rich and famous or when Microsoft buys my startup or whatever, I'm going to CONTINUE using my other option. Because once I've already got a mature cross platform codebase, Qt doesn't have a whole lot to offer me.

  36. Re:wxWindows not terribly reliable - but Tk is by arkanes · · Score: 1

    Borlands VCL is actually not a wrapper around natice controls. Most of them are implemented using Win32 primitives. I have no idea why they did it this way but I assume it dates back to the early days of Dephi when the Win32 common controls were much less functional.

  37. Re:wxWindows not terribly reliable by arkanes · · Score: 2, Informative
    You'll be happy to know that part of the current development on wxWindows is working towards replacing (or rather, supporting) replacing the macro based container classes and home rolled string classes with wrappers and typdefs around the STL, as well as making the library exception safe. Templates are already being used to a minor degree, but even today template support is just too iffy and varies too much between compilers to really go all out - look at the hoops the Loki and Boost people need to go through to make thier libraries work.

    Check out http://vcf.sourceforge.net for a library thats based on similiar concepts to wxWindows but written using modern C++ features. It's not mature yet, but maybe you can give it some help ;)

  38. Borland's elaborate suicide ritual. by hh1000 · · Score: 1

    I hope like the Titanic sinking and sucking down life boats with it, Borland doesn't hurt WxWindows in some way. Interbase anyone?

  39. CreateDIBSection(), frame buffers, and GUI libs by Latent+Heat · · Score: 1
    Back in olden times, a VGA display was just a frame buffer, and if you selected one of the 256-color modes, that frame buffers was simply an array of bytes that you wrote to your heart's content. In the days of DOS and VGA and 2-D games, that was the way to go.

    These new-fangled object-oriented GUI's have to abstract the heck out of everything and I guess a frame buffer is considered way too low level. In wxWindows the abstractions are wxWindow (the window thingy), wxDC (abstraction of the drawing surface but pointedly not a frame buffer -- you are only allowed to perform highly-abstract graphics ops like draw geometric shapes, text characters, and blt bitmaps, themselves not frame buffers but abstractions), wxBitmap (highly abstracted bitmap), and wxImage (yet another abstraction, but can be created from a frame buffer). Then there are all these rules -- you can blit wxBitmap to wxDC, and you can create a wxImage from image data and then create a wxBitmap from the wxImage to blit to the wxDC.

    Ok, ok, pretty much every GUI framework from Swing to SWT to Borland VCL to wxWindows pretty much has this four-layer system. Windows has it as well (HWND, DC, HBITMAP, and DIBITMAP), but ol' Billy-boy wanted to get all of DOS VGA frame buffer hackers to come over to Windows, so he put in two systems: 1) the StretchDIBits() and CreateDIBSection() calls that in effect allow you to create frame buffers that you can hack as you want, and then you can blit them whole or piecemeal to the screen 2) DirectDraw. I prefer the first approach because it works for non-full screen mode.

    Everything apart from Windows (wxWindows included) appears to require you to create a new bitmap from a new image every time you want to change something and to require you to blit the thing wholesale to the screen. While the CreateDIBSection() thingy is complicated, once you have it set up, you can poke at a frame buffer and selectively blit portions of that frame buffer to the screen -- you know, the 2-D game programmer "dirty rectangles" algorithm. Delphi introduced the ScanLine property late in the game (i.e. after I had already hacked down to the Windows API -- was it Delphi 4 before it was finally introduced) that uses CreateDIBSection() behind the scenes. Kylix also supports ScanLine, but because QT doesn't have CreateDIBSection(), there these restrictions imposed on how you have to recreate the frame buffer every time you poke at it.

    I guess game programming has all gone 3-D and they worry about "triangles" or some such thing. I am not a game developer -- I am a developer of 2-D scientific visualization software that functions much like the old 2-D games.

    Why is being able to set up a frame buffer, poke at portions of that frame buffer, and selectively blit modified parts of that frame buffer to a window object considered such an obscure feature in all these systems? I am really locked into Windows -- help!

    1. Re:CreateDIBSection(), frame buffers, and GUI libs by arkanes · · Score: 2, Informative
      wxWindows 2.5 and later includes raw bitmap support (DIB, under windows). It was added largely because theres alot of people writing visualization software with wxWindows and there were alot of questions about wxImage and wxBitmap performance.

      If you want something more cross platform than DIBs, you can try using OpenGL.

  40. wxWindows is a first-class toolkit! by georgevulov · · Score: 1

    Two years ago I was looking for a fine cross-platform toolkit, and I came across wxWindows.

    It's very strange that this toolkit gets so little publicity, as it has a very rich API and lots of nice features - such as a sweet sizer-based XML resource system that makes creating GUI a breeze. It also has wxConfig classes which allow one to easily store configuration settings without worrying about the underlying system (registry on windows, files on UNIX). Its HTML help classes provide an easy, cross-platform way write help. wxWindows supports XPM files under all systems to spare the programmer from having to convert one's icons to the appropriate system format on every system. It's all in the API Reference

    Disclaimer:
    I can't say I've done any very serious applications with wxWindows, just a light AOL Instant Messenger - it fits on a floppy and requires no install. I've seen enough to know it's a great toolkit, though.

    --
    TerraIM - my pet AIM client project.