On Thu, Nov 21, 2013 at 9:21 AM, David Goldsmith <[email protected]>wrote:
> Thanks, Kevin. Yes, quite an interesting post. One of the things I noted
> was that he states that he still uses Ruby for text processing (whereas I
> thought that this is one of the functional things that Python excels in).
>
Yeah, I thought that was odd, too -- I can imagine someone still using Perl
for text processing if they were used to that -- after all it was
originally designed for just that, but I don't get Ruby.
Thus my curiosity was piqued-- "what's the deal" (anyone) with Ruby: is it
> an interpreted (as opposed to compiled) language? Un- or weakly-typed?
>
dynamically types, similar to Python
> Have a "rich" set of built-ins and an even richer set of available
> modules?
>
pretty good I think, yes.
> More or less widely and broadly used than Python?
>
Less -- I think much less. "Ruby on Rails" was/is the "killer app" for Ruby
-- it provided a really nice way to put together web sites, and got a lot
of folks using Ruby. I suspect that most Ruby use is web development,
primairly with Rails )only with Rails?), but it is certainly used for other
stuf as well -- for instance the "Homebrew" package management/building
system for OS-X is written in Ruby.
Generally, as objectively as possible, how is it "better" and "worse" than
> Python? Thanks!
>
In the scheme of all programming languages -- Ruby and Python are a heck of
a lot alike, and I think, are well suited to similar problems (i.e. most of
them :-) ).
I've never done anything real with Ruby, but I saw a cool talk a couple
years ago demonstrating how it has more powerful, maybe-even lisp-like
macro ability -- a way to dynamically change a bit how the language works
-- pretty powerful stuff, though scary to me. (though I'm not sure they
call it macros -- memory is fuzzy here)
Ruby has a nice system for managing external packages ("Ruby Gems") -- it
was much better than Python before PyPi and pip and all, not sure if it's
still better.
As for downsides:
The syntax looks cluttered to me: " end", and more brackets and odd
symbols. Not as bad as Perl, and this is really a taste issue.
Not as wide a user community -- particularly for scientific /
computational development I used to find Python stuff for science because
I was looking for python stuff. Now I'm finding more and more libraries and
systems that I discover for some totally other reason, and low and behold,
it's got python bindings, or python scripting capability.
I do note that it seems to have a Matrix class in the standard library, and
it's nicer than the numpy Matrix class.
And there is sciRuby:
http://sciruby.com/
Doesn't look nearly as mature as scipy, but there is at least a community
building.
And a lot of people really seem to like it.
-Chris
--
Christopher Barker, Ph.D.
Oceanographer
Emergency Response Division
NOAA/NOS/OR&R (206) 526-6959 voice
7600 Sand Point Way NE (206) 526-6329 fax
Seattle, WA 98115 (206) 526-6317 main reception
[email protected]