SciRuby: Science and Matrix Libraries For Ruby
Aciel writes "Ruby has long been popular in the web/business community, while Python dominates the scientific community. One new project seeks to bring balance to the force: SciRuby. We've already introduced a linear algebra library called NMatrix (currently alpha status). There's at least one fellowship available for students interested in working on the project this summer."
*cough* bullshit *cough*
You first have to realize that there are exactly two programming languages in all existence: ruby and python.
The rest makes more sense if you start from there.
William of Ockham had no beard. The most likely explanation is that it was chewed off by squirrels every morning.
This seems like a terrible idea. What could scientific computing with Ruby possibly offer that SciPy doesn't already? Way to split the potential work force guys. If you want to develop a scientific computing library for a rich dynamic language, then contribute to SciPy. What a wasted effort.
Because people like using different indentation styles, which sometimes can be clearer. For example, something like this:
//ensure all sides are checked
if(!checkedUp() ) checkUp();
if(!checkedDown() ) checkDown();
if(!checkedLeft() ) checkLeft();
if(!checkedRight() ) checkRight();
can be a lot more concise and readable than a forced indentation method. Flexibility is a good thing. It is ok if you don't like the style I just demonstrated, but you should be able to understand that other people do.
"First they came for the slanderers and i said nothing."
This is why I'm developing "FORTRUBY".
/X/ SUM=SUM+X END))
FORTRUBY is an all new implemenation of Fortran on top of Ruby.
With FORTRUBY, scientists and engineers can jump right in and start programming in what they're most comfortable with, Fortran, but the Fortran code isn't actually compiled,it's interpreted by a Fortran interpreter written in Ruby.
This allows scientists and engineers to transition gracefully to a modern language like Ruby. At first, they can just write in Fortran and insert calls to the Ruby library. When they're ready to move on, they can actually insert Ruby code into their Fortran programs that gracefully accomodates Fortran data types and arrays by using the special 'RUBY' statement like this:
DIMENSION M(10)
RUBY(FORMAT (5HSUM=0))
RUBY(FORMAT (27HM.EACH DO
Finally, they can transition to full fledged Ruby by just writing the whole program inside RUBY statements. Finally scientists and engineers can move into the 21st century without leaving all their current hard-earned skills behind.
Nothin' wrong with that, my friend. To translate to Python:
# ensure all sides are checked
if not checkedUp(): checkUp()
if not checkedDown(): checkDown()
if not checkedLeft(): checkLeft()
if not checkedRight(): checkRight()
The fellowship is a summer long with only a $1,500 stipend. The most recent commit is from December 1st, 2011. The wiki and issue tracker appear to be similarly inactive. Even if the project does something, it probably won't do much; contrast it with numpy commits which are recent and numerous.
This story should never have been accepted. There are a million minor projects like this that similarly aren't newsworthy enough to discuss.
Excel isn't a language.
You know that and I know that. But I've worked for physicists, chemists and biologists, and believe me, that little detail doesn't stop them one little bit. A little birdie tells me that it's even worse in the social sciences.
MatLab might beat Python, but it's been losing ground.
Very slowly, and in the fields I've worked in, invariably to R.
R? I love R, but it's not a general purpose language and very few scientists know how to use it.
Those two little details don't stop scientists either.
In my experience, scientists will do just about anything to convince themselves that they're not actually programming, if only to avoid pesky annoyances like source code control. The less it looks like a programming language, the better.
sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
In my experience, scientists will do just about anything to convince themselves that they're not actually programming, if only to avoid pesky annoyances like source code control. The less it looks like a programming language, the better.
Oh god. That would explain why none of their code looks like it's written in a programming language.*
* I work with biologists. By 'they,' I mean biologists. I know you physicists and quantum chemists have it lucky. Stop bragging. You're making me feel bad.
Bio questions? Ask me to start a Q&A journal. Computer analogies available for most topics!
During one of the interviews, the guy hit the nail on the head:
A lot of people don't write Ruby when they're coding in Ruby.
In reality, Ruby practices make a lot of sense under the context of the language and when you get comfortable with them then you've reached a position when you can take advantage of what Ruby has to offer -- mainly brevity (without sacrificing clarity) and flexibility (crazy introspection and meta-programming capabilities).
There are a lot of things in the Ruby universe that suck (the interpreter can be quirky, gem management can bit flaky, documentation could be better), the language proper is not one of them.
However, (surprise, surprise) like with anything else in life, you've got to weigh the pros and cons and find something that suits you and/or your needs.
Ruby suits a lot of people's needs, that's why it exists, obviously -- so no, we're not where we were 20 years ago, not by a looong shot.
What people fail to understand is that OOP is a bad paradigm for numerical computing. It's ill-suited to vectorization and parallelization.
It cuts both ways. I'm a geneticist, and it's painful having to work with tech guys who don't know the first thing about even basic biology, never mind genetics.
It's the same here on Slashdot. I always cringe every time I load up the comments on a story about genetics or evolution, because I know there'll be a slew of ignorant comments modded up to +5 insightful. At least most scientists know their limitations at programming, but the same cannot be said with regard to non-engineering subjects for many engineers, who feel themselves qualified to comment on just about any topic under the sun, regardless of their lack of knowledge.