From: Andrew Hunt Date: 2000-03-24T14:29:47-05:00 Subject: [ruby-talk:02143] Re: Scripting and OO -- thought question Hal Fulton writes: > >Here's an opinion question for you all. >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." He misses a very important point -- it's those stupid little 10 line scripts that end up as mission critical bits of software, and they are usually never designed, never documented, never put through QA, etc. You never know how a "trivial" little script may grow; even evolving from a 10 line script to a 20 line script OO will help you. It helps to focus your thinking. >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. I think the term "scripting" language is demeaning, Ruby is far more than that. It happens to be interpreted, but so what. Ruby is a convenient OO language. >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. Java is not a real language, on several counts. Popular, yes. But it is not type safe, it is not fully OO, it is awkward as hell to write some of the most basic OO style code, inner classes are an ugly hack, ... I could go on. Speed of execution is a minor issue in the end -- if you find a bottleneck, optimize it in C code. Development and design time matters, but all of these are dwarfed by the amount of time and money spent on maintenance. If OO makes that 10 line script even *slighty* more maintainable, you can realize a huge savings in maintenance costs over the life of the system. I'd also tell him that code is written once, but read hundreds, even thousands of times. Thus I would tend to think readability and understandability should be considered to be much more important (which leaves out C++ :-) That's what *I'd* tell him; your mileage may vary :-) /\ndy -- Andrew Hunt, The Pragmatic Programmers, LLC. Innovative Object-Oriented Software Development web: http://www.pragmaticprogrammer.com email: andy@pragmaticprogrammer.com -- Our New Book: "The Pragmatic Programmer" Published by Addison-Wesley Oct 1999 (see www.pragmaticprogrammer.com/ppbook) --