Newspeak on GDI+ vs JS/HTML; asm.js as a target?

80 views
Skip to first unread message

sha...@uurda.org

unread,
Apr 4, 2015, 6:51:18 AM4/4/15
to newspeak...@googlegroups.com

 

  How are you rendering text and subwindows in the client area?  Is this JS and HTML?

 

No - except for when we deploy to JS, where we use Hopscotch directly on top of HTML.

 

So there is a way to use JS and HTML.  When does this typically happen?  When do we use GDI+ versus JS with HTML?   I’m studying various JS/WebGL/HTML stacks now.

 

I’m also intrigued by asm.js, which provided amazing efficiency with very little disruption in workflow and no compatibility problems with JS engines going forward.  Why don’t we just target that?  I’m thinking that Newspeak ought to be implemented as Amber is.   Any thoughts on this?




This email has been checked for viruses by Avast antivirus software.
www.avast.com


Gilad Bracha

unread,
Apr 4, 2015, 11:17:44 AM4/4/15
to newspeak...@googlegroups.com
On Sat, Apr 4, 2015 at 3:51 AM <sha...@uurda.org> wrote:

 

  How are you rendering text and subwindows in the client area?  Is this JS and HTML?

 

No - except for when we deploy to JS, where we use Hopscotch directly on top of HTML.

 

So there is a way to use JS and HTML.  When does this typically happen?  When do we use GDI+ versus JS with HTML?   I’m studying various JS/WebGL/HTML stacks now.

Short answer:
We use GDI+ on Windows, Morphic on mac and Linux, and HTML when deploying to the web.

Long answer:

The GUI framework we use is Hopscotch. Hopscotch can be implemented in various ways.

There are several implementations of Newspeak, in varying states of completeness, and the details of the GUI vary among them.

(1) Full Newspeak runs on nsvm, a modified Cog VM. This is what you are using. It runs the full IDE in an image derived from Squeak 4.3.  The GUI uses the full version of Hopscotch, defined in class HopscotchFramework. Hopscotch in turn runs on top of Brazil, as I mentioned in an earlier message. Brazil has a portable layer and a binding layer. The latter can be implemented on top of many different GUI substrates.   In practice, there are two binding of Brazil in existence:

a. BrazilMappingForWin32. This is a Newspeak class I've mentioned before. It talks to GDI+ and is what you see on Windows.

b. BrazilForMorphic. This is Smalltalk code in a Monticello package. We rely on it for mac and Linux, but it also works on Windows. Since it is inherently bound up with Smalltalk, we never converted it to Newspeak. I have long dreamed of getting rid of it and replacing it with mappings to native stuff on other platforms. People have taken stabs at that for both mac and Linux, but nothing real has come of it. If you really want to use a Squeak browser, you can use it to look at this stuff and get an idea of how the mapping works.

You can switch dynamically between these two on Windows, which is pretty neat. See http://blog.3plus4.org/2008/11/04/a-true-pluggable-look-and-feel/

(2) A large subset of the system runs on the web. When you package an application, you have the option of deploying it to the web. This compiles your code into Javascript.  The web version of the platform includes HopscotchFromHTML5 which is a partial implementation of Hopscotch that runs on top of HTML. You can check out the demos of this at http://www.newspeaklanguage.org/demos. The most comprehensive is MiniBrowser, which is a subset of the IDE running in the browser.

The web version lacks support for changing code on the fly and debugging and lacks some pretty important GUI stuff (like menus). We have pretty definite ideas on how one might do these things.  We haven't had the the bandwidth to invest in them so far.
 
You might want to look at some of the information at newspeaklanguage.org.  There are several talks and articles about Hopscotch.

 

I’m also intrigued by asm.js, which provided amazing efficiency with very little disruption in workflow and no compatibility problems with JS engines going forward.  Why don’t we just target that? 

asm.js is designed to support C compilation and leaves you with no real GC support. So it isn't well suited as a target for higher level languages.
You effectively have to write your own garbage collector. 

 

I’m thinking that Newspeak ought to be implemented as Amber is.  

See Newspeak2V8Compilation. 

Any thoughts on this?

Time and money

sha...@uurda.org

unread,
Apr 5, 2015, 3:02:50 AM4/5/15
to newspeak...@googlegroups.com

