> Hi Nicolas,
>
> here are some thoughts, in no particular order.
>
> I'm not sure about the difference between member variables and
> parameters, which have to be fully typed and local variables, which can
> be derived. Normally i'm either in one or the other mode (of mind),
> depending on the language i'm using. Mixing modes seems strange to me.

Here's the reason :

In ML languages, all type are inferred. Since is quite easy since there is
no subtyping and no open recursion, so you can actually type a program from
up to down without having to jump in the middle. This is not the case with
Class/OO programs which both have subtyping (which does not play very well
with ML-style unification) and open recursion.

It is then very difficult to infer all the variables in such a programming
language. For example MotionTypes is requiring object "var" fields only to
be typed and is trying to infer the methods with subtyping. That leads to
difficult-to-understand typing errors that make MotionTypes not suitable for
the average programmer.

OTOH, if all the object "prototypes" var and functions in objects
declarations are typed, you will have a closed environment in each function
that can be easily infered and fully typed with subtyping.

I'm still thinking that maybe the programmer should be able to let some
function types blank. In that case the first type used to call the function
will "set" the type. But again types tends to propagate far away and leads
to some difficult-to-track typing errors. It also means that the order in
which the program is typed might change the result, which is bad news in
general.

> I like the idea of beeing able to extend the language itself, like it is
> possible in Lisp. I know it's a broad term, and i don't have a concrete
> use case at hand, simply like the idea to extend the language without
> having to write a compiler.

This is a difficult-to-design feature. Having a clean macro system might
enable to do some powerful inlining but it will not be enough to really
extend the syntax. I'll think about it but I'm not heading this way right
now.

> Closures, like in JavaScript or AS - an absolute must, i like them
> better than anonymous classes.

If you see the iterator sample, it's using closures. Or maybe you were
thinking about "real closures", without having to care about the
"function-wide-scope" of AS2 (and AS3 as well)/

> The enumerators are nice. Similar to c#, if i remember correctly.
>
> Have you seen the articles about Linq? Beeing able to search through
> arrays, XML and sql databases in the same way looks great.

Yes I read about Linq. But I really think SQL is flawed from the beginning
so this is a feature for "later" . Actually at MotionTwin we're using some
nice library in MotionTypes to abstract databases tables as classes. It can
be easily ported to (yet unamed language : I need to find a name, any
suggestion from the community ? :).

Nicolas


_______________________________________________
osflash mailing list
[email protected]
http://osflash.org/mailman/listinfo/osflash_osflash.org

Reply via email to