canmove, Confirmed users
345
edits
(→Perl: Perl is not "actively developed" compared to every other scripting language in this comparison. I already had the CPAN advantage listed.) |
(→Python: That added Pro was flamebait. Discussion should happen in Discussion page, not main page. I agree that only Perl has good Unicode--that's a Perl point. Fixed up cons.) |
||
| Line 78: | Line 78: | ||
* Actively developed. | * Actively developed. | ||
* Quite a lot of modules (but still a lot less, and less organised or consistent than CPAN) | * Quite a lot of modules (but still a lot less, and less organised or consistent than CPAN) | ||
=== Cons === | === Cons === | ||
* Deployment choice can be a bad thing (i.e. mod_python, mod_wsgi etc.) - harder to install | * Deployment choice can be a bad thing (i.e. mod_python, mod_wsgi etc.) - harder to install | ||
* Not having curly-braces on "if" statements and other blocks makes | * Not having curly-braces on "if" statements and other blocks makes it hard to figure out where you are in the block structure without a special editor to help (like Komodo). | ||
* Poor Unicode handling--strings are ASCII by default, and are Unicode only if you prepend them with u, like u"string". | * Poor Unicode handling--strings are ASCII by default, and are Unicode only if you prepend them with u, like u"string". | ||
* No standard way of installing modules like CPAN. (Cheeseshop and easy_install exist, but they're not universally standard.) | |||
* No standard way of installing modules like CPAN. | |||
* Python has no equivalent to Perl's "taint" mode. (This is nothing to do with strong typing, and is about validating data by what it says rather than because it's a string rather than an integer) | * Python has no equivalent to Perl's "taint" mode. (This is nothing to do with strong typing, and is about validating data by what it says rather than because it's a string rather than an integer) | ||
* | * Sometimes has unclear error messages. Basically only compiler error message is "syntax error" | ||
* Python lacks variable declarations, which means that invalid variables are caught at runtime instead of compile-time. | |||
== Ruby == | == Ruby == | ||