what could be improved in Ruby for Science?

D

Diego Virasoro

Hello,
I've noticed that languages such as Python are becoming more and more
fashionable with the Scientific communities, along side more hard core
classics like Fortran and Java.

Do you think Ruby is missing some piece of technology to be useful in
science? Or poor libraries?
In the end what do you think that could be done to make Ruby more used
in Science?

Diego
 
P

Phlip

Diego said:
I've noticed that languages such as Python are becoming more and more
fashionable with the Scientific communities, along side more hard core
classics like Fortran and Java.

Bioinformatics requires repeatedly shoveling huge blobs of data thru simple &
not necessarily fast filters. Python (and Perl) scored early adoption here. They
have nothing, technically, that Ruby doesn't have, including the slow part.
Do you think Ruby is missing some piece of technology to be useful in
science? Or poor libraries?
In the end what do you think that could be done to make Ruby more used
in Science?

All Ruby needs is better libraries, supporting an interacting community of
practitioners. Everyone needs faster a Ruby, and we have all the same
visualization tools as Python.
 
C

Charles Johnson

Hello,
I've noticed that languages such as Python are becoming more and more
fashionable with the Scientific communities, along side more hard core
classics like Fortran and Java.

Diego
With the advent of ruby 1.9.1, the only advantage here at ACCRE of
fortran, c and c++ is speed. The multi-threaded, multi-processor,
multi-node jobs that we see could just as easily be done in ruby with
the appropriate library support. However, the fortran libs that do
FFT, say, have been honed over the last 40 years to provide speeds
only slightly slower than code done in assembler. Ruby, java, python
simply do not offer that. That does not mean that ruby could not be
used to *drive* such code. As more and more people in our science
departments discover the advantages of using ruby to access pre-built,
pre-optimized libs the move to using ruby will continue.

Cheers--

Charles
 
G

Greg Donald

Hello,
I've noticed that languages such as Python are becoming more and more
fashionable with the Scientific communities, along side more hard core
classics like Fortran and Java.

Do you think =A0Ruby is missing some piece of technology to be useful in
science? Or poor libraries?
In the end what do you think that could be done to make Ruby more used
in Science?

Sounds like personal choice to me.

But for example Matt Wood stated he processes 250TBs of genetics data
per day with Ruby:


I'm working in genetics research as well, and we're really only using
Rails for our new web dev projects.


--=20
Greg Donald
http://destiney.com/
 
P

Phlip

Charles said:
With the advent of ruby 1.9.1, the only advantage here at ACCRE of
fortran, c and c++ is speed. The multi-threaded, multi-processor,
multi-node jobs that we see could just as easily be done in ruby with
the appropriate library support. However, the fortran libs that do
FFT, say, have been honed over the last 40 years to provide speeds
only slightly slower than code done in assembler. Ruby, java, python
simply do not offer that. That does not mean that ruby could not be
used to *drive* such code. As more and more people in our science
departments discover the advantages of using ruby to access pre-built,
pre-optimized libs the move to using ruby will continue.

That is exactly how videogames work. The lowest layer is custom display
hardware. Above that are drivers that manage huge strings of raw
instructions.

Above that is tuned C++ to manipulate the huge strings. And above that is a
soft scripting language - typically Lua - to assemble the C++ primitives
into programmable actors who interact in scenarios.

When something is slow, you move it down one layer in the stack. So most new
programming should happen in Lua, per the rule "premature optimization is
the root of all evil".
 
J

Joshua Ballanco

Hello,
I've noticed that languages such as Python are becoming more and more
fashionable with the Scientific communities, along side more hard core
classics like Fortran and Java.

Do you think Ruby is missing some piece of technology to be useful in
science? Or poor libraries?
In the end what do you think that could be done to make Ruby more used
in Science?

I have a sneaky suspicion that Ruby is being much more widely used in
Science than you might guess based just on forum posts and Google
searches. I think the biggest difference between science in Python and
science in Ruby is the sharing. For example, I'm using Ruby for some
evolutionary modeling for my Ph.D. thesis. I've thought about library-
izing some of the code, but that's extra effort. In other words, it
seems like Ruby is almost "too good" in that it lets you do really
rapid development of experimental code without the need to first write
entire libraries. The first step in building a better science-ruby
community is remembering to share.

In that respect, let me be the first to post a link to http://sciruby.codeforpeople.com/
, although it seems to be down (paging Dr. Howard?). Now, there's
another problem in that, as has been mentioned, Python and Perl are
technically no better than Ruby for this sort of work. Of course, the
flip side of that is that Ruby is no better than they are, and they
already have communities with critical mass. So, maybe what Ruby
really needs is to be *better* than Perl and Python.

