Ruby is exploding onto the scene as Java did at the end of 1

On Fri, Aug 18, 2006 at 06:21:54AM +0900, Charles O Nutter wrote:

Folks seem to so quickly forget that before Java came on the scene, most web
development was based on CGI, usually using Perl. The reason Java managed to
almost completely take over that space in a very short time is simple: it
was far, far more consumable than your average large-scale mid-90s
Perl-based web application. I had to maintain a few of those applications,
and man was it a boon to web development and Java (and others like PHP) came
along. Suddenly building web applications wasn’t an exercise in pain (or at
least, not as much pain) and the explosion of applications going into 1999
and 2000 demonstrates that others felt the same way.

I disagree pretty strongly with that characterization. Java didn’t
really provide much of anything in terms of benefits for web development
over Perl/CGI. Perl/CGI is far more accessible to beginners, both as a
programming toolset and in terms of what’s available at common shared
hosting providers; Java applets suck; Perl/CGI is more portable (despite
the Java portability marketing); early server-side Java was a bit like a
spork in the eye in terms of performance and ease of deployment.

The real driver of Java success as a Web programming language was simply
Sun marketing. Paul Graham has suggested that the first step to
choosing the right tool for the job is usually to stand as far back from
the industry practices as possible, far enough back so that the only
thing you see is the big flashing neon sign for whatever toolset gets
the most hype, and discard that: in the case of web development, that
was Java for a long time. The fact Java had that big flashing neon
sign, however, suckered a heck of a lot of people into thinking it’s the
only language worth using for web development. That is the real
reason Java gained as much traction in the web development sphere as it
did.

I, for one, have never found Perl/CGI development to be painful at all.
Looking at Java web programming code that has about a 30:1 weight ratio
as compared with Perl/CGI code, however, does tend to make the brain
smart a bit.

I think the business motivation for these big players to buy into Ruby is
simple: backing Ruby, funding Ruby projects, and building Ruby domain
expertise will help further the language that is (in my opinion) most likely
to increase demand for the software, hardware, and services that come along
with a really smashing development boom. If any one of those companies could
claim expertise in Ruby, support for running Ruby in concert with their
software and hardware solutions, and services for helping advance Ruby,
build Ruby applications, and support Ruby development work…they’d be
betting on a pretty solid horse.

I don’t know that Ruby is the “most likely”, but it certainly seems to
be in the top five, and any language in that short list is pretty nearly
equivalent to the others for these purposes at this point in time. Luck
will play a large part in determining what languages end up getting
adopted as the “next big thing”, but so too does stuff like a critical
mass of interested developers, books on the shelves of bookstores, and
good business models behind the languages (or, at least, divorcement of
the language’s potential success from any bad business models).

stand-bys. If one of them were to break ranks and bet on Ruby…things would
get seriously interesting.

They might get that way, anyway. I see a lot of very successful (so
far) startups leveraging Ruby to good effect, both technically and in
terms of business concerns. We may well see a Java-equivalent marketing
bonanza arising semi-organically from a seething mass of small, “hip”,
dynamic business efforts rather than a single, monolithic, 900 pound
gorilla corporate entity. If I had my druthers, that’s how it would
happen. I’d like to see a few 900 pound gorillas forced onto some
pretty strict diets.

On Fri, Aug 18, 2006 at 06:43:49AM +0900, Francis C. wrote:

development productivity is under way. At the moment it’s being spent
in an orgy of wheel-reinventing that Java (through the miracle of
well-focused corporate sponsorship) managed to largely avoid. But
along with the miracle of corporate sponsorship came the horror of…
Java itself, and there is an argument to be made that it couldn’t have
turned out any other way.

I’m inclined to agree, re: Java.

The right model for Ruby advocacy may not be Java but rather Python
(or Linux). If so, then success will come from organic growth and
slow, steady success, largely in projects far from the enterprise
mainstream (which these days is all bogged down thinking about
governance models for SOA- talk about expending cycles that don’t
deliver business value!)

