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

I've been trying to pickup Ruby for a few months now. I've written a few
good programs that help me at work with SAN/Unix Administration. I've
also run into a few dificult(for me) programming problems. I like to
figure things out on my own so I never post questions in forums like
this, this probably contributes to my bad programming skill, but that's
besides the point.

I'm at a point where I'm asking myself if it is worth the trouble for me
to learn Ruby. How many people are really writting Ruby? Are there any
truly robust, good applications being written in Ruby? How well are Ruby
libraries being maintained? I know there is a lot of documentation for
Ruby but I find it hard to find very specific docs. Python seems to have
a whole lot more doc and many more books exist for Python. Does Python
have a greater following. I love Ruby but I don't want to waist my time
with a laguage that may not have a future.

I don't really care about learning 10 programming languages. My brain
wouldn't be able handle it. I want to learn 1 or two languages and learn
them well. I know Pascal very well, I know Perl pretty well, now I
would like to get away from Perl and so I started out leaning Python. I
think Python is ugly and not very fun to write. I then jumped into
Ruby(a whole lot of fun!) but I don't get the warm and fussies about
Ruby's lasting power.

···

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

Have you seen the press on Ruby On Rails?
  Linux Journal
  Business Week
  Wired
  News Week
  ...and many others

It is certainly a hot topic now.

And, others are talking about Ruby (the Language) now.
Leo Laporte talks about it on his KFI The Tech Guy show - says it's his favorite language.
Plus it is used in almost every major corporation - whether they know it or not.

The press hype may die down, but the infrastructure that is being
built (and the fact that people like the language) pretty much secure
Ruby's existence for some time to come.

Relatively speaking, it is new compared to Python. That is most likely the reason
that there is less documentation. But, there are about 20 books poised for
publication on Ruby and Ruby on Rails.

Stay tuned, you have made a good choice.

Jim Freeze

···

On Jun 4, 2006, at 10:09 PM, Hector wrote:

I'm at a point where I'm asking myself if it is worth the trouble for me
to learn Ruby. How many people are really writting Ruby? Are there any
truly robust, good applications being written in Ruby? How well are Ruby
libraries being maintained? I know there is a lot of documentation for
Ruby but I find it hard to find very specific docs. Python seems to have
a whole lot more doc and many more books exist for Python. Does Python
have a greater following. I love Ruby but I don't want to waist my time
with a laguage that may not have a future.

I don't really care about learning 10 programming languages. My brain
wouldn't be able handle it. I want to learn 1 or two languages and learn
them well. I know Pascal very well, I know Perl pretty well, now I
would like to get away from Perl and so I started out leaning Python. I
think Python is ugly and not very fun to write. I then jumped into
Ruby(a whole lot of fun!) but I don't get the warm and fussies about
Ruby's lasting power.

I've been trying to pickup Ruby for a few months now. I've written a few
good programs that help me at work with SAN/Unix Administration. I've
also run into a few dificult(for me) programming problems. I like to
figure things out on my own so I never post questions in forums like
this, this probably contributes to my bad programming skill, but that's
besides the point.

I'm at a point where I'm asking myself if it is worth the trouble for me
to learn Ruby. How many people are really writting Ruby? Are there any
truly robust, good applications being written in Ruby? How well are Ruby
libraries being maintained? I know there is a lot of documentation for
Ruby but I find it hard to find very specific docs. Python seems to have
a whole lot more doc and many more books exist for Python. Does Python
have a greater following. I love Ruby but I don't want to waist my time
with a laguage that may not have a future.

I don't really care about learning 10 programming languages. My brain
wouldn't be able handle it. I want to learn 1 or two languages and learn
them well. I know Pascal very well, I know Perl pretty well, now I
would like to get away from Perl and so I started out leaning Python. I
think Python is ugly and not very fun to write. I then jumped into
Ruby(a whole lot of fun!) but I don't get the warm and fussies about
Ruby's lasting power.

