Jtalk, a Smalltalk for web developers

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

Jtalk, a Smalltalk for web developers

Nicolas Petton
Hi,

I would like to share a project I'm working on on my spare time: Jtalk
Smalltalk.

http://nicolaspetton.github.com/jtalk
https://github.com/NicolasPetton/jtalk

Jtalk is an implementation of the Smalltalk language that compiles into
JavaScript.

Some features:
- it is written in itself (including the parser/compiler)
- it is self-contained
- it compiles into efficient JS code
- it uses the Squeak chunk format
- Pharo is considered as the reference implementation

I think Jtalk can be compared to CoffeeScript[1], Objective-J[2] or
Clamato[3], from which it reuses some ideas and code.

Jtalk includes an IDE with a class browser, transcript and workspace, an
HTML canvas similar to Seaside and a jQuery binding.

It is still a young piece of code, and some important features are still
missing/incomplete.

Cheers,
Nicolas Petton

[1] http://jashkenas.github.com/coffee-script/
[2] http://cappuccino.org/
[3] http://clamato.net


Reply | Threaded
Open this post in threaded view
|

Re: Jtalk, a Smalltalk for web developers

Janko Mivšek
Hi all,

To add with Aida/Web plans how we will use Jtalk: I namely see very nice
oportunity to cross the border from server to the client (web browser)
with Smalltalk! That is, we can build web apps in pure Smalltalk and run
them on the client, unchanged. Even more, we can partition the app and
decide where to run, part on server, part on client, whole on server,
whole on client... And this can be done at runtime!

So, Nicolas work actually opens a whole new horizon for Smalltalk on the
web development front. That's why Jtalk will already be part of next
version of Aida, for experimentation purposes for start.

So, thanks a lot, Nico!

Best regards
Janko


On 14. 03. 2011 19:36, Nicolas Petton wrote:

> Hi,
>
> I would like to share a project I'm working on on my spare time: Jtalk
> Smalltalk.
>
> http://nicolaspetton.github.com/jtalk
> https://github.com/NicolasPetton/jtalk
>
> Jtalk is an implementation of the Smalltalk language that compiles into
> JavaScript.
>
> Some features:
> - it is written in itself (including the parser/compiler)
> - it is self-contained
> - it compiles into efficient JS code
> - it uses the Squeak chunk format
> - Pharo is considered as the reference implementation
>
> I think Jtalk can be compared to CoffeeScript[1], Objective-J[2] or
> Clamato[3], from which it reuses some ideas and code.
>
> Jtalk includes an IDE with a class browser, transcript and workspace, an
> HTML canvas similar to Seaside and a jQuery binding.
>
> It is still a young piece of code, and some important features are still
> missing/incomplete.
>
> Cheers,
> Nicolas Petton
>
> [1] http://jashkenas.github.com/coffee-script/
> [2] http://cappuccino.org/
> [3] http://clamato.net
>
>
>

--
Janko Mivšek
Svetovalec za informatiko
Eranova d.o.o.
Ljubljana, Slovenija
www.eranova.si
tel:  01 514 22 55
faks: 01 514 22 56
gsm: 031 674 565

Reply | Threaded
Open this post in threaded view
|

Re: Jtalk, a Smalltalk for web developers

Mariano Martinez Peck


2011/3/14 Janko Mivšek <[hidden email]>
Hi all,

To add with Aida/Web plans how we will use Jtalk: I namely see very nice
oportunity to cross the border from server to the client (web browser)
with Smalltalk! That is, we can build web apps in pure Smalltalk and run
them on the client, unchanged. Even more, we can partition the app and
decide where to run, part on server, part on client, whole on server,
whole on client... And this can be done at runtime!

So, Nicolas work actually opens a whole new horizon for Smalltalk on the
web development front. That's why Jtalk will already be part of next
version of Aida, for experimentation purposes for start.


Sounds a lot to GWT but for Smalltalk :)
Cool!
 
So, thanks a lot, Nico!

Best regards
Janko


