I love Ruby - But how bright is Ruby's Future?

Entirely valid and thought-provoking point of view, and one that I’m
finding
is quite characteristic of the Ruby community, perhaps indeed the
defining
characteristic.

Ruby is the only programming language I know that (for specific reasons
inherent in the design of the language) has some potential to challenge
the
prevailing wisdom among businesspeople who manage IT projects. Which, to
oversimplify, is that a large problem requires something at least
resembling
a large team. I’m eliding some of the logical steps, but this entrains
much
of what you and others (with some justification) criticize as
backside-covering.

But this goes directly against the ethos that software production is a
fine
art, and that the choice of tools matters less than the quality of the
artifact. This feeling has been a recognizable characteristic of
software
practitioners long before Ruby was invented, as has the concomitant
criticism of IT managers. As one of those managers, I wouldn’t dream of
attempting to build a large one-off enterprise application in Java with
one
or three top-quality programmers and five assistants. But someday I
might
actually consider doing it in Ruby.

The best Ruby programs are small ones. This is wired into the genetics,
and
the aesthetics, of the language. But small Ruby programs can be
remarkably
powerful, in ways that can fundamentally change the dynamics of software
production. If this point can be made by powerful and eloquent advocates
then Ruby may become a much more widely used language. But so much
depends
on the goals one chooses to pursue. Many committed Rubyists have stated
many
times that Ruby should not have widespread adoption by business as a
goal.
(Perhaps underneath this, there is fear that success would corrupt
Ruby’s
essential character. If so, that’s a topic for another thread.) But this
does explain why the Ruby community has so few powerful and eloquent
advocates.

Francis C. wrote:

consider
the chance to learn something new. The choice of programming language is
orthogonal to language issues.
I was that sort of programmer a few decades ago. There are only so many
opportunities for “them” (formerly “us”). It took me something like 30
years to outgrow assembly language. :slight_smile: IIRC I wrote my last line of
assembly code (well, Forth for the 80186) in the early 1990s. I went
directly from microcode to Perl :).

At this point, I’d learn Ruby if there was someone else around at work
who was interested in it. I don’t suspect that will happen any time
soon. It was tough enough to find another person interested in R, a
language ideally suited to some of the tougher problems I work on.


M. Edward (Ed) Borasky

On 6/5/06, Francis C. [email protected] wrote:

What I meant was that Python has achieved a degree of respectability
in
corporate environments that Ruby hasn’t yet.

It all depends on where you’re looking. I’m in a very big corporate
environment (though, admitedly we’re kind of an isolated group that
has some independence) - It’s a well known, household-word type tech
company. I’m seeing that Ruby has lots of respectability in our
group. Even more than Python seems to have.

And this doesn’t happen by
itself, and it certainly doesn’t happen just because a language is
particularly well-done or particularly nice for programmers to use. I think
you may be underestimating the degree to which technology choices in large
organizations are driven by the need to reduce the perception of risk. It’s
not universally true that a programmer who “delivers the goods” will get to
pick his technology.

If you’re in a reasonable group then the emphasis is on delivery. If
you can deliver product X twice as fast by using technology Z then
after a while nobody (including management) is going to care that
technology Z hasn’t been blessed by corporate. At some point it will
be blessed by corporate because it increases productivity. It can
take a while to get there sometimes, but I think Ruby has pretty much
arrived at the point where it’s being ‘blessed by corporate’ in enough
shops that it’s really just about mainstream.

But the question gets asked here time and again: who cares if people in
corporations don’t use Ruby, as long as I can use it on my own projects?
Entirely valid. But if you really like using a language, wouldn’t you want
to use at work as well as at play? And to get that kind of acceptance for
Ruby will take some serious advocacy. With the rise of Rails, that may be
starting to happen, but it’s too soon to tell.

Compared to 2001 it has happened; back then it was an uphill battle
getting companies to use Ruby. Rails has helped tremendously, but
looking back I notice that I’ve had several paying jobs that involved
writing Ruby code (even back in 2001). The change now is that I
don’t have to educate people about what Ruby is, they already know
about it and either they’ve been learning it or they want to.

