Can Ruby stay ahead?


#1

Will Ruby find it difficult to stay in the first 10 languages list
on Tiobe Index ?

According to one of my friends views :

The emergence of new languages like Clojure, Scala, Fan, indicate to
this. All these new languages have concurrency support and are faster
than Ruby. Python is improving constantly. Its perfomance has always
been
faster than Ruby, and it is very scalable, stable and widely used.
Perl is coming back with its new avatar “Perl 6” armed with types.
PHP may keep its present postion. Groovy slowly ascends the ladder.

Inspite of all his comments, My favourite language is Ruby.
I have been using ruby for the last 3 years. It has vastly helped me
to make my daily office work easier. Hopefully 1.9.1 compatible issue
with existing libraries will be solved within months.

Exprert Rubyists, Please share your views on this matter to enliven
my kind of average rubyists.

Long Live Ruby !!


#2

Suresh Kk wrote:

Will Ruby find it difficult to stay in the first 10 languages list
on Tiobe Index ?

Languages are on that list for a different reason. Some have corporate
support,
some have academic support, and some have a critical mass of projects
using them.

Ruby is heading towards all three of those reasons to stay on the list.


#3

On Sat, Apr 11, 2009 at 5:25 PM, Phlip removed_email_address@domain.invalid wrote:

Forgive my ignorance, should language X be on the Tiobe Index? For
what reason? Never heard of that one before (duking, but that is the
truth).
Cheers
R


Si tu veux construire un bateau …
Ne rassemble pas des hommes pour aller chercher du bois, préparer des
outils, répartir les tâches, alléger le travail… mais enseigne aux
gens la nostalgie de l’infini de la mer.

If you want to build a ship, don’t herd people together to collect
wood and don’t assign them tasks and work, but rather teach them to
long for the endless immensity of the sea.


#4

Perl is coming back with its new avatar “Perl 6” armed with types.

Do we have first April again? :slight_smile:

Reminds me of GNU Hurd.

I heard that it will be ready next year.


#5

To be honest, I think the most important thing Rubyists could do to help
Ruby grow and become more relevant would be to more whole-heartedly
support alternative implementations like JRuby, IronRuby, and MacRuby
that target new domains of developers on other platforms.

The truth is the C implementations of Ruby are only one part of our
quest to conquer the world…there are a lot of developers out there on
existing VMs and platforms that need to be brought into the fold. And
they’re not going to leave those platforms. The best way to bring them
over is to embrace the Ruby implementations for those platforms, and do
everything possible to make sure they’re top-notch. The alternative is
losing mindshare to languages like Groovy or Scala on the JVM or
IronPython, F#, or C# on the CLR.

The recent migration by Twitter of key infrastructure to Scala is a
perfect example of this.

But this also raises another question: Does the Ruby community want to
be all-inclusive? More and more I see Ruby groups splintering into the
“regulars” and the “elites”, and sometimes the elite groups splinter
even further. Many of the Ruby old guard want to keep Ruby an exclusive
club, and I think that elitism hurts the community.

I believe it’s important for Ruby to continue growing and to draw in as
many Java, .NET, and other platform developers as possible. I believe
it’s important for the Ruby community to do more to help these
alternative Ruby platforms be successful. But I don’t know yet whether
it’s what the Ruby community wants.

  • Charlie

#6

Robert D. wrote:

Forgive my ignorance, should language X be on the Tiobe Index? For
what reason? Never heard of that one before (duking, but that is the
truth).

http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

Java is number 1 due (in my exalted opinion) to corporate support, a
huge
critical mass of active projects using it, academic support, and
“enterprise
support”. The latter is roughly equivalent to “we had to spend a
quintillion
dollars on it last quarter, so it must be powerful stuff!”

C is number 2 due to almost complete saturation of the systems and OS
programming layers. The next layer above machine language is C, so if
you have
silicon, you need C between it and your higher level systems.

C++ is number 3 due to complete bidirectional integration with C, plus
all the
same reasons as Java, plus C-like (or better) performance.

PhP is 4 because - until Rails - it was the default choice for RAD
website
development. Non-RAD website development is very rare…

Visual Basic is 5 because MS markets it to your non-technical boss as
“simpler
than all those fragile languages that cause bugs.” 'nuff said.

JavaScript is on the list because it extends HTML to make your browser
actually
do stuff. It goes where HTML can’t go.

C# made the list because it’s a Java clone, and hence a “duopoly” in the
same
Enterprise space.

