Script tagging for Lively's object editor

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Script tagging for Lively's object editor

Lauritz Thamsen
Hi.

We added script tagging to our Object Editor (Script Editor).

A script might be in several categories at the same time, so we allow multiple tags. Further, we don't want the editor to have as many UI elements as our System Code Browser. Therefore, we tag scripts like they are added. Programmatically in the editor's script pane: 

this.addScript(function example() {
alertOK('hello');
}).categorize(['example', 'public']);

Any feedback or comments? :-)

Best,
Lauritz

_______________________________________________
lively-kernel mailing list
[hidden email]
http://lists.hpi.uni-potsdam.de/listinfo/lively-kernel
Reply | Threaded
Open this post in threaded view
|

Re: Script tagging for Lively's object editor

Lincke, Jens
Hi, Lauritz

why not generalize it and call the function "tag"?

Best,
Jens

Am 28.11.2011 um 20:51 schrieb Lauritz Thamsen:

Hi.

We added script tagging to our Object Editor (Script Editor).

A script might be in several categories at the same time, so we allow multiple tags. Further, we don't want the editor to have as many UI elements as our System Code Browser. Therefore, we tag scripts like they are added. Programmatically in the editor's script pane: 

this.addScript(function example() {
alertOK('hello');
}).categorize(['example', 'public']);

Any feedback or comments? :-)

Best,
Lauritz
_______________________________________________
lively-kernel mailing list
[hidden email]
http://lists.hpi.uni-potsdam.de/listinfo/lively-kernel


_______________________________________________
lively-kernel mailing list
[hidden email]
http://lists.hpi.uni-potsdam.de/listinfo/lively-kernel
Reply | Threaded
Open this post in threaded view
|

Re: Script tagging for Lively's object editor

Roeder, Marko
In reply to this post by Lauritz Thamsen
Hi Lauritz -

I am a bit indecisive when it comes to adding UI elements vs. having more code in the code pane. So here are my thoughts on that:

On the one hand you could argue that keeping the UI of the script editor clean and easy is a good idea looking at how browser (e.g. the SCB) do look like. But I think that you should also hide as many "implementation details" of how scripts are added and categorized/tagged, meaning that even this.addScript(...) (and therefore .categorize(...) too) is some kind of information a beginner/user should not need to see. So an additional one-line text morph for "tagging" would be a simple and nice solution.
On the other hand even the "implementation details" might be interesting for people who e.g. want to add scripts programmatically (you could argue) but this is not majority of users. So in my opinion it really only adds clutter to what you really want to see/do.
Also moving towards a system without files (and therefore no textual JS representation of scripts), this feels wrong to me.

So what do you think? Comments, thoughts? ;-)

Best,

- Marko


PS: I also have to add that I never really saw the need for method categories and the only systems/languages (I know) that do have this are Lively and Squeak... :-/


On Nov 28, 2011, at 20:51 , Lauritz Thamsen wrote:

Hi.

We added script tagging to our Object Editor (Script Editor).

A script might be in several categories at the same time, so we allow multiple tags. Further, we don't want the editor to have as many UI elements as our System Code Browser. Therefore, we tag scripts like they are added. Programmatically in the editor's script pane: 

this.addScript(function example() {
alertOK('hello');
}).categorize(['example', 'public']);

Any feedback or comments? :-)

Best,
Lauritz
_______________________________________________
lively-kernel mailing list
[hidden email]
http://lists.hpi.uni-potsdam.de/listinfo/lively-kernel


_______________________________________________
lively-kernel mailing list
[hidden email]
http://lists.hpi.uni-potsdam.de/listinfo/lively-kernel
Reply | Threaded
Open this post in threaded view
|

Re: Script tagging for Lively's object editor

Lauritz Thamsen
Hi Marko.

Thank you for your feedback.

Also moving towards a system without files (and therefore no textual JS representation of scripts), this feels wrong to me.
I am not sure what you mean by "no textual representations" - how will editing the scripts of an object will look like when there's no textual representation of scripts? What is a JS representation? And will it still be possible with your CodeDB plan to develop a part locally with our editor in a world and to publish it after a number of coherent changes? 

So in my opinion it really only adds clutter to what you really want to see/do. 
PS: I also have to add that I never really saw the need for method categories and the only systems/languages (I know) that do have this are Lively and Squeak... :-/
The rationale here is: There are no private methods in ST or JS, but certain objects are implemented using lots of methods (which is good!), but not all should be meant to be used as interface by users of such objects - tagging those as, for example, "private" and the intended interface as "public" might alleviate finding the correct method for a certain task.
I personally find my self searching for the correct method in Lively often, do like tagged scripts especially when there are "framework parts"/"template parts" that users should adapt slightly to their needs (we had those in a recent demo app), and do appreciate the categories in Smalltalk systems like Squeak :-)

