[#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:15997] Re: If you want explicit instvar definitions...

From: Mathieu Bouchard <matju@...>
Date: 2001-05-30 01:28:09 UTC
List: ruby-talk #15997
On Mon, 28 May 2001, Stefan Matthias Aust wrote:

> To allow a better documentation of classes, I added a "var" method to
> the kernel module which helps me to write down instance variable
> definition is a readable manner.  I'd like to some opinions whether
> this is a stupid idea or a useful one.

In dynamically-typed language circles there is the consensus that
type-checking is what the language already does and that you should
not seek to put any explicit type-checking.

Now, there's of course a difference between this wish, and my opinion
(which I also call "Reality"). My opinion is that: in several cases you
*need* type declarations; in many other cases, you wish they were there; 
and a dynamic language gifts you with the possibility to invent your own
kinds of types, type-declarations, and type-checking.

For example, the X11 client protocol codec I'm writing right now (RubyX11) 
uses its own type declarations as a protocol specification. It also uses
it for ordinary type-checking because that traps a large amount of bugs. 

But for many other domains, types aren't so useful beyond what the
language offer, that is true.

> class Game
>   var :name,      'String'
>   var :turn,      'Integer'
>   var :players,   'Array<Player>', :readonly
>   var :worlds,    'Array<World>', :readonly
> end

why not:

var :name,    String
var :turn,    Integer
var :players, Array.of(Player), :read
var :worlds,  Array.of(World),  :read

If you wish to do checking of generic types, then you have several
options: you can make the accessor check all the contents of the array,
or you can have the array checking contents that are introduced in it.
(Blatant plug: this is yet another 10-line program using MetaRuby). In
both cases, you'll have to implement Array.of().

> This currently only works for non-generic types, but with more effort
> (and meta-magic) it should be possible to also support Array<E> and
> Hash<K,V> style type checks.  My idea is to wrapp arrays and hashes
> when they are assigned to the instance variable using some proxy
> object which then intercepts the []= method and delegates all other
> methods to the original.

you could also simply do:

module TypedArray
	def []=(*args)
		raise TypeError if ...
		super
	end
end
a = []
a.extend TypedArray

But then, you have also to wrap a few other methods that bypass your
implementation of #[]= because they call each other directly at the C
level (or they access the array directly). Those are #map!, #collect!,
#concat, #fill, #flatten!, #push, #<<, #unshift, and I think it's all.

You can't pass arguments when you call Object#extend, but you could have a
write-once field called :element_type, which you would use to set the
type.

matju

In This Thread

Prev Next