Pharo: Git and GUI speed; JS widget reuse in PharoJS

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

Re: Pharo: Git and GUI speed; JS widget reuse in PharoJS

Giorgio Ferraris
Hello, 

Regarding native widget, on the VW side the usage on them brought slowness on the OSX platform. Windows platform is speedy, but OSX platform is slower using native widget than with emulated ones.
So native widget alone are not always a solution. 

ciao
giorgio

On Mon, Oct 7, 2019 at 2:08 PM Esteban Lorenzano <[hidden email]> wrote:


On 7 Oct 2019, at 12:39, Shaping <[hidden email]> wrote:

I haven't seen is the instability of the VM you mention, it has worked pretty well for my average use, although the UX is not straightforward.
 
Yes, lots of redirection and extra steps.  Many degrees of freedom.  Seemingly no good default “happy” path to simplify things a little before you start to investigate the variations/choices.
 
> The other thing that keeps me planted firmly in VW is the sheer speed of it.
 
I don't know if there are recent benchmarks, but I've felt Pharo to be really fast compared to VW when it comes to computing.
 
I’ve don’t plenty of informal comparative testing mostly with the GUI.   I’ve used VW continuously for 29 years and Pharo on and off since 2006.  (I’m really trying to port, but I keep failing to do it; getting closer).   VW is still noticeably quicker in GUI responsiveness, in most cases.  One big difference is the Pharo HTTP client, with all those wonderful primitives.  It’s about twice as fast as VW’s.  Bravo.  I meant to tell that to Sven recently, and forgot.
 
> Pharo looks generally much better, but it’s mushy, and that’s a problem.  VW is not.
 
Working regularly with VW or VAST when I go back to Pharo the "mushiness" is significantly noticeable, but if you open a Pharo 3 image (or even Pharo 4) you'll feel it really "snappy", but of course you'll lose all the improvements since then; and that's the current tradeoff.’
 
Yeah, I guess all the new slick GUIs are a bit heavier.  This machine is just okay for speed –2.7 GHz Xeon, but VW feels okay.  Pharo tends to put me slowly to sleep with the tiny but noticeable lags here and there.   I’m very fond of GT.  Beautiful.   Not sure what to do go get the GUI quickness back.  Maybe you  guys are waiting for the new GUI framework(s) to firm up?   I tried Cuis, and was not impressed.  It’s too lean/Spartan and still not very fast (slower in some ways than Pharo).  I like the Pharo creature-comforts (who wouldn’t?).  
 
I never understood the reason for the incremental slowdown, it is even present in "modern" tools such as GTToolkit.
 
Yes, it’s like a creeping disease.  Lol
 
Another thing I miss enough to want to implement (or fake-out somehow) is Alt-tabbing as a way to get around thru your browsers. Usually I have 4 to 6 up at once, if I’m behaving, and as many as 20 if I’m not.   Looking about for the tabs at the bottom to click is not nearly as fun as Alt-Tabbing.  Maybe I could emulate Alt-Tab with Alt-Shift-Tab—a bit of a finger twister, but it might work.
 
> Gestural dynamics are very quick, well under 100 ms latency, often less than 20 ms.
> I’m seeing 100, 150, and 200 ms regularly in Pharo.  It’s too mushy, and that slows the mind.
> Any developer understands this, whether he talks about it or not.
 
