From: Austin Ziegler Date: 2005-11-08T07:22:46+09:00 Subject: Re: Investigating Ruby - key limitations ? On 11/7/05, mortench wrote: > I have been looking at the Ruby programming language recently. I like > Ruby and would like to use it myself but I see some several key > limitations that hinders use of Ruby in mainstream projects (and makes > it hard for me to recommend it for my customers): > 1. Slow and very primitve VM - no jit, vm comparable to java 10 years > ago. There is currently no VM in Ruby; it's currently all interpreted. This is a bad comparison to make -- and YARV will be changing that. Also, as others have pointed out, one needs to evaluate Ruby on its own merits. Not how it compares to Java's performance, but whether its performance is good enough for your own needs or if its performance for your needs is *enough* slower to justify the higher cost and development time for developing in almost any other language. > 2. No native thread support - this is increasingly a problem as > threading and multi-core technology becomes the norm (*) This is a limited problem right now as it is generally better to use full processes in a pool with distributed communication. It is something, however, that is being worked on to solve for those few problem domains that truly require it. > 3. No (first-class) unicode support (*) This is actually a complete irrelevancy; Ruby *does* support Unicode in the form of UTF-8. With iconv it can actually do pretty well converting between. What you *can't* do without using certain configuration options (mostly $KCODE='u', IIRC; possibly compiling with oniguruma regex engine instead of the default regex engine) is iterate by character through Unicode strings. You can sling them around, however, just as you please and Ruby doesn't care. Most people who want "first-class" Unicode support don't know what they want because they hear a set of buzzwords and their brain goes fuzzy anyway. I'm not trying to suggest that this is you, but frankly your line-item here is so terse as to be useless. > 4. Poor development enviroments compared to .NET/Java - however this > is slowly getting better - f.x. RDT is quite useful. This is a common -- but almost always nonsensical -- statement. Indeed, Charles Petzold has recently asserted the rich IDEs rot one's programming abilities (I agree, actually). What I find, moreover, is that Ruby projects do not tend to have as many files, methods, or objects as comparable Java projects would and are more naturally divisible into complete subprojects increasing decoupling and maintainability of the appropriate subprojects. I doubt, for example, that the Ruby PDF toolset[1] will ever go over 10,000 lines -- it's at 5,000 or so now -- and I've already implemented a huge chunk of the PDF specification for writing purposes. Its support libraries (there are two) are less than 1,500 lines of code -- and most of that is in color-tools specifying some common RGB colours. -austin [1] PDF::Reader, PDF::Core, and PDF::Writer. Only the third exists right now, but the other two are targeted for mid-2006. -- Austin Ziegler * halostatue@gmail.com * Alternate: austin@halostatue.ca