
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