(For the little that it’s worth, we shipped a pair of apps in Rails, and
doesn’t particularly care either.
But the language choice does often matter especially when schedules
are tight and manpower is short. If you want product Z done and you
give me the choice of implementing in either C++ or Ruby and you want
a schedule I’m going to tell you that in Ruby I could get it done in x
weeks while in C++ it’ll take 4x weeks. If runtime performance isn’t
an issue then using Ruby for the project is an easy choice. Even if
runtime performance is an issue, Ruby and some C code might still be a
very good choice.

I suspect that these magical people you’re referring to would balk if
you suggested that you want your next project done in COBOL or Basic,
so programming language choice does matter to some extent even for
them. If it weren’t for the adventurous programmers who decided they
weren’t satisfied with the status quo we’d likely still be using COBOL
and FORTRAN.

Phil

Francis C. wrote:

Because I respect you, I’m going to respond as if you’re serious.

Thanks, but I am serious.

I asked one of my favorite guys to do a Ruby project three years ago. He
had
never heard of Ruby but he took the project. Just as I expected, he was
right up to speed on Ruby almost immediately (essentially in one night) and
did more production-quality work in less time than all of the experienced
Rubyists on the project. With these guys, it’s like their brains are
orthogonal to language issues.

One night? Right up to speed?

Ok.

Interesting. I’m always stuck by people who don’t get think that

everything is fair game for questioning.

Here, you made two different points (“get” vs “think”) as you decided
midway
through writing the sentence to pull your punch ;-).

Really? Which of the two words did I intend to delete, but missed in my
editing?

I get (and I even
think) that everything is fair game for questioning. But James, think twice
about this: not everything is WORTH questioning.

Ah, but how does one know before hand? Or should I not question this?

I’m deeply skeptical of extravagant claims and sweeping assertions.
(I’m leery of the notion of superstar programmers, but that’s another
matter.)

But about Ruby popularity: I’m a businessman, too. And a coder, and an
artist, and a writer, and a bunch of things. Widespread
[interest|use|acceptance] of Ruby has different value to me from
different perspectives, but overall it is not a big concern. That a
client is aware of Ruby has, on at least one occasion, been useful.
That magazine editors consider Ruby of sufficient reader interest to pay
me to write articles is quite nice.

On the other hand, I wasn’t drawn to Ruby because of its popularity, or
the prospect that it might one day be big. And the increase in traffic
on ruby-talk is a mixed blessing (although a false elitism is no fun
either). But here we are.

Years ago, when (once again) trying to decide what to be when I grew up
(a consideration still unresolved to this day), I read The Soul of a New
Machine, by Tracy Kidder. It describes how engineers from Data General
designed and built a new 32-bit minicomputer. And very early in the
book it said that the founder of the company recruited his engineers
with a small ad that said, “Have fun and make money.”

That’s pretty much been my goal. Have fun, and make money (in that
order). And Ruby helps me do that. So long as that stays true, I’m
happy.


James B.

