Why Use wxWidgets?

This forum is reserved for everything you want to talk about. It could be about programming, opinions, open source programs, development in general, or just cool stuff to share!

Is wxWidgets the best alternative for cross platform GUI development?

Yes
26
87%
No
4
13%
 
Total votes: 30

priyank_bolia
wxWorld Domination!
wxWorld Domination!
Posts: 1339
Joined: Wed Aug 03, 2005 8:10 am
Location: BANGALORE, INDIA

Why Use wxWidgets?

Post by priyank_bolia »

Why to use wxWidgets, when it is not fully supported than others and has a small community. Why shouldn't one use XUL mozilla, or mono.net. I am a MFC programmer, and after microsoft finished support for that, I started learning .net, but I can't create much interest in that. So, now I am learning wxWidgets. So, you guys, what you see about the future of wxWidgets.
upCASE
Moderator
Moderator
Posts: 3176
Joined: Mon Aug 30, 2004 6:55 am
Location: Germany, Cologne

Post by upCASE »

Hi!
I voted yes, but still it's only my point of view.

1. It uses C++ -> I dislike bytecode languages for some reason
2. It's object oriented -> Best choice IMHO
3. It's very complete -> Has support for things besides the pure GUI stuff
4. It's actively developed -> Gets more stable and functionality grows.

Besides that I dislike the event handling in wxWidgets competitor Qt. I see no reason for "meta object" and another "compiler". wxWidgets handles things like MFC, so it's easy to use and porting is easy too.

What wxWidgets lacks is a real support to make it more attractive for companies. Now that the book is out this may change in some way. I'm not realy sure if offering a commercial support would make more companies skip.
OS: OpenSuSE, Ubuntu, Win XP Pro
wx: svn
Compiler: gcc 4.5.1, VC 2008, eVC 4

"If it was hard to write it should be hard to read..." - the unknown coder
"Try not! Do. Or do not. There is no try." - Yoda
Jorg
Moderator
Moderator
Posts: 3971
Joined: Fri Aug 27, 2004 9:38 pm
Location: Delft, Netherlands

Post by Jorg »

You have to see it like this....

Small community ? I don't think so. A lot of people use it, not everybody needs help.

It has been around for 12 years, which evolves in a well thought framework, well tested and still evolving.

If everybody would abandon it, it will never grow. So instead of asking yourself if it is the tool for the job, ask yourself if you can make it an even better tool.

I adopted wxWidgets in my programming-life because it has a lot of aspects I love, is realtively easy in cross platform programming, and using one and only one toolkit, makes you more familiar with it and faster produce good code.

Sure there are lots of alternatives, but they all have the same thing. Not all tools are the most ideal ones for the job, everything has some things it still needs work at.

Weak points I have with wxWidgets is:

- Not yet one community IDE although some pretty good candidates are popping up
- Lack of some areas in the documentation
- Should be more pluggable with contributions, and better configurable (more friendlier)

Good things;

- C++ is a very solid base and produces fast code
- All ports seem to work pretty good, bugs are solved fast
- Native look and feel
- Easy object oriented model

Just my $0.02
- Jorgen
Forensic Software Engineer
Netherlands Forensic Insitute
http://english.forensischinstituut.nl/
-------------------------------------
Jorg's WasteBucket
http://www.xs4all.nl/~jorgb/wb
User avatar
kolo
Earned some good credits
Earned some good credits
Posts: 120
Joined: Tue Jun 21, 2005 1:19 pm
Location: Russia, Cheboksary

Post by kolo »

Yes, yes, and yes!
wxWidgets is the best object-orientied GUI (and not only GUI) framework.
When I write programms with wxWidgets I have a sense of full control on my code. ;))
wxWidgets - is my choice
only MSW & MSVS ))
priyank_bolia
wxWorld Domination!
wxWorld Domination!
Posts: 1339
Joined: Wed Aug 03, 2005 8:10 am
Location: BANGALORE, INDIA

Post by priyank_bolia »

As a MFC background, I started learning wxWidgets, because it a lot easier than other alternatives. I agree OO based design. IDE is not a problem for me, I use world best IDE visual studio, even though I tried to use wxDevCPP, but can't make it work out. What I am concern is:
1.) Though a good community, but small compare to others mono, mozilla, etc.
2.)Lack of documentation and a proper place like codeproject for MFC.
3.)I don't agree that it is completely supported, still a lot of way ahead. Not much application written in it.
4.)Future does not seem good. Not much companies need wxWidgets programmers.
5.)Not sure it can adopt technology changes, like mobile applications, browser based apps, etc.
Jorg
Moderator
Moderator
Posts: 3971
Joined: Fri Aug 27, 2004 9:38 pm
Location: Delft, Netherlands

