Choosing a simple web application framework [close

2020-05-21 05:03发布

问题:

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 7 years ago.

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:

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).



回答2:

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.)



回答3:

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.



回答4:

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.



回答5:

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)



回答6:

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.



回答7:

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.



回答8:

Java : Spring

Spring is the most popular application development framework for enterprise Java



回答9:

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.



回答10:

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.



回答11:

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



回答12:

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.



回答13:

ASP.NET / ASP.NET MVC



回答14:

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.



回答15:

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.


回答16:

Some ideas:

  • Java: Wicket
  • Groovy: Grails
  • Ruby: Rails


回答17:

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