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.""
that's treason - "off with his head!" ;)
free (as in mp3s) electronic music
Princess Masako will soon give birth to the Japanese prince soon.
On Monday, a real inventor will debut his newest creation. It's been said that it will be quite the paradigm-shift.
Ruby's a rehash of OO Lisp and Perl. Nice, but hardly news.
One might want to check out this link as well.
-Vic
If you haven't looked at Ruby yet it's @ www.ruby-lang.org it's a beautifully done object oriented scripting language which IMHO is exactly what the computer industry needs. Other scripting languages have really hit a wall in development because of the objectless syntax, but ruby, is a piece of work.
To the development site or somewhere else I can get more info and maybe even an interperter to finally get off the fence and try playing with this language?
I checked the linked articles but couldn't find anything.
--- Juggle juggle@hitesman.com
there the ruby language home page and you can download the latest version.
free (as in mp3s) electronic music
...are they? Honestly, I swear over the last 6-8 months there have been at -least- 1 article/month on *Ruby*. So what's the big deal? Another scripting language; how many of those do we got now? C'mon!
Karma whorin' since 1999
We need another language like we need another bloody three letter acronym. The number of available languages indicates people are always willing to think the grass is greener somewhere else.
That seems to suggest that Perl is going to be gone soon, and that I should stop using it. Which I won't.
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;
Troll, but true.
Slashdot's been busy pushing O'Reilly books over on the Developer page for about a week. Lisa's got 2 submissions already.
Are there any plans to have Ruby use Parrot, the future shared backend for Perl and Python?
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
for a new programming language name. Why not? Then after that let's make Sapphire and perhaps Obsidian....blah blah.
"sweet dreams are made of this..."
I love Ruby, especially for the arbitrary-sized integers by default (this might seem like a minor feature, but I deal with exact numbers over a few billion so often that I hate to fumble with extensions and libraries for it), but one thing that confuses me is the block structure. Why "end"?
... end" or "{||...}" not more general?
... end" and "for {|| ... }", but not between "def func(n) ... end" and "def func {|n| ... }" ?
Why are static conditional and loop blocks, and function and class definitions, so different from the brace type of general blocks, and so different-looking from Perl? And why is the option of "do ||
For example (and please correct me if my assumption is wrong), why can you choose between "for do ||
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.
I'm only now on chapter two of learning python. gonna have to wait till i can do more than just
print "Hello, World"
before i try to learn something else.
-
I'm going to call it ASS, which will stand for Active Scripting Somethingrather. People will use it because theirs won't stink, but everyone else's will. Of course, they will know that everyone else's stinks because of the power of Open Source - everyone will want to packet-sniff everyone else's ASS to see how theirs is configured, which one is pretty, and which one stinks.
I long for the day when I will have an o'reilly interview where I get to sit and talk about ASS.
"On the Internet, nobody knows you're a dog!" - a dog
There is a Mind-to-Ruby liaison page for coodinating the implementation of an Open Source AI Theory of Mind in Ruby.
A previous instance of porting the AI to Visual Basic was Mind.VB of 3.Apr.2000.
A more recent port from JavaScript into Java is at Mind.JAVA of June 2001.
The Ruby programming language leads to a technology transfer of American AI to advanced Japanese robots: the Technological Singularity.
Why would we want to use ruby? Python solved the problems in Perl over ten years ago. Ruby seems to try to reverse the clock and add a Perl-esque syntax. ****shrudder****
Anyone use scheme? Scheme is very nice, IMHO. Any thoughts? Why not make scripting langauges more like scheme?
It's hard to get syntax that is "cleaner" than Lisp syntax: Lisp syntax is very easy to parse, very easy to write, and completely unambiguous.
but REBOL deserves every bit as much attention on Slashdot as Ruby, Python, Perl, etc.
It's a very elegant and tight language, (which I'm still learning), with oodles of potential...
*get's off podium and lowers head*
You may now mod this blatant plug down...it's tough to be righteous...
> 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 think he should stick with one of the {} or do...end styles; eliminate the @ from @member (maybe .member?); generally don't be afraid to make it a MORE beautiful language.
A few months ago, I was a chemist sitting in my lab pondering crystalization of aluminum oxide, with no more programming experience other than the required pascal & fortran from school. A few websearches later, and thanks to ruby, I finally hit that moment of enlightenment of understanding OO. Any language that helps me grow is good. I'm still in a lab, but this one doesn't have fume hoods ;).
Or Maybe they're just the jobs that nobody wants, so they only get filled through the newspaper instead of by word of mouth like most jobs. If a job were availalbe programming using ruby, python, etc, so many programmers would want to try it, it would be filled before the ad got to print.
The post you are refering to is not a flame. The poster was asking a valid question. Just because you do not agree with the questions does not make it a flame.
It seams a little closed minded to call a post you don't agree with a flame...
Sure, Perl and Python have their strong points. Ruby seems to have done a good job of combining the strong points of both. A lot of folks want a language that is easier to develop object oriented code in than Perl (which, as someone who has done OO Perl, I have to say it's downright ugly), and many people don't like Python's style (forced indentation - need I say more?).
It's a matter of which language fits you, the programmer, best instead of the other way around. A lot of folks find that programming in Ruby is just more natural to them than programming in either Perl or Python.
The message here is: give it a try. If it works for you and you decide that you really like it, then you've gained. If you try it out for a couple of days and decide that you don't like it, then you don't have to continue. Try it, you might like it.
It's a valid point you make, I suppose.
But what if you were to learn it because it's fun?
"Fun?" Yeah, fun.
Another point: By the time something hits the help wanted ads in large numbers it's already gotten a some percentage way through it's active life. Look at Java - a lot of people started learning it because it looked like an important technology to them at the time, there weren't many Java jobs at first. Now everybody and his brother has learned Java, so you're competing with everybody and their brother.
BTW: I did see a Ruby ad at:
http://www.postget.com/get/ad.php?id=591
So maybe it's just starting and has a lot of life ahead of it - one can only hope.
If someone INSISTS on using a scripting language to build thousands of line of code that I then have to try and maintain and enhance as a product, I'd welcome any alternative scripting language that doesn't encourage obfuscated code as much as Perl does.
I don't know if Ruby fits that bill, but it would be a reason to switch if it does.
Of course, I know that code in any language can be well documented and written so that's easy to understand. It just seems like code written in Perl is much more likely to be difficult to read than in other languages more appropriate for applications.
I'm part of a group that has had Perl code (using the OO facilities) handed off to it to maintain and fix. It contains many Packages and probaby several thousand lines of code. Not sure. I've successfully kept my name off the responsibility list for that code. It's been pure hell for the engineers that have been asked to fix it--and all it's supposed to be is a simple parser and data access interface.
I use Perl myself for my own scripting but it can be cruel and unusual punishment to be given someone else's Perl to maintain.
It's enough to make you take your clothes off and run around the office screaming "I CAN'T CODE NAKED!!! AHAHAHAHAAHAH!!!" until they put you on a different project.
Jesus saves....And takes 1/2 damage.
I've heard it described many times as: Ruby allows me to go from thought to code with the least friction of any language I've tried. I find it to be true as well.
Sure some people will still prefer Perl and other Python, but a lot of people seem to be finding that Ruby just clicks for them.
Maybe it's Matz's design philosophy "The principal of least surprise"
...which is how most moderators seem to use it. which is sad. tyranny of the majority is boring in spirited discussions...
A: None. The Universe spins the bulb, and the Zen master merely stays out of the way.
Comment removed based on user account deletion
It's a joy to program in...
;-)
* There's iterators & blocks
*A unified class/type system (meaning you can extend built-in types like String,Array,Hash,Kernel, etc)
* fully OO - 42.times { |i| puts i }
but it doesn't get in the way when you don't want OO, like it seems to with Java.
* Design patterns - Observable,Delagator,Singleton,...
* dRuby - Ruby's very easy to use distributed object system.
For now it's great fun, hopefully someday it'll pay the bills too.
Whoever moderated this off-topic must not have ever written any Lisp code...
10 PRINT CHR$(205.5+RND(1)); : GOTO 10
I don't think he was daying that young people don't value thir time; I think he was saying that, since he no longer has the energy of youth, he has less time to do all the things he might want to do, so he needs to be careful about how he spends his time in order to get to do all the stuff he wants.
Speaking as someone who, three years ago, couldn't even begin to dream how much a toddler could eat up your personal time, I understand (in some sense) exactly what he's saying :-)
"Great men are not always wise: neither do the aged understand judgement." Job 32:9
Easy to parse? Are you insane? The primary reason for LISPs lack of success in the real world, IMHO, and the ultimate success of least common denominator languages like Java lies in their parseability to somebody with only general knowledge of the specifics of the applications (i.e. lead time on bringing new developers into a project). This is the one of the most significant strengths of Java over C++ (well, not the only one, and there are plenty of weaknesses, but this strength wins out with much "enterprise" or "business" server-side software). I also find Python generally quite pleasant to parse and read. LISP, on the other hand, is easily parseable only for those with strange brain defects that make them love spending their days counting parens with bleary eyes.
I'll stick to Pike - one of the best languages I've ever used..
I looked at Ruby. It is certainly a heartfelt attempt. However, it seems to me that yet another poor communicator has written yet another language.
Not only that, but the Ruby creator has created his own syntax. A new language has one big advantage for the creator: The creator finds the syntax very familiar. Everyone else must struggle.
Links:
The Ruby Home Page
Ruby Language Reference Manual
The Ruby Language FAQ
Programming in the Ruby language by Joshua D. Drake, who is a good communicator.
A Slashdot story and comments: Programming in the Ruby Language
Positive comments about Ruby:
Introducing the latest open source gem from Japan
Thirty-seven Reasons I Love Ruby by Hal Fulton.
Negative comments about Ruby:
As mentioned above, Bruce Eckel does not like Ruby:
"IMO, the Ruby syntax is
Eckel again: "... Python has 10 years behind it and a big, very smart, very active community, a nice number of good books and more on the way, a large set of libraries and a whole process and team in place for developing the language. Recent improvements to the language have outstripped whatever Ruby could offer, I think, and there's currently lots of very good work going on to further improve Python."
For those who would like to quickly see for themselves, there is a section of the The Ruby Language FAQ called Show me some Ruby code
Quotes from Ruby's creator, a Japanese man with an incomplete command of English:
What is the history of Ruby?
"Well, Ruby was born on February 24 1993. I was talking with my colleague about the possibility of an object-oriented scripting language. I knew Perl (Perl4, not Perl5), but I didn't like it really, because it had smell of toy language (it still has). The object-oriented scripting language seemed very promising.
"I knew Python then. But I didn't like it, because I didn't think it was a true object-oriented language -- OO features appeared to be add-on to the language. As a language manic and OO fan for 15 years, I really wanted a genuine object-oriented, easy-to-use scripting language. I looked for, but couldn't find one.
"So, I decided to make it. It took several months to make the interpreter run. I put it the features I love to have in my language, such as iterators, exception handling, garbage collection.
"Then, I reorganized the features of Perl into a class library, and implemented them. I posted Ruby 0.95 to the Japanese domestic newsgroups in Dec. 1995.
"Since then, highly active mailing lists have been established and web pages formed."
--
Links to respected news sources show how U.S. government policy contributed to terrorism: What should be the Response to Violence?
Bush's education improvements were
Actually it was lung cancer. He was 58, which is prime-time for this disease.
*Reaches for cigarettes*
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.
Gem names? Explains COALbol
(Hey, they also misspailled "perl")
Table-ized A.I.
ask randomly 10 people about which one is more readable portuguese or japanese and, unless they are japanese, they will probably tell you its portuguese.
you should look at whatever language and *read* it like a letter. If you can then its clear
Rappsrv is an interesting framework for web applications written entirely in Ruby.
You can check out the site, the code and the thing at work.
Pretty neat! There are also some nice Ruby resources at the same site.
"Client is a small advertising agency in Manhattan.
"Job consists of production work on heavily dHTML website. In order to minimize production pain, html pages are generated using Ruby (a wonderful language)."
Yay, Ruby!
Transcript show: self sigs atRandom.
Object orientation is the semantics. Semantics
is tied to syntax, but not to any particular syntax; there is no ``object oriented syntax''. Syntax allows you to group some expressions together to express some semantic relationship.
Languages hit the wall when they have a hard-wired syntax, with hard-wired semantics.
Ruby is no exception. It's a whole lot of syntactic sugar for a bunch of non-programmable semantics. It was obsolete before it was conceived. Moreover, the author has a very limited view of what object oriented programming is, and suffers from a fundamental confusion that OO is somehow syntactically determined. This if from one of his slides:
//OOP
fi = File::new("sample.dat", "r")
fi.binmode = true
line = fi.readline()
fi.close
// Non-OOP
fi = fopen("sample.dat", "r")
fbinmode(fi, true)
line = freadline(fi)
fclose(fi)
So, in other words, something is object oriented if it uses the notation object.method(arg), but not object oriented if it uses the notation method(object, arg). Is this guy for real?
It takes a certain level of experience to see through the facade of curly braces, vertical bars, squiggles, splats, hashes, cokebottles and whatnot. Such devices, despite looking impressively cryptic and terse, do not imply any special power; they are designed to dazzle and seduce the undergraduate mind.
The real power arises when the same expression, whether it uses lots of syntactic sugar or not, can mean absolutely anything that the programmer wants, not only what the language designer wants it to mean.
It's peddle.
When you submit something, do you look at what you've written?
http://www.jade.co.nz/
Ruby looks a lot better in this regard, and that alone might be a reason to use it, even if otherwise it is roughly equivalent to Python.
Still, overall, it is disappointing to me that there is no Perl/Python/Ruby-like scripting language implemented in C++: using C++, the native code interface could be much simpler to use. Yes, there are various C++ wrappers for Python and probably the other languages, but they generally add a complex C++ layer around an already complex C interface.
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.
Though you won't find it in your job ads, having a lot of languages (and a lot of different kinds of languages at that) on your resume is a definite bonus. Especially if there's a variety of languages (procedural, OO, functional, logic etc), it shows that you can easily adapt to a new language should that become an issue.
sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
If you disagree with an opinion in a reasonably politely worded message, respond with a good technical argument. Don't throw out random accusations or moderate down messages you merely disagree with.
Also, don't point people at a few hundred pages of documentation--it's counterproductive. If proponents of a tool are incapable of producing a concise statement of why their tool is better than other tools, people are entitled to assume that it isn't worth looking into it further. The burden of proof is on the shoulders of people who want mindshare, not on the shoulders of people who want to use existing tools.
(As for Ruby, it seems like a reasonable language with a nicer C interface than Python. Enough to switch? I don't know.)
Ruby was invented in 1988 by Alan Cooper, he sold it to Bill Gates. Bill mixed Ruby with Qbasic and the result was Visual Basic.
Sources:
http://www.webword.com/interviews/cooper.html
http://www.cooper.com/
Actually, I was talking about parsing, not readability. But well-written Lisp is very readable, just like well-written C or well-written Java.
LISP, on the other hand, is easily parseable only for those with strange brain defects that make them love spending their days counting parens with bleary eyes.
Lisp, like Python, relies on indentation for readability. People never count parentheses, they use editors that handle parentheses for them. Python programmers don't go blind counting spaces either, they use editors that handle indentation for them.
The primary reason for LISPs lack of success in the real world, IMHO,
Lisp is probably more widely used today than Python or Ruby. It may be unfamiliar, but it is really easy to learn. CommonLisp failed mostly for reasons unrelated to syntax.
the ultimate success of least common denominator languages like Java lies in their parseability to somebody with only general knowledge of the specifics of the applications
Come on: "&&", "?:", and lots of other operators? Lots of braces? Oddball precedence rules? Variable declaration syntax with type modifiers on the variables? Prefix conversion operators with postfix method selectors? Java syntax is pretty tricky and unintuitive; people only consider it simple if they know C.
I also object to your characterization of Java as a "lowest common denominator" language. Java is a very powerful language, hidden under a deceptively familiar syntax.
Being the next language after Perl, is really NOT something you want to be bragging about.
YASL. (Yet Another Scripting Language).
:)
The only reason I see use for it is for techies comparing virtua-genitals. "I know *this* many languages."
Honestly, we don't need another scripting language... The only thing it's going to do is force programmers who also have lives to leave their lives behind so they can keep learning the 'latest and greatest' thing.
I'm not saying Ruby is useless, probably not, but I'm still waiting for the "Java Revolution" that never happened. I'm not holding my breath for Ruby to become a 'replacement' for Perl.
Languages that say, "Why not?" suceed. Languages that say, "We're better than language!" are overhyped, find a few small niches and then die out.
I think the only great thing that'll come out of YASL is that it's another obscure language, and those who know it will get paid extremely well.
I am saying that, for me as a native English speaker, the cost of being involved with Ruby is high:
Ruby is a language primarily written and maintained by one person. The author of the language says this in one of the links that I provided. The documentation in English is poor, and, because there is only one primary person working on the language, the documentation is likely to remain poor. That makes a big difference for anyone trying to learn a new computer language, because it vastly increases the cost (in time) of learning.
Also, if there is poor documentation in English, it has been my experience that fewer people adopt a new computer language. English is the world's most common second language. EVERY Japanese student studies English, my Japanese friends say. A friend in Thailand told me that there was a scholarship program to teach computer skills to Thais in Japan. The courses were taught in English.
Try a test: Call the main number of any large German bank. When the operator says hello in German, just start speaking English. You will find that the operator immediately switches to perfect English. If German banks think that communicating in English is important, maybe that is because communicating in English is important in today's world.
If fewer people adopt a computer language, there will be less development. If there is less development, then it may become one of the hundreds of languages that have eventually died. This would increase the cost of adopting Ruby still further.
Poor communication is a BIG issue with open source software, in my opinion (and closed source, too). In my opinion, poor communication is the one big barrier to getting rid of the Microsoft Windows operating system completely. I don't like Windows because I don't like being abused by Microsoft.
My city, Portland, Oregon, USA, has what is said to be the biggest bookstore in the world, Powell's. I went to Powell's technical bookstore and looked at about 20 books on Samba. ALL of them were very incomplete. ALL of them were poorly written.
--
Links to respected news sources show how U.S. government policy contributed to terrorism: What should be the Response to Violence?
Bush's education improvements were
I think, it's better than to lose the ability of binding to pure C (or assembly, or whatever) code.
My exception safety is -fno-exceptions.
I'll forgo my moderator privs to mention that the Midgard development team have selected Ruby as the Scripting Core of the next generation of Midgard, which is (in part) a Content Management and Web Database deployment system based on PHP.
Paul Gillingwater
MBA, CISSP, CISM
I couldn't disagree more. Mindshare may be needed for products but too much mindshare can kill ideas faster than anything. Memes that "everybody knows" are essentially dead. The language biosphere only seems overpopulated if you're used to living in the BASIC* & C* wasteland we had a few years back.
-- MarkusQ
I don't know if you'll check back for responses to this post, but if you do I wonder if you could clarify your comment about american being a poorer version of english. I'm not aware that there is anything that can be said in the british dialect that cannot be said just as clearly in american, but I'd be interested to hear your views on this (or was it just flamebait?)
>Lisp is probably more widely used today than Python or
I highly doubt this. A perusal of the traffic of the python verson lisp newsgroups tells tales as does the paucity of available libraries for lisp when compared to those of python. I would hazard a guess that Lisp is used quite a bit less than Python.
C//
...why can you choose between "each do |i| ... end" and "each{|i| ... }" ...
I'm writing a new scripting language and it's defined such that if you give it a program with no statements (i.e. an empty file) it will print "Hello, World\n" to stdout. Can anyone else write a hello world program in fewer than zero bytes?
Anyway, there's a great page out there by a guy who wrote a series of articles on the topic of "Worse is Better" and why LISP failed to maintain critical mindshare in the professional world and lost so much ground to C and C++, though functional languages seem to retain a serious support base in academe.
I sincerely doubt that LISP is that widely used - certainly it has a miniscule hobbyist following left, compared to Python. Even Ruby, while new-ish in the US probably has more users in Japan alone. LISP still has a lot of users in the business world, in software development projects at companies working on the rare project that is well suited to LISPs strengths (whatever exactly they are - beats me).
Java syntax is least common denominator because it basically steals C++ and removes everything that fucked up the morons working on larger projects (pointers, multiple inheritence, certain weird keywords, operator overloading). They left some stuff in it that may be weird to a LISP person, but to most people, thinking in one of the ALGOL-derived languages is still much more natural (procedural style) than thinking in functional style. Everyone seems to forget the real goal of a programming language is to translate between my wetware and bits and bytes and provide me with some insulation while still providing enough power and performance to build useable applications that can perform significant tasks.
You said it perfectly. I used to spend all night -- for weeks on end -- on a VIC-20 doing mostly useless stuff in BASIC. I didn't have a job, family (of my own), eating, anything really to get in the way of my interest. Back then I could attack things with a passion that had no regard for time or other personal responsibilities.
When I was in college, I could spend all night fooling with GIS stuff or pascal or whatever, just because I had to get that one project done. And more often than not, I'd "waste" plenty of time doing things not strictly necessary. I had more responsibility then than I did when I was in high school, but it was subconsciously counted as school, so I could metally get away with it.
Now I'm at the point where I come home and I just want to spend time with my family, in the garage working with wood or something, making a good dinner, etc. If I'm on the computer at night, it's with a very carefully chosen project. I don't have as much time to burn now as I did then. I have to choose my "battles". There's still plenty of room for fun, and that's what I do on my off hours. The trick is to make the fun stuff also count as work stuff.
Like another poster said, you have to have a well-rounded toolkit to get along. And I do. I've got a very well rounded set of skills, and I am always looking for more to learn. But consider the time budget imposed by age and responsibility with the ROI I'd get from learning another language roughly equivalent to a couple I already know. I can get by with perl and python and PHP in order to do what I do -- even for the fun stuff. It's when I see more and more job ads in the "computer" section ask for Ruby that I'll start to make that ROI worth it. In the meantime, there's plenty more stuff I have to know better than I do.
I wasn't saying that youth can or do waste their time. They just have more of it. Which they should enjoy to the fullest doing whatever it is that piques their curiosity, even if it doesn't "offically" count as something important. Us old guys don't get that luxury anymore... :-)
-B
Ash and Hickory, straight-grained and true, make excellent bludgeons, dandy for the cudgeling of vegetarians.
Well, that may be true if you have grand schemes for the scripting language. But I'd happily give up C compatibility and the C ABI standard for easier, more reliable bindings to native code. Existence of something with a really nice C++ interface and implementation wouldn't obsolete existing scripting languages.
... I had mod points. :) Because I'd mod this one Waaaay up.
Those advice from Stroustrup are worth gold. And as if a coincidence, those very advices echo through that very book you are mentioning. I read it. It is very good.
Actually, those, and similar advices are the ones I try to live by too... my greatest problem right now, however is that it is too much to choose from. After reading this, and revisiting Hunt and Thomassite I think I'll have a go with Ruby, finally.
Thanks!
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.
When I first saw the title I immediately thought it was another thing by the same name: Ruby Annotation. (31 May 2001, Marcin Sawicki, Michel Suignard, Masayasu Ishikawa, Martin Dürst, Tex Texin)
The sort of Ruby I had in mind was a type of markup used to add pronunciation alongside text.
This is not something Python got wrong. It's superior for the simple fact that any programmer worth their salary will indent anyway and leveraging that makes more sense. Why force a programmer to type in a brain dead curly brace or 'Next' on a 'for' loop (C and VB respectively), when your indenting has already specified what you intend?
Truly, you do not miss typing the explicit block delimiters after trying it. As far as anyone who argues that indenting code is bad goes... well get with it. Really.
Please mod this post only if you think others should/n't read this. I have enough ego^H^H^Hkarma. Thanks!
'Poorer' not in a sense it is worse but as the opposte of 'richer'. Americans express themselves as clearly as british do, yet british use many more words that have just a slight difference in semantic meaning, i.e. they can feel naggert or minging, where an American would just feel shitty. I would not say that british use of language is better or worse than american use, but it is definitely richer. On the other hand for non-english speakers american english is a lot clearer, just because it uses less words. If you go to a conference here in Europe, where all the dutch, french and germans and the like communicate in english, it is usually only the british that are not understood, although they undoubtedly speak better english than the rest of us.
If you see american english as the version that was understood best by all the European immigrants into the United States, global english will be further simplified to ease the difficulties experienced by e.g. Japanese such as Matz.
It is not a bad thing, I think. I speak dialect with my parents, dutch and english with colleagues and english on the net. I think Americans heave to get used that there will be a difference between the english they speak at home and the english in which is being communicated on the web. British people probably are more used to this already as dialects are in general stronger than what can be found in the US.
But I'd happily give up C compatibility and the C ABI standard for easier, more reliable bindings to native code.
What the "more reliable" part applies to? Certainly not to dependence on compiler version or on compile-time flags (e.g. --fno-exceptions). Face it, "easier" in one aspect often means "trickier" in another.
On the other hand, it'd be useful to have C++ bindings to the engine ABI, probably in the form of light inlined functions/classes and/or templates. This way, no linkage problems would blow you out of the blue.
My exception safety is -fno-exceptions.