Post by Jorg »

1.) Though a good community, but small compare to others mono, mozilla, etc.
Agreed, but you are not comparing complete new paradigms with relation to something that is more in an intermediate (C++) level.

Mono is more then C++ alone, it is creating a .NET framework on other platforms like Linux. Mozila enters the realm of tomorrow, using XML for descriptive applications as response to Microsoft's XAML. So they are basically complete different things.
2.)Lack of documentation and a proper place like codeproject for MFC.
There is wxCode, wxWiki, etc. MFC has been more established and therefor more widely used, however with the way Microsoft is going, that will change. The more people want to program x-platform and that is a very limited set of toolkits that can do that. I think you should also consider that. MFC is not x-platform (although Wine makes a good attempt)
3.)I don't agree that it is completely supported, still a lot of way ahead. Not much application written in it.
Forte Agent, Filezilla, Tortoise SVN, Tortoise CVS, numerous other applications are written in it, and why do you think that? Not every program shows in which toolkit it is written, so the actual number might be even higher, in fact I know it is higher, because you can count in both Linux, Mac and Windows applications combined ;-)
4.)Future does not seem good. Not much companies need wxWidgets programmers.
I think you need to rephrase that to not much companies use X-platform programmers. A lot of people use C++ programmers, and wxWidgets is simply the tool used by a C++ programmer, like MFC or what else.
5.)Not sure it can adopt technology changes, like mobile applications, browser based apps, etc.
That's one the future will be telling you. If you are more concerned in programming in those concepts like XUL, XAML, .NET and all other rather Microsoft owned strange business models, then you should not use wxWidgets.

When you want to port your applications in the future or have a large userbase, use wxWidgets. If you want to stick to Microsoft and do more with web services and .NET that is also a choice, but I think that is what you should ask yourself.

Regards,
- Jorgen
Forensic Software Engineer
Netherlands Forensic Insitute
http://english.forensischinstituut.nl/
-------------------------------------
Jorg's WasteBucket
http://www.xs4all.nl/~jorgb/wb
upCASE
Moderator
Moderator
Posts: 3176
Joined: Mon Aug 30, 2004 6:55 am
Location: Germany, Cologne

Post by upCASE »