Long answer:

 

The GUI framework we use is Hopscotch. Hopscotch can be implemented in various ways.

 

There are several implementations of Newspeak, in varying states of completeness, and the details of the GUI vary among them.

 

(1) Full Newspeak runs on nsvm, a modified Cog VM. This is what you are using.

 

…And Eliot is planning an even a faster version of Cog soon?  Is there a tentative date?

 

It runs the full IDE in an image derived from Squeak 4.3.

 

Okay.  Would a better choice have been Pharo, which I thought was faster, more stable, less research-y, less weird, and less awkward?  I don’t really know anymore.  I have not used Squeak steadily for many years.  It may not be an issue now, if you are trying to get off Squeak soon.

 

The GUI uses the full version of Hopscotch, defined in class HopscotchFramework. Hopscotch in turn runs on top of Brazil, as I mentioned in an earlier message. Brazil has a portable layer and a binding layer. The latter can be implemented on top of many different GUI substrates.   In practice, there are two binding of Brazil in existence:

 

a. BrazilMappingForWin32. This is a Newspeak class I've mentioned before. It talks to GDI+ and is what you see on Windows.

 

b. BrazilForMorphic. This is Smalltalk code in a Monticello package. We rely on it for mac and Linux, but it also works on Windows. Since it is inherently bound up with Smalltalk, we never converted it to Newspeak. I have long dreamed of getting rid of it and replacing it with mappings to native stuff on other platforms. People have taken stabs at that for both mac and Linux, but nothing real has come of it. If you really want to use a Squeak browser, you can use it to look at this stuff and get an idea of how the mapping works.

 

You can switch dynamically between these two on Windows, which is pretty neat. See http://blog.3plus4.org/2008/11/04/a-true-pluggable-look-and-feel/

 

Yes, very neat.

 

(2) A large subset of the system runs on the web. When you package an application, you have the option of deploying it to the web. This compiles your code into Javascript.  The web version of the platform includes HopscotchFromHTML5 which is a partial implementation of Hopscotch that runs on top of HTML. You can check out the demos of this at http://www.newspeaklanguage.org/demos. The most comprehensive is MiniBrowser, which is a subset of the IDE running in the browser.

 

The web version lacks support for changing code on the fly and debugging and lacks some pretty important GUI stuff (like menus). We have pretty definite ideas on how one might do these things.  We haven't had the the bandwidth to invest in them so far.

 

You might want to look at some of the information at newspeaklanguage.org.  There are several talks and articles about Hopscotch.

 

Yes.  Thanks for this clarification and pointers to demos.  I am sometimes concerned about reading the material at newspeaklanguage.org because I don’t know what’s current.  I am concerned that I am studying old schemes/frameworks that no longer exist or that have been changed a lot in the current image.  

 

I’m also intrigued by asm.js, which provides amazing efficiency with very little disruption in workflow and no compatibility problems with JS engines going forward.  Why don’t we just target that? 

asm.js is designed to support C compilation and leaves you with no real GC support. So it isn't well suited as a target for higher level languages.

You effectively have to write your own garbage collector. 

 

 

GC for asm.js is planned (see the blue below):

 

http://asmjs.org/faq.html

 

Q. Can asm.js serve as a VM for managed languages, like the JVM or CLR?

A. Right now, asm.js has no direct access to garbage-collected data; an asm.js program can only interact indirectly with external data via numeric handles. In future versions we intend to introduce garbage collection and structured data based on the ES6 structured binary data API, which will make asm.js an even better target for managed languages.

 

ES6 is due I think in July.  You might want to chat with the asm.js people.  This looks like a good path forward.

 

I’m thinking that Newspeak ought to be implemented as Amber is.  

See Newspeak2V8Compilation. 

Any thoughts on this?

Time and money

 

Of course.  I sense the frustration with the slow progress.

 

I don’t understand why this language and environ is not getting more attention.  This is my 3rd or 4th approach in about five years.  Every time, I become frustrated and disgusted with the GUI, and go away, always back to old reliable—VW, which pisses me off the least of the all the Smalltalks, which statement is actually a fine compliment.  J 

 

