Why Ruby?

I have never seen or heard of Ruby in a corporate context. The single
exception (where I first came across it) was a supplier who was using it
with Watir for testing a Java application.

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).

···

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

Mike Stephens wrote:

I have never seen or heard of Ruby in a corporate context. The single
exception (where I first came across it) was a supplier who was using
it with Watir for testing a Java application.

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).

Why Java? Why Python? Why Perl? Why PHP? Why _fill in the blank_?
There is no why. Ruby has been around a while. Some people like the
syntax of the language. Some people don't. Ruby has been getting more
popular compared to some languages that have been around longer, or
that have seen they busiest days. I doubt any of them are going
anywhere, and at some point, maybe soon or maybe not soon, some other
language will be the more hyped one, and people will start using it
more. It might be a new one, or one with a new service or framework,
or just something else to make it more exciting (even if it's been
around a while).

People might see it as more interesting, more aligned with their ideal
of how a language should be designed, or think it's the next big thing.
If you don't like ruby, that's cool. There are a lot of good,
effective languages. Maybe you'll never see a request or demand for
ruby development in the companies you work for, or when you look for a
job? Maybe you'll end up looking for a job and find that a bunch of
companies you're considering all want ruby developers? Maybe they'll
say "or another language" or they might have their entire project
dependant upon you knowing it really well. The same can be true of any
language, it might depend on the job and company, or the specific
field, though.

There's no reason to learn ruby if you don't want to. Plenty of people
still use other languages and will continue to. You might not ever
miss an opportunity, but you also can't try and excel at all of the
most used or hyped languages (regardless if they deserve the hype of
not), because you'll never get really good at all of them and new stuff
comes out all of the time. I first started looking into ruby probably
back in '95 or '96, but never got into it then. I dabbled a little,
but didn't get into it. I liked Perl too much (I still like it better
than Ruby, Python or PHP), but when the ruby on rails framework buzz
hit, a lot of people jumped on it quickly (at least it seemed). I
don't recall anyone I knew that programmed knowing what ruby was in
around 2001 or 2002, but in 2003-ish, it started to take off. Don't
let the popularity of a language make you think it's more of less
worthy. It might be worth investigating if it gets popular, so you're
not at a disadvantage though.

I worked for a company that had a project in Perl. Worked fine, Perl is
a great language. They wanted it all changed to heavily OO Perl code.
Fine, so that is nearly done. Then they said they wanted it in
mod_perl with Mason. Fine. Then it was a project in PHP. Okay. Then
they dropped that and wanted it done in Python. I'm not great at
Python coding, so that wasn't fun, but that was short lived and the
company owner got all hot and bothered about Ruby on Rails when it was
really first hitting sites like slashdot. My head sunk. Instead of
getting the job done, the owner was more interested in new, interesting
things (to him), and out of all of the coders on the team that were
experts in C, C++, Python, Perl, PHP, we all had to stop and learn
ruby. I quit that week.

I mean, I get paid, I'll do whatever the boss wants, but when things are
ignored and projects never get done and you have a company owner
telling his entire client base that this massive project will be done
in 1 to 2 weeks time, expecting everyone to learn a new language and
have the code be secure, stable and efficient, from scratch, that's too
much stress. We literally got the news one day in a meeting and were
told we'd get bonuses if we stayed up through the night, in some vain
hope we could roll out a major update in a new language (to us), using
a new web framework, and actually have a working, productive project.
I slept that night while everyone spent the next 2 months straight
trying to get a handle on that one single portion of the project that
would have taken a matter of hours in a language everyone knew already.
Obviously this wasn't the fault of ruby, but it really made me dislike
the whole idea of it.

