
Jtalk: a Smalltalk implementation that runs on the JavaScript runtime. - ColinWright
http://jtalk-project.org/
======
asolove
A few notes:

a. this is awesome

b. the "documentation" link halfway down the homepage goes to an anchor tag
that doesn't exist, rather than the actual documentation page. At first I
thought there just were no docs, and I was disappointed.

c. After reading through the docs, I can see how to create cool classes but am
not sure how to instantiate them on the page. Is there a Smalltalk image-style
system to marshall instances to disc and back? That would be fantastic.

I have so many other ideas for wonderful things this could do. Breakpoints in
event handlers to let you change the code without reloading the page.
Including less/scss with view classes and live editing of that on the page.

But there are also lots of challenges. To get good performance you will need
to have access to lots of front-end-specific tricks, like event delegation,
spreading long computations out with timers, etc.

In sum, then, super-exciting, hope to see more docs and details soon, let us
know how we can help. Can someone comment on the status of server-side ST
frameworks if I wanted to try a small, all-ST webapp?

~~~
bromagosa
As to the all-ST webapp, there are three frameworks you may want to check out,
these are Seaside, AidaWeb and Iliad.

If you allow me to be a bit biased, I'd recommend you to first check Iliad
(iliadproject.org/), as IMO it's the one that'll give you the most impressive
results in the shortest possible learning time. And I'd work on Pharo (pharo-
project.org), as it's the most complete open source and free ST implementation
out there. Again, in my humble biased opinion.

To get started, check this out:
<http://www.asmalltalkbytheseaside.com/iliad_en.pdf>

These slides are based on a presentation given by Nicolas Petton, Iliad's
author, at the 2010 edition of the European Smalltalk Users Group conference.

You can watch the whole talk, «Web Development in Iliad», right here:
<http://esug2010.objectfusion.fr/tuesday.html> Hope it helped! :)

~~~
asolove
Thanks!

------
abecedarius
Anyone who's used <http://clamato.net/> want to compare the two?

~~~
radiowave
Not much of a comparison, but JTalk aims for code compatibility with Pharo
Smalltalk, whereas Clamato is a distinct dialect. Perhaps partly because of
this, I felt able to work with immediately in a way I never did with Clamato,
or any other in-browser Smalltalk-like software I've seen. My past experience
with Smalltalk transfers well into JTalk, not so well into Clamato.

When I first ran JTalk (months back), one of the expressions I tried was to
get the sum of even numbers between 1 and 5, and it doesn't work, because
JTalk is missing various things, like 'even' and 'odd'. I had a Pharo
Smalltalk system to hand, and was able to look up the implementation for
'even', and deeper requirements like '//' (divide without remainder), and type
them into the browser until I got the answer.

Since then, JTalk now has the very beginnings of exception handling. When
Smalltalk is asked to evaluate a non-existent method, it raises a
MessageNotUnderstood (MNU) exception. It's interesting to think about the idea
of having a web service running on Pharo, which answer chunks of it's own
source code, and JTalk's MNU behaviour being to send out an http request to
try to load that source code, and then continue running. (I don't know nearly
enough about Javascript or JTalk internals - this may be wildly impractical.)

In any case, the idea of code compatibility between front-end and back-end is
very appealing: re-use domain model classes, write input validation in one
place and have it run in both places, and such.

(I seem to have gone off on a tangent. Hopefully an interesting one.)

~~~
abecedarius
Thanks! One thing I'd really like to see myself is an in-browser environment
like this for a capability language like Newspeak or E.

~~~
hencq
AFAIK Newspeak is written in Smalltalk. I wonder if it's possible to run it on
(or port it to) JTalk.

~~~
edtechdev
newspeak was being ported to javascript, but it sounds like they may have
given up because of limitations of javascript:
[http://gbracha.blogspot.com/2011/03/truthiness-is-out-
there....](http://gbracha.blogspot.com/2011/03/truthiness-is-out-there.html)