“Programs must be written for people to read, and only incidentally
for machines to execute.”

  • H. Abelson and G. Sussman
    (in "The Structure and Interpretation of Computer Programs)

Austin Z. wrote:

On 6/5/06, ReggW [email protected] wrote:

Here is a list of Drivers that people need for Rails…
Peak Obsession

Approx. 90% of these would go away if they implemented ODBC.

Then someone should post a bounty for those drivers. In open source,
people implement what they need or what others are willing to pay them
for.

Just like most open-source zealots, when presented with the facts you
change your story.

That’s ok, I still love the language, but hate the mentality of some
of it’s users/developers.

Thanks

One night? Right up to speed?
Yes. And I knew he would because I’d seen him do similar things before.
No,
it’s not normal. But there is a remarkably small amount of really great
software in the world (although I think my definition of great probably
differs from yours), and much of it is written by that kind of guy.

Interesting. I’m always stuck by people who don’t get think that
everything is fair game for questioning.
The fact that “get think” makes this an invalid English sentence
suggests to
me (perhaps wrongly) that you changed your thought midway through. Not a
point worth arguing.

“I get (and I even think) that everything is fair game for questioning.
But
James, think twice about this: not everything is WORTH questioning.”

Ah, but how does one know before hand? Or should I not question this?

Ah, but this is a very important question. How do you know beforehand?
Experience and TASTE. I’ve learned to recognize and pay a lot of
attention
to people who have a knack for recognizing what are the important
questions,
and which are the minor side issues. People who are good at this tend to
become leaders.

On 6/5/06, Francis C. [email protected] wrote:

Interesting. I’m always stuck by people who don’t get think that
everything is fair game for questioning.
The fact that “get think” makes this an invalid English sentence suggests to
me (perhaps wrongly) that you changed your thought midway through. Not a
point worth arguing.

I think assume that he means how are you sure that he didn’t initially
make a milder comment, then decide to throw a punch?

Anyway, there have been countless threads on whether Ruby can be
accepted by “the enterprise.” Doing a search will cover the the same
tired arguments that reappear.

In my opinion, “the enterprise” is full of people who are too stupid
to use Ruby. I read a lot of comments about how to lock Ruby down a
bit more so that it’s more accessible to larger teams…what they’re
really asking is how to dumb it down for less capable programmers.
Bottom line is that the people who are capable enough and have the
desire to use Ruby are in positions where higher ups tell them to get
things done, and don’t care about how.

Nobody would ever ask, “How do I make a stock car safer for my toddler
to drive?”

Pat

Francis C. wrote:


Ah, but this is a very important question. How do you know beforehand?
Experience and TASTE. I’ve learned to recognize and pay a lot of attention
to people who have a knack for recognizing what are the important
questions,
and which are the minor side issues. People who are good at this tend to
become leaders.

Ah. Well, you’ve just made something very clear for me.

Thank you.


James B.

“Blanket statements are over-rated”

On 6/6/06, ReggW [email protected] wrote:

Just like most open-source zealots, when presented with the facts you
change your story.

You really don’t want to take that attitude with me. You don’t know
me and you obviously don’t know what contributions that I have made
in the past and will make again as soon as I find time. I’m not trying
to toot my own horn, but basically what I’m saying is that no one is
going to do your ODBC drivers for you unless there’s something in it
for them.

I, for one, have no need for ODBC drivers for Rails.

Why? Because I don’t use Rails. That’s right. I don’t use Rails.

So why would I possibly do anything to support the development of
ODBC drivers for Rails?

You, however, use Rails. You, however, seem to need ODBC drivers. So
… why aren’t you developing them or making the effort to make sure
that they do get developed? Or is it just easier to whine that Rails
doesn’t have ODBC drivers?

My story on this hasn’t changed, Regg. If you look closely, you’ll see
that I’ve always been pushing you toward getting someone to develop
the drivers for you. If you’re not going to do it yourself, complain
to your database vendor that you need Rails support. If they don’t
listen, find out whom else needs what you need and post a bounty to
get it done.

That’s ok, I still love the language, but hate the mentality of some
of it’s users/developers.

Try again. You’re not talking to someone who has that mentality. I
would strongly suggest you google some of your correspondents – not
just me – before you start spouting off “open source zealot.” I, for
one, am nothing of the sort. I’m just not your unpaid code monkey,
either.

-austin

On 6/5/06, Francis C. [email protected] wrote:

I used to make my living selling my
programming skills but now I’m mostly a buyer of the programming skills of
others. I guess that makes me a crappy business person.)

Well, I would have no way to assess that as either true or false, but
certainly that wasn’t what I meant.

It does sound, however, as if you have some crappy business people for
customers. (No offense, so do I!)

What I meant was that Python has achieved a degree of respectability in
corporate environments that Ruby hasn’t yet. And this doesn’t happen by
itself, and it certainly doesn’t happen just because a language is
particularly well-done or particularly nice for programmers to use. I think
you may be underestimating the degree to which technology choices in large
organizations are driven by the need to reduce the perception of risk.

No, I am completely aware of that, I’m just firmly of the opinion that
working for large corporations is detrimental for the sharpness of
programming skills.

It’s
not universally true that a programmer who “delivers the goods” will get to
pick his technology.

True, but although it isn’t universally true, it is true for a
number of excellent programmers who also make very good business and
marketing decisions. Other things are true for other programmers, but
I don’t care, because those other programmers aren’t my role models.
I’m firmly of the opinion that the answers you find are much less
significant than the questions you ask. Consequently I’m only willing
to ask the questions that will make me an excellent programmer.

