> 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