The point is, sometimes you have to ask yourself "why"? Sometimes it's
to add another language to your resume, sometimes it's to actually work
in it, see what the benefits are, and sometimes just to be prepared to
be able to handle what's thrown at you. Some people enjoy it a lot and
even despise languages I personally like better. Maybe they had a boss
with their heads in the clouds that went the way of the latest buzz,
too? I think the initial exposure to certain technologies are what
primarily affect a person's view. However, at some point, you have to
(hopefully it'll be quick) just take it for what it is and try and look
at it without bias or comparing it to the languages you already know.
That is, needless to say, few people have a good reason to learn
another language (to the point where they are truly good at it), if
they already know other languages where they can do anything they want,
and do it well (being efficient, secure and stable).

So, don't let anyone or any buzz or web sites that are for or against it
sway you. For whatever reason, you're here, so you've heard of it. If
you feel it might be something in demand in your field, maybe look into
it. Maybe it'll be a language you'll enjoy, or maybe it'll just never
agree with you? Personally, I like it, but I like a lot of languages.
Ruby isn't my favorite, though. Same with PHP -- it's not my #1
choice, but I like it enough to use it. Knowing them (and others)
comes in pretty handy regarding web related programming topics and
projects. Be it a client asking for help because their script isn't
working, or maybe a project you got because you at least showed the
company that you have an open mind and are willing to work with the
choices they've made? I've found that a little goes a long way with
things like that.

I've told people point blank that "I can code this in PHP or Ruby", but
that I "strongly prefer Perl", and thus can develop the project faster,
and feel more confident about my code. That's not to say I suck at PHP
or ruby, but that I've been coding in Perl since maybe 1992-ish, and
I'm probably always going to know it better and feel more comfortable
with it over something like PHP, Ruby, Python or whatever else. I find
that, so far, except that one company being the exception, they
ultimately don't care as long as the results are quality and you don't
create some alien spaghetti code, and make good, relevant comments.
Perhaps one day, something else might be my #1 language... maybe it'll
be ruby? Probably not, but I don't think it's going anywhere, so enjoy
using it, if you have the time and desire (or motivation).

···

--
Tim Greer, CEO/Founder/CTO, BurlyHost.com, Inc.
Shared Hosting, Reseller Hosting, Dedicated & Semi-Dedicated servers
and Custom Hosting. 24/7 support, 30 day guarantee, secure servers.
Industry's most experienced staff! -- Web Hosting With Muscle!

If I type "why ruby" in my favorite search engine's form the first hit is Ruby-Doc.org: Documenting the Ruby Language

My personal reasons are

* lots of things can be done on few lines
* it has a clean syntax
* it is pure OO

Kind regards

  robert

···

On 30.12.2008 08:44, Mike Stephens wrote:

I have never seen or heard of Ruby in a corporate context. The single
exception (where I first came across it) was a supplier who was using it
with Watir for testing a Java application.

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).

--
remember.guy do |as, often| as.you_can - without end

Mike Stephens 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?

Not a very good case: Java rules.

For me, Ruby was an upgrade from Perl, which I've used for everything
from CGI scripts to the sort of number crunching one would normally
associate with C. Development of Perl 6 seems lost in the wilderness so
I jumped to Ruby. I don't regret it, but I still use Perl 5 where
appropriate. And PHP. Even a little JavaScript. Horses for courses.

Dave

···

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

Mike Stephens wrote:

I have never seen or heard of Ruby in a corporate context. The single
exception (where I first came across it) was a supplier who was using it
with Watir for testing a Java application.

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).

It is very handy for making conversion and import scripts. I've been using it for converting between geographical coordinate systems, for processing translations in a spreadsheet, and for generating svg and html from algos and xml.

Just to name some small stuff...

It is a nimble little language!

Casimir Pohjanraito

Mike Stephens wrote:

I have never seen or heard of Ruby in a corporate context.

That's because difficult and bloated systems like VB or Java were invented to sell to managers in corporate contexts. That makes languages with merit hard to squeeze in.

> The single

exception (where I first came across it) was a supplier who was using it
with Watir for testing a Java application.

That's because Watir is a killer app - one whose value has exceeded the shock of Ruby. Like Rails, people learn Ruby to use Watir.

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?

