[#54640] bRuby? — Austin Ziegler <austin@...>

Can anyone explain to me what Yuya's package bRuby

16 messages 2002/11/01
[#54646] Re: bRuby? — Matt Gushee <mgushee@...> 2002/11/01

On Fri, Nov 01, 2002 at 11:40:51AM +0900, Austin Ziegler wrote:

[#55128] Re: bRuby? (Yet another Ruby parser) — ptkwt@...1.aracnet.com (Phil Tomson) 2002/11/07

In article <20021107151904lBE13F@ohmsha.co.jp>,

[#54839] rubyconf notes — Pat Eyler <pate@...>

On Saturday Night, I recommended that attendees of Ruby Conf send off

38 messages 2002/11/04
[#54881] Matz Roundtable Summary (was Re: rubyconf notes) — Paul Duncan <pabs@...> 2002/11/05

Below is my pieced together summary of matz's roundtable summary. It's

[#54862] A vision for Parrot — Daniel Pfeiffer <occitan@...>

Hi,

80 messages 2002/11/04

[#54889] PGP on the list (was: Re: Matz Roundtable Summary) — Eric Hodel <drbrain@...7.net>

Paul Duncan (pabs@pablotron.org) wrote:

12 messages 2002/11/05

[#54906] Win32 support issues — "Gavin Sinclair" <gsinclair@...>

<quote source="roundtable">

14 messages 2002/11/05

[#55091] PGP signatures — "Gavin Sinclair" <gsinclair@...>

From: "Paul Duncan" <pabs@pablotron.org>

18 messages 2002/11/07

[#55149] Making Instace Variables Private/Local — William Djaja Tjokroaminata <billtj@...>

Hi Matz,

27 messages 2002/11/07

[#55221] CPAN Style installer — Tom Clarke <tom@...2i.com>

Hi all,

30 messages 2002/11/08
[#55233] Re: CPAN Style installer — ptkwt@...1.aracnet.com (Phil Tomson) 2002/11/08

In article <Pine.LNX.4.44.0211071926160.7998-100000@localhost.localdomain>,

[#55241] Re: CPAN Style installer — Tom Clarke <tom@...2i.com> 2002/11/08

On Fri, 8 Nov 2002, Phil Tomson wrote:

[#55290] Re: CPAN Style installer — " JamesBritt" <james@...> 2002/11/08

>

[#55291] Re: CPAN Style installer — tom <tom@...2i.com> 2002/11/08

On Sat, 9 Nov 2002, JamesBritt wrote:

[#55304] Re: CPAN Style installer — " JamesBritt" <james@...> 2002/11/08

> From: tom [mailto:tom@u2i.com]

[#55258] Beginner Question (Idiomatic way to subset an array — "Booth, Peter" <Peter.Booth@...>

I'm wondering if there is a more idiomatic way to do the following?

20 messages 2002/11/08
[#55261] Re: Beginner Question (Idiomatic way to subset an array — ahoward <ahoward@...> 2002/11/08

On Fri, 8 Nov 2002, Booth, Peter wrote:

[#55268] return MyClass.new vs self.type.send :new — ahoward <ahoward@...> 2002/11/08

[#55361] Lighting Rod — Eric Armstrong <eric.armstrong@...>

I love Ruby's smalltalk features. I really do.

16 messages 2002/11/09

[#55369] Why use 'include' — Eric Schwartz <emschwar@...>

As requested, here's a FAQ question & answer on the usage of modules

13 messages 2002/11/09

[#55372] Random idea: Procedural CGI?? — "Hal E. Fulton" <hal9000@...>

I've been musing about something today,

17 messages 2002/11/09

[#55442] Recording of the Ruby segement on LL2 — Yohanes Santoso <ysantoso@...>

Hi all,

22 messages 2002/11/09

[#55461] www.ruby-doc.org — " JamesBritt" <james@...>

Jim Freeze's presentation at RubyConf 2002 mentioned, among other things, the

18 messages 2002/11/10

[#55563] EuRuKo: European Ruby conference — Armin Roehrl <armin@...>

Hi all,

15 messages 2002/11/11

[#55571] ruby-dev summary 18613-18710 — TAKAHASHI Masayoshi <maki@...>

Hi all,

26 messages 2002/11/11
[#55926] Re: ruby-dev summary 18613-18710 — timsuth@... (Tim Sutherland) 2002/11/15

In article <20021112020739J.maki@rubycolor.org>, TAKAHASHI Masayoshi wrote:

[#55929] Re: ruby-dev summary 18613-18710 — dblack@... 2002/11/15

Hi --

[#55955] Re: ruby-dev summary 18613-18710 — timsuth@... (Tim Sutherland) 2002/11/15

In article <Pine.LNX.4.44.0211142157370.25867-100000@candle.superlink.net>,

[#55750] Another Newbie question regarding instance variables? — montana <montana@...99.bsd.st>

The value of an instance variable is only available to the instance of the class, whereas the value of the class variable is available to all instances of the class? Is this correct?

10 messages 2002/11/13

[#55815] RubyConf 2002 Slides for FreeRIDE Presentation — "Curt Hibbs" <curt@...>

I finally got the slides online from Rich Kilmer's FreeRIDE presentation at

40 messages 2002/11/14
[#55828] Re: RubyConf 2002 Slides for FreeRIDE Presentation — " JamesBritt" <james@...> 2002/11/14

>

[#55829] Re: RubyConf 2002 Slides for FreeRIDE Presentation — "Curt Hibbs" <curt@...> 2002/11/14

JamesBritt wrote:

[#56087] Re: RubyConf 2002 Slides for FreeRIDE Presentation — Robert McGovern <tarasis@...> 2002/11/17

Curt Hibbs wrote:

[#56088] Re: RubyConf 2002 Slides for FreeRIDE Presentation — "Rich Kilmer" <rich@...> 2002/11/17

Extensibility IN RUBY was the key thing for us. We wanted the IDE to be

[#55818] regex help — "Shashank Date" <sdate@...>

Using ruby 1.7.3 (2002-10-12) [i386-mswin32] on Win XP (Home)

14 messages 2002/11/14

[#55842] Ruby equivalent to Python's map()? — wolfoxbr@... (Roberto Amorim)

Hi...

18 messages 2002/11/14

[#56045] Not really a ruby question, but this is a smart group. Win32 file.write timing. — jcb@... (MetalOne)

I am trying to write non-compressed video to a file at 40 fps.

16 messages 2002/11/16

[#56119] ruby-dev summary 18711-18810 — Minero Aoki <aamine@...>

Hi all,

34 messages 2002/11/18

[#56131] identing ruby in vim — Maur兤io <briqueabraque@...>

Hi,

14 messages 2002/11/18

[#56158] install.rb/setup.rb question — ptkwt@...1.aracnet.com (Phil Tomson)

I want to install a script that will be run as an executable which isn't a

26 messages 2002/11/18

[#56250] Need help dynamically creating classes. — pgregory@... (Paul Gregory)

I have a system at the moment where I create 'things' based on a base

11 messages 2002/11/19

[#56300] untainted, unfrozen, honest-to-god session data! — "Chris" <nemo@...>

Hello,

12 messages 2002/11/20

[#56376] Interpreted vs compiled [FAQ] defining methods anywhere — Daniel Carrera <dcarrera@...>

Hello,

13 messages 2002/11/21
[#56378] Re: [FAQ] Interpreted vs compiled [FAQ] defining methods anywhere — "Iain 'Spoon' Truskett" <spoon-dated-1039065493.b360fd@...> 2002/11/21

* Daniel Carrera (dcarrera@math.umd.edu) [21 Nov 2002 16:07]:

[#56388] Ruby is too slow — jcb@... (MetalOne)

I have been writing some image processing algorithms that run on incoming

37 messages 2002/11/21

[#56440] Multiple constructors? — christopher.j.meisenzahl@...

18 messages 2002/11/21

[#56469] The ultimate Application — "Dat Nguyen" <thucdat@...>

13 messages 2002/11/21

[#56593] Ruby idom needed — Robert Cowham <rc@...>

What's the best ruby idiom for the following Perl:

23 messages 2002/11/24

[#56633] Things That Newcomers to Ruby Should Know (11/24/02) — William Djaja Tjokroaminata <billtj@...>

Hi,

56 messages 2002/11/25
[#56679] Re: Things That Newcomers to Ruby Should Know (11/24/02) — William Djaja Tjokroaminata <billtj@...> 2002/11/25

Hi,

[#56694] Re: Things That Newcomers to Ruby Should Know (11/24/02) — "Gavin Sinclair" <gsinclair@...> 2002/11/26

From: "Simon Cozens" <simon@simon-cozens.org>

[#56695] Re: Things That Newcomers to Ruby Should Know (11/24/02) — Daniel Carrera <dcarrera@...> 2002/11/26

[#56722] Re: Things That Newcomers to Ruby Should Know (11/24/02) — Austin Ziegler <austin@...> 2002/11/26

On Tue, 26 Nov 2002 09:21:48 +0900, Daniel Carrera wrote:

[#56725] Re: Things That Newcomers to Ruby Should Know (11/24/02) — Daniel Carrera <dcarrera@...> 2002/11/26

> It's applicable to a small subset of the total set of classes.

[#56726] Re: Things That Newcomers to Ruby Should Know (11/24/02) — "Gavin Sinclair" <gsinclair@...> 2002/11/26

[#56729] Re: Things That Newcomers to Ruby Should Know (11/24/02) — Daniel Carrera <dcarrera@...> 2002/11/26

[snip]

[#56738] Re: Things That Newcomers to Ruby Should Know (11/24/02) — dblack@... 2002/11/26

Hi --

[#56744] Re: Things That Newcomers to Ruby Should Know (11/24/02) — Jason Persampieri <helgaorg@...> 2002/11/26

> You're not changing the letter 'a' itself; you're

[#56764] Re: Things That Newcomers to Ruby Should Know (11/24/02) — "Hal E. Fulton" <hal9000@...> 2002/11/26

----- Original Message -----

[#56807] Re: Things That Newcomers to Ruby Should Know (11/24/02) — Jason Persampieri <helgaorg@...> 2002/11/26

OK... I get it... I understood your argument (although

[#56812] Re: Things That Newcomers to Ruby Should Know (11/24/02) — William Djaja Tjokroaminata <billtj@...> 2002/11/26

Jason Persampieri <helgaorg@yahoo.com> wrote:

[#56814] Re: Things That Newcomers to Ruby Should Know (11/24/02) — dblack@... 2002/11/26

Hi --

[#56665] FXRuby on Mandrake 8.2 — Ludo <coquelle@...>

Hi, could someone help a beginner rubyer please ?

15 messages 2002/11/25

[#56708] Default value of property — Tim Bates <tim@...>

I have an object, with a method that returns another object, or nil under

20 messages 2002/11/26

[#56719] each_with_index & collect_with_index? — Tim Bates <tim@...>

Array.each (and others) have an alternative .each_index which passes the index

34 messages 2002/11/26
[#56734] Re: each_with_index & collect_with_index? — dblack@... 2002/11/26

Hi --

[#56800] Re: each_with_index & collect_with_index? — Gordon Miller <gmiller@...> 2002/11/26

> As for the second.... I recently appointed myself President of

[#56845] Re: each_with_index & collect_with_index? — why the lucky stiff <ruby-talk@...> 2002/11/27

Gordon Miller (gmiller@promisemark.com) wrote:

[#56849] Re: each_with_index & collect_with_index? — Jason Persampieri <helgaorg@...> 2002/11/27

> It would be really cool if, instead of having a

[#56851] Re: each_with_index & collect_with_index? — dblack@... 2002/11/27

Hi --

[#56772] RCR: Stack, Queue alias methods in Array — Martin DeMello <martindemello@...>

Rationale: Ruby arrays can be easily used as stacks and queues, but it's

46 messages 2002/11/26
[#56793] Re: RCR: Stack, Queue alias methods in Array — matz@... (Yukihiro Matsumoto) 2002/11/26

Hi,

[#56797] Re: RCR: Stack, Queue alias methods in Array — Nikodemus Siivola <tsiivola@...> 2002/11/26

[#56967] call-by-reference problem again — Shannon Fang <xrfang@...>

Hi there,

23 messages 2002/11/27
[#56970] Re: call-by-reference problem again — William Djaja Tjokroaminata <billtj@...> 2002/11/27

Shannon Fang <xrfang@hotmail.com> wrote:

[#56972] Re: call-by-reference problem again — Dave Thomas <Dave@...> 2002/11/27

William Djaja Tjokroaminata <billtj@y.glue.umd.edu> writes:

[#57146] Ruby ++, the one element and generators — "MikkelFJ" <mikkelfj-anti-spam@...>

21 messages 2002/11/30

[#57172] Numerical Ruby — Olivier Saut <Olivier.Saut@...>

Hi all,

14 messages 2002/11/30

Re: Thoughts on Ruby

From: Austin Ziegler <austin@...>
Date: 2002-11-03 23:40:42 UTC
List: ruby-talk #54802
On Mon, 4 Nov 2002 06:44:46 +0900, Enric Lafont wrote:
> Austin Ziegler wrote:
>> I don't actually see this (that everything is "almost" an
>> object). Personally, I think that matz has made the right choice
>> in making boolean operations (and, &&, or, ||) invariant in the
>> language. You can, by the way, redefine the bit operators (&and
>> |). There's nothing worse than a language which doesn't do what
>> you expect it to do with conditionals, and it does so on the whim
>> of another programmer.
> Ok, you are right, it's Mr. Matz decission, but, why then can I
> redefine the "and" method ? It must be a method in the very first
> time, not an exception.

  class Foo
      def and(o)
          "and"
      end
  end

  f = Foo.new
  p f
  p f and nil
  p (f and nil)
  p f.and("o")

If you run this, you'll see that Foo#and isn't related to the
boolean operation at all. Thus, while you can define an 'and'
method, you are not redefining the 'and' boolean operator.

You can redefine the '&' (bitwise-and) operator, because that's
actually a method '&'. So, I'm not sure what you're really asking
for, here.

>>> Why is not "=" a method?
>> Because it's not something done to objects, but to reference
>> variables that we use to manipulate objects. I'm really curious
>> as to why one would want to redefine assignment in the first
>> place. I mean, seriously. It's not like this is C++ where you
>> have to reinvent everything every time you work with the bloody
>> language.
> It's not a question to redefine the "=" operator it's a question
> of orthogonality, what you learn for one thing is equally
> applicable to other parts of the language, it's interesting some
> times to have the option to redefine the equal operator, but in
> most of the cases doing so is adding a real complexity to the
> understanding of the program, this does not means, that if you
> need to do it you can

There is no orthogonality allowed by the redefinition of assignment
in Ruby -- or in any other language that I've ever dealt with. What
it does is creates "exceptions" -- and that violates orthogonality.
Beyond that, since "=" (which is ASSIGNMENT in Ruby) isn't done to
objects, but to references. You can, of course, easily redefine
'==' (COMPARISON).

>>> Same question for "and" and the rest of operators that can not
>>> be redefined, Does the actual implementation make life easier
>>> for the designer ? I say so because for me is more natural when
>>> everything is an object (without exceptions, here Ruby follows
>>> the rule pretty well) and a method is a method ever, not
>>> sometimes.
>> This is just MNSHO, but again I don't see why one would want to
>> allow such basic constructs to be redefined. IMO, you can
>> redefine everything except boolean tests and still have a useful
>> -- if obtuse -- language; if you try to redefine those, you're
>> not going to be able to have any determinacy with the programs
>> that are written.
> You can...
> 
> class TrueClass
>   def and (anArgument)
>       return "hello"
>   end
> end
> 
> I've redefined the and, it does not work, but it does not generate
> any warning or error...

I just did that -- and I still get the "and" that I expect. As I
pointed out above, "and" isn't a method. Just because you can define
a method that is named the same as a keyword doesn't mean that it
will actually *be* that keyword.

>> Why is it necessary to access the primitives? IMO, Java's biggest
>> problem is that it makes the primitives available. In Ruby, by
>> the way, I can still change the behaviour of String -- this is
>> where Ruby differs from every other language that I've ever used:
>> it's dynamic. If I need a new function on String, I can add it
>> whenever I need. I'm looking at extending the functionality of a
>> library that I've ported so that it can optionally extend String
>> and Array to include this library as methods on String and Array
>> instead of as something else to operate on a String or an Array.
> Yes it's not needed, in Basic, you can not access the primitives
> and the language is still working, but Ruby is much more powerful
> and flexible, not because you can access the primitives, but
> because the language gives you more options. The primitive access
> is just another option.

IMO, Ruby is more expressive than Java -- which gives access to the
primitives behind a lot of objects.

> Consider for example the string extension you want
> class String
>   def strExtension
>       call libStrgExtension.o:110
>   end
> end
> 
> It's not this way much more easy to do?

No, it isn't, actually. Mostly because my library is written in Ruby
itself, but also because Ruby has clear and *easy* ways of extending
itself which don't require access to primitives *from within Ruby*.

[more on primitives elided]

>> It would NOT be much more natural to require every bloody module
>> I need every time I need it. A language -- especially a language
>> like Ruby, where Strings are fundamental to everything -- isn't
>> useful without certain defaults. Would it not make equal sense to
>> "require integer" when I need to use integers, or are you
>> suggesting that those are fundamentals and are always included?
>> Strings are part of what makes Ruby useful immediately (the same
>> applies to Files) because it's a scrpiting language.
> I did put "String" as an example, but in fact the only needed
> module is "kernel", the base of the language, where Object,
> Boolean, and Magnitude are defned (in Ruby there is no Boolean
> class and no Magnitude, but you have Fixnum and TrueClass and
> FalseClass, I think that this is going to change in the future).
> The rest are extensions, what an OO language is supposed to deal
> with.

Matz determined that String, Regex, Array, Files, and Hashes (among
other thigns) are necessary parts of the language. Given the sorts
of work that I've done with Ruby so far -- I agree.

>> I'm sorry, but I don't understand what you're getting at here.
>> The three examples you gave:
>>      a.+(3)
>>      a.+ 3
>>      a + 3
>> 
>> are actually the only ways to express that thought (without
>> getting silly wrt parenthesis). Ruby explicitly makes parentheses
>> optional on method calls. Parentheses make complex operations
>> easier to read, certainly, and can prevent confusion for the
>> interpreter and programmer, as when you have:
[...]
> You will like then the Perl's "there is a hundred ways to do it"
> slogan.. :-)

It's actually "TMTOWTDI" -- there's more than one way to do it.
Indeed, this is the mark of a mature, expressive language. Look
closely at your own native human language -- there's more than one
way to express something. Even silly invented languages like logban
have multiple ways of expressing ideas.

> The fact that there is more than one way to express something,
> weakens the mastery of the language. It's right sometimes becasue
> it makes things so "eye sugar" , but I prefer ( I PREFER, it's me,
> my option) a one way to do things, it makes things easy to code
> and easy to read your own code and the one made by others.

That's what coding standards are for, not programming language
designs.

>> Actually, it can't give you the same results without trouble. C++
>> *is* trouble because it allows the definition of:
>>      a = a + b   // a.=(a.+(b))
>> to be different from:
>>      a += b    // a.+=(b)
>> If the result of the first call isn't the same as the result of
>> the second call, then there's a disconnect which has to be
>> documented. Matz made the right choice here, I think, because it
>> prevents this sort of stupidity that C++ allows. (And this isn't
>> 'prevention' in the way that I think GvR was beyond silly to
>> require indentation for block definition in Python.)
> I disagree, You loose flexibility, it does not mean that you need
> to use it, it means that you have the flexibility there when you
> need it.

I don't see it as flexibility lost. I see it as "utterly stupid
behaviour" prevented. There is no legitimate reason for someone to
define a = a + b to be different from a += b.

> Anyways, if I define a.+=b to be diferent from a.=a.+b it's my own
> fault for using bad semantincs, but it can be posible that someone
> must be interested in having side efects associated with the +=
> operator (as in C++, and yes it's troublesome). In Smalltalk you
> can do it and there are no problems with the added flexibility,
> contrary to C++ where a lot of programmers started to do OOP
> without a solid background on OO analisys, this bring us the
> problems with C++

There's more problems with C++ than the "lack of solid background";
I suggest that Smalltalk, if it were as popular and widespread as
C++, would have a lot of the same stupid behaviours (like the
idiotic redefinition of a+=b differently from a=a+b).

>> The interpreter will warn you of this, to some degree. If I try
>> to use an undefined variable, it will complain (at least with
>> 1.7) because the value is unknown (it's not even properly 'nil').
>> This won't help, however, if you have two similarly named
>> variables.
> OK, I'll try...I'm using Linux with 1.6. Anyways a warning would
> be a great addition, you will catch the error at compile time
> instead of at run-time.

There is no compile time.

>> This one is easy: because it was a design decision made earlier.
>> A new version of String is being worked on, to the best of my
>> knowledge, that will deal with characters -- but this leaves the
>> problem of existing code which will break because it uses the
>> current implementation.
> It does not need to break nothing a character is an integer with a
> dual personality, maybe you will just need to redefine some
> methods based on the arguments, but I don't foresee serious
> problems.

It *will* break things. If string[i] no longer returns an integer,
then code will break. There are numerous libraries out there -- how
many of them use this behaviour? I don't know -- but there's a big
chance of breakage -- and not everything is easily available
anymore.

>> A bytecode system is being worked on, to the best of my
>> knowledge.
> Someone pointed me to Parrot, I've done him just a look, and it's
> interesting.

Parrot isn't Ruby's bytecode system, although it may work with it in
the future.

-austin
-- Austin Ziegler, austin@halostatue.ca on 2002.11.03 at 18.17.34



In This Thread