I need to focus on fonts, formatting, and pane re-organization/browsing strategy, first, so that I can study code, unencumbered, without any cursing—so that I don’t disconnect again.  The UX is always my bottleneck.  If that makes me happy, I can tolerate a great deal of crappy, nascent framework.  Otherwise, no;  I’m out of there.  I think that’s a really powerful concept for seducing programmers to help you fix and improve your new programming language/environment.

 

I wonder exactly what other Smalltalkers (or even non-Smalltalkers) who have their first or nth look at Newspeak are thinking when they say something like:  no, this is not for me; this is too green (still) or too different or too flickery (my main complaint).  I seek specific criticisms from others and proposed solutions.  I already have list of tasks to do based on what I value in a Smalltalk-like UX.  But this may not overlap much with what bothers others.  So the question remains:  Why aren’t people using this tool and complaining constructively about what they don’t like.  I have similar questions about Amber, which I thought would be further along, too.

 

Has anyone done production work yet with Newspeak?

 

I think the GUI rendering speed may be a problem for many.  I saw some slow-ish draws in the client area, as I was browsing and working through the JS examples.   In the browser I saw flickering, as a white background was painted, and then a gray background, and then some text on the gray background (I think it was a class comment).  That doesn’t make people happy.  It flickers and it’s slow.  The particle demo looked really good, though.   So GUI rendering speed would be the fourth thing in my list of things to improve.

 

So not many people are using Newspeak, yet not many are complaining constructively about exactly what they don’t like and need to see before they commit more resources to it?  Is that what is happening?  There are still some thresholds to get over.  The big for me is the GUI.  The language and its syntax are more approachable.

 

I’m looking at Amber, too, which already has the classic browser.   Ultimately, I want very performant native graphical facilities with an option for JS output in VW, Amber, and Newspeak.  I need to study the Newspeak language again.  I forgot a lot of things.  I know that I don’t like the format of most of the Newspeak code I’m reading, but that is not so difficult to fix with a formatter.  Has anyone tried porting and adapting the RBFormatter from VW?  Is there perhaps a residue of such work I can study?

 

I’ll dig into Newspeak2V8Compilation, as time permits.  JavaScript is an awkward language, but it’s powerful and here to stay.  I hope ES6 doesn’t screw it up too much more, before some kind of systematic simplification (shrink and deprecate) begins, going forward to ES7 and beyond.

 


This email has been checked for viruses by Avast antivirus software.
www.avast.com

 

Gilad Bracha

unread,
Apr 5, 2015, 7:27:55 AM4/5/15
to newspeak...@googlegroups.com
On Sun, Apr 5, 2015 at 12:02 AM <sha...@uurda.org> wrote:

(1) Full Newspeak runs on nsvm, a modified Cog VM. This is what you are using.

 

…And Eliot is planning an even a faster version of Cog soon?  Is there a tentative date?

No idea.  Speed is the least of my concerns. The system performs well enough for most applications. 

 

It runs the full IDE in an image derived from Squeak 4.3.

 

Okay.  Would a better choice have been Pharo, which I thought was faster, more stable, less research-y, less weird, and less awkward?  I don’t really know anymore.  I have not used Squeak steadily for many years.  It may not be an issue now, if you are trying to get off Squeak soon.

Are you asking if it would be a better choice for us to use Pharo? We started this project long before Pharo existed.   Pharo is an attempt to address some of the weaknesses of Squeak. As far as I am concerned, it is too little too late. Newspeak is designed to address issues at a fundamental level: security, modularity, interoperability. 

GC for asm.js is planned (see the blue below): 

ES6 is due I think in July.  You might want to chat with the asm.js people.  This looks like a good path forward.


ES6 has been planned for years.  I won't hold my breath. As for asm.js, maybe someday it will be feasible to do a complete VM with it. There are many issues even then: resources to do the work and size of deployment come to mind. 

I don’t understand why this language and environ is not getting more attention. 

My guess is that we over-innovated. we tried to avoid that, but being innovators at heart, we changed more things than most people can easily adapt to. I think your own comments bear that out. 

I need to focus on fonts, formatting, and pane re-organization/browsing strategy, first, so that I can study code, unencumbered, without any cursing—so that I don’t disconnect again.  The UX is always my bottleneck.  If that makes me happy, I can tolerate a great deal of crappy, nascent framework.  Otherwise, no;  I’m out of there.  I think that’s a really powerful concept for seducing programmers to help you fix and improve your new programming language/environment.


