From: Conrad Schneiker Date: 2000-03-25T13:18:01-06:00 Subject: [ruby-talk:02162] Re: Scripting and OO -- thought question From: > Here's an opinion question for you all. > > I was telling a friend about Ruby the other day, > and I told him how it was OO from the ground up, > unlike Perl, etc. > > His interest level was mild. He said that he > thought object orientation was a good thing in > general, but that for the things scripting > languages are generally used for, it's not that > useful. > > In his words, "If I were going to write a 60,000 > line chess program or something, I wouldn't do it > in Perl or any other script; I'd use Java or C++ > or something. And if I were doing something like > a filter, like 'munging' a text file, I wouldn't > really need OO." Wait a minute! A 60,000 line chess program in Java or C++ could turn out to be a 10,000 line program Perl. This sort of comparison is like saying, if I had to power a large ship across the ocean, I would use 60,000 gallons of wood chips rather than 60,000 gallons of diesel fuel. Lines of code per task is a language-specific metric, just as energy per unit of fuel is a fuel-specific measure. Speaking of human performance, large programs are often more difficult to comprehend and maintain when there is 5x to 10x more stuff that you have to look at. For reasonably written/commented code, total size still turns out to be roughly correlated with support costs across many languages. > That's an interesting thought. How would you answer > him? > > I think I see his point; but perhaps one reason he > would not use a scripting language for a large > project is that he simply has never SEEN a scripting > language powerful enough for large projects. Well, the first thing to recall is that the requirements for large projects vary all over the map. In many cases solving an urgent problem is much more important (within certain bounds) than raw performance. Look at www.perl.com for Perl success stories or talk to head-hunters that are looking for serious Perl experts if you want to find out about large projects that were written in Perl, the so-called "duct tape of the web". Likewise, look at links off of www.python.org for info about the use of Python for large projects in corporations and national labs. Their respective newsgroups have bashed this topic mercilessly. Most of their considerations (with a few exceptions such as Perl's monster sized library of modules) apply just as much or even more so to Ruby. > There is also the speed issue; but he cites Java as > a "real" language, and we are certainly not > guaranteed that it will be speedy on every platform. Speed is often a much stronger function of design and modules/algorithms used than choice of language. If you look inside may Perl and Python and Ruby modules, you find C. The other thing to keep in mind is that it is almost always a much more effective use of your time to concentrate on converting those who are already predisposed to what you are selling when you have a very large market. As long as there are some 10 X to 100 X more Perl and Python users in the world than Ruby users, I'd leave it to them the substantially more difficult task of converting others to such types of tools, and concentrate on attracting the Perl and Python users who have run into the limitations of their tools, who already constitute a giant and ready-made market for Ruby. (Of course there are exceptions to this general policy, such as when you really want to save a friend's soul. :-) Conrad