Advice for a novice on making ambitious cross-platform GUI app

C

Chelonian

I'm considering trying to learn Python for a specific reason, and
hoped the group might help me get a sense for whether it would be worth
my time. The situation...

Me: total beginner w/ a sense of programming basics and 1 week
familiarizing myself with Python world. Use WinXP. Got Python 2.5.
Fooled around in IDLE, made "hello world!" and one which takes user
input and tracks a string or two.

Project: ambitious GUI program for Win/Mac/Linux. Target user:
average person. App to look elegant, and be intuitive, responsive,
exectuable, have its own icon, etc. Needs to store user info in large
database for the long term, run in the background and pop up at
assigned times. There are needs for graphing, data analysis, file
management, word processing, text processing, web synchronization, etc.
It would have to look like commercial software, though it may turn out
to be free open source. It's envisioned as a pretty tall order, thus
my wonder if I'm delusional in thinking I have any hope to accomplish
this.

To begin, I have decided on wxPython as the GUI toolkit. Have also
begun trying the SPE editor with wxGlade as the GUI builder, and have
made a few line program to create a window. Lastly, I have used py2exe
to turn that into an executable file with its library files for running
on computers without Python installed or without the wxPython
libraries.

I have read FAQs and looked into it. Remaining questions are:

Can Python *alone* produce something like what I've described? Or
would I have to have some parts written in C? Or is Python really not
best-suited to these needs?

Is using SPE with wxGlade a good choice? What about Boa Constructor?

Is it something one person could do over the course of a year or so,
working say 10 hours a week on it? Or is this really out of reach of
anyone other than a hardcore programmer or even a team of them?

If I write it using Python 2.5 and wxPython, do I have to use py2app or
something to create an executable and necessary library files so it
will run on Mac? (Because of wxPython's libraries, which the Mac
won't have?).

Thanks for any thoughts you might share.
 
W

Wildemar Wildenburger

Chelonian said:
Project: ambitious GUI program for Win/Mac/Linux. Target user:
average person. App to look elegant, and be intuitive, responsive,
exectuable, have its own icon, etc. Needs to store user info in large
database for the long term, run in the background and pop up at
assigned times. There are needs for graphing, data analysis, file
management, word processing, text processing, web synchronization, etc.
It would have to look like commercial software, though it may turn out
to be free open source. It's envisioned as a pretty tall order, thus
my wonder if I'm delusional in thinking I have any hope to accomplish
this.
This sounds very very interesting. A bit like the app *I* am
envisioning/writing right now. :)

Can you elaborate a bit more on what kind of App this is supposed to be?
I'm thinking that maybe if we share common goals, we might join forces.

Can Python *alone* produce something like what I've described? Or
would I have to have some parts written in C? Or is Python really not
best-suited to these needs?
Python is great. For everything. (except speed ;))
Look at chandler: Pure python, huge App. Slow though ;)
WikidPad is another example (not as huge). UliPad as well.
There must be more, I just don't know any off hand.

Is using SPE with wxGlade a good choice? What about Boa Constructor?
Lots of people use each of those. But if you really want a slick
(not-so-standard) UI, ditch the UI designer and code it yourself.

I have looked at SPE. Its fine.

Just. Try. ALL.
Then, and only then, shall you know. We can't tell you.
Is it something one person could do over the course of a year or so,
working say 10 hours a week on it? Or is this really out of reach of
anyone other than a hardcore programmer or even a team of them?
I don't know. I'm on my app for a 3/4 year now and all I have is a
shabby UI and a basic, if clunky, database engine. Although I must say,
I had hard drive crash and switched from wxPython to pyGTK to wxPython.

I think it's always a bad idea to estimate how long it will take to do
some computer related task (Note the generality of that statement.).
Because the answer is in ALL cases: longer.

If I write it using Python 2.5 and wxPython, do I have to use py2app or
something to create an executable and necessary library files so it
will run on Mac? (Because of wxPython's libraries, which the Mac
won't have?).
No clue, sorry.

bye
wildemar
 
C

crystalattice

Chelonian said:
Can Python *alone* produce something like what I've described? Or
would I have to have some parts written in C? Or is Python really not
best-suited to these needs?

As already mentioned, Python is capable of doing nearly any type of
program. As long as you don't need low-level functionality (like
manual memory manipulation or device drivers) it should be fine. With
computers nowadays, I don't think the speed hit will be that bad, but
YMMV.
Is using SPE with wxGlade a good choice? What about Boa Constructor?

I use SPE for all of my coding and have very few complaints. I've
never used Boa so I don't know how well it will do. One of the reasons
I chose SPE is because of the integrated wxGlade; because it's still in
beta, SPE sometimes crashes when using it so be aware of that.
Is it something one person could do over the course of a year or so,
working say 10 hours a week on it? Or is this really out of reach of
anyone other than a hardcore programmer or even a team of them?

Given enough time, one person can do nearly any programming task. If
you have a deadline to complete it, then you probably really want
someone with more experience to help you. If you don't mind reading
books and learning as you go, then go for it. I'm working on making an
RPG from scratch and I'm the only one doing it, but I'm learning a lot
and just keep asking questions.
If I write it using Python 2.5 and wxPython, do I have to use py2app or
something to create an executable and necessary library files so it
will run on Mac? (Because of wxPython's libraries, which the Mac
won't have?).

If you want to make an executable for the Mac, then you'll need py2app.
If you want it to run like a normal Python script, then the user can
just call it from the command line.
 
J

John Salerno

crystalattice said:
I'm working on making an
RPG from scratch and I'm the only one doing it, but I'm learning a lot
and just keep asking questions.

Intriguing. Any tips on how you are going about learning the game
programming aspects of doing this? I took a look at PyGame, but it
seemed a little over my head.
 
C

crystalattice

John said:
Intriguing. Any tips on how you are going about learning the game
programming aspects of doing this? I took a look at PyGame, but it
seemed a little over my head.
Currently I'm mostly just learning the various aspects of Python and
OOP. It wasn't until a few months ago that OOP finally "clicked" for
me; before that I only did procedural programming.

My current programming for my game is just character generation, which
is relatively easy. I'm currently trying to decide on how to best save
the data (pickle, database, standard file, etc.) so it's not like I've
created a game engine or anything real difficult.

Last month I found a book called "Game Programming with Python". I'm
only in the fourth chapter but it appears to have good insight. It
discusses the normal parts of game programming, like audio, graphics,
game engine, etc. while also talking about when and where to use
Python, such as just as a game script or how to write the whole thing
in Python.

I'm finding it very interesting, especially since it talks about
various libraries (such as PyGame) to help out your programming chores.
If you're interesting in using Python in any way with games, I'd
recommend getting it.

On a side note, I found it for "free" at a place called ebrary
(http://shop.ebrary.com). It only costs $5 to register but you can
"check out" as many books as you want. The $$ is in case you want to
copy or print from the books; it's a deal w/ the publishers so they
can still get some money from the books.

ebrary also has many other game programming books, such as AI
development, "The Indie Game Development Survival Guide", 3d
programming, etc. It's a good site if you want to look at a book
before you buy it.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,995
Messages
2,570,230
Members
46,819
Latest member
masterdaster

Latest Threads

Top