Python probably does have a greater following, but is that the
deciding factor? Java has a bigger following than Python, and I'm
fairly sure that C can beat Java on that. If 'largest following' were
everything, we'd all still be listening to ABBA or the Village People
(thank God we aren't).

Does it matter?

If Ruby helps you with something today, odds are it can help you with
something tomorrow. If there's never another release, will that
change that fact?

If you like what it does now, use it now. If you like the next
upgrade (if there is one), use that. If not, contintue to use it as
it is.

If you don't like it does now, well then, why would you care what it
does in the future (for that matter, why would you ask the question)?

In a nutshell (or any shell of your choosing), Ruby is what it is.
You either like it, or you don't. Let that decide whether you use it
or not.

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

···

On 6/4/06, Hector <dummy@tracatran.com> wrote:

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

--
Bill Guindon (aka aGorilla)
The best answer to most questions is "it depends".

I've been trying to pickup Ruby for a few months now. I've written a few
good programs that help me at work with SAN/Unix Administration. I've
also run into a few dificult(for me) programming problems. I like to
figure things out on my own so I never post questions in forums like
this, this probably contributes to my bad programming skill, but that's
besides the point.

It never hurts to ask. If you're running into some roadblock that's
keeping you from getting work done, chances are someone else ran into
it previously and you're likely to ge an answer in an hour or two on
this forum.

I'm at a point where I'm asking myself if it is worth the trouble for me
to learn Ruby. How many people are really writting Ruby? Are there any
truly robust, good applications being written in Ruby? How well are Ruby
libraries being maintained? I know there is a lot of documentation for
Ruby but I find it hard to find very specific docs. Python seems to have
a whole lot more doc and many more books exist for Python. Does Python
have a greater following. I love Ruby but I don't want to waist my time
with a laguage that may not have a future.

I don't really care about learning 10 programming languages. My brain
wouldn't be able handle it. I want to learn 1 or two languages and learn
them well. I know Pascal very well, I know Perl pretty well, now I
would like to get away from Perl and so I started out leaning Python. I
think Python is ugly and not very fun to write. I then jumped into
Ruby(a whole lot of fun!) but I don't get the warm and fussies about
Ruby's lasting power.

Actually, you should never get complacent about a language's 'lasting
power'. Always be ready to learn a new one.

To address your question: I've been programming in Ruby since early
2001. Back then it was like pulling teeth to convince management to
let you use it. First you had to educate people as to the existence
of Ruby and then you had to educate them as to it's capabilities,
stability, viability, etc. Had you posted your question back then you
would have probably gotten a lot of answers that told you not to worry
about 'lasting power', if Ruby's doing the job for you then go ahead
and use it (and that's still good advice).

Fast forward to 2006: Last week I decided that I wanted to generate
some C++ files from some XML files using Ruby/REXML. That meant that
Ruby had to be part of the build process and environment. A few
emails were sent and some discussion ensued with the result being that
by the next day Ruby was now part of our build environment. People in
the group keep coming to me and asking what's the best way to learn
Ruby (if they don't already know it). I've already seen PickaxeII
books appearing on people's desks. People have either heard of Ruby
and would like to learn it, or they have already started learning it.
It's a big change from 2001. Your question had a lot more validity
back then, but now it's not really an issue.

Ruby is now mainstream; time to learn Io :wink:

Phil

···

On 6/4/06, Hector <dummy@tracatran.com> wrote:

The first thing I'd say here is that Ruby just got the cover of both Dr. Dobb's and Linux Journal, which is a pretty big statement of how far it's reaching. Can't say the same for many languages. As for materials, it's worth it to note that (1) Python's a little older, (2) Ruby started in Japan so there's a lot of Japanese documentation out there that hasn't been translated yet.

But I think the most important thing you should note is how much fun you have programming in Ruby. If you're enjoying it, you can trust that a lot more other people do too. And that's a REAL "killer app". (David Heinemeier Hansson of ruby on rails talks about happiness a lot in this respect)

-Mat

···

On Jun 4, 2006, at 11:09 PM, Hector wrote:

I've been trying to pickup Ruby for a few months now. I've written a few
good programs that help me at work with SAN/Unix Administration. I've
also run into a few dificult(for me) programming problems. I like to
figure things out on my own so I never post questions in forums like
this, this probably contributes to my bad programming skill, but that's
besides the point.

I'm at a point where I'm asking myself if it is worth the trouble for me
to learn Ruby. How many people are really writting Ruby? Are there any
truly robust, good applications being written in Ruby? How well are Ruby
libraries being maintained? I know there is a lot of documentation for
Ruby but I find it hard to find very specific docs. Python seems to have
a whole lot more doc and many more books exist for Python. Does Python
have a greater following. I love Ruby but I don't want to waist my time
with a laguage that may not have a future.

I don't really care about learning 10 programming languages. My brain
wouldn't be able handle it. I want to learn 1 or two languages and learn
them well. I know Pascal very well, I know Perl pretty well, now I
would like to get away from Perl and so I started out leaning Python. I
think Python is ugly and not very fun to write. I then jumped into
Ruby(a whole lot of fun!) but I don't get the warm and fussies about
Ruby's lasting power.

I don't think any programming language is guaranteed to run
forever. A programming language is mortal. Consider assembly language.
It was widely used at first, but it was soon surpassed by C. Later,
people started to learn C++ because it is a successor of C and it has
object oriented programming feature. Later, Java stroked the earth.

Recently, Bruce A. Tate wrote a book titled 'Beyond Java.' In that book,
he said that Java may face a death sooner or later, and java programmer
have to consider other alternatives. Interestingly, he took Ruby as an
example. That means that RoR and Ruby certainly seems to be promising.

I agree with you that Python is not fun, but it has lots of users and
documents and websites about it. In fact, 'a good language' does not
imply 'a succeeded language.' Many other factors like community affects
the fate of a language, and python has some strong points that Ruby
doesn't have.

To be frank, I would recommend you to learn C++ or Java if you want to
become an application programmer. If you want to be a system programmer,
C is the best choice. If you care a lot about web programming, I recommend
Ruby/Java/.NET. If you want to learn some language which glues well with
existing language like C, C++ and want to write some simple apps, I
would recommend Python.

I myself am learning Python after I finished basic grammars and techniques
of Ruby, and I've found interesting posts at comp.lang.python in which
people
talk about Python's future with regard to Java. They also consider Java as
fairly prominent while Python's future as murky.

But who knows the future? haha.

Sincerely,
Minkoo Seo

···

On 6/5/06, Hector <dummy@tracatran.com> wrote:

I've been trying to pickup Ruby for a few months now. I've written a few
good programs that help me at work with SAN/Unix Administration. I've
also run into a few dificult(for me) programming problems. I like to
figure things out on my own so I never post questions in forums like
this, this probably contributes to my bad programming skill, but that's
besides the point.

I'm at a point where I'm asking myself if it is worth the trouble for me
to learn Ruby. How many people are really writting Ruby? Are there any
truly robust, good applications being written in Ruby? How well are Ruby
libraries being maintained? I know there is a lot of documentation for
Ruby but I find it hard to find very specific docs. Python seems to have
a whole lot more doc and many more books exist for Python. Does Python
have a greater following. I love Ruby but I don't want to waist my time
with a laguage that may not have a future.

I don't really care about learning 10 programming languages. My brain
wouldn't be able handle it. I want to learn 1 or two languages and learn
them well. I know Pascal very well, I know Perl pretty well, now I
would like to get away from Perl and so I started out leaning Python. I
think Python is ugly and not very fun to write. I then jumped into
Ruby(a whole lot of fun!) but I don't get the warm and fussies about
Ruby's lasting power.

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

Hector wrote:

I'm at a point where I'm asking myself if it is worth the trouble for me
to learn Ruby...

My answer would be yes, not because it is the best language
that will /ever/ be written, but because of the way the
features it has implemented provide an almost unlimited
capacity for future scaling.

That capacity derives from Ruby's ability for
/language extensions/. I wrote at length on that subject
here: http://www.treelight.com/software/ruby/RubyRocks.html

On the other hand, I agree that documentation is an issue.
The situation is getting better, though. (Thank goodness for Wiki pages!) And there are several great books.

Too, I really miss the kinds of APIs that are generated
for Java, as well as IDEs that interact with them so
nicely.

So my take at the moment is that it can take several hours
to figure out how to do something, but when I finally do,
the solution is small, clean, and elegant.

So Ruby is where Java was in the mid-90's, but without
the huge investment required to market it, document it,
and make technology additions.

But it is hecka fun...
:_)

Hector wrote:

I'm at a point where I'm asking myself if it is worth the trouble for me
to learn Ruby. How many people are really writting Ruby? Are there any
truly robust, good applications being written in Ruby? How well are Ruby
libraries being maintained? I know there is a lot of documentation for
Ruby but I find it hard to find very specific docs. Python seems to have
a whole lot more doc and many more books exist for Python. Does Python
have a greater following. I love Ruby but I don't want to waist my time
with a laguage that may not have a future.

I downloaded Ruby at monday. Today I'm creating fxRuby application with
MySQL backend and everything works fine :-)... BUT I think that Ruby
resources (docs, external modules like MySQL and others) are very very
scattered.

···

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

"I then jumped into Ruby(a whole lot of fun!) but I don't get the warm
and fussies about
Ruby's lasting power."

Going back to the original poster's "problem", I think we have to ask
him which kind of "lasting power" he is talking about. Will somebody
still be using it twenty years from now, or will it become a hotbed of
job opportunities in the near and longer term future?

A tale of two languages...
Forth and C both came onto the scene around the same time (more or less
- work with me here).

I don't think anyone would try to convince you that Forth is or has ever
been a good way to make a living, but as a quirky, interesting,
portable, dare I say it "fun" language, it has stood the test of time in
the sense that almost any platform you can think of almost immediately
upon creation has a forth interpreter and a small following. It clearly
has "lasting power" of a sort. I think it would be easy to make the
case for Ruby having this type of lasting power. It too is quirky and
"fun".

C, on the other hand, quickly and somewhat permanently became the
defacto standard against which other newcomers have to battle for a
place in the mainstream. Is it fun? Hardly. What is it about C that
allowed it to gain such a foothold that it is still such a player twenty
years later?

Answer that, and apply those criteria to Ruby and perhaps you will have
an answer to Ruby's potential for the "other kind" of lasting power.

Does Java have that type of lasting power? I think not. I think it has
a third kind of lasting power that is shorter lived. Inventor Dean
Kamen recently spoke at our company. He likes to talk about how the
bulk of "technology" is expended in an effort to "solve existing
solutions". In other words, a course of action is chosen hastily, and
then years and years of effort go into solving the shortcomings inherent
in the path that was chosen. Dean likes to think of himself as a guy
who comes in and points that out and gets people to consider a new
solution to the original problem rather than "solving the solution". I
believe that Java was marketed well and quickly adopted. In the ensuing
several years, while it has become somewhat ubiquitous, most of the
effort has gone into developing huge piles of technology to wrap it in
that solve some of it's problems.

Who knows, maybe Ruby will turn out to be a better solution to the
original problem; while those who are experts at solving Java solutions
will continue to be well employed for years to come just as COBOL
programmers were (are?) - simply because it was so widely adopted by the
business people it was marketed to.

Another important question might be "Can I find enough work that it will
be practical for me to enjoy making a living with a new and better
solution rather than by solving the old solution"? I know which kind of
development I would rather do. :slight_smile:

jp

···

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

Mat, your statements are right on the money. To the extent that developers
enjoy using a language, they will use it, when they are at liberty to
choose. But I think it's important not to lose sight of the fact that
programmers in corporate environments are not always free to so choose. The
Ruby community has some way to go in meeting the desiderata of the relevant
decision makers who are not developers and for whom the joy of programming
is a secondary concern. The degree to which we embrace this challenge as a
community will have a lot to say about whether we will be able to use our
favorite language in more and more places.

Many capable Rubyists that I know are of the opinion that nothing matters
but the joy of programming Ruby. True enough as far as it goes, and that
alone will drive significant acceptance of the language. But not as fast or
as far as I would like. I realize I'm throwing down a gauntlet here, but the
Pythonists have been better at this than we have so far.

···

On 6/5/06, Mat Schaffer <schapht@gmail.com> wrote:

On Jun 4, 2006, at 11:09 PM, Hector wrote:
> I've been trying to pickup Ruby for a few months now. I've written
> a few
> good programs that help me at work with SAN/Unix Administration. I've
> also run into a few dificult(for me) programming problems. I like to
> figure things out on my own so I never post questions in forums like
> this, this probably contributes to my bad programming skill, but
> that's
> besides the point.
>
> I'm at a point where I'm asking myself if it is worth the trouble
> for me
> to learn Ruby. How many people are really writting Ruby? Are there any
> truly robust, good applications being written in Ruby? How well are
> Ruby
> libraries being maintained? I know there is a lot of documentation for
> Ruby but I find it hard to find very specific docs. Python seems to
> have
> a whole lot more doc and many more books exist for Python. Does Python
> have a greater following. I love Ruby but I don't want to waist my
> time
> with a laguage that may not have a future.
>
> I don't really care about learning 10 programming languages. My brain
> wouldn't be able handle it. I want to learn 1 or two languages and
> learn
> them well. I know Pascal very well, I know Perl pretty well, now I
> would like to get away from Perl and so I started out leaning
> Python. I
> think Python is ugly and not very fun to write. I then jumped into
> Ruby(a whole lot of fun!) but I don't get the warm and fussies about
> Ruby's lasting power.

The first thing I'd say here is that Ruby just got the cover of both
Dr. Dobb's and Linux Journal, which is a pretty big statement of how
far it's reaching. Can't say the same for many languages. As for
materials, it's worth it to note that (1) Python's a little older,
(2) Ruby started in Japan so there's a lot of Japanese documentation
out there that hasn't been translated yet.

But I think the most important thing you should note is how much fun
you have programming in Ruby. If you're enjoying it, you can trust
that a lot more other people do too. And that's a REAL "killer
app". (David Heinemeier Hansson of ruby on rails talks about
happiness a lot in this respect)

