Making tools with Python (or C#?)

Karstein

Senior member
Mar 31, 2011
392
0
71
I'm currently looking at making a tool in Python but am really more of a designer than a coder when it comes down to it (I'm the sort who spends ages making wireframes look nice). In this case, I would like to explore some of the options that are offered with Python to assist with general dialog design and such so that I can divert my coding focus to the nitty-gritty.

What would people recommend? I've heard stuff like Glade, Wax, PyGTK and Dabo thrown around (and will be trying some of those) but thought I'd see what experiences and suggestions that you guys have.

The other option is to use Visual C# but that would require some more learning on my side first. Would anyone recommend this path over Python?
 

Cogman

Lifer
Sep 19, 2000
10,286
147
106
Visual C# has a ton of libraries focused on graphical work (.Net is chock full of them). It is also going to offer a better Gui development interface.

Python on the other hand is going to be cross platform compatible (if that is important to you). From what I can tell, it has a few more specialized math/science libraries as well.

For something like this, it really comes down to preference.
 

degibson

Golden Member
Mar 21, 2008
1,389
0
0
You'll get it 'done' faster in Python. First, you don't have to learn a new language. Second, Python is commonly regarded as "high-productivity", even among this contentious forum crowd. These are both important features if you're not coding for fun -- i.e., if you're coding because you want the tool, not because you want to code.

I would suggest you start at http://wiki.python.org/moin/GuiProgramming.
1. Pick your platform of interest
2. Among the options that work on that platform, pick the one that has the best documentation.
3. Report your findings here!
 

Cogman

Lifer
Sep 19, 2000
10,286
147
106
You'll get it 'done' faster in Python. First, you don't have to learn a new language. Second, Python is commonly regarded as "high-productivity", even among this contentious forum crowd. These are both important features if you're not coding for fun -- i.e., if you're coding because you want the tool, not because you want to code.

I would suggest you start at http://wiki.python.org/moin/GuiProgramming.
1. Pick your platform of interest
2. Among the options that work on that platform, pick the one that has the best documentation.
3. Report your findings here!

Does python have any sort of layout tool? Just wondering. That really is the thing that I could see making C# faster than python for development. You need a button here, place it with the drawing tool.

Though, you're right, already knowing python means that it might be faster for development just because you don't have to learn a new language.
 

degibson

Golden Member
Mar 21, 2008
1,389
0
0
Does python have any sort of layout tool? Just wondering. [snip]

Beats me. I'm a commandline guy (GUIs are for the weak). But coding the functionality behind the button is usually more challenging than placing the button itself. Usually. Unless its MFC, in which case all bets are off and your button may become a permanent feature of the user's desktop environment, erasable only with a complete reformat of the disk.
 

Ken g6

Programming Moderator, Elite Member
Moderator
Dec 11, 1999
16,836
4,816
75
Ever since I tried Visual Basic something like 15 years ago, I've been looking for a similar layout tool for other languages. MS Visual Studio is great for that; Java might have one now, but nothing else I've seen even comes close.

The nice thing about .NET is, or used to be, that you could work with different languages on the same project. I heard IronPython lost MS support, but it's still been updated recently. You have to know the .NET libraries when using it, but you might like it better than pure C#.
 

CU

Platinum Member
Aug 14, 2000
2,419
53
91
wxWidgets can be used with python and has gui editors (paid and free) I used it with a cross platform (OSX / XP) project written in C++ about 4 years ago. I though it was pretty good although I have not tried it with python. The one cool thing that I liked was that it used native gui elements for OSX, windows, or linux (GTK), so the application didn't look so out of place running on the OS. And, it had an OpenGL widget that I needed.
 

Cogman

Lifer
Sep 19, 2000
10,286
147
106
wxWidgets can be used with python and has gui editors (paid and free) I used it with a cross platform (OSX / XP) project written in C++ about 4 years ago. I though it was pretty good although I have not tried it with python. The one cool thing that I liked was that it used native gui elements for OSX, windows, or linux (GTK), so the application didn't look so out of place running on the OS. And, it had an OpenGL widget that I needed.

Meh, I never really liked wxWidgets. It always felt so extremely bloated. (not that GTK or anyone else really does a much better job.) That, and the bugs were sort of annoying.
 

CU

Platinum Member
Aug 14, 2000
2,419
53
91
Meh, I never really liked wxWidgets. It always felt so extremely bloated. (not that GTK or anyone else really does a much better job.) That, and the bugs were sort of annoying.

I never really found any major bugs, but my app was a specialized image viewer and gui wise it was not that complicated. The key for me was that it was completely free on OSX and Windows which at the time I started using it Qt was not. True about the bloat, but if you are doing something cross platform your only other choice it so to write 2 or more native interface code paths, which can make maintenance more difficult.

Does the OP need cross platform? If not I don't think anything touches MSVS, so I would learn C# or something else in MSVS. Also is your tool more logic complicated or qui complicated? Lots of logic and simple gui just hand write the gui or use something like wxWidgets. Simple logic and complicated gui use MSVS.
 

Train

Lifer
Jun 22, 2000
13,599
90
91
www.bing.com
If you like Python but also want to leverage all that comes with the .Net framework, Iron Python has really surged in popularity, and might be worth checking out
 

Karstein

Senior member
Mar 31, 2011
392
0
71
Does the OP need cross platform? If not I don't think anything touches MSVS, so I would learn C# or something else in MSVS. Also is your tool more logic complicated or qui complicated? Lots of logic and simple gui just hand write the gui or use something like wxWidgets. Simple logic and complicated gui use MSVS.
Cross platform is important (needs to run on Macs too). The GUI itself isn't that complex, it'll be used by more than me, though.

Thanks for the responses, guys. At this stage, it looks like I'm just going to go with Python (Pydev through Eclipse) and wxPython and see how things materialize.
 

Cogman

Lifer
Sep 19, 2000
10,286
147
106
Cross platform is important (needs to run on Macs too). The GUI itself isn't that complex, it'll be used by more than me, though.

Thanks for the responses, guys. At this stage, it looks like I'm just going to go with Python (Pydev through Eclipse) and wxPython and see how things materialize.

Sounds like a good choice. Good luck, and have fun with it.