On 14. 03. 2011 19:36, Nicolas Petton wrote:
> Hi,
>
> I would like to share a project I'm working on on my spare time: Jtalk
> Smalltalk.
>
> http://nicolaspetton.github.com/jtalk
> https://github.com/NicolasPetton/jtalk
>
> Jtalk is an implementation of the Smalltalk language that compiles into
> JavaScript.
>
> Some features:
> - it is written in itself (including the parser/compiler)
> - it is self-contained
> - it compiles into efficient JS code
> - it uses the Squeak chunk format
> - Pharo is considered as the reference implementation
>
> I think Jtalk can be compared to CoffeeScript[1], Objective-J[2] or
> Clamato[3], from which it reuses some ideas and code.
>
> Jtalk includes an IDE with a class browser, transcript and workspace, an
> HTML canvas similar to Seaside and a jQuery binding.
>
> It is still a young piece of code, and some important features are still
> missing/incomplete.
>
> Cheers,
> Nicolas Petton
>
> [1] http://jashkenas.github.com/coffee-script/
> [2] http://cappuccino.org/
> [3] http://clamato.net
>
>
>

--
Janko Mivšek
Svetovalec za informatiko
Eranova d.o.o.
Ljubljana, Slovenija
www.eranova.si
tel:  01 514 22 55
faks: 01 514 22 56
gsm: 031 674 565


Reply | Threaded
Open this post in threaded view
|

Re: Jtalk, a Smalltalk for web developers

Stéphane Ducasse
In reply to this post by Nicolas Petton
Thanks nicolas
I want to have a look at your code :).

Stef

On Mar 14, 2011, at 7:36 PM, Nicolas Petton wrote:

> Hi,
>
> I would like to share a project I'm working on on my spare time: Jtalk
> Smalltalk.
>
> http://nicolaspetton.github.com/jtalk
> https://github.com/NicolasPetton/jtalk
>
> Jtalk is an implementation of the Smalltalk language that compiles into
> JavaScript.
>
> Some features:
> - it is written in itself (including the parser/compiler)
> - it is self-contained
> - it compiles into efficient JS code
> - it uses the Squeak chunk format
> - Pharo is considered as the reference implementation
>
> I think Jtalk can be compared to CoffeeScript[1], Objective-J[2] or
> Clamato[3], from which it reuses some ideas and code.
>
> Jtalk includes an IDE with a class browser, transcript and workspace, an
> HTML canvas similar to Seaside and a jQuery binding.
>
> It is still a young piece of code, and some important features are still
> missing/incomplete.
>
> Cheers,
> Nicolas Petton
>
> [1] http://jashkenas.github.com/coffee-script/
> [2] http://cappuccino.org/
> [3] http://clamato.net
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Jtalk, a Smalltalk for web developers

Nicolas Petton
Le lundi 14 mars 2011 à 21:53 +0100, Stéphane Ducasse a écrit :
> Thanks nicolas
> I want to have a look at your code :).


Sure, you can browse the code from the class browser (available in the
web page) or directly the st source in the chunk format here:
https://github.com/NicolasPetton/jtalk/tree/master/st

Cheers,
Nicolas

>
> Stef
>
> On Mar 14, 2011, at 7:36 PM, Nicolas Petton wrote:
>
> > Hi,
> >
> > I would like to share a project I'm working on on my spare time: Jtalk
> > Smalltalk.
> >
> > http://nicolaspetton.github.com/jtalk
> > https://github.com/NicolasPetton/jtalk
> >
> > Jtalk is an implementation of the Smalltalk language that compiles into
> > JavaScript.
> >
> > Some features:
> > - it is written in itself (including the parser/compiler)
> > - it is self-contained
> > - it compiles into efficient JS code
> > - it uses the Squeak chunk format
> > - Pharo is considered as the reference implementation
> >
> > I think Jtalk can be compared to CoffeeScript[1], Objective-J[2] or
> > Clamato[3], from which it reuses some ideas and code.
> >
> > Jtalk includes an IDE with a class browser, transcript and workspace, an
> > HTML canvas similar to Seaside and a jQuery binding.
> >
> > It is still a young piece of code, and some important features are still
> > missing/incomplete.
> >
> > Cheers,
> > Nicolas Petton
> >
> > [1] http://jashkenas.github.com/coffee-script/
> > [2] http://cappuccino.org/
> > [3] http://clamato.net
> >
> >
>
>



Reply | Threaded
Open this post in threaded view
|

Re: Jtalk, a Smalltalk for web developers

Noury Bouraqadi-2
In reply to this post by Nicolas Petton
I like very much the idea!

Noury

On 14 mars 2011, at 19:36, Nicolas Petton wrote:

