Question: tools for business apps development

C

Carlos Ribeiro

Hello all.

I'm in the process of writing a business app in Python. (defining
business app: data entry, validation, interactive reports, etc). For
my purposes, it must be a native app (wxWidgets, GTK or Qt-based). A
web application will not do it (although I would love it).

To make a long history short: I used to develop business apps for a
living for a long time (up to the mid 90s). My last experiences were
with Delphi and VB. I know Python, but all projects I've done were
either scripts for sysadmin work, or were networking related (I did
SNMP, NetFlow, and a few web apps, also). Now, a friend of mine asked
me to write a new app for his company, and a I suggested doing it in
Python. I am limited to free tools only, by definition. So I collected
a few questions that I would like to ask here.

-- Which IDEs are better suited for business apps? I use PythonWin for
most of my scripting work in Windows. On occasion, I edit in PythonWin
or SciTE and run using the command line interpreter. I've downloaded
Boa and PythonCard, and while both work (to a reasonable degree), I
found both lacking for a RAD style development cycle. Are these tools
being used for production code?

-- Which free design tools are being actively used for business app
development? (includes database-design, UML, etc). There are many
tools available around, but most seem to be abandoned, or were used
for some specific task and never touched again. I would like to know
more about what is actually being used in production environments.

Thanks in advance for any answer. Best regards,

--
Carlos Ribeiro
Consultoria em Projetos
blog: http://rascunhosrotos.blogspot.com
blog: http://pythonnotes.blogspot.com
mail: (e-mail address removed)
mail: (e-mail address removed)
 
R

Robert M. Emmons

For
my purposes, it must be a native app (wxWidgets, GTK or Qt-based). A
web application will not do it (although I would love it).

Keep in mind that it is still possible to write an XUL application with
Mozilla this way, and for example ActiveState has done this to develop
their IDE. One could for example write an application that is local and
then later could be web based. I've not used XUL but it looks
interesting. In a sense maybe this approach is not so different from
what MS is calling "Avalon" (?) -- the latest and greatest MS vaporware.

I've used Tkinter which has a long history and is probably the most
portable and stable -- but I've been thinking of trying out wxWidgits.
GTK+ is really for linux only -- but there is a port to windows, and QT
-- just be careful with the liscence, it is not free when writing
commercial code.
Now, a friend of mine asked
me to write a new app for his company, and a I suggested doing it in
Python.

I can only tell you what my impression is regarding python -- it would
be good to hear from others. Most businesses probably use VB or Java
for what your talking about (or perhaps C++). I'm not trying to
encourage that -- and in fact I like and use python. I have used python
for a few applications for the business I work for -- Tkinter based and
I sued PythonWin IDE. As you say, the development tools were rather
primative -- and tkinter though claiming to be native -- is not exactly so.

ActiveState provides some commericial tools -- you might want to take a
look and they also provide a plugin for MS Visual Studio. This is also
a wonder -- is there Python support in Eclipse? I'm not certain.
-- Which IDEs are better suited for business apps? I use PythonWin for
most of my scripting work in Windows. On occasion, I edit in PythonWin
or SciTE and run using the command line interpreter. I've downloaded
Boa and PythonCard, and while both work (to a reasonable degree), I
found both lacking for a RAD style development cycle. Are these tools
being used for production code?

I don't know. Be good to hear from others. By the way, emacs also has
a python mode. I personally have been thinking of looking at Boa but
have not used it.
-- Which free design tools are being actively used for business app
development? (includes database-design, UML, etc). There are many
tools available around, but most seem to be abandoned, or were used
for some specific task and never touched again. I would like to know
more about what is actually being used in production environments.

Don't know. Maybe others know.

Take care,
Rob
 
R

Robert M. Emmons

For
my purposes, it must be a native app (wxWidgets, GTK or Qt-based). A
web application will not do it (although I would love it).

Keep in mind that it is still possible to write an XUL application with
Mozilla this way, and for example ActiveState has done this to develop
their IDE. One could for example write an application that is local and
then later could be web based. I've not used XUL but it looks
interesting. In a sense maybe this approach is not so different from
what MS is calling "Avalon" (?) -- the latest and greatest MS vaporware.

I've used Tkinter which has a long history and is probably the most
portable and stable -- but I've been thinking of trying out wxWidgits.
GTK+ is really for linux only -- but there is a port to windows, and QT
-- just be careful with the liscence, it is not free when writing
commercial code.
Now, a friend of mine asked
me to write a new app for his company, and a I suggested doing it in
Python.

