What's the current hotness for web development frameworks?
April 18, 2013 10:35 AM   Subscribe

What are the best options for quickly developing web applications? I'm looking for something as fast as possible to set up and get running, instead of getting bogged down in setup and configuration details.

I've got experience in LAMP almost eight years ago, but that's an example of something that takes too long to integrate everything together, then requires a few more frameworks on top of the "P" layer. I know PHP, Perl, SQL, JS, HTML, and CSS (and can probably learn any other mainstream language) but I don't know what frameworks tie them all well together.

I'm not concerned about scalability, performance, or security; just a very simple CRUD (create, read, update, delete) application. Maybe even just the read part is enough.

Ruby on Rails was the talk of the town a few years ago - is it still the best option? I've touched node.js and all-JS sounds promising, but what do I need to build on top of it to get going? Are Java-based frameworks still unwieldy and overdesigned? And I don't have any idea how CMSes like Joomla or Django work - they seem designed for blogs or static websites.
posted by meowzilla to Computers & Internet (11 answers total) 22 users marked this as a favorite
Django is similar to Ruby on Rails, just in Python instead of Ruby: a general all purpose web development framework. I don't know about Ruby on Rails, though I assume it has the same capabilities, but Django really does excel at extrapolating most of the set up for CRUD work between the built in admin application and the generic views where the majority of what you have to do is set up the models that define what's in the database and let everything else be based on that.
posted by foxfirefey at 10:50 AM on April 18, 2013

Django isn't a CMS, it's a model-view-controller framework just like Rails. I've used it for years and really like it; it's got a good community and plenty of support. One of its major advantages is the built-in administration app; it's way more advanced than anything I'm aware of in Rails.
posted by asterix at 10:58 AM on April 18, 2013

All-javascript frameworks are the new hotness. Here is a link to a news.ycombinator.com thread, where startup hackers snark about webapp frameworks. There are others. I'm torn between learning one of the js frameworks instead of leveraging my science / python background for Django.

From the sidelines I imagine: knockout.js is alluring, ember.js seems like forbidden fruit, angular.js almost boring, backbone.js is a workhorse, and node.js hasn't been cool for at least 3 months.
posted by tintexas at 10:58 AM on April 18, 2013 [1 favorite]

You can deploy a webapp in node.js, but knockout/angular/backbone/etc are just libraries for JS rich interaction. You'd still need a way to connect to the database with a framework like Rails or Django. Node.js has wrappers to DBs.

For a quick way to deploy you can just use a free heroku plan to deploy any Rails, Django, even nodejs app.
posted by xtine at 11:05 AM on April 18, 2013

If you're willing to learn Python, I always recommend Bottle for someone who's looking to get something up quickly and doesn't want there to be an unknowable tangle of modules between their code and the actual HTTP request. It doesn't offer much in the way of plugin functionality (so if you're looking for ORM or auth or form validation in the box then you should probably go with one of the bigger frameworks, although it's easy to mimic the MVC setup those other frameworks provide a la this nice little project), but for small and simple apps there is just nothing easier.* Recently I built a small web app and a RESTful service with Bottle and the only configuration I had to do for the first was adding a directory to the default template path, and for the second just the usual Heroku setup boilerplate. On the admin side, setting up WSGI apps is pretty easy with nginx as your front-facing server (I never want to touch Apache again, ugh) -- you either patch it up with middleware like uWSGI or set it up as a reverse proxy on top of a local instance of something like Gunicorn.

* Flask is another micro-framework that offers many of the same advantages as Bottle while having better support, better plugin functionality, and being better-documented, but I haven't really run up against Bottle's limitations in any meaningful way that's led me to want to put the effort into switching. If you go the Python micro-framework route, though, it might offer you more growing room while still being super-simple.
posted by invitapriore at 11:08 AM on April 18, 2013

You might enjoy Build Podcast. She discusses a lot of web tools (amongst other things).
posted by backwards guitar at 12:18 PM on April 18, 2013 [3 favorites]

Also, I know we're mostly making cases for things rather than against them here, but Node.js just doesn't really seem appropriate for your needs. For a straightforward CRUD app without big concurrency requirements (and even then I'd probably look into other solutions first), I think you'll just have an easier time with something else, unless code sharing between client and server is really important.
posted by invitapriore at 12:38 PM on April 18, 2013

Maybe even just the read part is enough.

If that's true, HTSQL allows you to just describe the portions of your database you want to expose via a RESTful service and, voila, you're essentially done. Query the data using JavaScript in the supplied toolkit.

I'm not concerned about scalability, performance, or security; just a very simple CRUD (create, read, update, delete) application.

That is not a bad description of Django's built-in admin site generator.
posted by Monsieur Caution at 1:26 PM on April 18, 2013

I find micro-frameworks easier to learn than the monoliths that are Ruby on Rails or Django.

You also will get a better understanding of the language instead of relying on the syntactic sugar built into the large frameworks.

Try Sinatra for Ruby and Flask for Python.

Personally, I much prefer Flask to Django.
posted by wongcorgi at 2:29 PM on April 18, 2013

I've heard good things about Laravel for PHP.
posted by kirkaracha at 3:13 PM on April 18, 2013

CouchDB is a sort of database and webserver all at once, and is very, uh, "web native", with all interactions via json over http. If you've done anything with javascript it's fun to try out the tutorials.
posted by drwelby at 7:13 PM on April 18, 2013

« Older Expand DSl Ethernet Network By Taking Advantage of...   |   Last Played and Play Count tags not updating in... Newer »
This thread is closed to new comments.