Either way, a company might think they need to see what language you use as a "due diligence" thing, to see if you are really a member of the Java/C# club.

If so, you can win by using Ruby. You typically accomplish twice the features in half the time and 1/10th the code, compared to Java. You can easily overwhelm your competition...

···

--
   Phlip

Languages affect the way you think about things and the way you are able to solve problems. When
you have a language that gives you the tools to express your problem space with ease and simplicity you're
in good shape. If you don't then you have unwanted complexity.

Here's a simple example. If you're only familiar with Java and XML then Ant seems like a logical build system.
But if you look at Rake, which leverages Ruby, you realize how much simpler a
problem is when you have language constructs capable of describing the problem better.

Just to give you an idea of how good Ruby is at teaching different ways of thinking compared to even some of the best languages just take a look at SCons. SCons is written in Python (a very fine language). And SCons is based on an award winning design for a build system. But in spite of taking advantage of the elegance of Python SCons isn't able to map the problem domain to the Python language the way Rake is able to do with Ruby. The Python looks like someone trying to write something in Python where the Ruby almost looks like
it was specifically created to make a build system even though it wasn't. That teaches me something useful that
I can use to simplify many things.

Cheers,
11 00

···

On 30 déc. 08, at 02:44, Mike Stephens wrote:

I have never seen or heard of Ruby in a corporate context. The single
exception (where I first came across it) was a supplier who was using it
with Watir for testing a Java application.

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).
--
Posted via http://www.ruby-forum.com/\.

Mike Stephens wrote:

I have never seen or heard of Ruby in a corporate context. The single
exception (where I first came across it) was a supplier who was using it
with Watir for testing a Java application.

The shame they could not test Java with Java is overwhelming.

Obese platforms like Java are invented to sell to corporate managers.

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).

The main selling point is: Getting twice the features written, in half the time, with 1/10th the lines of code, and with no bugs (under Test Driven Development).

Yes, Java supports TDD, but Ruby is a dynamic language. That makes everything easier, including the testing.

In Java, you must declare the class hierarchy for every interface, and you must declare which types are allowed in what variables. This overhead is remarkably similar to the (Taylorist) principle that to do anything in a big company you must first fill out your paperwork, in triplicate, get it approved by your managers' managers' managers, bury it in peat for a decade, etc. Java is an example of "overcontrol", yet that is exactly the selling point that Sun makes to your managers.

···

--
   Phlip

Of course ten years ago Mike could easily have been asking:

I have never seen or heard of Java in a corporate context. The single
exception (where I first came across it) was a supplier using a Java applet
to animate text on his world wide web page.

If you supply services to corporates, what sort of case can you make for
using Java rather than C++, which is in use everywhere? (I'm not
thinking of applets here, which is a rat

The point being that the same patterns of behavior will recur.
So soon enough BigWig A will be playing gold with BigWig B
and will say,
"You know we've got some great cost savings with
our push to Agile, especially the whole Ruby on Rails things,
what about you?
"Us, we're looking at at it, not sure what results yet."

Next Morning
"Smith, What are doing with Ruby on Rails?"
"er um, dont know"
"Well I don't want to miss the boat on this thing, make sure we're taking it seriously, lets raise it at the next development managers meeting ..."

I can recall how hard it was to get people to take Java seriously.
I can also remember hearing "C++ is very pretty but it will never replace Fortran"
And also, "You're trying to do that in GW-Basic. Are you crazy? Everyone knows that you can only do FFTs in Assembler. It will never be fast enough on an interpreter!"

···

On Dec 30, 1998, at 2:44 AM, Mike Stephens wrote:

On Dec 30, 2008, at 2:44 AM, Mike Stephens wrote:

I have never seen or heard of Ruby in a corporate context. The single
exception (where I first came across it) was a supplier who was using it
with Watir for testing a Java application.

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).
--
Posted via http://www.ruby-forum.com/\.

I use Ruby daily at my place of employ. The company I work for is a
multi-billion dollar outfit. I'm not sure if I can name the name though.