This is true, below 20ms is ideal, and top-notch CLI terminals are benchmarking this as a selling point (using stuff like https://github.com/pavelfatin/typometer), Sublime, TextEdit, Notepad++ measure sub 10ms latency.
 
Indeed.
 
My whole nervous system definitely feels this speed effect and starts to thought-glide better below these tiny latencies.  I’m sure many reading this have had similar experiences.  Something similar happens when you are fortunate enough to use a machine with extremely fast striped SSD drives, where you literally don’t wait for anything, except the bloody internet.  This doesn’t just change the speed at which you do the work.  It reorganizes your mind and skills in ways you had not anticipated because you can flow so much more quickly, making connections further forward and backward in your thought stream.  My point is that if the speed and low-latencies are made a priority, we can attract users just on this basis alone.  Even I would be working harder at improving Pharo (and complaining less) if everything were snappy.  I would probably just get on with doing the needed tasks.  Interesting how that works.  Speed:  it changes you.  It changes the whole game.
 
> So I’m wondering when the Pharo GUI will snap as well as VW.
 
Maybe with native widgets there will be a significant speedup, although I don't know whether the lag comes from rendering time or from something else.
 
I would like to know more about the native widgets in Pharo.  Does anyone know when this is likely to happen?

I know, since I’m doing it :)
Native widgets (more like “gtk widgets”. This is technically just native under linux, but Gtk3 works very well both in Windows and Mac (you just has to ship it) will be available for development in Pharo 8.
Now, moving the whole Pharo into it will take a bit longer, and we hope to be able to have a “Pharo Gtk experience” for Pharo 9 (lots of tools to migrate to Spec2). 

Esteban

 
But VW event model is not better than Pharo's, so it might be something else.
 
I’ve not looked into the details, but I will sometimes just repeatedly click on a method name and watch how long the code pane takes to render in VW and Pharo, and I don’t get what Pharo could be doing to make that time so long.  Both are indexing into the sources file or the changes file to get some text, and then there is the TT-font rendering, which is probably where the CPU cycles are going.  I should look into if further, but I’m sure someone reading this knows enough about the rendering path to say where the bottleneck is.
 
 
Cheers,
 
Shaping

Reply | Threaded
Open this post in threaded view
|

Re: Pharo: Git and GUI speed; JS widget reuse in PharoJS

Shaping1

Regarding native widget, on the VW side the usage on them brought slowness on the OSX platform. Windows platform is speedy, but OSX platform is slower using native widget than with emulated ones.

So native widget alone are not always a solution. 

 

That’s interesting and unexpected (I don’t use OSX).  I would think that something is wrong with the VW native implementation or interface to it.  VW emulates GUIs well, but I would not expect it to beat native.  

 

Shaping

 

On Mon, Oct 7, 2019 at 2:08 PM Esteban Lorenzano <[hidden email]> wrote:

 



On 7 Oct 2019, at 12:39, Shaping <[hidden email]> wrote:

 

I haven't seen is the instability of the VM you mention, it has worked pretty well for my average use, although the UX is not straightforward.

 

Yes, lots of redirection and extra steps.  Many degrees of freedom.  Seemingly no good default “happy” path to simplify things a little before you start to investigate the variations/choices.

 

> The other thing that keeps me planted firmly in VW is the sheer speed of it.

 

I don't know if there are recent benchmarks, but I've felt Pharo to be really fast compared to VW when it comes to computing.

 

I’ve don’t plenty of informal comparative testing mostly with the GUI.   I’ve used VW continuously for 29 years and Pharo on and off since 2006.  (I’m really trying to port, but I keep failing to do it; getting closer).   VW is still noticeably quicker in GUI responsiveness, in most cases.  One big difference is the Pharo HTTP client, with all those wonderful primitives.  It’s about twice as fast as VW’s.  Bravo.  I meant to tell that to Sven recently, and forgot.

 

> Pharo looks generally much better, but it’s mushy, and that’s a problem.  VW is not.

 

Working regularly with VW or VAST when I go back to Pharo the "mushiness" is significantly noticeable, but if you open a Pharo 3 image (or even Pharo 4) you'll feel it really "snappy", but of course you'll lose all the improvements since then; and that's the current tradeoff.’

 

Yeah, I guess all the new slick GUIs are a bit heavier.  This machine is just okay for speed –2.7 GHz Xeon, but VW feels okay.  Pharo tends to put me slowly to sleep with the tiny but noticeable lags here and there.   I’m very fond of GT.  Beautiful.   Not sure what to do go get the GUI quickness back.  Maybe you  guys are waiting for the new GUI framework(s) to firm up?   I tried Cuis, and was not impressed.  It’s too lean/Spartan and still not very fast (slower in some ways than Pharo).  I like the Pharo creature-comforts (who wouldn’t?).  

 

I never understood the reason for the incremental slowdown, it is even present in "modern" tools such as GTToolkit.

 

Yes, it’s like a creeping disease.  Lol

 

Another thing I miss enough to want to implement (or fake-out somehow) is Alt-tabbing as a way to get around thru your browsers. Usually I have 4 to 6 up at once, if I’m behaving, and as many as 20 if I’m not.   Looking about for the tabs at the bottom to click is not nearly as fun as Alt-Tabbing.  Maybe I could emulate Alt-Tab with Alt-Shift-Tab—a bit of a finger twister, but it might work.

 

> Gestural dynamics are very quick, well under 100 ms latency, often less than 20 ms.

> I’m seeing 100, 150, and 200 ms regularly in Pharo.  It’s too mushy, and that slows the mind.

> Any developer understands this, whether he talks about it or not.

 

This is true, below 20ms is ideal, and top-notch CLI terminals are benchmarking this as a selling point (using stuff like https://github.com/pavelfatin/typometer), Sublime, TextEdit, Notepad++ measure sub 10ms latency.

 

Indeed.

 

My whole nervous system definitely feels this speed effect and starts to thought-glide better below these tiny latencies.  I’m sure many reading this have had similar experiences.  Something similar happens when you are fortunate enough to use a machine with extremely fast striped SSD drives, where you literally don’t wait for anything, except the bloody internet.  This doesn’t just change the speed at which you do the work.  It reorganizes your mind and skills in ways you had not anticipated because you can flow so much more quickly, making connections further forward and backward in your thought stream.  My point is that if the speed and low-latencies are made a priority, we can attract users just on this basis alone.  Even I would be working harder at improving Pharo (and complaining less) if everything were snappy.  I would probably just get on with doing the needed tasks.  Interesting how that works.  Speed:  it changes you.  It changes the whole game.

 

> So I’m wondering when the Pharo GUI will snap as well as VW.

 

Maybe with native widgets there will be a significant speedup, although I don't know whether the lag comes from rendering time or from something else.

 

I would like to know more about the native widgets in Pharo.  Does anyone know when this is likely to happen?

 

I know, since I’m doing it :)

Native widgets (more like “gtk widgets”. This is technically just native under linux, but Gtk3 works very well both in Windows and Mac (you just has to ship it) will be available for development in Pharo 8.

Now, moving the whole Pharo into it will take a bit longer, and we hope to be able to have a “Pharo Gtk experience” for Pharo 9 (lots of tools to migrate to Spec2). 

 

Esteban



 

But VW event model is not better than Pharo's, so it might be something else.

 

I’ve not looked into the details, but I will sometimes just repeatedly click on a method name and watch how long the code pane takes to render in VW and Pharo, and I don’t get what Pharo could be doing to make that time so long.  Both are indexing into the sources file or the changes file to get some text, and then there is the TT-font rendering, which is probably where the CPU cycles are going.  I should look into if further, but I’m sure someone reading this knows enough about the rendering path to say where the bottleneck is.

 

 

Cheers,

 

Shaping

 

Reply | Threaded
Open this post in threaded view
|

Re: Pharo: Git and GUI speed; JS widget reuse in PharoJS

giorgiof
for what I know  it's the way it's integrated with the underlain OS.  On windows things are much,  much  better.

VW emulates GUIs well, but I would not expect it to beat native.   I would restate it as : I would not expect native to be slower that emulated....  :) seems the same, but not exactly... 

ciao

giorgio

I hope to have time to look again at Pharo one of these days. But time is always a scarce resource :)

