Drupal Competes As a Framework, Unofficially
tgeller writes "Drupal developer Ben Buckman attended the BostonPHP Framework Bake-Off with the hopes of pitting the CMS against CakePHP, Symfony, Zend, and CodeIgniter. He was told that he couldn't because Drupal is 'not a framework,' a response he felt was 'coder-purist snobbery ("it's not a framework if you build any of it in a UI").' So he decided to unofficially compete in the back of the room by accepting the challenge of building a job-posting app in 30 minutes, while the official competitors did the same from the stage. He recorded the results, which are impressive. In the process he raised the question: What is a framework, anyway?"
I’d call Drupal a tool with a framework for extending said tool rather than a straight framework.
Why? Just what my gut tells me. At the end of the day it doesn’t really matter (save for contest qualification purposes I guess). Use what does the job for you.
For anyone needing a clarification, ask Poul-Henning Kamp.
a response he felt was 'coder-purist snobbery
More like VI/Emacs-wielding neo-luddites.
So afraid of the fancy new CMS technologies, they have to ban them, for fear their frameworks will be obsoleted by them.
Next thing you're gonna tell me... Trixul and Jako are not frameworks. And Facebook Apps don't count as applications.
I'd never thought I'd see the day when PHP developers would have "'coder-purist snobbery"!
Everyone that disagrees with me is a paid shill
http://en.wikipedia.org/wiki/Software_framework
It's an excuse for designers to call themselves developers.
A couple years ago, I needed to decide on the framework/approach for a large scale web based app. PHP/Postgres support were required (due to the use of another tool that used these and we would need to integrate with). I looked at most of the frameworks listed in the summary. There were two that stood out (for my specific needs) - Zend Framework, and Drupal. Not Drupal as a CMS, but Drupal as a framework. We ended up opting for ZF because the others were a little too rigid in their approaches.
So, to hear years later that Drupal is *not* a framework is surprising. Especially considering how much it has advanced/stabilized/improved since my evaluation.
I'm a big fan of DruPal's TV show: "DruPal's Drag Race" (It's on the LOGO TV network.) I hear Kevin Rose will be on next season!
And the article hits Slashdot just as they take down the Drupal servers for a 12 hour migration to Git. That's some good timing.
...it's a way to seamlessly align the holistic design-process in an integrated, next-generation infrastructure using best practices and maximizing ROI.
Going forward, frameworks are a paradigm shift in cost-effective and value-added solution development.
There's no -1 for "I don't get it."
> there are a lot of other cmses around, some preferred by nasa etc.
Several NASA sites run on Drupal.
http://buytaert.net/nasa-using-drupal
Try having a clue before you post.
What are Frameworks?
A framework is a hierarchical directory that encapsulates shared resources, such as a dynamic shared library, nib files, image files, localized strings, header files, and reference documentation in a single package. Multiple applications can use all of these resources simultaneously. The system loads them into memory as needed and shares the one copy of the resource among all applications whenever possible.
http://developer.apple.com/library/mac/#documentation/MacOSX/Conceptual/BPFrameworks/Concepts/WhatAreFrameworks.html
I know that's not what you were really asking...
As a coder-purist snob myself, my opinion is that using PHP disqualifies you from being either of the three.
Honestly, why would you build a framework in a cobbled-together templating language?
So where's your closure support, Java? C++?
Even ObjectiveC and *javascript* support closures, for crying out loud (something as cool as jQuery wouldn't exist without closure support).
Functional programming is a serious win for code reuse and extensibility.
Make sure everyone's vote counts: Verified Voting
...from the elephantine Drupal to a use-as-you-need-it framework like Zend. So, "use the right tool for the job" is a huge part of this. Personally I err on the side of "less is more" and look at my local Drupal community and see people who are picking a kitchen sink tool because they have limited time and resources. Not the sort of example I race to follow.
My experience with another large CMS/CMF taught me that maintenance costs (which have to be passed on to clients) really start to add up quickly with the behemoth-sized packages, if you have a very active client. And if you're developing a small site with Drupal, and think of yourself as a moderately technical person, I sincerely ask you why you're not using something like Processwire instead. The last three people I saw do this did it because Drupal was "what they knew." That's uh...interesting. Why not just learn several tools that can fit into a more flexible toolchain? Drupal has one heck of a footprint!
The summary mentions a GUI, so it's probably worth bringing up Django -- an otherwise all-code framework that comes with its own admin panel GUI already built.
Did you bother reading the article? It shows that if you're a competent programmer then Drupal is not a "developer-hostile mess". And it just so happens that Drupal works fine for lots of very large publishing organizations.
Can't tell whether you're just trolling, attention-whoring for your project, or both. In any case, this definitely shouldn't be modded insightful imho.
Oh, and if our products have a similar feature, but you use different words to describe it than I do, yours is also disqualified.
Those who do study history are doomed to stand helplessly by while everyone else repeats it.
Sucks to be you I get over $100/hr programming in *gasp* PHP and no I don't live in California or NYC.
Here is the video, in case you can't reach his smoldering server: http://vimeo.com/20286577
or else!
This puts the new slashdot design in perspective. Are you not glad that slashdot is not using drupal?
Mod parent up.
No, you don't.
Some fat chicks get 200 bucks an hour to suck cock. Doesn't make them anything special....
You may be able to argue Drupal, or even Wordpress, are frameworks. Nevertheless, Drupal is a bear to work with, fickle, frustrating, and overly complex.
Perhaps for complex websites it's worth it, but I don't make complex websites. I make simple ones. The few times I tried to use Drupal to do so they became far from simple.
I'd rather code from scratch than use Drupal.
My feet smell great.
framework
[freym-wurk]
–noun
1.
a skeletal structure designed to support or enclose something.
2.
a frame or structure composed of parts fitted and joined together.
3.
something housewives and little girls use to pretend that they can write software.
4.
work done in, on, or with a frame.
Drupal developer is good at using the tool he helped build! News at 11!
Sucks to be you I get over $100/hr programming in *gasp* PHP and no I don't live in California or NYC.
Hahahahahahahaha.
Oh, and this one's for you.
An API or library which attempts to save the engineer from him/herself, but ends up suffocating the engineer by collapsing around him.
Competing in a PHP contest is like running in the Special Olympics...
...well, you know the rest. ;)
unity100, by his own admission, has never even completed a Drupal project. He "investigated" it at a client's request, clearly (from many of his comments in that thread) didn't know what the fuck he was doing, and scared the client away from it.
And now he badmouths it (and the people who've actually bothered to learn to use it effectively, you know, those "one click admin crowd" morons) every chance he gets. Seriously, 7 out of 53 comments in that last thread are him bashing Drupal.
It's getting a little old, unity.
Did you bother reading the article?
Ah, you must be new here.
from the summary:
"So he decided to unofficially compete in the back of the room by accepting the challenge of building a job-posting app in 30 minutes, while the official competitors did the same from the stage"
ok. so Drupal allows you to build a fully "functional" site in 30 minutes. Congratulations, skippy.
Q: What happens when said site starts seeing real traffic?
A: It completely buckles under the load because some amateur Drupal contributor is doing something stupid like running a query inside of a loop. Before someone touts caching, just remember that caching is no replacement for a properly written query.
Q: What happens when you need something outside of what you can find in a module?
A: Code it yourself. Good luck with that. Gotta learn the byzantine framework now.
The benefit to using a bonafide MVC is that MVC is an established pattern. Once you've used one, you have the basic concepts, from there it is a matter of figuring out whether something is more config based (like Zend) or more convention based (like cake).
Drupal, while using some cool practices like IoC and so on, isn't really like anything else out there. Having made a few Drupal modules, I can say that Drupal was very counterintuitive in how it handled forms. I also did not enjoy the database abstraction layer. The hooks are cool, though.
blah blah blah
(This post contains shameless self promotion)
I think GUI elements are an essential part of a web development framework nowadays. I maintain a small open source CMS called Enano. It's very basic, but during the course of its development I've written a ton of GUI building-blocks, among other frameworkey things, and documented the APIs for them so that plugins can use the same features. Regarding the GUI elements, I think consistent interfaces are an important part of any web application. Thus, what better way is there than to use a good, solid framework that, among its other jobs, takes care of some of the GUI design ugliness for you? Stuff like a standard way to present and validate forms, show message boxes, log in users, provide visual feedback for a process, etc.
In my opinion, a framework should do more than just provide a bunch of random pick-and-choose APIs that you can use. It should take care of the boring details you don't want to have to rewrite for a web app, like user account management, sessions, user data, database abstraction, that kind of thing. That's why people are writing applications using software like Drupal and Enano: they want to write a web app that does what it needs to do without having to reinvent the wheel. I'm currently using Enano as the foundation for an e-commerce site (contracted project). Yeah, eating my own dog food, but shows that it can be easy to take something like Enano/Drupal/Wordpress and use its existing, established core features to write a whole new application that uses those features.
Yes, I've used a more traditional framework before (CodeIgniter). It's great, and I love its design for basic applications, but you still have to write your own user management and a lot of other prerequisites to create something like an e-commerce site. In contrast, I've developed the entire e-commerce plugin with about 50-60 hours of work, including a couple of very minor modifications to the core.
If you're not at LEAST using a punch card and tape system, you little spoiled weasels are doing it wrong!
I remember when we hand-encoded the bits on the drive with magnets! AND WE WERE THANKFUL FOR THE MAGNETS!
There was even a time when we had to create the interface on the screen, on the fly, by hand-aiming the gun in the back of the a CRT!
In the snow!
Up hill!
BOTH WAYS!
AND WE WERE THANKFUL FOR IT!
This precompiled code stored in binaries and libraries thing sounds dodgy. It'll never last!
Chas - The one, the only.
THANK GOD!!!
Drupal has all the "everything is be a module and go in a box in some column" limitations of a 1990s CMS and all the complexity of a modern MMORPG.
To all of you PHP haters just give it up, yes PHP had some humble beginnings but now it is one of the most used and most flexible web languages on the planet. For legacy support it crucifies sparkly RoR. Yeah I agree, enterprise level apps should be written in C or C++. PHP is quite slow but it actually allows small & medium businesses to appreciate the benefits of technology & automation. If you still want to code in cryptic static languages be my guest, if you want to write code that works that can be updated as fast as client's demand, use PHP. That is the paradigm shift.
Good Frameworks are useful, problem is there are a lot of bad ones out there. Whether or not you consider drupal a framework, it does have it's place. I don't like it and personally prefer Zend Framework, simply because the devs are actually trying to add value & ROI to PHP.
Two things I know are true: Web Applications are the future of computing, PHP is the major player. (If you don't believe me look at a freelance site and see how many jobs there are for other languages vs. PHP.)
Summary: "I hate Drupal because it undermined my high-priced business". If this was a troll, nice work!
Tom Geller
welp, I messed that joke up.
(also, am I the only one who hates that infernal "Slow down cowboy. Its been 1 minute since you last posted" nonsense :( ")
Excuse the Unicode crap in my posts. That's an apostrophe, and slashdot is busted.
programming language fans
The Christian religion has been and still is the principal enemy of moral progress in the world. -- Bertrand Russell
The first you don't hear much about, they know the language, its stengths and its limitations and simply use it because nothing else out there can compete.
Then you got the second kind, that will be fuming at the last bit in the previous paragraph. They are forced to use it for some reason, mostly because the latest language they wish to use simply isn't supported enough. Personally, I think these are the lesser developers, the bad photographers who think if only they get a Hasselblad they will turn into a top class photographer instead of having to use this cheapo poloraid that nobody could ever possibly use to make art.
Personally I also think frameworks are silly. If you can lash up a site in 30 minutes, then the request simply isn't distinctive enough. Your site will be the Xth among thousands and fail. For the next job board site, you need to add something new, do it different, improve the process/experience else the monsterboards will simply keep the position they got.
If a wizard can write your code, you are not a developer but an assembly line worker. Granted there is a living to made at this, but please, don't call yourself a developer, you are a code monkey.
It is amusing for me to see the developers that every problem they encounter, they say: Oh if only we used tech X, this would be easy... WAY to sell your talent kiddo. It is even more amazing to see when they get away with it. Companies running everything from PHP, Perl, Python, Ruby on Rails, ASP and god knows what else, in the same company and in one extreem case, the same site... I don't care how much you hate an individual language, more then one you need a BLOODY good reason, more then two and you are insane.
But hey, keep looking for the magical language that no longer requires you to express yourself to achieve what you want. If people could write amazing code in assembly then why can't you make the language the project uses just work?
Really, if you claimed that you would be a better driver if only you had a proper car, every real driver would laugh at you. Instant poloroids are used by the pro's. Some serious art is produced with nothing but paper and charcoal.
But for a website, you need the latest tech so you can never learn all its secrets. Right.
MMO Quests are like orgasms:
You may solo them, I prefer them in a group.
Am I the only one to notice he went over 30 minutes?
a framework is a software device that generates consulting opportunities, period.
That is why there is, in fact, no such thing as Wikipedia. The WikiMedia system does not exist either. http://en.wikipedia.org/wiki/Wikipedia#Software_and_hardware
In a similar fashion there is no VM ZEND engine. http://en.wikipedia.org/wiki/Zend_Engine
And I hate to break it to you, but there is no Santa Clause.
Why is Snark Required?
Yeah, how dare a technology come around that commoditizes our business! *shakes fist at the moon*
You're in the same league as graphic designers bitching about 99Designs. How about other now-commodity stuff like ODBC drivers? There used to be entire companies around that one piece of tech. Now it's something we expect to just work as a matter of fact.
If that means the bar is lower for web development, then so be it. Yes, more morons will get into the game. But so will competent people who otherwise may not have. In the end, it makes web development more affordable and within reach of more people. If that's not a win, I don't know what is.
Yes, lets let Microsoft compete in a spreadsheet disign competition using Excel as a base against other "frameworks".
Framework: A bunch of organized and easily referenced functions which make development easier.
CMS (Drupal, Plone, Etc): Fun for users. Hell for developers.
I have build Drupal sites for the last 5 years and yes, Drupal can be frustrating. But Drupal still develops fast, Drupal has just released version 7 with many usability improvements over the previous ones. The problem is everyone of us has to specialize because the day does not have enough hours to become expert in three or more systems. And once you earned some experience with one or two systems you usually can achieve the desired results quickly and IMHO Drupal is among the faster ones, because of the tons of modules and documentation for it. Plus Drupal does not make you jump through countless XML configuration hoops like some other frameworks do. Oh, and "writing from scratch" is a sure way to insecure sites. As soon as you need user registration it is just not worth taking the risk of SQL injection or cross site scripting bugs. Which you will inevitably make.
On se Internetz nobody noes your German.
I thought it was pretty much agreed that you could not "run" a framework. Just "use" it to build something (a website, an app...) that then you run. Significatively, there's no "content" (understanding content as "the thing that the end users usually change and use").
Drupal can run by itself, with no modifications (granted, the default installation will not let you do much, but you still can) so to me, it might be a framework plus something else - but definitively not "only" a framework.
I don't know the Drupal internals well enough, but if it is well designed, it should be reasonably easy to separate the "Drupal Framework" (classes that can be used to build other things) from the "Drupal website" (the "default content" that Drupal starts with).
This is the second straight article about drupal, in no longer than a day. third in this month.
What's in store for tomorrow ? "Drupal is excited for carnival" ?
has slashdot became drupal's private publishing arm ?
Read radical news here
i didnt 'investigate'. we brought it into near completion and the site was functioning. what caused us to abandon was that client was very picky about visuals, cared about 1px alignments of elements. but drupal caused a lot more problems than 1px alignments. when the client wanted a quite modified newsletter form in visuals, the shit hit the fan and we had to abandon.
implementing the entire thing from start took only 1-2 days after that, along with the client's pickiness.
Read radical news here
quite a catch there.
Read radical news here
Bah, you got me. I lied.
Is there a get-out claus?
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
Nobody says you can't be a good driver without driving a great car. But driving your 1960s Chevy you aren't going to stand a chance at racing a 2011 SLK.
I agree that just using the 'next big thing' all the time doesn't help you delivering good products.
But given that there are alternatives, there is nothing wrong with picking something that is not PHP.
For many people, staying with PHP just feels natural, because that's what they used first. I had
seen lisp, scheme, python, perl, java, c/c++ and others before coming in contact with PHP.
And even though PHP definitely has it's strong points, the language design is abysmal.
There is no way, with that many better designed solutions out there, that I'd have started using PHP.
That doesn't mean that it is the wrong choice for you. But me? I'm going to pick the SLK every day. Thank you.
Does anyone have a link to the video? All I get is Vimeo telling me my browser (FF4.0 nightly build) isn't HTML5 compatible (say what?) and I have to install Safari, on Linux. Ugh.
Slow down cowboy. It's been 53 minutes since you posted.
It's a joke I tells ya. Code this bad has to be designed that way !
53 minutes and it's still slow down cowboy..........
If it doesn't do anything non-trivial and useful "out of the box" it's a framework. Therefore, Drupal is a framework.
I don't know if anyone has said this yet, but in my mind what defines a framework is related to IOC (Inversion of control). That is, if the thread of execution starts in their code, and then runs your code, it's a framework. If you call to their code from your code (but the thread of execution starts in your code), then it's a library, not a framework. If it's GUI-based code that creates a blog or something like that, then it's just a fancy program, not a framework.
It says CMS in the title!!!
Sorry I've been dealing this crap for years. If Drupal is a framework than so is Jira, Joomla, Media Wiki...hell I'll even throw in Excel. You can extend it's functionality you say??? Oh yah it's a framework now baby. I am so sick of bad developers trying to re-define things instead of just admitting that they are wrong and learning from their mistakes. Besides being a huge bucket of swill, Drupal is the second most mis-used piece of software on the planet (Excel has to be #1). Anyone who suggests Drupal as a solution should have a D branded on their forehead so all will know their sins. GahhhhhhhhhhhhhhhhhhhhhhhHHHHHH!
Could chocolate be quiet and let me finish?
Especially when I pull up in my M3 and tell them I'd like fries with my burger. If you can't figure out how to write good code in php, it's really not php's fault. It's yours. I bet half the people in here complaining about php don't actually know anything about it. It's like that guy who keeps telling you python sucks because tabs determine blocks.