-Mat

I'm still new to the language myself, but I'm comming at it as an enterprise
web developer (Java/.Net).

The killer app for Ruby, for me at least, is Rails. Rails has got so much
right with regards web development it makes you question how Sun got it
quite so wrong... or at least not as good. However, I can't see big JEE
houses switching to Rails any time soon.

There are two aspects of Ruby that destroy Rails for enterprise computing.
The good news is, that they are both fixable.

The first is performance. Ruby might be the same age as Java, but Java
developers are 10 a penny and that means that Ruby is more expensive, both
in terms of the hardware required to run it, and people required to develop
it. In order for it to get its foot in the door it needs to massively reduce
its TCO.

If Ruby's performance could get close to Java then the reduced development
costs would be enough to justify the risk of taking on another new language.
The most obvious way of doing that is to compile it. I know there are
projects to do this already to CLI, bytecode and machine code. My two cents
is that Ruby should aim for something like Obj C or LISP: native code with a
heavy reliance on a portable runtime environment.

The biggest mistake I think Ruby could make in this respect is the continue
to rely on third party groups to add this much needed functionality. Choice
is good, but it makes it even harder for enterprise to latch on to something
as they have to sit down and evaluate each solution or worse hire
consultants to tell them which solution to take... shudder.

The second is the effect of soft/duck typing on the IDE. Theology aside,
code completion reduces the learning curve, reduces bugs and increases
productivity. All of these things are a Good Thing (TM). I fully understand
that for a complete novice that intelligent IDEs can hinder overall
understanding, but no more than garbage collection - and what high
productivity language would be without that?

