views:

349

answers:

6

I have been trying to learn a cross platform language with a fast learning curve, and so it seemed obvious Python was the logical choice. I've never programmed before but I have been reading on pragmatic programming and agile development for quite some time. The question comes, "What is the single best choice to create a desktop software that is built heavily in python and can handle flexibilty of SQL injections, along with rich interface reporting?" e.g. SQL Alchemy, ReportLabs.

I have been looking into pyHed found in sourceforge.net. However, it's on early development stage and is still not well documented. I checked out Titanium Desktop from Appcelerator and the concept seems exciting, but it's not in stable condition yet.

Any suggestions, comments or ideas of what is currently being used? or new technologies out there now?

+2  A: 

There are many answers to your question because you raise a number of issues:

Agile development is methodology and has very little to do with the language or software platform. It is more a set of principles around which software teams organize themselves. Refer to the works of Kent Beck for a bit more detail.

Do you have an existing Python code base? If you do have an existing Python code base you could get relatively far with pyHed. Otherwise you could look at something like Java Swing or C#.

But really you might want to consider moving the application to a web platform - that seems to be the direction almost all desktop apps are heading. Django is well known Python framework. Or any number of the Java, C#, Ruby platforms if it strikes your fancy.

The jquery JavaScript framework is a good tool to provide rich Web interfaces.

leonm
A: 

You might want to checkout http://dabodev.com/ too, I have no personally experience with it, just know of it existence and that there are a couple of enthusiasts.

I would recommend that you don't concentrate too much about Agile or XP coding, especially when you start out, good old big design up front will save your skin before you burn it with headless hacking.

That being said, I usually start coding a prototype/proof-of-concept before I actually design it and consequently write unit-tests for the first release.

But the most important advice I would like to give you is, keep yourself motivated and happy :-)

Martin P. Hellwig
+4  A: 

For cross-platform GUI-based desktop software, my preference is Qt -- solid, mature, rich, great tools, strong underlying event-like approach (signals and slots). Having Nokia behind it doesn't hurt, of course.

The mature Python interface to that is PyQt, but if the alternative of GPL or for-pay licenses is a problem for you, PySide is on the horizon (nowhere as mature as PyQt at this time, but by the time GPL'ing your software could possibly be a problem, PySide should be definitely ready for you;-). PySide is also sponsored by Nokia, according to this.

Beyond your choice of frameworks for GUI-based cross-platform desktop app development, of course, lie many, many other choices of tools and approaches -- but they're less crucial for solo development than they are for effective team cooperation, so, until teamwork is in prospect for you, it won't hurt to use whatever tools you find simplest (e.g., svn rather than a DVCS: I strongly recommend a DVCS such as hg, git or bazaar for team use, but for a solo developer I guess svn is still quite acceptable, and perhaps simpler to install and use).

Alex Martelli
I know PyQt is somewhat popular, but is it right for somebody who has "never programmed before"? Last time I used it, you had to pass C++ method signatures as strings to connect an event handler, and it had its own string type (even in Python). It looks like he's trying to learn programming, Python, GUIs, and RDBMSs already -- I would avoid recommending something that required him to touch C++ with even a 10-foot pole.
Alec
A: 

Hi,

I'm one of the developers of pyHed. We know that pyHed's documentation is not very good yet, but we are working very hard in it (it's the main thread of 1.1 version). Having any doubt about pyHed please contact us in our forum, your question will be answered imediately...

Vinicius Berni - pyHed Team

Vinicius Berni
+1  A: 

For what is worth, last week with no previous experience in python itself.. I managed to build a basic MVC app in about 4 days.. I used wxpython & wxglade

I think that if you know what your functional needs are, with a bit of googling & a bunch of reading other peoples code, you can produce very usable stuff in a very short time.

http://www.wxpython.org/

AlexFerrer
+1  A: 

Hi, you could have a look at the camelot framework http://www.conceptive.be/projects/camelot/

It provides a pyqt gui on top of sqlalchemy mapped classes. If you have questions, you can always post on our mailing list.

Erik

Erik