Why Ruby?

These concerns are exactly the ones I was asked at the first two companies where I wrote ruby. They are valid concerns and whilst they didn't prevent me from using ruby they certainly influenced my career sucess. Managing these forces requires skill at persuasion and marketing, a lical track record, and good luck.

···

Sent from my iPhone

On Dec 30, 2008, at 9:19 PM, Steven D'Aprano <steve@REMOVE-THIS-cybersource.com.au > wrote:

On Tue, 30 Dec 2008 07:36:03 -0800, Phlip wrote:

If you supply services to corporates, what sort of case can you make
for using Ruby rather than Java, which is in use everywhere? (I'm not
thinking of Rails here, which is a rather specialized).

If "services" is a web api, why should they care what language you wrote
an application in?

Put yourself in the shoes of the company paying for the software. There
are many reasons why you should care about the language it is written in.

Does the language make it easy or difficult to write correct code? How
easy is it to maintain later?

If the original developer gets hit by a bus, can you get somebody to
replace him easily? What if he turns out to be a real prima donna, or
gets bored halfway through the project and leaves? Is there is a shortage
of developers in this language? Are you going to be reliant on a single
lone-cowboy, or even a single company? What is the learning curve to
train somebody new in the language? Is there a steady stream of new
developers learning this language so you can maintain it years from now?

If (when) the project goes over-budget and late, can you prove that you
used industry standard practices? If you use some weird language nobody
has heard of, and things go bad, will you be blamed for choosing a toy or
experimental language not up to the job? Can you say, "anyone else would
have made the same choice"?

In five years time, or ten, will the chosen language still be supported
and updated? Will there be security patches, or will it be abandoned?

Generally, corporations are risk-averse. Their decisions are made more on
the basis of "What if this goes wrong?" rather than "What's the best that
can happen?". If you're risk-adverse, you're expecting that the project
will end up late, over-budget or missing features, and let's face it, IT
projects are notorious for doing all three. The IT world is full of
people who will promise you the world, and then fail to deliver. Imagine
you're not a developer yourself, or your only development experience was
a bit of VB ten years ago, and maybe a few Excel macros. Why should you
believe these brash young kids with their Ruby or Haskell or Python? Talk
is cheap, and it's not their money being spent.

That's the *rational* reasons. Of course there are plenty of irrational
reasons too. But if you can't make the case for Ruby against the rational
concerns, you certainly won't be able to get past the irrational ones.

--
Steven

Steven D'Aprano wrote:

If (when) the project goes over-budget and late, can you prove that you
used industry standard practices?

That is: "nobody got fired for buying IBM"

It seems that everyone is risk-averse, but nobody thinks about
opportunity costs. (e.g. if we pass up the opportunity to deliver a
workable solution in one month instead of six, how much money does that
lose us?)