I can only tell you what my impression is regarding python -- it would
be good to hear from others. Most businesses probably use VB or Java
for what your talking about (or perhaps C++). I'm not trying to
encourage that -- and in fact I like and use python. I have used python
for a few applications for the business I work for -- Tkinter based and
I sued PythonWin IDE. As you say, the development tools were rather
primative -- and tkinter though claiming to be native -- is not exactly so.

ActiveState provides some commericial tools -- you might want to take a
look and they also provide a plugin for MS Visual Studio. This is also
a wonder -- is there Python support in Eclipse? I'm not certain.
-- Which IDEs are better suited for business apps? I use PythonWin for
most of my scripting work in Windows. On occasion, I edit in PythonWin
or SciTE and run using the command line interpreter. I've downloaded
Boa and PythonCard, and while both work (to a reasonable degree), I
found both lacking for a RAD style development cycle. Are these tools
being used for production code?

I don't know. Be good to hear from others. By the way, emacs also has
a python mode. I personally have been thinking of looking at Boa but
have not used it.
-- Which free design tools are being actively used for business app
development? (includes database-design, UML, etc). There are many
tools available around, but most seem to be abandoned, or were used
for some specific task and never touched again. I would like to know
more about what is actually being used in production environments.

Don't know. Maybe others know.

Take care,
Rob
 
A

Alex Martelli

Carlos Ribeiro said:
Hello all.

I'm in the process of writing a business app in Python. (defining
business app: data entry, validation, interactive reports, etc). For
my purposes, it must be a native app (wxWidgets, GTK or Qt-based). A