On that topic, one idea I've been batting around in my head is
extending Ruby's prototyping capabilities and making Ruby methods
first class objects. This would have to either be a Ruby 2.0/2.1 goal,
or a fork of Ruby proper. However, what I imagine is that adding these
two pieces would make Ruby simply unbeatable for all classes of Object
composition patterns of programming (not just scientific programming).

...in my head there's also a graphical representation of Ruby objects
as blocks and methods as slots in the blocks with lots of wires making
logical connections and it's all equally code-able graphically and
textually...

Cheers,

Josh
 
L

Leo

So, maybe what Ruby =A0
really needs is to be *better* than Perl and Python.

I'd rather say it needs to be better than a specialized programming
language like R or whatever other language/environment is generally
preferred in your domain of expertise.
 
S

Steven Hong

[Note: parts of this message were removed to make it a legal post.]

Hi all,

Steven with Manning Publications here. I wanted to let you know that
we've recently published two books on Ruby:

The Well-Grounded Rubyist by David A. Black
The Well-Grounded Rubyist is the thoroughly revised and updated
version of the best-selling Ruby for Rails. David A. Black moves
beyond rails and presents a broader view of Ruby, covering Ruby 1.9,
with the same sharp focus and clear writing that made the first book
stand out.

Ruby in Practice by Jeremy McAnally and Assaf Arkin
For those already familiar with Ruby, Ruby in Practice will take your
productivity to another level, as it is filled with concrete examples
of systems integration, messaging, web development, and databases, all
in a clear problem/solution format.

Until Friday, May 22, you can get either or both books for 40% off at
manning.com with the code "rubytalk40".

Steven Hong
Marketing Coordinator
Manning Publications
www.manning.com
===================
Skype: stevenhong02
Twitter: ManningBooks
 
J

Joel VanderWerf

Steven said:
Hi all,

Steven with Manning Publications here. I wanted to let you know that
we've recently published two books on Ruby:

Thread-hijacking + marketing is not a good mix.
 
R

Robert Dober

I have a sneaky suspicion that Ruby is being much more widely used in
Science than you might guess based just on forum posts and Google searche= s.
I think the biggest difference between science in Python and science in R= uby
is the sharing. For example, I'm using Ruby for some evolutionary modelin= g
for my Ph.D. thesis. I've thought about library-izing some of the code, b= ut
that's extra effort. In other words, it seems like Ruby is almost "too go= od"
in that it lets you do really rapid development of experimental code with= out
the need to first write entire libraries. The first step in building a
better science-ruby community is remembering to share.

In that respect, let me be the first to post a link to
http://sciruby.codeforpeople.com/, although it seems to be down (paging D= r.
Howard?). Now, there's another problem in that, as has been mentioned,
Python and Perl are technically no better than Ruby for this sort of work=
 
J

Joshua Ballanco

you must be kidding here ;) No it is me who's kidding, let me try to
explain please:

Ruby has qualities Perl and Python can only dream of, and Perl and
Python have some that elude me, I admit.
However I guess that most people on this list share the view that Ruby
just is better for most jobs.

I guess that, and you see I do take your statement very seriously that
it would be "our" job to pass this message on. Hmm maybe we need,
"What Ruby (and only Ruby) can do for you" blog :).

There's an old adage in software development (or, as old as an adage
about a 50 year old profession can be) that if the customer does not
know about a feature of your program, then that feature doesn't exist!
I agree that Ruby has many strengths over Perl and Python for
scientific programming. If I didn't, I wouldn't be using it. However,
the strengths don't quite align with how I think most scientists
approach computing. That is, Ruby is a beautiful language. Call it a
Katana, beautifully crafted with patience and care and decorated with
ancient symbols of strength and power. Now, the average scientific
programmer is approaching the problem as if it were meat to be
chopped, so they reach past the Katana in your outstretched hand for
the dirty, dull, and nicked meat cleaver.

