freecats-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Freecats-Dev] language / database / integration


From: Thierry Sourbier
Subject: RE: [Freecats-Dev] language / database / integration
Date: Thu, 23 Jan 2003 17:33:57 +0100

I fully agree with comments 1 & 3.

I don't know enough about the berkeley DB to have an opinion there.

Cheers,
T.


-----Message d'origine-----
De : address@hidden
[mailto:address@hidden la part de
Dave Simons
Envoye : jeudi 23 janvier 2003 09:41
A : address@hidden
Objet : [Freecats-Dev] language / database / integration


Hi everyone

I've been following discussions as best I can and have a few thoughts on
the matters mentioned. They might give you food for thought. Use or abuse
them as you will.

1. Language
2. Database
3. Integration


1. Language

The question was raised about what alternative development environments
there are, the current preferred one being Tcl/Tk.

As far as I know the only reasonable alternatives that will run on
Windows/Mac/Linux/*BSD are Python, Perl, and Java.
Concerning toolkits, only Java Swing and Tk seem to fit the bill. Tk on its
own is very a basic toolkit: the interface is always going to look a bit
primitive compared with flashier toolkits like Qt, but if eye candy is
what's wanted, there are
extensions (mega widgets) available from third party groups (still free
software), though things start getting complex from a development point of
view if you include these.

As for the language environment, Python has a Tkinter module which gives it
access to the Tk toolkit and also a Python Mega Widget (PMW) library
providing similar advanced widgets to its those of the Tcl extensions. I
thought there might be a doubt about using PMW on Mac but the page below
seems to allay those fears.

http://mail.python.org/pipermail/pythonmac-sig/2001-April/003386.html

Similarly, Perl has Perl/tk, though the mega widget position looks less
clear. I don't personally like Perl (since
I'm not writing the programs you can take that with a pinch of salt :-)
There are some real readability issues with
the language: many consider it a write-only language, difficult for anyone
other than the author to maintain. Perl fans will argue otherwise but it's
more of a religious argument.

Java is of course able to do everything you want on all these platforms and
I wouldn't dismiss it lightly merely for philosophical reasons.** (see
argument below) There are open source runtimes available, and if you don't
like the language itself, there's always Jython, which lets you call all
the Java features from a program written in Python. That leaves only the
"problem" of the proprietary widgets. Well, they might be proprietary, but
it doesn't seem to stop you using them where and how you want.

**Free software is a great movement but let's be pragmatic; unless you are
a developer, there are only two main issues, interoperability and lock-in.
And before everyone says "yes but we ARE developers" I'll reply "sure, but
you're not writing
for developers." And let's face it, do you really want to change the source
code of the language or toolkit you're using?


2. Database

 From all the gossip I've heard, one of the fastest databases out there
(and speed really is an issue in this application) is
berkely DB. http://www.sleepycat.com/products/index.shtml. It's a
proprietary system but comes with the source code and is issued under a
licence that bears an uncanny resemblance to some other GPL-compatible
licences (you only pay if you don't want to use it in a closed-source
application). Note, this is NOT an SQL database, but since we're looking at
a very limited number of look-up scenarii rather than total flexibility I
can't see this being an issue. A full native API is available for C, C++,
Java, Tcl, Perl, and  Python. This is interesting: the languages mentioned
have interfaces available for lots of databases, but you could hardly call
them a _full_ API. Many of them boil down to just two commands: "connect"
and "send query."

3. Integration

This is a serious issue and should be an important consideration when
choosing the development platform. If you want to build, say, a
Python/Tkinter application using mega widets, a database, some kind of XML
parser, plus of course the
application, then you're including bits and pieces from all over the place.
That might be OK for someone who's used to Linux or FreeBSD, but it's going
to be disconcerting to your average layman who just wants to download the
application and run it. It can be quite a challenge to produce a seamless
package, but it really is important to do so otherwise the application is
not going to get widespread use. Though you won't like me saying it (I
don't even like saying it myself), Java wins hands down in this department.

Hope someone finds my ramblings useful.

Dave Simons




_______________________________________________
Freecats-dev mailing list
address@hidden
http://mail.nongnu.org/mailman/listinfo/freecats-dev





reply via email to

[Prev in Thread] Current Thread [Next in Thread]