OK, but, native to WHAT platform...? Later you mention it must be all
done with free tools... Qt on Windows isn't. QtDesigner is good, but Qt
only free for (free-software dev't on) Unix/Linux and Mac, not for (any
kind of dev't on) Windows.


Alex
 
A

Alex Martelli

Robert M. Emmons said:
a wonder -- is there Python support in Eclipse? I'm not certain.

Yes, there is now (a relatively recent development), there was a talk
about it at OSCON.


Alex
 
C

Carlos Ribeiro

OK, but, native to WHAT platform...? Later you mention it must be all
done with free tools... Qt on Windows isn't. QtDesigner is good, but Qt
only free for (free-software dev't on) Unix/Linux and Mac, not for (any
kind of dev't on) Windows.

It will run in Windows, but it's supposed to be multiplatform -
whatever it means nowadays :) My friend is toying with the idea to
turn his company into a full Linux based shop. Unfortunately, it's not
a decision that he can't take alone. For now he already managed to
convince his partners to use OpenOffice for a lot of stuff, but a few
things still are done using MS Office based tools. Some internal apps
use MS Access -- the company is small, so there is no need for SQL
Server. And web-based apps are thought to be limited, not interactive
or responsive enough for the job (the dependence on heavy Javascript
programming doesn't help it either).

So I can't use Qt. I've evaluated some wxWidgets-based tools, but
found them not quite ready for prime time. And I'm not inclined to
study XUL just to do it, but I can change my mind. I don't feel
comfortable to use a browser extension to write a full fledged app --
it may be a prejudice of mine (I don't like browser-based Java apps,
either, although its a completely different beast), and a little
reading may help to dispell it.

If I was running a commercial shop now, I would probably use Delphi.
That's what I used a long time ago, and there is still a sizeable
local community still using it (regardless of Borland's diminishing
market share). I'm still pondering my choices.

--
Carlos Ribeiro
Consultoria em Projetos
blog: http://rascunhosrotos.blogspot.com
blog: http://pythonnotes.blogspot.com
mail: (e-mail address removed)
mail: (e-mail address removed)
 
C

Carlos Ribeiro

Keep in mind that it is still possible to write an XUL application with
Mozilla this way, and for example ActiveState has done this to develop
their IDE.

I hadn't thought about using XUL before. I need to study it better. I
have a certain prejudice against using browser based apps -- for
instance, I don't like browser based Java apps. I don't know if XUL
uses a similar model or not. On the other hand, I really like standard
browser-based Web apps -- using CSS and Javascript and stuff like
that. What I don't like is the basic sandbox model and all the
security issues associated with it. I just don't feel comfortable.
I've used Tkinter which has a long history and is probably the most
portable and stable -- but I've been thinking of trying out wxWidgits.
GTK+ is really for linux only -- but there is a port to windows, and QT
-- just be careful with the liscence, it is not free when writing
commercial code.

Tkinter may be good enough for my needs. I just couldn't find a good
RAD style tool to use with it. I found some for wxWidgets, but none
are up to my expectations now.
I can only tell you what my impression is regarding python -- it would
be good to hear from others. Most businesses probably use VB or Java
for what your talking about (or perhaps C++). I'm not trying to
encourage that -- and in fact I like and use python. I have used python
for a few applications for the business I work for -- Tkinter based and
I sued PythonWin IDE. As you say, the development tools were rather
primative -- and tkinter though claiming to be native -- is not exactly so.

This is an area where the lack of strong commercial drive for Python
really hurts. For all infrastructure related matters one can use
Python without fear. There are plenty of tools and excellent libraries
to support it. But business app development is now mostly focused
towards either an MS tools based environment (VB, VC++, or C#) or
Java-based tools. And I would really like to do it in Python, I think
the language itself is mature and good enough for the job -- only the
tools are missing.


--
Carlos Ribeiro
Consultoria em Projetos
blog: http://rascunhosrotos.blogspot.com
blog: http://pythonnotes.blogspot.com
mail: (e-mail address removed)
mail: (e-mail address removed)
 
R

Robert M. Emmons

I hadn't thought about using XUL before. I need to study it better. I
have a certain prejudice against using browser based apps -- for
instance, I don't like browser based Java apps.

No it is not like java apps. Basically with python you can write an
applciation that runs on your local host that either essentially surves
up XUL or HTML/XHTML pages just like you might in Javascript -- only
it's more like CGI scripting -- or using a fully Javascript generated
page. The advatnage of XUL over HTML is that you get control of the
full window with native looking controls and components.

The other nice thing is that if you use this mode, an application can
probably then be served from a web server at a later date if you want to
do that.

I have not tried this -- but I did a little surfing and reading on the
web a few months ago and it seemed both interesting and a little unique.

There is a book about this titled "Rapid Application Development with
Mozilla" that talks all about this. It is available free on the net
(sorry can't remember the URL, or in print from the bookstore). I don't
know if this discusses python or not, but it certain discusses XUL and
JavaScript.
And I would really like to do it in Python, I think
the language itself is mature and good enough for the job -- only the
tools are missing.

Yes, I've not found anything really. I assume you mean interface
builders in particular? For that matter -- are there any good
opensource interface builders -- I mean really good and integrated with
the IDE etc. I've not seen any.

Rob
 
R

Robert M. Emmons

It will run in Windows, but it's supposed to be multiplatform -
whatever it means nowadays :) My friend is toying with the idea to
turn his company into a full Linux based shop.

One stratagy to move to Linux: Move to the web, avoid VB -- use Java
instead, don't use MS Office -- use OpenOffice. This is probably the
most conservative approach. It's hard to see how anyone can be scared
of that approach.

Again -- I not encouraging Java because it's not open source, but it
does have Linux support and is commerical with some free tools and it is
probalby a more conservative choice than python -- though python is way
cool and I like python myself. People also say good things about QT
development environment -- but again that's commerical -- and I don't
know what it has for python support.
And web-based apps are thought to be limited, not interactive
or responsive enough for the job (the dependence on heavy Javascript
programming doesn't help it either).

I believe this is why XUL exists -- to give web based apps a local
applicaiton look and feel.
And I'm not inclined to
study XUL just to do it, but I can change my mind. I don't feel
comfortable to use a browser extension to write a full fledged app --
it may be a prejudice of mine (I don't like browser-based Java apps,
either, although its a completely different beast), and a little
reading may help to dispell it.

Yes I have that concern -- but I've not tried it and don't know either
way. The Active State IDE is writen this way, so there is one example.

Rob
 
A

Alex Martelli

Robert M. Emmons said:
There is a book about this titled "Rapid Application Development with
Mozilla" that talks all about this. It is available free on the net
(sorry can't remember the URL, or in print from the bookstore). I don't
know if this discusses python or not, but it certain discusses XUL and
JavaScript.

I googled. found and downloaded the book, and had a quick check -- alas,
the "discussion" of Python in the book is limited to:
"""
Embedded programmers can use languages such as Perl and Python to drive
all the windows that an application based on the Mozilla Platform
creates. Such uses are not documented here.
"""

While it definitely looks like a worthwhile book on XUL, anybody wanting
to drive XUL from anything except Java or Javascript should, I guess,
look elsewhere (perhaps in _addition_ to said book). I suspect the
easiest way to drive XUL from Python based on this book might be to use
Jython and XUL's Java interfaces (I haven't checked in detail, but
offhand it looks like the book does document XUL's Java interfaces).


Alex
 
K

Ksenia Marasanova

And web-based apps are thought to be limited, not interactive
or responsive enough for the job (the dependence on heavy Javascript
programming doesn't help it either).

One of possibilities is to use Flash (in a browser) for GUI. I am
thinking about using it for some project that also needs more
interactivity: Flash for frontend, Python for backend (Web service
using XMLRPC).
You can use Flash IDE for fast GUI builing, and code the flow of your
GUI in Action Script files, using your favorite editor.
The sad part of this approach is that you can't program everything in
Python. The nice part is the maintainability (no install, automatically
download of the latest version).

But these are my thoughts... I wonder what people say who actually did
it :)

Ksenia.
 
D

Daniel Ellison

Ksenia said:
One of possibilities is to use Flash (in a browser) for GUI. I am
thinking about using it for some project that also needs more
interactivity: Flash for frontend, Python for backend (Web service using
XMLRPC).
You can use Flash IDE for fast GUI builing, and code the flow of your
GUI in Action Script files, using your favorite editor.
The sad part of this approach is that you can't program everything in
Python. The nice part is the maintainability (no install, automatically
download of the latest version).

But these are my thoughts... I wonder what people say who actually did
it :)

Ksenia.

It's actually a very effective solution, in my experience. You get a
cross-platform, very smart client talking to the server of your choice.
When I used this approach (pre-Python-discovery) I wrote the server in
Java and all messages were exchanged as XML. Now I would make the same
choice as you: Python server using XML-RPC.

Dan
 
A

Aaron Bingham

Alex said:
I googled. found and downloaded the book, and had a quick check -- alas,
the "discussion" of Python in the book is limited to:
"""
Embedded programmers can use languages such as Perl and Python to drive
all the windows that an application based on the Mozilla Platform
creates. Such uses are not documented here.
"""

While it definitely looks like a worthwhile book on XUL, anybody wanting
to drive XUL from anything except Java or Javascript should, I guess,
look elsewhere (perhaps in _addition_ to said book). I suspect the
easiest way to drive XUL from Python based on this book might be to use
Jython and XUL's Java interfaces (I haven't checked in detail, but
offhand it looks like the book does document XUL's Java interfaces).
If you just want a native Mozilla app with Python as the main
development language, you are better off using Mark Hammond's PyXPCOM.
This allows you to call and write XPCOM components in (C)Python. Since
Mozilla exposes all interesting functionality as XPCOM components, you
can do anything this way. PyXPCOM is part of the main Mozilla
distribution, though it is not built by default.

--
 
R

R.Marquez

I've downloaded
Boa and PythonCard, and while both work (to a reasonable degree), I
found both lacking for a RAD style development cycle. Are these tools
being used for production code?

I am probably more of a craftsman than a "RAD" styled developer. So I
do most of my application development by hand. However, I have used
PythonCard for some tools and found it quite adequate (especially
since you can reach out and code straight wx for the controls not yet
implemented in PythonCard). I have not yet done much with Boa,
especially with the latest release, but I have heard many good things
about it. So, I am curious as to where do you see these tools as
lacking. Could you elaborate a little more on this, and on what you
would like to see instead.

-Ruben
 
K

Ksenia Marasanova

One of possibilities is to use Flash (in a browser) for GUI. I am
It's actually a very effective solution, in my experience. You get a
cross-platform, very smart client talking to the server of your
choice. When I used this approach (pre-Python-discovery) I wrote the
server in Java and all messages were exchanged as XML. Now I would
make the same choice as you: Python server using XML-RPC.

Good to hear that :)
I was thinking about that 'very smart client'... actually, I want the
Flash client to be 'as dumb as possible' :) In the terms of
Model-View-Controller, wouldn't it be even better to have only 'View'
in Flash? The 'Controller' can then be on the server, in Python,
comunicating with Flash client in...XUL? ;-) It will be basically the
same as generating HTML for the browser... but with richer widgets.

Googled from curiosity:
http://zulu.netspedition.com/zulu/main/overview.shtml

Hmm...

Ksenia.
 
C

Carlos Ribeiro

Hello all,

Thanks to all that have contributed so far. Some very good suggestions
have appeared. I still have my concerns over XUL. Flash is also
another matter -- it requires yet another set of knowledge and tools
before starting to write code. But nonetheless, all these approaches
have their own advantages, namely a richer user experience than it's
possible with plain HTML (or even Tk). So they're really worth
checking.

As a dig deeper in the search of a business development paradigm for
Python, the more problems I find. It's not only lack of tools. It's
also the lack of a common idiom to write business apps. Each and every
library around uses a different approach to map business objects and
concepts to Python's code. Each one ties things together in a
different way. It's surprising, considering that in Python normally
"there is one way to do it". Not this is a show stopper -- it only
shows how far we are now from something like J2EE.

I'll keep looking around and checking more stuff. As far as the user
interface is concerned -- I'll probably do it simple, using HTML and
Javascript. Yes, I'm going to implement a webapp, instead of a native
Windows app, or at least that's the current choice (my friend changed
his mind over this). But I'll keep posting my progress.