I would welcome contributions that make things more stable, fix bugs, make it easy to change fonts etc.

However, I must say that we like our environment. There are many details that need improvement, but I am quite happy with the fundamentals. If anything, I want to make it more different. See for example
https://www.youtube.com/watch?v=74WqdS_58uY&feature=youtu.be

That said, you should do what works for you. While I have no real interest in a traditional Smalltalk browser, if you can create something that fits in with Hopscotch (so that it is non-modal, has history and integrates with the rest of the environment) it might be a useful option for some people.
The downside is having more code in the system, which needs to be maintained, takes up space etc. So it needs to be separable. 

 

I wonder exactly what other Smalltalkers (or even non-Smalltalkers) who have their first or nth look at Newspeak are thinking when they say something like:  no, this is not for me; this is too green (still) or too different or too flickery (my main complaint).  I seek specific criticisms from others and proposed solutions.  I already have list of tasks to do based on what I value in a Smalltalk-like UX.  But this may not overlap much with what bothers others.  So the question remains:  Why aren’t people using this tool and complaining constructively about what they don’t like. 


I think you should ask that question on the Smalltalk forums - I'm not sure the audience you want to address is here.

My take is that people yearn for the familiar. 

The same phenomenon applies to Smalltalk itself. While you might argue that Smalltalkers are put off by our different take on things, the rest of the world ignores Smalltalk for similar reasons. 

My day job involves bringing innovations into the mainstream in bite size portions that are digestible for most programmers. Every step forward encounters immense resistance, backed up by endless rationalizations.

Newspeak, in contrast, is where we do things right, without trying to be popular. If there are issues that we agree need improvement, we would like to address them - and there are many of these. On the other hand, if we don't believe in something, we won't deal with it just to be popular.

 

Has anyone done production work yet with Newspeak?


Yes, Newspeak wa sborn in production, at Cadence. They still use it. 

 

I think the GUI rendering speed may be a problem for many.  I saw some slow-ish draws in the client area, as I was browsing and working through the JS examples.   In the browser I saw flickering, as a white background was painted, and then a gray background, and then some text on the gray background (I think it was a class comment).  That doesn’t make people happy.  It flickers and it’s slow.  The particle demo looked really good, though.   So GUI rendering speed would be the fourth thing in my list of things to improve.


Knock yourself out. The web implementation needs a lot more work: mirror builders, debugging, a text model. But simple things like menus and radio buttons would be a useful start. 
 

 

So not many people are using Newspeak, yet not many are complaining constructively about exactly what they don’t like and need to see before they commit more resources to it?  Is that what is happening?  There are still some thresholds to get over.  The big for me is the GUI.  The language and its syntax are more approachable.

 

I’m looking at Amber, too, which already has the classic browser.   Ultimately, I want very performant native graphical facilities with an option for JS output in VW, Amber, and Newspeak.  I need to study the Newspeak language again.  I forgot a lot of things.  I know that I don’t like the format of most of the Newspeak code I’m reading, but that is not so difficult to fix with a formatter.  Has anyone tried porting and adapting the RBFormatter from VW?  Is there perhaps a residue of such work I can study?

Not that I know of. Writing a pretty printer is a good place to make a contribution. Porting Smalltalk code to Newspeak isn't very hard either. It's a good exercise to get familiar with things.  

I think your difficulty is that you don't like the IDE. Writing an altenate class browser is a rather ambitious task. I'd learn to use the system as it is and make some small stuff before taking on such a thing.


sha...@uurda.org

unread,
Apr 5, 2015, 8:55:54 AM4/5/15
to newspeak...@googlegroups.com

No idea.  Speed is the least of my concerns. The system performs well enough for most applications. 

 

Why is the rendering a little sluggish?  It does not feel as fast as native, say, like VW’s RB, which has its own flicker problems, too, at least in the version I’m running.

 

I was hovering around in the Ns browser and noticed that there is a white background being draw every time a text item is redrawn with an underline style.  That’s why everything is always flashing a little bit of white on almost every mouse move on every item.  This seems easy to fix and would make the UI look more solid and respectable.  If I knew the GUI well, that would be the first thing I would fix.

 