On Wed, Oct 9, 2019 at 4:17 AM Shaping <[hidden email]> wrote:

Regarding native widget, on the VW side the usage on them brought slowness on the OSX platform. Windows platform is speedy, but OSX platform is slower using native widget than with emulated ones.

So native widget alone are not always a solution. 

 

That’s interesting and unexpected (I don’t use OSX).  I would think that something is wrong with the VW native implementation or interface to it.  VW emulates GUIs well, but I would not expect it to beat native.  

 

Shaping

 

On Mon, Oct 7, 2019 at 2:08 PM Esteban Lorenzano <[hidden email]> wrote:

 



On 7 Oct 2019, at 12:39, Shaping <[hidden email]> wrote:

 

I haven't seen is the instability of the VM you mention, it has worked pretty well for my average use, although the UX is not straightforward.

 

Yes, lots of redirection and extra steps.  Many degrees of freedom.  Seemingly no good default “happy” path to simplify things a little before you start to investigate the variations/choices.

 

> The other thing that keeps me planted firmly in VW is the sheer speed of it.

 

I don't know if there are recent benchmarks, but I've felt Pharo to be really fast compared to VW when it comes to computing.

 

I’ve don’t plenty of informal comparative testing mostly with the GUI.   I’ve used VW continuously for 29 years and Pharo on and off since 2006.  (I’m really trying to port, but I keep failing to do it; getting closer).   VW is still noticeably quicker in GUI responsiveness, in most cases.  One big difference is the Pharo HTTP client, with all those wonderful primitives.  It’s about twice as fast as VW’s.  Bravo.  I meant to tell that to Sven recently, and forgot.

 

> Pharo looks generally much better, but it’s mushy, and that’s a problem.  VW is not.

 

Working regularly with VW or VAST when I go back to Pharo the "mushiness" is significantly noticeable, but if you open a Pharo 3 image (or even Pharo 4) you'll feel it really "snappy", but of course you'll lose all the improvements since then; and that's the current tradeoff.’

 

Yeah, I guess all the new slick GUIs are a bit heavier.  This machine is just okay for speed –2.7 GHz Xeon, but VW feels okay.  Pharo tends to put me slowly to sleep with the tiny but noticeable lags here and there.   I’m very fond of GT.  Beautiful.   Not sure what to do go get the GUI quickness back.  Maybe you  guys are waiting for the new GUI framework(s) to firm up?   I tried Cuis, and was not impressed.  It’s too lean/Spartan and still not very fast (slower in some ways than Pharo).  I like the Pharo creature-comforts (who wouldn’t?).  

 

I never understood the reason for the incremental slowdown, it is even present in "modern" tools such as GTToolkit.

 

Yes, it’s like a creeping disease.  Lol

 

