Interview with the Creator of Ruby
Lisa writes: "Yukihiro "Matz" Matsumoto talks about Ruby's history, the influence of Perl and Python on Ruby, and his new book, Ruby in a Nutshell. In the article he explains: "When I started the language project, I was joking with a friend that the project must be code-named after a gemstone's name (àla Perl). So my friend came up with "ruby". It's a short name for a beautiful and highly valued stone. So I picked up that name, and it eventually became the official name of the language. Later, I found out that pearl is the birthstone for June, and ruby is the birthstone for July. I believe Ruby is an appropriate name for the next language after Perl.""
One might want to check out this link as well.
-Vic
The language biosystem is overpopulated, and mindshare starvation can be fatal to a new tool.
I love Perl, wrote many a fine script in it, and a couple mostly unreadable messes. I started using Python, and am using it for most of my scripts now. I poked around Ruby's web page a while back and tried to find out what all the hoopla was about, but couldn't find anything really revolutionary. Bruce Eckel (of Thinking in C++/Java fame) doesn't seem to think much of Ruby.
Sure, maybe there's some cool new syntactic sugar. Sure, it's sexy to be able to say you're developing in/developing libraries for/developing a brand new computer language. But unless there's some significant additional benefit to this new design, why re-invent the wheel with Yet Another Language?
So, SOMEONE must be able to tell me what's so *great* about Ruby that we should start calling Python obsolete. Either that, or acknowledge that Ruby is just a fun, impractical project that truly is re-inventing the wheel.
include $sig;
1;
From the article:
As long as some people feel happy using Ruby, that's enough of a reason for another language for me.
A-men.
It works for a lot of other things, too. Pick
a language, or political party, or religion, or
operating system, or city of residence, or
economic system, or mathematical notation, etc...
Seriously, folks, adopt this attitude, and the
world will sleep MUCH easier at night.
Libertarianism is rich wolves and poor sheep playing gambler's ruin for dinner.
Compared to Perl and Python, the syntax is cleaner and easier to understand. Scripts can be roughed out in functional terms, and then moved over to objects in no time at all. And, since every component of the core language is an object, OOP is as simple as it gets. The thing that's killing Ruby for me is the lack of documentation. The material that's available requires a lot of (read too much) effort to assimilate. It desperately needs a Camel book...
The trouble with practical jokes is that very often they get elected. -- Will Rogers
I'm not officially OT. See, I still read wants ads. And I look at what's in demand for clues to what I should be learning, trends, etc. Databases are a good example from a couple years ago. I noticed that lots of the 1996 job ads had web->DB stuff in them, and so starting brushing up on databases in my off hours. It turned out to be useful later on. I know that one could take this line of reasoning to mean that everyone should start learning VB and IIS stuff, but it isn't an absolute. You kinda have to read all the ads and then stand back and squint to see the trendfs in your area. If you're a Unix geek, you'll see what ost people want, which might lead to learning something new.
My (long winded) point is: Ruby won't be on my radar until people can reasonably be expected to pay me for using it. I know I just got modded down in the minds of a lot of poeple by saying that, but it's how I think. When I see Ruby listed in want ads, then I start noticing it (especially if its mention grows over time). I figure that I need to kill two birds with one stone: know enough to get my job done by knowing a diverse enough range of stuff so that I can still get paid. If I spent all my time learning every other thing that came out, I'd never get any work done. And I'd only know a little bit about everything. I need to know a certain subset of things really well, and just the right amount about a lot of other stuff in order to stay competitive. It's setting that threshold of other stuff where the want ads come in handy. If everyone wants wireless all of the sudden, something's up. So I devote a little time to learning it.
I guess as I get older, I'm starting to value my unplugged time. I can't burn 36 straight hours engrossed in new (and mostly arcane) stuff like I did 15, 20, or even 10 years ago. I have to choose my projects and apply my time wisely. So whern I start seeing Ruby in the wants ads, I'll take a look. I'll be behind the curve, but that's fine.
-B
Ash and Hickory, straight-grained and true, make excellent bludgeons, dandy for the cudgeling of vegetarians.
I've looked at python and ruby syntax and they are not that different actually.
IMHO ruby is cleaner, well refactored, and consistent than python. You can almost guess how a class will work and it just work.
And cleanner syntax matters! That is why people switch from perl to python and many avoid lisp.
> Sure, maybe there's some cool new syntactic sugar.
[sigh.] All non-1stGLs are, boiled down, syntactic and semantic sugar. *That's the whole point.* You try and map the necessary, needs-of-the-machine language up to something closer to How People Think (tm).
> Sure, it's sexy to be able to say you're
> developing in/developing libraries for/developing
> a brand new computer language.
Yeah, I like to read the same book over and over, too. It's not like I can learn any new ideas from anything other than _Atlas_Shrugged_.
> But unless there's some significant additional
> benefit to this new design, why re-invent the
> wheel with Yet Another Language?
If nothing more, than to grind one's teeth on the *art* of language design. Am I reading you wrong, or are you actually convinced that Python and Perl are the highest glory of formal systems?
> So, SOMEONE must be able to tell me what's so
> *great* about Ruby that we should start calling
> Python obsolete. Either that, or acknowledge that
> Ruby is just a fun, impractical project that truly
> is re-inventing the wheel.
You should become a project manager, as you have the proper terror for new ideas. I'll be here at work over the weekend, grinding out shit in Visual C++ that could have been done in no fucking time with Common Lisp. But hey, those LISPs are just fun and impractical.
"And the people bowed and prayed to the neon god they made"
--_The_Sounds_of_Silence_
I did. In 1995 I had a conversation with Bjarne Stroustrup (inventor of C++) and asked him the obvious layup "Which language should programmers seek out and learn?"
.I respect him as a writer, but I couldn't disagree with him more)
Instead of automatically plugging C++ he suggested something like this:
1. Learn (or read) at least one every year or two so you don't get pigeonholed into the limitations of the language you use every day. Different languages promote different approaches - and different approaches/designs are the toolchest of this industry.
2. At least try out one functional language (Lisp/Scheme), one OOP language(C++/Java), one procedural language. None is better than the other, they have different takes on the world and shine at solving different types of problems.
3. Sticking with one language (at the total exclusion of others)limits your output and stunts your learning curve. Looking at more than one also reminds you what languages are for -- expressing more succinctly and clearly the instructions you want the computer to heed.
This being said, I look at lots of languages and I've learned a lot from using Ruby (and I use it a lot now). The best ideas from Perl, Smalltalk, Python and C/C++ are all there. The downsides are not (Perl - clumsy OO, Smalltalk - high-priced/low acceptance, Python whitespace-significance/non-OO primitives, C/C++ - compilation, etc.). The user community is probably the most helpful and thoughtful I've been a part of as well.
As far as Ruby's success at translating your thoughts to working programs? I read posts where people claimed they wrote less code, got more functionality, and fewer bugs right away. At the same time, they claimed they generally produced cleaner solutions at a faster rate than they ever had before with Perl or Python. Skeptical at first, I tried it out. . . I was shocked to find it was true for me within 2 days - I was sold.(note - I really am baffled by Bruce Eckel's comments on Ruby. .
Final note: If you are interested in becoming a better programmer, you should get the book "The Pragmatic Programmer" and read it(It was previously and glowingly reviewed by Slashdot - and no, I'm not the author). Its full of great advice on how to approach new languages and the general art of programming. The authors also wrote the book "Programming Ruby" (The "pickaxe" book) and they are big fans of Ruby as well.
Years ago you rarely saw jobs where Linux was asked for. If one were to take your stance no language would advance. Fact is that toys software is where the next popular thing comes from.
My advice? Bookmark a Ruby news site and read every couple of days. Just soak in it. You won't waste too much valuable time and it'll expand your mind. Maybe you'll be so interested you'll feel the urge to learn it in your spare time.
Fact is that as a programmer you can pick up Ruby in a month, and that means you'll adapt quickly enough to cope with the influx of Ruby, or any programming language.
There are many facts but they all miss the point. Will learning Ruby be worth my time commercially? Only a fool would answer that with any solidity. Spread your mind around information and just soak it in. Not just Ruby but Linux and Electronics and Interface. Choose wisely and spend a few minutes each day expanding your mind. Follow your heart and one day you'll get that pony, Jeff. You'll climb those stairs and drive that Porsche. And remember, you don't need the drugs when you're high on crack.
Yes, perl is a great language for many thing... even slashdot uses it. But in all seriousness, how many languages is enough? What I've noticed is that there are too many languages, and people only use a handful because of a few things: One, the popularity; Two, the ability a language has to market yourself in the job market (C/C++, Java, Perl, Python, SQL, and in some cases, assembler for embedded work are the most popular.); Three, for the above mentioned people are willing to put up with it caevets. These programming languages fill the vast void of what everyone ever wanted or needed -- they are general enough to be swiss army knives, they are targeted enough to have a desire to learn them, and they are expandable enough to allow for everyone to add libraries to it. The more popular the language, the more libs there are -- btw, smalltalk's a good language; see anyone program in that? Not many. Same goes for lisp, COBOL, Ada (which is total crap), etc. I'm afraid Ruby will be doomed on that path due to the fact that there really is no need to have it.
Karma whorin' since 1999
One thing I've found, is that even if I don't stick with a language I try, I program the others slightly different, and hopefully better after tried it and gotten my thinking shaken around a little... :)
I think it is good for you.