From: Joshua Ballanco Date: 2009-05-14T04:52:54+09:00 Subject: Re: what could be improved in Ruby for Science? On May 13, 2009, at 9:35 AM, Diego Virasoro wrote: > 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