Are you asking if it would be a better choice for us to use Pharo?

 

Yes, it probably does not matter much now.

I don’t understand why this language and environ is not getting more attention. 

I would welcome contributions that make things more stable, fix bugs, make it easy to change fonts etc.

 

Agreed.  I will focus on that and my personal navigation problems.


However, I must say that we like our environment.

 

I could like.  Not enough people like it, in general.  We would have more regulars if this were so.  But I’m not seeing much action.   Something is wrong.  I haven’t followed the forum enough to know the general drift of the comments from newbies.  I’m not sure Ns is being tried much.  Perhaps it is not making a good enough first impression to warrant a comment in the forum.

 

There are many details that need improvement, but I am quite happy with the fundamentals. If anything, I want to make it more different. See for example
https://www.youtube.com/watch?v=74WqdS_58uY&feature=youtu.be

 

Yes, that is very cool.  You’ve destroyed the mode-change between editing and debugging.  I don’t see a problem with that feature.  I’d have to play with the GUI a little to be sure it was the best it could be—but I really like it so far.  Do I need a special build for that feature?  Is it in the current release?

 

That said, you should do what works for you. While I have no real interest in a traditional Smalltalk browser, if you can create something that fits in with Hopscotch (so that it is non-modal, has history and integrates with the rest of the environment) it might be a useful option for some people.

The downside is having more code in the system, which needs to be maintained, takes up space etc. So it needs to be separable. 

 

Agreed.

 

My take is that people yearn for the familiar. 

 

Agreed, but they seize the new and novel when it is graceful, utilitarian, and well-presented.   We are not there yet.   I don’t have a clear enough view of the syntactical constraints of the language yet to judge accurately how a GUI must be structured to get the best code navigation, least eyestrain, and best use of short-term memory from Ns.   Is http://bracha.org/newspeak-101.pdf the most up to date doc on Ns?  It’s from late 2014, which is amazingly recent. 

 

The same phenomenon applies to Smalltalk itself. While you might argue that Smalltalkers are put off by our different take on things, the rest of the world ignores Smalltalk for similar reasons. 

 

Agreed.  But I still maintain less eye- and mouse movement is better if you can keep the information flow (what you are reading and understanding about classes and methods) just as relevant and timely.  I don’t want more of both of those in a new environ.  

 

My day job involves bringing innovations into the mainstream in bite size portions that are digestible for most programmers. Every step forward encounters immense resistance, backed up by endless rationalizations.

 

Almost everyone is an old dog.  I tend to reach for the new thing even when it is not quite practical.  That’s why I keep coming back to Ns.  But I don’t like the Ns UX yet, and I need to do some reading and actual work with it to find out exactly what the problem is.  I think I know, but I’m not sure I can fix it based on the current scoping abilities of the language.

 

Newspeak, in contrast, is where we do things right, without trying to be popular. If there are issues that we agree need improvement, we would like to address them - and there are many of these. On the other hand, if we don't believe in something, we won't deal with it just to be popular.

 

When evaluating features and changes, like the ocular-efficiency-centric navigation strategy I was discussing early, one really needs to lay out one’s values first, so that the observations, logic, and conclusions can be understood.  That is why I explained what I like and why.  For me, the programming UX comes down to reducing eye strain and mental/visual distractions, and not creating too much new complexity in visual space in terms of new windows in new positions with new content, favoring, instead, the same old windows in the same old places (a geometric template for knowing where to look for what info) with the new content.   Somethings about the human visual system are universal, but when you create an impedance mismatch in the use of that system, reducing its efficiency, you may or may not bother most of the programmers.  I just happened to be bothered by such inefficiencies because they hurt my eyes and my progress, and I’ve been studying these issues in myself for decades.  On the other hand, some people can be experiencing an irritation or suboptimal arrangement in their development dynamic, and not even be aware of it….until you show them the new thing.   Then they realize what they have been missing.   A specific example of this, I think, is your side-by-side, modeless (or bimodal) editing and debugging in the activation frame, in the link above.   I like it.  But I did not have the same good reaction to Hopscotch’s modeless, many new, modeless, flickery windows everywhere.  I think I just like thinking with a stack of dependent ideas and tasks, because that greatly helps my mind to keep a stable view of the bigger algorithm/task I’m working on and how I’m progressing.   I lose my sense of stack as I wander around the Hopscotch windows, even though I have modeless freedom.   So these are the two phenomena I’m now studying, to see which I value more.  I’m leaning toward the more constrained stacked-based problem-solving and UX.  We’ll see.   