Another thing I miss enough to want to implement (or fake-out somehow) is Alt-tabbing as a way to get around thru your browsers. Usually I have 4 to 6 up at once, if I’m behaving, and as many as 20 if I’m not.   Looking about for the tabs at the bottom to click is not nearly as fun as Alt-Tabbing.  Maybe I could emulate Alt-Tab with Alt-Shift-Tab—a bit of a finger twister, but it might work.

 

> Gestural dynamics are very quick, well under 100 ms latency, often less than 20 ms.

> I’m seeing 100, 150, and 200 ms regularly in Pharo.  It’s too mushy, and that slows the mind.

> Any developer understands this, whether he talks about it or not.

 

This is true, below 20ms is ideal, and top-notch CLI terminals are benchmarking this as a selling point (using stuff like https://github.com/pavelfatin/typometer), Sublime, TextEdit, Notepad++ measure sub 10ms latency.

 

Indeed.

 

My whole nervous system definitely feels this speed effect and starts to thought-glide better below these tiny latencies.  I’m sure many reading this have had similar experiences.  Something similar happens when you are fortunate enough to use a machine with extremely fast striped SSD drives, where you literally don’t wait for anything, except the bloody internet.  This doesn’t just change the speed at which you do the work.  It reorganizes your mind and skills in ways you had not anticipated because you can flow so much more quickly, making connections further forward and backward in your thought stream.  My point is that if the speed and low-latencies are made a priority, we can attract users just on this basis alone.  Even I would be working harder at improving Pharo (and complaining less) if everything were snappy.  I would probably just get on with doing the needed tasks.  Interesting how that works.  Speed:  it changes you.  It changes the whole game.

 

> So I’m wondering when the Pharo GUI will snap as well as VW.

 

Maybe with native widgets there will be a significant speedup, although I don't know whether the lag comes from rendering time or from something else.

 

I would like to know more about the native widgets in Pharo.  Does anyone know when this is likely to happen?

 

I know, since I’m doing it :)

Native widgets (more like “gtk widgets”. This is technically just native under linux, but Gtk3 works very well both in Windows and Mac (you just has to ship it) will be available for development in Pharo 8.

Now, moving the whole Pharo into it will take a bit longer, and we hope to be able to have a “Pharo Gtk experience” for Pharo 9 (lots of tools to migrate to Spec2). 

 

Esteban



 

But VW event model is not better than Pharo's, so it might be something else.

 

I’ve not looked into the details, but I will sometimes just repeatedly click on a method name and watch how long the code pane takes to render in VW and Pharo, and I don’t get what Pharo could be doing to make that time so long.  Both are indexing into the sources file or the changes file to get some text, and then there is the TT-font rendering, which is probably where the CPU cycles are going.  I should look into if further, but I’m sure someone reading this knows enough about the rendering path to say where the bottleneck is.

 

 

Cheers,

 

Shaping

 

Reply | Threaded
Open this post in threaded view
|

Re: Pharo: Git and GUI speed; JS widget reuse in PharoJS

EstebanLM


On 9 Oct 2019, at 10:33, giorgio ferraris <[hidden email]> wrote:

for what I know  it's the way it's integrated with the underlain OS.  On windows things are much,  much  better.

VW emulates GUIs well, but I would not expect it to beat native.   I would restate it as : I would not expect native to be slower that emulated....  :) seems the same, but not exactly… 

There are a lot of things to consider, not just the native widgets. 
For example: how do you run those widgets? Because you need an event loop… and while linux and windows do not care in which thread you run this, macOS requires you to run it in the main thread. 
This means you need to run the VM using one of two strategies: 

1) using the idle signal of Gtk (in case of gtk, but other frameworks have similar things). This is of course suboptimal and forget about real-time processing. 
2) running the VM in a separated thread. This works as expected (and it also follow apple application design recommendations) but then you need to make sure the communication between the main thread and your vm thread work as expected (and is not so easy)

With Pablo we are working on (2), and I have to say that yes, if you do not manage well things, you will not have more speed “just because” :)

Esteban


ciao

giorgio

I hope to have time to look again at Pharo one of these days. But time is always a scarce resource :)

On Wed, Oct 9, 2019 at 4:17 AM Shaping <[hidden email]> wrote:

Regarding native widget, on the VW side the usage on them brought slowness on the OSX platform. Windows platform is speedy, but OSX platform is slower using native widget than with emulated ones.

So native widget alone are not always a solution. 

 

That’s interesting and unexpected (I don’t use OSX).  I would think that something is wrong with the VW native implementation or interface to it.  VW emulates GUIs well, but I would not expect it to beat native.  

 

Shaping

 

On Mon, Oct 7, 2019 at 2:08 PM Esteban Lorenzano <[hidden email]> wrote:

 



On 7 Oct 2019, at 12:39, Shaping <[hidden email]> wrote:

 

I haven't seen is the instability of the VM you mention, it has worked pretty well for my average use, although the UX is not straightforward.

 

