Forgot your password?
typodupeerror
Perl Books Media Programming Data Storage The Internet Book Reviews

MySQL and Perl for the Web 244

Posted by timothy
from the good-place-for-em dept.
Craig Maloney writes "MySQL (love it or hate it) is one of the most popular databases for deploying websites. Perl (also love it or hate it) was almost synonymous with website programming. Arguably there are different choices for different needs in web development (PostgreSQL, PHP, Java, etc.), but there is no argument that if you are planning on putting together a website, using MySQL and Perl that MySQL & Perl for the Web will aid immensely in that development." Read on for the rest of Maloney's concise review of the book. While not new, he says it's still a valuable volume.
MySQL and Perl for the Web
author Paul DuBois
pages 552
publisher New Riders
rating 10
reviewer Craig Maloney
ISBN 0735710546
summary A clear, well written book for Perl and MySQL

Who is this book for?

Developers looking for a quality book on Perl and database development should not pass this book up. While the title of this book is MySQL & Perl for the Web, it could have easily been called DBD/DBI & Perl for the Web. The SQL examples may or may not work with various databases, but the DBI interface code should remain the same. This book will also do well as a reference for experienced coders looking for well-crafted examples of web-based applications.

What's good?

The second chapter should be enough to get anyone up to speed with using Perl, DBI, CGI, Apache, and MySQL. After a brief introduction and configuration of MySQL and Apache, the author settles in to discuss coding DBI and Perl. The remainder of the chapter details the best practices for using Perl and DBI together. Near the end of the second chapter, the author creates a fully functional to-do list, demonstrating ways to add, update, and delete information from the database using Perl and DBI. Instead of taking small baby steps over many chapters, the author shows important concepts and best practices for those concepts quickly. Even seasoned (hardened?) programmers may learn new tricks or methodologies from the second chapter of this book.

Is that the end? Are we left with one very well written tutorial chapter? Thankfully, the rest of the book has plenty to offer. Subsequent chapters include:

  • Improving performance with mod_perl
  • Generating and processing forms
  • Writing form-based applications
  • Automating the form-handling process
  • Performing searches
  • Session management
  • Security and privacy issues
  • E-commerce applications

Each chapter is clearly written, with several examples used to demonstrate the concepts presented. The examples are clearly written, and the author makes the whole learning process enjoyable and fun. The examples range from a give-away contest (including a random drawing), an electronic greeting card program, polling programs, and a shopping cart program. Each of the examples is presented completely, but are introduced in pieces (subroutines, modules, etc.) The full source code is available from the author's website at http://www.kitebird.com/mysql-perl/

What's in it for me?

MySQL & Perl for the Web is the book that Perl programmers on any project will wish The Other Guy had read. The examples are clear, the writing is engaging, and the code is maintainable. This is a practical book and should not be overlooked in any serious Perl programmer's library.


You can purchase MySQL and Perl for the Web from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

This discussion has been archived. No new comments can be posted.

MySQL and Perl for the Web

