6 ms·
Ask HN: What web framework(s) do you guys use?
What web framework(s) do you guys (and girls) use? And why not their competitors?
- noodle 18y agocodeigniter and rails. rails because, well, its rails. building something out is typically quick and easy. codeigniter for those cases when i need to get my hands dirty on a lower level and do some non-standard things. its a minimalist framework that doesn't add much bloat, overhead or other things in your way. i kind of mentally compare it to java and c.
- rickharrison 18y agocodeigniter and more recently kohana. I like codeigniter a lot because you have more control over things. Frameworks that get things done extremely fast are nice, but I like to have more control over things. And Kohana was modeled after codeigniter, but in completely PHP5, which is why I like it the most.
- thorax 18y agoCode Igniter is solid.
- abdulhaq 18y agoIf you do it yourself, does it count as a framework? Server: python, postgresql, cherrypy, simplejson Client: Javascript, HTML, CSS, Dojo, AJAX. All the HTML is loaded up front and then AJAX for all the rest. Dojo insulates me from browser quirks. TDD Python is what I use at work (and love) and is good for complex algorithms (language morphology, in arabic). I don't use an all-encompassing framework because I need total UTF-8 support and I feel more comfortable with the general tailorability of the lower-level libraries over the likes of Django, Rails.
- andrewljohnson 18y agoI use Django, but only for template inheritance and models - I pretty much leave the template language alone. 99% of the data from the server gets passed out as json.
- BinaryPie 18y agoI'll never understand why people use DoJo. Its greatest strength are all the "widgets" i guess you'd call them. However they are all not created equal. Some are well polished and deliver acceptable performance levels and other times they are just demos and hacks.
- knieveltech 18y agoDrupal.
- blender 18y ago+1
- yogione 18y agoDrupal all the way or combine with Cake or CI
- knieveltech 18y agoI'm not conversant with Cake or CI so I couldn't comment intelligently here.
- ezmobius 18y agorack, merb, sinatra and rails
- igorgue 18y agoDjango, because it has magical powers, who can beat that?
- siong1987 18y agoRails. Anyway, I am not saying that Rails is better. I am just wondering how magical Django is?
- cesqui 18y agohttp://www.djangopony.com/ http://www.djangopony.com/
- dmpayton 18y agohttp://hackety.org/2008/09/15/documentsRevealDjangoPonyTailOfLies.html http://hackety.org/2008/09/15/documentsRevealDjangoPonyTailO... (Also, read the comments for more fun)
- hbien 18y agoNothing girly about a horse. Nothing girly about a horn. Put them together, you have a unicorn.
- nostrademons 18y agoNothing horsey about a girl. Nothing horny about a girl. Put them together, you're horsing around with a horny girl.
- zaius 18y agoHah! Thanks for the new background!
- bmelton 18y agoI used to be pretty big into Zend. I didn't like ActiveRecord in Ruby, or it always felt too confining, and liked the additional control over my models that Zend gave me. I've recently become a Django convert (not for the pony, that was new to me just now) because the framework just works. I haven't quite worked out the magic required to stand up a Django/MySQL/Apache/Mod_Python server on Windows yet, but it's working perfectly in my VM, so I haven't pursued it very far yet.
- dylanz 18y agomerb/rails
- tptacek 18y agoRails, because I lost the Python vs. Ruby argument, and now we're all converts.
- tocomment 18y agoI'm in Python. I'm happiest just doing import cgi ... I always feel guilty though.
- randallsquared 18y agoIf import cgi works for you, it's great. I love simplicity.
- pwoods 18y agoTop Down Programming BABY! Seriously, just install smarty and do it yourself. Then somebody can always do a basic edit to the templates and you don't have to weight the merits of the 10000X different frameworks against eachother and get back to Making Money!
- edb 18y agoI'm a cakePHP user. It has gotten and keeps getting a lot better as of recent, and I really like the community. I looked into codeigniter after using cakephp for a while and it just seemed to have a lot less to offer. I tried symfony too and it seemed alot more complex, unnecessarily so. I'm currently dabbling in Rails and Django, but am going to put them down until I finish my current project, since there's nothing in either that I can't do in cake, as far as my project's requirements go. These are also a lot less portable than the PHP frameworks, which I find is a big deal if ever you want to lengthen your runway with client work. It's MUCH harder to get a quick 2-5k on a small webpage when the client hears "change hosting".
- xtimesninety 18y agoCakePHP for me too. I also use Zend Framework. I like both. CakePHP is great for it's simplicity, but if their conventions don't work for you try out Zend Framework.
- KrisJordan 18y agoI've been working on a PHP framework that is similar in the 'full-stack' approach of Cake but has performance characteristics of CodeIgniter. It's called Recess and can be found over at http://www.RecessFramework.org http://www.RecessFramework.org
- pwoods 18y agoWrite your own!
- tdavis 18y agoSure, maybe if you've never done it before because it's a learning experience, but it's a patently horrible idea otherwise.
- zepolen 18y agoIt isn't a horrible idea. Using a ready made framework all the time without regard if it's right for the job is a horrible idea. For some apps which have a certain level of complexity and require some extra flexibility, you end up wasting more time fighting the framework than getting the job done. It helps if you have a well defined standard in place, for python, that means WSGI. Coupled with good libraries, it's hard to beat.
- tdavis 18y agoRight, but that's not "writing a framework", it's "using existing libraries in conjunction with one another". There's no real "magic", directory layout rules, etc. Maybe you end up writing a couple scripts to tie them together or something, but it's hardly a framework. And in many cases, yes, it is a better choice than a framework. And still a better choice than writing your own framework.
- fauigerzigerk 18y agoSo that means frameworks shouldn't exist at all in your opinion?
- tdavis 18y agoErm, that's my opposite opinion, I guess. My (attempted) argument is that one should not write their own framework unless doing so as an exercise in learning. In any other case, using existing frameworks or using the "roll your own library mix tape" strategy is far more efficient. Basically, I'm saying if you're using a language which has mature frameworks and/or mature libraries which could be forged into an ad-hoc framework (templating, serving, ORM, etc.) it is terrible advise to tell people "just write your own". Only in the case that you've considered all existing (relevant) options and determined none of them meet your use case (and none can be minimally altered to do so) should you consider writing your own. Anything else is a waste of time and effort.
- sachinag 18y agohttp://www.qcodo.com http://www.qcodo.com, which now has been forked to http://qcu.be http://qcu.be
- SpencerDavis 18y agoDjango. It was a toss up for me between Django and Rails but at the time, the updated Rails book was not out yet and the Django book was. And Django has a magic pony. http://djangopony.com/ http://djangopony.com/
- bonaldi 18y agoWebObjects. I don't like Java, or Eclipse, which makes it an odd choice, but it was Rails before Rails, and still has a lot of advantages over it. The ORM works hand-in-hand with the framework to do proper persistence, and while I rage against the tools sometimes, they're still better than being dumped back at a texteditor. If only Apple would give it some more love, it'd be killer.
- coolestuk 18y agoWebObjects for me too :-) And I also don't like Java or Eclipse. But at least with DirectToWeb one can keep the Java code to a minimum.
- sjs382 18y agoI write my own mostly-modular parts. It isn't as flexible as I'd like it to be, but it does what I need it to do.
- st3fan 18y agoJava, so I prefer Wicket and like Stripes.
- rs 18y ago+1 for wicket. Used wicket for a while on xp-dev.com, but moved to a home grown one as wicket was a tad bit too bloated. But I really like how wicket is component based, and have used it successfully for other project (all intranet based ones though - so don't really have many publicly accessible examples)
- bdittmer 18y ago+1 for Stripes. It's like WebWork/Struts 2 without the XML configuration headaches.
- klon 18y agoWhen using Java, I prefer Stripes. For a new project I would definately use Python and Django.
- cstejerean 18y agocompojure - best option in Clojure so far.
- robertdempsey 18y agoI like Rails with my Ruby.
- shutter 18y agoPylons. http://pylonshq.com/ http://pylonshq.com/
- shadytrees 18y agoSeconding. The ability to use SQLAlchemy and Jinja2 is fantastic; I personally think they're better than Django's ORM and templating system.
- cnu 18y agoMe too. Was previously using Turbogears.
- amix 18y agoIn the recent years I have built my own, mostly basing it on other libraries and reusing as many things as possible. In Python there's something called WSGI (Web Server Gateway Interface) which makes it trivial to implement your own framework. Around 2 years ago I wrote a blog post about WSGI and how to quickly build a Python framework http://amix.dk/blog/viewEntry/105 http://amix.dk/blog/viewEntry/105 In the recent years WSGI has grown a lot. Check out wsgi.org for more info. One can learn a lot of things by making and using own stuff, but it can also be very frustrating (because of bugs and lack of resources). But generally, I like to use own my stuff and my own conventions - I know at least who to blame when some stuff does not work or something is "ugly" :)
- whiskeyjack 18y agoCGI::Application in Perl. Just to be contrary. Well, not really. I still love Perl. Nothing wrong with the alternatives... it's just what I like.
- dmpayton 18y agoI use Django when I need full-stack and CherryPy when I need something lighter. I've also used web.py.
- vegashacker 18y agoI use LeftParen (http://leftparen.com http://leftparen.com), a PLT Scheme web framework (that I happen to maintain).
- antiismist 18y agoLP here also. But you probably already knew that.
- leftnode 18y ago(shamless plug) My own (PHP5 framework) - Artisan System http://artisansystem.com/ http://artisansystem.com/
- zacharydanger 18y agoMore like "Fartisan"! Just kidding, I've been meaning to give Artisan a try. Where are the docs? Give me at least a nice tutorial on setting up a stupid blogging CMS.
- drhowarddrfine 18y agoNever used a framework and never will. I know how to code. I do my own sites and don't use others or have others do my work for me.
- ryanwaggoner 18y agoHaha...I assume you're kidding, right? Are you coding in binary? Because if not, someone else has "done your work for you" :)
- andreyf 18y agoCoding in binary on what? Unless you mined your own raw materials to build your machine, someone else has "done your work" for you. Not to mention where you'd get electricity...
- hs 18y agoi dunno why u got downvoted for just being different shrug
- kenver 18y ago
- staunch 18y agoCatalyst with DBIx::Class (ORM)
- olegp 18y agoHelma NG: http://helma.org http://helma.org
- bdittmer 18y agoI'd like to hear some of your experiences using helma!
- olegp 18y agoI decided to give Helma a go because I like the idea of being able to re-use server side code within the browser and also because it should make it easier for others to extend the web application with plugins without having to learn a new scripting language. I've been using Helma NG, rather than the stable Helma 1, so my comments are specific to that. The dynamic nature of the language makes a huge difference. Both Helma and Grails (which you mentioned) feel like a breath of fresh air after working in Java with frameworks such as JSF. It's much faster to get things done, but I do miss the debugger and IDE integration. Helma NG takes a new approach to managing scopes and I've found it easy to organize code into modules like in Python. Helma NG is still work in progress, so parts of it keep changing, which I've found to be a bit of a problem. However, since most of it is in JavaScript and the framework is very lightweight, it is easy to wrap around the parts of a module you want to remain fixed. I prefer Grails' GSP tag syntax to Helma macros, so might try to add support for that at some stage. I'm using CouchDB for persistence and have been writing my own abstraction layer on top of that, so can't really comment on the SQL/Hibernate module. Performance seems good, but I haven't run any benchmarks. The community is relatively small, but very responsive. The documentation is there, but there are few examples. However, most of the code is self-explanatory. So, to summarize: Helma NG is perfect for what I'm doing, but isn't yet stable enough to be used in place of Grails for a more traditional webapp. Helma 1 might be more appropriate for that. What have your experiences with Grails been like?
- bdittmer 18y agoLike your experience with Helma, Grails has also been a breath of fresh air. My biggest gripe with building web apps in Java is dealing with all the dependencies, setting up a project structure and making all the frameworks play nicely together...with grails none of those headaches exist...all the stuff you'd usually use is integrated nicely into a project and with almost zero configuration. The community is very responsive and new plugins are released on a weekly basis. I definitely recommend any Java developers out there take a look.
- tlrobinson 18y agoCappuccino. Because we created it. ;)
- boucher 18y agoPlus jack and roundabout (ports of rack and sinatra to javascript), because we created those too :) http://github.com/tlrobinson/jack http://github.com/tlrobinson/jack
- durbin 18y agohttp://symfony-project.org/ http://symfony-project.org/
- maxwell 18y agoAppJet. Jaxer was a bit buggy when I used it over the summer.
- apu 18y agohttp://webpy.org/ http://webpy.org/
- russell 18y agoI just inherited a massive enterprise application; you know run a brick and mortar company on it. It's not a one-off; a number of companies use it. The stack is Jboss; Spring; Hibernate; Struts; XML gluing it together; Javascript: prototype, JQuery and others; Flex and granite; Vestiges of every Java framework fad of the last 10 years. Maybe I exaggerate, maybe not. It is way over-engineered. Several times as much code as a Django, Pylons, or Ruby solution. I dont recommend going this path at all, even if you are an enterprise.
- dw0rm 18y agowebpy (http://webpy.org/ http://webpy.org/) is very lightweight and hackable
- omouse 18y agoI've tried Django and now I'm trying Seaside.
- cstef 18y agoAnyone using yii? It looks interesting to me, but I have not had a chance to give it a whirl beyond the basic application tutorial. http://www.yiiframework.com/ http://www.yiiframework.com/
- vyrotek 18y agoAsp.net MVC - Because C# is the best language
- dazzawazza 18y agoturbogears
- rob 18y agoKohana.
- Ferdi 18y agoDrupal and Rails
- marram 18y agoDjango with Google App Engine
- lsb 18y agoRuby + Sinatra for now. It's great for tiny services that work together. A full web service to implement '/add/1/2' is just require 'sinatra'; get('/add/:a/:b') { params[:a].to_i + params[:b].to_i }
- boucher 18y agoSinatra is definitely an interesting project. We recently "ported" it to JavaScript: http://github.com/tlrobinson/jack/blob/030685ef3de4c29c38b4e2ce22f638b698532b2b/lib/roundabout.js http://github.com/tlrobinson/jack/blob/030685ef3de4c29c38b4e... The same webservice would be: roundabout.route({ path:"/add/{a}/{b}", get: function(){this.body = this.wildcards["a"] + this.wildcards["b"];} }) or, alternatively: roundabout.get("/add/{a}/{b}", function(){ this.body = this.wildcards.a + this.wildcards.b; }); The first syntax is a tad longer, but its much more useful; you can define any method with the name of an HTTP verb for that path, and you can also define a filter parameter that will be queried before the path is matched. The filter lets you do whatever pre-processing you want, so you could filter out requests from a specific user-agent for example, or all URLs that use mixed case, or anything else you can think of.
- lsb 18y agoThat looks really cool; how's that been working out? Is that in production? If Ruby had Gambit Scheme's serializable continuations, that would be pretty interesting times.
- boucher 18y agoWe're not yet using it in production, its only a few weeks old, but we will be in some of the things we're working on. One of the main benefits is letting us run objective-j and cappuccino on the server, letting us share application data models in the client and the server.
- jonknee 18y agoDjango when I get to and CodeIgniter when I have to.
- breily 18y agoI used to use Django, tried cherrypy and web.py, and have ended up starting to write my own (http://github.com/breily/juno http://github.com/breily/juno).
- auston 18y agoI mess with Rails, dabble in Django & work in CodeIgniter. Also fun - merb, cakephp, symfony, web2py
- jcady 18y agoI can't believe the number of web frameworks out there. If anything the amount of comments just illustrates how easy it is to roll your own.
- aschobel 18y agoStruts2. Very lightweight and its gets out of your way. Since it is Java we get to leverage some of the incredible Java libraries out there like Guice. We've tried a few other frameworks. We build our prototype in web.py. Very simple, but I couldn't get used to not living in IntelliJ. We tried a previous project in Rails, but it did too much 'magic' for us and the scaffolding seemed a bit too brittle. To be fair the last time I used Rails in production was in the 1.1 days, so it's been a while.
- lux 18y agoI wrote my own CMS/framework which I started about 8-9 years ago, so I use that. In my main business I sell a "pro" version of it as well as customization/hosting/etc, and naturally it's also the framework I use for my startup too. For those that are interested: http://www.sitellite.org/ http://www.sitellite.org/ It's in PHP 4/5, GPL licensed, decently clean code (in 8 years there's obviously some cruft at this point :), but also has a few nice things built-in like a full CMS on top of it, multilingual support, a couple dozen modules that save some time, ORM library, and the ability to setup A/B tests just by editing a page, which is starting to come in handy these days. Some challenges of rolling your own are that you have to write the documentation, and provide support/training/whatever else since developers aren't likely to be familiar with it (unless it's open and gains popularity). Some things to consider when weighing your options... :)
- debt 18y agoDjango on AppEngine. Really fast turnaround and scaling is all taken care of(or will be).
- moe 18y agocherrypy and sqlalchemy. and closely looking at werkzeug for future projects.
- mpc 18y agojQuery. Rails.
- schtog 18y agowebpy because it is minimalistic and very clean and easy to use. I have aslo played around a little b it with compojure+clojure.
- jamongkad 18y agoPython - Web.py no magic you know what's happening. PHP - CodeIgniter same thing.
- modoc 18y agoSeam because I'm a Java guy at heart and Seam is a pleasure to work with.
- lo_fye 18y agoZend Framework + Propel, yo.
- gommm 18y agorack, merb and rails...
- jamesbritt 18y agoRamaze. Feels most Ruby-ish for me.
- mindaugas 18y agoramaze ! and that means rack -> ruby
- rociiu 18y agoRails, Django
- cottsak 18y agoaspnet mvc. current project - http://ksischool.com http://ksischool.com
- booboo 18y agoIt would be nice if someone would define exactly what a framework is. I mean, we're not all brilliant.
- twotimestwo 18y agoGood question. What _does_ constitute a framework?
- zby 18y agoCatalyst
- oscardelben 18y agoRuby on Rails is my primary framework. I've played a lot with Merb, but I'm happy that it will be merged with rails. In the future I want to explore web frameworks written in lisps (cl, scheme or closure)
- joshdavey 18y agoMy own php framework: http://github.com/joshdavey/madeam/tree/master http://github.com/joshdavey/madeam/tree/master
- invitro 18y agodjango, rails, codeigniter so far
- cookiecaper 18y agoPylons when I use Python - magic sucks, very easy to customize, fast turnaround and not so gargantuan that it takes forever to wrap your head around. CakePHP for PHP. Definitely the best PHP framework out there, in my opinion; fast, good installed base made out of all-star clients (Mozilla, Yale, others), not restrictive or cumbersome. Honestly, though, I try not to use PHP.
- robedw 18y agoIf using PHP Kohana, Really, really good php framework. Release cycles are a bit crazy and some of the lead devs are uppity but all in all it's good.
- whalliburton 18y agoWeblocks http://common-lisp.net/project/cl-weblocks/ http://common-lisp.net/project/cl-weblocks/
- bdittmer 18y agoGrails (http://www.grails.org http://www.grails.org). A rails inspired Groovy framework that uses big boy frameworks (Hibernate, Spring, etc.) under the hood.
- apinstein 18y agoI wrote my own for php, http://phocoa.com http://phocoa.com. After I learned to write Cocoa apps for the mac, I realized I needed a similar framework for web development, so I wrote phocoa. PHP as a language is kinda bumming me out since I've learned about new techniques like functional programming, closures, etc from Javascript and playing with Ruby. If PHP 5.3 doesn't seem like it's on the right path, I may switch to another language...
- jaxn 18y agoI use Rails for my bigger project, but I kinda like Google's webapp (the default on AppEngine). It is enough, and I assume it works the best of any framework on AppEngine. One of my projects is a location-based role-playing game for mobile phones that we will be launching soon. The entire game engine is hosted on AppEngine and uses the webapp framework.
- sidonei 18y agoI use cherrypy + SQL objects + Cheetah, cause that way i choose what components i want to handle all the general components of a webb app(http reqest/respose, ORM and templating) Also i know exactly how things happen so that makes me feel comfortable ... ie as you guys call it less magic :)
- jpcx01 18y agoMerb. For me it has all the benefits of both Django and Rails, and is ultra clean and hackable.
- webmaven 18y agoZope: http://zope.org http://zope.org Although I am also currently experimenting with App Engine: http://www.webappwednesday.com http://www.webappwednesday.com
- rodrigo 18y agoJSPs, Servlets and POJOs. Im a complete beginner so im trying to learn the basics first. Im very aware of some Java shortcomings but I like the fact that I can get responses from thousands of books, tutorials, and the web. A bunch of Python frameworks looks very nice though, and the languaje also, but Im required to use Java for now : (