[#6954] Why isn't Perl highly orthogonal? — Terrence Brannon <brannon@...>

27 messages 2000/12/09

[#7022] Re: Ruby in the US — Kevin Smith <kevinbsmith@...>

> Is it possible for the US to develop corporate

36 messages 2000/12/11
[#7633] Re: Ruby in the US — Dave Thomas <Dave@...> 2000/12/19

tonys@myspleenklug.on.ca (tony summerfelt) writes:

[#7636] Re: Ruby in the US — "Joseph McDonald" <joe@...> 2000/12/19

[#7704] Re: Ruby in the US — Jilani Khaldi <jilanik@...> 2000/12/19

> > first candidates would be mysql and postgressql because source is

[#7705] Code sample for improvement — Stephen White <steve@...> 2000/12/19

During an idle chat with someone on IRC, they presented some fairly

[#7750] Re: Code sample for improvement — "Guy N. Hurst" <gnhurst@...> 2000/12/20

Stephen White wrote:

[#7751] Re: Code sample for improvement — David Alan Black <dblack@...> 2000/12/20

Hello --

[#7755] Re: Code sample for improvement — "Guy N. Hurst" <gnhurst@...> 2000/12/20

David Alan Black wrote:

[#7758] Re: Code sample for improvement — Stephen White <steve@...> 2000/12/20

On Wed, 20 Dec 2000, Guy N. Hurst wrote:

[#7759] Next amusing problem: talking integers (was Re: Code sample for improvement) — David Alan Black <dblack@...> 2000/12/20

On Wed, 20 Dec 2000, Stephen White wrote:

[#7212] New User Survey: we need your opinions — Dave Thomas <Dave@...>

16 messages 2000/12/14

[#7330] A Java Developer's Wish List for Ruby — "Richard A.Schulman" <RichardASchulman@...>

I see Ruby as having a very bright future as a language to

22 messages 2000/12/15

[#7354] Ruby performance question — Eric Crampton <EricCrampton@...>

I'm parsing simple text lines which look like this:

21 messages 2000/12/15
[#7361] Re: Ruby performance question — Dave Thomas <Dave@...> 2000/12/15

Eric Crampton <EricCrampton@worldnet.att.net> writes:

[#7367] Re: Ruby performance question — David Alan Black <dblack@...> 2000/12/16

On Sat, 16 Dec 2000, Dave Thomas wrote:

[#7371] Re: Ruby performance question — "Joseph McDonald" <joe@...> 2000/12/16

[#7366] GUIs for Rubies — "Conrad Schneiker" <schneik@...>

Thought I'd switch the subject line to the subject at hand.

22 messages 2000/12/16

[#7416] Re: Ruby IDE (again) — Kevin Smith <kevins14@...>

>> >> I would contribute to this project, if it

17 messages 2000/12/16
[#7422] Re: Ruby IDE (again) — Holden Glova <dsafari@...> 2000/12/16

-----BEGIN PGP SIGNED MESSAGE-----

[#7582] New to Ruby — takaoueda@...

I have just started learning Ruby with the book of Thomas and Hunt. The

24 messages 2000/12/18

[#7604] Any corrections for Programming Ruby — Dave Thomas <Dave@...>

12 messages 2000/12/18

[#7737] strange border-case Numeric errors — "Brian F. Feldman" <green@...>

I haven't had a good enough chance to familiarize myself with the code in

19 messages 2000/12/20

[#7801] Is Ruby part of any standard GNU Linux distributions? — "Pete McBreen, McBreen.Consulting" <mcbreenp@...>

Anybody know what it would take to get Ruby into the standard GNU Linux

15 messages 2000/12/20

[#7938] Re: defined? problem? — Kevin Smith <sent@...>

matz@zetabits.com (Yukihiro Matsumoto) wrote:

26 messages 2000/12/22
[#7943] Re: defined? problem? — Dave Thomas <Dave@...> 2000/12/22

Kevin Smith <sent@qualitycode.com> writes:

[#7950] Re: defined? problem? — Stephen White <steve@...> 2000/12/22

On Fri, 22 Dec 2000, Dave Thomas wrote:

[#7951] Re: defined? problem? — David Alan Black <dblack@...> 2000/12/22

On Fri, 22 Dec 2000, Stephen White wrote:

[#7954] Re: defined? problem? — Dave Thomas <Dave@...> 2000/12/22

David Alan Black <dblack@candle.superlink.net> writes:

[#7975] Re: defined? problem? — David Alan Black <dblack@...> 2000/12/22

Hello --

[#7971] Hash access method — Ted Meng <ted_meng@...>

Hi,

20 messages 2000/12/22

[#8030] Re: Basic hash question — ts <decoux@...>

>>>>> "B" == Ben Tilly <ben_tilly@hotmail.com> writes:

15 messages 2000/12/24
[#8033] Re: Basic hash question — "David A. Black" <dblack@...> 2000/12/24

On Sun, 24 Dec 2000, ts wrote:

[#8178] Inexplicable core dump — "Nathaniel Talbott" <ntalbott@...>

I have some code that looks like this:

12 messages 2000/12/28

[#8196] My first impression of Ruby. Lack of overloading? (long) — jmichel@... (Jean Michel)

Hello,

23 messages 2000/12/28

[#8198] Re: Ruby cron scheduler for NT available — "Conrad Schneiker" <schneik@...>

John Small wrote:

14 messages 2000/12/28

[#8287] Re: speedup of anagram finder — "SHULTZ,BARRY (HP-Israel,ex1)" <barry_shultz@...>

> -----Original Message-----

12 messages 2000/12/29

[ruby-talk:6735] Re: perl and ruby

From: Dave Thomas <Dave@...>
Date: 2000-12-02 04:49:27 UTC
List: ruby-talk #6735
"Joseph McDonald" <joe@vpop.net> writes:

> A couple of things I noticed which sort of annoyed me:
> I had to predeclare the hash and the scaler.

Sort of. Perl's syntax allows it to take intelligent guesses about wht 
you intend, and then automagically make it happen. When you write

   $a[0] = 1;

it 'knows' that 'a' is an array, and pops one in to existence if it
wasn't there.

That's very convenient, but that convenience comes at a price. The
price is that the syntax and the semantics are inexorably linked:
$a[0] is an array reference.

Ruby took a different tack. It wanted to be extensible from the
start. A variable is simple a reference to an object: the compiler has 
no idea what kind of object it is. So

  a[0]

in Ruby could be an array reference, or a hash reference, or a
parameter to a directory listing class, or... In fact, in the index of 
our book, we list 16 classes that support the [] method.

All of which means that if you write

  a[0] = 1

Ruby hasn't the faintest idea at compile time what you mean, so it
can't pop an array (or anything else) in to existence.


The same underlying issue explains why Ruby doesn't have an
autoincrement. The problem is that a++ means 'increment the value in
a', but in Ruby, 'a++' is interpreted to mean 'send the operator ++ to 
the object referenced by a'. If 'a' references a number object (say
42), we then have a problem. '42' could increment itself, but then
what. If it returned a new object, 43, then that would be fine, except 
'a' would still reference the original 42. If it decided to increment
itself, then all the 42's in the entire system would change. Probably
not a good side effect.

Now, Ruby could cheat, and convert a++ to 'a += 1' at compile
time. However, I personally think that this could be misleading,
tempting people to forget about the underlying object structure.

'a = a +1' is indeed a strange thing. Ruby's interpreting this as
'send the argument +1 to the method 'a'. It's one of those damned if
you do, damned if you don't kind of parsing problems that come about
from not requiring parentheses on method calls.

> I'm not here to bash ruby, I am just starting to explore it, it looks
> like a fun language, I just wanted to point out some things that
> a perl person may find annoying in the hopes that perhaps some
> of these things can be changed.

No, I think it's great that you're here. Please keep exploring.

> Here are the scripts:
> 
> 
> print `date`;
> x = 0;  # must initialize... why?
> h = {};  # again, must initialize... why?
> for i in 0..10
>    arr = "hello world hello word".split(/\s/)
>    for b in arr
>       h[b] = b
>       h[b] = h[1]
>       x += 1  # x++ doesn't work. bummer of the summer.
>       # x = x +1; # syntax error...
>   end
> end
> 
> print "x: #{x}\n"
> print `date`;

Just to put a different slant on things, you could also write the
loops as

  x = 0
  h = {}
  11.times do
   "hello world hello word".split.each |b|
      h[b] = b
      # etc,,,
    end
  end

You can write Perl in Ruby, you can write Smalltalk in Ruby, and you
can write Ruby in Ruby. That's one of the joys of the language.


Regards


Dave

In This Thread