But I do understand that any implementation and any UI of a feature will feel like clutter if you don't want that feature. 

So an additional one-line text morph for "tagging" would be a simple and nice solution.
Currently, the editor can also display all scripts at once, which, for example, allows to search in all scripts of an object (and only these) - very important for refactorings as long as there are no sophisticated refactoring tools. Further, the editor also displays connections (Lively's data binding). In these two situations a text field for tagging a single script wouldn't make sense. 
An alternative is to use multiple panes as the SCB uses, probably with drag and drop - however, we decided to keep the editor lightweight and stay with it's three-pane layout. 
I do however see your point in regards to exposing implementation details with addScript - but like that the editor does not hide these details, because this way the scripts are added as it's possible everywhere in the system - feels unified and direct to me. 

Best,
Lauritz

On Nov 28, 2011, at 2:13 PM, Roeder, Marko wrote:

Hi Lauritz -

I am a bit indecisive when it comes to adding UI elements vs. having more code in the code pane. So here are my thoughts on that:

On the one hand you could argue that keeping the UI of the script editor clean and easy is a good idea looking at how browser (e.g. the SCB) do look like. But I think that you should also hide as many "implementation details" of how scripts are added and categorized/tagged, meaning that even this.addScript(...) (and therefore .categorize(...) too) is some kind of information a beginner/user should not need to see. So an additional one-line text morph for "tagging" would be a simple and nice solution.
On the other hand even the "implementation details" might be interesting for people who e.g. want to add scripts programmatically (you could argue) but this is not majority of users. So in my opinion it really only adds clutter to what you really want to see/do.
Also moving towards a system without files (and therefore no textual JS representation of scripts), this feels wrong to me.

So what do you think? Comments, thoughts? ;-)

Best,

- Marko


PS: I also have to add that I never really saw the need for method categories and the only systems/languages (I know) that do have this are Lively and Squeak... :-/


On Nov 28, 2011, at 20:51 , Lauritz Thamsen wrote:

Hi.

We added script tagging to our Object Editor (Script Editor).

A script might be in several categories at the same time, so we allow multiple tags. Further, we don't want the editor to have as many UI elements as our System Code Browser. Therefore, we tag scripts like they are added. Programmatically in the editor's script pane: 

this.addScript(function example() {
alertOK('hello');
}).categorize(['example', 'public']);

Any feedback or comments? :-)

Best,
Lauritz
_______________________________________________
lively-kernel mailing list
[hidden email]
http://lists.hpi.uni-potsdam.de/listinfo/lively-kernel

_______________________________________________
lively-kernel mailing list
[hidden email]
http://lists.hpi.uni-potsdam.de/listinfo/lively-kernel


_______________________________________________
lively-kernel mailing list
[hidden email]
http://lists.hpi.uni-potsdam.de/listinfo/lively-kernel
Reply | Threaded
Open this post in threaded view
|

Re: Script tagging for Lively's object editor

Lauritz Thamsen
In reply to this post by Lincke, Jens
Hi Jens.

Thanks for the feedback - I renamed the method to .tag([]) instead of categorize([]).

Best,
Lauritz

On Nov 28, 2011, at 1:00 PM, Jens Lincke wrote:

Hi, Lauritz

why not generalize it and call the function "tag"?

Best,
Jens

Am 28.11.2011 um 20:51 schrieb Lauritz Thamsen:

Hi.

We added script tagging to our Object Editor (Script Editor).

A script might be in several categories at the same time, so we allow multiple tags. Further, we don't want the editor to have as many UI elements as our System Code Browser. Therefore, we tag scripts like they are added. Programmatically in the editor's script pane: 

this.addScript(function example() {
alertOK('hello');
}).categorize(['example', 'public']);

Any feedback or comments? :-)

Best,
Lauritz
_______________________________________________
lively-kernel mailing list
[hidden email]
http://lists.hpi.uni-potsdam.de/listinfo/lively-kernel

_______________________________________________
lively-kernel mailing list
[hidden email]
http://lists.hpi.uni-potsdam.de/listinfo/lively-kernel


_______________________________________________
lively-kernel mailing list
[hidden email]
http://lists.hpi.uni-potsdam.de/listinfo/lively-kernel