The caveat to this is that my team is a very small component of this
company. That's changing quickly though.

James

···

On Tue, Dec 30, 2008 at 2:44 AM, Mike Stephens <rubfor@recitel.net> wrote:

I have never seen or heard of Ruby in a corporate context. The single
exception (where I first came across it) was a supplier who was using it
with Watir for testing a Java application.

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).
--
Posted via http://www.ruby-forum.com/\.

Mike Stephens 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?

Not a very good case: Java rules.

It is indeed the ignorance that rules today. This ignorance however is
nothing a single person has to be ashamed of. It is imposed by
ridiculously short decision times, extreme budget pressure and an
overall stressful environment.
I am not capable of quoting any studies on this and would welcome any
pointers. It is however quite obvious (my favourite prove method ;),
that the pressure which exists in our professional lives discourages
reflexion, deep understanding of what we are doing and innovative
decisions. It is my believe that the winning business model will be
one that breaks this vicious circle.

My personal experience is that when I am talking to a decision taker
about Ruby and she asks me why, my first sentence is already
completely misunderstood - I am well aware of my responsibility in
this kind of misunderstanding. But I never get a chance to discuss
matters during say an hour. The cherry on top of the cream was one
internal encounter with the decision maker, where I suggested to stop
developpement in Java and start with Ruby using JRuby for an easy
transition. This was considered to much risk taking and too much time
consuming (sic). After presenting my case (1800s) the aforementioned
response was made in less than 300s. Immediately after that they
stalled the project for two months (yes that is 5184000s, you got that
right) in which they discussed a migration from Java to C#(1). I have
not stayed along to experience the outcome of this.... one has only
one stomach you know :frowning:

For me, Ruby was an upgrade from Perl, which I've used for everything
from CGI scripts to the sort of number crunching one would normally
associate with C. Development of Perl 6 seems lost in the wilderness so
I jumped to Ruby.

Exactly my reason, thank you Perl6 team ;).

I don't regret it, but I still use Perl 5 where
appropriate. And PHP. Even a little JavaScript. Horses for courses.

Perl used in a sober way can be very beautiful.

Cheers
Robert

(1) And that for one reason, the new maintainer of the package
thaught, correctly or incorrectly that the GUI would be sexier with
.NET.

···

On Tue, Dec 30, 2008 at 12:14 PM, Dave Bass <davebass@musician.org> wrote:

--
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

C. Pohjanraito wrote:

It is a nimble little language!

One of the reasons I favour Ruby is it isn't Java. Anything mainstream
gets coated in layers of bureaucracy.

The question is not so much whether people like it versus something
else, it's how it might find a niche in a corporate context. Rails has
given Ruby a sort of USP so almost always when you see a vacancy it's
for Ruby with Rails. My objection to Rails is you're back to having to
learn more than one set of things before you can get going.

I'm thinking along these lines -
very simple to install;
zero licence fees;
extensive integration features;
fully OO - a fast agile cousin of Java

As a matter of interest - is it really all that nimble, or is it that
nimble people use it?

···

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

Dave Bass wrote:

Mike Stephens 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?

Not a very good case: Java rules.

If all the other companies just ... jumped off a cliff, would you?

Alright. I have a small gripe about that concept. I think I'm part
of a small minority when I say that Rails learners don't know crap
about Ruby. But, I have to qualify that statement with the fact I use
Ruby for different things and started learning it long before Rails.
I have yet to really get into Watir.

Todd

···

On Tue, Dec 30, 2008 at 9:39 AM, Phlip <phlip2005@gmail.com> wrote:

Mike Stephens wrote:

I have never seen or heard of Ruby in a corporate context.

That's because difficult and bloated systems like VB or Java were invented
to sell to managers in corporate contexts. That makes languages with merit
hard to squeeze in.

The single

exception (where I first came across it) was a supplier who was using it
with Watir for testing a Java application.

