Domain: wxwindows.org
Stories and comments across the archive that link to wxwindows.org.
Comments · 206
-
WOHO!
Quick, KILL IT! It had a damn retarded licencing scheme anyway. Now if only KDE will die as well, the world would be a better place.
You'll find that wxWindows, the Fox Toolkit and GTK provide vastly superior -AND FREE- alternatives to QT. -
Perhaps they are waiting for the Bill?
When Microsoft get around to Freeing Windows, perhaps TrollTech will Free the Windows version of Qt?
As another poster points out, wxWindows does a lot of the Qt stuff in the WIMP arena, and I'd like to add that systems like libSDL pretty much cover the unWIMPy, less structured stuff anyway. Having a spectrum of alternatives is good, and since the smallest disk I can buy these days without going out of my way is 40GB, I don't have a problem with installing a dozen or so sets of libraries. -
Re:No big deal
-
Re:No big deal
-
GUI toolkit libraries
The biggest problem I see for desktop interoperability is the fact that there are so many GUI toolkits, and there's a huge overhead to keep them all loaded. IMHO as a Gnome user, having to run a QT app is an embarassment - takes way too long to load the QT libraries an initialize the GUI for even a small window. Of course I could keep the libraries loaded, but that's a ton of memory wasted. I'd imagine the same is true for KDE users trying to load GTK2/+ apps. This applies to loading Mozilla and OpenOffice.org as well. OOo especially runs like a cow in the mud - I can't even pay attention to the impressive feature set since it's so unresponsive. I always end up shutting it down and going with Abiword instead.
There's one good thing about MS Windows GUI; it's very responsive. That's because everything uses the same widget set that is kept in memory with little extra overhead. The fact that it runs in Kernel mode doesn't hurt it, but Linux's improved job control should balance that out. Using Linux with a unified widget set, like GTK2, is very responsive. Adding others, like QT, motif, swing, XPT (mozilla), and whatever Sun crap OOo uses, makes it very much less so.
I know nobody would agree with any proposal to scrap QT and port everything to GTK2, or the reverse. What I'd like to see instead is a library similar to wxWindows, or maybe an across-the-board improvement of wxWindows. Port QT and motif to it, add bindings for everybody's favorite language, etc. You could even use translation libraries to ease the transition process. That way you could compile Gaim for QT, Mozilla for motif, Konqueror for GTK, and everything in between. Only one GUI library would need to be loaded and everyone could use their favorite. It would certainly help for Windows ports as well. Thoughts? -
Re:Is Mono a death threat to Microsoft?
"really leveraging your applications look and feel" sounds to me like code for "it'll be ugly as shit and look nothing like the rest of my applications". Some people prefer things like Java or Qt because the app looks the same on all platforms. I prefer that my app look (and act) native on all platforms, which is why I use wxWindows. And it's free!
-
I'm suprised no one knows about wxWindows?
Borland has decided to support wxWindows. It does make any sence for them to create another widget set (aka Qt) or to try and build there own any more. Borland has always been about letting people have control. When everything went off 16 bit they still supported it for a number of years even after it went out of fasion. They tried to do the same with linux using Kylix with varing success.
About two months ago(or less) they started to officially support wxWindows. They're helping them to set up a foundation (aka mozilla foundation) so they can make sure people that they can protect the code.
From what I can see it's a win win situation. wxWindows get support in the form of better testing and an accelerated wxEmbeded toolkit (they always had good doco - well I thought they did) and Borland gets to make the best wxWindows RAD IDE around (there aren't any good WYSIWYG ones around at the moment)
It means that anything made with Kylix 5?(They'll probably rename it or atleast skip a version ^-^) Can be setup in a single build script to create three executables one for Linux, one for Windows and one for the Mac. You'll be able to bundle them all on one CD and sell your product to all off them using native widgets (including native drag and drop and cut and paste).
The code create will be largely wxWindows code although I suspect Borland will make there own libraries in area's that wxWindows doesn't cover or add complex widgets built on wxWindows. I suspect you'll still be able to compile it without borland though. ( Think Netbeans and java )
Anyway I personally think it's a better dirrection although we won't see anything for a year or so. -
Probably because of Borland's support of wx
In Julian Smart's recent announcement of the wxwindows foundation, he noted that Borland is supporting wxwindows development and that an employee of Borland is on the Board of Directors at the foundation. This is probably behind Borland's 'neglect' of kylix--expect the next generation to support wxWindows. This doesn't sound like abandonment to me.
-
Re:We had been thinking about using kylix
Might I suggest you take a look at wxWindows? It is a full featured toolkit for Windows, Mac (Classic and OS 9/X Carbon), Linux/UNIX (GTK, Motif, and also plain old X11 using wxUniversal to draw the widgets), and now Cocoa (the native OS X framework). (NOTE: I am the lead (sole?) developer of wxCocoa)
AOL has used it for their new AOL Communicator. I have used it to write PhotoFlair and several other people in the same line of work as you use it on a regular basis. Support via mailing lists is excellent and almost always timely (unless you come in screaming for free support and demand an answer yesterday) and there is paid support available from almost all of the core developers.
As if that wasn't a good enough reason, Borland has announced a new C++ Builder X product which is an IDE written in Java which will feature wxWindows. Yes, I realize the IDE would be better written in wxWindows, but apparently they had a very large investment in the Java IDE long before they decided to use wxWindows.
I suggest that you go ahead and give it a shot. Download it for your platform of choice. Sign up for the wx-users mailing list and read some of the messages. Post any questions you may have to the mailing list. I have no doubt that you'll find it to be a superior toolkit.
Anyway, my two cents into this discussion is that I'll speculate the reason Kylix isn't being pushed now has something to do with the fact that C++ Builder X seems to be where Borland wants to go. A new wxWindows Software Foundation is being created with Mitch Kapor (Lotus 1-2-3 and now Open Source Application Foundation) as the chairman of the board with Julian Smart, Vadim Zeitlin, and Stefan Csomor (three core wxWindows developers) and Rob Farnum (Borland, worked on TWIN32 at a previous occupation) as board members.
-
Re:What about wxWindows?
Oops, the wxWindows embedded link is:
-
What about wxWindows?
-
Re:JAVA is the suv?
I don't know why you think that GTK is the only cross platform toolkit, because it's about the crappiest one (no, GTK on Windows isn't any less horrible), but good ones make cross platform programming a breeze. C++ rather than C tends to be the language of choice. I prefer wxWindows, but theres a number of others, including Qt, FLTK, and FOX.
-
Re:No macros and they JUST got footnotes?
It's more confusing on Linux because there isn't just one like on Win / Mac. Well, that's not 100% true since you could code directly to X11 but you'd be a hell of a sucker for punishment if you did that.
Your best bet for a GUI toolkit will vary depending on which language you want to use to program but I'd recommend looking into wxWindows if you want a toolkit that's MFC-like. There a bunch of other good choices, most notably QT and GTK based toolkits but those would require a more significant departure from what you'd be familiar with.
Outside the GUI, there are some differences with regards to system calls but if you're familiar with Posix (exists on Win too) you can get up to speed pretty quick there.
Documentation is sketchy and I strongly recommend spending $40 on a Linux programming reference book. You'll save a lot of frustration and time scouring the web. One key concept to remember is that on Linux almost everything is treated as a file, including devices. As a programmer, you'll find it frustrating for a good 6-12 months, especially since you already have a background in another environment. Believe me that it does "make sense" after a while but it takes some time (and frustration) to get to that point.
As for KDE and Abiword, you'll need to have GNOME installed (though not running) to use Abiword. This is the source of a lot of bad blood so I'll leave it at that. -
Re:I Used to Love Borland IDE'sin order to get cross platform support with the Borland compiler... with all the frills anyways... you would have to use the borland libraries... this is something I can imagine most opensource projects would shy away from.
Couple questions:
1. Why be limited to using the Borland compiler within Borland C++ BuilderX? Why not use the now tightly integrated GCC or Intel C++ compiler within Borland C++ BuilderX IDE? By the looks of the demo, it looks like even the various debuggers work the same way within this IDE.
2. Do people really "have to" use Borland libraries for cross-platform projects? Why can't they simply use something like wxWindows or any other cross-platform library supported by the compiler of choice?
IMHO, a tool giving developers more choices will attract rather than push away developers. The freedom to CHOOSE the development OS, CHOOSE the target OS, CHOOSE the specific compiler & debuggers,CHOOSE the cross-platform libraries, etc.
-
Re:I blame colleges
So, you don't believe in secure languages, eh?
I do! In fact, I'm one of the few people who actually likes Ada (I just hate the compile times). However, I also like to have my code work on multiple platforms, and have a GUI, and have better responsiveness than Java 1. So, until someone can show me two things, I'm sticking with C++. What two things?
- An ada compiler which works identically on Windows (95, 98, 2K, XP, etc), MacOS X, and Linux. And I'm not sure gnat is there yet.
- A GUI toolkit as comprehensive and useful as wxWindows for Ada
Please, show me that. I'll switch to Ada in a heartbeat for everything. Without those two items, though, I'm not budging. Especially since I know that Ada has gone OOP for a long time now.
1Yeah, yeah, I know that Java speed has gotten better for the GUI's. Sorry, but my little 1.3Ghz Athlon with 1G of ram still runs Java apps like a dog. And yes, I mean applications, not applets, and that's with Sun's JRE 1.4 on Linux with kernel rev 2.4. So go away unless you're going to tell me how to make these programs work at a good speed.
-
Gnumeric on Mac OSX.
Gnumeric seems to work ok on OSX. You need to install an X11 Server and Fink, and then, in a Terminal: sudo fink install gnumeric (and wait a long time) or sudo apt-get install gnumeric.
An Aqua or Carbon port would be cool though.
If more people used wxWindows, then (a) porting to Windows and Mac would be really easy, and (b) wxWindows would continue to improve as people contributed.
-
Gnumeric on Mac OSX
Gnumeric seems to work ok on OSX. You need to install an X11 Server and Fink, and then, in a Terminal: sudo fink install gnumeric (and wait a long time) or sudo apt-get install gnumeric.
An Aqua or Carbon port would be cool though.
If more people used wxWindows, then (a) porting to Windows and Mac would be really easy, and (b) wxWindows would continue to improve as people contributed.
-
Re:This might mean something to me
I use and enjoy wxWindows, but I do not think your criticism of QT and their licensing is very fair. They have a completely free license (GPL) which you can use - to create completely free applications. They have commercial licensing (admittited too expensive for "shareware" type applications).
There is a completely reasonable middle ground where you can release your application as GPL code - which you can legally sell for any price you want - yes you need to provide the source code to your customers (not a bad thing) and yes they can then give it away to their friends, family and even people they pass on the street - but if your application has true value - they will probably be more than willing to pay for it (especially if it is as low cost as you claim). Many users are not sophisticated enough to compile their own binaries and the making the "official" binaries what you sell - is legal.
Now if you are just upset because they will not give you (or sell at the price you pick) their library for you to use in closed source for profit applications, then it is far better that you found a different library. -
Use of -or vs. -our in programming class librariesIn wxWindows, a GUI library, all the classes use -our. For example, the wxColour class uses the UK spelling. This reflects the origins of wx, as it started 10 years ago in the UK.
Every once in a while, the mailing lists tell how it should be converted to all US spellings.
The solution that is used is in the
colour.h header, at the bottom there is a
#define wxColor wxColour
to help those who have difficulty using the UK spelling. -
Use of -or vs. -our in programming class librariesIn wxWindows, a GUI library, all the classes use -our. For example, the wxColour class uses the UK spelling. This reflects the origins of wx, as it started 10 years ago in the UK.
Every once in a while, the mailing lists tell how it should be converted to all US spellings.
The solution that is used is in the
colour.h header, at the bottom there is a
#define wxColor wxColour
to help those who have difficulty using the UK spelling. -
Use of -or vs. -our in programming class librariesIn wxWindows, a GUI library, all the classes use -our. For example, the wxColour class uses the UK spelling. This reflects the origins of wx, as it started 10 years ago in the UK.
Every once in a while, the mailing lists tell how it should be converted to all US spellings.
The solution that is used is in the
colour.h header, at the bottom there is a
#define wxColor wxColour
to help those who have difficulty using the UK spelling. -
Bahhhhh.
Too bad the guys that own Trolltech own SCO too.
QT was a good product. I'm going with
WxWindows
for now. GTK's okay too, but their Windows
support sucks.
-
Re:hogwash.
Seriously, what alternatives to QT do you suggest? If you need something with a configurable look, looks sort of like native Windows apps on Windows, is supported on Linux, OS X, Windows and Solaris, and is fairly mature and stable.
wxWindows is better than Qt because it uses native widgets on all platforms, not emulated native widgets like Qt. It is mature and entirely free. There is also wxPython, letting you use wxWindows in Python. -
Re:I think this is pretty significant.
Have you looked into wxWindows?
-
Re:To install or not to install
-
Re:You can make a portable C++ app.How about wxwindows
What is wxWindows
wxWindows gives you a single, easy-to-use API for writing GUI applications on multiple platforms. Link with the appropriate library for your platform (Windows/Unix/Mac, others coming shortly) and compiler (almost any popular C++ compiler), and your application will adopt the look and feel appropriate to that platform. On top of great GUI functionality, wxWindows gives you: online help, network programming, streams, clipboard and drag and drop, multithreading, image loading and saving in a variety of popular formats, database support, HTML viewing and printing, and much much more. -
Re:Hey They Mentioned Me!Actually, there are some cross-platform toolkits without these problems. Like, um, SWT, Qt, Tk, WxWindows, Gtk, CLIM, DUIM, FLTK, Fox, CAPI, or simply, all other cross-platform toolkits I've ever heard about or used personally.
IMHO, the problem with Swing is mostly that it is horribly overengineered and, frankly, that the implementation sucks. It's all in src.jar - read it and tell me if you would hire someone who would present that piece of crap as their prior experience.
-
Re:Hey They Mentioned Me!
wxWindows also has bindings for Perl, Python, and may other languages. It also runs on Linux, Mac, and Windows. One of the best features is that you can layout your screens in XML resource files. Check it out: http://www.wxwindows.org/
-
Re:Visual Basic?
What are you going to tell me next, people buy Windows?
Well, he told you that the wxWindows Licence was GPL, so what do you expect?
-
Visual Basic?
wxWindows has plotting functions, and is cross-platform and GPL. We don't need no stinking VB *shudder*. Less than 10$ in parts, but a hundred bucks in software?
-
Re:Slightly OT: Linking static libs w/GPL'd code?
Is a lack of polished open source applications really a problem?
Back when I was a Linux and Slashdot n00b I always thought this. Mostly because of comments like yours suggesting that open source software is no good unless it has polished applications.
I have since changed my tune. Got a couple of commercial applications out there using open source software (i.e. BSD or LGPL libraries).
Let's face it, the typical open source development process is absolutely horrible for developing end-user desktop applications. However, the development process is perfect for system components and other libraries.
The problem we have now is that a lot of people are trying to develop applications for Linux using an open source development process simply because there are no other applications. What Linux really needs is a healthy commercial software market.The problem is, few developers want to waste resources on Linux when they can develop for Win32. Furthermore, most developers don't realize that writing cross-platform software can actually be easier than writing to Win32 or Linux alone.
Enter wxWindows. It's a mature C++ library that has ports for MSW, Mac (Classic and Carbon), X11 (drawing its own widgets), Motif, GTK, and others. It has quite a bit of similarity with MFC (only in a good way though) which makes it easy for MFC teams to get started.
Is it perfect? No. There's a few rough edges. Some people (particularly Microsoft and/or Java developers) are displeased with the way windows (not top-level) are owned by their parents. Some people are displeased that wxWindows doesn't use templates (it uses macros to accomplish the same thing). Some people are displeased that wxWindows doesn't use namespaces. Of course, everything is prefixed with "wx" anyway, so it's kind of a moot point.
In short, if your toolkit choice is based on having the latest whiz-bang C++ features, then forget about wxWindows. However, if your toolkit choice is based on usability, then you definitely want to go with wxWindows. There are bindings for (at least) Python, PERL, Java, and C# (actually, any
.NET language) so it's your choice what language to use.Furthermore, development continues. I am personally working on a port of wxWindows to Cocoa and hopefully GNUstep (once mainline GCC can do Objective-C++).
So, it seems the best course of action for a Linux advocate is to get the Windows and Mac developers using a toolkit like wxWindows. Perhaps some Slashdotters reading this are stuck in MFC hell? For the next project suggest wxWindows. Maybe even for this one, an MFC->wxWindows port generally only takes 3 months from what I've heard (I was smart and started with wxWindows
:-). Once there are some good applications out there using a cross-platform toolkit, it becomes really easy for the move to Linux to take place. At that point it will happen slowly and naturally. A few developers will release Linux versions, then a few more. Then eventually all of the good apps are available for many platforms.Is it a dream? A bit of one. But I think it's reasonable enough that we just might see it happen in the next 5-10 years. Remember, 5-10 is not really an eternity, even in the computing world. It's time we take a step back and realize the only decent thing that came out of the last 5-10 years was ubiquitous Internet access. Beyond that, there has been little innovation except for this and that whiz-bang feature that Microsoft adds with every release.
-
Re:What about performance on older machines?Wrong. Netscape 4.x doesn't even come close to supporting web content as well as Mozilla. It simply doesn't do pretty much the same thing.
Yeah, I've heard all the hype. All I can go by is my day-to-day experience, which is that Netscape 4.x is more usable than Mozilla at the moment. I fully recognize all the improvements in adhering to Web standards, but at the end of the day it doesn't matter if the app runs like treacle.
I'm not happy with Netscape 4.x, for what it's worth. It has a lot of problems with CSS and JavaScript, and it crashes these days more than it used to (probably because web designers are writing for standards which 4.x didn't know about at the time). However I'm more willing to put up with some flakiness in the standards dept than extreme slowness. Nothing more frustrating than clicking on a button and waiting a few seconds for a window to appear.
BTW - By "pretty much the same thing" I was speaking of the large picture of getting me around the Web, not regarding specific low-level functions. Of course Mozilla has a lot more going on. No question. Just wish it could have been implemented with more of an architectural eye toward performance. It's certainly possible to make cross-platform GUI's without resorting to stuff like XUL - just see wxWindows for one example of a C++ toolkit that runs on Windows, X, Mac etc.
-
Done.
-
Re:OK, so maybe I'll give this "Linux" thing a try
Can I develop Windows applications from within Linux now?
You'll still want to have windows around to test the results every once and awhile, but WxWindows might be worth looking into. I don't know if it would have everything you need, but I've been very impressed with it. In theory, you should be able to compile your code for Linux, Mac, or Windows, and have the results look and run as a native application on all platforms. I wouldn't recommend doing a crosscompile and never checking out the results on windows, but for the most part I've been quite happy with the crossplatform development WxWindows opens up. For me, the end result is just having to reboot into windows to do a little tweaking every couple weeks, and I've never really ran into any major problems. I've also been using python wrappers around it (wxpython) for a few months , and have been even more blown away. After wxpython was installed on my windows partition, it was as simple as copying over my code and watching as it ran, with no changes, on a totally different operating system than I'd done the development on. The reverse should be equally true though. Get a handle on WxWindows development in windows, and your programs should only need a little tweaking to work in OS X or Linux.
You might want to take a look at Knoppix , to see how you take to Linux. It's basically a Debian install which runs entirely off of a CD, never touching your hard drive. Mandrake or Suse would have a lot more in terms of configuration utilities, but Knoppix should at least give you a good idea of where Linux has gone in the past few years. -
Re:Maybe for a while...
Well, I could see Apple allowing the use of a "fat" binary that could run on either machine; they did it with 68K/PPC, right?
The catch is that the programmer would still need to port the program; you need machine code for both platforms. There's just no way to get around porting. (I suppose you could ease the process by using a cross-platform toolkit, ala wxWindows, but Apple would probably have you hunted down and shot for violating their interface guidelines. Maybe they would provide such a toolkit?)
Anyway, the whole Apple/AMD thing sounds highly unlikely.
-
wxWindows
Why not just avoid the Win32 APIs and use a cross-plpatform framework like wxWindows? You can built native Windows, Linux/Unix, and Mac GUI applications from the same source code. It's also been around for about 11 years. -
Nail on the head
I have worked with Qt before, and I must say that it's one of the nicest C++ toolkits I've ever worked with. The documentation is second to none (check it out: http://doc.trolltech.com/3.1/index.html), but...
Right now, I'm working on a closed source project. I am just about to rewrite the entire thing in C++ (the current version was written by someone else in VB6, and the source has no documentation, and sparse comments, and some of the worst code and logic I've ever seen), and so I was given the task to choose what libraries the new version was going to use. I wanted to use Qt, which I had experience with and was very happy with, but its cost is prohibiting. In the end, I had to choose wxWindows due to costs (I refuse to touch MFC, even with a long stick.)
I cannot agree with you more. At the very least, Trolltech should reduce their pricing on Qt significantly to make it at all viable to closed source developers. It doesn't matter how well made it is, its price can't be justified. -
Re:This is probably not needed,
For the records, I know wxWindows fairly well, and I use it at work for commercial apps, since we don't (yet) have a commercial Qt license.
And don't take me wrong -- it's indeed very good! Qt is just, well, excellent. wxWindows' documentation, while complete and detailed, just isn't as clear and easily browsable as Qt's -- good as it is, I sometimes stayed stuck looking for some very precise piece of info (about the safeYield() method, to be precise, which didn't seem to behave as advertised). Same for the vertically stackable widget I was talking of previously: the same thing in wxWindows is much easier than in VB, just not as much as in Qt in terms of developpement time and code flexibility and reusability.
But heck, the whole argument is pointless -- there's not much point in pinning the very good against the very very good, especially when the latter is (literally) infinitely more expensive. :)
Thanks for your post! I'm sure many readers didn't know about wxWindows and will want to try it out now, which is a good thing. -
Re:GNU's take on Licenses
Then you should like the wxWindows license, see: wxWindows license.
That said, the license is the thing I like most of wxWindows. Would be nice if lot of other projects used it. -
Re:File Dialog...This bit has puzzled me, as well. How can something so simple - with so many examples of that are done right - be implemented so poorly?
I run Mandrake, and have tried both KDE and Gnome. I really like the look of Gnome, but the file selector literally drove from Gnome and back to KDE. It sounds petty, but it's not. (OK, maybe it is petty.)
The decision to move the "OK" button to the left side hasn't garnered any brownie points, either.
Of course, The KDE file selector has problems, too. When it loads icons, it first displays them, then shimmys them around a bit, reordering them. Quite often, I'll have hit one icon, only to have it moved and another one be selected.
I'm looking forward to seeing Gnome with more polish, especially since my favorite toolkit (wxWindows) doesn't have bindings to Qt/KDE.
Still, I suspect that KDE will end up my desktop of choice. But I'm willing to be pursuaded otherwise.
-
Re:Visual Basic!Qt is an excellent toolkit. It's downsides are that it's only free for X11, and very pricey on other platforms. For an alternative for people without 2 grand to blow on licenses, check out wxWindows
It's not as polished, but it's very good, with excellent support via the mailing list.
-
DirectXOK, bear with me. DirectX has been ported through WineX to various other platforms. This allows a performance advantage that no other Crossplatform GUI toolkits can possibly acheive.
With such a control over the hardware, you are allowed to bypass the XWindows system, which kills the performance in such desktop environments as KDE and Gnome. Painting directly to the hardware buffer, buttons and other widgets can be responsive in a unique way.
The only common manner across all major platforms, BSD, Linux, yes, even windows that you can do this is via DirectX. Compiled binaries can be ported cross platform due to the quality of the cross platform implementations.
Not only this, but the breadth of the system allows realtime multimedia eventing systems, such as audio responses to important system events. Platforms such as NT incur an inherent delay, but not when using directX.
-
Experiences with FOX, Cocoa, Swing, FLTK, etc.
First, a shameless plug: I'm working on a couple of C++ applications that are currently using FOX for the GUI (and other parts). The first one is a front end to the open source stats language R and it is called Obversive. This is the most active project, but it is still real tiny. The second project is a little chat client I'm writing called Bombyx which will work on the SILC and hopefully IRC. In addition to Bombyx, I've also developed a little GUI generator with Lua that makes FOX widgets pretty quickly. It's called GIG and you can get it from the Bombyx site mentioned previously. The intention with GIG is to make it work for any toolkit, but right now it does FOX only.
When I was working on these projects, I went through a huge number of toolkits and actually tried developing fast "mock-ups". My test was to see if I could get the first window I wanted in each project using available resources. If that worked, then I would try a couple of other windows. I also reviewed the designs of each and then went with what worked best at the time.
Here's my review of each of the toolkits I used. These are just my opinions, but they are based on actually using them in various platforms (or trying to).
FOX After all of this evaluation, I found that FOX was pretty much the best at the moment for clean, simple GUI building. It has pretty good docs (way better than wxWindows), and is fairly natural for coding. It also has some nice language bindings for various languages like Python, Ruby, and Eiffel. It doesn't have quite as many controls as wxWindows, and it doesn't work natively on as many platforms, but it is much easier to build and work with and much smaller. If you are porting a Windows application to another platform, you will probably be better off with wxWindows since they try to mimick the API design as much as possible (and of course, all it's problems too). Also, if you hate macros then you'll have a problem with FOX (and wxWindows too). A testimony to how easy FOX is comes from Obversive, where one developer had no C++ or FOX experience and has already created several complicated controls. Another developer has good C++ skills, but only worked with KDE previously. He not only developed an excellent Twin Table control, but also added lots of great features to it and in very little time.
FLTK I did the original work on Bombyx with FLTK. FLTK is a nice library, but it was just missing too many widgets to be useful. It was also rather buggy and it was a real pain to do delegation. There are, however, two really nice things about FLTK: no macros, excellent GUI builder. One of huge problems with ALL other toolkits I've ran into is that, when the developers start to make their GUI builder, the decide they need an entire IDE. I already have one thank you. I doubt some OSS project is really going to out-do my tool chain right now, especially if it's also working on the widgets. Just give me a simple builder please. FLTK got it right with FLUID--their GUI builder. It's real easy to use, super fast, and does one thing well: build interfaces. It was a little weird at times, but I checked out the latest and it worked great. Also, FLTK does not use macros for messaging which is nice for the C++ purists.
Cocoa I love Cocoa, but, Apple made a huge mistake by making it a MacOSX only beast. I think Apple could rule the world if I could spend my time writing my apps with a nice UI, great tools, and an easy language (Objective-C), and then click a button and have a Windows, Linux, HP-UX, and Solaris binary. You could do this with the original NeXT stuff, but Apple crippled Cocoa and friends. So, I reserve Cocoa for other useless programming that I only do on my MacOSX. There is GNUstep, but I couldn't get anything to work with it, and half the fun of Cocoa development is using Interface Builder (IB). BTW, IB is another GUI builder that is excellent, and also does just GUI building. Let's hope the wxWindows guys figure out this pattern and write a small GUI builder rather than their entire IDE which nobody seems to be able to compile but three dudes inside the cabal (sorry, it really burns me).
wxWindows I must say that wxWindows has a ton of nice widgets (I may steal their HTML widget) and works on a huge number of platforms. But, I kept getting burned in three areas: docs, dependencies, and bugs. Their docs are horrible. You have to hunt around the net looking for tutorials which are not very good anyway. Half the example applications in the distro don't even work so you can't rely on them, and it's just really hard to figure out what to do. I also hated having to add a billion other libraries to my build just to get wxWindows to work. I found it a problem when linking my application took longer than compiling all the files from scratch. Finally, just about everytime I went to use some widget, I found some bug or limitation that made it unusable. They have improved quite a lot from what I have heard, and people really rave about it, so I think everyone should give it a try. One thing also that annoyed me about wxWindows is that it does not support delegation very well. All the other toolkits I used either support delegation easily or practically require it. In wxWindows, I spent the better part of a week just trying to get one simple delegation design working and couldn't do it despite lots of help from people on various IRC channels. To me, things are broken if I have to subclass every time I want a widget. The wxWindows XML based resource files are supposed to fix this, but I won't hold my breath.
JFC/Swing The original version of Obversive was done in Swing with lots of other goodies. Java is my primary work language, and I really wanted to use it on the Obversive project, but we just kept running into performance problems. Frankly, Swing is just a P.I.G. and is really hard to code. None of the GUI builders available we tried proved to be that useful, and eventually we dropped it becuase it was just too huge. Ironically, we were able to prototype an almost complete GUI using FOX which runs on Linux, *BSD, Windows, and MacOSX (through the XDarwin or Apple X ports) in about 3 weeks time. This was mainly in part due to the slick design of FOX and simplicity, and partly in part because of the GIG code generator I put together. Oh, and we looked at SWT, but balked at the Linux or Windows only (and the fact that the flagship, Eclipse, ALWAYS crashes on Linux does not make me happy).
So, that's my experiences with these toolkits. I hope that helps answer the question, and I hope the reply wasn't too long. To summarize: Use FOX if you need C++ and good design. Use wxWindows if porting from MFC or if native controls are important. Use Swing if speed is not a problem, but cross platform really is. Use Cocoa if you only care about MacOSX and need to get something out quick. I actually prototype some UIs in Interface Builder on MacOSX, which says a lot.
-
Re:Why not native?You mean, like wxWindows??
Not that MFC is really "native." And GTK+ is no more "native" than Qt, but that's quibbling. Then again, this is Slashdot.
-
Re:Why not native?
wxWindows</cough>
-
WxWindows?
What has been your experience with WxWindows? The web site says that WxWindows provides a native look and feel on Windows, Unix, or Mac. There are IDEs and other tools. -
WxWindows?
What has been your experience with WxWindows? The web site says that WxWindows provides a native look and feel on Windows, Unix, or Mac. There are IDEs and other tools. -
WxWindows?
What has been your experience with WxWindows? The web site says that WxWindows provides a native look and feel on Windows, Unix, or Mac. There are IDEs and other tools. -
Re:Where have you been for the last two years?
Look at wxWindows for a LGPL, cross platform (GTK, X11, Windows, Motif, some others) toolkit. It's sort of a cross between Qt and the MFC (no preprocessor, so no signals/slots, uses MFC style event tables), but it's (much) cleaner than MFC. It's not as polished as Qt, but it's open source on all platforms without spending lots of money (You have to pay for a commercial Qt license if you want to work on windows, or use the sadly outmoded NC version), and help is very forthcoming on the wx-users mailing list.
-
2003 is the year of Mozilla's dead....
This is not a troll post!
2003 is the year of Mozilla's dead.... at least of Mozilla's current form.
The reason? AOL Communicator! I downloaded a beta version from www.datakill.com and I think, it has a bright future.
The reasons:- It seems that AOL is finally going to push Gecko to the masses (It's branded as AOL product, not Netscape)
- AOL Communicator is split up in single applications (ac_mail.exe, ac_im.exe,...) - no ''all in one'' like Mozilla or Netscape.
- (And that's my peronal favourite, 'cause that's what I prayed for since ages) AOL Communictor is written using wxWindows!
Yes it's true. Finally they got rid of the sluggish XUL interface and still being multi-plattform.
Phoenix (or whatever the future name will be) has helped, but Phoenix' interface is still somewhat slow compared to native Windows apps. Phoenix' GUI toolkit is also not fully aware of Visual Styles (skins for WinXP) - the menus look ''old school'', while the other apps have flat/skinned menus.
AOL Communicator (thanks to wxWindows) uses native widgets everywhere.
Quote from the included copyright-notice.txt:AOL Communicator uses the following libraries and modules:
wxWindows libraries Copyright (c) 1998 Julian Smart, Robert
Roebling. The wxWindows source code, available under the
wxWindows Library License, Version 3, can be found at
http://www.wxwindows.org.
While the beta version does only consist of an eMail app and the Instant Messenger (compatible with AIM and ICQ), AOL is also developing a browser component.
If you have a look into the file ''AOL Communicator\locale\cat\ac_help.mo'', you can find the following strings (BTW, ''Photon'' is the codename for the Communicator):
About Photon Browser
Photon Browser is not currently your default browser.
Would you like to make it your default browser?
Oh yes, I can't wait for the final release. I hope there will be an open source version of it (without the AOL specific stuff like AOL Mail or the Instant Messenger - called Mozilla 2.0 or something like that), to allow porting it to other platforms.
Oh, BTW... I did an experiment and it worked: You can move the mail folder from Mozilla's profile directory to AOL Communicator's profile directory. All your mails stay intact.
Honestly, I don't know why the Mozilla/Netscape developers waste their time in creating a new toolkit (the one that Phoenix uses), if they should better convince their bosses from AOL to open the source of the Communicator.PS: Thanks for reading this post and (hopefully) not modding me down as ''Troll''
:)