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."
I am fully aware that Slashdot is the home of a population that is certainly liberal in their socio-economic views. With that being said, you take the motherfucking cake and shit it out in a pattern that spells out "I AM A FUCKING COMMIE PIG!!!" You certainly are a commie! You are my natural enemy and, as such, I must request that you be modded down as quickly as possible. Certainly there are reasonable moderators among us who can see that communists running wild in my forums is a very bad thing. Moderators? Please, do your duty and make this asshat silent! And to those of you who are not moderators, take heart - you can help the true American cause. All you have to do is get out there and vote against Howard Dean - he will destroy Democracy and Capitalism if we allow him to. You may also wish to boycott any Open Source Software - any software product that gives away the source code gives it away to anyone who wants it. This includes terrorists. Do not be surprised if you see the Saudi government releasing a version of Linux and using the profits (money that would have otherwise gone to Microsoft - an AMERICAN company) to fund terrorists who want to fly badly in my country! I will continue my fight for your rights not to be bothered by liberals! God Bless America!!!
Disclaimer: I've used wxWindows (in the guise of wxPython) for some years. All this time, I had attributed the general flakiness and unreliablity of the library to the difficulty of doing cross-platform GUI coding.
;)
Then I switched to C++ and Qt. WOW! What an incredible difference. Qt made C++ usable, and its crossplatform support was actually *supported*. Imagine that. Qt works great under Windows and Unix, the only platforms that 99% of us have to deal with. And its free. As in LGPL. Qt made GUI programming fun and easy. So go download, check the tutorials, and realize just how great GUI programming with C++ can be
But it also comes prepackaged with ACE !
BTW There is a free version of it that is downloadable.
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
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?
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--
wxpython, makes windows guis easy and fun.
How long till they kill it like they did to Kylix?
Borland smells bad - worse than jazz.
I wish you were right, but after seeing Bocon this year, Borland is ALL ABOUT .NET and M$ is pushing it EXTREMLY hard.
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.
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.
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.
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
Just for reference, all the .NET apps I've written work perfectly fine on my Win98SE machine..
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).
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 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.
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.
> There's also bindings to [...] Ruby
Yup, it's on RubyForge - WxRuby.
The Army reading list
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.
I hope like the Titanic sinking and sucking down life boats with it, Borland doesn't hurt WxWindows in some way. Interbase anyone?
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!
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.