Yes, lots of redirection and extra steps.  Many degrees of freedom.  Seemingly no good default “happy” path to simplify things a little before you start to investigate the variations/choices.

 

> The other thing that keeps me planted firmly in VW is the sheer speed of it.

 

I don't know if there are recent benchmarks, but I've felt Pharo to be really fast compared to VW when it comes to computing.

 

I’ve don’t plenty of informal comparative testing mostly with the GUI.   I’ve used VW continuously for 29 years and Pharo on and off since 2006.  (I’m really trying to port, but I keep failing to do it; getting closer).   VW is still noticeably quicker in GUI responsiveness, in most cases.  One big difference is the Pharo HTTP client, with all those wonderful primitives.  It’s about twice as fast as VW’s.  Bravo.  I meant to tell that to Sven recently, and forgot.

 

> Pharo looks generally much better, but it’s mushy, and that’s a problem.  VW is not.

 

Working regularly with VW or VAST when I go back to Pharo the "mushiness" is significantly noticeable, but if you open a Pharo 3 image (or even Pharo 4) you'll feel it really "snappy", but of course you'll lose all the improvements since then; and that's the current tradeoff.’

 

Yeah, I guess all the new slick GUIs are a bit heavier.  This machine is just okay for speed –2.7 GHz Xeon, but VW feels okay.  Pharo tends to put me slowly to sleep with the tiny but noticeable lags here and there.   I’m very fond of GT.  Beautiful.   Not sure what to do go get the GUI quickness back.  Maybe you  guys are waiting for the new GUI framework(s) to firm up?   I tried Cuis, and was not impressed.  It’s too lean/Spartan and still not very fast (slower in some ways than Pharo).  I like the Pharo creature-comforts (who wouldn’t?).  

 

I never understood the reason for the incremental slowdown, it is even present in "modern" tools such as GTToolkit.

 

Yes, it’s like a creeping disease.  Lol

 

Another thing I miss enough to want to implement (or fake-out somehow) is Alt-tabbing as a way to get around thru your browsers. Usually I have 4 to 6 up at once, if I’m behaving, and as many as 20 if I’m not.   Looking about for the tabs at the bottom to click is not nearly as fun as Alt-Tabbing.  Maybe I could emulate Alt-Tab with Alt-Shift-Tab—a bit of a finger twister, but it might work.

 

> Gestural dynamics are very quick, well under 100 ms latency, often less than 20 ms.

> I’m seeing 100, 150, and 200 ms regularly in Pharo.  It’s too mushy, and that slows the mind.

> Any developer understands this, whether he talks about it or not.

 

This is true, below 20ms is ideal, and top-notch CLI terminals are benchmarking this as a selling point (using stuff like https://github.com/pavelfatin/typometer), Sublime, TextEdit, Notepad++ measure sub 10ms latency.

 

Indeed.

 

My whole nervous system definitely feels this speed effect and starts to thought-glide better below these tiny latencies.  I’m sure many reading this have had similar experiences.  Something similar happens when you are fortunate enough to use a machine with extremely fast striped SSD drives, where you literally don’t wait for anything, except the bloody internet.  This doesn’t just change the speed at which you do the work.  It reorganizes your mind and skills in ways you had not anticipated because you can flow so much more quickly, making connections further forward and backward in your thought stream.  My point is that if the speed and low-latencies are made a priority, we can attract users just on this basis alone.  Even I would be working harder at improving Pharo (and complaining less) if everything were snappy.  I would probably just get on with doing the needed tasks.  Interesting how that works.  Speed:  it changes you.  It changes the whole game.

 

> So I’m wondering when the Pharo GUI will snap as well as VW.

 

Maybe with native widgets there will be a significant speedup, although I don't know whether the lag comes from rendering time or from something else.

 

I would like to know more about the native widgets in Pharo.  Does anyone know when this is likely to happen?

 

I know, since I’m doing it :)

Native widgets (more like “gtk widgets”. This is technically just native under linux, but Gtk3 works very well both in Windows and Mac (you just has to ship it) will be available for development in Pharo 8.

Now, moving the whole Pharo into it will take a bit longer, and we hope to be able to have a “Pharo Gtk experience” for Pharo 9 (lots of tools to migrate to Spec2). 

 

Esteban



 

But VW event model is not better than Pharo's, so it might be something else.

 

I’ve not looked into the details, but I will sometimes just repeatedly click on a method name and watch how long the code pane takes to render in VW and Pharo, and I don’t get what Pharo could be doing to make that time so long.  Both are indexing into the sources file or the changes file to get some text, and then there is the TT-font rendering, which is probably where the CPU cycles are going.  I should look into if further, but I’m sure someone reading this knows enough about the rendering path to say where the bottleneck is.

 

 

Cheers,

 

Shaping

 


Reply | Threaded
Open this post in threaded view
|

Re: Pharo: Git and GUI speed; JS widget reuse in PharoJS

Shaping1
In reply to this post by giorgiof

for what I know  it's the way it's integrated with the underlain OS.  On windows things are much,  much  better.

 

VW emulates GUIs well, but I would not expect it to beat native.   I would restate it as : I would not expect native to be slower that emulated....  :) seems the same, but not exactly... 

 

