Follow Slashdot blog updates by subscribing to our blog RSS feed

 



Forgot your password?
typodupeerror
×
PHP GUI Programming

Drupal Competes As a Framework, Unofficially 178

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?"
This discussion has been archived. No new comments can be posted.

Drupal Competes As a Framework, Unofficially

Comments Filter:
  • Steak (Score:5, Insightful)

    by Anrego ( 830717 ) * on Thursday February 24, 2011 @06:15PM (#35307104)

    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.

  • by Megor1 ( 621918 ) on Thursday February 24, 2011 @06:21PM (#35307140) Homepage
    I'd never thought I'd see the day when PHP developers would have "'coder-purist snobbery"!
    • by sco08y ( 615665 )

      But seriously, if you're using PHP and you start worrying about The Rules, you've thrown out your only reason for using PHP at all.

      • if you are using PHP and want purity with the ease of scripting language, you seriously need to jump ship [codehaus.org].
        • if you are using PHP and want purity with the ease of scripting language, you seriously need to jump ship.

          Whoops, I think you meant to link to this site [slashdot.org]

          • 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 :( ")

            • Its ok... your a PHP developer. People don't expect much of you. (see thats how you deliver it... and thats what your mom said)
        • by sco08y ( 615665 )

          if you are using PHP and want purity with the ease of scripting language, you seriously need to jump ship [codehaus.org].

          If someone is using PHP and is open to jumping ship, they're going to jump to another server-side web programming language. But they're idiots, so odds are it will be another steaming pile, probably ASP.net and VB.

          And there's nothing "pure" about anything related to Java; only managers think all that enterprisey crap is "pure." Java is fundamentally object-oriented, and that means it has no foundation in mathematics. Groovy just takes Java's original terrible idea and doubles down on it.

          And let's not even t

    • by SmallFurryCreature ( 593017 ) on Thursday February 24, 2011 @10:50PM (#35309096) Journal

      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.

      • absolutely.

        I think its partly due to the 'programmers' not being able to do a good job int he current tech they use, so they blame it and then start looking for the next one - which is also why a lot of people insist that a complete rewrite is the only way to go. .. every time.

        The flaw lies not in the "legacy" code, or the "outdated" technology but in the people involved.

        While I don't give a fig for those guys, new entrants to the IT workforce are picking up the meme that "you can only do good work in the l

      • Re: (Score:3, Insightful)

        by Alt_Cognito ( 462081 )

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

        Let me first point out that I agree with most of what you say (which is essentially that the value of a programmer is in solving problems which have not already been solved), however:

        The entire point of a framework is to give you the underlying repetitive parts so you can focus on coding the complicated domain specific pieces later.

        Frameworks and libraries are everywhe

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

        It's interesting that you bring up cars, because we're not talking about driving a car, but building one. When an automaker builds a car, they don't reinvent the wheel unless there's something wrong with the old one. Parts like steering columns, any kind of electrical part, garnishes like door handles and map lights, and even glove box doors might be borrowed from another vehicle. Automakers clearly comprehend the value of a framework. Indeed, a single chassis design might be sold under several different na

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

  • by MrEricSir ( 398214 ) on Thursday February 24, 2011 @06:32PM (#35307236) Homepage

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

  • framework (Score:3, Interesting)

    by mattack2 ( 1165421 ) on Thursday February 24, 2011 @06:35PM (#35307256)

    What is a framework, anyway?"

    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 [apple.com]

    I know that's not what you were really asking...

    • "If you wish to converse with me," said Voltaire, "define your terms."

      For a lot of people (readers of the design patterns ideas) a framework is a set of whatever things that help/enforce a well proved design, so you don't have to invent a new design for a lot of well known requirements presented on most applications. That's a bit different (but not much!) from a library or toolbox that helps to implement whatever design.

      Of course, people may assign another definition or concept to the term...

      • by tyrione ( 134248 )
        Good for a lot of people, but Frameworks go back to 1988 and the original NeXT 2.0 Operating System.
        • I wasn't aware that the first usage of a word fixed its meaning for all time.

          Add to that the fact that the word was used in relation to buildings long before the time you're referring to and the only reasonable conclusion is that you're full of shit.

      • a framework is a set of whatever things that help/enforce a well proved design, so you don't have to invent a new design for a lot of well known requirements presented on most applications

        So it's a half-finished app that you need to finish in order to get it to do anything useful?

  • It's a long way (Score:4, Insightful)

    by TheModelEskimo ( 968202 ) on Thursday February 24, 2011 @06:38PM (#35307296)
    ...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.
    • I'm building a site on Drupal now exactly because it's what I know.

      What, should I use something I *don't* know?

      I know other webby develop-o-matic, framworkified tools too, and it's true that I'm not super-convinced that Drupal is exactly right for the job... but getting the job done well is more important to me that getting the job done perfectly, when the "perfect" solution is something I haven't even seen yet. Like, nebulously perfect. Perfect in a way I don't yet know... and have no time to snoop out a

      • Better design helps with a more flexible codebase. Having to code around Drupal rather than just placing controller/model/view in their appropriate directories and allowing the container to manager plugins for ACLs/etc, can create a spaghetti coded nightmare in the longrun. Sure you can whip up code samples quickly but is it a longterm, maintainable and extensible code structure? No because it lacks structure. This is something that a framework provides.

        Go GROOVY/GRAILS [grails.org]!! (my plug)
    • by dylan_- ( 1661 )

      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.

      Well, I do think of myself as moderately technical, and there are two reasons:

      • We're doing another, larger site which Drupal is perfect for
      • I hadn't heard of it

      So, thanks! I'll check it out. Might be very useful.

  • Easy. A framework is whatever my product has that yours (and my other competitors') doesn't.

    Oh, and if our products have a similar feature, but you use different words to describe it than I do, yours is also disqualified.

  • Here is the video, in case you can't reach his smoldering server: http://vimeo.com/20286577 [vimeo.com]

  • Drupal is a pain (Score:4, Insightful)

    by pacergh ( 882705 ) on Thursday February 24, 2011 @07:01PM (#35307514)

    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.

    • Pain. Now there's a key term in any definition of 'framework', at least in my experience.
    • You know you're right. I know you're right. The problem is that there are so many horribly inexperienced, disorganized, and utterly belligerently incompetent web programmers out there that they give the few of us who actually know our asses from a hole in the ground a bad name. The perception amongst the broader small and medium sized business community (a.k.a. 90% of all available clients) is that if you're not using a framework you can't possibly know what you're doing. They think there's no possible

      • by ameoba ( 173803 )

        They think there's no possible way someone could be experienced enough to make a secure, efficient, and stable website simple enough that it might cost less to build it from scratch and maintain it than the "equivalent" product created via an infinite amount of Joomla or Drupal customization.

        What they're more concerned about is whether the next guy to come down the pipe will be experienced enough to quickly pick up your code-base & make the needed changes effectively. If you use a standard framework, you're quickly, cheaply & easily replaceable.

        • While that's true in theory, my rough estimate based from first-hand experience is that only around 15% of the deployments of these "standard frameworks" stay standard enough for that to be true. The rest of the time the client expects the full customization capability of a site written from scratch along with this supposed "easily replaceable" coder. The code base tends to end up getting chopped all to hell and by the time they're done (IF they get done) it no longer shares enough in common with the offi

    • Drupal's backend management was confusing for me to use let alone trying to teach most typical users. For large, complex sites, yeah, it's something to consider. But if I'm building a personal site or a small site I can get wordpress up and running well in under 15 minutes. Even less if the account has a control panel with auto installer.

      Everytime I've tried to use Drupal it seems like I spend just as much time figuring it out and performance tuning than I do actually creating content.

    • 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 to
    • My company creates web pages (read: web systems). We only save time not using Drupal as our framework, when we are creating some kind of static advertising page. Other than that, no time saved. This is especially true for sites which are going to "stay around for a while".

      So I agree with you. Simple web pages, no Drupal.
      To sum up what kind of web pages I would consider Drupal an overkill:

      A singel page with some text and/or images.

      If the page was to look like this, I would immediately reach out to Drupal:

      Any

      • by pacergh ( 882705 )

        Maybe you should take the time to actually learn how Drupal works. Yes, it's hard to work with, if you do not understand the concept of hooks. Almost impossible actually.

        I've taken enough time to learn how Drupal works to know I don't want to work with Drupal.

        Wordpress works better for basic content management that clients can easily use without calling me all the time. Plus, it's more easily theme-able than Drupal is out of the box. Add to that the ease with which my clients can change themes or add plugins and Wordpress far outshines Drupal in basic content management. (And it appears to run better, too.)

        For custom content management I either find an already in place pr

  • Drupal developer is good at using the tool he helped build! News at 11!

  • Actually... (Score:3, Interesting)

    by dandaman32 ( 1056054 ) <dan@enanocm[ ]rg ['s.o' in gap]> on Thursday February 24, 2011 @07:54PM (#35307990)

    (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 [enanocms.org]. 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.

    • by Shados ( 741919 )

      Totally agreed.

      If, in this day and age, you're making a website from scratch, you're doing it WRONG. Exception only for specialized web applications that try to do "thick client" stuff on the web (let say something like gmail).

      For normal public facing sites, or intranets, if you don't use a CMS, you'll have to replicate basic stuff for nothing. Sure, stuff like ASP.NET or PHP/Ruby/Python/Whatever frameworks will handle low level authentication, data access, navigation and whatsnot, but a CMS will give you a

      • First I saw:

        you just need to add your styles, template, and business-specific logic and you're done.

        and then I saw this:

        Being a .NET dev

        Now, I've only used a couple PHP frameworks and only done anything with one particular CMS (don't even remember what it was). But when I think of a framework, I think of staying out of the way. Something like CodeIgnitor or Kohana (personal favorite right now). When I think of CMS I think biiiiiggggggg. That doesn't mean they don't have a place, but if you're goal is someth

        • by Shados ( 741919 )

          My approach to every project is "use the right tool for the right job".

          For public facing websites, the right tool will almost always be a CMS.

          For the rest, it depends: for internal web app my personal favorite is usually a composite application framework. Unfortunately, unlike CMSs, there are very few of those, and the ones that do exist tend to be immature, so I had to write my own. Some internal web app projects are suitable for CMS too though.

          If when you think CMS you think "biiiiiiiiiiiiiiiiiiig", you h

  • Am I the only one to notice he went over 30 minutes?

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

    • their users are much more hell for developers than the frameworks actually. criticize one, and you are labeled an 'incompetent developer'.

      i would merrily be one if there werent budget and deadline considerations in real world. we could just work on and on on drupal et al, on our weekends and be happy.
  • by kikito ( 971480 ) on Friday February 25, 2011 @03:45AM (#35310172) Homepage

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

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

      Just to be clear, Drupal is highly modularized. The only modules you can't turn off are the core-required set. For 6.0 that looks like this:

      Block Controls the boxes that are displayed around the main content.
      Filter Handles the filtering of content in preparation for display.
      Node Allows content to be submitted to the site and displayed on pages.
      System Handles general site configuration for administrators.
      User Manages the user registration and login system.

      Then there's a whole other set of opti

      • by kikito ( 971480 )

        Thanks a lot for your reply. I specially appreciated the bit at the end about D7. I guess I'll wait.

        Most of the modules you describe, I've already used. I just don't know the code inside them.

        "Download, uncompress on sites/all/modules, activate, if it doesn't explode, configure" that's my general approach with modules. It rarely includes a "have a peek at the code". But thanks.

        I hope you didn't type all the descriptions of each module and just copy-pasted from somewhere else. Otherwise, what a lot or work!

        • Thanks a lot for your reply. I specially appreciated the bit at the end about D7. I guess I'll wait.

          I tried it, and I would wait :)

          Most of the modules you describe, I've already used. I just don't know the code inside them.

          Me neither, they're in core. I only look at their code when the docs suck and I need to understand what the code is expecting me to do. I'm not much of a PHP guy but it's one of a whole horde of languages with similar syntax so I can muddle through. In fact I'm not much of a programmer in general. I have contributed back patches to drupal modules which were accepted though, both features and fixes. Not sure if that's scary or if I'm smarter than I think.

          I hope you didn't type all the descriptions of each module and just copy-pasted from somewhere else. Otherwise, what a lot or work!

          Copypasted from admin/b

  • 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 ?
    • by kuzb ( 724081 )
      Ask yourself that question when the ipad 2 is released, and the page is a solid wall of apple bullshit.

If all else fails, lower your standards.

Working...