"You figured out how to use it, yet you did not use the system to search for an explanation ?"
Do you call me lazy ? where you based this assumption ? I have looked in the past on the comment of the Workspace class but I dont find an adequate (as most class comments inside Pharo) to explain the inner workings of Workspace. Also I dont have the time ( I can only spare one hour a day ) to study the entire source code of Pharo , I read code only on the "need to know basis". I never felt the need to know how workspace variables work internally and whats their difference with temporary variables. "Check the references to the instance variable 'bindings' of Workspace." if you read my post you would have noticed I have already done that. Unless you mean something else ? Also the title of this thread is "Temporary Variables" , I dont see you mentioning them anywhere . "When evaluating code (do it, inspect it, print it) the expression is compiled. Compilation happens in a context. For scripting code this is often nil, but Pharo (method code) normally references an object (self). So when evaluating from a Workspace, the workspace instance with its bindings is used as context. So, these variables are local to the workspace, but behave a bit like a mixture between global and instance variables." I don't know how Nacho feels about this but I cant say it makes it clear for me how workspace variables vs workspace temporary variables work exactly. I have read about Squeak compilation model somewhere and the importance of thisContext , so I think I understand at least vaguely how this works. I have to say I find the term "scripting" perplexing. Scritping for me is coding that allows one to manipulate an application, but Pharo is more like a development enviroment so I dont see how it would be possible to do scripting inside Pharo using the pharo language.