[#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:7150] Re: Ruby in the US

From: "Ben Tilly" <ben_tilly@...>
Date: 2000-12-13 14:50:42 UTC
List: ruby-talk #7150
Dave Thomas <Dave@thomases.com> wrote:
>
>Peter Wood <peter.wood@worldonline.dk> writes:
>
> > In your essay, you write:
>
> > Ben Tilly writes:
>
> >
> > > Programming languages often have some sort of type system. Some
> > > languages (eg JavaScript) attempt to have both untyped operators and
> > > untyped variables. This is a truly horrible idea.  Languages which
> > > want a minimal level of sanity _need to type one or the other_. Perl
> > > types its operators, Ruby its variables. (Ruby, like Smalltalk, uses
> > > dynamic runtime typing. If you try to access a method that isn't
> > > there, you blow up. Everything is a method call.)" [my emphasis]
> >
> > What about Lisp?  Values are what is typed in Lisp, not variables or
> > operators.  You *can* declare for efficiency, but you don't have to.
> > Lisp has a type hierarchy where every object has more than one type.
> > You also write you have a math background.  So I'm surprised you don't
> > mention Lisp.
>
>Unfortunately for Ben, Ruby also falls into the "truly horrible idea"
>category. Ruby variables are _not_ typed, but take on the type of
>whatever they happen to reference at the time. Similarly, the majority
>of operators have no semantic meaning to Ruby, as they are simply
>method calls. This is the same as the Smalltalk and (in my limited
>understanding) the Javascript model.

Hmmm...

Allow me to clarify my thoughts.

Ruby, like Smalltalk, doesn't actually type its variables.
But both encourage you to think of those objects as having
a type.  Then it uses that type pervasively.

JavaScript is inconsistent and hence gives you the worst of
all worlds.

For instance x+y in JavaScript can be either addition or
concatenation as appropriate.  The second argument is
automatically coerced by the first.  (I don't have Ruby
installed locally, so I cannot test whether Ruby does the
same autocoercion.  I think I would prefer if it didn't.)

However sorting in JavaScript is always alphabetical order,
like it or not.  If you have numbers this means you get the
wrong order *and* it is slow.  The workaround I have used
is to prepend the number to some fixed length with 0's and
then strip off the extra 0's after the data is sorted.  It
is ugly, but it works.

There is a single set of comparison operators, <=>.  It
cannot be overridden and will coerce either side to strings
and/or numbers before you compare.  The coercion rule for
<=> is *different* than the rule for +.

There is a toString method.  This can be overridden.  But if
you really want a number, well you can call valueOf() and
just hope and pray that it really was a number.  (As
opposed to Boolean.)  Whether the method is told what kind of
value is desired will depend on the browser.  A warning for
overriding.  Sometimes valueOf() is called before toString(),
so if you override both you may get very strange behaviour.

Perhaps the way I should say it is that JavaScript has
untyped operators and tries to pretend its values are also
untyped.  In other words strings and numbers really are
different.  Sometimes.  But you are not encouraged to stop
and think about the difference.  Which means that, try as
you might, you constantly get bitten.

By constrast Ruby is consistent, and encourages you to step
back and think about what you have whenever that makes sense.

>This lack of constraint is one of the defining features of the
>language.

The complete lack of sensible design decisions is one of the
defining features of JavaScript. :-(

Have I clarified what it is that JavaScript does which I
consider so insane?  And by comparison made it clear why I
don't think that Ruby has made the same mistakes?

Cheers,
Ben
_____________________________________________________________________________________
Get more from the Web.  FREE MSN Explorer download : http://explorer.msn.com

In This Thread

Prev Next