> Hi,
>
> I would like to share a project I'm working on on my spare time: Jtalk
> Smalltalk.
>
> http://nicolaspetton.github.com/jtalk
> https://github.com/NicolasPetton/jtalk
>
> Jtalk is an implementation of the Smalltalk language that compiles into
> JavaScript.
>
> Some features:
> - it is written in itself (including the parser/compiler)
> - it is self-contained
> - it compiles into efficient JS code
> - it uses the Squeak chunk format
> - Pharo is considered as the reference implementation
>
> I think Jtalk can be compared to CoffeeScript[1], Objective-J[2] or
> Clamato[3], from which it reuses some ideas and code.
>
> Jtalk includes an IDE with a class browser, transcript and workspace, an
> HTML canvas similar to Seaside and a jQuery binding.
>
> It is still a young piece of code, and some important features are still
> missing/incomplete.
>
> Cheers,
> Nicolas Petton
>
> [1] http://jashkenas.github.com/coffee-script/
> [2] http://cappuccino.org/
> [3] http://clamato.net
>
>

Noury Bouraqadi
http://car.mines-douai.fr/noury
--
-6th National Conference on
“Control Architecture of Robots”
24-25 may 2011, Grenoble area, France
http://car2011.inrialpes.fr/

-19th ESUG International Smalltalk Conference
22-26 August 2011, Edinburgh, UK
http://www.esug.org/Conferences/2011

-19èmes Journées Francophones sur les Systèmes Multi-Agents (JFSMA’11)
http://www.univ-valenciennes.fr/congres/jfsma2011/
17-19 Octobre 2011, Valenciennes, France





Reply | Threaded
Open this post in threaded view
|

Re: Jtalk, a Smalltalk for web developers

Stéphane Ducasse
In reply to this post by Nicolas Petton
I will read the rest :)

eval: aString
        ^{'return eval(aString);'}
!

visitBlockNode: aNode
        stream nextPutAll: '(function('.
        aNode parameters
            do: [:each |
                stream nextPutAll: each]
            separatedBy: [stream nextPutAll: ', '].
        stream nextPutAll: '){'.
        aNode nodes do: [:each | self visit: each].
        stream nextPutAll: '})'

visitMethodNode: aNode
        | str currentSelector |
        currentSelector := aNode selector asSelector.
        nestedBlocks := 0.
        earlyReturn := false.
        stream
            nextPutAll: 'smalltalk.method({', String cr;
            nextPutAll: 'selector: "', aNode selector, '",', String cr;
            nextPutAll: 'source: unescape("', aNode source escaped, '"),', String cr;
            nextPutAll: 'fn: function('.
        aNode arguments
            do: [:each | stream nextPutAll: each]
            separatedBy: [stream nextPutAll: ', '].
        stream
            nextPutAll: '){', String cr;
            nextPutAll: 'var self=this;', String cr.
        str := stream.
        stream := '' writeStream.
        aNode nodes do: [:each |
            self visit: each].
        earlyReturn ifTrue: [
            str nextPutAll: 'try{'].
        str nextPutAll: stream contents.
        stream := str.
        stream
            nextPutAll: String cr;
            nextPutAll: 'return self;'.
        earlyReturn ifTrue: [
            stream nextPutAll: String cr, '} catch(e) {if(e.name === ''stReturn'' && e.selector === ', currentSelector printString, '){return e.fn()} throw(e)}'].
        stream
            nextPutAll: '}', String cr;
            nextPutAll: '})'

ok now I understand.

Stef
Reply | Threaded
Open this post in threaded view
|

Re: [Seaside] Jtalk, a Smalltalk for web developers

Sven Van Caekenberghe
In reply to this post by Nicolas Petton

On 14 Mar 2011, at 19:36, Nicolas Petton wrote:

> I would like to share a project I'm working on on my spare time: Jtalk Smalltalk.
>
> http://nicolaspetton.github.com/jtalk
> https://github.com/NicolasPetton/jtalk
>
> Jtalk is an implementation of the Smalltalk language that compiles into JavaScript.

Really impressive!

Senders/Implementers would be nice to browse the code.

Since the implementation is relatively small, it makes an excellent example of how to implement Smalltalk.

Sven

PS: On Safari, the 'Class Browser' button does not seem to work.
Reply | Threaded
Open this post in threaded view
|

Re: Jtalk, a Smalltalk for web developers