I’m inclined to agree here, as well – most thoroughly. I’d rather see
that sort of organic growth, in part because it would likely ensure that
the potential for disillusionment when the realities of the language are
separated from the marketing is minimized. I think that Perl could be
added to the list of examples of the “right” model (it has had strong
successes, after all, and is still used widely and more so every year),
and that Logo should likely be listed amongst the examples of “wrong”
ways to do it (it’s a victim of its own success as an “educational”
language: everyone thinks of it as a toy for children, while at least
one implementation of it is an easier-to-learn, truly powerful Lisp
dialect, and hype is what killed it).

On 8/17/06, Chad P. [email protected] wrote:

business drivers. Enterprise IT is in the middle of a secular
transformation that will fundamentally change the playing field for
traditional vendors. You’ve correctly perceived that an explosion in
development productivity is under way. At the moment it’s being spent
in an orgy of wheel-reinventing that Java (through the miracle of
well-focused corporate sponsorship) managed to largely avoid. But
along with the miracle of corporate sponsorship came the horror of…
Java itself, and there is an argument to be made that it couldn’t have
turned out any other way.

I’m inclined to agree, re: Java.

My point wasn’t about Java, it was about what heavy backing like Java
received can do for a language. Java was arguably not the best language
for
many jobs it got applied to; and yet look at it today. Wouldn’t it be an
amazing thing if the same corporate push, the same level of resource
commitment was made for a truly excellent language like Ruby? Or would a
flashing neon Ruby sign sound the death knell for the language we know
and
love? I obviously think it’s the former.

the potential for disillusionment when the realities of the language are
separated from the marketing is minimized. I think that Perl could be
added to the list of examples of the “right” model (it has had strong
successes, after all, and is still used widely and more so every year),
and that Logo should likely be listed amongst the examples of “wrong”
ways to do it (it’s a victim of its own success as an “educational”
language: everyone thinks of it as a toy for children, while at least
one implementation of it is an easier-to-learn, truly powerful Lisp
dialect, and hype is what killed it).

Again, the only analogue to Java is in what hard-core corporate backing
can
do for a language. C# is another example…only marginally better than
Java,
but already becoming very popular. Why do we keep making the same
mistakes
time and time again? Why can’t it be Ruby this time? There’s another
simple
answer:

Java was invented at Sun during a largely closed-source era. C# was
invented
at Microsoft, a notoriously closed-source company. In both cases, they
still
subscribed to the idea that in order to profit from something you had to
own
it…anything “not invented here” was absolutely out of the question.

But times are changing. Both companies have started to embrace
alternative
languages, and both have professed a belief in and support for Open
Source
(though to a far greater extent at Sun). These companies and many like
them
are realizing that ownership is only a small part of the big picture,
and an
ultimately very expensive part. Thus, both Sun and Microsoft have
declared
their respective platforms to be “multilingual” now and into the future,
though they’re still hedging their bets on which languages will rise to
the
top. Obviously, I think it will be Ruby. Others may disagree.

And please remember that Ruby by definition can’t fall into the Java or
C#
trap because it already IS “not invented here”. By hooking up the
corporate
wagon to the already fast-moving Ruby train, both the Ruby world and the
corporate world would benefit: the Ruby community and language would
continue their evolutionary, organic growth–already proven to be a very
succesful and compelling model–and the corporate world could provide
funding, resources, support, and peripheral enhancements to help take
Ruby
that “last mile” into the heart of the largest organizations–arguably
their
strongest reason for existence. IBM has been reaping great success from
a
similar situation with the open source Java world, using a language and
platform they do not own. The same could happen for a community-driven
language like Ruby, once we convince the PHBs that we really do know
what
we’re doing.

