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)))))