I’m looking at Amber, too, which already has the classic browser.   Ultimately, I want very performant native graphical facilities with an option for JS output in VW, Amber, and Newspeak.  I need to study the Newspeak language again.  I forgot a lot of things.  I know that I don’t like the format of most of the Newspeak code I’m reading, but that is not so difficult to fix with a formatter.  Has anyone tried porting and adapting the RBFormatter from VW?  Is there perhaps a residue of such work I can study?

 

I think your difficulty is that you don't like the IDE.

 

Yup, that is my main snag.  The other things, like font style and size are easy to fix.

 

Writing an altenate class browser is a rather ambitious task.

 

Yes, that is how it looks.

 

I'd learn to use the system as it is and make some small stuff before taking on such a thing.

 

Agreed.

 

Gilad Bracha

unread,
Apr 5, 2015, 1:22:26 PM4/5/15
to newspeak...@googlegroups.com
On Sun, Apr 5, 2015 at 5:55 AM <sha...@uurda.org> wrote:

Why is the rendering a little sluggish?  It does not feel as fast as native, say, like VW’s RB, which has its own flicker problems, too, at least in the version I’m running.


I don't know, but the native binding is tricky and so Windows has more issues than Morphic in this respect.  To be honest, we have very few Windows users and so that part has been ignored for a long time.

<snip>

 

If I knew the GUI well, that would be the first thing I would fix.


Please do; I'd be surprised if anyone else will.
 

Agreed.  I will focus on that and my personal navigation problems.

Great. 



However, I must say that we like our environment.

 

I could like.  Not enough people like it, in general. 

True. Whether that is because of the visual issues that you are focused on , or because of umpteen other concerns I could name, I cannot say. 


Yes, that is very cool.  You’ve destroyed the mode-change between editing and debugging.  I don’t see a problem with that feature.  I’d have to play with the GUI a little to be sure it was the best it could be—but I really like it so far.  Do I need a special build for that feature?  Is it in the current release?


It is in the release, but very flakey, so it is turned off. It needs a bunch of work. And not everyone likes it either.  To activate it, go to the home screen and click on "Under the Hood" . That will show you a page that contains a "settings"  option. Expand it and you'll see "useExemplarPresenters" set to false. Expand it and set it to true. If you have any open class presenters, you'll need to refresh them. 

   Is http://bracha.org/newspeak-101.pdf the most up to date doc on Ns?  It’s from late 2014, which is amazingly recent. 


Yes, we have tried to keep it up to date.  The next major update will focus on support for access control. This is already working in the web version, and we have a version of the VM under development  that enforces it as well.  At some point, we'll throw the switch and enforce the semantics.  This will make Newspeak even more different than Smalltalk. It is the basis for security and true modularity.

For a deeper understanding, read the ECOOP paper (listed under docs).

Vassili Bykov

unread,
Apr 5, 2015, 4:43:07 PM4/5/15
to newspeak...@googlegroups.com
On Sun, Apr 5, 2015 at 10:22 AM, Gilad Bracha <gbr...@gmail.com> wrote:

On Sun, Apr 5, 2015 at 5:55 AM <sha...@uurda.org> wrote:

Why is the rendering a little sluggish?  It does not feel as fast as native, say, like VW’s RB, which has its own flicker problems, too, at least in the version I’m running.


I don't know, but the native binding is tricky and so Windows has more issues than Morphic in this respect.  To be honest, we have very few Windows users and so that part has been ignored for a long time.

I'm very surprised to hear about flickering. The Win32 mapping was very deliberately built not to do that. But then, just a couple of days I heard from Bob that live switching between Morphic and Win32 was broken too. Obviously things are not what they used to be in the more well-tended days. However, if learning and implementation contributions from the community will be any match to the grandiloquent critical hypothetizations offered so far, I'm sure these issues are short-lived.

sha...@uurda.org

unread,
Apr 5, 2015, 7:24:46 PM4/5/15
to newspeak...@googlegroups.com