Charles, once again I feel you are light on business drivers.
Development
productivity itself is only a business driver for a company that sells
technology, not for a company that sells widgets or services. You give
the
example of IBM. They have a deep and permanent commitment to Java,
because
they sell Websphere, and anything that cuts into Java’s hegemony will
threaten the market for Websphere. If I were IBM I would work very hard
against Ruby for that reason, and for another reason besides: anything
that
increases development productivity decreases the value of IBM Global
Services. (IBM, not being dummies, recognize that this business is under
pressure, which is why they’re trying to reinvent it as a management
consultancy.)

You also mention PHBs. But PHBs themselves report to still-higher PHBs
(a
CIO ultimately reports to a CFO or a VP of operations), and no one in
that
chain is interested enough in development productivity to push it as an
end
in itself. They are interested in solutions to the larger business
problems
that they face, which technology has not done a terribly good job of
addressing (“why don’t we know what our customers are thinking?” “how
can we
reduce our capital costs for inventory?” “why are you computer people so
bad
at forecasting quarterly demand?” “why the hell doesn’t my email work?”)

Another problem with development productivity per se, which hasn’t yet
been
addressed, is how to create value cumulatively from it. In short (and
at
the risk of being accused of Java-philia), Ruby applications don’t work
well
together, or with other enterprise systems (that represent capital
assets
and may not be disregarded). I think Rails has a latent (and possibly
fatal)
flaw in this regard, which Ruby itself does not share. But it’s a
problem
that must be solved.

For what it’s worth, I think Google and (ironically) Microsoft, are
companies that might someday get into some serious Ruby advocacy.

On 8/17/06, Francis C. [email protected] wrote:

Services. (IBM, not being dummies, recognize that this business is under
pressure, which is why they’re trying to reinvent it as a management
consultancy.)

Yes, IBM sells WebSphere, but not for very much. In some cases, if
bundled
with IBM services, it’s practically free. I will grant that any company
with
a major vested interest in language X is less likely to invest in or
support
language Y, but they need to be damned careful about that policy. They
could
very quickly be blind-sided by Y when a major competitor realizes Y’s
potential before they do. I think Ruby could be Y for a number of the
big
corporations we’re talking about.

And what, pray tell, is a good business reason to support any new
language?
Why did Google choose to support Python so heavily? Why has Microsoft
done
the same with IronPython and why are they providing funding for
Ruby.NET? If
you’re looking for reasons like “Ruby will increase profits nine jillion
percent” or Ruby will banish your competitors to the land of wind and
ghosts" then I’m not the person to talk to. But if you’re looking for
technical, grass-roots reasons why a company should start focusing on
Ruby
intelligence and support right now, that’s what I’ve given you.

Why do we choose one language over another? Why do we want Ruby to be
our
for-pay daily-development language of choice? Because we know…we know
we
could get more work done…we know we and others would be happier…we
know
the software world would be a brighter place. Maybe it’s bright-eyed
optimism on our parts, maybe we’re wearing Ruby-tinted glasses. But
maybe
we’ve tried so many other languages and so many other development models
and
so many other communities and finally found one that feels right.

We may not be able to show the business boys (yes, all the way up to the
top) MBA-endorsed reasons why Ruby is the way. What we can show them is
an
enthusiastic, creative, vibrant, and growing community of some of the
smartest folks around. And we can give them the laundry list of current
successful ventures that started the same way. That’s what we do…we
take
empirical evidence and extract theories from it. I think it’s safe to
say
that the evidence points toward great success for Ruby and those who
have
the good sense to use it.

Another problem with development productivity per se, which hasn’t yet
been

addressed, is how to create value cumulatively from it. In short (and at
the risk of being accused of Java-philia), Ruby applications don’t work
well
together, or with other enterprise systems (that represent capital assets
and may not be disregarded). I think Rails has a latent (and possibly
fatal)
flaw in this regard, which Ruby itself does not share. But it’s a problem
that must be solved.

And this is a perfect area where backing from experts in systems
integration
could help. Of course we don’t want CORBA. Of course we don’t want EJB.
Of
course we don’t want gigantic SOA behemoths. Their failures are
documented
better than their successes. But there’s a lot of smart folks that have
learned from those mistakes that work for the big guys. Given freedom to
work within the community, to work with the community, to “innovate
outside
the box”…everyone could win.