--
Carlos Ribeiro
Consultoria em Projetos
blog: http://rascunhosrotos.blogspot.com
blog: http://pythonnotes.blogspot.com
mail: (e-mail address removed)
mail: (e-mail address removed)
 
D

Daniel Ellison

Ksenia said:
Good to hear that :)
I was thinking about that 'very smart client'... actually, I want the
Flash client to be 'as dumb as possible' :) In the terms of
Model-View-Controller, wouldn't it be even better to have only 'View' in
Flash? The 'Controller' can then be on the server, in Python,
comunicating with Flash client in...XUL? ;-) It will be basically the
same as generating HTML for the browser... but with richer widgets.

Googled from curiosity:
http://zulu.netspedition.com/zulu/main/overview.shtml

Hmm...

Ksenia.

Yes, that would be best. All business logic would be on the server, and
anything "visual" would be handled by Flash, which would make XML-RPC
method invocations to update on-screen data according to user actions.
This should be pretty easy if one follows MVC properly. There are plenty
of free (and plenty of inexpensive commercial) Flash widget sets
available to make the UI creation easier.

The latest incarnation of Flash also supports SOAP, if that's your bent.
And I mean bent! :)

Dan
 
R

R Baumann

Carlos Ribeiro said:
Hello all,

Thanks to all that have contributed so far. Some very good suggestions
have appeared. I still have my concerns over XUL. Flash is also
another matter -- it requires yet another set of knowledge and tools
before starting to write code. But nonetheless, all these approaches
have their own advantages, namely a richer user experience than it's
possible with plain HTML (or even Tk). So they're really worth
checking.

