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."

17 of 68 comments (clear)

  1. 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.

  2. 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.

  3. 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 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.

  4. 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.

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

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

  6. 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.

  7. 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.

  8. 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.

  9. 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.

  10. 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.
  11. 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.
  12. 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.

  13. 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.

  14. 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 ;)

  15. 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.