I've read the threads about Gogo and have some remarks. At first, it made sense to make gogo closer to Unix. Though I think that each aspect needs to be argued on its merits, the fact that you have to learn a bit is imho not a big deal. Such thinking stifles innovation. That said, I do agree there should not be gratuitous differences.

One example where the unix angle does not work is assignment. The TSL tries to be a script language with a shell feel. The biggest distinction is that it uses objects instead of strings. I think the variable assignment therefore should not assume a string. That is:

$ a = hello world

Is NOT a = "hello world". And I do not think it should be. In a script language, treating the right side as a string is silly and would surprise all script programmers (to use a slightly overused argument :-).

I do agree that we should replace the <> with (). This makes a lot of sense and there are not that many filters in use anyway. We could now make filters <> if we want.

About the removal of need for whitespace, I think this might be problematic. I wanted to allow the use of URLs and not require silly escaping. That is why the parsing rules for the first word are different than the remainder. Removing the need for whitespace between between arguments will mess this up I think.

        i = open http://www.aqute.biz/page$q2

I have not looked in detail if the fix to remove whitespace between variables is killing this or not. If not then I am ok with it, otherwise I have a bit of a problem with it. We could add strings where variables are expanded.

About the priority of | and ; ... I remember thinking long and hard about this but forgot why I picked this model, it still seems slightly more powerful because the newline acts as a ';' with a higher priority than the '|' but I am not opposed to switching the priority.

I am not sure about throwing an error when a command is not recognized. Using its value seems sufficient to me and has some advantages. I do not think this would ever confuse me.

Nice to get some discussion going! However, please note that this is an OSGi RFC. I will update the RFC in the coming weeks and discuss it in CPEG. I hope to schedule it then for inclusion in an upcoming compendium.

I'd like to add one more thing. In Blueprint we spent a lot of time on type conversion and I like very much what we got there. I think it would be a good idea to use the same type converters, especially because they also handle generics when available.

Kind regards,

        Peter Kriens

Reply via email to