TODO: add links
Summary
- Python based tools for me.
- cherrypy, kid, elementtree: cherrypy for ease of deployment and URI handling? kid is a nice templating language. elementtree turns xml into objects.
- sqlobject versus sqlalchemy
- pylons versus turbogears versus django versus ?
Why Change?
I’ve reached a point where the tools in my toolbox aren’t quite satisfying me anymore. I’ve gotten pretty good at writing mini-frameworks in PHP on top of smarty and some mod_rewrite. If necessary I do some database plumbing code, and I’ve got a nice website going. It works well. However, as I’m learning more things and wanting to do more things, I’m finding my tools kind of worn around the edges. So I’m currently in the process of taking the old tools out of my toolbox, or at least moving them aside.
python, ahoy
I plan to use python a lot more than I have been. In my opinion, PERL and PHP are rather similar in terms of web development. Java is too heavy for me. C and C++ aren’t terribly practical for rapid web development. There are many options to choose from, but it boils down to python versus ruby. Ruby is neat. I really like the syntactic sugar it provides, and in fact I now pseudo-code using ruby idioms, and much of my javascript uses Ruby idioms, thanks to prototype.js. Of the two though, I prefer python. From what little I understand, ruby tries to mix in with html in strange looking templates. In addition, I keep hearing that it’s got a slower interpreter because it doesn’t compile to bytecode. Feel free to correct me, but I’ll stick with python for now.
Some choices are easy
I like the look of cherrypy. It helps you map URI’s to code, and supposedly makes it easy to deploy projects. Likewise, kid is the tempate language I’ve been looking for. I like smarty in php, but I’m a bit weary and kid looks refreshing. elementtree makes xml objects into pythonic objects. I remember using this and then being a little disatisfied with it, but I can’t remember why. I think I needed to validate documents at the time, and this couldn’t do it. I’m not so worried about that anymore.
Hard Decisions
I’m having a hard time choosing between sqlalchemy and sqlobject. They both look similar, except I saw some examples around the web for sqlobject that looked horried. Even the examples in the django docs are horrid. sqlalchemy looks better, prima facie, to me, however sqlobject seems to enjoy much broader support.
Once I’ve decided on the above, question, the final question is which framework to use? I don’t like installing lots of things and trying them out. I’d like to pick something, invest a bit in it, and be rewarded for my effort. I’m hesitant to pick too early, but deciding on sqlobject versus sqlalchemy in combination with the other tools I’ve already decided on may make this easier. I didn’t see any bragging in the django camp about using kid, or arbitrary templating components. The built in templating language for django looks simliar to smarty, which is a bit of a turnoff (even though I love using smarty). That leaves turbogears and pylons. pylons also uses paste, which I’m not entirely sure about. I’ll have to read some more.
6 Comments
Hey there, bewest,
You can use Kid with Django if you really want to — a Django view function is just a plain Python function that does something and returns a response. If “does something” means “load a Kid template,” that’s perfectly fine. :)
Adrian,
Ah, good to know! Thanks. What about sqlalchemy vs. sqlobject?
Hi Ben,
I’ve been using SQLAlchemy for about two days now and I can tell you, it’s without compare. The ORM is the most flexible I’ve ever seen. It’s freaking magic.
I’ve been using Pylons for… two days now. I’m really impressed with it. The wiki demo is ~150 lines of code and ends with drag and drop page deletion.
I wrote a virtual machine for the ICFP 2006 programming contest in Ruby because it’s basically my native tongue (Python is the language we use at work) and was exceedingly disappointed in the performance. I’d be pretty shocked if Python turned out to outperform Ruby by a whole lot though, at least without magic like Psyco.
As a Newbie, I am always searching online for articles that can help me. Thank you
rH3uYcBX
I think that any company that takes their online presence seriously should look into having a blog. It is a way to engage with your customers on a more personal level.
Maybe you could make changes to the post subject the toolbox Imaginings to more suited for your content you write. I enjoyed the blog post however.