Indeed.  I don’t follow OSX design, but would not expect such poor native performance from Apple.  I don’t get it.

 

Shaping

 

On Wed, Oct 9, 2019 at 4:17 AM Shaping <[hidden email]> wrote:

Regarding native widget, on the VW side the usage on them brought slowness on the OSX platform. Windows platform is speedy, but OSX platform is slower using native widget than with emulated ones.

So native widget alone are not always a solution. 

 

That’s interesting and unexpected (I don’t use OSX).  I would think that something is wrong with the VW native implementation or interface to it.  VW emulates GUIs well, but I would not expect it to beat native.  

 

Shaping

 

On Mon, Oct 7, 2019 at 2:08 PM Esteban Lorenzano <[hidden email]> wrote:

 

 

On 7 Oct 2019, at 12:39, Shaping <[hidden email]> wrote:

 

I haven't seen is the instability of the VM you mention, it has worked pretty well for my average use, although the UX is not straightforward.

 

Yes, lots of redirection and extra steps.  Many degrees of freedom.  Seemingly no good default “happy” path to simplify things a little before you start to investigate the variations/choices.

 

> The other thing that keeps me planted firmly in VW is the sheer speed of it.

 

I don't know if there are recent benchmarks, but I've felt Pharo to be really fast compared to VW when it comes to computing.

 

I’ve don’t plenty of informal comparative testing mostly with the GUI.   I’ve used VW continuously for 29 years and Pharo on and off since 2006.  (I’m really trying to port, but I keep failing to do it; getting closer).   VW is still noticeably quicker in GUI responsiveness, in most cases.  One big difference is the Pharo HTTP client, with all those wonderful primitives.  It’s about twice as fast as VW’s.  Bravo.  I meant to tell that to Sven recently, and forgot.

 

> Pharo looks generally much better, but it’s mushy, and that’s a problem.  VW is not.

 

Working regularly with VW or VAST when I go back to Pharo the "mushiness" is significantly noticeable, but if you open a Pharo 3 image (or even Pharo 4) you'll feel it really "snappy", but of course you'll lose all the improvements since then; and that's the current tradeoff.’

 

Yeah, I guess all the new slick GUIs are a bit heavier.  This machine is just okay for speed –2.7 GHz Xeon, but VW feels okay.  Pharo tends to put me slowly to sleep with the tiny but noticeable lags here and there.   I’m very fond of GT.  Beautiful.   Not sure what to do go get the GUI quickness back.  Maybe you  guys are waiting for the new GUI framework(s) to firm up?   I tried Cuis, and was not impressed.  It’s too lean/Spartan and still not very fast (slower in some ways than Pharo).  I like the Pharo creature-comforts (who wouldn’t?).  

 

I never understood the reason for the incremental slowdown, it is even present in "modern" tools such as GTToolkit.

 

Yes, it’s like a creeping disease.  Lol

 

Another thing I miss enough to want to implement (or fake-out somehow) is Alt-tabbing as a way to get around thru your browsers. Usually I have 4 to 6 up at once, if I’m behaving, and as many as 20 if I’m not.   Looking about for the tabs at the bottom to click is not nearly as fun as Alt-Tabbing.  Maybe I could emulate Alt-Tab with Alt-Shift-Tab—a bit of a finger twister, but it might work.

 

> Gestural dynamics are very quick, well under 100 ms latency, often less than 20 ms.

> I’m seeing 100, 150, and 200 ms regularly in Pharo.  It’s too mushy, and that slows the mind.

> Any developer understands this, whether he talks about it or not.

 

This is true, below 20ms is ideal, and top-notch CLI terminals are benchmarking this as a selling point (using stuff like https://github.com/pavelfatin/typometer), Sublime, TextEdit, Notepad++ measure sub 10ms latency.

 

Indeed.

 

My whole nervous system definitely feels this speed effect and starts to thought-glide better below these tiny latencies.  I’m sure many reading this have had similar experiences.  Something similar happens when you are fortunate enough to use a machine with extremely fast striped SSD drives, where you literally don’t wait for anything, except the bloody internet.  This doesn’t just change the speed at which you do the work.  It reorganizes your mind and skills in ways you had not anticipated because you can flow so much more quickly, making connections further forward and backward in your thought stream.  My point is that if the speed and low-latencies are made a priority, we can attract users just on this basis alone.  Even I would be working harder at improving Pharo (and complaining less) if everything were snappy.  I would probably just get on with doing the needed tasks.  Interesting how that works.  Speed:  it changes you.  It changes the whole game.

 

> So I’m wondering when the Pharo GUI will snap as well as VW.

 

Maybe with native widgets there will be a significant speedup, although I don't know whether the lag comes from rendering time or from something else.

 

I would like to know more about the native widgets in Pharo.  Does anyone know when this is likely to happen?

 

I know, since I’m doing it :)

