Jecel wrote:
I would expect better performance from Self on Smalltalk (which has been done about three times already...)
I recently implemented Morphic (well not exactly, but something very very similar) in Java. I had to use a lot of dirty tricks to get the required performance, although I must admit that with Hotspot (how ironic, that so many ideas came from Self, and yet Self was displaced by Java) on NT it really flies. I would have grave misgivings about implementing Self on Java. BTW, when you say implementing Self on Java, do you mean Self in Java or Self on top of a Java VM ?
Vincent
Vincent wrote:
I recently implemented Morphic (well not exactly, but something very very similar) in Java. I had to use a lot of dirty tricks to get the required performance, although I must admit that with Hotspot (how ironic, that so many ideas came from Self, and yet Self was displaced by Java) on NT it really flies. I would have grave misgivings about implementing Self on Java. BTW, when you say implementing Self on Java, do you mean Self in Java or Self on top of a Java VM ?
I could be wrong, but I think that the current version of JSelf is an interpreter written in Java but that there were plans for a future version that would compile Self to the Java VM bytecodes.
-- Jecel
Vincent wrote:
I recently implemented Morphic (well not exactly, but something very very similar) in Java.
That reminds me of something else. I need a way to access Kansas (the Self GUI) from across the network. This is not possible for the Mac version, but I will be using Sparc so simply installing an X Window server on the client machine (confused yet?) would seem to solve my problem. Except this network goes through a 33kbps modem so it would be too slow for practical use.
Since VNC (http://www.uk.research.att.com/vnc/) is often mentioned as a lightweight alternative to X, I was considering implementing a vncWindow object. This would allow Kansas to be multiuser on the Mac as well, which is a good thing. This problem is that VNC seems to be optimized for high speed networks (it transfers compressed bitmaps) and not modems.
An alternative would be to create a remoteCanvas object that would talk to a counterpart written in Java (which is where Morphic in Java comes in) and running on the client. It should transfer less bytes (send the info that we drew a green circle, and not all the bits of the circle) but I am afraid that I am just creating X all over again.
Does anyone have any experience with these things? -- Jecel
good thing. This problem is that VNC seems to be optimized for high speed networks (it transfers compressed bitmaps) and not modems.
You should have about 1MBit/s, right. It works over ISDN (64Kbit/s even better with doubling lines to 128Kbit/s) if your're patient. Implementing a VNC client doesn't look very difficult. I'm right now trying this for Squeak (www.squeak.org) after I downloaded the protocol specification.
I don't know about a server but they say the server has to do all the work.
An alternative would be to create a remoteCanvas object that would talk to a counterpart written in Java (which is where Morphic in Java comes in) and running on the client.
If you think about a light weight X-like protocol here and don't want to transport large bitmap graphics or movies, this is the better approach. Or you may want to check out wiredX (www.jcraft.com I think) which is an X-server written in 100% Java.
As I said I wrote a simple morphic-like framework in Java in another email here. I did this to implemented a remote accessible Kansas like environment in Java. It was just a proof of principle and the project was sort-of canceled unless I find some better ways of synchronizing multiple images but for this I implemented a RemoteCanvas which was connected via TCP/IP to a GraphicsCanvas which did all the drawings on the client.
Does anyone have any experience with these things?
I'd be glad to discuss this further, yes.
bye -- Stefan Matthias Aust // Bevor wir fallen, fallen wir lieber auf.
At 18:39 +0100 2/19/2000, Stefan Matthias Aust wrote:
good thing. This problem is that VNC seems to be optimized for high speed networks (it transfers compressed bitmaps) and not modems.
You should have about 1MBit/s, right. It works over ISDN (64Kbit/s even better with doubling lines to 128Kbit/s) if your're patient. Implementing a VNC client doesn't look very difficult. I'm right now trying this for Squeak (www.squeak.org) after I downloaded the protocol specification.
I've used it a lot on a 128K ISDN line and it was usable, and I'm not a very patient person. However, the other machine was 40 miles away; VNC was really fast compared to driving an 80 mile round trip to shutdown one version of a program and start up a newer version!
Dave _______________________________ David N. Smith IBM T J Watson Research Center Hawthorne, NY _______________________________ Any opinions or recommendations herein are those of the author and not of his employer.
Thanks to David N. Smith, Stefan Matthias Aust and John Hinsley for their feedback on the remote GUI problem. I'll lump all my comments here to save bandwidth.
Berlin: it looks need, but I don't see that it will really be more lightweight than X. They claim to be inspired by NeWS, which is a good thing, but I don't see how they can send new functionality over to the server that wasn't there before (from what I know about Corba). In any case, this is for the future and I need something for the next few weeks...
VNC at 128kbps: this obviously is a case of personal taste. But since I will be serving several clients over a single 33kbps link, it seems that this isn't a good choice for me.
X in Java (http://wiredx.net): since the students would have to download a Java 2 plug-in and do a lot of configuration before using this, it really isn't an option (though it would be the least work for me since it would talk to Self as it is now). In fact, it is very likely that their PCs won't have enough resources in any case. Plus there is the 33kbps limitation I mentioned above.
I guess I will have to make the clients way more intelligent so I can use a higher level protocol. Since the students will have to download something in any case, something in Squeak might be the right choice for this project.
As long as I am lumping different stuff together, I might as well comment Stefan's observation here:
Compared with Self on Squeak, the Java version performs much better -especially with HotSpot. It's still not comparable with the real Self system I think, but the advantage is that I can easily script existing Java code. I did a very small example with Swing. And I've to say that a lot of Smalltalkers (and Self fan) here and on the Squeak list are biased. Java is better than you think :-)
The problem is that there are several different Javas out there. When I write a program in Java, I limit myself to what will work on the Java included in the old Netscape or Internet Explorer that the user might be using. So that colors my impression of the language. Of course I can get much better results by requiring that the user download Java 2 (like the wiredX people do) and that they only use IE on Win98 or later, but then what is the point?
-- Jecel
At 18:54 22.02.00 -0300, you wrote:
The problem is that there are several different Javas out there. When I write a program in Java, I limit myself to what will work on the Java included in the old Netscape or Internet Explorer that the user might be using.
If you require Sun's Java2 plugin, these problems fade away. For a one time download, I wouldn't bother to download the needed 6+ MB. I also think, that the latest AOL 5.0 CD also contain the Java2 JRE (runtime environment) but I may be wrong.
And if you don't want to write Java code, what's about a Self->Java cross compiler? :-)
bye -- Stefan Matthias Aust // Bevor wir fallen, fallen wir lieber auf.
That would be great if I had a Self system and the knowledge to write a cross-compiler :-)
Seriously, that would certainly be nicer than writing Java code in the "standard fashion." Especially if I could integrate it at work. But I suspect that isn't going to happen. Sigh...
Jason
Stefan Matthias Aust wrote:
At 18:54 22.02.00 -0300, you wrote:
The problem is that there are several different Javas out there. When I write a program in Java, I limit myself to what will work on the Java included in the old Netscape or Internet Explorer that the user might be using.
If you require Sun's Java2 plugin, these problems fade away. For a one time download, I wouldn't bother to download the needed 6+ MB. I also think, that the latest AOL 5.0 CD also contain the Java2 JRE (runtime environment) but I may be wrong.
And if you don't want to write Java code, what's about a Self->Java cross compiler? :-)
bye
Stefan Matthias Aust // Bevor wir fallen, fallen wir lieber auf.
Get what you deserve with NextCard Visa! Rates as low as 2.9% Intro or 9.9% Fixed APR, online balance transfers, Rewards Points, no hidden fees, and much more! Get NextCard today and get the credit youdeserve! Apply now! Get your NextCard Visa at: http://click.egroups.com/1/912/5/_/8257/_/951510555/
eGroups.com Home: http://www.egroups.com/group/self-interest/ http://www.egroups.com - Simplifying group communications
I recently implemented Morphic (well not exactly, but something very very similar) in Java.
Cool! I also started something like this. Is your code freely available?
you say implementing Self on Java, do you mean Self in Java or Self on
top of a Java VM ?
I think both Diego's and mine approach are a Self-bytecode interpreter on top of Java; similar to JPython. At least I don't try to compile bytecode or otherwise generate Java source or class files.
bye -- Stefan Matthias Aust // Bevor wir fallen, fallen wir lieber auf.
self-interest@lists.selflanguage.org