That's because Watir is a killer app - one whose value has exceeded the
shock of Ruby. Like Rails, people learn Ruby to use Watir.

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.

···

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?

--
Steven

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.

···

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

I guess you HAVE to be a BigWig to play "gold" :wink:

-Rob

Rob Biedenharn http://agileconsultingllc.com
Rob@AgileConsultingLLC.com

···

On Jan 14, 2009, at 1:30 PM, Peter Booth wrote:

The point being that the same patterns of behavior will recur.
So soon enough BigWig A will be playing gold with BigWig B
and will say,

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.

2c.

Todd

It is indeed the ignorance that rules today. This ignorance however is

nothing a single person has to be ashamed of. It is imposed by
ridiculously short decision times, extreme budget pressure and an
overall stressful environment.
I am not capable of quoting any studies on this and would welcome any
pointers. It is however quite obvious (my favourite prove method ;),
that the pressure which exists in our professional lives discourages
reflexion, deep understanding of what we are doing and innovative
decisions. It is my believe that the winning business model will be
one that breaks this vicious circle.

I disagree, I know a bit of how "pointy haired bosses" think (they tried to turn me into something like that several times, unfortunately for them there's a small Zed Shaw in me and they can't destroy my "your shit sucks and now you die" attitude :p) and I think the biggest problem is availability and cost of resources.
At the end they are something very close to end-users, they care about the final result, and of course they're not enough educated to make decisions that actually make sense on the tech side. What they see is that they can choose between a bunch of developers with medium/high salaries and a million of developers with medium/low salaries. What they normally think is: let's take 20 junior developers and hire a senior that acts_as_babysitter. That's the reason under the outsourcing madness too, developers are exchangeable.
I think that the problem here is not companies or management, but pretty much developers. If the only reason you choose a technology is the market:

a) In my opinion your skills are poor. In general, if "joy" isn't part of your choice you're a poor developer
b) They put themselves in the position of being exchangeable, they all have the same skillset, the same mindset, the same level of disinterest about their job.

Corporations especially are particularly good in this, they behave with every project as it already failed, that's why they always try to keep development costs as low as possible. The reason is simple, they often fail.

My personal experience is that when I am talking to a decision taker
about Ruby and she asks me why, my first sentence is already
completely misunderstood - I am well aware of my responsibility in
this kind of misunderstanding. But I never get a chance to discuss
matters during say an hour. The cherry on top of the cream was one
internal encounter with the decision maker, where I suggested to stop
developpement in Java and start with Ruby using JRuby for an easy
transition. This was considered to much risk taking and too much time
consuming (sic). After presenting my case (1800s) the aforementioned
response was made in less than 300s. Immediately after that they
stalled the project for two months (yes that is 5184000s, you got that
right) in which they discussed a migration from Java to C#(1). I have
not stayed along to experience the outcome of this.... one has only
one stomach you know :frowning:

Yes, we all have this kind of stories :slight_smile:
Mine is from my pre-Ruby days, where I used to be a Python developer.
One of the biggest banks in Italy hired me to develop an internal project in Python, they gave me 3 months (without asking me a damn). After less than 2 month I was over, wrote the test suite (I remember doing a no-no after the other, testing libraries, frameworks, just because I was bored). The project, after 3 years, is still in production. They switched to PHP of course, they weren't able to find enough Python developers, they didn't think at me whining because I was bored, finishing my project a lot before, releasing it with an uptime of years and without a single problem in all this time. They wanted numbers.
This is idiotic I know.
At least, after a few days of doing nothing, I rewrote the whole project in RubyOnRails (and finished it !!!), and actually felt in love :slight_smile:

--
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.

   ngw

···

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

--

Mike Stephens wrote:

As a matter of interest - is it really all that nimble, or is it that nimble people use it?

Ruby code is absurdly easy to write, test, and refactor. Java uses static typing, and Perl (for example) uses helplessly cluttered notation and ridiculous defaults. That's why Ruby statements can be cleaner and more expressive.

···

--
   Phlip