And the Duck Typing languages - Perl, Python, Ruby - are on the list due
to the
LAMP website architecture, where P stands for any interPreted language.

Lua is on the list because it provides the scripting layer - and Duck
Typing -
for video games.


#7

On Sat, Apr 11, 2009 at 13:14, Charles Oliver N.
removed_email_address@domain.invalid wrote:

To be honest, I think the most important thing Rubyists could do to help
Ruby grow and become more relevant would be to more whole-heartedly support
alternative implementations like JRuby, IronRuby, and MacRuby that target
new domains of developers on other platforms.

That and providing a CPAN-like resource, too. And before someone
complains about this point, go look at CPAN and provide a
point-for-point comparison with whatever alternative you have in mind,
not to convince me that I’m in need of cluebat, but to educate those
who — like me — don’t know the information that you obviously posses.
Hopefully you get the point I’m trying to make.

Marcelo


#8

Ruby is also gaining a (minor for now) foothold in some of the
scientific disciplines - at least physics. I know there are Ruby
bindings for the CERN ROOT libraries (which I personally use) that
make life just that much easier. If it wants to truly compete in the
academic setting, it will have to do benchmark battle with python -
and I am under the impression that 1.9 goes a long way towards doing
just that.

For those of us who like Ruby because of its paradigm and not because
of its performance, I think there will be a consistent market. And if
the language can improve on the latter, it can only improve the
situation.

In my opinion, one of the real threats is that MacRuby will do to Ruby
what Obj-C 2.0 did to Obj-C - which is to say shift the development
emphasis towards compatibility with the proprietary Cocoa libraries.
Don’t get me wrong - I am writing this from a mac and I do like the
Apple platform, but I do most of my actual hard core crunching on
Linux machines.

Two cents.


#9

On 11.04.2009 21:14, Charles Oliver N. wrote:

The truth is the C implementations of Ruby are only one part of our
quest to conquer the world…there are a lot of developers out there on
existing VMs and platforms that need to be brought into the fold. And
they’re not going to leave those platforms. The best way to bring them
over is to embrace the Ruby implementations for those platforms, and do
everything possible to make sure they’re top-notch. The alternative is
losing mindshare to languages like Groovy or Scala on the JVM or
IronPython, F#, or C# on the CLR.

But why do you say those people “need to be brought into the fold”?
Do we (or Ruby) really loose something if we do not insist on converting
the world over to Ruby?

But this also raises another question: Does the Ruby community want to
be all-inclusive? More and more I see Ruby groups splintering into the
“regulars” and the “elites”, and sometimes the elite groups splinter
even further. Many of the Ruby old guard want to keep Ruby an exclusive
club, and I think that elitism hurts the community.

I view this differently: to me it seems the Ruby community feels little
urge to evangelize (apart from Rails maybe) which I find very pleasant.
IMHO this is not the attempt to keep others out but rather an attitude
of letting everybody pick the tools that suit them best. If it is not
Ruby, then that’s perfectly OK. I find this quite a laid back approach
and it is certainly one of the things that makes this community such a
nice place to be for me.

I believe it’s important for Ruby to continue growing and to draw in as
many Java, .NET, and other platform developers as possible.

Why? Do you fear extinction of this wonderful programming language?
Ruby is here to stay. Even if development of the language would stop
right now (what I do not hope) it does not stop being useful to a lot of
people.

Kind regards

robert


#10

On Sun, Apr 12, 2009 at 8:50 AM, Robert K.
removed_email_address@domain.invalid wrote:

But why do you say those people “need to be brought into the fold”? Do we
(or Ruby) really loose something if we do not insist on converting the world
over to Ruby?

Unfortunately, yes. Broadly speaking, the less widely used a language
is, the less effort and investment is placed into maintaining and
advancing it. But diversity helps, too, as the best new ideas from
Ruby may well come from things that come from other languages which
encourage different ways of thinking about the same problems.


#11

On Saturday 11 April 2009 14:30:06 Marcelo wrote:

That and providing a CPAN-like resource, too. And before someone
complains about this point, go look at CPAN and provide a
point-for-point comparison with whatever alternative you have in mind,

I haven’t used CPAN enough to know quite what features you’re expecting.

But since you’re probably going to get this answer from pretty much
everyone
here, what does CPAN have that Rubygems lacks?

not to convince me that I’m in need of cluebat, but to educate those
who — like me — don’t know the information that you obviously posses.

Oh. Well, try Rubygems. Nuff said.


#12

