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."
But it also comes prepackaged with ACE !
BTW There is a free version of it that is downloadable.
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.
Borland is caught in the .NET.
.NET. If I were to perform any NEW windows centric development I would use C#. The good news though is C# Builder is AWESOME.
Delphi 8 and the VCL are nothing more than wrappers around
Just my $0.02
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.
How long till they kill it like they did to Kylix?
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.
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.
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.
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.
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.
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.
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.
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.
.NET because they are too afraid to take advantage of the language.
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
I ended up working on a wrapper for Win32 because every cross-platform alternative ended up having an Achilles heel of some sort.
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 ;)
If you want something more cross platform than DIBs, you can try using OpenGL.