Amber is an implementation of the Smalltalk language that runs on top of the JavaScript runtime. https://amber-lang.net/

Göran Krampe 1f29468ac2 Trivial fixes to LICENSE file. %!s(int64=13) %!d(string=hai) anos
bin 075353b2f5 Added prefixing and made sure default is not -K. %!s(int64=13) %!d(string=hai) anos
css bb778c9219 Missing files %!s(int64=13) %!d(string=hai) anos
ide d3cf306cca Ripped out ide.html from homepage, feel free to clean it or delete it Nicolas. %!s(int64=13) %!d(string=hai) anos
images d3cf306cca Ripped out ide.html from homepage, feel free to clean it or delete it Nicolas. %!s(int64=13) %!d(string=hai) anos
js 5dae847766 Fixed methods linking for IE %!s(int64=13) %!d(string=hai) anos
nodejs 22b973a0ec Oops, forgot nodecompile.js fix for prefixing. %!s(int64=13) %!d(string=hai) anos
scripts dc8e021881 first commit %!s(int64=13) %!d(string=hai) anos
st c25188a6b9 Merge remote branch 'upstream/master' %!s(int64=13) %!d(string=hai) anos
LICENSE 1f29468ac2 Trivial fixes to LICENSE file. %!s(int64=13) %!d(string=hai) anos
README.md 192ec88702 Typos in the readme %!s(int64=13) %!d(string=hai) anos
ide.html cd06eb8e87 Added closure support in jtalkc, added Benchib class category in ide.html. %!s(int64=13) %!d(string=hai) anos

README.md

Jtalk

By Nicolas Petton petton.nicolas@gmail.com

Jtalk is an implementation of the Smalltalk language that runs on top of the JavaScript runtime. It is designed to make client-side development faster and easier.

Overview

Jtalk is written in itself, including the parser and compiler. Jtalk compiles into efficient JavaScript, mapping one-to-one with the equivalent JavaScript. There is no interpretation at runtime.

Some highlights:

  • Jtalk features an IDE with a Class browser, workspace and transcript
  • Pharo Smalltalk is considered as the reference implementation
  • Jtalk includes a canvas to generate HTML, like Seaside
  • Jtalk includes a jQuery binding

How to commit changes from the web-based IDE

The Jtalk class browser is able to commit changes to disk. The "commit category" button will send a PUT request with the JS code of all classes in the selected class category in a file named js/CATEGORY.js

The easiest way to enable committing is probably to setup a webdav with Apache.

The following steps explain how to setup a webdav for Jtalk with Debian, but the setup on OSX and other Linux distros should be similar.

Install Apache and enable the dav module

apt-get install apache2
a2enmod dav
a2enmod dav_fs

Create a password for the webdav

htpasswd -c /etc/apache2/htpasswd-webdav USERNAME

Setup the webdav for Jtalk

Add the following lines to the default vhost (in /etc/apache2/sites-available/default):

Alias /jtalk/ "/path/to/jtalk/"
    <Directory "/path/to/jtalk/">
        Options Indexes MultiViews FollowSymLinks
    DirectoryIndex index.html
    AllowOverride None
        Order allow,deny
    allow from all

    Dav on

    AuthType Basic
        AuthName "jtalk"
        AuthUserFile /etc/apache2/htpasswd-webdav
    <LimitExcept GET OPTIONS>
            Require valid-user
    </LimitExcept>

    </Directory>

Make sure the group www-data has required rights to modify files in the webdav directory.

Restart Apache

/etc/init.d/apache2 restart

License

Jtalk is released under the MIT license.

More infos

More on the project page