I feel the need in me to comment on that :D
priyank_bolia wrote: 1.) Though a good community, but small compare to others mono, mozilla, etc.
2.)Lack of documentation and a proper place like codeproject for MFC.
3.)I don't agree that it is completely supported, still a lot of way ahead. Not much application written in it.
4.)Future does not seem good. Not much companies need wxWidgets programmers.
5.)Not sure it can adopt technology changes, like mobile applications, browser based apps, etc.
1. True for this forum (but hey 1678 users in one year isn't bad). Did you check the mailing list?
The problem isn't realy the community, but the loby. I only found out about wxWidgets when searching for an alternative to Qt. So, more ads, more mouth-to-mouth propaganda -> bigger community...
2. "Better/updated" docs, right. Codeproject... Well, this is what we tried here with the code dump. I suppose Codeproject has so much articles, because they deal with "black magic" stuff a lot.
3. Hmm. How can you tell? The good thing is that it uses native GUI. I can't tell without debugging an app if it was written in wxWidgets, Delphi or whatever... I suppose there are in fact many apps out there written with wxWidgets, but most of them don't make that fact public..
4. This is a job problem. Not many companies use wxWidgets, that's why. Again, more publicity needed... But in fact learning wxWidgets won't harm you. Most toolits are based on the same ideas, so learning one will help you learn another.
5. In fact it does. New ports and updates come out with every new release. The WinCE port is getting more and more stable after 3 releases only.
OS: OpenSuSE, Ubuntu, Win XP Pro
wx: svn
Compiler: gcc 4.5.1, VC 2008, eVC 4

"If it was hard to write it should be hard to read..." - the unknown coder
"Try not! Do. Or do not. There is no try." - Yoda
priyank_bolia
wxWorld Domination!
wxWorld Domination!
Posts: 1339
Joined: Wed Aug 03, 2005 8:10 am
Location: BANGALORE, INDIA

Post by priyank_bolia »

1. True for this forum (but hey 1678 users in one year isn't bad). Did you check the mailing list?
The problem isn't realy the community, but the loby. I only found out about wxWidgets when searching for an alternative to Qt. So, more ads, more mouth-to-mouth propaganda -> bigger community...
2. "Better/updated" docs, right. Codeproject... Well, this is what we tried here with the code dump. I suppose Codeproject has so much articles, because they deal with "black magic" stuff a lot.
3. Hmm. How can you tell? The good thing is that it uses native GUI. I can't tell without debugging an app if it was written in wxWidgets, Delphi or whatever... I suppose there are in fact many apps out there written with wxWidgets, but most of them don't make that fact public..
4. This is a job problem. Not many companies use wxWidgets, that's why. Again, more publicity needed... But in fact learning wxWidgets won't harm you. Most toolits are based on the same ideas, so learning one will help you learn another.
5. In fact it does. New ports and updates come out with every new release. The WinCE port is getting more and more stable after 3 releases only.
1.)I appreciate the efforts done in this forum, and I am in no way against wxWidgets, but I feel 1678 != 2m CP members. I started a similar topics on CP also and didn't get good response on cross platform apps:
http://www.codeproject.com/lounge.asp?f ... x1189119xx
2.)Then also, CP is a gr8 reosuce, you can find anything there relating to their technology MFC primarly.
3.)Agreed, but I am talking of known apps only
4.)No toolkit harms, but the effort and time spend has to be justified.
5.)Its good, but even when the Linux itself is divided into KDE & GNONE, and I can't find a generic way to auto start my app, when user logs on. I think there are always problem in cross platform standalone apps.
priyank_bolia
wxWorld Domination!
wxWorld Domination!
Posts: 1339
Joined: Wed Aug 03, 2005 8:10 am
Location: BANGALORE, INDIA

Post by priyank_bolia »

Jorg wrote:
1.) Though a good community, but small compare to others mono, mozilla, etc.
Agreed, but you are not comparing complete new paradigms with relation to something that is more in an intermediate (C++) level.

Mono is more then C++ alone, it is creating a .NET framework on other platforms like Linux. Mozila enters the realm of tomorrow, using XML for descriptive applications as response to Microsoft's XAML. So they are basically complete different things.
2.)Lack of documentation and a proper place like codeproject for MFC.
There is wxCode, wxWiki, etc. MFC has been more established and therefor more widely used, however with the way Microsoft is going, that will change. The more people want to program x-platform and that is a very limited set of toolkits that can do that. I think you should also consider that. MFC is not x-platform (although Wine makes a good attempt)
3.)I don't agree that it is completely supported, still a lot of way ahead. Not much application written in it.
Forte Agent, Filezilla, Tortoise SVN, Tortoise CVS, numerous other applications are written in it, and why do you think that? Not every program shows in which toolkit it is written, so the actual number might be even higher, in fact I know it is higher, because you can count in both Linux, Mac and Windows applications combined ;-)
4.)Future does not seem good. Not much companies need wxWidgets programmers.
I think you need to rephrase that to not much companies use X-platform programmers. A lot of people use C++ programmers, and wxWidgets is simply the tool used by a C++ programmer, like MFC or what else.
5.)Not sure it can adopt technology changes, like mobile applications, browser based apps, etc.
That's one the future will be telling you. If you are more concerned in programming in those concepts like XUL, XAML, .NET and all other rather Microsoft owned strange business models, then you should not use wxWidgets.

When you want to port your applications in the future or have a large userbase, use wxWidgets. If you want to stick to Microsoft and do more with web services and .NET that is also a choice, but I think that is what you should ask yourself.

Regards,
- Jorgen
1.)I have nothing to do with intermediate and future, what I am looking is that if I start now on cross platform GUI dev, which is the best choice, thinking ofcourse future in mind.
2.) MFC is not x-platform and its going to finish, but the think is when there are not much general user of linux desktops(at least in INDIA), what you see future of wxWidgets.
4.)wxWidgets is a toolkit for C++ programmers agreed. But companies in India wanted MFC programmers and still want it, but no one I know in wxWidgets.
5.)Surely no one knows future, but then also thinking future technologies what would you suggest for a cross platform GUI developemnt.
mono, wxWidgets, XUL/XAML, others.
Jorg
Moderator
Moderator
Posts: 3971
Joined: Fri Aug 27, 2004 9:38 pm
Location: Delft, Netherlands

