Slash Boxes
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

Aristotle (5147)


Blah blah blah blah blah []

Journal of Aristotle (5147)

Tuesday July 31, 2007
04:24 PM

Learning from PHP and MySQL, then dismissing them

[ #33936 ]

Perrin Harkins:

There’s a tendency to just write off entire popular projects with some kind of sweeping generalization. […] Even if they aren’t your chosen tools, keeping enough of an open mind to learn from what they do right is worth it.

That’s easy enough: PHP is the best proof for Elaine’s Law that there is. It’s pretty awful, but the barrier to entry for new users is far lower than with any competitor, and the new web frameworks in other languages have not changed this fact either. Most of them are now competitive with PHP for developers already proficient (to some extent) at programming in general and with the underlying language in particular. But they’re still far harder for non-developers who just want to install an app to use it.

To some extent, the success of MySQL goes back to the same reason; certainly it is how MySQL gathered so much seminal momentum – nothing at the time was even close to its degree of simplicity of installation and maintenance. I posit that if SQLite was available at the time, MySQL would never have happened (as far as the world is concerned) and the arena today would be shared between SQLite and PostgreSQL. That is, assuming anyone had invested as much work into clustering Pg as has gone into MySQL – because while solutions for that exist for Pg, you have to pick from one of several and they’re all harder to get going than MySQL. (There’s Elaine’s Law again.)

And I agree that we should learn from that. The clearest implication is that fixing the CPAN toolchain (which was fine enough in the era of its conception, but times have changed and we need to follow) is of the essence if we want to regain impact. Adam Kennedy, Schwern, Ken Williams, Ovid, Andreas König and a host of others deserve high praise for their ongoing work in that area.

But I don’t see how being openminded enough to learn from the strengths of others implies not criticising them. I don’t shy from criticising Perl; why wouldn’t anyone else be fair game?

Of course, criticism should have basis in fact; statements like “if everyone used Pg, we wouldn’t need database partitioning” are a fool’s utterance. And I have written PHP code in the past, and currently administrate several PHP applications for other users. I also use MySQL fairly heavily both as an admin and as an SQL developer. On those grounds, I would qualify my involvement with both as unfortunate; it did nothing but give me more grounds on which to criticise them. However, I think exposure to the sometimes disturbing facts alone is enough for some criticisms levelled against these platforms, even without any experience using them.

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
More | Login | Reply
Loading... please wait.
  • Saying PHP is "pretty awful" without actually talking about any specific issues with it is just the kind of thing I mean. It adds nothing useful to the discussion and creates an environment of insults and flame wars. If you want to talk about things that bother you in PHP, go ahead, but you'll get better results if you do it in a way that's less insulting and more constructive.

    Maybe my attitude about this comes partly from going to conferences and meeting the developers who work on these things. There ar
    • I sat on this comment for a couple of days because I didn’t know quite where to start with the response.

      1. Would you object if I called bash a pretty awful programming language? Do I really have to list all the specific problems that make it unfit for a very large domain of problems, every time I want to say it’s unfit for them? Assuming you wouldn’t: why is bash fair game but PHP sancrosanct?

      2. My motivation is not to fix PHP. It is plenty successful despite all the naysayers anyway, but

      • I know there are people behind these projects. I generally don’t attack developers; I hope they are mature enough to be able to tell critcism of their work apart from criticism of their person.

        I've never met a developer who wouldn't be upset by someone calling their code awful.

        But in the case of PHP specifically, I have multiple anecdotes

        Good. Those sound much more reasonable than a blanket statement.

        Saying something really general like "PHP is pretty awful" looks like denial of the things that are g
        • I guess this comes to down to a difference in points of view.

          I assume, on principle, that my code is generally awful… :-) Sometimes I know it’s not, in which case someone else’s calling it awful just makes me shrug; unless I know it’s a sharp programmer in which case I ask. (Even then I’d be hard pressed to ever use an epithet like “beautiful” – the best thing I have to say about any particularly good piece of code I wrote is that it’s “simple