ccrraaiigg
In reply to this post by Nicolas Petton

     Yay! :)


-C

--
Craig Latta
www.netjam.org/resume
+31  06 2757 7177
+ 1 415  287 3547




Reply | Threaded
Open this post in threaded view
|

Re: Jtalk, a Smalltalk for web developers

Richard Durr-2
Beautifull and elegant. Nice, that you used PP.
(Though the name is a little bit boring ;) But if that is the worst, one can say about it... :D 

On Tue, Mar 15, 2011 at 11:04 AM, Craig Latta <[hidden email]> wrote:

    Yay! :)


-C

--
Craig Latta
www.netjam.org/resume
<a href="tel:%2B31%20%2006%202757%207177">+31 06 2757 7177
<a href="tel:%2B%201%20415%20%20287%203547">+ 1 415 287 3547





Reply | Threaded
Open this post in threaded view
|

Re: Jtalk, a Smalltalk for web developers

Richard Durr-2
Uh oh, there are many jtalks already:
  • the text to speach jquery plugin 
  • an hiragana converter
  • a blog service
  • a japanese text to speach system
  • an android app



On Tue, Mar 15, 2011 at 11:41 AM, Richard Durr <[hidden email]> wrote:
Beautifull and elegant. Nice, that you used PP.
(Though the name is a little bit boring ;) But if that is the worst, one can say about it... :D 

On Tue, Mar 15, 2011 at 11:04 AM, Craig Latta <[hidden email]> wrote:

    Yay! :)


-C

--
Craig Latta
www.netjam.org/resume
<a href="tel:%2B31%20%2006%202757%207177" target="_blank"><a href="tel:%2B31%20%2006%202757%207177" target="_blank">+31 06 2757 7177
<a href="tel:%2B%201%20415%20%20287%203547" target="_blank"><a href="tel:%2B%201%20415%20%20287%203547" target="_blank">+ 1 415 287 3547






Reply | Threaded
Open this post in threaded view
|

Re: [Seaside] Jtalk, a Smalltalk for web developers

Hannes Hirzel
In reply to this post by Sven Van Caekenberghe
On 3/15/11, Sven Van Caekenberghe <[hidden email]> wrote:
....
> Since the implementation is relatively small, it makes an excellent example
> of how to implement Smalltalk.

Yes, the download of the Javascript files is just 160kB.

And the license is MIT!

Hannes

Reply | Threaded
Open this post in threaded view
|

Re: Jtalk, a Smalltalk for web developers

Hannes Hirzel
In reply to this post by Richard Durr-2
On 3/15/11, Richard Durr <[hidden email]> wrote:
> Beautifull and elegant. Nice, that you used PP.

What is PP?

--Hannes

Reply | Threaded
Open this post in threaded view
|

Re: [Seaside] Re: Jtalk, a Smalltalk for web developers

NorbertHartl

On 15.03.2011, at 13:14, Hannes Hirzel wrote:

> On 3/15/11, Richard Durr <[hidden email]> wrote:
>> Beautifull and elegant. Nice, that you used PP.
>
> What is PP?
>
PetitParser

Norbert


Reply | Threaded
Open this post in threaded view
|

Re: Jtalk, a Smalltalk for web developers

Marcus Denker-4
In reply to this post by Richard Durr-2

On Mar 15, 2011, at 1:14 PM, Hannes Hirzel wrote:

> On 3/15/11, Richard Durr <[hidden email]> wrote:
>> Beautifull and elegant. Nice, that you used PP.
>
> What is PP?
>
PetitParser

http://www.tudorgirba.com/blog/petitparser-tutorial-at-deep-into-smalltalk-school


--
Marcus Denker  -- http://www.marcusdenker.de
INRIA Lille -- Nord Europe. Team RMoD.


Reply | Threaded
Open this post in threaded view
|

Re: [Seaside] Jtalk, a Smalltalk for web developers

Nicolas Petton
In reply to this post by Sven Van Caekenberghe
Le mardi 15 mars 2011 à 10:53 +0100, Sven Van Caekenberghe a écrit :

> On 14 Mar 2011, at 19:36, Nicolas Petton wrote:
>
> > I would like to share a project I'm working on on my spare time: Jtalk Smalltalk.
> >
> > http://nicolaspetton.github.com/jtalk
> > https://github.com/NicolasPetton/jtalk
> >
> > Jtalk is an implementation of the Smalltalk language that compiles into JavaScript.
>
> Really impressive!