Post by Jorg »

1.)I appreciate the efforts done in this forum, and I am in no way against wxWidgets, but I feel 1678 != 2m CP members. I started a similar topics on CP also and didn't get good response on cross platform apps:
You're not completely grasping my point. Code Project deals with A LOT of different languages:

ASP.NET
Managed C++
.NET
SOAP and XML
VB.NET
C++ Web Services
.NET Compact Framework
Cross Platform
Smart Client
C# Windows Forms
Combo & Listboxes
Menus & Toolbars
C# Controls
General C#
C# Programming
Multimedia
C# Database
C# WebServices

So you are comparing all that against one C++ wxWidgets toolkit? That is specific in both language and approach?
2.)Then also, CP is a gr8 reosuce, you can find anything there relating to their technology MFC primarly.
That grows as the community grows. I am not defending wxWidgets now, but most of your statements are a bit off. You are comparing the wrong things.

I do agree however wxWidgets spent too much time on the background. A bit more promotion (hence why I setup this forum) and it could get an even bigger amount of people
5.)Its good, but even when the Linux itself is divided into KDE & GNONE, and I can't find a generic way to auto start my app, when user logs on. I think there are always problem in cross platform standalone apps.
Compare that against making your app by hand and dealing with all the stuff cross platform yourself ;-) If you would have to deal with file I/O, GUI specifics, threads and what not yourself you will be thankful of how far wxWidgets will bring you .. Minor problems like platform specifics will always exist as there are tons of ways of doign things differently in multiple OS'es ..
1.)I have nothing to do with intermediate and future, what I am looking is that if I start now on cross platform GUI dev, which is the best choice, thinking ofcourse future in mind.
Well that's what everybody wants to know. Unfortunately you will end up rewriting parts or redesigning your app in the future anyway. Why? because the market constantly changes and no future technology is that transparent to it. If your goal is true X-platform you will need at least a toolkit that supports multiple OS'es. So you end up in either Javascript (XUL) or C++ like Qt, Fox or wxWidgets. If you value webservices etc more then maybe a serverside app is a better choice.
2.) MFC is not x-platform and its going to finish, but the think is when there are not much general user of linux desktops(at least in INDIA), what you see future of wxWidgets.
Once again, when you as designer of your app see no value in making it X-platform, you could always use it because it is a convenient toolkit (like Tortoise CVS said on their site, MFC is crap, so we used wxWidgets even when we target Win32 only). If you see no value in wxWidgets and won't deliver x-platform solutions, then there is no need in using it ;-)

Maybe it is a nice idea to share more of what you want to make? I am no wxWidgets advocate, but I do however want to put things straight. And comparing a HUGE commercial site like CodeProject which does more then C++ / CrossPlatform alone, is plain skewed ..
4.)wxWidgets is a toolkit for C++ programmers agreed. But companies in India wanted MFC programmers and still want it, but no one I know in wxWidgets.
Then stick with MFC. Nobody will force you to do this. wxWidgets learned from all bad stuff MFC had (it is not called Microsoft Frustration Classes for nothing), and provides a better, more logical and more solid base for your apps. If you are concerned your knowledge will go to waste, well it will go to waste either way. MFC is a sinking ship. Microsoft is not actively supporting it. So stay with MFC and learn new toolkits later or learn it now ;-)

This might also be interesting for you:

http://wiki.wxwidgets.org/wiki.pl?WxWid ... r_Toolkits

And this:

http://wiki.wxwidgets.org/wiki.pl?WxWid ... rogrammers
5.)Surely no one knows future, but then also thinking future technologies what would you suggest for a cross platform GUI developemnt.
mono, wxWidgets, XUL/XAML, others.
That is where it gets tricky. Microsoft introduces concepts, so does linux. They cannot mix and match that easily. The .NET framework is a nice attempt, but again M$ only most of the time, as MONO has to recreate the whole WinForms layter to even make it usable. Introduced concepts like these are hardly ever cross platform. So my best guess is wait a fiew years and see what comes up that is truely x-platform. XUL is nice for small apps but you are confined to browser space, and javascript.