I'm very surprised to hear about flickering. The Win32 mapping was very deliberately built not to do that.

 

In general, for every mouse over onto a word (a browser link for a class or method), you are drawing a white background, and then redrawing the foreground text with an underline.  I cannot be the only one seeing this, unless I am the only remaining Windows user.  I’m running Windows 7 64-bit.

 

But then, just a couple of days I heard from Bob that live switching between Morphic and Win32 was broken too. Obviously things are not what they used to be in the more well-tended days. However, if learning and implementation contributions from the community will be any match to the grandiloquent critical hypothetizations offered so far, I'm sure these issues are short-lived.

 

I’m concerned that no one else has seen it.  It’s the most obvious visual problem.   I think I’m the only Windows user.  Are most users Mac or Linux?

 

Are there other references for Newspeak besides http://bracha.org/newspeak-101.pdf.  Is this document enough to get up to date on the language and what’s in the image?

Gilad Bracha

unread,
Apr 5, 2015, 7:45:00 PM4/5/15
to newspeak...@googlegroups.com
On Sun, Apr 5, 2015 at 4:24 PM <sha...@uurda.org> wrote:

I'm very surprised to hear about flickering. The Win32 mapping was very deliberately built not to do that.

 

In general, for every mouse over onto a word (a browser link for a class or method), you are drawing a white background, and then redrawing the foreground text with an underline.  I cannot be the only one seeing this, unless I am the only remaining Windows user.  


Every now and then someone uses Windows and brings up issues. But yes, there are probably no regular windows users.  I try and test occasionally to make sure all is well, but have been negligent recently.

 Are most users Mac or Linux?


Mac.  


Are there other references for Newspeak besides http://bracha.org/newspeak-101.pdf

As I mentioned in the other thread, there is a lot of material on newspeaklanguage.org. While the odd detail may be out of date, most things still hold.  

 

Is this document enough to get up to date on the language and what’s in the image?


No, it's an introduction. It should be enough to get you using the system and exploring - especially as you are an experienced Smalltalker.  Together with the other materials, you should be able to manage pretty much anything except real VM work.

Bob Westergaard

unread,
Apr 5, 2015, 9:28:58 PM4/5/15
to newspeak...@googlegroups.com
On Sun, Apr 5, 2015 at 1:42 PM, Vassili Bykov <vassil...@gmail.com> wrote:
> heard from Bob that live switching between Morphic and Win32 was broken too

To be completely honest, the thing that was broken was me. I was
looking at the wrong class to try to toggle between native windows and
Morphic. Once I found the right class, it worked.

FWIW, when I played around on Windows, flickering wasn't something
that I noticed.

-- Bob

Gilad Bracha

unread,
Apr 5, 2015, 9:53:40 PM4/5/15
to newspeak...@googlegroups.com
I just tried this with the latest VM and boot image. The native/morphic transition works just fine.  I ran this on Windows 8.1 on VMWare. I looked pretty hard for flicker. There are some situations that cause flicker, when resizing windows or scrolling the experimental exemplar presenters. Normal IDE usage works fine though.  

So I think there is a bit of an issue, though not as dramatic as one might fear. Perhaps it varies on different machines/versions. Anyway, I doubt if it's new. If anyone can figure out what causes it and fix it, that would be nice. On the other hand, the native Windows UI hasn't been a priority in a long time.

Shaping: If it is a big deal, you can always switch to Morphic, which does not have this issue, figure out what the problem is and fix it. I'm not sure we have the cycles to deal with it.

sha...@uurda.org

unread,
Apr 5, 2015, 11:03:08 PM4/5/15
to newspeak...@googlegroups.com

I just tried this with the latest VM and boot image. The native/morphic transition works just fine.  I ran this on Windows 8.1 on VMWare. I looked pretty hard for flicker. There are some situations that cause flicker, when resizing windows or scrolling the experimental exemplar presenters. Normal IDE usage works fine though.  

 

The flicker is fast.  The white period is sub-20th of a second.  It makes everything a little jumpy, because you can see the brief periods of all-white background on every scale of drawing, large and small, not just during Window resizes.  I’m not sure how my VM would be different from yours.  I downloaded just a few days ago.

 

