views:

1202

answers:

16

I'm evaluating web application frameworks for a hobby project I'm starting, and am beginning to go crazy trying to decide among the vast number of frameworks available to choose. The framework language isn't helping me filter out frameworks as I have varying levels of experience with Java, Python, Ruby and C#, and don't mind frameworks in any of these languages.

I'm looking for help in narrowing the choice down to a few that I can then investigate in more detail.

+1  A: 

Try AIDA/Web, a Smalltalk Web Framework, it is known for its simplicity, not to mention of the elegance of Smalltalk!

To stay simple, the additional database like MySql is not needed, because the Smalltalk image is a capable object database by itself. Later when your needs arise, you can decide to go relational, or even better, stay pure OO and choose a Gemstone/S object database.

Janko Mivšek
+2  A: 

Depends quite a bit on what you want your hobby project to be.

I'd say choose a Ruby or Python one.

(I'm doing most of my work using java, but don't think that is the best fit for a hobby project)

Simon Groenewolt
Ruby and Python aren't frameworks, they are languages.
jskulski
I know, my recommendation is to choose one (a framework) in Ruby or Python
Simon Groenewolt
+2  A: 

The usual suspects are django and rails, of course. They are not "small" by any definition.

I recommend webpy, it is simple, small and stays out of the way. I think reddit ran on it for a while as it is the brain child of Aaron Swartz.

rz
A: 

I'd guess something that would run upon a LAMP stack would be the easiest to set up. In that case, I guess there would be some good choices in CodeIgniter and Zend Framework. Then there's Symphony and CakePHP, but I've heard mixed reviews (concerning stagnating community and/or tricky configuration) of the two latter.

Unfortunately, I haven't had the time to test thoroughly any of the four, because I've been busy coding my own framework, which I will not shamelessly (or otherwise) plug.

Henrik Paul
go on Henrik... plug it man lol
g_g
+2  A: 

I am doing my personal project in http://www.asp.net/mvc/. The first time I did it I just slapped out a working site by fussing around with the code. Now I am re-writing it to try to "code better" and learn new design principles.

I also have used codeigniter at work, and while I like it, it is php and you didn't mention that as a choice of languages.

MrChrister
+2  A: 

rails is a good choice - it is simple for simple things, while allowing more complex things to be possible (always a good sign). There is a little bit of learning curve initially, but that's true of all frameworks.

If you're happier in Java, you could also look at Groovy + Grails, a very similar framework with a Java slant (groovy is kind of like a cross between java and ruby, and you can mix and match Java and Groovy classes in the same project).

frankodwyer
+1  A: 

Squatting is a small perl based web framework thingy inspired by Ruby's Camping. They're both small.

singingfish
+2  A: 

If it's just a personal hobby thing, I would recommend either going with .Net MVC, Rails or Zend (there may be some good Java frameworks out there but I'm not familiar with them).

I'm guessing that since it's a hobby project, you're not going to want to spend a lot of time looking around the web for examples on how to do things with the framework or looking for tutorials on how to set it all up. You probably want to be able to play with a bunch of cool features right off the bat without things breaking or dealing with a bunch of bugs. That being said, I think .Net MVC and or Rails will allow you to have the most fun with the least amount of headache. With a lot of the other Open Source frameworks out there you're going to have to jump through a lot of hoops right from the start that you would rather not have to deal with, and a lot of the time documentation for getting through the initial setup problems is hard to find.

matt_dev
+5  A: 

You may want to step back and really consider which language you enjoy coding in the most, regardless of your level of expertise in each. That will definitely narrow down your choices. I think it's kind of hard to choose a framework without choosing a language first. For instance, what if you end up doing your project in ASP.NET MVC, and find yourself not even liking C#/.NET too much to begin with.

Also ask yourself why you need a framework, or how a framework would help you with your hobby project. (Unless the hobby project is just for the sake of learning a framework.)

felideon
A: 

Let me suggest something really out of the zone here: build an ISAPI dll (or the Apache equivalent if that is your preference) from bare-metal C/C++ or even Delphi. Why? If you have the time to do this you will learn an IMMENSE amount about the underlying architecture of web applications and it will open up an entirely new perspective on all of the frameworks that everyone is suggesting here.

I did this in Delphi back in 2000 and it was a tremendous learning experience. Of course, this is predicated on the notion that you don't need to build anything quickly and that the primary purpose of the project is to learn about web development. But, if that is your objective, you'd be hard-pressed to find a better approach.

Mark Brittingham
+1  A: 

ASP.NET / ASP.NET MVC

MarlonRibunal
A: 

I suggest PHP as a good starting framework for many small hobby web apps:

  • It is simple and easy to learn
  • It is well documented and mature
  • It takes virtually no time to save changes and see them in the browser
  • There are lots of inexpensive hosting options
  • Your development environment is free and quick to setup
landon9720
A: 

If you are doing Java and desperately need something to get you out of the ohfock-it's-2am-and-I-am-still-coding-this-sql-shite, then please look no further than Grails http://grails.org.

It's everything like Ruby on Rails except that it:

  1. Should be way cooler than Rails
  2. Better performance
  3. Wealth of Java libraries
  4. You get some peace Rails disco noise and get things done.
Seymour Cakes
+4  A: 

My suggestion is just pick one.

I'm using Rails and am quite pleased with overall simplicity and performance - both, of code and mine as a programmer.

Lately I've started looking at Smalltalk web framework Aida/Web. It has it's own pros and cons, but development is quicker (no restarts, can edit running code), it's lot easier on RAM then Rails and in 95% of time you don't need a database, just use image for persistence.

Damir Horvat
A: 

Some ideas:

Fabian Steeg
+1  A: 

In the Ruby world, you have the big player (Rails) but you also have much lighter ones like Merb, Sinatra, Camping and a couple of others.

Keltia