Thanks :)
>
> Senders/Implementers would be nice to browse the code.
Yes, the IDE is very immature. Code checking before compiling is
missing, and better browsing tools too. The class browser isn't even
able to commit changes to disk yet.


>
> PS: On Safari, the 'Class Browser' button does not seem to work.
It should work now.

Cheers,
Nicolas


Reply | Threaded
Open this post in threaded view
|

Re: [Seaside] Jtalk, a Smalltalk for web developers

Nicolas Petton
In reply to this post by Hannes Hirzel
Le mardi 15 mars 2011 à 12:10 +0000, Hannes Hirzel a écrit :
> On 3/15/11, Sven Van Caekenberghe <[hidden email]> wrote:
> ....
> > Since the implementation is relatively small, it makes an excellent example
> > of how to implement Smalltalk.
>
> Yes, the download of the Javascript files is just 160kB.
This is with the Smalltalk sources. Without it, it will be much smaller
for deployment.

Cheers,
Nicolas

>
> And the license is MIT!
>
> Hannes
> _______________________________________________
> seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside



Reply | Threaded
Open this post in threaded view
|

Re: Jtalk, a Smalltalk for web developers

Dave Mason-3
In reply to this post by Nicolas Petton

On 2011-Mar-14, at 14:36 , Nicolas Petton wrote:

> Jtalk is an implementation of the Smalltalk language that compiles  
> into
> JavaScript.

Cool!

I took a look at the jtalk.deploy.js file and it looks pretty readable.

It's long been on my to-do list to do something like this, but I was  
thinking of developing in the Pharo/Squeak image and then deploying to  
JS (translating Smaltalk bytecode to JS).  Your jtalk.deploy.js would  
provide a great platform for that.  But maybe the bytecode->JS  
translator is already part of your system, or in your plans?

As for the name, I was going to suggest that you might try jstalk, but  
then I found:
        http://jstalk.berlios.de/

../Dave

Reply | Threaded
Open this post in threaded view
|

Re: Jtalk, a Smalltalk for web developers

hilaire
In reply to this post by Nicolas Petton
CONTENTS DELETED
The author has deleted this message.
Reply | Threaded
Open this post in threaded view
|

Re: Jtalk, a Smalltalk for web developers

abergel
In reply to this post by Nicolas Petton
Impressive. I am curious to see what we can build at the top of.

Alexandre


On 14 Mar 2011, at 17:02, Nicolas Petton wrote:

> Le lundi 14 mars 2011 à 21:53 +0100, Stéphane Ducasse a écrit :
>> Thanks nicolas
>> I want to have a look at your code :).
>
>
> Sure, you can browse the code from the class browser (available in the
> web page) or directly the st source in the chunk format here:
> https://github.com/NicolasPetton/jtalk/tree/master/st
>
> Cheers,
> Nicolas
>
>>
>> Stef
>>
>> On Mar 14, 2011, at 7:36 PM, Nicolas Petton wrote:
>>
>>> Hi,
>>>
>>> I would like to share a project I'm working on on my spare time: Jtalk
>>> Smalltalk.
>>>
>>> http://nicolaspetton.github.com/jtalk
>>> https://github.com/NicolasPetton/jtalk
>>>
>>> Jtalk is an implementation of the Smalltalk language that compiles into
>>> JavaScript.
>>>
>>> Some features:
>>> - it is written in itself (including the parser/compiler)
>>> - it is self-contained
>>> - it compiles into efficient JS code
>>> - it uses the Squeak chunk format
>>> - Pharo is considered as the reference implementation
>>>
>>> I think Jtalk can be compared to CoffeeScript[1], Objective-J[2] or
>>> Clamato[3], from which it reuses some ideas and code.
>>>
>>> Jtalk includes an IDE with a class browser, transcript and workspace, an
>>> HTML canvas similar to Seaside and a jQuery binding.
>>>
>>> It is still a young piece of code, and some important features are still
>>> missing/incomplete.
>>>
>>> Cheers,
>>> Nicolas Petton
>>>
>>> [1] http://jashkenas.github.com/coffee-script/
>>> [2] http://cappuccino.org/
>>> [3] http://clamato.net
>>>
>>>
>>
>>
>
>
>

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.






12