So I think there is a bit of an issue, though not as dramatic as one might fear. Perhaps it varies on different machines/versions. Anyway, I doubt if it's new. If anyone can figure out what causes it and fix it, that would be nice. On the other hand, the native Windows UI hasn't been a priority in a long time.

 

Shaping: If it is a big deal,

 

Yes, it’s too hard to watch even for a few mintues.

 

you can always switch to Morphic, which does not have this issue, figure out what the problem is and fix it. I'm not sure we have the cycles to deal with it.

 

I can edit and run Ns code from a Squeak Smalltalk browser?

 

 

On Sun, Apr 5, 2015 at 6:29 PM Bob Westergaard <bweste...@gmail.com> wrote:

On Sun, Apr 5, 2015 at 1:42 PM, Vassili Bykov <vassil...@gmail.com> wrote:
> heard from Bob that live switching between Morphic and Win32 was broken too

To be completely honest, the thing that was broken was me.  I was
looking at the wrong class to try to toggle between native windows and
Morphic.  Once I found the right class, it worked.

FWIW, when I played around on Windows, flickering wasn't something
that I noticed.

-- Bob

sha...@uurda.org

unread,
Apr 5, 2015, 11:03:09 PM4/5/15
to newspeak...@googlegroups.com
Seems that there ought to be a check for a damaged rectangle before deciding to redraw the background; otherwise, just redraw the text with the new style.


---
This email has been checked for viruses by Avast antivirus software.
http://www.avast.com

Gilad Bracha

unread,
Apr 5, 2015, 11:24:28 PM4/5/15
to newspeak...@googlegroups.com
On Sun, Apr 5, 2015 at 8:03 PM <sha...@uurda.org> wrote:

I can edit and run Ns code from a Squeak Smalltalk browser?


No but you can run the Newspeak browser in the console window, displayed by Morphic, rather than as a native window.  Choose "Go Morphic". It's in the tutorial. 

Gilad Bracha

unread,
Apr 5, 2015, 11:38:53 PM4/5/15
to newspeak...@googlegroups.com
On Sun, Apr 5, 2015 at 8:03 PM <sha...@uurda.org> wrote:

Seems that there ought to be a check for a damaged rectangle before deciding to redraw the background; otherwise, just redraw the text with the new style.


Don't be patronizing.  

If there's anything you think can be improved, fix it.  If you can't figure out how to fix it, stop criticizing.  All the necessary information is at your fingertips. 

This system was designed and built by some of the best professionals anywhere. Before you second guess them, put in some real effort to learn about the system on your own. 





sha...@uurda.org

unread,
Apr 6, 2015, 5:57:37 AM4/6/15
to newspeak...@googlegroups.com


Seems that there ought to be a check for a damaged rectangle before deciding to redraw the background; otherwise, just redraw the text with the new style.

 

Don't be patronizing.  

 

The above statement is not patronizing.  It is an honest attempt to help.  I don’t see what else would need to be done, which is why the bug is puzzling.  There must have been a rough implantation of the Windows version, and then maybe the rendering algo was just not finished, because most of the users are Mac users. 

 

If there's anything you think can be improved, fix it.

 

Can’t right now.  Looking for work these days.  But I’ll get to as soon as I can.  I’m focusing on figuring out what I need to read.  I really shouldn’t  be doing any of this, but there is some attractive about Newspeak.  I keep coming back to it.

 

If you can't figure out how to fix it, stop criticizing.  All the necessary information is at your fingertips. 

 

Haven’t looked at any code yet.  I’ll get to it as soon as I can.

 

This system was designed and built by some of the best professionals anywhere. Before you second guess them, put in some real effort to learn about the system on your own. 

 

I was merely describing how the update logic appeared to be working.  When I have more time in the future I will dig into it.  I gave the insight because I figured someone who is much more fluent already with the Windows Newspeak graphics would have an “ah-ah” moment, realize where the problem is, and just jump in there and fix it.  Follow?  I’m just trying to catalyze what looks like an easy bug fix.  It may not be, but it looks simple on the surface.  You guys are much closer to fixing it than I.   I should be able to get to some actual coding in a month or so. 

 

 

 

 




This email has been checked for viruses by Avast antivirus software.

Reply all
Reply to author
Forward
0 new messages