[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Aikido language
Ah, the hard questions...
On 3 Feb 2004, at 07:08, Joe Marshall wrote:
> David Allison <email@example.com> writes:
>> I heard that this might be a good place to introduce a new language.
>> There are even some new language features that might be unique (but
>> I'm not certain of that).
> What do you consider to be unique about the language?
The language maintains a familiar syntax (for those of us
who are used to programming in C++ or Java that is) but
adds scripting features. A few of the major features:
* dynamic typing with types such as integer, real, map, string, vector,
bytevector, classes, etc.
* object oriented, single inheritance, with interfaces
* multithreaded, with monitors
* operator overloading
* enumerated types
* "clever" parser that means you can leave out semicolons where it it
obvious (end of line)
* very powerful string manipulation and regular expressions
Some "unique" aspects:
* block extension (the ability to add code/data to existing functions,
* function inheritance (the ability to inherit functions from functions)
* ability to generate standalone executables that don't need the
* enumeration extension and inheritance
* 'Raw native' functions. This lets you call out to C functions with
no interface code.
I'm not asserting that these are totally unique, but I have not come
in other language. I could be wrong here.
> What advantages does it have over, say, Python or Java or Ruby or
I'm not going to criticize other languages, but I will point out some
differences between Aikido and them.
The main difference between Aikido and the other languages is that
it uses a syntax that is familiar to a lot of people and this makes the
learning curve much shorter. Some people may disagree with this.
Specific differences between Aikido and other languages:
Aikido is most similar in concept to Python, except that it
provides a richer
set of types and operations on them. For example, operator
automatic type conversions etc.
Aikido is similar in syntax to Java (it even has some Java object
model support) but is
not the same type of language at all. Aikido is aimed at adhoc and
where Java isn't. Aikido is dynamically typed and there are few
compile time checks possible.
The same programming style can be used in Aikido as in Java.
To be honest, I can't take Perl. Not a criticism of the language
itself but I find
it not to be my taste. Aikido can perform the same tasks as Perl (I
PCRE package for regular expressions), but I think it's a much more
I have no experience with Ruby, other than reading a little of the
manual. It appears
to be Perl-like (uses the $@% type designators) and is more object
afraid I can't comment on it.
> What problems does the language specifically address?
The language was implemented because I found that there was a lack
of a way to write scripts without having to learn a new syntax. I'm
mostly a C/C++ programmer so I wanted something that looked like
C++ but had higher level constructs that made it easier to write
adhoc programs and scripts.
What I like about the language is the way in which you can write a
script or prototype in it and then easily convert it to a compiled,
strongly typed language for production code.
There I go again, getting all long-winded when describing it. Hope I
didn't bore anyone.