Native widgets (more like “gtk widgets”. This is technically just native under linux, but Gtk3 works very well both in Windows and Mac (you just has to ship it) will be available for development in Pharo 8.

Now, moving the whole Pharo into it will take a bit longer, and we hope to be able to have a “Pharo Gtk experience” for Pharo 9 (lots of tools to migrate to Spec2). 

 

Esteban

 

 

But VW event model is not better than Pharo's, so it might be something else.

 

I’ve not looked into the details, but I will sometimes just repeatedly click on a method name and watch how long the code pane takes to render in VW and Pharo, and I don’t get what Pharo could be doing to make that time so long.  Both are indexing into the sources file or the changes file to get some text, and then there is the TT-font rendering, which is probably where the CPU cycles are going.  I should look into if further, but I’m sure someone reading this knows enough about the rendering path to say where the bottleneck is.

 

 

Cheers,

 

Shaping

 

Reply | Threaded
Open this post in threaded view
|

Re: Pharo: Git and GUI speed; JS widget reuse in PharoJS

Shaping1
In reply to this post by EstebanLM

On 9 Oct 2019, at 10:33, giorgio ferraris <[hidden email]> wrote:

 

for what I know  it's the way it's integrated with the underlain OS.  On windows things are much,  much  better.

 

VW emulates GUIs well, but I would not expect it to beat native.   I would restate it as : I would not expect native to be slower that emulated....  :) seems the same, but not exactly… 

 

There are a lot of things to consider, not just the native widgets. 

For example: how do you run those widgets? Because you need an event loop… and while linux and windows do not care in which thread you run this, macOS requires you to run it in the main thread. 

 

Okay.

 

This means you need to run the VM using one of two strategies: 

 

1)      using the idle signal of Gtk (in case of gtk, but other frameworks have similar things). This is of course suboptimal and forget about real-time processing. 

 

 

Yes.

 

2)      running the VM in a separated thread. This works as expected (and it also follow apple application design recommendations) but then you need to make sure the communication between the main thread and your vm thread work as expected (and is not so easy)

 

How efficient is the signaling/queuing between the threads?

 

 

Shaping



 

On Wed, Oct 9, 2019 at 4:17 AM Shaping <[hidden email]> wrote:

Regarding native widget, on the VW side the usage on them brought slowness on the OSX platform. Windows platform is speedy, but OSX platform is slower using native widget than with emulated ones.

So native widget alone are not always a solution. 

 

That’s interesting and unexpected (I don’t use OSX).  I would think that something is wrong with the VW native implementation or interface to it.  VW emulates GUIs well, but I would not expect it to beat native.  

 

Shaping

 

On Mon, Oct 7, 2019 at 2:08 PM Esteban Lorenzano <[hidden email]> wrote:

 

 

On 7 Oct 2019, at 12:39, Shaping <[hidden email]> wrote:

 

I haven't seen is the instability of the VM you mention, it has worked pretty well for my average use, although the UX is not straightforward.

 

Yes, lots of redirection and extra steps.  Many degrees of freedom.  Seemingly no good default “happy” path to simplify things a little before you start to investigate the variations/choices.

 

> The other thing that keeps me planted firmly in VW is the sheer speed of it.

 

I don't know if there are recent benchmarks, but I've felt Pharo to be really fast compared to VW when it comes to computing.

 

I’ve don’t plenty of informal comparative testing mostly with the GUI.   I’ve used VW continuously for 29 years and Pharo on and off since 2006.  (I’m really trying to port, but I keep failing to do it; getting closer).   VW is still noticeably quicker in GUI responsiveness, in most cases.  One big difference is the Pharo HTTP client, with all those wonderful primitives.  It’s about twice as fast as VW’s.  Bravo.  I meant to tell that to Sven recently, and forgot.

 

> Pharo looks generally much better, but it’s mushy, and that’s a problem.  VW is not.

 

Working regularly with VW or VAST when I go back to Pharo the "mushiness" is significantly noticeable, but if you open a Pharo 3 image (or even Pharo 4) you'll feel it really "snappy", but of course you'll lose all the improvements since then; and that's the current tradeoff.’

 

