+1

let’s recapitulate: 

requirement is 
- fast
- editable
- polymorphic with WriteStream
- and immediate to screen 
from our perspective (pharo), it has to be also 
- thread safe 
- well designed. 

our constraints are: 
- bad design of transcripts 
- super naive implementation of text editors (this is, IMO, the reason why 
transcripts are so slow: if you redraw all the window interior each time you 
add a line, you are screw)

basically… we need a good log console (if it is a transcript or not, is another 
discussion) :)

So… who proposes a solution? 

Esteban


> On 10 May 2015, at 00:40, Yuriy Tymchuk <yuriy.tymc...@me.com> wrote:
> 
> For me saying that internals are not important as long as transcript does 
> what is expected from it, is like saying that Parser being a subclass of 
> Scanner and Compiler being as subclass of Parser is ok as long as it compiles 
> source code. We already had that and it was bad.
> 
> On the other hand it’s obvious that we don’t have enough resources to rewrite 
> Pharo from scratch and we cannot leave issues as they are just because we 
> cannot solve them perfectly now.
> 
> I would say that Igor is correct saying that we need a better architecture, 
> and Stef and Eliot are correct saying that we need tools that fulfill users’ 
> needs. And we have to say: “ok now we hack this around, but we have to do 
> this the right way one day”. Is anyone familiar with same-css[1] concept?
> 
> Uko
> 
> P.S. maybe my 2 cents are useless, but all the fight around this discussion 
> is really strange for me. In Ukraine we have a saying that it’s better to be 
> healthy and poor than sick and rich. Now I use to say that it’s better to be 
> healthy and rich than sick and poor. And all the fight here was if it’s 
> better to be healthy or rich. Definitely it’s better to be both, we cannot do 
> that instantly but we can set goals and milestones, and find the optimal 
> strategy.
> 
> 
> [1]: http://csswizardry.com/2013/04/shame-css/ 
> <http://csswizardry.com/2013/04/shame-css/>
>> On 09 May 2015, at 16:17, Eliot Miranda <eliot.mira...@gmail.com 
>> <mailto:eliot.mira...@gmail.com>> wrote:
>> 
>> 
>> 
>> On Sat, May 9, 2015 at 5:29 AM, stepharo <steph...@free.fr 
>> <mailto:steph...@free.fr>> wrote:
>> Eliot
>> 
>> I changed the transcript because it is not thread safe so I could use it at 
>> all to explain concurrent programming output.
>> It was terrible.
>> 
>> I don't see what that has to do with my usability point.  The transcript was
>> a) a stream
>> b) something that displayed its output immediately
>> 
>> Those two features are essential.  If you change the transcript so that it 
>> no longer has those features you have broken it.
>> 
>> Igor waffled on about internals, the desire to separate the UI from the 
>> stream, a point that has nothing to do with the utility of the transcript.  
>> No you're going on about its thread-safety.  But no one is addressing my 
>> point.  And you have Clément telling you that he cannot develop the VM in 
>> Pharo because the transcript is broken, and you have others proposing 
>> various potentially error-prone work-arounds to get around the fact that the 
>> transcript is broken.
>> 
>> Why won't anyone stand up and say yes, the transcript is broken and yes we 
>> will fix it?  This is dysfunctional.
>> 
>> 
>> Stef
>> 
>> 
>> Le 8/5/15 16:16, Eliot Miranda a écrit :
>> 
>> Hi,
>> 
>>      if one uses a at doit transcript then no special action is required to 
>> get output to appear beyond sending flush to Transcript right?  So any 
>> solution that requires special action to get the moronic transcript to work 
>> us broken.  We should fix the transcript, not expect every application to 
>> work around a bug.
>> 
>> Eliot (phone)
>> 
>> On May 8, 2015, at 6:15 AM, Alain Rastoul <alf.mmm....@gmail.com 
>> <mailto:alf.mmm....@gmail.com>> wrote:
>> 
>> Le 08/05/2015 11:34, stepharo a écrit :
>> Hi guys
>> 
>> the Transcript in Pharo is that it's not asynchronous so I can't use it
>> in VM development to show the current progress of the simulation. For
>> example:
>> 1 to: 100 do: [ :i |
>>      0.1 seconds asDelay wait.
>>      Transcript show: 'x'. ]
>> => on Squeak, this shows a x every 0.1 second in the Transcript
>> => on Pharo, nothing happens during 10 seconds then all the x are shown.
>> 
>> https://pharo.fogbugz.com/default.asp?15515 
>> <https://pharo.fogbugz.com/default.asp?15515>
>> Yes, as do it are evaluated in the World morphic process, running in a 
>> forked process or sending World doOneCycle in the loop solve the problem.
>> 
>> Probably in squeak, in Transcript this is done somewhere under the hood.
>> 
>> via dependents ?
>> 
>> TranscriptStream>>endEndtry
>>     "Display all the characters since the last endEntry, and reset the 
>> stream"
>>     self semaphore critical:[
>>         self changed: #appendEntry.
>>         self reset.
>>     ].
>> 
>> Object>>changed: aParameter
>>     self dependents do: [:aDependent | aDependent update: aParameter]
>> 
>> And probably not doOnecycle since you cannot do anything else during 
>> execution (clicking or moving windows).
>> 
>> 
>> -- 
>> Regards,
>> 
>> Alain
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> -- 
>> best,
>> Eliot
> 

Reply via email to