consideration of Smalltalk "DoIt"
Mostly I take for granted that "DoIt" has always been the way to evaluate things with Smalltalk, however I find it awkward to use in writing a tutorial. Some examples... * After saving, select "Grid new" and "DoIt" -- this sounds awkward, and even that you might need select the latter as well. * After saving, "Grid new" DoIt. -- doesn't read nice * After saving, DoIt to "Grid new." -- worst of all I'd feel better writing something like this... * After saving, evaluate "Grid new". but "evaluate" is not an item in the menus. I think actually many people talk this way with the implicit convention that "evaluate" means "DoIt". So first, does anyone have a good way to compose sentences using "DoIt". Second, how evil would it be to change the menus from "DoIt" to "Evaluate" and so avoid the implicit convention. cheers -ben
I would use "Evaluate". And even go a little bit further, and propose a rename of "DoIt" to "Evaluate". The command line handler is "EvaluateCommandLineHandler". Dolphin used "evaluate", it feels natural even for not-native English speakers like me. Also, REPL stands for read-EVAL-print-loop. So eval is an widely accepted term to run a chunk of code. Regards. Esteban A. Maringolo 2014-07-15 14:20 GMT-03:00 Ben Coman <btc@openinworld.com>:
Mostly I take for granted that "DoIt" has always been the way to evaluate things with Smalltalk, however I find it awkward to use in writing a tutorial. Some examples... * After saving, select "Grid new" and "DoIt" -- this sounds awkward, and even that you might need select the latter as well. * After saving, "Grid new" DoIt. -- doesn't read nice * After saving, DoIt to "Grid new." -- worst of all
I'd feel better writing something like this... * After saving, evaluate "Grid new". but "evaluate" is not an item in the menus. I think actually many people talk this way with the implicit convention that "evaluate" means "DoIt".
So first, does anyone have a good way to compose sentences using "DoIt". Second, how evil would it be to change the menus from "DoIt" to "Evaluate" and so avoid the implicit convention.
cheers -ben
Having evaluate wont hurt but I would NOT remove the traditional do it For sentences with it, I would alternate between Evaluate 'Grid new' and remember that doIt is a message send and button/command like "select 'Grid new' and 'Do it' from the menu" some smalltalk IDEs can say "select 'Grid new' and press the 'Do it' button" sebastian o/
On 15/07/2014, at 14:33, "Esteban A. Maringolo" <emaringolo@gmail.com> wrote:
I would use "Evaluate". And even go a little bit further, and propose a rename of "DoIt" to "Evaluate".
The command line handler is "EvaluateCommandLineHandler".
Dolphin used "evaluate", it feels natural even for not-native English speakers like me.
Also, REPL stands for read-EVAL-print-loop. So eval is an widely accepted term to run a chunk of code.
Regards. Esteban A. Maringolo
2014-07-15 14:20 GMT-03:00 Ben Coman <btc@openinworld.com>:
Mostly I take for granted that "DoIt" has always been the way to evaluate things with Smalltalk, however I find it awkward to use in writing a tutorial. Some examples... * After saving, select "Grid new" and "DoIt" -- this sounds awkward, and even that you might need select the latter as well. * After saving, "Grid new" DoIt. -- doesn't read nice * After saving, DoIt to "Grid new." -- worst of all
I'd feel better writing something like this... * After saving, evaluate "Grid new". but "evaluate" is not an item in the menus. I think actually many people talk this way with the implicit convention that "evaluate" means "DoIt".
So first, does anyone have a good way to compose sentences using "DoIt". Second, how evil would it be to change the menus from "DoIt" to "Evaluate" and so avoid the implicit convention.
cheers -ben
<dolphin-evaluate.png>
In general I banned evaluate from the book vocabulary because people think that this is slower. I saw teachers writing that smalltalk is interpreted and java compiled :). I use execute. On 15/7/14 19:20, Ben Coman wrote:
Mostly I take for granted that "DoIt" has always been the way to evaluate things with Smalltalk, however I find it awkward to use in writing a tutorial. Some examples... * After saving, select "Grid new" and "DoIt" -- this sounds awkward, and even that you might need select the latter as well. * After saving, "Grid new" DoIt. -- doesn't read nice * After saving, DoIt to "Grid new." -- worst of all
I'd feel better writing something like this... * After saving, evaluate "Grid new". but "evaluate" is not an item in the menus. I think actually many people talk this way with the implicit convention that "evaluate" means "DoIt".
So first, does anyone have a good way to compose sentences using "DoIt". Second, how evil would it be to change the menus from "DoIt" to "Evaluate" and so avoid the implicit convention.
cheers -ben
In python there is eval() which evaluates and there is exec() which executes The difference is that one calculates a value which it returns , the other executes code. Personally I find "do it" very good choice because it makes clear what you referring to , in contrast "evaluate" and "execute" can mean different things under different context. On Tue, Jul 15, 2014 at 9:07 PM, stepharo <stepharo@free.fr> wrote:
In general I banned evaluate from the book vocabulary because people think that this is slower. I saw teachers writing that smalltalk is interpreted and java compiled :). I use execute.
On 15/7/14 19:20, Ben Coman wrote:
Mostly I take for granted that "DoIt" has always been the way to evaluate things with Smalltalk, however I find it awkward to use in writing a tutorial. Some examples... * After saving, select "Grid new" and "DoIt" -- this sounds awkward, and even that you might need select the latter as well. * After saving, "Grid new" DoIt. -- doesn't read nice * After saving, DoIt to "Grid new." -- worst of all
I'd feel better writing something like this... * After saving, evaluate "Grid new". but "evaluate" is not an item in the menus. I think actually many people talk this way with the implicit convention that "evaluate" means "DoIt".
So first, does anyone have a good way to compose sentences using "DoIt". Second, how evil would it be to change the menus from "DoIt" to "Evaluate" and so avoid the implicit convention.
cheers -ben
I find the "... it" suffix obsolete. "Delete it", "Do it", "Print it", etc. Maybe it made sense in the past, but today it feels weird. There is no "Cut it", "Paste it", etc... nor similar in other software. IMO, if the menu is contextual, the context already applies the "it" (subject). Regards. Esteban A. Maringolo 2014-07-15 15:16 GMT-03:00 kilon alios <kilon.alios@gmail.com>:
In python there is eval() which evaluates
and there is exec() which executes
The difference is that one calculates a value which it returns , the other executes code.
Personally I find "do it" very good choice because it makes clear what you referring to , in contrast "evaluate" and "execute" can mean different things under different context.
On Tue, Jul 15, 2014 at 9:07 PM, stepharo <stepharo@free.fr> wrote:
In general I banned evaluate from the book vocabulary because people think that this is slower. I saw teachers writing that smalltalk is interpreted and java compiled :). I use execute.
On 15/7/14 19:20, Ben Coman wrote:
Mostly I take for granted that "DoIt" has always been the way to evaluate things with Smalltalk, however I find it awkward to use in writing a tutorial. Some examples... * After saving, select "Grid new" and "DoIt" -- this sounds awkward, and even that you might need select the latter as well. * After saving, "Grid new" DoIt. -- doesn't read nice * After saving, DoIt to "Grid new." -- worst of all
I'd feel better writing something like this... * After saving, evaluate "Grid new". but "evaluate" is not an item in the menus. I think actually many people talk this way with the implicit convention that "evaluate" means "DoIt".
So first, does anyone have a good way to compose sentences using "DoIt". Second, how evil would it be to change the menus from "DoIt" to "Evaluate" and so avoid the implicit convention.
cheers -ben
2014-07-15 20:27 GMT+02:00 Esteban A. Maringolo <emaringolo@gmail.com>:
I find the "... it" suffix obsolete. "Delete it", "Do it", "Print it", etc.
Maybe it made sense in the past, but today it feels weird.
There is no "Cut it", "Paste it", etc... nor similar in other software. IMO, if the menu is contextual, the context already applies the "it" (subject).
Regards.
Did you notice "it" is only mentionned when you will evaluate (do it / print it / debug it / ... )? Otherwise, if it's just text editing there is no it. So there is a sort of logic. IMO that makes sense, because evaluating is a special action.
Esteban A. Maringolo
2014-07-15 15:16 GMT-03:00 kilon alios <kilon.alios@gmail.com>:
In python there is eval() which evaluates
and there is exec() which executes
The difference is that one calculates a value which it returns , the other executes code.
Personally I find "do it" very good choice because it makes clear what you referring to , in contrast "evaluate" and "execute" can mean different things under different context.
+1
On Tue, Jul 15, 2014 at 9:07 PM, stepharo <stepharo@free.fr> wrote:
In general I banned evaluate from the book vocabulary because people
think
that this is slower.
Compiler evaluate: is more how you do it ;) I'd say just do it (it's ok, we are an imperative language after all).
I saw teachers writing that smalltalk is interpreted and java compiled :). I use execute.
Ah, Cursor execute showWhile: [...], st80-v2 also had this vocabulary. So if the UI must reflect that you execute something, it's certainly a valuable word. I checked, it's still in Pharo 3.0 :) Personally, I find it too unpersonnal though. A robot, or an automaton executes a list of instructions. I prefer the anthropo-morphic programming ;)
On 15/7/14 19:20, Ben Coman wrote:
Mostly I take for granted that "DoIt" has always been the way to
evaluate
things with Smalltalk, however I find it awkward to use in writing a tutorial. Some examples... * After saving, select "Grid new" and "DoIt" -- this sounds awkward, and even that you might need select the latter as well. * After saving, "Grid new" DoIt. -- doesn't read nice * After saving, DoIt to "Grid new." -- worst of all
I'd feel better writing something like this... * After saving, evaluate "Grid new". but "evaluate" is not an item in the menus. I think actually many people talk this way with the implicit convention that "evaluate" means "DoIt".
So first, does anyone have a good way to compose sentences using "DoIt". Second, how evil would it be to change the menus from "DoIt" to "Evaluate" and so avoid the implicit convention.
cheers -ben
2014-07-15 17:30 GMT-03:00 Nicolas Cellier <nicolas.cellier.aka.nice@gmail.com>:
2014-07-15 20:27 GMT+02:00 Esteban A. Maringolo <emaringolo@gmail.com>:
I find the "... it" suffix obsolete. "Delete it", "Do it", "Print it", etc.
Maybe it made sense in the past, but today it feels weird. There is no "Cut it", "Paste it", etc... nor similar in other software. IMO, if the menu is contextual, the context already applies the "it" (subject).
Did you notice "it" is only mentionned when you will evaluate (do it / print it / debug it / ... )? Otherwise, if it's just text editing there is no it. So there is a sort of logic. IMO that makes sense, because evaluating is a special action.
I did notice. And I believe the "print-it", "do-it" and similar are there because of historical reasons I don't know, but were carried over without questioning it, maybe since ST-80 . :) Why make a distinction between copying text and evaluating/profiling/debugging it? I only saw this in Smalltalk. Esteban A. Maringolo
On Jul 15, 2014, at 1:50 PM, "Esteban A. Maringolo" <emaringolo@gmail.com> wrote:
2014-07-15 17:30 GMT-03:00 Nicolas Cellier <nicolas.cellier.aka.nice@gmail.com>:
2014-07-15 20:27 GMT+02:00 Esteban A. Maringolo <emaringolo@gmail.com>:
I find the "... it" suffix obsolete. "Delete it", "Do it", "Print it", etc.
Maybe it made sense in the past, but today it feels weird. There is no "Cut it", "Paste it", etc... nor similar in other software. IMO, if the menu is contextual, the context already applies the "it" (subject).
Did you notice "it" is only mentionned when you will evaluate (do it / print it / debug it / ... )? Otherwise, if it's just text editing there is no it. So there is a sort of logic. IMO that makes sense, because evaluating is a special action.
I did notice.
And I believe the "print-it", "do-it" and similar are there because of historical reasons I don't know, but were carried over without questioning it, maybe since ST-80 . :)
Why make a distinction between copying text and evaluating/profiling/debugging it? I only saw this in Smalltalk.
?? I'd be more than annoyed if copying the text "rm -rf *" evaluated it too...
Esteban A. Maringolo
2014-07-15 23:32 GMT-03:00 Eliot Miranda <eliot.miranda@gmail.com>:
On Jul 15, 2014, at 1:50 PM, "Esteban A. Maringolo" <emaringolo@gmail.com> wrote:
Why make a distinction between copying text and evaluating/profiling/debugging it? I only saw this in Smalltalk.
?? I'd be more than annoyed if copying the text "rm -rf *" evaluated it too...
Well... it would be sending the object at the variable rm the message selector #- with rf as argument :) I'm not sure if I understood what you meant. But I'm talking about consistency, it is we use "verb + it" for everything, or we don't. Ej: A) Do/Evaluate it Print it Debug it Copy it Cut it Paste it B) Evaluate Print Debug Copy Cut Paste Certainly the latter feels better to me. And I haven't seen a single UI/UX guideline suggesting the naming of commands like A. But again, maybe i'm lost in translation here. Regards. Esteban A. Maringolo
Hi Esteban, I think the Do/Evaluate it Print it Debug it menu naming is a tribute to Smalltalk history as it was already part of ST80 (see http://www.cosc.canterbury.ac.nz/wolfgang.kreutzer/cosc205/images/stShot13.g...) In this case the text is seen not only as text but as a real expression - maybe that's the reason for the "it" and also the reason for having this in a separate menu group divided by a separator line. I would not change it, even when it is not consistent or make some people feel uncomfortable for three reasons: 1. The do it/print it/debug it is part of nearly any Smalltalk or Pharo tutorial/books so this is what people would expect it to look like 2. The Cut/Copy/Paste is known from any other UI based operating system and application, so this is what people would expect it to look like and the strongest reason: 3. If you change "Print it" to just "Print" people would expect something is coming out of their printer device! ;) We can change anything in Pharo - but not so easy the expectation of users. Bye T.
Gesendet: Mittwoch, 16. Juli 2014 um 16:01 Uhr Von: "Esteban A. Maringolo" <emaringolo@gmail.com> An: "Pharo Development List" <pharo-dev@lists.pharo.org> Betreff: Re: [Pharo-dev] consideration of Smalltalk "DoIt"
2014-07-15 23:32 GMT-03:00 Eliot Miranda <eliot.miranda@gmail.com>:
On Jul 15, 2014, at 1:50 PM, "Esteban A. Maringolo" <emaringolo@gmail.com> wrote:
Why make a distinction between copying text and evaluating/profiling/debugging it? I only saw this in Smalltalk.
?? I'd be more than annoyed if copying the text "rm -rf *" evaluated it too...
Well... it would be sending the object at the variable rm the message selector #- with rf as argument :)
I'm not sure if I understood what you meant. But I'm talking about consistency, it is we use "verb + it" for everything, or we don't.
Ej: A) Do/Evaluate it Print it Debug it Copy it Cut it Paste it
B) Evaluate Print Debug Copy Cut Paste
Certainly the latter feels better to me. And I haven't seen a single UI/UX guideline suggesting the naming of commands like A.
But again, maybe i'm lost in translation here.
Regards.
Esteban A. Maringolo
2014-07-16 11:30 GMT-03:00 Torsten Bergmann <astares@gmx.de>:
Hi Esteban, I think the
Do/Evaluate it Print it Debug it menu naming is a tribute to Smalltalk history as it was already part of ST80 (see http://www.cosc.canterbury.ac.nz/wolfgang.kreutzer/cosc205/images/stShot13.g...)
In this case the text is seen not only as text but as a real expression - maybe that's the reason for the "it" and also the reason for having this in a separate menu group divided by a separator line.
I would not change it, even when it is not consistent or make some people feel uncomfortable for three reasons:
1. The do it/print it/debug it is part of nearly any Smalltalk or Pharo tutorial/books so this is what people would expect it to look like
That's what I'm saying, it's the way it is because of historical reasons. :) However a UI with camel-cased commands (fileOut, printOut), is not a reference of good UI design.
2. The Cut/Copy/Paste is known from any other UI based operating system and application, so this is what people would expect it to look like
Of course, I wouldn't change it. :)
and the strongest reason:
3. If you change "Print it" to just "Print" people would expect something is coming out of their printer device! ;)
I can't see how "Print" means "send to the paper printer" and "Print it" means "convert to a textual representation and print it in the display" ;-) I think the stronger reason is the #1. This is not big deal, let's not make a huge debate (too late) out of this. Ben, say "evaluate" when you want somebody to "DoIt", and I guess that would be fine. Regards!
I think that the difference is in every language. You do not just debug a c program executing it or compiling it for release, the same with c++ and java or python. I never debugged haskell, but when you execute something in the console you are even implicitly using print-it. instead of do it. Profiling is not different neither, is not that you there is all the time something profiling your applications. I think that real difference is that is not usual to find a language that let you execute what ever you want almost everywhere, because the meaning of what execution is, is slightly different. Then, in other languages it just do not makes sense. You may want to change the menu to be different when you have something selected, i feel it will be more bureau, but it can be cool to try a prototype. 2014-07-15 22:50 GMT+02:00 Esteban A. Maringolo <emaringolo@gmail.com>:
2014-07-15 17:30 GMT-03:00 Nicolas Cellier < nicolas.cellier.aka.nice@gmail.com>:
2014-07-15 20:27 GMT+02:00 Esteban A. Maringolo <emaringolo@gmail.com>:
I find the "... it" suffix obsolete. "Delete it", "Do it", "Print it", etc.
Maybe it made sense in the past, but today it feels weird. There is no "Cut it", "Paste it", etc... nor similar in other software. IMO, if the menu is contextual, the context already applies the "it" (subject).
Did you notice "it" is only mentionned when you will evaluate (do it / print it / debug it / ... )? Otherwise, if it's just text editing there is no it. So there is a sort of logic. IMO that makes sense, because evaluating is a special action.
I did notice.
And I believe the "print-it", "do-it" and similar are there because of historical reasons I don't know, but were carried over without questioning it, maybe since ST-80 . :)
Why make a distinction between copying text and evaluating/profiling/debugging it? I only saw this in Smalltalk.
Esteban A. Maringolo
Hi All, Smalltalkers do it with style. As a member of the it fan club I would like to send my support for all the its. Could be that I just got used to the syntax but there has never been any doubt as to what the methods do. The purpose of a language is to be clear and useful. I donât find any fault in the clarity, or the ability to learn and remember its. All the best, Ron Teitelbaum From: Pharo-dev [mailto:pharo-dev-bounces@lists.pharo.org] On Behalf Of Santiago Bragagnolo Sent: Wednesday, July 16, 2014 10:24 AM To: Pharo Development List Subject: Re: [Pharo-dev] consideration of Smalltalk "DoIt" I think that the difference is in every language. You do not just debug a c program executing it or compiling it for release, the same with c++ and java or python. I never debugged haskell, but when you execute something in the console you are even implicitly using print-it. instead of do it. Profiling is not different neither, is not that you there is all the time something profiling your applications. I think that real difference is that is not usual to find a language that let you execute what ever you want almost everywhere, because the meaning of what execution is, is slightly different. Then, in other languages it just do not makes sense. You may want to change the menu to be different when you have something selected, i feel it will be more bureau, but it can be cool to try a prototype. 2014-07-15 22:50 GMT+02:00 Esteban A. Maringolo <emaringolo@gmail.com>: 2014-07-15 17:30 GMT-03:00 Nicolas Cellier <nicolas.cellier.aka.nice@gmail.com>:
2014-07-15 20:27 GMT+02:00 Esteban A. Maringolo <emaringolo@gmail.com>:
I find the "... it" suffix obsolete. "Delete it", "Do it", "Print it", etc.
Maybe it made sense in the past, but today it feels weird. There is no "Cut it", "Paste it", etc... nor similar in other software. IMO, if the menu is contextual, the context already applies the "it" (subject).
Did you notice "it" is only mentionned when you will evaluate (do it / print it / debug it / ... )? Otherwise, if it's just text editing there is no it. So there is a sort of logic. IMO that makes sense, because evaluating is a special action.
I did notice. And I believe the "print-it", "do-it" and similar are there because of historical reasons I don't know, but were carried over without questioning it, maybe since ST-80 . :) Why make a distinction between copying text and evaluating/profiling/debugging it? I only saw this in Smalltalk. Esteban A. Maringolo
participants (10)
-
Ben Coman -
Eliot Miranda -
Esteban A. Maringolo -
kilon alios -
Nicolas Cellier -
Ron Teitelbaum -
Santiago Bragagnolo -
Sebastian Sastre -
stepharo -
Torsten Bergmann