learning something new
So I'm spending a little time to learn something new. I've been working on www.todocycle.net for a while now (actual hours spent are still pretty low, but with the little free time I have it's been a long time)... any hoo. I purposely chose to use some technologies with this site that I have never used before but had heard about and wanted to learn.
I started out with a few things that I am very familiar with, so that this project wouldn't take for freaking ever to get off the ground as I learn. I only spend about 3-4 hours a month on it, so my time better be well spent in order to see any visible progress. I started out with Postgres for the database, perl as the coding language, and CGI::Application as the MVC framework. All of which I'm quite comfotable with.
Then I chose a few things to work with to force me to learn. Template Toolkit for templating (I've been using HTML::Template for most other things), DBIx::Class for ORM (I've never really given and ORM a chance), and jQuery for a Javascript toolkit.
So far things have been a mixed bag. Picking up Template Toolkit was no problem at all and I am quite impressed by it. DBIx::Class has been another story. It has been a struggle for me to embrace it, and another one to try to get it to do what I want. I'm not giving up on it yet though. I want to give it a fair shot, but it was not a "learn it in one sitting and go to town" sort of thing like Template Toolkit was.
And then there's jQuery. I actually have been putting that one off becuase I was so focussed on the backend of things until now. I just started reading the docs on jQuery and have to say I am mightily impressed. I used Prototype before and disliked it. At my work, they use Yahoo's YUI toolkit, which seems big and bloated to me. jQuery is tiight, lightweight, and very easy to pick up.
So far:
jQuery A
DBIx::Class B-
Template Toolkit A
Light reading over the Holidays
So, it's Thanksgiving weekend and I find myself online reading a few articles and blog posts. One of note that I wanted to comment on and point out:
The benefits of vanilla CGI vs FastCGI for Perl apps
What people value in a web development process/toolkit is significantly weighted by the process and tools that web developer a) first learned, and b) is most confortable using. Meaning that a developer whose first experience programming web applications was with Catalyst and has since found Mojo more comfortable and uses it regularly, will have a different set of "values" (or criteria by which other things are compared) than a developer who started web development with straight CGI.pm and is now a Jifty user. (this bias should extend itself to any and all programmers, but I find it more appearant in web developers where there is more contention about which toolkit is better than another).
Whew. OK, after all that, I have to say that I agree with Mark and feel that "vanilla CGI" is a great way to get things rolling as a developer without having (usually) to change a thing to a web server. Just write your code and go. I also feel that if people expect things to run slow in CGI and not in mod_perl or FastCGI because that is their biased environment of choice, then they will program accordingly. Meaning that they will write code that is slower, heavier, etc. because "oh, mod_perl will take care of it and it will be fast enough," or something similar.
I've never actualy heard anyone say that, but I hear things close to it from other developers (Java web developers mostly) who feel like everything is perfectly normal when you have to rely on huge complex tools and frameworks and middleware and dedicated containers and separation of tiers and abstracted everything and this and that and the kitchen sink too just to develop web applications. This "normal bloat" I'll call it, is where that bias I mentioned earlier really comes out. If people can't even see that their tools and process is overly complex, burdensome, and has a moderate to high degree of dependencies for normal development and opperation, than how can you persuade them that it is perfectly fine to live without that? How can you make them see that that is not "normal" for many, many other web developers?
Living without FastCGI??? Shudder. You're still using perl for web development?!?!?!? How can you live without Hibernate for data access (or replace with your favorite language specific tool here)?!?! Running perl CGI without mod_perl??? Are you stupid??
Yes, stupid like a fox. Err... I mean, doh.