Would allowing the language some syntactic sugar to merely decorate an
object with a type, which could be completely ignored by the runtime, really
be that much of a bad thing?

I know Ruby isn't necessarily going after the enterprise market, but it's so
neat that I think it would be a waste if it didn't.

What makes it so unique is that the syntax scales with the project. No one
would routinely write a shell script in Java as they would in Perl, but no
one would think that writing a word processor in Perl would be a good idea
either. Ruby fits for both... at least syntax does.

···

On 05/06/06, Mat Schaffer <schapht@gmail.com> wrote:

On Jun 4, 2006, at 11:09 PM, Hector wrote:
> I've been trying to pickup Ruby for a few months now. I've written
> a few
> good programs that help me at work with SAN/Unix Administration. I've
> also run into a few dificult(for me) programming problems. I like to
> figure things out on my own so I never post questions in forums like
> this, this probably contributes to my bad programming skill, but
> that's
> besides the point.
>
> I'm at a point where I'm asking myself if it is worth the trouble
> for me
> to learn Ruby. How many people are really writting Ruby? Are there any
> truly robust, good applications being written in Ruby? How well are
> Ruby
> libraries being maintained? I know there is a lot of documentation for
> Ruby but I find it hard to find very specific docs. Python seems to
> have
> a whole lot more doc and many more books exist for Python. Does Python
> have a greater following. I love Ruby but I don't want to waist my
> time
> with a laguage that may not have a future.
>
> I don't really care about learning 10 programming languages. My brain
> wouldn't be able handle it. I want to learn 1 or two languages and
> learn
> them well. I know Pascal very well, I know Perl pretty well, now I
> would like to get away from Perl and so I started out leaning
> Python. I
> think Python is ugly and not very fun to write. I then jumped into
> Ruby(a whole lot of fun!) but I don't get the warm and fussies about
> Ruby's lasting power.

