Hal E. Fulton wrote:
> I can't answer your question -- my eventual goal is
> to know less about Windows, not more -- but your

Me too. That's why I'm using ruby. Porting ruby scripts will be much 
easier than porting entire Delphi/C/C++ programs, and I will have to do 
that one day for my personal collection of homemade tools.

> mention of Delphi caught my eye. I haven't really
> touched Delphi in years, but I was always impressed
> by it.
> 
> I assume you know about the Ruby/Delphi bridge that
> someone has made? I think it's called Apollo... I can't
> quite remember the author, but it's in the RAA.
> 
> When I tested it out, I was very impressed with it. And
> offhand I'd say it's possible that if Delphi exposes
> some bit of functionality, then Apollo might very likely
> expose that same bit to Ruby.

Yes I know about Apollo, but getting it to work with my trusty old 
Delphi 3 could mean a bit of work, plus the code looked rather messy. 
I've also tried to make my own binding (and even managed to define 
ruby-callable classes and methods in Delphi, and call them), but I gave 
it up later. Instead I wrote my own small OO language, which has the 
same object model as ruby, but without the nifty stuff (modules, blocks, 
mixins, continuations etc are all missing, but classes, meta-classs, 
singleton methods are present) and of course with a much smaller class 
library. It was roughly the same amount of work as creating a complete 
binding to ruby, and much more fun (at least if you know how to write 
compilers, which I do).

The problem is, I want to replace a small Delphi-written tool that is 
only meant to be used on my home PC by a even smaller ruby script. It 
would be a cleverly written one-liner if I use some of the usual unix 
tools (ls, tail, sort and ln), but starting up a complete cygwin shell 
takes a lot longer on my system than starting up a delphi executable (or 
rubyw.exe).

-- 
(defun f(p x)(If(Eq x nil)nil(If(p(Car x))(Cons(Car x)(f p(Cdr x)))(f p
(Cdr x)))))(defun q(x)(Q nil x))(defun Q(a x)(If(Eq x nil)a(Q(Cons(Car
x)(Q a(f(Lt(Car x))(Cdr x))))(f(Gt(Car x))(Cdr x)))))