Yeah, I guess all the new slick GUIs are a bit heavier.  This machine is just okay for speed –2.7 GHz Xeon, but VW feels okay.  Pharo tends to put me slowly to sleep with the tiny but noticeable lags here and there.   I’m very fond of GT.  Beautiful.   Not sure what to do go get the GUI quickness back.  Maybe you  guys are waiting for the new GUI framework(s) to firm up?   I tried Cuis, and was not impressed.  It’s too lean/Spartan and still not very fast (slower in some ways than Pharo).  I like the Pharo creature-comforts (who wouldn’t?).  

 

I never understood the reason for the incremental slowdown, it is even present in "modern" tools such as GTToolkit.

 

Yes, it’s like a creeping disease.  Lol

 

Another thing I miss enough to want to implement (or fake-out somehow) is Alt-tabbing as a way to get around thru your browsers. Usually I have 4 to 6 up at once, if I’m behaving, and as many as 20 if I’m not.   Looking about for the tabs at the bottom to click is not nearly as fun as Alt-Tabbing.  Maybe I could emulate Alt-Tab with Alt-Shift-Tab—a bit of a finger twister, but it might work.

 

> Gestural dynamics are very quick, well under 100 ms latency, often less than 20 ms.

> I’m seeing 100, 150, and 200 ms regularly in Pharo.  It’s too mushy, and that slows the mind.

> Any developer understands this, whether he talks about it or not.

 

This is true, below 20ms is ideal, and top-notch CLI terminals are benchmarking this as a selling point (using stuff like https://github.com/pavelfatin/typometer), Sublime, TextEdit, Notepad++ measure sub 10ms latency.

 

Indeed.

 

My whole nervous system definitely feels this speed effect and starts to thought-glide better below these tiny latencies.  I’m sure many reading this have had similar experiences.  Something similar happens when you are fortunate enough to use a machine with extremely fast striped SSD drives, where you literally don’t wait for anything, except the bloody internet.  This doesn’t just change the speed at which you do the work.  It reorganizes your mind and skills in ways you had not anticipated because you can flow so much more quickly, making connections further forward and backward in your thought stream.  My point is that if the speed and low-latencies are made a priority, we can attract users just on this basis alone.  Even I would be working harder at improving Pharo (and complaining less) if everything were snappy.  I would probably just get on with doing the needed tasks.  Interesting how that works.  Speed:  it changes you.  It changes the whole game.

 

> So I’m wondering when the Pharo GUI will snap as well as VW.

 

Maybe with native widgets there will be a significant speedup, although I don't know whether the lag comes from rendering time or from something else.

 

I would like to know more about the native widgets in Pharo.  Does anyone know when this is likely to happen?

 

I know, since I’m doing it :)

Native widgets (more like “gtk widgets”. This is technically just native under linux, but Gtk3 works very well both in Windows and Mac (you just has to ship it) will be available for development in Pharo 8.

Now, moving the whole Pharo into it will take a bit longer, and we hope to be able to have a “Pharo Gtk experience” for Pharo 9 (lots of tools to migrate to Spec2). 

 

Esteban

 

 

But VW event model is not better than Pharo's, so it might be something else.

 

I’ve not looked into the details, but I will sometimes just repeatedly click on a method name and watch how long the code pane takes to render in VW and Pharo, and I don’t get what Pharo could be doing to make that time so long.  Both are indexing into the sources file or the changes file to get some text, and then there is the TT-font rendering, which is probably where the CPU cycles are going.  I should look into if further, but I’m sure someone reading this knows enough about the rendering path to say where the bottleneck is.

 

 

Cheers,

 

Shaping

 

 

Reply | Threaded
Open this post in threaded view
|

Re: Pharo: Git and GUI speed; JS widget reuse in PharoJS

Esteban A. Maringolo
In reply to this post by EstebanLM
On Wed, Oct 9, 2019 at 10:50 AM Esteban Lorenzano <[hidden email]> wrote:

> There are a lot of things to consider, not just the native widgets.

> For example: how do you run those widgets? Because you need an event loop… and while linux and windows do not care in which thread you run this, macOS requires you to run it in the main thread.
> This means you need to run the VM using one of two strategies:
>
> 1) using the idle signal of Gtk (in case of gtk, but other frameworks have similar things). This is of course suboptimal and forget about real-time processing.
> 2) running the VM in a separated thread. This works as expected (and it also follow apple application design recommendations) but then you need to make sure the communication between the main thread and your vm thread work as expected (and is not so easy)
>
> With Pablo we are working on (2), and I have to say that yes, if you do not manage well things, you will not have more speed “just because” :)

This is great. Android does the same thing as MacOS, and it is even
enforced by the OS, it will mark any app as unresponsive if it blocks
the UI thread.
You can fork Threads that communicate with the UI thread by means of a
"Handler" [1], to map this using a dynamic language is simpler, but
you'd need an event loop in the UI first (I don't know whether we have
this in Pharo).

Regards,

[1] https://developer.android.com/training/multiple-threads/communicate-ui

Esteban A. Maringolo

12