Mega Newbie Questions: Probably FAQs

Yu-Xi Lim yuxi at ece.gatech.edu
Mon Aug 14 23:47:52 EDT 2006


Zeph wrote:

> 1b) Are these executable completely free from the need of the average 
> user needing to install Python. Basically, I want to write and sell 
> "compiled" apps.

OSX and Linux installations nearly always come with Python pre-installed
(usually because they are required by other system software). Your only
concern should be the availability of additional Python libraries you
may use.

> 2) I want a real and native GUI. wxPython or PyQT? My concerns are about 
> cross-platform and responsiveness of GUI. I suspect that this will be 
> one of the gravest issues for the long run.

Tk is available on all but the most minimalistic of Python
distributions. It's also butt-ugly. wxPython is probably a good compromise.

> 3) Can someone recommend a good framework that will enable me to keep 
> things well sorted out, and easy to maintain as my apps grow? (I'm 
> considering MVC, but have no idea how to apply it until I've gone beyond 
> "Hello World").

Framework for what kind of apps? Web, native GUI, client-server, etc?
MVC is an abstract architecture rather than a specific implementation.
Even so, many implementations rarely employ a purely MVC design.

> 4) There are a lot of books and tutorials out there, but they are of the 
> proof-of-concept type. Specifically, a tutorial might teach me Hello 
> World, but not really care about the framework, because it's a very 
> simple item, and the point is simply to get me coding. I'd like to start 
> off with an established, tested and reputable system whose habits I can 
> ingrain from day one, rather than figure it out later. Can someone 
> recommend a good book, or your favourite tutorials? Perhaps even one 
> that assumes MVC as the framework?

For GUIs, and wxPython in particular, wxPython in Action would probably
be what you have in mind.

> 5) Following the above, is there a framework that assumes tcp/ip udp 
> networking, database connectivity? My first app will be in large part a 
> networkable database type app where two or more users can share the same 
> file concurrently.

Mix and match. I typically select "best of breed" libraries for the
necessary functionality. wxPython for GUI, SQLObject (when it gets too
clunky for the regular Python DBAPI), Twisted for networking.

> 6) Since I've been a web-developer for a long time (over 10 years), I 
> never properly learned OOP. Recommended tutorials?

OOP is overrated. A multi-paradigm language like Python lets you decide
what's best for your particular application. Most Python tutorials would
not focus on OOP specifically, unlike Java where you'd have to learn OOP
from day 1. OOP may be a suitable model for business logic, but feel
free to explore other alternatives for the other parts of your project.

But if you insist, try How to Think Like a Computer Scientist
(http://www.ibiblio.org/obp/thinkCSpy/). It takes the approach similar
to an introductory college-level CS course, which is typically heavy on
the OOP and data structures.

> 8) Can anyone speak to the point, or point out a useful comparison 
> between Python and RealBasic?

The size of the Python community is huge compared to RealBasic. And
you'll benefit from that alone by better answers to your questions,
better documentation, and better 3rd party libraries.


Side note: You seem like you've researched a bit, but unfortunately been
affected by the swirl of buzzwords. While there are usually valid
reasons for particular technologies to have so much hype behind them,
you should not neglect the alternatives. They may be the answer you seek.



More information about the Python-list mailing list