But the question gets asked here time and again: who cares if people in
corporations don’t use Ruby, as long as I can use it on my own projects?

Hold on – I have herad that question, but you’re assuming everybody
only works on large corporate projects. In my case, I don’t want to
work for large corporations, but I do want to be paid to use Ruby.

Entirely valid. But if you really like using a language, wouldn’t you want
to use at work as well as at play? And to get that kind of acceptance for
Ruby will take some serious advocacy. With the rise of Rails, that may be
starting to happen, but it’s too soon to tell.

The ability to use Rails is a major priority for selecting my next
job. But it only takes serious advocacy if you’re choosing customers
who have prioritized minimizing risk over maximizing results. If
you’re only even willing to consider customers who prioritize
maximizing results over minimizing risks, the advocacy effort becomes
nonexistent.

Because I’m a businessperson, I’m always struck that people would question
the value of achieving greater acceptance for anything.

Fair enough, you’re thinking of marketing, obviously increased demand
can be a good thing. But you have to realize the dangers of a
commodity-oriented model when you’re running a service business. You
don’t want to compete on price. (Chad F.'s book “My Job Went To
India” explains why.)

handwritten Ruby with our own handwritten web servers.)
Using parts of Rails, or entirely handwritten?

Are the web servers in Ruby?

And to your point about programmers who deliver the goods: I’ve been
privileged at several times to have some of those magical crazy people
working for me who can deliver almost anything on almost any schedule. And
although the sample set is small, those I have known all share this key
characteristic: the programming language DOESN’T MATTER. An individual who
really understands software development doesn’t pick a programming language
to concentrate on. He’s productive in anything you tell him to use, and he
doesn’t particularly care either.

I think on this point at least you and I are totally in agreement.
It’s good to understand Language X but it’s much better to understand
programming.

I wanted to also include a mention of the Google summer of Code project
where many great projects are being worked on currently to further
contribute to the ruby community, rubys future definetely seems less
grimm
each day. I do believe as long as you can justify and actualize it’s use
beneficially for your applications, it is going to remain a useful tool.

Benjamin

On 6/5/06, Francis C. [email protected] wrote:

point worth arguing.
and which are the minor side issues. People who are good at this tend to
become leaders.

Yep. Like GWB.

phil

Austin Z. wrote:

On 6/6/06, ReggW [email protected] wrote:

Just like most open-source zealots, when presented with the facts you
change your story.

You really don’t want to take that attitude with me.

Why…are you going to beat me up?

ReggW wrote:

Austin Z. wrote:

On 6/6/06, ReggW [email protected] wrote:

Just like most open-source zealots, when presented with the facts you
change your story.

You really don’t want to take that attitude with me.

Why…are you going to beat me up?

Very mature guys …

The point of a programming language is to solve a specific problem.
Some languages are better suited for solving certain problems compared
to others. For example, C is great for having total control of memory
and ensuring that the code executed can perform at an optimal level, but
there are definitely times such performance constraints don’t exist …
and then managed programming languages are better options.

This is to address the origional author’s statement of not learning many
programming languages; to leverage languages effectively you need to
know them, or need to be able to pick them up quickly … or at least
certain types of languages. I suggest understanding unmanaged code (C,
C++), managed code (Java, C#), and then the “dynamic” languages (Python,
Ruby, etc). The differences between dynamic and managed languages are
mainly that managed languages are compiled while dynamic languages are
in some form interpreted. Also most dynamic languages are dynamically
typed, compared to static typing (declaring a variable of a type that
can not be changed). This provides flexability and most programmers
find it easier to work with.

In short, languages are a tool. If you’ve got a nail, you don’t try to
drill it in; you use a hammer. Using a language that is not suited for
the problem is like trying to force that nail in with a drill. So I
suggest using the knowledge people have given in this thread and decide
whether Ruby is a tool you want to apply to the problems you are trying
to solve.

~Jimmy

On Tue, 2006-06-06 at 13:43 +0900, ReggW wrote:

That’s ok, I still love the language, but hate the mentality of some
of it’s users/developers.

Me, too. Only very few, but congratulations - you made the list
already.