The first thing I'd say here is that Ruby just got the cover of both
Dr. Dobb's and Linux Journal, which is a pretty big statement of how
far it's reaching. Can't say the same for many languages. As for
materials, it's worth it to note that (1) Python's a little older,
(2) Ruby started in Japan so there's a lot of Japanese documentation
out there that hasn't been translated yet.

But I think the most important thing you should note is how much fun
you have programming in Ruby. If you're enjoying it, you can trust
that a lot more other people do too. And that's a REAL "killer
app". (David Heinemeier Hansson of ruby on rails talks about
happiness a lot in this respect)

-Mat

Phil Tomson wrote:

Actually, you should never get complacent about a language's 'lasting
power'. Always be ready to learn a new one.

I don't agree with this statement.

You should look very hard at a language (just like the owner of this
thread is doing), to make sure you are making the right choice.

Many developers, Project Managers, etc., have lost thier jobs because of
making the wrong development choice.

Look at Kylix and C++Builder X, they fit the bill when they where
released, but now people are scrambling to find a replacement (or a new
job).

I'm also fighting these same concerns.
Here's my list...

1. No native OS threads.

2. To get the fully benefit from Rails, your database has to have a
specific naming convention. (Makes it impossible to migrate to RoR from
something else).

3. No generic database drivers built into Rails for databases other than
the top 3 and open-source databases. (Makes it impossible to migrate to
RoR if you use a different database)

4. Slow performance.

5. Kind of a hack job to get it to work with Apache. (But this could
also be my lack of knowledge)

I still love the language, but I do have reservations.

···

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

