[#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:15160] Re: Discussion on new Ruby features

From: Christian Szegedy <szegedy@...>
Date: 2001-05-15 13:26:59 UTC
List: ruby-talk #15160
Sorry, I don't know how to reply to this list,
so my replay will probably create a new thread.

Michael Neumann wrote:
> or perhaps with additional range checking: 
> 
> def addInteger(a :< Fixnum, b > 0 : Fixnum) 
> end

I don't understand the syntax of the first parameter, but generally,
I support your idea. Additional constraint would also enhance 
optimization possibilities.

> Of course sometimes it would be nice to check for types this way,
> but it's not often enough used, I guess.
>
> For that you could befine a method "must" in Object (like the one
> in amstd), which can be used this way:
>
>  a.must Fixnum
>  And raises an exception if the type is not equal.

I find the it less readable, and less suggestive and less effective
(in terms of possible runtime, assuming optimal implementation of
the above feature). To effectiveness: consider the following piece
of code:

  def f(x : X)
  end

  def g(x : X)
     f(x)
  end

A good compiler would easily eliminate the second check, but also
a single check could be more effectively performed than now.

> The problem is that classes in Ruby are just objects, i.e. they are
> dynamic. They have no static signature to check for. 

I think of a signature which is automatically generated 
and can be checked faster on need. The main concern here is not just 
readability, but speed. I could also imagine some check-caching
approach: generic tests for classes could be cached and invalidated
on extension of the class. 

In fact, adding such constraints to code has both advantages and 
disadvantages:

Advantage:    Optimizability, nicer syntax, better checking at parse time.
Disadvantage: Non-generity (i.e. it makes your code less generic =>
less extendable)
It depends on the situation, which one is more important.
I think: we need both.

> What you could do is define an interface definition, and check if the
> object "implements" this interface.
> But this could be done in pure Ruby, I think.

I agree. Ruby is easy to write, extremely extandable. BUT: hard to optimize.
Of course, extandability is an important issue and we should not give it up
or even reduce it.

I think that the current freeze machanism, and perhaps an optional  more 
agressive one, which does not allow unfreeze at all, e.g something like that:

   frozen class X
      ... 
   end

would also be an interesting feature, worth considering and could be
essential for the usability of such features.

For a Ruby code compiled to C, one could consider different scenarios:

1) Shared object: This one is the most extendible, and therefore the
   one which is the hardest to optimize. Even in this case, a reasonable 
	hiding strategy would expand the optimization possibilities.

2) Stand-alone-object which allows evaluates scripts from files or strings.
   Roughly the same situation as in 1)

3) Stand-alone-object which does not interprete anything:
   Much more optimizable than 1) or 2) since a compiler can have all
   information about the structure of the program (no possible extensions).
	Disadvantage: unsuitable for large projects, bacause of probable slow
   compilation time.

I could imagine the following mechanism:
   An own object/library file format which contains the following section:

1)	(assembler) compiled code for the private parts of the code (as a normal
	            object file).

2)	 bytecode for the exported parts: for faster linkage

3)  information on external extensions: i.e. a decription on how far this
    unit tries to extend other units. It would be helpful for optimizing
    other units.

Ruby would have its own linker:
    Using section 3) determines how far the byte-code objects could be 
    extended by other units and optimizes/compiles them.
	 After that it could call the standard linker.

This thoughts are of course very vague, but perhaps a starting point
worth consideration.

best regards, Christian

In This Thread

Prev Next