[#14464] who uses Python or Ruby, and for what? — ellard2@...01.fas.harvard.edu (-11,3-3562,3-3076)

A while ago I posted a request for people to share their experiences

12 messages 2001/05/01

[#14555] Ruby as a Mac OS/X scripting language — Dave Thomas <Dave@...>

10 messages 2001/05/02

[#14557] Arggg Bitten by the block var scope feature!!! — Wayne Scott <wscott@...>

13 messages 2001/05/02

[#14598] Re: Arggg Bitten by the block var scope feature!!! — "Conrad Schneiker" <schneik@...>

# On Thu, 3 May 2001, Wayne Scott wrote:

9 messages 2001/05/03

[#14636] Yet another "About private methods" question — Eric Jacoboni <jacoboni@...2.fr>

I'm still trying to figure out the semantics of private methods in Ruby.

39 messages 2001/05/04
[#14656] Re: Yet another "About private methods" question — Dave Thomas <Dave@...> 2001/05/04

Eric Jacoboni <jaco@teaser.fr> writes:

[#14666] Ruby and Web Applications — "Chris Montgomery" <monty@...> 2001/05/04

Greetings from a newbie,

[#14772] Re: Ruby and Web Applications — Jim Freeze <jim@...> 2001/05/07

On Sat, 5 May 2001, Chris Montgomery wrote:

[#14710] Why's Ruby so slow in this case? — Stefan Matthias Aust <sma@3plus4.de>

Sure, Ruby, being interpreted, is slower than a compiled language.

12 messages 2001/05/05

[#14881] Class/Module Information — "John Kaurin" <jkaurin@...>

It is possible to modify the following code to produce

18 messages 2001/05/09

[#15034] Re: calling .inspect on array/hash causes core dump — ts <decoux@...>

>>>>> "A" == Andreas Riedl <viisi@chello.at> writes:

15 messages 2001/05/12

[#15198] Re: Q: GUI framework with direct drawing ca pabilities? — Steve Tuckner <SAT@...>

Would it be a good idea to develop a pure Ruby GUI framework built on top of

13 messages 2001/05/15

[#15234] Pluggable sorting - How would you do it? — "Hal E. Fulton" <hal9000@...>

Hello all,

16 messages 2001/05/16

[#15549] ColdFusion for Ruby — "Michael Dinowitz" <mdinowit@...2000.com>

I don't currently use Ruby. To tell the truth, I have no real reason to. I'd

12 messages 2001/05/22

[#15569] I like ruby-chan ... — Rob Armstrong <rob@...>

Ruby is more human(e) than Python. We already have too many animals :-).

15 messages 2001/05/23

[#15601] How to avoid spelling mistakes of variable names — ndrochak@... (Nick Drochak)

Since Ruby does not require a variable to be declared, do people find

13 messages 2001/05/23

[#15734] java based interpreter and regexes — "Wayne Blair" <wayne.blair@...>

I have been thinking about the java based ruby interpreter project, and I

48 messages 2001/05/25

[#15804] is it possible to dynamically coerce objects types in Ruby? — mirian@... (Mirian Crzig Lennox)

Greetings to all. I am a newcomer to Ruby and I am exploring the

13 messages 2001/05/27
[#15807] Re: is it possible to dynamically coerce objects types in Ruby? — matz@... (Yukihiro Matsumoto) 2001/05/27

Hi,

[#15863] Experimental "in" operator for collections — Stefan Matthias Aust <sma@3plus4.de>

There's one thing where I prefer Python over Ruby. Testing whether an

13 messages 2001/05/28

[#15925] Re: Block arguments vs method arguments — ts <decoux@...>

>>>>> "M" == Mike <mike@lepton.fr> writes:

43 messages 2001/05/29
[#16070] Re: Block arguments vs method arguments — "Hal E. Fulton" <hal9000@...> 2001/05/31

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

[#16081] Re: Block arguments vs method arguments — Sean Russell <ser@...> 2001/05/31

On Thu, May 31, 2001 at 11:53:17AM +0900, Hal E. Fulton wrote:

[#16088] Re: Block arguments vs method arguments — Dan Moniz <dnm@...> 2001/05/31

At 11:01 PM 5/31/2001 +0900, Sean Russell wrote:

[#15954] new keyword idea: tryreturn, tryturn or done — Juha Pohjalainen <voidjump@...>

Hello everyone!

12 messages 2001/05/29

[ruby-talk:15262] Re: Discussion on new Ruby features

From: Christian Szegedy <szegedy@...>
Date: 2001-05-16 10:29:01 UTC
List: ruby-talk #15262
matz wrote:
> For your request for optional type system for hint to improve
> performance, I don't say neither "yes" or "no", but "wait" and discuss
> more deeply.  You can put it in RCR.  No one complains about good

This is a very fair answer. I really wanted to provide some ideas 
instead of concreate solutions. Is there some RCR list, anyway?

matz wrote:
> Why hate "<<" so much?  I think it's good to mention side effect
> explicitly in code appearance.

I don't hate "<<". I use it, I love it, therefore, I would like to
have it for all other operators!!!

I think, I have not expressed myself clearly:

I don't want to optimize the sring class at all: I can live with
the "<<" operator. I don't want reference counting either. 
(If Ruby had it, it would be OK., but I don't think it needs it
in general. It would violate backwards compatibility, anyway.)
If I wanted to optimize the String class, then I would simply 
do it, not post to this list.

I used the string class only as an example, because there is a 
benchmark which shows the potential of the approach I suggested.





Stefan Nobis wrote:
> What about only make it an option to not only overwrite operator + but also to
> overwrite operator +=. So if anyone is concerned about speed, he may overwrite
> + and += and the rest can just work with overwriting operator +. So if Ruby
> finds only operator +, everything works just like it does now, but Ruby now
> looks, if it can find operator +=, this one is used and it is not
> automatically generated.

Of course one could allow to redefine the += operator but, then you would
loose the the connection a+=b equibvalent to a=a+b which is nice.

Basically I suggested the same, but perhaps you should see my postings with
subject "operator idea". Of course one must be cautios: this is not as
simple as it would seem at the first time.

I don't think of violating backwards-compatibility.






My modified suggestion would be:

For each type of oparator ???, we could have three (!) variants:

???  ()
???= ()
???=!() ("!" denotes that it alters the undarlying object!!!!)

??? and ???= would redefine each other but would not define ???!= .

???!= would in turn define both ??? and ???= by mapping:

   a ??? b   

to 
   (a.dup ???=! b)

E.g. for the strings : "<<" would be the same as "+=!"
using this feature.

Given this syntax, I would normally always define the ???=! and
let the interpreter automatically define the others.

Why would it help?

Complicated formulas such as
a=b ??? c ??? d
could be performed magnitudes faster.

Or Take for example:
x = (a+b)*(c+d) 
It could be mapped as (a.dup += b)*=(c.dup+=d),

The more complicated is your formula, the more temporaries
can you win.

Even in the case:
for i in (0..100)
   a ???= b
end

A good optimizer could prevent generating temporaries.
Future optimizers (compilers) could perform a lot of optimization
based on this subtle relationship between ???,???= and ???=!.

Note that the most important thing is: the allocation does not
occure in ???= but is generated by the interpreter/compiler on need,
which would really boost speed.

The main application of such a feature would not be the string class,
but mathematical classes such as Matrix and Polynomial,...

I think, it would be quite essential for an efficient computer algebra
systems based on Ruby.

I am playing with the idea of an NTL-interface to Ruby, but the current
operator approach in ruby is quite suboptimal for such applications.
(I don't think unnecessary copy/allocation of large matrices 
to be a good idea...)

matz wrote:
> The only elegant solution I can think of:
> 
>   * introduce reference counting.

Tanaka wrote:
> I have another idea;
>
>  * + concat to self, if reference count is *0*, which means
>    there's no *reference* to the object.
>

Of course, in some reference/counted language...

Anyway, is there some way in Ruby to introduce reference counting 
in some way? I don't see how could I override assignment  (I'm
just a newbie).

However, I don't consider programmer-side reference counting to
be optimal from a software-engineering point of you:

1) Either the languge has it, so possible future compilers can 
   optimize accordingly.

2) Or you should use it only in exceptional situations when it is
   really necessary.

Best Regards, Christian

In This Thread

Prev Next