Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K

    Veekun

    me.veekun.com · Personal blog · on HN since 2011

    Eevee (Alex Munroe) writes about programming, language design, and software practice, including a well-known critique of PHP.

    Visit blogHN submissions
    ProgrammingLanguages & Compilers
    What HN says

    HN commenters repeatedly cite 'PHP: A fractal of bad design' as the definitive case against PHP, often as an answer to defenses of the language.

    Stats for nerds
    76HN people shared it
    21linked in comments
    1.9Kstory points
    May 2014last shared
    2012people per year2014

    Top posts on HN

    1. 1
      PHP: A fractal of bad design
      54 people · 766 points · first shared 2012 · 495 comments on HN
    2. 2
      Fuck passwords
      2 people · 660 points · first shared 2011 · 240 comments on HN
    3. 3
      I only know PHP. How do I write a Web application in Python?
      1 person · 230 points · first shared 2012 · 186 comments on HN
    4. 4
      Python FAQ: Equality
      1 person · 91 points · first shared 2012 · 10 comments on HN
    5. 5
      Python FAQ: Descriptors
      1 person · 41 points · first shared 2012 · 2 comments on HN
    6. 6
      Quick doesn't have to mean dirty
      2 people · 37 points · first shared 2012 · 19 comments on HN
    7. 7
      A new use for StackOverflow
      2 people · 27 points · first shared 2013 · 1 comments on HN
    8. 8
      Tmux is sweet as heck
      1 person · 20 points · first shared 2012 · 1 comments on HN
    9. 9
      The Controller Pattern Is Awful, Or, Stop Writing Stupid Classes
      6 people · 13 points · first shared 2013 · 5 comments on HN
    10. 10
      CVs and File Extensions
      2 people · 4 points · first shared 2013 · Discussion on HN

    What HN people wrote when they linked it

    • nbouscalMay 2013

      There are two very different types of arguments typically made as to why to learn the more esoteric languages (Haskell, Lisp, Forth, others).

      The first is the more common: learning these languages exposes you to other ways of programming, which in turn makes you a better programmer no matter what language you're programming in. This is unquestionably true. Mainstream languages are constantly learning new things from these languages, which means you will be able to apply the techniques you learn from them to your code no matter what language you write in. I have the misfortune[1] of writing a lot of PHP at my day job, but it turns out even PHP has support for filter and map over arrays. If I hadn't learned functional programming, I would never have even looked for them.

      The other argument, which is made less often, is that you can actually write great software in these languages. This argument is made less often because we can obviously look at the market and the TIOBE index and see that Haskell is way down at #30 with 0.323% of the market share. However, there are really great programs made in Haskell (xmonad, for one). There are also tons of great programs made in Lisps, especially Clojure of late. So, this second argument is not entirely a dead end either.

      Revisiting something I mentioned in the first argument for a moment though, I would actually make a third argument that I rarely see. As I said, other languages are constantly learning new things from these languages.…

    • l0gicpathOct 2012

      Php is a scripting language specifically designed for web development. Hence, not fit to be in a head to head comparison with a general purpose programming language.

      Thus the comparison is held at that level (web), comparing php with a web framework. If that wouldn't make any sense, then it does make sense to compare php with C++ or Java (which it doesn't).
      After all, you can write a website in C++.

      Putting that aside, your viewpoint is hilarious as well. I find it amusing how you call the issue you linked at, a core rails bug when your knowledge of rails doesn't qualify for such a statement.

      It wasn't a bug. If you are a rails developer, have indeed read the issue and replies or at least read the title well enough, you would have concluded that it was a bad coding practice.

      The security measure to prevent such mass attribute assignment "was" present for developer's to utilize.
      It's a single line of code, but some lazy asses wanted that auto-generated/forced/opt-out instead of opt-in.

      It's a good practice, an advised practice, a recommended practice to write that single line of code. The fact that a mass majority of rails developers didn't write it, or ignored this warning doesn't mean it's a "core rails bug".

      No, the ruby/rails community is not as large as Php.

      Yes, the php community has an awkward tendency to write "below" the par software while charging for it.

      Any experienced php developer will confirm this sad fact and will probably blame the language for…

    • adambardMay 2013

      I cannot possibly hope to express the reasons I dislike PHP better than this comprehensive article: http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/

      An excerpt:

      > I can’t even say what’s wrong with PHP, because— okay. Imagine you have uh, a toolbox. A set of tools. Looks okay, standard stuff in there.

      > You pull out a screwdriver, and you see it’s one of those weird tri-headed things. Okay, well, that’s not very useful to you, but you guess it comes in handy sometimes.

      > You pull out the hammer, but to your dismay, it has the claw part on both sides. Still serviceable though, I mean, you can hit nails with the middle of the head holding it sideways.

      > You pull out the pliers, but they don’t have those serrated surfaces; it’s flat and smooth. That’s less useful, but it still turns bolts well enough, so whatever.

      > And on you go. Everything in the box is kind of weird and quirky, but maybe not enough to make it completely worthless. And there’s no clear problem with the set as a whole; it still has all the tools.

      > Now imagine you meet millions of carpenters using this toolbox who tell you “well hey what’s the problem with these tools? They’re all I’ve ever used and they work fine!” And the carpenters show you the houses they’ve built, where every room is a pentagon and the roof is upside-down. And you knock on the front door and it just collapses inwards and they all yell at you for breaking their door.

      > That’s what’s wrong with PHP.

    • toupeiraAug 2013

      Reminds me of this glorious quote from http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/:

      "I can’t even say what’s wrong with PHP, because— okay. Imagine you have uh, a toolbox. A set of tools. Looks okay, standard stuff in there.

      You pull out a screwdriver, and you see it’s one of those weird tri-headed things. Okay, well, that’s not very useful to you, but you guess it comes in handy sometimes.

      You pull out the hammer, but to your dismay, it has the claw part on both sides. Still serviceable though, I mean, you can hit nails with the middle of the head holding it sideways.

      You pull out the pliers, but they don’t have those serrated surfaces; it’s flat and smooth. That’s less useful, but it still turns bolts well enough, so whatever.

      And on you go. Everything in the box is kind of weird and quirky, but maybe not enough to make it completely worthless. And there’s no clear problem with the set as a whole; it still has all the tools.

      Now imagine you meet millions of carpenters using this toolbox who tell you “well hey what’s the problem with these tools? They’re all I’ve ever used and they work fine!” And the carpenters show you the houses they’ve built, where every room is a pentagon and the roof is upside-down. And you knock on the front door and it just collapses inwards and they all yell at you for breaking their door.

      That’s what’s wrong with PHP."

    • SkoofooApr 2013

      Instead of focusing on making a PHP framework that's like Rails, you should focus on "how can I boost developers' productivity in a unique way?" This is how libraries and frameworks become popular. If you try to model your software after existing software, it'll only ever be second-best, at best.

      Rails became popular despite few people knowing Ruby because it took full advantage of the language's expressiveness and ergonomics and had innovative abstractions.

      Today we're slowly shifting towards things like Meteor, which combine back-end and front-end development and make it super simple to write dynamic single page web-apps.

      The primary issue with your framework is that the PHP ecosystem is already saturated with traditional MVC frameworks. Most experienced web developers who care about their craft have been shunning PHP for a while now [1], and those who do use PHP will probably stick with a more stable, documented and in-demand framework like CakePHP.

      The pragmatic thing to do would be to contribute to your favorite framework instead of making a new one, unless you can start something that boosts productivity in a unique way. Contributing doesn't have the same glamour as leading your own thing, but remember that this is open source -- we're all on the same side.

      [1] http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/

    • eroppleApr 2014

      Once you've decided that the "tolerance" of letting one person fuck with less privileged people is virtuous, I literally can't say anything that will parse for you. I'll leave you with a link to the best description of this bullshit affair and one quote from it, and then I am done.

      > Did you catch the problem here? I’ll spell it out for you: he doesn’t give a shit about tolerance, or opposing discrimination. He only cares insofar as people tolerate him. He wants to be left alone to fuck with other people.

      > And he is wielding it as a weapon to shut everyone up.

      It applies to those preaching tolerance for Eich as well as Gerv, about whom Eevee is writing. A "tolerance" that amounts to "sure, he's actively tried to hurt you, but let that slide" is not particularly meaningful. (Whereas the tolerance of "gay people can get married, and if I don't want to get gay married I don't have to" is meaningful because it is not infringing upon anyone--but you'll notice that the word "tolerance" is rarely used by people who support such basic dignities. Strangely enough, it's so frequently the watchword of the oppressor, not the oppressed.)

      http://me.veekun.com/blog/2014/04/05/mozilla-and-free-speech/

    Related

    Eeveeeev.ee310 people

    Old CSS, New CSS

    Eevee
    Personal · last shared 2026
    Brent (stitcher.io)stitcher.io87 people

    PHP in 2019

    Brent (stitcher.io)
    Personal · last shared 2026
    Phil Sturgeonphilsturgeon.co.uk24 people

    Benchmarking Codswallop: Node.js vs. PHP

    Phil Sturgeon
    Personal · last shared 2014
    Nibble Stewnibblestew.blogspot.com74 people

    Apple of 2019 is the Linux of 2000

    Nibble Stew
    Personal · last shared 2026
    Coding Horrorblog.codinghorror.com2.1k people

    Farewell Stack Exchange

    Coding Horror
    Personal · last shared 2026
    Artima Developerartima.com464 people

    Google Groups Data To Be Destroyed

    Artima Developer
    Publication · last shared 2026
    Theodo Blogtheodo.fr159 people

    Introduction to Event-Driven Architectures with RabbitMQ

    Theodo Blog
    Company · last shared 2025
    Slack Engineeringslack.engineering281 people

    Taking PHP Seriously

    Slack Engineering
    Company · last shared 2026