[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Aikido language

On 5 Feb 2004, at 00:30, David Suárez de Lis wrote:

> Greetings,


> I have downloaded and compiled Aikido, and I have found it to be a 
> very interesting language, precisely within the limits you yourself 
> expose on the documentation, and very coherent with the goals it was 
> intended to reach.
> I find particularly useful the weakly static "typing" (generic 
> variables are like usual variables in other scripting languages, but 
> the fact that a regular variable gets fixed to the type of the first 
> value it's initiated with is very interesting, I guess it allows for 
> some early checkings that may be interesting to do, even if Aikido is 
> apparently the kind of bind-as-late-as-possible language, which is 
> very useful as well for several kind of things).
> Another things I have found very interesting is the block inheritance 
> and the extension ability, this feature reminds my of Ruby dynamic 
> class extension, or even Javascript ability to make object prototypes 
> vary/change in runtime, really useful and elegant, and the -> operator 
> on streams.

Yeah, the ability to do built-in stream operations is very useful.  The 
goal was to make it possible to stream
to virtually anything without the code having to change.

> Just some questions:
> a) why is GTK+ mandatory? I'd say having GTK+ as an optional feature 
> would be a sensible thing (lots of programming tasks don't need a gui)

It's not supposed to be.  It's a makefile issue.  The configure script 
checks for GTK+ and correctly determines
its existence or lack thereof, however, the Makefile files themselves 
have a problem.  This is fixed in
the version I am just about to release.

> b) any plans of updating aikido with SQL and/or LDAP streams? Provided 
> theses I could start using Aikido right away in my day-to-day job 
> (experimentally, of course, but I am sure my customers would agree 
> that it's easier to read than perl, even when we all love perl :-)

I have a MySQL package that I could email you if you like.  The only 
LDAP stuff I did was to use the 'ldapsearch' commands
on Solaris and parse the output.

> c) when extending a function, is there any mechanism to signal where 
> is the new code to be inserted, or it is simply appended to the 
> original function body? I am asking this mostly because if a function 
> returns, no added code will ever be executed, and being able to extend 
> a function and add it a debugging print here or there, without the 
> need to touch the original code, would make testing and debugging much 
> easier...

Yeah, someone pointed this out to me recently.  I had originally 
planned it that the original function
had to be written with extensibility in mine, but this is probably not 
doable for most functions.  I'll
try to think of ways to do it.

I have written complete packages that use the 'extend' feature 
extensively, with each extension
in a separate file.  Depending on the files specified on the command 
line, a different set
of features can be invoked for the program.  Adding extension modules 
was then very easy.  It was
definitely a different way to program..

Did you check out the C parser in the examples directory?  It is 
written using class extension and makes
for interesting reading (IHMO).

> anyway, congrats for a fine language, with a great name :)

Thanks very much.  My hope is that people start using it, giving me a 
reason to
continue developing it.

One thing I want to add is full closures for passing functions around.  
It's easy to do
but it's just a matter of time and effort.


> best regards,
> david