[#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:8442] Re: string like istringstream (was: A bug inruby)

From: jstern@... (Josh Stern)
Date: 2000-12-31 21:40:02 UTC
List: ruby-talk #8442
Jean Michel <jmichel@schur.institut.math.jussieu.fr> wrote:
>Kevin Smith  <sent@qualitycode.com> wrote:

>>Since Ruby is dynamically typed, Strings and 
>>Files can behave the same (and thus be 
>>interchangable) even if they do not inherit from 
>>each other.
>>
>>For eample:
>>
>>  stream.each_line do
>>	| line |
>>	puts ">" + line
>>  end
>>
>>This will work whether stream is a File or a 
>>String. If there are other operations that you 
>>would like String to support (like lineno or 
>>seek) you would just have to create a subclass of 
>>String that implements those methods.

>I do not think this solves my  problem. I will give the specific example
>where I  had the problem  to show  it: I have  as an exercise  written a
>program to  get an ID3V2 tag  from a .mp3  file. I have defined  a class
>ID3V2tag and  a method  read_ID3V2tag in  class IO  which returns  a new
>object of class ID3V2tag (or nil if no such tag was found in the file).
>
> Now, I want to re-use my code to parse an ID3V3 tag sitting in a string
>in memory. In C++, I can just  make the string into an istringstream and
>share the same code.  I don't see how I can share  the code between both
>situations in  ruby (of  course there would  be a way:  put the  code in
>class String and read the file in memory; but this is not desirable with
>multi-megabyte  files!). It  seems that  I need  a class  in which  both
>strings and  files can belong, but  I cannot do it  since neither String
>nor IO is a module. What did I miss here?

I think you haven't adequately explained to the Ruby developers
what it is that you really want.

What is missing from the discussion is a description
of the specific API that is to be shared and what amount of code 
resuse one has in mind.  In C++, there are really three kinds of 
code reuse: literal (object code) reuse -- via inheritance, 
semi-literal reuse  -- via inheritance plus redefined virtual functions, 
and generic reuse of algorithms plus names -- via templates 
(freely generates different object code for different types).  The C++ 
library code for iostreams is really the second type above, but 
the overriden virtual functions are hidden away from the programmer
(underneath the covers, every iostream is basically a strstream
with different virtual methods for what to do when the
char or wchar buffer needs to be filled or emptied;  
obviously be shared; it's a great paradigm, because the code for 
serializing to and from this buffer can be shared and
building strings out of character sequences can
be literally shared.

In Ruby, every method is dynamically dispatched, redefinable, 
looked up by name, and has weakly typed arguments, so the 
three types of reuse essentially collapse to one.  But the 
fact that methods are weakly typed, doesn't mean that 
suitable implementations for each type are conjured from 
thin air, nor does it mean that every interesting point
for customization inside of an interface has been
exposed.

All of that is really just to say that this a library
issue and not a language issue.

In this case, the methods for the Marshal module are
pretty opaque, but it seems likely that you could 
define _dump and _load for your ID3V2tag class and
achieve a suitable kind of code reuse through the
fact that Marshal can work on IO objects and strings
(at least that is my theoretical understanding
based on the documentation).


-= Josh





In This Thread