Somebody mentioned that if you want to do any serious application
programming you should look elsewhere. I've also noticed that while
there are several attempts out there at application frameworks based on
Ruby, there don't seem to be any that beget any enthusiasm. Discussions
of the existing ones are usually of the form "Yeah this one wasn't too
bad, and the other one was almost adequate".

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?

I, for one, would fall in love with Ruby all over again if there was a
truly cross-platform native application framework even half as brilliant
as Rails. You could call it "Ruby on 'Roids".

thanks,
jp

···

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

Jeff Pritchard wrote:

"I then jumped into Ruby(a whole lot of fun!) but I don't get the warm
and fussies about
Ruby's lasting power."

Going back to the original poster's "problem", I think we have to ask
him which kind of "lasting power" he is talking about. Will somebody
still be using it twenty years from now, or will it become a hotbed of
job opportunities in the near and longer term future?

A tale of two languages...
Forth and C both came onto the scene around the same time (more or less
- work with me here).
  

In the microcomputer world, there were decent Forth interpreters *long*
before a C compiler worthy of the name existed. The competition was
between Basic and Forth, not C and Forth. :slight_smile:

I don't think anyone would try to convince you that Forth is or has ever
been a good way to make a living, but as a quirky, interesting,
portable, dare I say it "fun" language, it has stood the test of time in
the sense that almost any platform you can think of almost immediately
upon creation has a forth interpreter and a small following. It clearly
has "lasting power" of a sort. I think it would be easy to make the
case for Ruby having this type of lasting power. It too is quirky and
"fun".
  

Forth is an excellent way to make a living in the niche it occupies,
embedded systems. It's interesting that you link Forth and Ruby this
way, though, because Ruby is much more frequently compared with Lisp
(another fun language in a much deeper way) than Forth.

Speaking of Forth, I dragged out my gForth/VMgen documentation today,
spurred on by the discussions here about virtual machines and core Ruby
performance.

I don't think Ruby is quirky at all -- not alongside Forth, Lisp, or
APL. Ruby is Java done right. :slight_smile: <ducking>

C, on the other hand, quickly and somewhat permanently became the
defacto standard against which other newcomers have to battle for a
place in the mainstream. Is it fun? Hardly. What is it about C that
allowed it to gain such a foothold that it is still such a player twenty
years later?
  

It was the first "portable assembler". If you were at all careful about
big-endian versus little-endian, once all the 12-bit, 36-bit, etc.
architectures and bizarre non-IEEE floating point formats got flushed
out of the marketplace, it was possible to write efficient portable code
in a high-level language and have the compiler do the heavy lifting. I
don't program in C, but I suppose I should. :slight_smile:

Answer that, and apply those criteria to Ruby and perhaps you will have
an answer to Ruby's potential for the "other kind" of lasting power.
  

I don't see why it can't be as efficient as any dynamic language. But
you're always going to have the interpretation overhead, so, like Lisp,
a compiler needs to evolve into the Ruby run-time environment.

Does Java have that type of lasting power? I think not.

I was originally attracted to Java because of "write once, run
anywhere". Back then, "anywhere" was Windows, Solaris and half a dozen
other breeds of UNIX, including Tru64. Now "run anywhere" is Windows,
Linux and I guess Solaris, although I haven't touched a Solaris box in
so long I've forgotten what was so special about them. I wrote one piece
of software in Java, defying a couple of managers in the process. It
never got used. It sits in CM today. I should have written the damn
thing in Perl and released it as open source. :slight_smile:

Oh, yeah ... one more thing. This may be the wrong thread to bring this
up, but it's certainly the right *forum*. I'm tired of hearing "Ruby
programming is fun, and programming in other languages isn't." I've
programmed in macro assembler, Fortran, C, Lisp, Pascal, Forth, Ada,
Perl, Java, Awk, R, Neliac, APL and even some microcode. It's *all* been
fun! Even the microcode ... even the Neliac.

Then again, I've never programmed in C++ or worked on a project as a
junior member of a 1500-person team. :slight_smile:

···

--

M. Edward (Ed) Borasky

http://linuxcapacityplanning.com

Not sure what "this" is. Corporate acceptance?
-Mat

···

On Jun 5, 2006, at 9:14 AM, Francis Cianfrocca wrote:

Many capable Rubyists that I know are of the opinion that nothing matters
but the joy of programming Ruby. True enough as far as it goes, and that
alone will drive significant acceptance of the language. But not as fast or
as far as I would like. I realize I'm throwing down a gauntlet here, but the
Pythonists have been better at this than we have so far.

