The 3 Way Mexican Standoff from The Good, The Bad, and The Ugly

it’s like Il Triello between Blondie, Angel Eyes, and Tuco at Sadhill Cemetery, but worse.  you’ll pardon some Very Strained Metaphors to follow, but it’s time to shoot off at the foodmouth, here come Il Buono, Il Brutto, Il Cattivo, Il Strangolato:
________________________________

4:02 PM me: yo, sifu t-lo, do me a favor and make up a sentence (or twenty) with Python, Perl, PHP, and Ruby in it demonstrating their relationship.  an example: “Perl is powerful and can be written in a fairly clean and unobfuscated style, but can quickly get out of control with insanely complex regex statements.”

4:07 PM tyler: ok, soooo… Alphabetically (w.r.t. case):

PHP:

 

PHPTuco

PHP is a fairly hideous programming language.  It lacks any major significant system relevant to dominating types, i.e. some languages are good at X but not Y, for all features X such that X is in PHP, PHP is not good at X.  PHP, however, is fairly simple to understand and therefore easily adopted by many beginning programmers, often valued for its lack of a typing system, loose enforcement, depth of standard library (which is extremely large), but is also burdening because of its lack of documentation, poor examples written by retards and the fact that there is a general lack of cohesion within the PHP language, i.e. many functions which you’d think would take the same variables do not, which requires another documentation hit.

 

Perl:

PerlAngelEyes

 

4:14 PM tyler: PERL, Practical Extraction and Reporting Language, contrary to claims or otherwise belief, is not a fairly clean and unobfuscated syntax. It is a very powerful language developed by an academic linguist, building a Library which was good at Practically Expressing things and Reporting them. As such the nature of Perl is built to be “quick and dirty” and most one-offs are typically written in Perl.  It is fundamentally different to almost every other programming language* (note coming), and once a year the “Perl monks” (read: zealots) hold a contest, “The annual Perl Obfuscation Contest” in which participants attempt to write valid Perl code which no one but themselves are capable of understanding and typically contestants themselves forget how their program works  

4:15 PM (*Perl, developed by Larry Wall, was a huge influence to Yukihiro Matsumoto in developing Ruby, however “Matz” hated Perl’s nasty fucking syntax)

 

4:16 PM me: (N.B.: C zealots have a similar obfuscation pointer circle-jerk.)

Python:


4:17 PM tyler: yeah.  now, PYTHON, developed by the ever-up-his-own-ass Guido Van Rossum now of Google, Inc., developed Python because he “hated everything else”.  Python has a very solid, easy to understand syntax, and has a loose type system with very excellent supporting data structures. Python is good at structured data, i.e. parsing XML, reading databases, etc., and also has some very interesting programmatic interfaces built in (i.e. any given function has access to its stack, the stack has previous pointers to goto the previous functions stack and get their local variables)

 

4:18 PM tyler: Python is an object-oriented system focused around classes and objects and therefore lends itself very well to a wide array of meta-programming techniques which are coveted by the Python zealots. Python performs poorly in many respects but was also one of the first dynamic languages to have developed a byte-code interpreter, pre-compiling scripts and executing them on a “Python-VM”. Since that date python-bytecode has been ported to run on the Java Virtual Machine and to this date this subset of Python is known as “Jython”.

4:20 PM Python also has a very distinct and clean C api for expanding itself, but at the same time has a regular expression library that no one to date has ever figured out.

 

Il Strangolato:


blondieinnoose.jpg

 

4:23 PM Finally, RUBY, the “Perl Successor” supports a highly “human” intuitive syntax, a powerful object oriented system implemented as a low-level message passing system, all of Perl’s amazing ability to move data in and out, to read and write, parse, unparse, match and manipulate data. Ruby has a very thorough reflection system allowing objects to be altered at runtime, and as such has amazing potential for metaprogramming. However because of Ruby’s very intricate subsystems it is by nature horribly slow and has not to date had a successful VM built to support is horrid slowness.

4:25 PM Ruby is very much like Python in that it dedicates the notion that functions are indeed first-or-second-order objects, and indeed both systems are a very graceful, elegant mix of functional and object oriented programming. Ruby also is in essence the “play-doh” of all programming languages, it allows alteration of some of its own internal operators and syntax, effectively allowing a developer to turn Ruby into any other language on the planet. Ruby has also like Python been ported to run on the JVM although this project is still immature and needs work.

 everything becomes still

 

 

4:26 PM …and for added bonus, let’s talk about SCALA, a relatively new programming language developed in Switzerland in an academic environment (EPFL in Lausanne), is a new dynamic language built directly on top of the JVM from the ground up.  It sports a very powerful typing system (strict as well as loose types), has a 50/50 blend of functional to object constructs, and effectively feels like a mix of Ruby, Perl, JavaScript, and Python. It has native XML processing support which is incredibly fast and has a highly evolved parsing syntax. Scala, like Ruby, has a dynamic object interface allowing objects to be inspected, altered, and abstracted at runtime allowing for insane metaprogramming, but without the slowness of Ruby.

  (Tyler votes Scala for the future of world domination)

4:29 PM EOL 

Time to make haste, sounds like the Federales around the bend… and they don’t mess around.