What IBM, Sun, and Microsoft could also bring to the table is in tools.
Eclipse and Netbeans are, while memory-intensive, really nice IDEs to
work
with. And the beauty of Visual Studio is well documented. As another
poster
mentioned, what acceptance would Java or C# have had without a vast
array of
beginner-friendly tools to help make them accessible to the masses?

For what it’s worth, I think Google and (ironically) Microsoft, are

companies that might someday get into some serious Ruby advocacy.

I have heard Google is intrigued by Ruby, but they have at least one
staffer
who probably isn’t a fan. And Microsoft is already supporting Ruby, by
providing some amount of funding for the Ruby.NET project. It’s a small
start, but big things come in small packages.

Jumping in way late on this thread:

Regarding Google: I spent some time talking to Alex Martelli of Google
at OSCON and asked him about Ruby at Google. His bottom line was that
Python does the job, it does it rather well and they have no interest
in adding a fourth language to their three–language codebase (Java,
C++, Python). However, I’ve heard rumors that the Google satellite
office in Seattle has some Ruby stuff happening, largely due to the
efforts of Steve Yegge.

Regarding Microsoft: It’s true that MSFT wants to make their developer
platform better than the competition (Java/Sun). It’s also true that
there are some balancing forces in the .NET world with Mono - if all
of your code is C#, Mono makes it less painful to switch away from
Windows. Remember that Java’s WORA also made it easier for folks to
switch away from Sun hardware / OS.

The bottom line is that dynamic languages are a key strategic area
for Microsoft’s developer platform. They placed their initial bet on
Python and that’s working out rather well as IronPython is rapidly
approaching 1.0 (they’re in RC1 right now). They’re also placing
another bet by returning Visual Basic to its more dynamic roots. I
think it would be a great idea if they made a strong bet on Ruby.

So if Microsoft or Sun made a strong bet on Ruby, the other would
invariably be forced to counter it. And the total amount of money is
relatively small - IronPython was created for probably less than $5MM.
I doubt it would cost that much for Ruby on top of the CLR, especially
since a lot of the groundwork was already done by the IronPython
project.

-John

John L. wrote:

Regarding Google: I spent some time talking to Alex Martelli of
Google
at OSCON and asked him about Ruby at Google. His bottom line was that
Python does the job, it does it rather well and they have no interest
in adding a fourth language to their three–language codebase (Java,
C++, Python). However, I’ve heard rumors that the Google satellite
office in Seattle has some Ruby stuff happening, largely due to the
efforts of Steve Yegge.
The bottom line is that dynamic languages are a key strategic area
for Microsoft’s developer platform. They placed their initial bet on
Python and that’s working out rather well as IronPython is rapidly

No big surprise about GOOG and MSFT. If I had to guess where Ruby will
make a mark (apart from Rails’ stable niche in low-end CRUD websites),
it would be in enterprise integration projects. I think a lot of people
who are trying to do that stuff in Java now will be pleasantly surprised
by Ruby.

That makes Oracle the dark-horse candidate for Ruby’s champion. And
maybe IBM’s Tivoli business unit.

Francis C. wrote:

for Microsoft’s developer platform. They placed their initial bet on
maybe IBM’s Tivoli business unit.

Hmmm … I can see the headlines now … an Oracle hostile takeover of
an open-source community. Sheesh …

Charles, I’m going to let you have the last word but before I do, I’d
just like to ask if you’ve ever stopped to think what is the common
thread with technologies that have major-vendor support? In general,
they are heavy, difficult, full of committee-driven standards, and very
costly. In other words, no one could love them but a vendor.

Now think about the common thread with technologies that started off
developed by open communities, like Linux (and Ruby). Well, not all of
them are full of sweetness, light, and intelligent defacto standards.
But they all do seem to generate this big question, “what’s the business
model?” The few companies that have come up with a coherent answer to
this question (RedHat, JBoss) are, I think, exceptions that prove the
rule.

