Slashdot Mirror


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?"

178 comments

  1. Steak by Anrego · · Score: 4, Insightful

    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.

    1. Re:Steak by Anonymous Coward · · Score: 0

      I have some limited drupal esperiance, and am doing a project in cakephp currently. Primarily because it can be ugly, annd drupal has always felt weak when it comes to pulling machine readable data out of relationships (especially many to many).

      Maybe i just need to use something like organic groups, but it looked easier for to just build the db, bake, and cheese away at the views.

      Not done yet though, so time will tell.

    2. Re:Steak by cultiv8 · · Score: 1

      There are some movements in Drupal to become more of a framework, such as entities and features, and of course there's always drush. This article discusses the parallels between Drupal programming and OOP, interesting read for programmers new to Drupal.

      --
      sysadmins and parents of newborns get the same amount of sleep.
  2. PHK knows by Anonymous Coward · · Score: 0

    For anyone needing a clarification, ask Poul-Henning Kamp.

  3. Coder-purist snobbery by mysidia · · Score: 0

    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.

    1. Re:Coder-purist snobbery by mwvdlee · · Score: 1

      It basically makes this framework competition sound like the paralympics.
      "You're not allowed to compete if you're more capable than us".

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    2. Re:Coder-purist snobbery by LifesABeach · · Score: 1

      Given the historic nature of VI, and Emacs; wouldn't these luddites be "proto" instead of "neo"?

  4. I never thought I'd see the day by Megor1 · · Score: 5, Funny

    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
    1. Re:I never thought I'd see the day by Anonymous Coward · · Score: 0

      It makes me very sad...

    2. Re:I never thought I'd see the day by Anonymous Coward · · Score: 0

      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?

    3. Re:I never thought I'd see the day by Anonymous Coward · · Score: 1

      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?

      Because your time is worth less than a Java programmer's is, and you know it? :)

    4. Re:I never thought I'd see the day by oldhack · · Score: 1

      I KNOW!! Like get the hell off ma lawn, right?!

      --
      Fuck systemd. Fuck Redhat. Fuck Soylent, too. Wait, scratch the last one.
    5. Re:I never thought I'd see the day by sco08y · · Score: 1

      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.

    6. Re:I never thought I'd see the day by Anonymous Coward · · Score: 0

      I'd never thought I'd see the day when PHP developers would have "'coder-purist snobbery"!

      It makes perfect sense. Code snobs are just geeky reactionary conservatives.

      I never meant to say that the Conservatives are generally stupid. I meant to say that stupid people are generally Conservative. I believe that is so obviously and universally admitted a principle that I hardly think any gentleman will deny it. -- John Stuart Mill

    7. Re:I never thought I'd see the day by MrEricSir · · Score: 1

      Plenty of great software has been written in C++, a language I think even its inventors would admit is "cobbled together."

      --
      There's no -1 for "I don't get it."
    8. Re:I never thought I'd see the day by Foofoobar · · Score: 2

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

      --
      This is my sig. There are many like it but this one is mine.
    9. Re:I never thought I'd see the day by maraist · · Score: 1

      They launched space shuttles with assembly. This is more a testament to the coders given tight requirements that hardware just couldn't provide, and less to the language.

      I've recently gone back to C++ programming after 12 years of perl/python/PHP/Java/bash/SQL. O.M.G. do I hate C++. All these other languages were created in response to C/C++'s common-coding pitfalls. String processing, memory management catch-22s, loose coding contracts, horrid cross-platform capability (Windows/Linux/Mac might as well have different source-code for all the damn ifdef's), insane compilation times (even on modern i7s). Since the core capabilities of C/C++ are so minimal, it's hard to link two 3rd party libraries together because they'll have incompatible base frameworks / assumptions. So every team re-invents anything the native OS/platform didn't provide.

      That being said, I'd hate to see an OS written in anything other than C - but by definition, they enforce a common coding convention to all higher layers, and can't leverage 3rd party libraries, so they don't have many of these concerns.

      --
      -Michael
    10. Re:I never thought I'd see the day by rax313 · · Score: 1

      Because it can be easier that STRUTS 2?

    11. Re:I never thought I'd see the day by MrEricSir · · Score: 1

      It's interesting you should mention the OS issue. At my day job, I develop FLOSS software in a language called Vala. It's a source compiler that compiles a Java/C#-like OOP language into C.

      So you get the optimization and compatibility of C code with the pleasantness of a modern language. Perfect? No, but I think it's a step in the right direction, and you *could* program an OS in Vala.

      --
      There's no -1 for "I don't get it."
    12. Re:I never thought I'd see the day by sg_oneill · · Score: 1

      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

      --
      Excuse the Unicode crap in my posts. That's an apostrophe, and slashdot is busted.
    13. Re:I never thought I'd see the day by icebraining · · Score: 1

      That being said, I'd hate to see an OS written in anything other than C

      Then you'll hate this :)

      Cosmos is an operating system project implemented completely in CIL compliant languages. The team is committed to using C#, however any .NET language can be used.

      It does compile AOT, though.

    14. Re:I never thought I'd see the day by Max+Romantschuk · · Score: 1

      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?

      Because PHP runs _everywhere_.

      Modern PHP has very little in common with the cobbled together PHP+HTML messes we used to se back in the 90s. Sure, it has it's share of warts, but if you'd care to educate yourself you would find that you can do very professional work on PHP with very professional tools. I've yet to see something that rivals Zend Studio combined with Zend Debugger when it comes to tracking down a weird issue, even on a remote server.

      My favorite language is Python, but to dismiss PHP completely is simply ignorant these days.

      --
      .: Max Romantschuk :: http://max.romantschuk.fi/
    15. Re:I never thought I'd see the day by silentcoder · · Score: 2

      There has been several, though no mainstream ones really. C was the first truly portable language and gave us the first portable OS (Unix) until then all OS's were written in machine code for a specific platform.

      Since then though there were quite a few OS's written in other languages. Sometimes for purely academic research, sometimes just for fun, some as serious projects with real users (though granted not a great many of them).
        XEROC wrote their PILOT system in Mesa.
      PERQ was written in Object Pascal

      The USCD P-System was written in old style non-object Pascal and in it's day was one of the best OS's available, not least because it was the most portable ever written at the time.

      --
      Unicode killed the ASCII-art *
    16. Re:I never thought I'd see the day by AmonTheMetalhead · · Score: 2

      Java blows. I absolutely hate Java. A while ago we encountered a specific issue with our Java based service bus, that caused it to run out of memory. While diagnosing the issue I noticed the JVM was opening a lot of TCP/IP connections, so I went to one of our Java 'programmers' to get an idea of how much ram/heap such an object uses, and all I got was a blank stare. (Still don't know the answer to it, but i was right that it was the huge number of open TCP/IP sockets that caused the JVM to run out of memory). If you can't handle allocating and managing memory, you don't deserve the right to call yourself a programmer.

    17. Re:I never thought I'd see the day by thetoadwarrior · · Score: 1

      PHP runs everywhere on the web but it certainly doesn't run everywhere like Java or even Python. There is no such thing as a language that can do everything well but Python, for example, is a damn sight closer to that idea than PHP. PHP really is only good at making web pages and not much else.

    18. Re:I never thought I'd see the day by maxwell+demon · · Score: 1

      The Java programmers were told the JVM handles the memory for them. So why should they learn to handle it themselves? After all, if they have to think about their memory, they lose a major reason to look down upon the C and C++ programmers!

      --
      The Tao of math: The numbers you can count are not the real numbers.
    19. Re:I never thought I'd see the day by Max+Romantschuk · · Score: 1

      PHP runs everywhere on the web but it certainly doesn't run everywhere like Java or even Python. There is no such thing as a language that can do everything well but Python, for example, is a damn sight closer to that idea than PHP. PHP really is only good at making web pages and not much else.

      True, but judging from TFA the whole thing was about web frameworks, IMHO. :)

      So I guess I should clarify: PHP will run on almost any available web hosting out there. Big potential user base = Good Thing.

      --
      .: Max Romantschuk :: http://max.romantschuk.fi/
    20. Re:I never thought I'd see the day by datapharmer · · Score: 1

      Because it allows you to give your customers more for their money in less time. Or at least it lets me do that, I don't really know about you. Then again, I have a job.

      --
      Get a web developer
    21. Re:I never thought I'd see the day by Anonymous Coward · · Score: 0

      Try Smalltalk or Beta. Smalltalk's debugger blows Zend right out of the water. You should also listen to some of the talks from Gilad Bracha on Newspeak. He worked on the JVM and has a lot of insight what they did wrong vs. what other languages did right. He has very harsh words about most debuggers out there, for good reason. They are very hard to get right.

      Smalltalk's debugger is so nice you can actually program in it 100%. If you understand how it's done and how the debugger works, you will truly understand why TDD was pushed by Smalltalk people. There are more robust implementations of a debugger, but none as elegant and easy to use. You can for instance not only change a class at runtime, but actually migrate its data to the new version, often automatically. You can run unit tests as you type. You can debug a web site step-by-step, change the code, and not even reload the page with Seaside and Smalltalk. I've yet to see anything else that can do that easily with a decent UI and workflow.

      The reason why all this works so well in most Smalltalk dialects is that its based on a VM that is always runtime. It's just simply not possible to do what they do well in most other languages. I've seem some fancy debuggers for Lisp as well, but that's a different ballgame.

    22. Re:I never thought I'd see the day by Oxford_Comma_Lover · · Score: 1

      > If you can't handle allocating and managing memory, you don't deserve the right to call yourself a programmer.

      Part of the point of Java was that programmers didn't have to worry about allocating and managing memory. Unless you're a JVM developer you shouldn't have to worry about it. The machine should throw an exception if it reaches capacity and you should have your code designed to deal with it.

      Don't get me wrong--I prefer managing my own memory (unless I'm scripting) at a level around that of C or C++ (Assembly only if really necessary, or if the C or C++ turns out to do something weird you need to look at the assembly to figure out, and microcode only for fun)--but Java is designed not to do that, and someone who is a great Java programmer but doesn't manage his own memory should still be considered a programmer if he programs. He's just not a programming guru. He's a Java-specific guru.

      --
      -- IANAL, this isn't legal advice, and definitely isn't legal advice for you. Also, Squee!
    23. Re:I never thought I'd see the day by RalphTheWonderLlama · · Score: 1

      If you can't handle allocating and managing memory, you don't deserve the right to call yourself a programmer.

      So PHP 'people' aren't programmers?

      You seem to be exhibiting some snobbery, lol. I remember programming in my calculator way back when and I'd still consider that programming. It's a pretty broad term.

      --
      simple, fast homepage with your links: http://www.ngumbi.com/
    24. Re:I never thought I'd see the day by Anonymous Coward · · Score: 0

      You should tell that to facebook, yahoo, and the multitude of other sites out there that make more in a day than you do in a year. tl;dr: You're an idiot.

    25. Re:I never thought I'd see the day by sco08y · · Score: 1

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

      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 talk about the "ease of a scripting language," because that just sounds like a steaming pile of weakness.

      A pure solution to web development would be Yesod which guarantees type safety throughout your entire system using Haskell's extended Hindley-Milner type system.

  5. Drupal is not a framework by Anonymous Coward · · Score: 1

    http://en.wikipedia.org/wiki/Software_framework

    It's an excuse for designers to call themselves developers.

    1. Re:Drupal is not a framework by basotl · · Score: 1

      I'll see your Wikipedia link and raise you another that lists Drupal as a PHP Framework.

      http://en.wikipedia.org/wiki/Php_framework#PHP

      --
      HTC EVO 4G LTE w/ CM 10.2 | NookColor w/ CM 10.2 | Samsung Epic 4G w/ CM 10.1
    2. Re:Drupal is not a framework by billcopc · · Score: 1

      Great, now I don't feel so bad for sucking at Symfony.

      Frameworks seem to embody everything I hate about modern programmers. Sadly, I gotta eat, so I have to play ball.

      --
      -Billco, Fnarg.com
    3. Re:Drupal is not a framework by JonySuede · · Score: 1

      When you work as an architect in a corporate setting framework are great since they allow you to impose your will upon the code monkey

      --
      Jehovah be praised, Oracle was not selected
    4. Re:Drupal is not a framework by icebraining · · Score: 1

      What exactly is so wrong with frameworks?

      If you consider the hardware's that all the code running on a machine is a single program, then an operating system fits the description.
      It implements IoC, since it's the OS which calls the user code when appropriate, it implements a default behavior, they're usually extensible and user code definitively can't change its code.

    5. Re:Drupal is not a framework by thetoadwarrior · · Score: 1

      There is nothing wrong with frameworks or a CMS but I think all developers should write their own at least once and tear apart any frameworks or CMSes they use so they fully understand what they're using.

  6. Drupal considered by sgrover · · Score: 1

    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.

  7. I love DruPal's TV Show by Anonymous Coward · · Score: 0

    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!

  8. And they have great timing by BigSlowTarget · · Score: 1

    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.

    1. Re:And they have great timing by Xgamer4 · · Score: 2

      It really is great timing. I now have a good reason to not RTFA.

    2. Re:And they have great timing by Anonymous Coward · · Score: 0

      stay down for good

    3. Re:And they have great timing by Enigma23 · · Score: 1

      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 probably a pre-emptive strike to avoid getting slashdotted...

      --
      Ceci n'est pas une .sig
  9. "Framework" isn't just a buzzword... by MrEricSir · · Score: 4, Funny

    ...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."
    1. Re:"Framework" isn't just a buzzword... by ChipMonk · · Score: 3, Funny

      You left out "XML-aware" and "dynamic response".

    2. Re:"Framework" isn't just a buzzword... by MrEricSir · · Score: 4, Funny

      Great, let's touch base. By not letting that slip through the cracks of our knowledge process, we can take our core competencies to the next level and increase our brand visibility in mission critical logistics.

      --
      There's no -1 for "I don't get it."
    3. Re:"Framework" isn't just a buzzword... by Cow+Jones · · Score: 4, Funny

      Bingo!

      --

      Ah, arrogance and stupidity, all in the same package. How efficient of you. -- Londo Mollari
    4. Re:"Framework" isn't just a buzzword... by Anonymous Coward · · Score: 0

      Can you ping me an email about this?

    5. Re:"Framework" isn't just a buzzword... by RichardJenkins · · Score: 1

      OK, I'm interested. How can this help me leverage the cloud?

    6. Re:"Framework" isn't just a buzzword... by Anonymous Coward · · Score: 0

      Need to throw in "cloud" in there a few times as well. "Drupal is so cloud ready that lightning shoots from the .tar.bz2 distribution, and when you extract it hurricanes form!"

    7. Re:"Framework" isn't just a buzzword... by localman · · Score: 1

      Greatest use ever of the phrase "paradigm shift": NewTek Revolutions - Video Toaster Demo

      That was the first time I ever heard it and I fell in love. Everything even remotely interesting that my friends and I did during the 90's would at some point be called (in deep sonorous tones) a "paradigm shift".

      I was ever so pleased when it became a weasel buzzword.

    8. Re:"Framework" isn't just a buzzword... by bigstrat2003 · · Score: 1

      You realize that this means I have to kill you now.

      --
      "16MB (fuck off, MiB fascists)" - The Mighty Buzzard
    9. Re:"Framework" isn't just a buzzword... by corychristison · · Score: 1

      On a more serious note: MrEricSir, how much do you charge? I need you to rewrite the content on my website. We all know buzzwords sell! I'm just not that savvy, I guess..

    10. Re:"Framework" isn't just a buzzword... by Magada · · Score: 1

      We need to aggressively move forward in a proactive manner on this one, guys, so let's call a kickoff meeting to identify key stakeholders and brainstorm strategy. I have a three-hour slot open next Friday afternoon.

      --
      Something bad is coming when people are suddenly anxious to tell the truth.
    11. Re:"Framework" isn't just a buzzword... by Anonymous Coward · · Score: 0

      I call BS! ;)

    12. Re:"Framework" isn't just a buzzword... by Enigma23 · · Score: 1

      OK, I'm interested. How can this help me leverage the cloud?

      By giving you a give enough lever and a pivot point? ;p

      --
      Ceci n'est pas une .sig
    13. Re:"Framework" isn't just a buzzword... by Anonymous Coward · · Score: 0

      You left out:

      Win-win scenario
      Synergy (any usage)
      At the end of the day by and large when all's said and done, in the final analysis the bottom line is we're bullish on the leveraged empowerment this brings to our new paradigm
      Think out of the box (dammit - there IS NO BOX)
      "It could be made into a monster if we all pull together as a team."

      Return your MBA to the diploma mill that minted it; your management badge has been revoked

    14. Re:"Framework" isn't just a buzzword... by Larry+Lightbulb · · Score: 1

      As Lean hasn't been mentioned I'm going to assume you're not serious. Those A3s aren't going to write themselves.

    15. Re:"Framework" isn't just a buzzword... by RalphTheWonderLlama · · Score: 1

      Going forward

      That was the best part. Thank FSM I no longer hear this everyday in my current job.

      --
      simple, fast homepage with your links: http://www.ngumbi.com/
    16. Re:"Framework" isn't just a buzzword... by Anonymous Coward · · Score: 0

      Wow,sounds like you got a near fatal dose of bozo particles. Maybe you should take a week off and maybe reread the Feynman Lectures to clear them.

    17. Re:"Framework" isn't just a buzzword... by Anonymous Coward · · Score: 0

      Oooh .. i can almost smell the synergies.

    18. Re:"Framework" isn't just a buzzword... by curious.corn · · Score: 1

      Bzzzt, fail! No tech terms please, too complicated! What's "tar.bz2" anyway?

      --
      Mi domando chi à il mandante di tutte le cazzate che faccio - Altan
  10. Re:Alright. this IS drupal pushing. by Anonymous Coward · · Score: 1

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

  11. framework by mattack2 · · Score: 2, Interesting

    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

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

    1. Re:framework by DiegoBravo · · Score: 1

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

    2. Re:framework by tyrione · · Score: 1

      Good for a lot of people, but Frameworks go back to 1988 and the original NeXT 2.0 Operating System.

    3. Re:framework by Hognoxious · · Score: 1

      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?

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    4. Re:framework by Hognoxious · · Score: 1

      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.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  12. PHP supports closures (as of 5.3) by rsborg · · Score: 2

    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
    1. Re:PHP supports closures (as of 5.3) by oldhack · · Score: 2

      You get the same thing with class instances.

      What's with the buzzword?

      --
      Fuck systemd. Fuck Redhat. Fuck Soylent, too. Wait, scratch the last one.
    2. Re:PHP supports closures (as of 5.3) by larry+bagina · · Score: 2

      c++0x has lambda functions/closures.

      --
      Do you even lift?

      These aren't the 'roids you're looking for.

    3. Re:PHP supports closures (as of 5.3) by maraist · · Score: 1

      "something as cool as jQuery wouldn't exist without closure support"
      jQuery is first-and-foremost a query language that merges 3 or 4 haphazard web namespaces into a single easy to use query-syntax. It's basically xpath on steroids. This plus a wealth of library operations that allow DOM / style manipulation in a more concise manner than straight-javascript and, of course, in a cross-browser manner..

      THIS is what makes jQuery cool.

      This drew the attention of developers which created a wealth of modules that's helped propel it well into the future.

      I don't get the closure purism (perl, python, lisp, etc). It's nothing more than wrapping a pointer to heap allocated memory in a class. E.g. C++, Java classes. Or with function-pointers in C.

        function op(d) { return function(e) { return d + e; } }
        var f = op(9);
        for (var x = 0; x < 10; x++) { sum += f(x); }

      v.s.

      typedef int (*op_t)(int);
      int myfunc(int x) { return 9 + x; }
      op_t op = myfunc;
      for (int x = 0; x < 10; x++) { sum += op(x); }

      Not a whole lot of savings. I realize these arn't exactly the same, lamba builders allow slightly more abstraction, but from a practical matter - e.g. adaptive event handling / callbacks, it's the same deal.

      --
      -Michael
    4. Re:PHP supports closures (as of 5.3) by Zenin · · Score: 1

      Because you don't get the same thing. By your logic it would be valid to say of class instances, "You get the same thing with struct pointers. What's with the buzzword?"

      At best class instances offer a very limited subset of functionality that true closures provide. Worse still, even the attempt at replicating the basic functionality of a closure using class instances requires much more (and far less clear) code. In many languages the attempt implies spaghetti coding.

      --
      My /. uid is better then your /. uid
    5. Re:PHP supports closures (as of 5.3) by mabinogi · · Score: 1

      Those two pieces of code are not equivalent, and only show that you used an example which doesn't require closures.
      The direct Javascript version of the C you wrote would be:

      function op(e) {return 9 + e;}
      for(var x = 0; x < 10; x++) { sum += op(x);}

      One contrived example of superfluous closures doesn't make the concept useless.

      --
      Advanced users are users too!
    6. Re:PHP supports closures (as of 5.3) by icebraining · · Score: 2

      The C code is very different from the Javascript code, because the 9 is bound at compile time. What makes a certain function a closure is how you can have multiple instances of the same function with different variables bound to it.

      Furthermore, since they bind to variables, changing the value of the variable outside the closure is reflected inside it:

      function a() {
          var x = 1;
          var c = function() { return x; }
          x = 5;
          return c;
      }
       
      var b = a();
      print b(); //prints 5.

    7. Re:PHP supports closures (as of 5.3) by exomondo · · Score: 1

      By your logic it would be valid to say of class instances, "You get the same thing with struct pointers. What's with the buzzword?"

      Not really, sure a struct is effectively just a class but a pointer is not the same - or even close to the same - as an instance.

    8. Re:PHP supports closures (as of 5.3) by Anonymous Coward · · Score: 0

      LMAO! Because PHP is a functional programmers dream language...

    9. Re:PHP supports closures (as of 5.3) by maraist · · Score: 1

      You just repeated what I said. But the function that creates a function with closed context is the vast majority of jQuery code that I've seen. But every place I've seen closures used have been either to minimize the call parameter stack or to compartmentalize callback material. Yes, there are more clever things you can do, but really it's just syntactic sugar around object oriented data-hiding (at least in Java).

      --
      -Michael
    10. Re:PHP supports closures (as of 5.3) by maraist · · Score: 1

      "Furthermore, since they bind to variables, changing the value of the variable outside the closure is reflected inside it:"
      True, but I've always considered this a negative.. The exact opposite of compartmentalization and data-hiding. Introducing bugs because it can cause unwanted surprise.

      function foo(x) { var v = function() { return x + 9; }; for (; x > 0; x--) { } ; return v; }

      Obviously contrived because I"m lazy, But in a sufficiently large function this type of bug is not uncommon. I more prefer the lisp and other immutable language style lambdas, or the Java style which requires declaring inputs final - makes it much more obvious the lack of side-effect programming.

      --
      -Michael
    11. Re:PHP supports closures (as of 5.3) by mabinogi · · Score: 1

      No, you didn't show an equivalent to a function that creates a closed context.
      You showed an equivalent to using the result of such a function when called with a specific literal.

      Your C example, whilst it would return the same output when treated as a whole, did not represent equivalent code to the Javascript.
      It was like saying that because you could just do:


      print "hello";
      print "hello";
      print "hello";
      print "hello";

      rather than

      for i = 1 to 4
          print "hello";
      end

      that therefore loops are useless syntactic sugar.

      All programming languages are syntactic sugar - that's the point. The trick is choosing which particular level of sugar suits you.

      --
      Advanced users are users too!
    12. Re:PHP supports closures (as of 5.3) by icebraining · · Score: 1

      That's how it works in Lisp too, from what I can tell:

      (defvar *flist* '())
       
      (dotimes (i 3 t)
      (setf *flist*
      (cons (lambda (x) (* x i)) *flist*)))
       
      (dolist (f *flist*)
      (format t "~a~%" (funcall f 2)))

      (This prints "6 6 6")

      Notice that the i changed after the lambda was created, yet its new value was reflected when the lambda was called.

      But in a sufficiently large function this type of bug is not uncommon

      I'd say that large functions are a bug by themselves :) Especially in a sufficiently high level language, like one that supports closures.

  13. It's a long way by TheModelEskimo · · Score: 3, Insightful

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

    1. Re:It's a long way by GMFTatsujin · · Score: 1

      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 and master the way I have already with Drupal.

      Having a big, flexible toolbox is good, but at some point you say, "Yeah, this'll the job" and get to it. Let me put to use what I've learned.

      (That being said, I just subcontracted a Drupal job from a designer whose client wants five pages on the site. FIVE CRAPPY PAGES. I just about tore my eyes out with rage.)

    2. Re:It's a long way by Anonymous Coward · · Score: 0

      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'm building the site right now" isn't really the time to start learning new stuff, so don't be too hard on yourself. But next time, you could look at learning some other options before you have to commit to a project that might favor a different approach. A lot of people do this.

    3. Re:It's a long way by Anonymous Coward · · Score: 1

      Django has a lot going for it, but its ORM is horrid -- at least for anyone coming from SQLAlchemy. No views? No stored procedures? Extremely limited dynamic query building? Bah.

      I use Django at work, and it does what we need, but I'm not about to go recommending it to anyone.

    4. Re:It's a long way by Foofoobar · · Score: 1

      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!! (my plug)

      --
      This is my sig. There are many like it but this one is mine.
    5. Re:It's a long way by dylan_- · · Score: 1

      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.

      --
      Igor Presnyakov stole my hat
  14. Re:Alright. this IS drupal pushing. by Anonymous Coward · · Score: 0

    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.

  15. What is a framework? by jc42 · · Score: 1
    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.

    --
    Those who do study history are doomed to stand helplessly by while everyone else repeats it.
  16. Re:Drupal is shit. PHP is shit. by Anonymous Coward · · Score: 0

    Sucks to be you I get over $100/hr programming in *gasp* PHP and no I don't live in California or NYC.

  17. Video Direct Link by nilbog · · Score: 1

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

    --
    or else!
  18. Re:Alright. this IS drupal pushing. by gnapster · · Score: 1

    This puts the new slashdot design in perspective. Are you not glad that slashdot is not using drupal?

  19. Re:Drupal is shit. PHP is shit. by Anonymous Coward · · Score: 0

    Mod parent up.

  20. Re:Drupal is shit. PHP is shit. by Anonymous Coward · · Score: 0

    No, you don't.

  21. Re:Drupal is shit. PHP is shit. by Anonymous Coward · · Score: 0, Funny

    Some fat chicks get 200 bucks an hour to suck cock. Doesn't make them anything special....

  22. Drupal is a pain by pacergh · · Score: 3, Insightful

    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.

    1. Re:Drupal is a pain by QRDeNameland · · Score: 1

      Pain. Now there's a key term in any definition of 'framework', at least in my experience.

      --
      Momentarily, the need for the construction of new light will no longer exist.
    2. Re:Drupal is a pain by Narcocide · · Score: 2

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

      Though it seems like nobody who has only bought websites and never made one themselves has ever survived the financial damage of making this mistake the first time, so the myth persists because none of the clients out there know their asses from a hole in the ground either.

    3. Re:Drupal is a pain by ameoba · · Score: 1

      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.

      --
      my sig's at the bottom of the page.
    4. Re:Drupal is a pain by ducomputergeek · · Score: 1

      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.

      --
      "The problem with socialism is eventually you run out of other people's money" - Thatcher.
    5. Re:Drupal is a pain by -noefordeg- · · Score: 1

      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:

      Anything else than the former.

      "Drupal is a bear to work with, fickle, frustrating, and overly complex"... People say the same thing about politics, the economy, and most other things they don't have a clue about how works. 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.

    6. Re:Drupal is a pain by pacergh · · Score: 2

      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 program or roll my own. For example, had to work on a website for an academic journal. I initially tried a few CMSes, including Drupal, but each offered significant complexity on my end AND the user end. No dice.

      Then I found the Open Journal Systems (OJS). Their solution worked for my specific task. It was a bit complex, but I wouldn't have had to write my own modules to do what I needed. Plus, it was more intuitive for my users. (Although it's user-workflow is still a bit clunky.)

      For other systems, such as basic customized contact management systems, I roll my own. The rise of frameworks utilizing the MVC principle is a blessing.

      It's long been a good maxim to separate the data from the code from the layout. MVC frameworks like Rails or Cake help do that up front instead of me having to design the separation myself. Drupal? Not so much.

      I'd say Drupal, in the broadest sense, could be called a framework. Nevertheless, I don't know why you would want to use it that way. The maintenance required for custom Drupal sites -- and I mean having to field calls from users fixing or modding modules, or adding new ones, or teaching them how to use existing things, on top of fixing problems and tuning it for resources -- is beyond what I want to provide. I'd rather Wordpress or Rails.

      And, more importantly, unlike most Drupal "developers" I know I'm not a "developer;" I'm a web designer who can hack away at stuff. If a client needs a developer I tell the client to get a real developer, or choose to use a more simple solution. TCO isn't something to be sneezed at, although it can be hard to educate clients on it.

      Finally, why is it so many Drupal people say something like:

      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.

      Really? Here's the skinny: Drupal is supposed to make development easier. Why the heck should I have to learn what amounts to a new bloody language to make Drupal "work," to access it's "full power." Heck, I'll just learn to access the full power of PHP (or learn an MVC framework like Rails) rather than spend "the time to actually learn Drupal;" time I could better spend getting projects done with the knowledge I have.

      Access for "the concept of hooks," really? It's not bloody rocket science, I could take the time to learn it, but once again why should I? If Drupal is going to make itself so bloody hard to use, why don't I just code from scratch?

      And don't give me that malarkey about security and avoiding cross-site scripting and avoiding SQL-injections. If you're spending the time to create a complex site that needs to take advantage of the solutions that lead to possible security problems like that then you'll also have the time to read up on best practices.

    7. Re:Drupal is a pain by Narcocide · · Score: 2

      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 official distribution to either benefit from future updates and compatibility with 3rd party contributed modules or to benefit from any time/cost saving that standardized, reusable code is supposed to afford.

    8. Re:Drupal is a pain by Uzuri · · Score: 1

      And where's my mod points when I need 'em.

      A standard framework stops being standard the moment you modify something. Then you may as well have written it from scratch.

      --
      I'm a she-slashdotter... but I make up for it by living with my folks.
    9. Re:Drupal is a pain by Uzuri · · Score: 1

      There was supposed to be a "Right on" in there somewhere. Stupid fingers.

      --
      I'm a she-slashdotter... but I make up for it by living with my folks.
  23. Re:Drupal is shit. PHP is shit. by Larryish · · Score: 0

    My feet smell great.

  24. Definition of a framework: by Narcocide · · Score: 1

    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.

    1. Re:Definition of a framework: by Anonymous Coward · · Score: 0

      Sexist post is super sexist.

  25. So... by JohnnyBGod · · Score: 1

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

  26. Re:Drupal is shit. PHP is shit. by Anonymous Coward · · Score: 0

    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.

  27. Framework, n by toxonix · · Score: 0

    An API or library which attempts to save the engineer from him/herself, but ends up suffocating the engineer by collapsing around him.

  28. Competing in a PHP contest by Anonymous Coward · · Score: 0, Funny

    Competing in a PHP contest is like running in the Special Olympics...

    ...well, you know the rest. ;)

  29. Re:Alright. this IS drupal pushing. by Anonymous Coward · · Score: 0

    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.

  30. Re:Alright. this IS drupal pushing. by yelvington · · Score: 1

    Did you bother reading the article?

    Ah, you must be new here.

  31. It's not all about development speed. by hobo+sapiens · · Score: 0

    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
    1. Re:It's not all about development speed. by Anonymous Coward · · Score: 0

      Nice post. I feel the same way. Drupal may be a leading star of "amateur hour", but it's still amateur hour. A "real" application deserves a custom code base built on an MVC framework like Zend, Symfony, custom code, etc.

    2. Re:It's not all about development speed. by Anonymous Coward · · Score: 0

      wow modded down by some fucktard.

      I remember the day /. was a place for geeks. Drupal fanbois are not geeks. They are people who leech off geeks.

  32. Actually... by dandaman32 · · Score: 3, Interesting

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

    1. Re:Actually... by Shados · · Score: 1

      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 working web sites, with all that already in a working state, and you just need to add your styles, template, and business-specific logic and you're done.

      Being a .NET dev, I use Umbraco (the best one is SiteCore by a landslide, and not just if you're a .NET dev...its just impossibly expensive. Worth it if you can afford it though). It handles all the stuff thats common to all websites, and not an inch more. Then doing anything "from scratch" that would take a few hours or days takes a few minutes, and you're not stuck with precanned impossible to modify garbage like some other major CMS will force on you: everything is easy to modify.

      There's a million CMS out there in all flavors that offer all level of abstractions and specialization, depending on your requirement. Pick one, and stop wasting your time doing garbage from scratch.

    2. Re:Actually... by Anonymous Coward · · Score: 1

      I maintain a small open source CMS called Enano

      Is it that hard to put "PHP" somewhere on the site, or are you so ashamed? It took way too many to clicks to finally find out that it's a PHP project in the admin handbook.

    3. Re:Actually... by denmarkw00t · · Score: 1

      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 something complex in functionality and simple in design, then a framework is the perfect middleground between From Scratch and Too Big to Handle.

      If your approach to every project is "There's a CMS for that!" then you are probably doing it wrong.

    4. Re:Actually... by greenreaper · · Score: 1

      Linux: Proudly made with C!

    5. Re:Actually... by Anonymous Coward · · Score: 0

      Something else that I feel that is quite important is that a framework, library or whatever you prefer to call it will provide a standardised API for modules/plugins/programs that will not be completely disregarded and reimplemented in a completely different manner with different function calls and parameters between every single major version release.

      Drupal fails in that regard.

      I tried to use Drupal very hard for about 3 years. (version 5 though 7, I think). The site was a customer facing portal. Everytime a major version came out, and even sometimes with minor versions, I had to completely rewrite a number of custom modules due to the Drupal developers utterly changing certain things - the most common one being the GUI builder API.

      18 months ago I ditched Drupal, built my own CMS/framework and haven't looked back since. It's quick, it can use memcached, it doesn't execute 30 SQL queries for a simple "Hallo world" page and most importantly the API stays consistent between versions, which means I don't have to waste weeks of my time rewriting modules because some moron somewhere decided to through the old API out the window and implement a new one that wasn't backwards compatible.

    6. Re:Actually... by Shados · · Score: 1

      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 haven't looked at the good ones (ok, aside SiteCore: that thing is a behemoth, but it IS really awesome, as I mentionned before =P)

    7. Re:Actually... by Anonymous Coward · · Score: 0

      "If, in this day and age, you're making a website from scratch, you're doing it WRONG."

      What a fucking idiotic remark. A website should just use a bloated, over-complex of framework 'because...'.

      I could have guessed you're a .NET developer just from that insight.

      One of those who think Complex == Better and Simple == 'Not doing it right'.

    8. Re:Actually... by Anonymous Coward · · Score: 0

      "Some other CMS" = DotNetNuke.

      All you PHP haters out there that gripe because PHP's standard libraries are inconsistent have obviously never had to write code using the DotNetNuke "framework". To say it's ugly would be an understatement.

      A CMS should not have a terribly complex data model. There should be a simple and straightforward way of working with each entity, and there should be a fairly limited set of easy ways to ensure each piece does its job correctly. Hell, I would say that you shouldn't even need automated unit testing for something as simple as this should be. But leave it to VB.NET cowboys to build an overcomplicated "n-tier" system with a poorly normalized database structure, code things in inconsistent ways that make PHP look like a paragon of organization, and then hack-job the thing to add features for a decade.

    9. Re:Actually... by kuzb · · Score: 1

      it doesn't execute 30 SQL queries for a simple "Hallo world"

      Sensationalist much? Either you did something to cause those 30 queries, or you're talking out your ass like a complete idiot. My vote is on you being an idiot.

      --
      BeauHD. Worst editor since kdawson.
  33. To hell with ALL of you puppies! by Chas · · Score: 1

    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!!!
    1. Re:To hell with ALL of you puppies! by exomondo · · Score: 1
    2. Re:To hell with ALL of you puppies! by GaryOlson · · Score: 1

      Did you forget how to direct the honeybees to create distortion free wax recordings.....AGAIN!

      And your audio playback lacks punch; remember to use the water smoothed igneous rocks instead of the sedimentary ones.

      --
      Every mans' island needs an ocean; choose your ocean carefully.
  34. Drupal sucks by mmj638 · · Score: 1

    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.

  35. PHP Haters Go Away by Anonymous Coward · · Score: 0

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

  36. Re:Drupal is shit. PHP is shit. by tgeller · · Score: 2

    Summary: "I hate Drupal because it undermined my high-priced business". If this was a troll, nice work!

    --
    Tom Geller
  37. FAILjoke. by sg_oneill · · Score: 1

    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.
    1. Re:FAILjoke. by Foofoobar · · Score: 1

      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)

      --
      This is my sig. There are many like it but this one is mine.
    2. Re:FAILjoke. by Anonymous Coward · · Score: 0

      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)

      Its a sad state that your supposed to include teh grammer errors too huh? But i guess if you didn't, then s/hitler/binladen/ wouldn't have anything to work with.

    3. Re:FAILjoke. by Anonymous Coward · · Score: 0

      It's to give a person time to check the quality of their post. Cowboy.

  38. obligatory by Weezul · · Score: 3, Funny
    --
    The Christian religion has been and still is the principal enemy of moral progress in the world. -- Bertrand Russell
  39. There are two sorts of PHP developers by SmallFurryCreature · · Score: 4, Insightful

    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.

    1. Re:There are two sorts of PHP developers by londoncaller · · Score: 1

      That is probably the best post I have ever read on Slashdot. And possibly the best post anywhere regarding the 'which language / framework / stack' is best debate.

    2. Re:There are two sorts of PHP developers by Adayse · · Score: 1

      How was this insightful? Knowing that every other thing out there cannot compete is impossible so all php coders are the second kind but I'm not fuming and I code php so the statement is false. Frameworks are useful for speeding up dull tasks - the dullest of all in the php world being any kind of workflow involving forms and user management. Drupal is somewhat ok for this. Drupal is also ok for building a website that will pass WAI tests and be somewhat user manageable without the coder being able to code php at all. Down the road Drupal is a goldmine for the shops building sites with it because you have to take it offline and replace all the code to update it many times every year, that alone would explain all the promotion it gets here, plus of course drupal site admins have time to post here while waiting for pages to load.

    3. Re:There are two sorts of PHP developers by Anonymous Coward · · Score: 0

      WELL SAID.
      Language fanboys can be the worst kind of fanboys. Mainly because they don't know WHY they are using that "godly" language.

      Facebook is a good example of the multiple languages section. No wonder the site is a maintenance nightmare.
      It is just pointless, any one of those languages could do the job perfectly fine.
      I guess the only reason they done it was to get as many developers on board as possible. (a good and bad idea, depending on the people co-ordinating them all)

      These days, development is all about hitting that big shiny Gandalf button and he does all the work for you. It is a terrible state of programming.
      Fine if you WROTE said wizard, but if it is some wizard that came with a development package that is constantly used, not so much. (that is outside of general tidying tools and the like. Those are only presentational, some people just have differing coding habits)

    4. Re:There are two sorts of PHP developers by gbjbaanb · · Score: 1

      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 latest tech" or by getting the framework/library/language/whatever to be easier and easier instead of learning the principles and being able to do things right.

    5. Re:There are two sorts of PHP developers by Alt_Cognito · · Score: 3, Insightful

      > 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 everywhere. In fact, many people judge the quality of a language by the quality of the libraries they have.

    6. Re:There are two sorts of PHP developers by drinkypoo · · Score: 1

      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 names. For a while Buick only had a single chassis for like seven names, but now they're back up to four chassis. The Hummer H2 is an optioned-up Tahoe with a goofy, unaerodynamic body.

      The simple truth is that you can make one website look like a dozen different websites by doing nothing but theming. On Drupal the theme literally controls the placement of everything you see. The various elements are wrapped in HTML by the theme and styled with CSS like anyone else's site. In addition, Drupal is a not uncommon choice for the backend for sites with flash interfaces (which don't even have to look like a website) because of its strong XML support.

      If people could write amazing code in assembly then why can't you make the language the project uses just work?

      And for the same reason, it's interesting that you bring up assembler, since nobody is writing websites in assembler. They're all using a framework of some kind to build their website upon.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    7. Re:There are two sorts of PHP developers by Anonymous Coward · · Score: 0

      Coding is more like the construction industry while yes maybe, occasionally a bit of creativity is used when it comes to mixing the just right cement or getting the heating as efficient as possible but on the whole you want it solid, secure, consistent and easy to maintain.

      Now you do get people that can encompass both creative and coding sides but I would still consider them separate skill sets. You don't need to be a coding master to come up with the creative ideas or innovation.

    8. Re:There are two sorts of PHP developers by chemosh6969 · · Score: 0

      If you're using anything other than binary, don't call yourself a developer, you are a code monkey. There's nothing wrong with using a framework. It's like the difference between someone using repetitive code and the next guy that makes a function for it. A framework, or function, isn't going to write the code for you but it will assist you in speeding it up.

  40. 30 minutes, right? by Dishwasha · · Score: 1

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

    1. Re:30 minutes, right? by Anonymous Coward · · Score: 0

      But so did all the others.

  41. what is a framework? by Anonymous Coward · · Score: 0

    a framework is a software device that generates consulting opportunities, period.

  42. Re:Drupal is shit. PHP is shit. by Required+Snark · · Score: 1
    You're absolutely right. PHP is so bad that there are no important applications written in it.

    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?
  43. Re:Drupal is shit. PHP is shit. by SimplyGeek · · Score: 2

    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.

  44. Microsoft? by jgoemat · · Score: 1

    Yes, lets let Microsoft compete in a spreadsheet disign competition using Excel as a base against other "frameworks".

  45. Definition by Experience by lymond01 · · Score: 1

    Framework: A bunch of organized and easily referenced functions which make development easier.

    CMS (Drupal, Plone, Etc): Fun for users. Hell for developers.

    1. Re:Definition by Experience by unity100 · · Score: 1

      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.

  46. Drupal is a jack of all trades by Crouty · · Score: 2, Interesting

    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.
    1. Re:Drupal is a jack of all trades by imgumbydammit · · Score: 1

      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.

      Honestly, I cannot read that and not feel complete despair. You are either a programmer or you are not. If you cannot create one form on your own without creating security holes you should have your fingers glued together for your own good. Please choose another language to embarrass.

      --
      That's right: I'm gumby dammit.
  47. I say not framework by kikito · · Score: 2

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

    1. Re:I say not framework by drinkypoo · · Score: 1

      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 optional core modules:

      Comment Allows users to comment on and discuss published content.
      Contact Enables the use of both personal and site-wide contact forms.
      Content translation Allows content to be translated into different languages.
      Database logging Logs and records system events to the database.
      Forum Enables threaded discussions about general topics.
      Help Manages the display of online help.
      Locale Adds language handling functionality and enables the translation of the user interface to languages other than English.
      Menu Allows administrators to customize the site navigation menu.
      OpenID Allows users to log into your site using OpenID.
      Path Allows users to rename URLs.
      PHP filter Allows embedded PHP code/snippets to be evaluated.
      Ping Alerts other sites when your site has been updated.
      Poll Allows your site to capture votes on different topics in the form of multiple choice questions.
      Profile Supports configurable user profiles.
      Search Enables site-wide keyword searching.
      Statistics Logs access statistics for your site.
      Syslog Logs and records system events to syslog.
      Taxonomy Enables the categorization of content.
      equired by: Forum (disabled), Image Gallery (enabled), Catalog (enabled)
      Throttle Handles the auto-throttling mechanism, to control site congestion.
      Tracker Enables tracking of recent posts for users.
      Trigger Enables actions to be fired on certain system events, such as when new content is created.
      Update status Checks the status of available updates for Drupal and your installed modules and themes.
      Upload Allows users to upload and attach files to content.

      So this is the set of functionality you know will work properly across all supported databases without adding any modules.

      Note that all this applies to Drupal 6. Drupal 7 as a framework is fine but if you depend on contrib modules then it is NOT READY. Further, most contrib modules are not database-independent at this point. I'd wait until at least 7.1 before I started using D7. D7 has a whole new system for database independence and most modules are still developing their own queries manually in a database-specific fashion.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    2. Re:I say not framework by kikito · · Score: 1

      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!

    3. Re:I say not framework by drinkypoo · · Score: 1

      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/build/modules

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  48. Drupal hungry. Drupal cries. Drupal loves papa. by unity100 · · Score: 1

    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 ?

    1. Re:Drupal hungry. Drupal cries. Drupal loves papa. by kuzb · · Score: 1

      Ask yourself that question when the ipad 2 is released, and the page is a solid wall of apple bullshit.

      --
      BeauHD. Worst editor since kdawson.
  49. Re:Alright. this IS drupal pushing. by unity100 · · Score: 1

    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.

  50. Re:Alright. this IS drupal pushing. by unity100 · · Score: 1

    quite a catch there.

  51. Re:Drupal is shit. PHP is shit. by Anonymous Coward · · Score: 0

    Bah, you got me. I lied.

  52. Re:Drupal is shit. PHP is shit. by Hognoxious · · Score: 1

    And I hate to break it to you, but there is no Santa Clause.

    Is there a get-out claus?

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  53. Re:There are two types of cars by Anonymous Coward · · Score: 1

    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.

  54. Video by Anonymous Coward · · Score: 0

    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.

  55. Slow down cowboy. It's been 53 minutes.... by Anonymous Coward · · Score: 0

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

  56. Definition of a framework by colin_young · · Score: 1

    If it doesn't do anything non-trivial and useful "out of the box" it's a framework. Therefore, Drupal is a framework.

  57. IOC by Anonymous Coward · · Score: 0

    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.

  58. It's not a framework when... by SandBender · · Score: 0

    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?
  59. I just love people who are condescending about PHP by Anonymous Coward · · Score: 0

    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.