freecats-dev
[Top][All Lists]
Advanced

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

[Freecats-Dev] language / database / integration


From: Dave Simons
Subject: [Freecats-Dev] language / database / integration
Date: Thu, 23 Jan 2003 09:40:30 +0100

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




reply via email to

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