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]

Reply via email to