It’s obvious that Java is post-mature, and another language/platform
will replace it as the default language choice for general purpose
programming.
It is not obvious what will take Java’s place. Technical features are
not the most important factors in why a language becomes dominant. Low
cost of entry, sexy tools, a functional community and endorsement by
influential parties are all important.

In theory JRuby is an obviously good idea. How much uptake is it
getting?
Can anyone speak about their experience using java tools like Yourkit
or JxInsight or Optomizeit or Wily Introscope with JRuby?

On Apr 12, 2009, at 12:42 PM, Christopher D. removed_email_address@domain.invalid


#13

On Sun, Apr 12, 2009 at 12:07 PM, David M. removed_email_address@domain.invalid
wrote:

But since you’re probably going to get this answer from pretty much everyone
here, what does CPAN have that Rubygems lacks?

Quantity … CPAN far outnumbers Python, Ruby and other languages in
the number of packages. To paraphrase Garrison Keillor, “If it isn’t
in CPAN, chances are you can build your application without it.”

M. Edward (Ed) Borasky
http://www.linkedin.com/in/edborasky

I’ve never met a happy clam. In fact, most of them were pretty steamed.


#14

Personally I love your sentiments Robert. If I ever do any
evangelizing its simply because coding in ruby is so much fun that if
someone asks I’m all over that question like a nun sandwich - to
paraphaze the mighty boosh. Lol. Its the same as recommending anything
that’s awesome like a good cafe, movie, book or a nightclub. :slight_smile: but
appropriately. This is really not a religion. I find ruby people have
such a pragmatic and intelligently well thought out idea set… And
security, because they’re not afraid. Its very embracing. The only
reason we’d need fervour or blind acceptance is if we were insecure.
We’re not tho. We honestly don’t mind a whit if joe bloggs uses it or
not, but in much the same way that recommending medicine to improve
someones life will help tremendously, its natural. As long as you’re
happy, that’s all that really counts. Some people like being sad or
living with dis-ease. That’s ok. I’m actually thankful for diversity,
because mass-adoption tends to decay things somehat. The context shift
loses the potency of meaning.

:slight_smile:

Blog: http://random8.zenunit.com/
Learn rails: http://sensei.zenunit.com/

On 13/04/2009, at 1:50 AM, Robert K. removed_email_address@domain.invalid


#15

M. Edward (Ed) Borasky wrote:

On Sun, Apr 12, 2009 at 12:07 PM, David M. removed_email_address@domain.invalid wrote:

But since you’re probably going to get this answer from pretty much everyone
here, what does CPAN have that Rubygems lacks?

Quantity … CPAN far outnumbers Python, Ruby and other languages in
the number of packages. To paraphrase Garrison Keillor, “If it isn’t
in CPAN, chances are you can build your application without it.”

Uh, that refers to a small, obsolete general store that’s close by, but
cannot
compete with the supermarket in the nearest town. Yes on home canning
supplies,
no on any jams without high-fructose corn syrup…


#16

On Mon, Apr 13, 2009 at 8:10 PM, Mark T. removed_email_address@domain.invalid
wrote:

There’s no doubt that CPAN is a great resource. These are a few of its
highlights:

add one more: a really good front page for each project, with
description, quick usage notes and examples.

martin


#17

On Apr 12, 3:07 pm, David M. removed_email_address@domain.invalid wrote:

On Saturday 11 April 2009 14:30:06 Marcelo wrote:

That and providing a CPAN-like resource, too. And before someone
complains about this point, go look at CPAN and provide a
point-for-point comparison with whatever alternative you have in mind,

I haven’t used CPAN enough to know quite what features you’re expecting.

But since you’re probably going to get this answer from pretty much everyone
here, what does CPAN have that Rubygems lacks?