And your point (expressed repeatedly and forcefully) that Ruby is a more
productive development technology, is precisely why no major technology
vendor is interested. Ruby doesn’t create an opportunity to lock
customers into heavyweight commitments in order to force-feed them
terrifically expensive support and services.

So all your protestations notwithstanding, I’m not holding my breath
waiting for a major technology vendor to endorse Ruby. Its heavyweight
backing will have to come some other way.

I think Google can be helpful for the same reason they back Python: it’s
one of the things they use internally and they want the community to
stay healthy. But if Python is the model, then Google’s support will be
tepid at best. How they build their technology is not where their
business edge comes from, as much as we technologists want to believe it
is.

Microsoft’s support will be a double-edged sword. Microsoft’s goal is to
enforce their platform lock-in, so they want to make sure they get a
chance to co-opt any hot technology before someone else does.

Perl/CGI is far more accessible to beginners, both as a

programming toolset and in terms of what’s available at common shared
hosting providers; Java applets suck; Perl/CGI is more portable (despite
the Java portability marketing); early server-side Java was a bit like a
spork in the eye in terms of performance and ease of deployment.

I have to agree with that entirely. At the time that Java was cranking
up, I was a Linux noob and was using some early version of RedHat.

I worked for endless nights trying to get the Java suite past RH’s RPM
dependency hell and just about decided that I would have to stick with C
(which I hate using for just plain user apps). Then for some reason I
tried Perl (probably because it was the only language that I could make
work besides C) and after a few weeks realised the power of the language
and never looked back.

The code runs on any system, including windows (unless you are trying
really far out stuff), no problems with sub/sub/sub libraries missing.
The beginner can start with page one of the learning book right off,
rather than get frustrated with install dependencies that he/she can’t
possible fix till lots of time goes by.

Ruby is almost the same as Perl from a beginner standpoint. It isn’t
installed with the OS (yet), but getting it is only a matter of
apt-getting, or emerging or whatever. Then start programming that first
“Hello World” the same night.

krf

On 8/18/06, krf [email protected] wrote:

dependency hell and just about decided that I would have to stick with C

Ruby is almost the same as Perl from a beginner standpoint. It isn’t
installed with the OS (yet), but getting it is only a matter of
apt-getting, or emerging or whatever. Then start programming that first
“Hello World” the same night.

Interestingly, I found Ruby installed by default on my bother’s
Macbook Pro after struggling for quite some time trying to find out
how to install it. Now that’s the sort of OS I can support, if only I
had the money!

Les

On 8/21/06, Robert D. [email protected] wrote:

On 8/17/06, Chad P. [email protected] wrote:

On Fri, Aug 18, 2006 at 06:15:12AM +0900, Leslie V. wrote:

Slightly off topic

D is a great language,
at least theoretically, while not having Ruby Syntax Sugar and full
dynamics
it has an enourmous amount of features from template mixins to generics
etc.
I was upset I tried it the first time because I had troubles with the
GNU
Compiler :frowning: [pitty me to confuse concepts and compiler, but you know if
you
cannot try it out]
The Digital Mars Compiler works quite fine up to know.
Of course I just looked into it for one day, but I judged much too
quickly.

My appologies to all D fans!

Robert

On 8/17/06, Chad P. [email protected] wrote:

Sorry to walk on your feet, I have heard from D too, maybe it is a great
language, but it does not look like such to me. I might be wrong, but if
enough people are wrong about it it will die anyway, which would be a
pitty
(so maybe I ought taking a second look, promised I will).

This is what I am afraid for Ruby, just that enough people would not
like
it.

So my point is, yes I am trying to make a point, although this will
never be
the compelling business reason it might be an important one:

  • Ruby is just sexier, we love it, if enough people share this POV,
    business
    will come along by itself. If there are not enough folks to use Ruby,
    business will not come along.

Too simple to be true?

Robert