(I’m really getting the feeling from both the ML and the newsgroup that
we’re being deliberately baited just lately. Anyone else noticing that,
or am I being paranoid?).

On 05/06/06, Tanner B. [email protected] wrote:

From a web perspective it even has the potential for performance issues.
Because there are no native threads, its very easy for a system call (file
or socket handling most commonly) to block the entire Ruby process, not just
the current ruby thread. Thanks to the ease of IPC in Ruby it can be less
of an issue, but is definitely something that potentially affects many
people’s views of ruby.

Worth pointing out that this is only an issue if you are using a
multithreaded
webserver. It’s not an issue with fastcgi dispatchers, as a blocked
thread only
blocks one dispatcher.

James Schementi wrote:

ReggW wrote:

Austin Z. wrote:

On 6/6/06, ReggW [email protected] wrote:

Just like most open-source zealots, when presented with the facts you
change your story.

You really don’t want to take that attitude with me.

Why…are you going to beat me up?

Very mature guys …

I’m just poking fun as Austin :slight_smile:

Lighten up…

Giles: this is a Ruby-language forum, and the title of the thread is “I
love
Ruby but is its future bright?” As interesting as your comments are
about
business, I don’t want to stray too far offtopic.

I’d like Ruby to become as good a language and
language-implementation(s) as
possible. And to do so quickly would be a big plus. One way to do that
is to
get more smart, well-motivated people to work on the language. And one
way
to do that is to expand the number of people who use the language. If
this
happens, then the big question will be: can Ruby survive success? And
that
will depend on the leadership skills of Matz and the more important
people
in the community.

If it doesn’t happen, then Ruby will continue to be what it is today: a
lovely language with applicability to a reasonably interesting class of
problems.

To your questions about Rails: we sometimes use pieces of ActiveRecord.
The
rest of our stuff is done in pure Ruby, using a framework very similar
to
Rails without most of the edge features. It usually profiles at least
ten
times faster than Rails (often twenty times). The web servers are
written in
a mix of Ruby and C++. Made sense for us because we’ve been writing
high-performance servers for distributed apps for a lot of years so we
had a
lot of good knowledge to draw on.

Austin Z. wrote:

On 6/6/06, ReggW [email protected] wrote:

Austin Z. wrote:

On 6/6/06, ReggW [email protected] wrote:

Just like most open-source zealots, when presented with the facts you
change your story.
You really don’t want to take that attitude with me.
Why…are you going to beat me up?

No, Regg, I’m not going to “beat you up.” You don’t want to take that
attitude with me because you’re going to alienate me (and probably
others) from wanting to help you. Based on your responses, it seems
that you think that it’s your god-given right to have the
functionality you need in an open-source mostly-volunteer project.

Austin, I was only poking fun at you, no harm was meant :slight_smile:

Also, I’m not looking for help. I’m only airing some of my concerns with
Ruby’s decision and direction.

It’s ok for you and I to disagree on some issues.
Thru these types of disagreements and discussions comes some very
enlightening details.

For one you have informed me that I have been dealing with the wrong
website in getting the latest Ruby information.
Also, that there may be a new product (YARV/Rite) that may help with
some of my concerns.

Thanks

Jeff P. wrote:

Since Rails is considered by many to be the “killer app” for Ruby, why
doesn’t there seem to be a contender in the non-web-app type application
framework genre for Ruby? Is there something about the language that
makes it an inappropriate choice for “real” application work, or is it
more just a matter of coincidence that the right group of people hasn’t
done something as stellar as Rails in that space yet?

Perhaps there are languages that, by their nature, require an
application framework exist before one can expect to build certain kinds
of applications. And there are there other languages where this is not
needed; they make it easy enough to just grow your own application or
in-house set of tools; they language helps avoid exploding complexity.

It’s similar to the complaint that Ruby does not have an IDE such as
Eclipse; some Rubyists argue that there isn’t one because there is no
compelling need for it, as there is in Java.


James B.

http://www.ruby-doc.org - Ruby Help & Documentation
Ruby Code & Style - The Journal By & For Rubyists
http://www.rubystuff.com - The Ruby Store for Ruby Stuff
http://www.jamesbritt.com - Playing with Better Toys
http://www.30secondrule.com - Building Better Tools