The first is performance. Ruby might be the same age as Java, but Java
developers are 10 a penny and that means that Ruby is more expensive, both
in terms of the hardware required to run it, and people required to develop
it. In order for it to get its foot in the door it needs to massively reduce
its TCO.

If Ruby's performance could get close to Java then the reduced development
costs would be enough to justify the risk of taking on another new language.
The most obvious way of doing that is to compile it. I know there are
projects to do this already to CLI, bytecode and machine code. My two cents
is that Ruby should aim for something like Obj C or LISP: native code with a
heavy reliance on a portable runtime environment.

Everything I've heard so far points to Ruby having similar performance to Java, but I'm no expert. The availability of programmers is a bit of a catch 22 problem. But I think the previous "joy" argument will help fix this to a certain extent. And the (IMHO) rest can be covered by lowering barrier to entry, which the ruby community works on daily.

The biggest mistake I think Ruby could make in this respect is the continue
to rely on third party groups to add this much needed functionality. Choice
is good, but it makes it even harder for enterprise to latch on to something
as they have to sit down and evaluate each solution or worse hire
consultants to tell them which solution to take... shudder.

I feel like the ruby community is essentially all third party groups. But I agree that a rally behind a particular software package does make the decision process easier. I think there should be a balance. Diversity is natural. Java has a wealth of competing tools, if .Net had a stronger community, I'm sure it would too.

The second is the effect of soft/duck typing on the IDE. Theology aside,
code completion reduces the learning curve, reduces bugs and increases
productivity. All of these things are a Good Thing (TM). I fully understand
that for a complete novice that intelligent IDEs can hinder overall
understanding, but no more than garbage collection - and what high
productivity language would be without that?
Would allowing the language some syntactic sugar to merely decorate an
object with a type, which could be completely ignored by the runtime, really
be that much of a bad thing?

RDT is making some good headway on code completion. Personally, I find that type hinting leads to slower, more bug prone development because it's one more thing for the developer to think about. Decent code completion is possible without adding rigidity to the typing system. But I suppose if a particular IDE wanted an easy way to implement it, they could do it by way of special comments.

I know Ruby isn't necessarily going after the enterprise market, but it's so
neat that I think it would be a waste if it didn't.

What makes it so unique is that the syntax scales with the project. No one
would routinely write a shell script in Java as they would in Perl, but no
one would think that writing a word processor in Perl would be a good idea
either. Ruby fits for both... at least syntax does.

Personally, I dig the closures. But that's just me :slight_smile:
-Mat

···

On Jun 5, 2006, at 9:35 AM, Tom Marsh wrote:

Well, you're going to get a lot of....um, "passionate" responses to your
specific points, so I'll keep it high-level. You've made a very good case
that corporate IT needs a better programming language, but Ruby isn't it.
One way to summarize your argument is that Ruby would be better accepted if
it were more like Java in specific ways. But Ruby is fundamentally different
from Java in both essence and detail. We still haven't answered this
question: do the things that make Ruby unique qualify it or disqualify it as
an enterprise development language? Are corporate developers ready for a
fairly serious change in the way they work? Especially since many of the
younger CS grads have never thought in any language but Java.

If we try to make Ruby an incrementally better Java as a way of driving
corporate acceptance, we'll fail at both goals.

I don't understand what you mean when you say that "syntax scales with the
project."

Tom Marsh wrote:

There are two aspects of Ruby that destroy Rails for enterprise computing.

I personally don't think that Ruby needs to be "enterprise" in order to
have a bright future.

The good news is, that they are both fixable.

I think there is a temptation for newbies, especially those that are
experienced in other languages (like myself), to want to mold Ruby in
some way that is familiar to them.

Although this is natural, I think trying to keep a beginner's mind is
important, because it will enable one to really learn something new and
appreciate it for its differences without imposing one's experiential
biases. If I wanted something like Java or .NET, I'd just use Java or .NET.

The first is performance. Ruby might be the same age as Java, but Java
developers are 10 a penny and that means that Ruby is more expensive, both
in terms of the hardware required to run it, and people required to develop
it. In order for it to get its foot in the door it needs to massively
reduce
its TCO.

Above you disregard the cost of development itself (and
maintenance/enhancement), which should be included in TCO.

Although I agree that Ruby can be faster, and I'm certain it will be
with YARV/Rite, IME, typically the performance bottleneck is the backend
DB, not the application server. I'm not in production yet, but right
now, Ruby is fast enough for me.

If Ruby's performance could get close to Java then the reduced development
costs would be enough to justify the risk of taking on another new
language.

Reducing development costs can make a significant difference and there
is risk in playing it safe (i.e. opportunity costs if one believes that
Ruby/Rails will provide a technological advantage).

The biggest mistake I think Ruby could make in this respect is the continue
to rely on third party groups to add this much needed functionality.