As a dig deeper in the search of a business development paradigm for
Python, the more problems I find. It's not only lack of tools. It's
also the lack of a common idiom to write business apps. Each and every
library around uses a different approach to map business objects and
concepts to Python's code. Each one ties things together in a
different way. It's surprising, considering that in Python normally
"there is one way to do it". Not this is a show stopper -- it only
shows how far we are now from something like J2EE.

I'll keep looking around and checking more stuff. As far as the user
interface is concerned -- I'll probably do it simple, using HTML and
Javascript. Yes, I'm going to implement a webapp, instead of a native
Windows app, or at least that's the current choice (my friend changed
his mind over this). But I'll keep posting my progress.

Have you looked at GNUe?
 
C

Carlos Ribeiro

Have you looked at GNUe?

Haven't heard about it before, but I checked it following your tip.
It's a great project, but it's overkill for my needs. The framework
goes in the direction that I was thinking about -- specially the
concept of forms, as presented there. I may check it out in the
future, but for now I need something to prototype in two weeks --
better to keep it simple.

--
Carlos Ribeiro
Consultoria em Projetos
blog: http://rascunhosrotos.blogspot.com
blog: http://pythonnotes.blogspot.com
mail: (e-mail address removed)
mail: (e-mail address removed)
 
J

JanC

Ksenia Marasanova schreef:
One of possibilities is to use Flash (in a browser) for GUI. I am
thinking about using it for some project that also needs more
interactivity: Flash for frontend, Python for backend (Web service
using XMLRPC).

You can do this with HTML+JavaScript too, no need for Flash...
 

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,769
Messages
2,569,581
Members
45,056
Latest member
GlycogenSupporthealth

Latest Threads

Top