I hope this doesn't sound too much like bashing on you, I simply wanted to clarify some of the points you made, as I have been going along for quite some time in the programming world.

Regards,
- Jorgen
Forensic Software Engineer
Netherlands Forensic Insitute
http://english.forensischinstituut.nl/
-------------------------------------
Jorg's WasteBucket
http://www.xs4all.nl/~jorgb/wb
priyank_bolia
wxWorld Domination!
wxWorld Domination!
Posts: 1339
Joined: Wed Aug 03, 2005 8:10 am
Location: BANGALORE, INDIA

Post by priyank_bolia »

I hope this doesn't sound too much like bashing on you, I simply wanted to clarify some of the points you made, as I have been going along for quite some time in the programming world.
Nope, I like to thanks for solving my doubts, but as you can see not me but others too have this type of worry.

Everyone knows MFC is a shinking ship, it is crap or not, I'll not discuss that. So, you have to learn new things to survive, as Darwin said. I agree nobody force me too learn wxWidgets, but then also I like wxWidgets easy to learn as a MFC programmer. I agree that javascript alone can't make commercial apps, and .net is driven by M$, but 13 years of existance and still not much popularity of wxwidgets is a concern for me. Qt is good but commercial and not much people support it in future. The problem is that I don't have much choices, mono seems to good attempt, but I think C++ is a good thing and don't want to switch to another thing and wxWidgets seems to be last hope.
I would also like to discuss what are the ways to make wxWidgets popular, contributing is one way.
upCASE
Moderator
Moderator
Posts: 3176
Joined: Mon Aug 30, 2004 6:55 am
Location: Germany, Cologne

Post by upCASE »

priyank_bolia wrote:Qt is good but commercial and not much people support it in future. The problem is that I don't have much choices, mono seems to good attempt, but I think C++ is a good thing and don't want to switch to another thing and wxWidgets seems to be last hope.
This is not completely true. Qt is in fact free as long as you don't use it for commercial apps. Paying for it (has several licencing models) you get support and a quaterly newsletter (which s**cks btw.). Qt has its advantages: The GUI builder is good. I think by now they even got a version that will compile with gcc under windows (you had to download a precompiled package before). Maybe give it a try, then judge.
Also see here:
http://www.geocities.com/SiliconValley/ ... itool.html
I would also like to discuss what are the ways to make wxWidgets popular, contributing is one way.
I guess the book is one good way. Now that it's there, maybe some people won't feel lost when skipping.
OS: OpenSuSE, Ubuntu, Win XP Pro
wx: svn
Compiler: gcc 4.5.1, VC 2008, eVC 4

"If it was hard to write it should be hard to read..." - the unknown coder
"Try not! Do. Or do not. There is no try." - Yoda
Jorg
Moderator
Moderator
Posts: 3971
Joined: Fri Aug 27, 2004 9:38 pm
Location: Delft, Netherlands

Post by Jorg »

Hi,

Glad you took it like that. Sometimes I sounda bit .. uhm .. firm ..

Well You are right when you say after 13 years not much existence is there for wxWidgets. That is exactly why they are pushing things harder now. Like I said, the forum is here now, a book is written and on sale, so people who never heard from it will see it in the book store, lectures are given I think one of the CoAuthors of the book (Kevin Hock) also gave or will give a lecture about the pro's and cons of wxWidgets and what are the most common misconceptions about cross platform programming.

Anyhoo, ask along. If you want your next questions to be more visible, start a new thread for them, so people aware of this thread (and ignoring it) will not miss the new questions you might have :-)

Regards,
- Jorgen
Forensic Software Engineer
Netherlands Forensic Insitute
http://english.forensischinstituut.nl/
-------------------------------------
Jorg's WasteBucket
http://www.xs4all.nl/~jorgb/wb
geon
I live to help wx-kind
I live to help wx-kind
Posts: 189
Joined: Tue Sep 07, 2004 4:10 pm
Location: Sweden, Uppsala

Post by geon »

companies in India wanted MFC programmers
This is how it looks everywhere. I think it is partially because of lacking wx promotion as stated above, but most importantly a managemant issue.

The people who decide what technology to use don't look at convienience and coding aestethics. They want a product they can buy in a box. With a clearly defined, well known company that owns this product. *chouch-dot-net-chough*

I have been looking for jobs (in Sweden) the past year. I can see ~20 open positions for .NET every month. But so far I have seen only one mentioning wx.