Tuesday, February 13, 2007

The Problem With The PeePee's

With all the paparazzi surrounding PHP, Perl, Python and Ruby, in my opinion, I see them as lacking a 'major' attribute that I cannot live without. This attribute is extensibility; using existing codebases and libraries written in C and/or Java.

The largest code bases and libraries in the world are either written in C or Java. What use do I get if I cant utilize those libraries? Some might argue that it is possible to call C API from PHP or the others, but have you ever tried writing a PHP extension that wraps a C library? have you tried that in Python? Perl? Ruby?

The amount of learning curve, buggy constructs, and lanuguage intracies you have to deal with make your life suck when it comes to extensibility from those PeePee's (most of them start with the letter P).

Every piece of new hardware, every new database, every robot, each and every mobile device, is guaranteed to provide you a C and/or Java API to communicate with. None have ever provided you with a PHP/Python/Ruby/Perl API. All those API's come as wrapped up contributions of the C or Java version.

This problem does not exist in either C or Java. Java uses the JNI (java native interface) to talk with the C language APIs which could add a learning curve; however, unlike other learning curves, this learning curve aint wasted simply because those two languages are guaranteed to survive for at least the upcoming decade with continuous SDKs sourced out from new technologies.

The PeePee's are useful tools, useful languages, but dont base heavy code bases on them. One day you'll discover that you'll need to start porting your code, let this day be early enough with limited losses.

No comments: