Just to put my spin on this, I'm doing a proof of concept project for a friend that will be used to secure a patent (pending). This project has already killed a PHP programmer who said it could not be done. The proof of concept code was done in 3 months in less than 200 lines. Now most of that time was taken dealing with the logic of the situation(s) but the point is, it got done where PHP could not do it (and yes, the first attempt was by a pro PHP programmer). CF is not just about easy or quick. It's also about understandable code that can do the job tightly rather than something that looks like word soup and take hundreds of lines for a single operation. Anyone can look at my code and see what I'm doing at any point. Maybe not WHY I'm doing it but they at least know what's going on.
> I'm not the kind of person to put one programming language infront of the > other, but having used PHP, ASP and CF I will have to say that out of the 3 > CF is the easiest and quickest way of writing code. > > > ----- Original Message ----- > From: "Jeremy Allen" <[EMAIL PROTECTED]> > To: "CF-Talk" <[EMAIL PROTECTED]> > Sent: Friday, February 28, 2003 11:02 PM > Subject: RE: PHP versus CF Development Speed? > > > > Here is a snippet from my PHP book ;) > > > > This is done using an pure PHP OO abstraction layer. > > > > It is alright as far as interfaces go. > > > > (Note.. most people use a DB abstraction layer these days in PHP) > > > > .... long code snippet follows .... > > > > /* Include the database abstraction class */ > > require_once "DB.php"; > > > > /* Static method to parse the DSN connection string into an array */ > > $dsn = DB::parseDSN("pgsql://[EMAIL PROTECTED]/MasteringPHP"); > > > > /* Static factory method to create pgsql DB object */ > > $db_obj = DB::factory("pgsql"); > > > > /* Connect to the databse */ > > if($db_status = $db_obj->connect($dsn)) > > { > > echo "Error: " . $db_status->message . "<br>"; > > echo "Code: " . $db_status->code . "<br>"; > > } > > > > /* Store the query to be executed in a variable */ > > $pets_query = "SELECT P.PetName, > > O.FirstName, > > O.LastName, > > PT.CommonName > > FROM Pet P > > INNER JOIN Owner O ON O.OwnerID = P.OwnerID > > INNER JOIN Pet_Type PT ON PT.PetTypeID = P.PetTypeID > > ORDER BY LastName;"; > > > > /* Execute query */ > > $pets_result = $db_obj->simpleQuery($pets_query); > > > > /* Begin table to format data */ > > $pet_tbl = "<table border=\"1\">\n"; > > $pet_tbl .= "<tr><td align=\"center\" colspan=\"4\" > > bgcolor=\"#ffff99\">\n"; > > $pet_tbl .= "<strong>Pets and Owners</strong>\n"; > > $pet_tbl .= "</td></tr>\n"; > > $pet_tbl .= "\t<tr>\n"; > > $pet_tbl .= "\t\t<td>Pet Name</td>\n\t\t<td>Common Name</td>\n"; > > $pet_tbl .= "\t\t<td>Owner First Name</td>\n\t\t<td>Owner Last > > Name</td>\n"; > > $pet_tbl .= "\t</tr>\n"; > > > > while($row = $db_obj->fetchRow($pets_result, DB_FETCHMODE_ASSOC)) > > { > > $pet_tbl .= "\t<tr>\n"; > > $pet_tbl .= "\t\t<td>" . $row["petname"] . "</td>\n"; > > $pet_tbl .= "\t\t<td>" . $row["commonname"] . "</td>\n"; > > $pet_tbl .= "\t\t<td>" . $row["firstname"] . "</td>\n"; > > $pet_tbl .= "\t\t<td>" . $row["lastname"] . "</td>\n"; > > $pet_tbl .= "\t</tr>\n"; > > } > > > > $pet_tbl .= "</table>\n"; > > > > $db_obj->disconnect(); > > ?> > > > > ..... > > > > Compared to.. > > > > <cfquery name="..." datasource="..."> > > SELECT P.PetName, > > O.FirstName, > > O.LastName, > > PT.CommonName > > FROM Pet P > > INNER JOIN Owner O ON O.OwnerID = P.OwnerID > > INNER JOIN Pet_Type PT ON PT.PetTypeID = P.PetTypeID > > ORDER BY LastName > > </cfquery> > > > > <cfloop query="..."> > > <cfoutput> > > <!--- > > Everyone knows how this goes so I am not going to waste > > more bits > > ---> > > </cfoutput> > > </cfloop> > > > > Ehh, the PHP isn't much prettier is it? :) Not quite so bad as working > with > > a native DB function set in PHP, but still most people would consider the > > PHP to be less pleasant. PHP is very declarative and borrows from > languages > > like C, Perl, and Java so it is going to be more like those languages. It > > isn't tag based so it can't borrow from the simplicity of markup. Although > > PHP offers a lot of syntactical sugar that I often miss in CF (For the > same > > reason I miss it in say... Java). And I do think the OO framework in PHP > is > > more mature in some (functional) respects. > > > > The thing that always puts me off about PHP, and what will always make it > be > > a second class/web language in my mind is how the language is "glued" > > together. Oh, want access to images? Lets wire in the GD library API. Ehh, > > XML? Ok, no problem, lets mimic the C API for that in PHP. PDF, ok. You > end > > up with a lot of C API replicas in PHP. So there are a few dozen disparate > > APIs you end up working with in PHP. The contradictions even go through > the > > core of the language. Basic things like directory and file manipulation > are > > allowed to be different and inconsistent in how they are performed. (I > > understand the Perl TIMTOWTDI philosophy, but I see things in PHP as > sloppy > > rather more than anything else.) > > > > CF is more consistent across the board. CF has more vision and scope than > > PHP ever will have. PHPs solution to enterprise level scalability concerns > > are to off-load it to a separate project. There are things CF has > supported > > forever that I still want in a stable form in PHP. (Such as an > "Application" > > scope for PHP). The PHP answer to this is http://www.vl-srm.net, a > > completely separate daemon. :) > > > > Anyway, this post is long. Needless to say I think CF is a more complete > > solution and it is only getting better, but it is silly to dismiss PHP off > > hand due to the amount of almost built-in ready to go libraries available. > > You can always implement your own OO oriented interfaces to any libraries > > you use, but it would be nice for things to come out of the box > consistent. > > > > Jeremy > > > > -----Original Message----- > > From: Sean A Corfield [mailto:[EMAIL PROTECTED] > > Sent: Thursday, February 27, 2003 5:13 PM > > To: CF-Talk > > Subject: Re: PHP versus CF Development Speed? > > > > > > On Thursday, Feb 27, 2003, at 11:30 US/Pacific, Alexander Sherwood > > wrote: > > > At 02:28 PM 2/27/2003 -0500, you wrote: > > >> Anyone have any good case studies or articles explaining development > > >> time > > >> coparisons between CF and PHP? I've statistics stating ASP takes 60% > > >> more > > >> dev time than CF. Anyone have any numbers comparing CF to PHP? > > > > > > At least 60%, I would imagine! > > > > Depends on how complex your app is I guess and whether you use a > > framework (you can use Fusebox with PHP, for example). Database access > > code is substantially uglier in PHP than in CF: > > > > @ $link = mysql_pconnect( $hostname, $username, $password ); > > if ( $link ) { > > @ $res = mysql_select_db( $dbname, $link ); > > > > $res = mysql_query( 'select * from category where name like > > "%'.$search.'%" '. > > 'or description like "%'.$search.'%" order by name > > asc', $link ); > > if ( $res ) $nrows = mysql_num_rows( $res ); > > > > if ( $nrows > 0 ) { > > for ( $i = 0; $i < $nrows; ++$i ) { > > $row = mysql_fetch_row( $res ); > > if ( $row[2] != '' ) > > ... column 2 is not empty ... > > } > > } > > } > > > > This is code from my own site - I'm not the world's greatest PHP > > programmer so there may be better ways to do this! > > > > Sean A Corfield -- http://www.corfield.org/blog/ > > > > "If you're not annoying somebody, you're not really alive." > > -- Margaret Atwood > > > > > > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| Archives: http://www.houseoffusion.com/cf_lists/index.cfm?forumid=4 Subscription: http://www.houseoffusion.com/cf_lists/index.cfm?method=subscribe&forumid=4 FAQ: http://www.thenetprofits.co.uk/coldfusion/faq This list and all House of Fusion resources hosted by CFHosting.com. The place for dependable ColdFusion Hosting. Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4