×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Ask Slashdot: One Framework To Rule Them All?

timothy posted more than 2 years ago | from the what's-your-least-displeasure? dept.

Programming 287

New submitter ittybad writes "I work with a small web-based company, and, for some new web applications, we are looking to possibly change frameworks if it will be a benefit to our developers and our customers. We have experience with PHP's Symfony 1.4, and are not happy with what we are experiencing with Symfony 2.0. We have some Ruby guys who would love us to implement a Ruby on Rails solution, and our backend is Python powered — so maybe Django is the way to go. So, I ask you, Slashdotters, what web framework do you find to be the best and why? Why would you avoid others?"

cancel ×
This is a preview of your comment

No Comment Title Entered

Anonymous Coward 1 minute ago

No Comment Entered

287 comments

Duh (5, Funny)

masternerdguy (2468142) | more than 2 years ago | (#38264694)

One tool to rule them all: Assembly.

Re:Duh (3, Funny)

Ginger Unicorn (952287) | more than 2 years ago | (#38264732)

the sharpened flint of programming tools

Re:Duh (-1, Troll)

BrokenHalo (565198) | more than 2 years ago | (#38264872)

Sharpened flint?

Hardly. Consider the most finely sharpened straight razor: an instrument that is capable of the finest precision, but which can also pretty nearly cut your head off if you're careless.

Flint is extremely sharp (4, Informative)

Anonymous Coward | more than 2 years ago | (#38264986)

Correctly flaked, flint is MUCH sharper than any straight razor you can find. We don't use flint in for example atomic force microscopes as tips (instead of say steel) for nothing, you know.

You may think stone age people had just stones for tools, but their flint blades were sharper than any steel (or even soft iron) blade you can get.

I find that comparing assembly to flint is extremely apt. Especially so when you consider the fact that our circuits use a silicon substrate. You do know what flint is, right?

Re:Flint is extremely sharp (0)

angel'o'sphere (80593) | more than 2 years ago | (#38265780)

Correctly flaked, flint is MUCH sharper than any straight razor you can find.

That is incorrect. Flint is *jsut as* sharp as any steel scapel. The reason that flint is used in scalpels etc. is that the wounds heal better due to the different kind of the sharp edge.

Re:Flint is extremely sharp (0)

Anonymous Coward | more than 2 years ago | (#38265856)

I believe you mean obsidian?

Re:Duh (0)

Anonymous Coward | more than 2 years ago | (#38265002)

A unsharpened flint. A fine tool in the right hands but looking at it the first thing that comes to mind is beating your own brains out.

Re:Duh (1)

John Courtland (585609) | more than 2 years ago | (#38265688)

Nah. At the level of abstraction you're operating at w/ asm you're not going to do too much damage if you cock up. With something like Lisp or Haskell, where you're composing compositions of abstractions of lazy sequences of whatever else... it gets easy to fuck a lot of stuff up really quickly.

Re:Duh (4, Funny)

khr (708262) | more than 2 years ago | (#38264752)

One tool to rule them all: Assembly.

An Assembly Server Pages framework, HTML with embedded assembly for processing stuff?

Re:Duh (0)

Anonymous Coward | more than 2 years ago | (#38264800)

Nothing can be faster or more secure than embedding assembly into web pages.

Re:Duh (4, Funny)

KiloByte (825081) | more than 2 years ago | (#38264950)

That would go against the whole idea -- you're supposed to write to the network card's ports directly. The instructions you want are IN and OUT. You can do better than to use an existing inefficient IP or TCP stack.

I guess some soldering iron monkeys will try to dismiss me for not going closer to the metal, though.

Re:Duh (5, Funny)

Smallpond (221300) | more than 2 years ago | (#38265146)

The questioner asked for the "best" framework without defining what best meant, so we can pick whatever criteria we want.

Assembly is best if you want highest speed and smallest memory size but don't care about development time.

Personally I would write everything in Perl, because my criterion would be highest job security.

Re:Duh (3, Insightful)

Anonymous Coward | more than 2 years ago | (#38265888)

Assembly is best if you want highest speed and smallest memory size

Until you realize that you're not better than a C compiler.

Re:Duh (2)

BrokenHalo (565198) | more than 2 years ago | (#38264822)

One tool to rule them all: Assembly.

Well, you could cut him a little slack: FORTRAN will probably be just fine. And yes, of course I'm aware that anything that can't be done in FORTRAN can (and should) be done in Assembly. And, of course, that if it can't be done in Assembly then it isn't worth doing... :)

Re:Duh (2)

GameboyRMH (1153867) | more than 2 years ago | (#38265206)

You joke but Facebook has some in-house tool that converts PHP directly into x86 code, and then this is what actually runs when a page loads. I don't know what mechanism they use to pass the URIs to the executables but it would be most efficient for the http server process to do it directly, eliminating the PHP server entirely on the production site.

Sounds Like Cake is the way to go (5, Informative)

Ash Vince (602485) | more than 2 years ago | (#38264698)

If you have an existing base of PHP and Ruby developers then Cake sounds like the way to go to meet them both in the middle so everyone can pick it up fairly quickly. Cake is based on many of the same concepts as Ruby on Rails so everyone should be fairly at home. It is still PHP though so it won't force all your dev team to write better code as much as RoR will. The flexibility of a PHP base can be a plus though unless it is put in the wrong hands.

http://cakephp.org/ [cakephp.org]

Personally I am struggling through my first Zend Framework Project at the moment but I am not sure I would recommend it as it has caused me a few too many frustrations. I do worry that this will just knock all the other PHP Frameworks into the long grass though as it is by the same people as PHP. I am starting to see quite a few job offers coming my way now I have added Zend Framework to my CV so it does seem to be very popular for some reason.

I just noticed you also mention having a Python powered backend, this may change my advice above but it does bring about another question: Do you really need so many different technologies? Surely this must drive up your costs considerably as you need developers with a much wider skill set or more of them.

Re:Sounds Like Cake is the way to go (0)

Anonymous Coward | more than 2 years ago | (#38264786)

Note that Li3 is the next version of Cake, so of you choose Cake, consider going directly to Li3 instead.

the cake is a lie (5, Informative)

ircmaxell (1117387) | more than 2 years ago | (#38264894)

I couldn't disagree more. Cake is loaded with deeply awkward black magic and bad practices. Not to mention the fallacy that the model layer is the orm (hint: in the rest of the world it is not). Cake is second on my list of frameworks to avoid (and most senior developers that I know agree). I would suggest you do the same. .

Cake is second to avoid? (1)

Millennium (2451) | more than 2 years ago | (#38264992)

If Cake is second on your list of frameworks to avoid, what's the first?

Re:Cake is second to avoid? (2)

ircmaxell (1117387) | more than 2 years ago | (#38265178)

The first on the list is one that isn't public yet. I know the lead dev on it and got an early preview. So out of the popular frameworks, it is number one to avoid....

Re:Cake is second to avoid? (0)

Anonymous Coward | more than 2 years ago | (#38265248)

Does the lead dev know that you are out to avoid it ?

Re:the cake is a lie (1)

Anonymous Coward | more than 2 years ago | (#38265204)

Cake, Django, Ruby, Rails, Python, Symfony, Li3...WTF?

They all should be called Yet Another Language.

Don't use Cake. Try Yii instead (5, Interesting)

Anonymous Coward | more than 2 years ago | (#38264984)

Don't use Cake. There's limited support for actually getting back true objects with their ORM, which means you can't really deal with an intelligent data object. I did a lot of heavy research on the subject last year for my web company and found that Yii Framework (http://www.yiiframework.com) really fit my sweet spot well.

My legacy code is/was all in PHP (up to 8 years of code), but I wanted the flexibility and advantages of a good object based, MVC system that I could fit over top of my legacy code and upgrade as I had time (without having to do an entire rewrite of the code from scratch).

If you mainly do small one-offs that don't require much ongoing work / maintenance, then either RoR or Django would work fine. But if you already have a sizable code base, the benefits of using a framework in the same language is noticeable. I keep finding new things I can do with Yii after a year that make me faster and faster. Haven't run into any needs that haven't already been planned for in the framework (compared to CFWheels, a Coldfusion Ruby-on-Rails clone I've been switching a client to, that while quite thorough, does have limitations I'm already hitting after a week). And the Yii forum is quite active and seems to have steady readership and input from the main committers. So wrinkles with the framework get resolved on a timely basis. It's been a joy coding in.

Good luck!

Re:Don't use Cake. Try Yii instead (0)

Anonymous Coward | more than 2 years ago | (#38265730)

+1

Yii is fantastic and well documented. Cake is not so great.

Re:Sounds Like Cake is the way to go (3, Insightful)

telekon (185072) | more than 2 years ago | (#38265062)

It is still PHP though so it won't force all your dev team to write better code as much as RoR will.

I sincerely hope this isn't being listed as a plus for using Cake. If "language/framework/methodology n forces me to write better code!" is ever heard as a complaint, the source of said complaint is in the wrong field.

That being said, Ruby and/or Rails doesn't force anyone to write better code. I have seen some crawling horrors perpetrated in Ruby that have kept me up nights. They do facilitate the writing of better code quite nicely. Whereas PHP doesn't do anybody any favors. Ever. PHP WTFs are generally of the "never sleep again" variety. The Cthulhu of WTFs.

Re:Sounds Like Cake is the way to go (2)

truthsearch (249536) | more than 2 years ago | (#38265502)

I have to disagree with the Cake recommendation. I've tried many frameworks and watched presentations from some of their creators. Using Cake you'll often end up writing just as much code as if you didn't use a framework at all, which defeats one of the reasons for using a framework in the first place.

At my company we use a custom PHP framework. But if your backend is Python anyway, I recommend Django. It's especially good if your front-end is just a CMS. Even if it's much more than that, Django leaves you open to do as much custom code on top of it as necessary without getting in your way.

Drupal (3, Interesting)

stoolpigeon (454276) | more than 2 years ago | (#38264704)

Re:Drupal (5, Funny)

bluec (1427065) | more than 2 years ago | (#38264728)

Sure. And a chisel can be used as a screwdriver.

Re:Drupal (0)

stoolpigeon (454276) | more than 2 years ago | (#38264818)

Usually it is the other way around, but I think the comparison is unfair here. Drupal is more of a platform than a CMS. It's all a matter of how far you want to be on the continuum between coding it yourself and having something to build on.

It wont work for everybody, nothing does, but I think it would work for a lot more people if they looked at it.

It's funny, it's practically impossible to break a screw driver by using it properly. When you see a broken screw driver, usually somebody tried to use it rather than the proper tool. (That has nothing to do with the current discussion, your comment just brought it to mind.)

Re:Drupal (5, Interesting)

mouf (1849592) | more than 2 years ago | (#38265140)

Actually, when looking for a framework, having a look at Drupal is not that stupid. I must admit I have a love-hate relationship with Drupal. It comes with a set of restrictions, but you have a website out-of-the-box to start quickly: a nice templating engine, an easy way to add static pages, a way to manage users... and it has several thousands available module to easily add functionalities, which is unprecedented

Now, in my opinion, the real problem with Drupal is that it does not rely on the MVC pattern, and most developers are used to that. Also, it is not object-oriented!

At my place, we have developed an MVC framework that we can plug to Drupal. This way, we get the benefit of Drupal and all its modules, and when it comes to pure PHP development, we have a nice MVC framework instead of those bloody Drupal hooks. If you want to have a look:

It is released as open-source, it is functional, but documentation is not complete yet so I would not recommend using it until we finish the documentation (probably in January).

Re:Drupal (1)

SurgeryByNumbers (726928) | more than 2 years ago | (#38264860)

Drupal is my favorite PHP framework. It is has a very developer-oriented community and supports many great and powerful features right out of the box. It also doesn't force you to reinvent the wheel (form validation, success and error messages, http response code handling, logging, and so on). It is "opinionated" and I like it that way.

I dislike Zend for many reasons, but most importantly it's very difficult to discern what the "right" way to do anything is, and choosing poorly will typically bite you in the ass later. For example, not using the Zend menu system will cause trouble when you want to make a breadcrumb or do translation. Random internet blogs may get you to *some* solution, but usually not the correct one. The Zend form system is extremely convoluted compared to Drupal.

A caveat: there is definitely a learning curve to Drupal. Less so than Zend in my opinion, but you will definitely have many new things to learn before you will be efficient. Unlike with Zend, the correct way to do most tasks is well-documented in Drupal and has examples.

Re:Drupal (0)

Anonymous Coward | more than 2 years ago | (#38264882)

Yeah sure then you could spend even more time fighting Drupal and trying to figure ways round it to do what you want than Zend or Symfony

Re:Drupal (1)

KoolyM (602345) | more than 2 years ago | (#38265066)

It can, but if you're building web apps instead of web sites with a little custom functionality it will make your life needlessly difficult.http://ask.slashdot.org/story/11/12/04/2227209/ask-slashdot-one-framework-to-rule-them-all#

Go where your expertise is (4, Insightful)

buchner.johannes (1139593) | more than 2 years ago | (#38264708)

If people in your group already love RoR, it's best to go with their expertise. Technically, there isn't enough difference to make it matter.
Backends are virtually always in a different language than frontends (not that that's a good thing, but it shouldn't worry you too much).

Re:Go where your expertise is (1)

Bill_the_Engineer (772575) | more than 2 years ago | (#38264850)

Agree. One of my systems uses Perl as a backend and RoR for the web interface. The Perl glues some C code and Fortran together.

Re:Go where your expertise is (0, Funny)

Anonymous Coward | more than 2 years ago | (#38265114)

Have you considered assisted suicide? It seems like one only way left for you to die with dignity.

Re:Go where your expertise is (3, Funny)

Bill_the_Engineer (772575) | more than 2 years ago | (#38265278)

Have you considered assisted suicide? It seems like one only way left for you to die with dignity.

Why? My bank accepts my pay checks.

I like (1)

lucian1900 (1698922) | more than 2 years ago | (#38264714)

Flask (Python), Pyramid also looks ok. Django I've come to dislike. Noir (Clojure) is also nice.

Re:I like (0)

Anonymous Coward | more than 2 years ago | (#38265620)

I liked Noir before you even knew it existed!

Wt (4, Interesting)

paugq (443696) | more than 2 years ago | (#38264720)

Wt [webtoolkit.eu] is the best one I have tried. I use the C++ version, although there is also a Java version (JWt [webtoolkit.eu] ).

What makes Wt unique is its approach: widgets. You develop web applications like you were developing desktop applications. Also, the API is Qt-like (but using Boost).

I gave up on Rails after I used Wt.

Want a virtualization console? Take Wt, libvirt and an HTML5 VNC client and you are done.

Need Active Directory authentication? Wt, Samba (or Windows APIs if you are on Windows), done.

Streaming? Wt, ffmpeg libraries, done.

Forgetting about bindings and being able to use the millions of C/C++ libraries out there was a huge relief.

Re:Wt (1)

icebraining (1313345) | more than 2 years ago | (#38264830)

But if their backend is already in Python, why would they gain by being able to use C/C++ libraries?

Re:Wt (1)

Anonymous Coward | more than 2 years ago | (#38265232)

Several orders of magnitude performance gain?

Re:Wt (2)

icebraining (1313345) | more than 2 years ago | (#38265816)

That depends on the impact that the frontend has on the whole system; if it's small, 9 hours optimizing the Python code might be more valuable than 90 learning C++ and a new framework.

Programmers waste enormous amounts of time thinking about, or worrying about, the speed of noncritical parts of their programs, and these attempts at efficiency actually have a strong negative impact when debugging and maintenance are considered.

-- Knuth

Re:Wt (1)

chrb (1083577) | more than 2 years ago | (#38265320)

Echo [nextapp.com] is similar, but written in Java. It uses widgets and everything runs on the server side. The client side is just a Javascript program that draws the web app components. Very fast to develop in. I'm hoping that we will see some nice work coming out of Broadway [youtube.com] - the HTML5 backend for GTK. Native apps, written in whatever language you want, straight to the web. There's a lot of advantage to keeping all the logic server-side in one persistent (I'm tempted to say "proper") application, and relegating HTML+Javascript to function only as a client-side display layer.

Re:Wt (0)

deniable (76198) | more than 2 years ago | (#38265400)

What makes Wt unique is its approach: widgets. You develop web applications like you were developing desktop applications.

Just like ASP.NET. It was designed to be web dev for VB programmers.

Re:Wt (0)

Anonymous Coward | more than 2 years ago | (#38265426)

ASP.NET is a bad implementation of a good idea of which Wt is a good implementation.
Up to you now to discuss based on actual facts.

Re:Wt (1)

paugq (443696) | more than 2 years ago | (#38265716)

Sorry but no. With ASP.NET you still have the concept of page, session, etc very very present. With Wt, you don't. It makes a huge difference.

answer is always "It Depends" (0, Redundant)

alen (225700) | more than 2 years ago | (#38264722)

look at the workload
find the tool to best do the job

if you want the same tool all around then find the one that will give you the least headaches all around or change the way you do things

Avoid Django (2, Interesting)

Anonymous Coward | more than 2 years ago | (#38264724)

If you can, avoid Django - it's a powerful framework, and fairly flexible, but when trying to set yourself up with it, the documentation is very poorly written and organized. We tried using Django for a quick project for an academic assignment - it was nothing short of downright painful. The configuration was very touchy, and the code rather long compared to the equivalent Ruby code.

This is just my opinion based on when I was trying to get myself into Django - and I didn't like it.

Re:Avoid Django (2)

troon (724114) | more than 2 years ago | (#38264960)

As a counter-point, I built my web app on Django after messing with PHP for too long, and love it. It's clean, easy to understand and the documentation is pretty good - although I agree it could be better, but then it's free and I can contribute... My app has been Django-powered for four years now and is fairly complex from a data point of view.

No silver bullet (0)

Anonymous Coward | more than 2 years ago | (#38264756)

I got the pun in the title but there is no framework that's good for everybody in every circumstance. But you're trying to start a flame war, right? ;-)

My 2 cents: forget PHP because it's too messy, use Java if you can spend a lot of time and money, use Rails if you want to deliver earlier, but in your case you might really want to stick with Python as on your backend. Actually I'd recommend to rewrite your backend with something different because Python's semantic indentation makes me sick, but that's really means going into flame wars.

This depends on your needs! (0)

Anonymous Coward | more than 2 years ago | (#38264768)

To be clear most frameworks are relatively easy to work with the problem comes in what your end purpose is. Is your site very high traffic? That can rule out a lot of frameworks.

- How fast is your company growing?
- How easy is it to switch away from this framework if you need to? etc.
- How active is the framework community?
- Does the framework self document?

The best thing to do is develop a road map of your goals for the site in the next five years. That should help eliminate about half of the offerings. It sounds like you have a solid set of developers do have a Python powered backend and the organization enough to even have a framework already in place. I don't code in PHP but frameworks like Model Glue (coldfusion) self document... meaning you can run scripts and see every function, etc so you don't have to spend tons of time writing up boring tech docs.

CI (3, Insightful)

Tom (822) | more than 2 years ago | (#38264836)

My personal framework of choice is CodeIgniter, though if you have Ruby people on the team then you should definitely check CakePHP.

I like CI because it works, and it isn't as arcane as most of the other frameworks out there, meaning that if I want to write my own library, it is fairly easy to do so and I don't need to spend weeks digging through all the other crap first.

Also, it is fairly well documented, and that's very important.

Re:CI (1)

telekon (185072) | more than 2 years ago | (#38264968)

If you have Ruby people on your team, use Rails (or Sinatra/Padrino if you need less magic). I say this only because the Rubyists are going to spend more time flogging any other language into behaving more like Ruby than on actual domain problems.

On the other hand, if you choose a PHP or Python-based framework, one of them might come up with a really handy gem that lets you generate PHP or Python code from Ruby, and you could blog about it.

Not even trying to start a flame war, I'm a Rubyist, I work with Rubyists, and this post is intended as Ha Ha Only Serious based on my experience.

Re:CI (0)

Anonymous Coward | more than 2 years ago | (#38265080)

Another bump for CodeIgniter. I tried a bunch of MVC frameworks a few years ago and settled on CI. I've been using it ever since and have probably written 150k lines of it. The documentation is the best, it's the fastest, and IMO it provides the easiest transition into MVC PHP development. Everything is laid out logically and to me it just makes sense. The one knock on it in the past has been the lack of PDO support, but they just added it with the latest release. Avoid ORM in any framework to increase performance, though, and CI has no problem letting you write native SQL queries.

Re:CI (0)

Anonymous Coward | more than 2 years ago | (#38265326)

I would advise checking out FuelPHP if you get a chance. Codeigniter was brilliant, as you said, a year or two ago. It's since been really sluggish on features and the turn-around time on new apps is actually quite slow compared to Fuel. Fuel also offers HMVC requests, Modules (write an app once and move it from project to project), a markdown parser, redis/mongo support, and so many other great things right out of the box.

Re:CI (1)

znrt (2424692) | more than 2 years ago | (#38265396)

Avoid ORM in any framework to increase performance

oh my!

why not avoid frameworks alltogether to increase performance? (assumed learning to properly code and properly use the tools at you disposal the way they were meant to be used is not an option)

this thread has brought Wt to my attention which seems pretty interesting stuff. thanks for the info.

on the other hand, just glimpsed at CodeIgniter and was greeted by this on the website:
"Codeigniter is a web framework thta helps you write INCREDIBLE php programs!"
"Build a weblog in under 20 minutes!"

/me yawns and walks away.

to the OP: it would depend on your team being serious developers doing serious software or you just wanting to crap out cheap dumb fancy websites asap. in the first case you wouldn't ask this question. in the latter ... well, it doesn't matter.

Re:CI (1)

codepunk (167897) | more than 2 years ago | (#38265306)

Yes by all means, code igniter rocks for most applications, just enough framework, fast and stays out of my way.

Avoid frameworks (1)

Anonymous Coward | more than 2 years ago | (#38264838)

For large projects: Frameworks tend to bloat, reduce performance, and generally just get in the way with their many bugs.
I would use a framework for a small project only, or something special-case.

If you need to use a framework, maybe you should rethink how long something would take just coding it from scratch. You might be surprised it may take less time.

Re:Avoid frameworks (1)

icebraining (1313345) | more than 2 years ago | (#38264964)

That depends on the framework. There are multiple modular frameworks, where you only pay the penalty for the components you actually use. Pyramid [pylonsproject.org] , for example, follows that approach.

Re:Avoid frameworks (5, Informative)

james_van (2241758) | more than 2 years ago | (#38264980)

Agreed. Frameworks are nice, but I'm finding them to be very very very overused. Take a minute and really look at your project. Does it actually need a framework? Does the use of a framework save enough time in development to justify the additional overhead? If so, is that because you (or the people working on it) have been taught frameworks as opposed to learning actual programming (laugh if you want, I've met far to many people who know a bunch of frameworks, but couldn't write the most basic raw code if their lives depended on it), or because it actually streamlines the development process? The majority of the projects I've worked on haven't actually benefited in any way from the use of a framework when they've been properly evaluated. Not saying yours is the same, but make sure you take a good, long, objective look at it before you decide on something. My $.02, take it or leave it.

Just stay (5, Insightful)

cjpa (796302) | more than 2 years ago | (#38264854)

Why not stay with Symfony 1.4? It's a mature and well-supported framework. We have been playing with Symfony2 ourselves at my current job, but decided to keep using 1.4 until the formgenerators of Symfony2 are a bit more mature.
Of all the php-frameworks i've worked with, Symfony 1.4 still makes me most productive.

Django/On Rails (0)

Anonymous Coward | more than 2 years ago | (#38264934)

I'd say Django, but since you have some Ruby on Rails lovers, go for it.

Catalyst with perl (0)

Anonymous Coward | more than 2 years ago | (#38264936)

Catalyst http://www.catalystframework.org/ [catalystframework.org] with perl - everything else are toys.

It is hard to explain the power to people still playing around with other tools. If Catalyst scares you, Dancer http://perldancer.org/ [perldancer.org] is an easy beginner step.

Catalyst doesn't force you into anything.
YOU decide how to do things.
YOU make your "best practices."
No limits.

These choices can be bad for people who like to be told what and how to code. If you'd listened, then you're probably using .NET something anyway.

Rapid protoyping isn't just an empty name (1)

vlm (69642) | more than 2 years ago | (#38264944)

Rapid prototyping isn't just an empty name. I've noticed a strange hesitation to use rapid prototype frameworks to rapidly prototype something and see what happens.

Its not Java; you'll have something up and working in a day or less. Try them all for a short period of time, see where you're "stuck"/"working" for each platform, then decide which to pursue. Last time I tried this, the optimum framework where I am, for the in house internal app I was working on, was RoR. Your mileage will vary.

The only thing worse than "wasting" a couple days doing research, is having to scrap weeks/months of development merely to switch to something else. Don't get hemmed in too early.

no love... (1)

Canazza (1428553) | more than 2 years ago | (#38265014)

what? No love for ASP.net?

Kidding aside, why would you avoid any framework if it gets the job done? Limiting yourself to one solution only limits what you can get done. Why drop Symfony 1.4 at all when it works for you? (honestly I don't know, I've never used it, or 2.0)

If it's RAD your after, personally, I can't think of anything better for it than MVC in ASP.Net. Sure it might be slow and bloated, but when your balance that against the fact you can build a working system in an afternoon it's nothing to be sniffed at.

However, that would require learning C# or VB, and since you don't have that in your skillset, it's probably not going to happen. As a few people have said above, Drupal is more like a framework than the CMS it started out as, and I've used it before (although, I admit, not for a few years) and was reasonably happy with it back then. You already have the skills required to develop for it and it's got a decent community to help you over any stumbling blocks.

Re:no love... (-1)

Anonymous Coward | more than 2 years ago | (#38265074)

Fuck you microfag

Re:no love... (3)

shadowrat (1069614) | more than 2 years ago | (#38265098)

I second the bid for MVC. I've always found the IIS/sql server/.net pyramid to be powerful, stable, and easy to use. Plus it's easy to integrate with all sorts of newfangled toys like mongodb.

in b4 girigiriphp shit spam (-1)

Anonymous Coward | more than 2 years ago | (#38265024)

In b4 unity100 spams his GiriGiriPHP shit framework.

The most PRO TIP of all: NO FRAMEWORKS! (0, Funny)

Anonymous Coward | more than 2 years ago | (#38265036)

Seriously. If you start out thinking about frameworks, you're already on the wrong path.
A framework is basically a set of libraries that have formed a cabal. Because they are only working with each other, and you always have to deal with all of them.
It goes so strongly against the basic concepts of modularity and re-usability, that I call them an anti-pattern.

Don't limit yourself. Instead find yourself a nice set of libraries. with as few layers as possible between you and the hardware (without losing in elegant abstraction), that can be used however you please. There is no one-size-fits-all. If it turns out to be best to build it in modules consisting of a PHP web interface, a Haskell server, a C++ rendering engine with a bit of Assembler, a Java phone client, a JavaScript web client, and a million Chinese workers, then so be it!

Re:The most PRO TIP of all: NO FRAMEWORKS! (1)

g4b (956118) | more than 2 years ago | (#38265418)

I disagree partly.

i would not call every framework nowadays just clutter, since frameworks with bad APIs already lost a lot of influence in the last 10 years.

libraries are not written only by single individuals, they have communities behind them.

however, what the typical cluttered "framework" of yesterday was, becomes more and more the "CMS" of any sort. Thats an example, why you should not use php "frameworks" - because they are not frameworks.

django however is well made, you can use it as libraries and set it up as thin framework in nearly every python app, taking your ORM with you anywhere you go. Since I DID do database stuff by myself, I would say: dont think in frameworks, if the project ist PERSONAL. Since in personal projects, your aim is to be creative and learn. frameworks should not be learned, they should be fastly usable.

And thats where I draw the last conclusion: frameworks have improved, because many of them offer a fast "first glimpse" into their apis and coding styles, and do not try to invent a new code style alltogether. e.g. many say prototype is better in its core API than jquery. but jquery is hell of easier to learn, since it does not modify javascript too much.

Use frameworks and libraries as much as you can in your daily work - dont let pride stay in your way, but do not use it for your creative work - dont waste your time learning how to modify something big, if you just want to create something new.

Kohana Just Works. (0)

Anonymous Coward | more than 2 years ago | (#38265070)

I've been a longtime fan of Kohana (PHP) for two reasons:
It's PHP 5.3+ Required.
It does only as much as I need it to out of the box, and then easily extends however I best can.

In addition to that - it employs good coding standards which can easily be mimicked by reading through the code to - erm - encourage - your team to write nice, clean PHP. :)

Use Grails - Ignore your RoR zealots (2, Informative)

Anonymous Coward | more than 2 years ago | (#38265078)

As someone that's done web application development in PHP, Java, and Grails (and looked at Ruby on Rails and Scala/Lift), here's what you should be using:

1) Grails
2) Grails
3) Grails
4) Java + Spring / Spring WebMVC

Symfony and Cake try to be full-fledged frameworks but fall short (see other comments.) CodeIgniter is the assembly language of frameworks. You can make any of them work, but I'd still switch to Grails.

I suspect there's nothing wrong with Python/Django, but I've never dealt with them as enterprise-class software companies generally don't seriously consider them.

Frameworks not worth using:

1) Ruby on Rails. The first 30 pages of the Ruby on Rails book I read were pretty damning, if you need anything resembling scalability.
2) Scala/Lift: Yeah, Odersky can make it work, but there's waaaaay too much syntax in Scala and Lift to make anything maintainable after about 3 months. (IMO most of this is due to implicit conversions: requiring four days to figure out how one line of Lift code works means it's unproductive at best and says a lot about the language and library writers.)

Re:Use Grails - Ignore your RoR zealots (1)

Per Wigren (5315) | more than 2 years ago | (#38265788)

Instead of Lift, checkout Play [playframework.org] (make sure you watch the screencast)! Scala support is currently a plugin [playframework.org] but will be the first choice language in Play 2.0 [playframework.org] (currently in beta), and it has commercial support [typesafe.com] available.

Basically, it's Ruby on Rails for Scala and Java.

Re:Use Grails - Ignore your RoR zealots (0)

Anonymous Coward | more than 2 years ago | (#38265794)

If you're going to use Scala just use Scalatra. It's very easy to use.

Pick from the toolbox (1)

Sez Zero (586611) | more than 2 years ago | (#38265086)

You should pick from the toolbox; the best framework or tool for the job is the most appropriate for the job, not the most buzz-word compliant or necessarily the last tool you used.

That and "Don't Reinvent the Wheel."

Re:Pick from the toolbox (0)

Anonymous Coward | more than 2 years ago | (#38265514)

But the only "tools" in a Rubyist's toolbox are their skinny jeans, emo glasses, and their overpriced Apple hardware.

If you do Java (1)

volkram (1283062) | more than 2 years ago | (#38265150)

I know that this particular article references php in the server. But if you are more accustomed to java then I have truly enjoyed GWT with SmartGWT. The SmartGWT guys offer a paid version, but I just mashed together Google's RPC with SmartGWT's widgits. Check the showcase [smartclient.com] , if you are interested.

Chuck Norris... (1)

kimptoc (151988) | more than 2 years ago | (#38265196)

*tongue in cheek*

It has got to be the Chuck Norris Framework (get it while you can, it wont be around for long, once his lawyers get wind of it)

https://github.com/chucknorris :)

Django or Rails (2)

g4b (956118) | more than 2 years ago | (#38265272)

I have this discussion frequently with customers.

If you have people dedicated - use your people to let them use what they think it's best. If they like the adventure, you can also invite them to explore something else. You have to know, do they like the tech because they are geeky about it, or do they fancy the tech, because they are fanbois with big egos? First group I would let convince me of Ruby for the project and give it at least a try, for the second, I would wait until those programmers mature, and consider a choice more on sheer technical reasons - without any personal ones.

Otherwise, if I have to take a toolkit, I will blindly prefer django over RoR for amountless masses of reasons; but I know a lot of projects who stalled because programmers thought django is easy to master - and projects where django was too light weight to get it running in the direction they wanted to go.

I am a freak for django nowadays, but I learned about it quite early, and needed the db stuff personally for some small project you do if you should actually do other stuff, I would have never thought anybody else than some individuals will ever use it. With rails it was always more about being in a peer group, than liking the language objectively, so I say, do not ignore taste, for it shows insight, but also dont rely on blind fanatism in this decision, it's still a technical one (meaning: depending on your project setup).

Re:Django or Rails (1)

g4b (956118) | more than 2 years ago | (#38265314)

pardon, didnt mean language, i meant framework.

ruby vs. python is another flamewar.

AngularJS - server agnostic! (1)

Anonymous Coward | more than 2 years ago | (#38265312)

I recommend AngularJS [angularjs.org] , great for client side programming of AJAX web-applications. It is all HTML/CSS/Javascript and is server agnostic, so you can use whatever fits your needs server side.

Best of all, the testing toolkits coming with Angular are great! You can finally do testdriven development of the client!

No easy answer (5, Insightful)

1s44c (552956) | more than 2 years ago | (#38265358)

There isn't an easy answer. All frameworks are great at getting you 80% done then make the last 20% nearly impossible.

What you know best is properly the right thing to use as long as it's capable of getting the job done and you can still find new staff who have some knowledge of it.

web2py (1)

plzdontspamme (1055052) | more than 2 years ago | (#38265472)

I've been using web2py [web2py.com] lately and like it a lot. It is a Python-based framework with a Rails-like MVC structure with JQuery and Ajax functions built in. I find it much easier to learn and use than Django. It has functions like SQLForm.smartgrid() that create a table-based interface to a database table with built-in search, sort, pagination, CRUD, and buttons to linked tables--all with a single line of code. Functions like this and more make it trivially easy to create easy-to-use front- and back-end user interfaces.

Re:web2py (0)

Anonymous Coward | more than 2 years ago | (#38265846)

Web2py indeed ;-)

Why bother with a framework (0)

Anonymous Coward | more than 2 years ago | (#38265506)

Why bother with a framework of other peoples bad code and mistakes, i thought that's what programmers were for, to write code!

Heres an idea why not write it all as a word document and export as HTML, you have just ad much fun and bugs.

Best of both worlds? (0)

Anonymous Coward | more than 2 years ago | (#38265508)

Why don't you use the best of both worlds? Or even the three worlds...
What I mean: first decide the framework, RoR or Django?

Then you don't need to decide the language. AFAIK you can run RoR with IronRuby, or Django with IronPython.
This way you would be able to mix and match (use IronPython for module X, IronRuby for module Y, Phalanger-PHP for module Z, etc.).

Multi-language development environments FTW!

C for serious (3, Interesting)

Anonymous Coward | more than 2 years ago | (#38265512)

There's no framework for serious development, but you'll do fine with any of the bunch as long as you stay a small timer.

So, save yourself an effort if you plan getting big and go with C directly -- Not only will you earn a magnitude of performance over your competition, your development time will be less as well. That's because competent C programmers will not dick around with completely useless cargo cult programming, like picking frameworks. Nor will they spend 90% of their time building useless OOP frameworks (with 10% of actual functionality) on top of what ever framework they started with.

Keep it simple, STUPID!

Avoid frameworks like the plague... (4, Interesting)

Ami Ganguli (921) | more than 2 years ago | (#38265598)

... unless you're in the business of throwing together form-based database apps quickly.

That's really all they do well, and there area lot of form-based database applications in the real world, so that's not a small niche.

But for anything that's a little different, you end up spending a lot of time learning the framework, and then even more time working around its limitations. The better approach is to look at your problem and find a set of libraries that are well suited to the task at hand, well documented, well supported, and modular.

Also, take the time to learn your tools properly and exploit them to the fullest. Learning a framework takes time. So does learning about Apache modules and SQL stored procedures. The difference is that the time invested in the framework isn't generally applicable to other problem domains, while Apache and SQL are everywhere, and are worth learning well.

Take a look at the Yii Framework (2)

Zpin (921535) | more than 2 years ago | (#38265612)

I have evaluated a few frameworks for the Multicraft control panel (multicraft.org) and in the end decided to stick with Yii. It's an elegant and easy to set up framework that lets you get something functional done in a very short time. Also, I haven't had a single Yii related issue with the multitude of webservers and operating systems the Multicraft panel is already running on. I enjoy working with Yii and will start using it for other projects as well: http://www.yiiframework.com/ [yiiframework.com] (I'm not affiliated with them in any way)

Perl Dancer (0)

Anonymous Coward | more than 2 years ago | (#38265622)

Everyone loves Perl Dancer! it's extremly easy to learn!

No framework like no framework... (0)

Anonymous Coward | more than 2 years ago | (#38265690)

PHP is a templating language with bindings to several libraries targeted at web development. Why do you need a framework exactly? The frameworks I've been forced to use have hardly been masterpieces of software engineering -- greasy regex based "routers" and markup used in places other than templates / views.

I would never use a 3rd party "framework" on a new project where a classloader, static utility classes and separate view / template directory would suffice. Spare yourself the series of convoluted workarounds to problems that professional developers with control over deployment simply do not have.

Agavi! (1)

Anonymous Coward | more than 2 years ago | (#38265746)

If you are a PHP shop, Agavi would be my best bet. It's correctly implemented MVC, unlike Symphony and other RAD Rails clones; it's high performance; it's extremely extensible and scalable. Ze germans that wrote it are very clued people. I do mean it. Very. Clued. People.

Load More Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Sign up for Slashdot Newsletters
Create a Slashdot Account

Loading...