Similar considerations apply to XP ideas too (e.g. "do the simplest
thing which can possibly work", "you ain't gonna need it" etc). If your
business won't do XP because it thinks that only the waterfall model is
valid, then equally it's not going to consider using a different
language.

···

--
Posted via http://www.ruby-forum.com/\.

Stephen, all I snipped away is very sensible stuff, however

Can you say, "anyone else would
have made the same choice"?

Will you not get fired if you say such a stupid thing? Oh I lost that
chess game and yet I mirrored every move of
my opponent. I believe it has been shown that the most dangerous and
most devastator projects are those which have not taken any risks and
all decisions have been taken in a conventional way. In other words,
where is the added value of a person that takes the choice anyone else
would have made?
<More good stuff snipped away>

There is one other thing. I believe that starting a project in Ruby
and having to fall back to a more conventional language is still time
well spent in a sound design process. It will not work the other way
round though. Choosing Java will become a final decision ( nowadays of
course JRuby and friends might offer an escape route after all :wink: very
quickly while choosing Ruby while leave you much more freedom of
choice later on.

Cheers
Robert

···

On Wed, Dec 31, 2008 at 3:19 AM, Steven D'Aprano <steve@remove-this-cybersource.com.au> wrote:

On Tue, 30 Dec 2008 07:36:03 -0800, Phlip wrote:

Thanks Phlip.

If I add all the responses together I think we get Ruby can be
positioned for agile rapid applications, prototyping etc. Java is
typically more long-winded but suitable for big expensive structured
mainstream projects requiring all the bureacratic strategic
architectures and policies.

Why would Ruby misfit large structured projects (whatever mainstream
is, probably that part of the water racing fastest towards the falls)
as long TDD/BDD is applicable?

Cheers
Robert

···

On Thu, Jan 8, 2009 at 4:29 PM, Mike Stephens <rubfor@recitel.net> wrote:

--
It is change, continuing change, inevitable change, that is the
dominant factor in society today. No sensible decision can be made any
longer without taking into account not only the world as it is, but
the world as it will be ... ~ Isaac Asimov

Hi everyone. I'm new to Ruby and have a question that I hope is simple. I wanted to compare some strings for similarity, and found this ruby gem called "english" (http://english.rubyforge.org/) which has a method called "similarity" that gives me back a similarity score when used. I wanted to know how that score is being calculated - and I looked through the docs and couldn't find it.

I'm wondering if there's a way to easily "see" the code for a particular method from a gem - can i somehow use irb to show me the code for "similarity" to see how it is coming up with that score?

Thanks, and sorry if this is a silly newbie question.

Actually, my take is that some people realized that there are some
beneficial development practices that we should be using -- but haven't
really been using in any of the major development methodologies. These
people decided this was the Promised Land of development, and put
together a series of specific methodologies (most famous probably being
X-treme Programming), then they all noticed there are systemic
similarities to these different formal methodologies they all invented.

Next thing you know, they're being marketed under the umbrella term
"Agile".

Eventually, I think people will come to the realization that there are
some good things to be learned from this Agile stuff, but the specifics
of requiring that everybody pair up, or tack 3x5 cards to the wall, or
whatever, are less necessary. At that point, of course, some new people
will notice the dire necessity of a new set of development principles,
and the next run of the Next Big Methodology craze will happen.

Each of these waves will surely teach us some new and important things
about software development as a process -- and each of them will, for a
short time, seem to be a Silver Bullet to a lot of people, before cooler
heads prevail and we start to see the difference between the specific
Methodology and the valuabe, generalized development principles.

. . . but I may just be full of it. Maybe Agile Methodologies are really
where it's at. Maybe it's more tied to the current generation of
programming languages than anything else, and as long as we're using Ruby
we should just use an Agile Methodology. I'm certainly not the world's
foremost expert.

Regardless, I don't think that calling "Agile" a "snake oil" is really
accurate. While I'm no Grandmaster of Uber-Hackery, I'm pretty sure I
can recognize a few good principles of development now and then, and
there are at least a couple of them woven into what it means to be
"Agile", at least according to the Agile Manifesto.

···

On Thu, Jan 15, 2009 at 06:15:15AM +0900, Todd Benson wrote:

I didn't copy thread material, because my thought is not directed at
any one conversation, but I thought it would be appropriate to say
something in this thread.

Is it plausible people are using Agile development because modern day
consumer-type software has a half-life of about, umm, 3 hours? After
that, it has to be mended and/or replaced. In fact, the whole
paradigm in Ruby seems to be based on this premise.

I love the language, and will never stop using it, but Agile
development sounds very much like snake oil.

--
Chad Perrin [ content licensed OWL: http://owl.apotheon.org ]
I was essentially an anarcho-capitalist in high school, rather than
wasting the folly of my youth on something lame like revolutionary
communism.

<snip>

I disagree,

Do you? I felt that you said pretty much the same. Ok I take your
variations into consideration
and I am quite happy that you had better experiences than your humble
servant. But what I really wanted to express is the need for numbers,
guidelines, etc. etc. which somehow obscures needs and realities.

PHP of all languages brrrr

<snip>

Il computer non è una macchina intelligente che aiuta le persone
stupide, anzi, è una macchina stupida che funziona solo nelle mani
delle persone intelligenti.
Computers are not smart to help stupid people, rather they are stupid
and will work only if taken care of by smart people.

Umberto Eco

I see that Abulafia is well known outside Italy as well :slight_smile:
I love "Il pendolo di Focault" as well, one of my favourites.

Actually all I could read was "Il Nome della Rosa" everything else,
well mi dispiaceva ;).
Ciao
Roberto

···

On Tue, Dec 30, 2008 at 3:12 PM, Nicholas Wieland <nicholas.wieland@gmail.com> wrote:

Il giorno 30/dic/08, alle ore 12:35, Robert Dober ha scritto:

Hi everyone. I'm new to Ruby and have a question that I hope is
simple. I wanted to compare some strings for similarity, and found
this ruby gem called "english" (http://english.rubyforge.org/\) which
has a method called "similarity" that gives me back a similarity score
when used. I wanted to know how that score is being calculated - and
I looked through the docs and couldn't find it.

I'm wondering if there's a way to easily "see" the code for a
particular method from a gem - can i somehow use irb to show me the
code for "similarity" to see how it is coming up with that score?

Thanks, and sorry if this is a silly newbie question.

Type

gem unpack english

It will unpack the gem into cwd and you can search the code.

···

--
"Configure complete, now type 'make' and PRAY."

                (configure script of zsnes - www.zsnes.com)

http://gemedit.rubyforge.org/

···

On Wed, Jan 14, 2009 at 4:27 PM, Dan <blufur@gmail.com> wrote:

Hi everyone. I'm new to Ruby and have a question that I hope is simple. I
wanted to compare some strings for similarity, and found this ruby gem
called "english" (http://english.rubyforge.org/\) which has a method called
"similarity" that gives me back a similarity score when used. I wanted to
know how that score is being calculated - and I looked through the docs and
couldn't find it.

I'm wondering if there's a way to easily "see" the code for a particular
method from a gem - can i somehow use irb to show me the code for
"similarity" to see how it is coming up with that score?

Thanks, and sorry if this is a silly newbie question.

Robert Dober wrote:

Why would Ruby misfit large structured projects?

I didn't mean to imply Java is stodgy and Ruby is fluid. It was just
that currently Java and C# are the corporate OO standards, so people
will always want to know why you're not using one of those. You thus
have to use some spin; create some clear blue water. Rails is certainly
one way of getting around the Architecture Standards Manual but I guess
they'll soon be a Java version if there isn't one already.

···

--
Posted via http://www.ruby-forum.com/\.

Ah, too bad, that's a citation from "Il pendolo di Focault", probably his masterpiece.There's a part where the main character cracks an account (on a word processor that one of the characters named Abulafia, like the jewish philosopher of the mistic qabbalah) using social engineering.
Try it if you have a chance.

   ngw

p.s. sorry for the OT

···

Il giorno 30/dic/08, alle ore 19:44, Robert Dober ha scritto:

<snip>

Il computer non è una macchina intelligente che aiuta le persone
stupide, anzi, è una macchina stupida che funziona solo nelle mani
delle persone intelligenti.
Computers are not smart to help stupid people, rather they are stupid
and will work only if taken care of by smart people.

Umberto Eco

I see that Abulafia is well known outside Italy as well :slight_smile:
I love "Il pendolo di Focault" as well, one of my favourites.

Actually all I could read was "Il Nome della Rosa" everything else,
well mi dispiaceva ;).

--

Robert Dober wrote:

Why would Ruby misfit large structured projects?

I didn't mean to imply Java is stodgy and Ruby is fluid. It was just
that currently Java and C# are the corporate OO standards, so people
will always want to know why you're not using one of those. You thus
have to use some spin; create some clear blue water. Rails is certainly
one way of getting around the Architecture Standards Manual but I guess
they'll soon be a Java version if there isn't one already.
--
Posted via http://www.ruby-forum.com/\.

Sorry Mike I must be on a different planet:(
Do we agree that Ruby is fit for large projects?
I on my side agree completely with what you say here, I probably
misunderstood something earlier on.
Cheers
Robert

···

On Thu, Jan 15, 2009 at 5:34 PM, Mike Stephens <rubfor@recitel.net> wrote:

--
It is change, continuing change, inevitable change, that is the
dominant factor in society today. No sensible decision can be made any
longer without taking into account not only the world as it is, but
the world as it will be ... ~ Isaac Asimov

How did abulafia end up in the Ruby thread ? I read all kinds of
kabbalah books myself for many years, but the last few years I have
been pretty heavily influenced by Parmahansa Yogananda ..

···

On Dec 30 2008, 2:30 pm, Nicholas Wieland <nicholas.wiel...@gmail.com> wrote:

Il giorno 30/dic/08, alle ore 19:44, Robert Dober ha scritto:

> <snip>
>>> Il computer non è una macchina intelligente che aiuta le persone
>>> stupide, anzi, è una macchina stupida che funziona solo nelle mani
>>> delle persone intelligenti.
>>> Computers are not smart to help stupid people, rather they are
>>> stupid
>>> and will work only if taken care of by smart people.

>>> Umberto Eco

>> I see that Abulafia is well known outside Italy as well :slight_smile:
>> I love "Il pendolo di Focault" as well, one of my favourites.
> Actually all I could read was "Il Nome della Rosa" everything else,
> well mi dispiaceva ;).

Ah, too bad, that's a citation from "Il pendolo di Focault", probably
his masterpiece.There's a part where the main character cracks an
account (on a word processor that one of the characters named
Abulafia, like the jewish philosopher of the mistic qabbalah) using
social engineering.
Try it if you have a chance.

   ngw

p.s. sorry for the OT

--http://www.nofeed.org

Robert Dober wrote:

Do we agree that Ruby is fit for large projects?

Someone famous - I suspect Abraham Lincoln - once said "If I had an hour to chop down a tree, I would spend 30 minutes sharpening my ax." Or similar numbers.

Some pointy-haired bosses out there don't understand that metaphor. They think that the more strokes needed to chop down the tree, the more "progress" we made.

That's why stodgy languages that lead to huge line counts are very easy to market to them.

···

--
   Phlip

Sure, but in the end all that counts will be the trees chopped down,
right :). Just to give myself some hope LOL.
And sorry for that terrible metaphor we do not want to kill any trees
down of course !!!
R.

···

On Fri, Jan 16, 2009 at 11:18 AM, Phlip <phlip2005@gmail.com> wrote:

Robert Dober wrote:

Do we agree that Ruby is fit for large projects?

Someone famous - I suspect Abraham Lincoln - once said "If I had an hour to
chop down a tree, I would spend 30 minutes sharpening my ax." Or similar
numbers.

Some pointy-haired bosses out there don't understand that metaphor. They
think that the more strokes needed to chop down the tree, the more
"progress" we made.

That's why stodgy languages that lead to huge line counts are very easy to
market to them.