The largest gradient to improving the value of your time as a founder is aligning specific project goals with a well matched open source community. Leveraging enormous man hours of technical design powered primarily by enthusiasm makes perfect sense. Many of the contributors aren't just amateurs like myself with only a dozen months of web development experience notched on their belt. They're leaders and professionals with many years of hands on expertise.
There's a legion of brilliant hacker types that are sharp and dedicated to pure web development. I've had the good fortune to bump into many of them in my technical document searches, github browsing, and blog readings. While I'm cutting my teeth, these folks have been crafting web apps in their sleep, often times for over a decade. They think in HTTP with their favorite scripting languages and are fluent in RESTful protocols. App design and back ends are second nature to them. The hard part as a guy on the fringes, is figuring out which code tools to use and where to dive in. In order to make an informed decision on where to dedicate limited resources it's imperative that we know of what's out there, understand the benefits/limitations of given choices, and have a system for identifying a good enough solution.
Let's look at few options for dynamic web applications. By no means is this list complete. Yet there are enough different choices here to get a feel for how broad web application technologies are. Here's a cross sample of the most popular choices available to today's budding web developer:
- linux, apache http server, mysql, and php/perl/python
- Ruby on Rails
- full featured ActiveRecord based web framework
- Ruby with Sinatra
- choice of data layer leaner/lighter than Rails
- web framework built on node.js
- couchdb application framework
- Python web framework
- the power behind Friendfeed's webserver
- clojure framework
- scala framework
- for Microsoft junkies
All of these choices are founded on core technology that's the result of hard work and practical technical design. Some options are newer than others, but newer doesn't always translate to better. The more likely correlation is that less popular alternatives have had less opportunity for practitioners to shake out potential bugs. A fairly new framework can support millions of applications which rapidly refine it's source. The advantage of some of the younger frameworks is that they're easier to hit the ground running. There's no need to configure server details out of the gate and lower levels are abstracted away for easy availability to the application layer.