Decisions, decisions
For a project I'm working on, I need to decide on a set of platforms to use. I'm building a database, and it will be searched via the web. So have two issues to consider: the database software and the scripting platform. My strongest current experience is in SQL Server and Cold Fusion; for financial reasons, I can't use either for this project, so I need to decide.
On the database side the debate is between mySQL and PostgreSQL. Both are free. I've been doing some reading and some experimentation on them. There's a lot to like about both. Both seem to be well supported on web sites, newsgroups, and in books. Neither, it appears, as UI tools that are as nice as SQL Server's Enterprise Manager (though that thing has its problems too). I've run mySQL pretty extensively on tests, and it's easy enough to use, and to get data into (important). I also like its full-text indexing, which will be useful for this project. On the other hand, I've been frequently frustrated when I try certain things that I'm used to from standard SQL, namely sub-selects. I can probably work around those things, but it rubs me the wrong way, and is pretty frustrating. I haven't tested PostgreSQL enough yet to comment much, except that I'm working on Windows currently, and the Windows installs, with the Cygwin UNIX emulation layer feels a little clunky to me. That doesn't really matter, as I'll be running on BSD when I go to the production server in a month or so. So I'm leaning towards PostgreSQL and will develop in that direction, and try to stay away from unique features for the time being (except for testing the full text searching).
The next question is which scripting platform to use. Perl is an obvious choice; I know it well enough, it's well supported, an someone working with me has Perl experience. On the other hand, I've not been too happy when I've had to debug and figure out other people's Perl code, and the way you create web pages, by printing, seems unnatural to me.
So I'm looking at PHP and Python. PHP in many ways resembles Cold Fusion: you embed PHP scripts inside pages that otherwise look just like HTML pages (unlike Perl, where HTML is ouput by printing). The language is in some ways nicer than Cold Fusion in that you can create functions; you can also pretty easily move common code into include files, so your common code can be used across a number of web pages. PHP is also very well supported: there are lots of resources available on the web, in newsgroups, and in books. On the other hand, a lot of these resources are pretty basic and pretty amateurish, and I've had various issues with getting some example scripts running on my Windows development setup. I've written a number of pages using a text editor, and haven't looked at any IDEs yet (Cold Fusion's IDE is one of its nicest features).
So I'm going to look at Python, too. I have a book coming and am going to look at sample code across the web, and do a basic page to see what I think of it. It also looks well supported (and I spent some time with a book covering PostgreSQL and Python at Cody's bookstore today). We'll see how it works out.
These are fun decisions to be making. We will be using Perl for big parts of the project. But I want to be using something that seems kind of fun, boosts productivity, and gives us a lot of flexibility.
5:28:22 PM Permalink
|
|