|
WareLogging, IdeaLogging.
|
|
|
|
= hate =
|
|
|
|
* The culture.
|
|
** Boolean flags to functions.
|
|
** Detailed and highly inaccurate in-source comments about who added what and when.
|
|
** Code reuse should not mean ctrl-c, ctrl-v.
|
|
** Whitespace. How hard can this be?
|
|
* God, I miss Perl quoting, regex syntax, and POD.
|
|
* preg_*
|
|
* min(), max()
|
|
* [http://us2.php.net/manual/en/language.types.string.php#language.types.string.parsing String parsing], [http://us.php.net/manual/en/language.types.string.php#language.types.string.conversion String conversion to numbers].
|
|
* global
|
|
* case-insensitive function names
|
|
* Constants
|
|
* include
|
|
* Would it have been so hard to pick either of C++-like or Perl-like comment markers?
|
|
* rename() is essentially mv.
|
|
* Comparison operators. ===? Are you fucking kidding me?
|
|
** Ok, scratch this. It's not the operators, per se. It's the finicky, brittle, poorly abstracted type system that really drives me to fits of spittle-flecked rage.
|
|
** As an addendum, if this hasn't bitten you, either you haven't done much with the language or you just don't know how badly you're being been bitten yet.
|
|
* <? ?>
|
|
|
|
I used to miss having switch statements around in Perl. Now I'm fairly convinced they're one of the most ill-advised constructs you can make available to a vigorous amateur.
|
|
|
|
Why I hate PHP, in a nutshell:
|
|
|
|
brennen@hyperion 12:06:16 ~ $ php -r
|
|
function fuck () {
|
|
print fuck;
|
|
}
|
|
|
|
FUCK();
|
|
''^d''
|
|
fuck
|
|
brennen@hyperion 12:06:41 ~ $
|
|
|
|
= don't so much hate =
|
|
|
|
* At least it has function prototypes.
|
|
* It's pretty painless, syntax-wise, to build a multidimensional array.
|
|
* file(), at least when it works.
|
|
*
|
|
* They finally got around to adding closures. It's flat-out amazing what this does for the language.
|
|
|
|
= am somewhat bemused by =
|
|
|
|
* if (! function_exists('func')) { function func () { } }
|
|
* [http://php.net/ob_start ob_start()], ob_get_contents(), ob_end_clean() - output buffering.
|
|
|
|
= whack idioms i have seen =
|
|
|
|
$foo = array('something', 'some other thing');
|
|
foreach ($foo as $bar) {
|
|
switch($bar) {
|
|
case 'something':
|
|
# do a whole shit-ton of stuff
|
|
break;
|
|
case 'some other thing':
|
|
# do a shit-ton of other stuff
|
|
break;
|
|
}
|
|
}
|
|
|
|
= perl to php =
|
|
|
|
* chomp(), chop() -> [http://us.php.net/rtrim rtrim]
|
|
* shift() -> array_shift()
|
|
|
|
= other =
|
|
|
|
* http://www.steike.com/code/php-closures/
|
|
* http://pear.php.net/package/MDB2
|
|
|
|
As annoying as one-package-one-file can occasionally be in the Perl universe, I suddenly find that it is really nice to have a predictable directory structure emerge naturally from the hierarchy of modules/classes.
|