Mailing List Archive


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [tlug] ruby and python in Japan



Darren Cook writes:

 > PHP, ruby, python, java, javascript et al are all similar enough

Yikes!  Men and women are "similar enough", too. :-)

PHP:
    Never used it, no comment.  Maybe, see "Perl"?

Ruby, Python, Scheme:
    Efficient interpreted languages that support introspection,
    abstraction, and monkey-patching, and are thus both adaptable in
    the short run and maintainable in the long run.  Ruby and Python
    both have extensive library bindings, but not as standardized as
    Java and friends, and not as extensive as Perl.  Scheme suffers
    from being a Lisp.

Perl:
    Similar to Ruby and Python, but older and beholden to a lot of
    legacy decisions.  I'm not sure how Perl is for introspection
    and monkey-patching; I gave it up for Lent in 1997, and never
    missed it.  Abstraction is more difficult because of many quirky
    conveniences in the language definition (aka DWIM).  If it exists
    as a library or command-line tool, Perl probably has a binding.

Java, C, C++:
    Low-level compiled languages with extensive, powerful libraries
    available.  Introspection and abstraction cannot be grafted on to
    those libraries by the application, and monkey-patching is
    basically impossible.

    Java has the unique capability of being executable by many
    browsers, thus applications written in Java can be distributed
    between server and client.  Other languages depend on Javascript
    (if you know you're targeting IE or Mac OS, then VB or AppleScript
    may be usable; Javascript is cross-platform).

    Java is also unique in that although (like Ruby, Python, Perl, and
    most Schemes) it compiles to target a virtual machine, unlike them
    it is normally precompiled in all environments.  The interpreted
    languages are often obfuscated by being distributed as bytecode,
    but there is rarely an explicit compile step---rather, you run the
    code, it's compiled on the fly, and (if you obfuscate) you strip
    out the source from the distribution tarball.

Haskell, ML, Erlang:
    Modern functional languages.  Don't know ML and Erlang, but
    Haskell is compiled and very heavyweight.  Great for abstraction,
    incredibly powerful, but mind-bending.

(un) Common Lisp:
    Rest in peace.

Javascript:
    A whole 'nuther smoke, this is (normally) a client-side
    interpreted language, heavily dependent on a standard DOM.  Ie,
    can be combined effectively with any of the above, which are
    server-side.



Home | Main Index | Thread Index

Home Page Mailing List Linux and Japan TLUG Members Links