From: Clemens Hintze Date: 2000-12-02T19:10:01+09:00 Subject: [ruby-talk:6738] Re: perl and ruby >>>>> "Joseph" == Joseph McDonald writes: Joseph> I'm a perl guy checking out ruby. I wanted to benchmark a Joseph> few things that I do a lot of (using hashes, split, Joseph> etc...). So here is a little snippet: So may I welcome here :-) I was also coming from Python/Perl to Ruby. Ironically it was a Pythoneer that has interested me in Ruby ;-) Joseph> A couple of things I noticed which sort of annoyed me: I Joseph> had to predeclare the hash and the scaler. x++ didn't You had not, as Dave already explained ... Joseph> work (which I found out from the FAQ). x = x +1; gave a Joseph> syntax error. interpolation with #{var} doesn't seem as Joseph> user friendly... Dave and David have already answered your questions excellently. Let me only state another thing ... You should NOT see Ruby as similiar to Perl. In reality these both languages are much different from each other. IMHO, there are only three features that makes them looks familiar ... o Special global variables like: $/, $\, $$, ... For many of them there are senseful replacements if you require the module English. But I hope requiring of that module would not be necessary in the future anymore (means these variables become standard). o Some built-in creation syntax like: /.../, .., {}, [], ... Like in Perl you can use /.../ to describe an regexp; you can use '..' to indicate a range; etc. But unlike Perl, these all are true objects in the sense of Smalltalk. Ruby works only with references. Seeing this it would become clear to you, why you have to assign values to the variables. Ruby's 'h = {}' is more like Perl's '$h = {}' and therefore not a declaration but a definition and/or assignment. o Statement modifier like: ... if, ... while But despite from these three familarities, I would not call Ruby similar to Perl. IMO, matz was very tricky with Ruby! He has let it look like Perl to draw attention, but then if you realize the differences you are so fascinated afterwards of its power and flexibility that you do not want to leave it then ;-) But seeing Ruby only from a Perl POV will not let you detect all the power and elegance Ruby owns. The similarities will help you to hack together some small scripts, but you should really try to give Ruby a chance by following Ruby's way of doing. Do not try to program Perl or Python in Ruby. You dismiss too much of its power then! Joseph> I'm not here to bash ruby, I am just starting to explore Joseph> it, it looks like a fun language, I just wanted to point Joseph> out some things that a perl person may find annoying in Joseph> the hopes that perhaps some of these things can be Joseph> changed. Ruby IS NOT Perl. The sooner you realize it, the sooner you will be ready to get used to its real power, elegance and fun! Joseph> thanks, -joe Thank you for giving it a try. Although our community is growing, there cannot be enough people using it. :-) \cle