Comments Filter:
  • Web, schmeb (Score:5, Insightful)

    by jargoone (166102) * on Monday April 26, 2004 @04:31PM (#8976068)
    Perl (also love it or hate it) was almost synonymous with website programming.

    Love Perl for most anything, hate it for web "programming". There's a good reason it was synonymous with website programming. It's because there now exist more flexible, robust, easy-to-use platforms for web development.
    • Re:Web, schmeb (Score:5, Interesting)

      by wawannem (591061) on Monday April 26, 2004 @04:37PM (#8976143) Homepage
      Currently working in a Java/JSP/Sybase-based web programming environment and I love it.

      But, I will give perl it's props.

      I often use it to prototype large projects. Despite most arguments for other languages, I will say that you can pump out perl code pretty fast and it does help when you need some mockups and basic functionality to sell a concept.
    • Re:Web, schmeb (Score:2, Informative)

      by zerocool^ (112121)
      Thank you, that was my immediate first reaction. Perl is a regexp manipulation language first, and very well suited for a variety of other tasks, other than web development. But, for webdev, there are many other languages that have been developed since perl that are much better.

      Perl had to be adapted to web development, and it still suffers from various problems (for example, it's significantly slower than php). Php was written to be a web processing language. It's easier to understand and easier to
      • Please support you statement that Perl is slower than php.

        • Re:Web, schmeb (Score:4, Informative)

          by zerocool^ (112121) on Monday April 26, 2004 @04:54PM (#8976358) Homepage Journal

          ?? Support your inferrence that perl is faster than PHP?

          I don't have hard numbers, but I have been in environments where both are used, and perl seems to perform much worse. Specifically, I administer ~100 webservers, and clients that use more php put far less of a load on the system than people writing in perl scripts executed through web pages or mod_perl. In multiple years of working with both, perl just has become synonymous with higher system load.

          The load jumps related to PHP that I see are always MySQL based loads.

          ~Will
          • by Etyenne (4915) on Monday April 26, 2004 @05:00PM (#8976424)
            It well-known indeed that the plural of anecdote is data.
            • Damn, that's a beautiful post! I'm in tears laughing. Bravo. Not only have you tossed an asbestos blanket over the smoldering flame war, but did it with some humor.

              Thanks.
          • Re:Web, schmeb (Score:4, Interesting)

            by consumer (9588) on Monday April 26, 2004 @05:01PM (#8976447)
            Frankly, if PHP outperformed mod_perl on your system it was probably because of mistakes in the Perl code. Even PHP boosters admit that mod_perl is faster, as in this talk [yahoo.com] from Yahoo.

            • Possibly, but, in my world, you have to take that into account. You can't just say "properly written perl is faster". It might be; however, it is just as important that badly written perl brings a server to its knees, while PHP seems to fail gracefully.

              I'm honestly not trying to sing the praises of PHP, I'm just trying to point out that a LOT of system load of computers I deal with is due to perl code. I didn't write the code, so I don't know the specifics of how good/bad it is, but I'm just making a ge
              • You may have this perception because people rarely use PHP code to do heavy lifting. Or it may be that you've encountered many servers where people were actually running code as CGI, not mod_perl. CGI is slow.

                Regardless, I have never seen a benchmark where PHP ran faster than mod_perl, and for the most part, performance differences between them are negligible compared to the performance differences resulting from well-written code vs. poorly-written code.

                • CPAN Schmepan (Score:2, Interesting)

                  by gimpboy (34912)
                  You may have this perception because people rarely use PHP code to do heavy lifting.

                  I would have to agree with you here. If you are going to compare speed of perl to speed of php, you have to compare the two doing the same thing.

                  Also, You cannot forget CPAN. The PHP folks will typically say something like, well we have PEAR. Unless PEAR has made some amazing strides in the last year or so, it is still no comparision to the massive body of code that CPAN provides.
          • clients that use more php put far less of a load on the system than people writing in perl scripts...

            Well there you have it. Treat Perl like a scripting language and you get what you deserve.

            Check out TTK, Mason or bricolage. I think you'll find that writing very low-footprint, scalabale applications is as easy in Perl as it is in many languages, and moreso than most. The problem arises when you get someone who doesn't even understand what a stateless system's likely bottlenecks will be trying to write c
          • Re:Web, schmeb (Score:3, Informative)

            by Doyle (620849)
            In multiple years of working with both, perl just has become synonymous with higher system load.

            Here are some benchmarks [dmst.aueb.gr] you might find interesting. Particularly:

            The results of PHP were not what we expected. Being exposed to the hype that rules on the Internet about PHP, we expected it to be at least at the second place. It did not scale well (see BENCH4) and exhausted system processing power when it run, leaving it unusable. We must admit that PHP is tightly linked to MySQL, which was not how we used

      • Rooting (Score:5, Funny)

        by ryantate (97606) <ryantate@ryantate.com> on Monday April 26, 2004 @05:27PM (#8976761) Homepage
        The only reasons to use perl over PHP for web development are 1.) familiarity with perl (slashdot), and 2.) security (to avoid "today's php upload root exploit").

        So PHP is ideal unless, you know, you don't want to be rooted ...

        Noted.

        (Backs away slowly ...)
      • Re:Web, schmeb (Score:5, Informative)

        by sporty (27564) on Monday April 26, 2004 @05:31PM (#8976807) Homepage
        No. perl is not a regexp manip language. The regular expression stuff is a subset of it, just like the data structures and what not.


        Saying that perl had to be addapted to web development is just wrong. perl also, is not slower than php. Perl is a VERY modular language. You can do traditional CGI programming in it, just like php. There are many templating options as well as mod_perl, which more resembles java servlets than it does php.


        Also, stating that it's clearer means nothing. At least with DBI, i know how to connect to any database. With php, there's a seperate function to open a connection to the database, per vendor. Their function names are quite conveluded, switching orders of word types, i.e. noun_verb vs verb_noun.


        PHP is built for the web first, and is a programming language second.

      • Re:Web, schmeb (Score:3, Interesting)

        by daperdan (446613) *
        Maybe you should qualify your statement with: PHP is faster than a perl script executed out of a /cgi-bin/ directory without any accelerators. You'll find benchmarks all over the place that will show you that mod_perl out performs php in most cases.

        http://www.bagley.org/~doug/shootout/

        This is old info but it does show that php's scripting engine has room for improvement.

        Ultimately, when you consider the price of memory and processor speed, it doesn't really matter.
      • Re:Web, schmeb (Score:4, Interesting)

        by ajs (35943) <ajs@nOsPam.ajs.com> on Monday April 26, 2004 @06:21PM (#8977386) Homepage Journal
        Perl had to be adapted to web development

        No more so than any other language. PHP really doesn't count here... it's an HTML templating tool that was adapted to programming, which is why it's great for prototyping small web tools, but even at the medium-scale (e.g. PHPNuke/PostNuke) it's already cumbersome in the extreme (look at how many times those two projects have had to re-architect). Insofar as PHP is getting back to its roots and becoming Perl again, it's a good language.

        If I were starting from scratch on a new Web-related project I might use PHP, but I would almost certainly treat it as a templating system only, and then write the back-end in Perl or Java depending on the platform. But that might just be that I've not explored TTK enough... I've heard very good things about it as a templating system.

        it's significantly slower than php

        No, no it's not. Running any kind of benchmark on real code it's not. When you integrate Perl poorly with a Web server, then it's slow. When you integrate it well (e.g. bricolage, TTK, Mason) it's quite reasonable, and VERY easy to develop in.

        [PHP is] easier to understand and easier to program in

        well ... to a PHP programmer yes.

        PHP is a Perl derivative in roughly the same way that Java is a C++ derivative. One's children always spend their youth claiming that their parents "did it all wrong", but as they grow and mature they find that their parents had gone through all of this before and that their decisions were not so very surprising after all. PHP has come a long way, and bravo to it, but let's not get hyperbolic.

        Familiarity with perl (slashdot)

        Were you using Slash as an example of something written by someone familliar with Perl or as an example of something one would be familliar with?

        If the former, it probably should have been "Familiarity with Perl and PHP not having been written yet (Slashcode)"
    • Yes, that's what it stands for, but don't tell anybody.

      I love perl for what it was designed to do: process text in just about any way imaginable. I hate it for the purpose proposed here: CGI scripts.

      I usually use PHP for Web pages, a mixture of PHP, Perl and Bourne shell (and whatever else is at hand) for the back end, and I wouldn't touch MySQL for a database if my life depended on it, when there are vastly superior OSS altrernatives [postgresql.org] available.

    • Why bother? (Score:3, Interesting)

      by Decaff (42676)
      Perl is a superb scripting language for system coding, but...

      Now with systems like Java Server Faces and Creator you can design a web form in a few seconds using a drag-and-drop designer, clip in some data validators, and visually design navigation through a complex website. A few more clicks and you have an single archive file that can be dropped into any J2EE application server, using any JDBC database on any platform.

      You can design, code and test complex form-based web applications in minutes.. and al
      • Now with systems like Java Server Faces and Creator you can design a web form in a few seconds using a drag-and-drop designer, clip in some data validators, and visually design navigation through a complex website. A few more clicks and you have an single archive file that can be dropped into any J2EE application server, using any JDBC database on any platform.

        I'll believe it when I see it. Right now, the situation is that Java Server Faces is a very complex API and mature tool support does not appear to

        • Java Server Faces is totally free, and its not complex at all, especially when compared to hard-coding form validation in Perl/CGI. Mature tool support is available in the next few months from Sun, Borland, IBM and oracle. There is a free implementation that can be downloaded from Sun's website, and a free evaluation (but working) copy of the Creator visual designer.

          You may need to crack open the lid at some point, but GUI tools will get you most of the way.
      • Where is this JSF Creator? If you have a link I'd be most grateful.
    • Re:Web, schmeb (Score:3, Interesting)

      by eviltypeguy (521224)
      I'm not sure I could agree, at least for pure web-based applications. The company I work for has a massive, modular, quasi-object oriented, web-based application that is written using mod_perl and XS. It totals over 300,000 lines of Perl code easily (lost track at this point) and is fairly easy to maintain since it's modular (designed to allow easy removal of pieces of system and have it respond accordingly).

      The things that keep us using Perl are easy to identify:

      1) very rapid development and even our non
  • Linux, Apache, Mysql, and Perl. They changed the world forever.
  • by Archangel Michael (180766) on Monday April 26, 2004 @04:37PM (#8976156) Journal
    I have been using a MySQL / Perl solution called WebGUI [plainblack.com] for quite a while
    now. It is a full CMS system that is truly open source and cross
    platform, running on *nix, Windows and MacOS.

    It truly is powerful yet very easy to use. Plenty of features such as Submissions system, Bulletin Board, Calendar, Syndicated Content and much more.

    If you are looking for such a solution, feel free to give it a try.
  • by tcopeland (32225) * <.moc.dnalepoceelsamoht. .ta. .mot.> on Monday April 26, 2004 @04:39PM (#8976191) Homepage
    ...and you've got a Ruby [ruby-lang.org] app to write, you'll be happy to know that Ruby/DBI [rubyforge.org] is available.

    It's being actively developed - a FrontBase release just happened a few days ago - and it supports a big list [rubyforge.org] of databases.
  • by Metallic Matty (579124) on Monday April 26, 2004 @04:39PM (#8976194)
    This will be an excellent addition to the O'Reilly books on Perl I already have.

    The whole love or hate thing in the article intrigues me I might add. I love both MySQL and Perl. Why? Well, you can't beat MySQL for its cheapness facor. Let's face it, most people don't need some professional job, myself included. And as far as Perl goes, well, anyone who's used it significantly can understand how great it is for practical answers on the fly.
  • by Anonymous Coward on Monday April 26, 2004 @04:41PM (#8976223)
    ...until I discovered poking myself with a sharp stick.
    • by Anonymous Coward
      You know you've been coding in Perl too long when...
      • It starts to look like line noise.
      • You start copying line noise into your perl scripts.
      • The scripts still work.
  • old book? (Score:5, Informative)

    by inf0c0m (83209) on Monday April 26, 2004 @04:41PM (#8976227) Homepage
    does anyone else realize that this book is exteremly old?

    Paperback, August 2001

    also.... on the same bn site

    A new copy is not available from Barnes & Noble.com at this time.
  • One whole chapter? (Score:3, Interesting)

    by oneiros27 (46144) on Monday April 26, 2004 @04:43PM (#8976246) Homepage
    Even seasoned (hardened?) programmers may learn new tricks or methodologies from the second chapter of this book.
    I don't know about you, but one whole chapter seems to be little reason to purchase a book.

    As there are already books such as Programming the Perl DBI and Web Development with Apache and Perl, is the niche that this book is trying to fill actually worth it? Would I be better off reading Writing CGI Applications with Perl and The Official Guide to Programming with CGI.pm?

    Personally, I haven't read a single one of them, so I'd really love to know. (one of these days, I'll actually read the copy of Practical mod_perl that's been collecting dust on my shelf.)
  • by agwis (690872) on Monday April 26, 2004 @04:49PM (#8976300)
    I personally won't use Perl for backend programming on a website but if I had to I would probably buy this book based on the fact that it is authored by Paul DuBois.

    When I first started out with MySQL I bought the book titled 'MySQL' written by DuBois. Since then, I've obtained a couple of other books about it and still find myself referring to his most often.

    Too bad it isn't MySQL and (PHP|Python|Java). Who uses Perl in web programming anymore?

    *dons flame retardant suit*

    -Pat
    • Who uses Perl in web programming anymore?

      We use it at my company for the vast majority of our web programming tasks, and it works very well for us. Reasons I personally like it:-

      * Contorl. While PHP may do a lot more for you (e.g. form parsing), there have certainly been issues related to how it did things. In Perl you can do it as you want. If you put this in a module, as we did, then Perl is no more work than PHP beyond that one-off cost.

      * I find the Perl database access model preferable to PHP. C
    • by glwtta (532858)
      Who uses Perl in web programming anymore?

      Well, there's me... then there's sites like IMDB and Amazon.com, and *um* Slashdot?

  • by CaptainPinko (753849) on Monday April 26, 2004 @04:50PM (#8976306)

    Nice. I'm planning on learning how to tie scripting (have decided on Perl yet but it's a contender) and databases this summer anyway. This book might make the decision as to what to use for me.



    However, for those just picking up Perl for the first time I recommend the free ebook Picking Up Perl, and the [ebb.org] ActiveState Perl Interpreter [activestate.com] for Windows (this was a while ago-- if you are using Linux it probably aleraday has Perl installed). And then as it was Windows I was learning Perl on I used OpenPerl IDE [sourceforge.net]. For Linux I recommend using Kate and Konsole.



    Not trying to be off-topic here but I figure someone reading this may want to try out what this Perl thing is.



    Disclaimer: Not a Perl fan at all, I actually perfer Python, but to each their own and as any Perl hacker can appreciate TIMTOWTDI! ;)

  • by jd142 (129673) on Monday April 26, 2004 @04:59PM (#8976419) Homepage
    One thing that Perl has going for it that PHP doesn't is that it has correctly set up the database connection functions. Once you connect to a data source, all of the commands you use to interact with that connection are the same, whether you are using mysql, postgresql, or just a csv file. This means that you can change backend databases trivially, merely by changing one line of code.

    With php, the commands for connecting to a database and running a query change, sometimes drastically, depending on the database you are using. For example, until recently if you had a query to run on a mysql backend, you did mysql_query($query) but for a postgres it was pg_exec($query). That is changing at least so now it's pg_query($query) but it still makes changing backends a large search, replace, and hope nothing breaks task.
    • Not true. There's database layers for PHP you can use that'll make your database connections heterogeneous...

      ezSQL [justinvincent.com] is one that comes to mind. There's plenty more.
        • There's plenty more

        And there's no problem with this? I have the same reaction when people tell me that X language now has regular expression libraries available for it. That's great in some circumstances, but unless there's one or two really good implementations of an API that everyone clusters around, it ends up being a drag on the community. Perl has very good built-in strings, associative arrays, and regular expressions, and this is very helpful the community. The community uses CPAN and generally

    • Just because a language wasn't designed with certain features in mind doesn't mean they haven't been made available for you to use. Take C, for example. The C language doesn't even let you print to the terminal without external libraries.

      Similarly, if you look at the PEAR project [slashdot.org] site, you'll see no less than four database abstraction layers. PEAR DB is mature, widely used, and actually ships with the core PHP distribution these days. If you don't use it, that's your own affair.
    • You're greatly overstating the strengths of Perl's DBI. I love the system but to say "you can change backend databases trivially, merely by changing one line of code" is wrong in nearly any real-world application, in my experience.

      Just one quick example, the highly common operation of obtaining the value of an autoincrement column for a row you have just inserted. That is to say, obtaining (usually) the id of the row you have just inserted. This is not abstracted across RDBMS platforms. So for MySQL it is
  • by jesterzog (189797) on Monday April 26, 2004 @05:04PM (#8976480) Homepage Journal

    Arguably there are different choices for different needs in web development (PostgreSQL, PHP, Java, etc.), but there is no argument that if you are planning on putting together a website, using MySQL and Perl that MySQL & Perl for the Web will aid immensely in that development.

    Maybe so, but I still have trouble figuring out why MySQL is given so much credibility in the first place.

    In the previous story about MySQL [slashdot.org], I posted a comment asking what it actually did that other databases (including the also-free PostgreSQL) didn't do at least as well, or better. The main responses seemed to include:

    • MySQL being the only DB supported for an application that someone wanted.
    • People already being very familiar with MySQL's strange ways of doing things [sql-info.de] that are inconsistent with every other respected database, not to mention SQL standards.
    • No other free databases having reliable Windows builds. (A Windows build of Postgres is on the way, but not yet fully complete.)
    • ISP's only providing a MySQL server.
    • Simply not knowing anything else due to past experience.

    The Windows build issue seems quite reasonable, but the other reasons imply that the main reason MySQL is so popular is simply due to lock-in. People use it because they have to, or because they're not familiar with the alternatives --- not necessarily because it's actually better for the task-at-hand.

    Perhaps MySQL is such a common name that people haven't heard of better alternatives out there. Presumably the book that this story reviews, which gives it even more publicity, is yet another reason that someone might consider MySQL without even thinking about alternatives.

    Can anyone tell me if I've missed anything, though? Besides the typical lock-in reasons for using MySQL, does it actually do anything better than other databases as any sort of killer feature?

    If not, and if you're looking to start learning about a database and actually have a choice, it seems that you're much better off looking at an alternative database.... whether it be a free one such as Postgres, or one of the big ones such as Oracle or SQL Server. At the very least, you'd get a more reliable database than MySQL, a more portable database than MySQL, and even postgres (just as free) offers a wealth of additional -- often useful and important -- features such as stored procedures and more complete data integrity. You'll probably also become much more familiar with correct SQL syntax ... for what it's worth.

    • How about MySQL actually accomplishes what I want to do for a reason?

      I love people screaming that the tool I am using is wrong, when they have no idea of just what I am doing. We also use Oracle, where needed, but we run MySQL 24/7/365 in an incredibly mission critical spot and are very satisfied with it. We tried other DB's and technologies including:

      LDAP (Open and Sun/Netscape's)
      Oracle
      Postgres
      Informix (Ok we still had a license and were bored :)

      and none of them offered any better stability and only
      • > As for what MySQL does better? Thats easy speed.

        Really? Without partitioning? Without automatically maintained materialized views?

        Ah, what you probably meant to say is that mysql does a read-only index-oriented workload better on small hardware than its larger competitors.

        I'll buy that.

        But, it's nonsensical to think that mysql can scan 300 million rows faster than Oracle/DB2/Informix when you add partitioning into the picture. In that case they can often simply scan the 5% of the data needed.

        Sa
    • Can anyone tell me if I've missed anything, though? Besides the typical lock-in reasons for using MySQL, does it actually do anything better than other databases as any sort of killer feature?

      I agree with most of your post, indeed I'd go further: MySQL doesn't deserve to be called a database at all, because it does not support transactions with commit/rollback, and cannot therefore guarantee to maintain referential integrity.

      But to answer your question: I think the answer is performance, compared with Po
    • by iwadasn (742362) on Monday April 26, 2004 @05:49PM (#8977024)
      Something I think I'll point out. If you want a little toy database, consider HSQL. It's about as good of a database as MySQL (give or take), but it's written in Java (runs on anything), is about 300k or so in size, takes all of ten seconds to set up, and is actually much more SQL compliant than MySQL.

      If a tiny easy to use database is all that you need, HSQL is for you. The one real gotcha though is that it can't handle datasets larger than 1/2 a GB. That's way too small for real database servers, but more than enough for most websites, even many commercial ones, I imagine.

      In addition, HSQL can run within your java apps, which is really nice. I usually go for a dual pronged approach. use HSQL to handle all the file BS that you app might need (various config parameters, a small data cache that can be sifted efficiently in lots of different ways, other nastiness) and as (small) test databases to try a new idea.

      For real DB work though, trade up to Postgres, and be sure to get 7.4, the 7.3.x line has a lot of crippling bugs.

      The one real gripe I have about Postgres, is god, these people are in love with Hash joins. Any really good database should avoid hash joins like the plague unless it can guarantee that all the data that could possibly be returned by a subquery will fit into RAM. Postgres often wildly mis-estimates the size of a sub query, decides to hash it, and then gets killed when the query returns 100,000 rows, rather than 100.

      A real database using a hash join when it doesn't know that it can take the whole table into RAM (if needed) is just begging to get run over. This is one of the few things that can really knock out an otherwise good database, and really should be considered more carefully. Hashjoins are for small reference data tables (few thousand rows), and should not be used unless you're guaranteed to be surprised.

      HSQL of course doesn't have this problem, because it doesn't mess around with these "big" tables that are all the rage nowadays.

      • by Anonymous Coward
        Java? Hehe.. lol.

        Dude, check out SQLite. It's written in C. It's fast. And it's smaller than your java shite.

        The one real gripe I have about Postgres, is god, these people are in love with Hash joins. Any really good database should avoid hash joins like the plague unless it can guarantee that all the data that could possibly be returned by a subquery will fit into RAM. Postgres often wildly mis-estimates the size of a sub query, decides to hash it, and then gets killed when the query returns 100,000 row
        • I myself am a postgres diehard, and push it heavily at my new job that is based on mysql and i think nothing is wrong with postgres but many things are wrong with mysql. Anyway, to respond to your statement: many people are incapable of performing database maintenance tasks. they can do a couple inserts and selects via php because someone wrote an article at phpbuilder on how to make a web based contact manager and that's it. No real brain to speak of that can figure things out for themselves or read db
    • The most fundamental reasons to use MySQL are:

      It's fast out of the box, and even moreso if you know how to tune it. Coming from an Oracle background, that's a breath of fresh air.

      It's very, very easy to administer. Don't have enough room on this filesystem? Move your largest table over to another with "mv" and "ln".

      It comes pre-installed just about everywhere.

      Is all of that true for [pick your fav DB]...perhaps, but shock though it may be, people generally look for a tool that suits their needs, not EVE
    • Firebird has excellent windows support. It also does not have of the quirks of mysql and is full featured.
  • Perl synonymous? (Score:3, Insightful)

    by Laptop Dancer (572075) on Monday April 26, 2004 @05:09PM (#8976535)
    Perl (also love it or hate it) was almost synonymous with website programming. Arguably there are different choices for different needs in web development..
    I'm willing to argue vociferously with that!
    • Ah, were you one of the 3 C++ CGI coders?
      • I've coded cgi in c and perl both (not too big on C++ personally although I can work with it if suitably bribed). Both have their advantages and when your talking high enough volume perl is no longer than option, the interpreter consumes too much memory per instance.

        Sometimes 4000 simultaneous instances just plain need to consume less than 256mb of RAM, it's just the way it is.
  • by kellan1 (23372) on Monday April 26, 2004 @05:55PM (#8977085) Homepage
    While the idea of a 3 year old book on web development appeals to the poetry in my soul, I think it is misleading. In the last few years the Perl dev community has been making really significant progress in enabling rapid development methodologies, in particularly using tools like Class::DBI

    A book which claims to detail how to do web development with Perl and MySQL and doesn't address the following issues is painfully out of date:

    * Class::DBI [class-dbi.com]
    * SPOPS [sourceforge.net]
    * Kake's How to avoid writing code [perl.com]

    With the Perl Foundation funded work on Maypole [simon-cozens.org] being the most recent efforts in this direction.
  • by glwtta (532858)
    A story about Perl and MySQL? Why not also mention that it runs best on FreeBSD, especially if it is written in vi?
  • I recommend HTML::Embperl (embedded perl).

    Makes it trivial to create web-based apps. If you use Apache::Session, then state maintenence is a simple matter of populating an element in a hash. Makes web development really fast and modular, and mostly XSS-proof (it's sometimes a pain to make embedded perl actually create something like a link if you refer to it in a variable, unless you really think about it).

    http://perl.apache.org/embperl/

    Use it with mod_perl, some sort of database, and a bunch of your
  • by shaitand (626655) * on Monday April 26, 2004 @08:40PM (#8978526) Journal
    It's just the alternatives I suppose that have me truely confused.

    A fully featured website (which needs it all), has several layers, at most:

    The client-side dynamic content, javascript, vbscript, etc

    The middle-ground dynamic content,
    SSI's, PHP, ASP

    And the backend,
    Perl, C/C++, Java, (insert any true, full blown, fully featured, programming language here, which none of the above are).

    There are places where these overlap, there are number of things you could do in Perl, PHP, ASP, or with SSI for instance, which it should be done with is a matter of efficientcy of course and preference when it's just as fast at 100,000 simultaneous connections either way (even if you only expect 5). But something like PHP is not a replacement for Perl anymore than Perl is for PHP.

    It's apples and oranges guys, if you want to compare something go with the SQL database flames, at least there you are comparing pretty much the same thing to pretty much the same thing. And there that same thing and generally used for the same purposes.
  • by kuzb (724081) on Monday April 26, 2004 @11:41PM (#8979833)

    IMO Perl is rapidly losing steam due to the enormous popularity of PHP. PHP is easier to learn, faster to master and less confusing to begin with. Not to mention, PHP's online documentation is really hard to beat sporting many easy to follow examples, a very functional layout, and features (such as the http://php.net/ search) that i'm pretty sure i've only seen mysql.com adopt.

    Granted, PHP is not great for everything, but for small to medium websites (and arguably large websites as well, I know of some corporations that use PHP, see bravenet.com [bravenet.com], one of the largest providers of ready-to-run webmaster tools. They use PHP quite extensively.). For rapid application development, it's a dream.

    As we come closer to PHP5 (which is RC2 now) we're also seeing the integration of sqlite as an option which may appeal to people who just want to write small blogs and other applications which simply do not demand the need of mammoths like mysql or postgresql. This means less headache for budding programmers, and easier migration of applications since sqlite does not require an SQL server.

All life evolves by the differential survival of replicating entities. -- Dawkins

Working...