[#18974] Perl/Python/Ruby common backend (Perl6) — ptkwt@...1.aracnet.com (Phil Tomson)

There is a thread about using .NET's CLR as a backend for Ruby, but how

17 messages 2001/08/01

[#19064] ANN: Code Amelioration Contest (presented by Ruby Conference 2001) — David Alan Black <dblack@...>

17 messages 2001/08/03
[#19184] Re: ANN: Code Amelioration Contest (presented by Ruby Conference 2001) — John Carter <john.carter@...> 2001/08/06

On Fri, 3 Aug 2001, David Alan Black wrote:

[#19185] Re: ANN: Code Amelioration Contest (presented by Ruby Conference 2001) — David Alan Black <dblack@...> 2001/08/06

Hello --

[#19186] Re: ANN: Code Amelioration Contest (presented by Ruby Conference 2001) — John Carter <john.carter@...> 2001/08/06

On Mon, 6 Aug 2001, David Alan Black wrote:

[#19125] My 1st look @ ruby: No prototypes and problem with String#gsub — stesch@... (Stefan Scholl)

My first ruby program:

23 messages 2001/08/04

[#19192] Some remarks from a nembie in Ruby — Renaud HEBERT <renaud.hebert@...>

After having read the book "Programming Ruby: The Pragmatic Programmer's

38 messages 2001/08/06

[#19269] Re: Perl/Python/Ruby common backend (Parrot, can Ruby play too?) — ptkwt@...1.aracnet.com (Phil Tomson)

In article <72X97.12093$9i1.972452@e420r-atl1.usenetserver.com>,

50 messages 2001/08/07
[#19349] Re: Perl/Python/Ruby common backend (Parrot, can Ruby play too?) — Mathieu Bouchard <matju@...> 2001/08/08

[#19456] Re: Perl/Python/Ruby common backend (Parrot, can Ruby play too?) — Harry Ohlsen <harryo@...> 2001/08/09

Ned Konz wrote:

[#19451] Re: Help! I'm still confused about threadin g in the ML — "Morris, Chris" <chris.morris@...>

> Is there an Outlook option to turn on In-Reply-To or References

14 messages 2001/08/09
[#19453] Re: Help! I'm still confused about threadin g in the ML — Dave Thomas <Dave@...> 2001/08/09

"Morris, Chris" <chris.morris@snelling.com> writes:

[#19506] the way class variables work — David Alan Black <dblack@...>

Hello --

51 messages 2001/08/10
[#19511] Re: the way class variables work — Chris Uzdavinis <chris@...> 2001/08/11

David Alan Black <dblack@candle.superlink.net> writes:

[#19524] order and freedom in Ruby (was: Re: Re: the way class variables work) — David Alan Black <dblack@...> 2001/08/11

Hello --

[#19517] Why not?: Assigning to self — furufuru@... (Ryo Furue)

Hi there,

55 messages 2001/08/11
[#19689] Re: Why not?: Assigning to self — Ron Jeffries <ronjeffries@...> 2001/08/14

On 13 Aug 2001 20:59:54 -0700, furufuru@ccsr.u-tokyo.ac.jp (Ryo Furue)

[#19694] Re: Why not?: Assigning to self — Ned Konz <ned@...> 2001/08/14

On Tuesday 14 August 2001 05:09 am, Ron Jeffries wrote:

[#19695] Re: Why not?: Assigning to self — ts <decoux@...> 2001/08/14

>>>>> "N" == Ned Konz <ned@bike-nomad.com> writes:

[#19696] Re: Why not?: Assigning to self — Ned Konz <ned@...> 2001/08/14

On Tuesday 14 August 2001 07:51 am, you wrote:

[#19697] Re: Why not?: Assigning to self — ts <decoux@...> 2001/08/14

>>>>> "N" == Ned Konz <ned@bike-nomad.com> writes:

[#19700] Re: Why not?: Assigning to self — Ned Konz <ned@...> 2001/08/14

On Tuesday 14 August 2001 08:27 am, you wrote:

[#19701] Re: Why not?: Assigning to self — ts <decoux@...> 2001/08/14

>>>>> "N" == Ned Konz <ned@bike-nomad.com> writes:

[#19703] Re: Why not?: Assigning to self — Ned Konz <ned@...> 2001/08/14

On Tuesday 14 August 2001 09:05 am, Guy Decoux wrote:

[#19704] Re: Why not?: Assigning to self — ts <decoux@...> 2001/08/14

>>>>> "N" == Ned Konz <ned@bike-nomad.com> writes:

[#19708] Re: Why not?: Assigning to self — Ned Konz <ned@...> 2001/08/14

On Tuesday 14 August 2001 09:27 am, you wrote:

[#19709] Re: Why not?: Assigning to self — ts <decoux@...> 2001/08/14

>>>>> "N" == Ned Konz <ned@bike-nomad.com> writes:

[#19713] Re: Why not?: Assigning to self — Ned Konz <ned@...> 2001/08/14

On Tuesday 14 August 2001 09:45 am, you wrote:

[#19750] Re: Why not?: Assigning to self — matz@... (Yukihiro Matsumoto) 2001/08/15

Hi,

[#19819] Re: Why not?: Assigning to self — Ned Konz <ned@...> 2001/08/15

On Tuesday 14 August 2001 08:14 pm, matz wrote:

[#19852] Re: Why not?: Assigning to self — matz@... (Yukihiro Matsumoto) 2001/08/16

Hi,

[#19857] Re: Why not?: Assigning to self — "Florian G. Pflug" <fgp@...> 2001/08/16

On Thu, Aug 16, 2001 at 11:05:59AM +0900, Yukihiro Matsumoto wrote:

[#19858] Re: Why not?: Assigning to self — matz@... (Yukihiro Matsumoto) 2001/08/16

Hi,

[#19867] Re: Why not?: Assigning to self — "Pit Capitain" <pit@...> 2001/08/16

Just a followup at (my) current end of the thread:

[#19550] Forced garbage collection — Lars Christensen <larsch@...>

14 messages 2001/08/11
[#19562] Re: Forced garbage collection — "Nat Pryce" <nat.pryce@...13media.com> 2001/08/12

From: "Lars Christensen" <larsch@cs.auc.dk>

[#19551] /.ed again — Tobias Reif <tobiasreif@...>

Ruy gets slasdotted again ;)

19 messages 2001/08/11

[#19650] Ruby Newbie mailing list — Michael Pence <mikepence@...>

Hello all.

14 messages 2001/08/13
[#19656] RE: Ruby Newbie mailing list — "Louis Brothers" <lcb134@...> 2001/08/13

We had a similar discussion on the OmniWeb Objective-C mailing list not to

[#19659] Re: Ruby Newbie mailing list — Michael Pence <mikepence@...> 2001/08/13

I appreciate your references to Objectionable-C ;-)

[#19685] Compiling Ruby with cygwin and Tk support — Manuel Zabelt <ng@...>

Hello!

13 messages 2001/08/14

[#19718] General (GUI/license) questions — Ryan Tarpine <rtarpine@...>

First: Kero commented in the description of his new Ruby Agenda program

18 messages 2001/08/14

[#19755] "new" returning nil: how to report the failure of object creation — furufuru@... (Ryo Furue)

Hi there,

14 messages 2001/08/15

[#19758] The GUI poll is in, and the results are surprising — Dave Thomas <Dave@...>

40 messages 2001/08/15
[#19774] Re: The GUI poll is in, and the results are surprising — Lars Christensen <larsch@...> 2001/08/15

On Wed, 15 Aug 2001, Dave Thomas wrote:

[#19784] Re: The GUI poll is in, and the results aresurprising — "Lyle Johnson" <ljohnson@...> 2001/08/15

> Please don't forget what Ruby is all about in this discussion! I think

[#19824] Ruby GUI — "Hal E. Fulton" <hal9000@...>

The concept of a new GUI is somewhat appealing,

16 messages 2001/08/15

[#20033] Ruby Article — Joshua Drake <jd.nospam@...>

Hello,

38 messages 2001/08/20

[#20127] Another Possible RCR - Wrappers via Mixins — Stephen White <spwhite@...>

The main difference between mix-ins and multiple inheritence is (to my understanding) that parent classes do not call child code, but mix-ins do.

15 messages 2001/08/22

[#20135] Bruce Eckel's criticism of Ruby — Ned Konz <ned@...>

Python.org links to http://www.mindview.net/Etc/notes.html#Ruby , saying

24 messages 2001/08/22

[#20183] ++ Operator — kamphausen@... (SKa)

Dear Community,

35 messages 2001/08/23
[#20234] Re: ++ Operator — Dave Thomas <Dave@...> 2001/08/24

matz@ruby-lang.org (Yukihiro Matsumoto) writes:

[#20236] Re: ++ Operator — matz@... (Yukihiro Matsumoto) 2001/08/24

Hi,

[#20209] In Ruby 0 is true but nil is false.. or how to shoot yourself?.. — Guillaume Cottenceau <gc@...>

I have a simple Audio-CD database (using CSV format). I was writing a

11 messages 2001/08/23

[#20254] File.readline(s) — Michael Husmann <michael.husmann@...>

I am reading a 55MB ASCII file by using File.readline(s) which takes on

14 messages 2001/08/24

[#20303] New Windows InstallShield version of Ruby — Andrew Hunt <andy@...>

19 messages 2001/08/24

[#20307] Backwards language — "Sean Middleditch" <elanthis@...>

Greetings,

30 messages 2001/08/24

[ruby-talk:20348] Re: Backwards language

From: Sean Middleditch <elanthis@...>
Date: 2001-08-25 03:14:29 UTC
List: ruby-talk #20348
On 25 Aug 2001 10:43:49 +0900, Joel Wilsson wrote:
> Hi Sean,
> 
> > Perhaps you have some good examples that'd sway my opinion
> 
>   I'm currently writing an ftpd in Ruby, and I've been experimenting
> with a few language features (lots of fun :)
> I've found that eval is one of the most interesting functions there
> is. Here's a snippet (ab)using it.
> 
> ftpmethods = [ ]
> @socket.methods.each { |m|
>   if (m =~ /^ftp_/) and not (m =~ /reply\d+/)
>     ftpmethods << m.sub(/^ftp_/, "")
>   end
> }
> big_case = "case s\n"
> ftpmethods.each { |m|
>   big_case += "when /^#{f}/i\n  @socket.ftp_#{f} s.sub(/^#{f} */i, \"\")\n"
> }
> big_case += "else @socket.ftp_reply502 unless @socket.closed? end"
> until socket.closed?
>   s = @socket.gets unless socket.closed?
>   eval big_case
> end
>  
>   @socket has been extended by an FTP command module, which has
> functions like ftp_user, ftp_pass, ftp_stor, and an FTP reply
> module which has functions like ftp_replyXXX where XXX is a
> three-digit reply code (specified by the FTP RFC).
> First I loop over @socket's method and add "user", "pass"
> etc., and big_case checks the FTP clients reply string to see
> if it matches any of the FTP methods supported by @socket.
> Instead of having to type out all FTP methods manually, the
> wonderful loop takes care of all that.
> As an extra bonus I only have to add FTP commands to the FTP
> command module and have them work automatically, without
> having to add them to the "big case". 
> Oh, and the FTP reply module is also created by an eval, which
> takes a hash of the form "CODE" => "description" and makes a
> module out of it. For example:
> 

Now, to me, that looks like a cheap hack.  ^,^  I've easily written in
C/C++ code that is dependent on data, and the data is only defined in
one place.  The code is intelligent enough to understand the data.  In a
language such as Ruby, which is dynamically cast, it should be even
easier to find a method name within a class, as I believe you're
explaining, if a method exists for doing so (I believe there is).
Instead of having a complete eval() implementation including a language
parser, a little extra code and the use of a method to find methods in a
class by name, which would work perfectly well in an "interpreted"
language such as Ruby, would require far less code on the interpreter's
end (no need for a compiler to be built in), and IMHO would result in
more readable code that is just as powerful and dynamic.  I'm still in
the process of fully learning Ruby's powerful syntax, but in psuedo
code:

until socket is closed
	s = socket.gets
	m = socket.method ("ftp_" + (s ~ /^\S+/))
	if m is valid
		m s.sub ('^\S+\s+', '')

Again, forgive my brain lapse, but I've been working with a few too many
languages lately, and Ruby really is one of the newer ones I'm working
with.  I'm not going to take the time to turn that into real Ruby code,
but I'm fairly sure one could do something like that in that short and
simple of a matter, assuming the equivalent of a method() method exists
(finds a method in the instance that has the given name)

> # some replies need arguments, which are aN
> "215" => "#{a0} system type."
> # Creates the method (in the FTP reply module)
> ftp_reply215 (a0)
>   puts "#{a0} system type.\r\n"
>   # this is so i can use commands like
>   # "ftp_reply501 and return unless setup_ok?"
>   # all reply functions return true
>   return true
> end
> 
>   No, the code isn't exactly easy to read, and can get quite
> confusing, but I'm not trying to write readable code, I'm
> trying to have fun with Ruby (and I AM having lots of fun :)
> While these examples may be a bit extreme, I hope you see
> how extremely powerful eval() really is.
> It's when you go wild with language features you realize how
> unique Ruby is.

Yes, I see that eval() is very power in the fact that it can dynamically
generate executable code, and I believe that it is fun (I love playing
with stuff like that myself).  But is it really necessary?  When one
wants a very small runtime that is very fast, is that power worth
embedding an entire compiler?  And, to be honest, if you're developing a
large-scale (possibly commercial grade) application, is fun or
robustness/efficiency more important?

Some features are fun, and possibly useful, but I still don't at all see
eval() as being necessary, or even wise.  Sorry.  ^,^  Perhaps I'm just
too old and set in my ways.

> 
> 
> Regards,


In This Thread