There’s no doubt that CPAN is a great resource. These are a few of its
highlights:

  1. A single, cohesive website that categorizes all modules (http://
    search.cpan.org/) for easy browsing.
  2. A module namespace convention that helps one know what the module
    does, rather than ‘cute’ names (Test::MockClass vs. Mocha,
    PDF::ReportWriter vs. prawn, etc)
  3. A search engine that returns not only description, but also last
    update, and reviews. (e.g. http://search.cpan.org/search?query=xml)
  4. Page for each distribution with links to the classes and files,
    dependencies, test results, etc. (Example:
    http://search.cpan.org/dist/XML-Twig-3.32/)
    Much better interface than Rubyforge.
  5. Automated tests run by a cadre of volunteers. New releases of
    modules are tested upon release on a variety of Perl versions and
    operating systems. See the test reports and Perl/Platform Version
    Matrix links on the distribution page.
  6. Ratings. When there are many options for a particular task, seeing
    the star ratings can help you whittle down the options to the best.
    The overall highest rated modules tend to be the best-practice ones
    you should be using.
  7. The ‘cpan’ command comes with Perl. :slight_smile:
  8. The ‘cpan’ command has a test harness and runs the tests before
    installation. If a module doesn’t pass its tests on your platform, it
    is not installed.
  9. CPAN has a very rich set of mirrors (http://mirrors.cpan.org/) and
    you can configure your local cpan command to use a subset, say a
    primary and a backup (good for environments requiring firewall rules
    to be in place for external access).

#18

On Apr 13, 10:43 am, Martin DeMello removed_email_address@domain.invalid wrote:

On Mon, Apr 13, 2009 at 8:10 PM, Mark T. removed_email_address@domain.invalid wrote:

There’s no doubt that CPAN is a great resource. These are a few of its
highlights:

add one more: a really good front page for each project, with
description, quick usage notes and examples.

and a sidebar with related modules!


#19

On Apr 13, 2009, at 10:40 AM, Mark T. wrote:

dependencies, test results, etc. (Example: http://search.cpan.org/dist/XML-Twig-3.32/)
8. The ‘cpan’ command has a test harness and runs the tests before
installation. If a module doesn’t pass its tests on your platform, it
is not installed.
9. CPAN has a very rich set of mirrors (http://mirrors.cpan.org/) and
you can configure your local cpan command to use a subset, say a
primary and a backup (good for environments requiring firewall rules
to be in place for external access).

That’s a good list of features, thanks for putting it together. Let’s
see:

  1. Tricky one since there’s more than one big source of gems. Well,
    there are two main ones - github and gems.rubyforge.org - plus a host
    of others. We could build such a site for RubyForge… would be
    interesting.

  2. RubyForge has a “trove” that lets folks categorize their
    projects… we could work this into a new site somehow.

  3. This would be nice indeed.

  4. Same as # 3 :-). A lot of this information is there in the gem
    spec or inside the gem itself; would need to extract and render it.

  5. Not sure if there’s an effort like this going on anywhere in the
    Ruby world.

  6. Could work this into RubyForge somehow if folks found it useful.

  7. I think RubyGems is shipping with newer versions of Ruby (?)

  8. This is something for Eric/Luis/other RubyGem guys to weigh in
    on… surely this has come up before…

  9. We do need better mirror status visibility. I owe Ryan D. an
    API for RubyForge so’s he can fetch a mirror list. Would make sense
    to have a page on RubyForge for that as well.

All good stuff!

Yours,

tom


#20

On Sun, Apr 12, 2009 at 18:22, M. Edward (Ed) Borasky removed_email_address@domain.invalid
wrote:

Quantity … CPAN far outnumbers Python, Ruby and other languages in
the number of packages. To paraphrase Garrison Keillor, “If it isn’t
in CPAN, chances are you can build your application without it.”

Quality, actually. Quantity is just the cherry on top.

Start here: http://search.cpan.org/

What do you see?

From there, you can go here:

http://search.cpan.org/search?query=html+parser&mode=all

(I’m picking a not-so-random example, one that’s good enough for
illustration purposes)

You see HTML::TreeBuilder there and check it out:

http://search.cpan.org/~petek/HTML-Tree-3.23/lib/HTML/TreeBuilder.pm

What do you see there?

I see a decent introduction, I see examples, I see a documented API,
written from the point of view of someone who wishes to use it yet
doesn’t know enough about it, not from the point of view of someone
who already knows about it and wants to be reminded of a particular
detail, I see cross-references, I see links to other relevant
information, among which is this:

http://search.cpan.org/~petek/HTML-Tree-3.23/

What do you see there?

I see history, I see reviews, I see a discussion forum, I see
information that’s neatly organized…

I see usability.

And this is just scratching the surface of the website representation
of CPAN. CPAN is not only that website. As the name implies, CPAN is
a network of resources.

But David did hint at something else that I see as a problem: a
strange type of hostility towards criticism that not even the Perl
community displays. Oh, and that strange notion that rubygems somehow
works in the same problem domain as CPAN does. If something, rubygems
provides a small subset of the functionality that CPAN does. The main
difference I see is integration.

This is a good read: http://www.cpan.org/misc/ZCAN.html

Marcelo