In other words, it's not that scientific programming _can't_ take
advantage of Ruby's enhanced abilities, it's that they _don't_. I
think an "Annie Oakley" blog would be a great idea ("Anything you can
do I can do better")! Unfortunately, (ironically, even) I don't have
the time to run such a blog. However, if somebody wanted to set
something like that up, I'd be happy to participate. Maybe the guys
over at the "Ruby Best Practices" blog would be interested?

As for my suggestions about prototype inheritance and first-class
functions (and I believe that I'm probably the only one making much
noise about this recently), let me explain quickly: I'm doing
evolutionary modeling. The basic idea is to represent cells, and what
those cells can do, in Ruby code. Now, I could (and very well might)
write a DSL for the problem space. If Ruby had prototype based
inheritance and first-class functions, on the other hand, a DSL
wouldn't be needed as objects could sub in for evolving cells.

So, it's not just the classic compositional patterns that would be
easier to implement, but fun new paradigms that could be approached
using Ruby in new ways too...

...just thoughts...use them as you see fit

- Josh
 
R

Robert Dober

There's an old adage in software development (or, as old as an adage abou= t a
50 year old profession can be) that if the customer does not know about a
feature of your program, then that feature doesn't exist! I agree that Ru= by
has many strengths over Perl and Python for scientific programming. If I
didn't, I wouldn't be using it. However, the strengths don't quite align
with how I think most scientists approach computing. That is, Ruby is a
beautiful language. Call it a Katana, beautifully crafted with patience a= nd
care and decorated with ancient symbols of strength and power. Now, the
average scientific programmer is approaching the problem as if it were me= at
to be chopped, so they reach past the Katana in your outstretched hand fo= r
the dirty, dull, and nicked meat cleaver.
Hmm I am a very lazy guy and I never could become friends with Python
because it was just standing in my way. ( Perl was not, however :)
In other words, it's not that scientific programming _can't_ take advanta= ge
of Ruby's enhanced abilities, it's that they _don't_. I think an "Annie
Oakley" blog would be a great idea ("Anything you can do I can do better"= )!
Unfortunately, (ironically, even) I don't have the time to run such a blo= g.
However, if somebody wanted to set something like that up, I'd be happy t= o
participate. Maybe the guys over at the "Ruby Best Practices" blog would = be
interested?
This is truly a great idea, however I somehow tend to disagree with
your assessment about the needs to see Ruby's full powers to
appreciate it.
To put it constructive: Whatever you can do, I can do "simpler"!
This is a challenge I really would like to take :)
As for my suggestions about prototype inheritance and first-class functio= ns
(and I believe that I'm probably the only one making much noise about thi= s
recently)
it is almost sure now, *nobody* reads my blog, but let us see...
 
J

Juan Zanos

Hello,
I've noticed that languages such as Python are becoming more and more
fashionable with the Scientific communities, along side more hard core
classics like Fortran and Java.

Do you think Ruby is missing some piece of technology to be useful in
science? Or poor libraries?
In the end what do you think that could be done to make Ruby more used
in Science?

Diego

In order to learn anything you have to give up hope of learning
everything.
Most of the scientific community I work with has chosen not to learn
much about
software languages and tools citing the hope (or convenient fiction)
that none
of that matters. Some will confide that tools might make a difference
but it's
too much of a time synch to really examine the problem. Scientists are
interested in their fields more than software.

Right now there are few scientific libraries for Ruby and the ones
that exist
often lack polish, are difficult to contribute to, and are difficult
to install
and setup. In comparision, a lot of the more Internet oriented Ruby
libraries
are well tested, available as easy to install gems, ported to work on
lots of
Ruby VMs, and available on modern distributed version control systems
making
contributions, maintenance, and sharing much easier.

Possibly there is a window of opportunity during which Ruby solutions
will be
adopted if they are sufficiently available. I don't think it would
take that much
time, effort, and money to make Ruby's scientific libraries a lot more
compelling
than they are now.
 
J

justin caratzas

[Note: parts of this message were removed to make it a legal post.]

On May 13, 2009, at 9:35 AM, Diego Virasoro wrote:

Hello,
In order to learn anything you have to give up hope of learning everything.
Most of the scientific community I work with has chosen not to learn much
about
software languages and tools citing the hope (or convenient fiction) that
none
of that matters. Some will confide that tools might make a difference but
it's
too much of a time synch to really examine the problem. Scientists are


you mean time sink? If the scientists were able to perform a time synch,
then they could learn everything about everything. That'd be awesome.
 
J

Joshua Ballanco

In order to learn anything you have to give up hope of learning
everything.
Most of the scientific community I work with has chosen not to learn
much about
software languages and tools citing the hope (or convenient fiction)
that none
of that matters. Some will confide that tools might make a
difference but it's
too much of a time synch to really examine the problem. Scientists
are
interested in their fields more than software.

Right now there are few scientific libraries for Ruby and the ones
that exist
often lack polish, are difficult to contribute to, and are difficult
to install
and setup. In comparision, a lot of the more Internet oriented Ruby
libraries
are well tested, available as easy to install gems, ported to work
on lots of
Ruby VMs, and available on modern distributed version control
systems making
contributions, maintenance, and sharing much easier.

Possibly there is a window of opportunity during which Ruby
solutions will be
adopted if they are sufficiently available. I don't think it would
take that much
time, effort, and money to make Ruby's scientific libraries a lot
more compelling
than they are now.


So let's do something about that then, eh?

- Josh
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,780
Messages
2,569,608
Members
45,241
Latest member
Lisa1997

Latest Threads

Top