Take a look at YARV/Rite.

The second is the effect of soft/duck typing on the IDE. Theology aside,
code completion reduces the learning curve, reduces bugs and increases
productivity. All of these things are a Good Thing (TM). I fully understand
that for a complete novice that intelligent IDEs can hinder overall
understanding, but no more than garbage collection - and what high
productivity language would be without that?

IMO, one cannot separate the "Theology" from the argument. If one
believes that duck typing improves productivity and the language
overall, then its impossible to remove it from the context of the
discussion. It's one of the things that makes Ruby, Ruby.

But regardless, I think the tools side is moving forward. IMO,
ActiveState has a good IDE for Ruby; Arachno is good too. Although it
doesn't look like an "IDE", Mac users seem to really like TextMate.

My personal opinion is that Ruby shouldn't worry about tools; I
appreciate that the emphasis in the community is less on tools and more
about the language, frameworks, etc. Tools vendors are smart, IDE's are
a mature discipline, so I have confidence they'll find ways of making
Ruby accessible to newbies.

Would allowing the language some syntactic sugar to merely decorate an
object with a type, which could be completely ignored by the runtime,
really
be that much of a bad thing?

My initial reaction is: yes, it would be a bad thing. I trust those
that know Ruby a lot better than me to make decisions about language
direction.

I know Ruby isn't necessarily going after the enterprise market, but
it's so
neat that I think it would be a waste if it didn't.

I personally think it's more important for the Ruby community to be
focused on solving real-world problems than to try to market itself to
anything.

Certainly a real-world problem is: how to get my organization to use
Ruby. I personally believe there will be business opportunities for
those motivated enough to capitalize on providing Ruby services for the
Enterprise (whatever those things are...). Book publishing is one
aspect of it, training is another, web hosting, consulting, etc. I
believe it's happening now and will continue to do so.

···

--
Brian Moelk
bmoelk@NObrainendeavorSPAM.FORcomME
http://www.brainendeavor.com

Tom Marsh wrote:

The first is performance. Ruby might be the same age as Java, but Java
developers are 10 a penny and that means that Ruby is more expensive,
both
in terms of the hardware required to run it, and people required to
develop
it. In order for it to get its foot in the door it needs to massively
reduce
its TCO.

Hi Tom, I just wanted to respond to these two points.

Although no one is arguing against improved Ruby performance, I think
you overestimate the hardware issues. I find I am quite comfortable
developing Rails code on my 6 year old laptop. However, I wouldn't even
consider developing a non-trivial Java application on the same hardware.
Although I'm talking develement and not production deployment, I think
you will find that true across the board.

Justin Gehtland had some numbers on comparing Ruby performance with a
similar Java webapp. You can read about it here:
http://blogs.relevancellc.com/articles/2005/04/04/some-numbers-at-last
(looks like relevance has changed their blog software and some of the
postings lost all formatting ... the words and numbers are all there,
you just have to read carefullly, sorry). The summary is that the
unoptimized versions of the Ruby and Java apps had very similar
performance, and that it was very easy to tune the Ruby version with
selective caching options.

The assertion that Ruby cost more in terms of people is an interesting
one as well. Although I don't have numbers for myself, Stewart Halloway
has published some figures for his consulting company. They offer both
Ruby and Java services and charge 10% to 50% less for Ruby jobs over
Java jobs. And this is after paying Ruby developers more (about 10%).

You can read about Stewart's findings here:

http://blogs.relevancellc.com/articles/2005/12/19/ruby-rails-put-your-money-where-your-mouth-is
http://blogs.relevancellc.com/articles/2005/12/20/bidding-projects-with-ruby-rails-take-2

-- Jim Weirich

···

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

1. No native OS threads.

I hear this argument a lot. I do web development, so I rarely worry about threads at all. What's the problem here that it makes so many people's lists?

2. To get the fully benefit from Rails, your database has to have a
specific naming convention. (Makes it impossible to migrate to RoR from
something else).

You can configure ActiveRecord to a certain extent. It sounds like you might want to investigate it more before saying "you have to". You could also use rails w/o ActiveRecord if you really wanted to.

3. No generic database drivers built into Rails for databases other than
the top 3 and open-source databases. (Makes it impossible to migrate to
RoR if you use a different database)

I think you're wrong here. I'm seeing stuff in the rails wiki for Oracle, SQL server, Sybase...

4. Slow performance.

"Fast enough" seems to be the going mantra.

5. Kind of a hack job to get it to work with Apache. (But this could
also be my lack of knowledge)

I haven't had a lot of luck here either.

···

On Jun 5, 2006, at 11:22 AM, ReggW wrote: