A few days with Nicolas...

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

A few days with Nicolas...

gokr
Hi folks!

I just dropped off Nicolas on the airport here in Sweden, he is going
home after staying with me for a few days and working together with our
common customer (HTML5 app, js mainly, no Amber there).

Now, apart from showing Nicolas the beautiful Stockholm archipelago :)
we of course also talked about Amber and where things are going with it
and lots of other stuff in the Smalltalk community.

Personally I haven't had much time at all lately for Amber, but I am
still here, don't worry.

Nicolas on the other hand showed me *awesome* Amber stuff he has been
working quite hard on, but I don't want to "steal his thunder" so please
look forward to impressive stuff Coming Soon to a browser near you,
sorry Nicolas, but I just had to tell :)

We also played a teeny bit with Dart, especially taking a closer look at
the js it produces. One thing that we were especially interested in was
how the heck they support DNU (noSuchMethod they call it) without adding
their own lookup procedure.

It turns out they do a really dirty trick - and we are unsure about how
it will scale when compiling a larger Dart app to js. If there is a Dart
guru lurking, please give us more info. After a "cursory look" it seems
they take *all message sends* in your app (you know, that can be a
fairly long list) and implement *all* of them in the base prototype in
js as "return this.noSuchMethod();"-kinda. Hehe, what a hack! Clever,
but... hm.

And yeah, it also means it only works for messages that are known to be
sent at compile time - in other words, sure, you do have a working DNU,
but you sure don't have #perform:. We are also unsure about how they
produce that list, do they support all messages my app sends, or all
messages my app and all the libraries I use sends? Not sure.

Dart is a bit dualistic in nature - in some ways it is fully dynamic,
and in other perspectives it is quite static. It will be interesting to
see where it lands in the end. Reading up on Dart it is quite obvious
that they *want* to come as close to the "Smalltalk dynamic way of live
environment interactive coding" as they possibly can. But how close can
you get with the other constraints they are trying to satisfy? Hard to tell.

What I do know though is that Amber is soon taking a few more large
steps forward - and it will be really fun to see what the community
(both the Smalltalk and the larger HTML5 community including Dartisans)
will say when Nicolas new stuff starts to land in github.

Am I a teaser? You bet I am.

regards, Göran
Reply | Threaded
Open this post in threaded view
|

Re: A few days with Nicolas...

Herby Vojčík


Göran Krampe wrote:

> Hi folks!
>
> I just dropped off Nicolas on the airport here in Sweden, he is going
> home after staying with me for a few days and working together with our
> common customer (HTML5 app, js mainly, no Amber there).
>
> Now, apart from showing Nicolas the beautiful Stockholm archipelago :)
> we of course also talked about Amber and where things are going with it
> and lots of other stuff in the Smalltalk community.
>
> Personally I haven't had much time at all lately for Amber, but I am
> still here, don't worry.
>
> Nicolas on the other hand showed me *awesome* Amber stuff he has been
> working quite hard on, but I don't want to "steal his thunder" so please
> look forward to impressive stuff Coming Soon to a browser near you,
> sorry Nicolas, but I just had to tell :)
>
> We also played a teeny bit with Dart, especially taking a closer look at
> the js it produces. One thing that we were especially interested in was
> how the heck they support DNU (noSuchMethod they call it) without adding
> their own lookup procedure.
>
> It turns out they do a really dirty trick - and we are unsure about how
> it will scale when compiling a larger Dart app to js. If there is a Dart
> guru lurking, please give us more info. After a "cursory look" it seems
> they take *all message sends* in your app (you know, that can be a
> fairly long list) and implement *all* of them in the base prototype in
> js as "return this.noSuchMethod();"-kinda. Hehe, what a hack! Clever,
> but... hm.

Well, without knowing it is done this way in Dart, I proposed this
solution myself to Nicolas over irc... so more people think it is not
such a bad idea...

> And yeah, it also means it only works for messages that are known to be
> sent at compile time - in other words, sure, you do have a working DNU,
> but you sure don't have #perform:. We are also unsure about how they
> produce that list, do they support all messages my app sends, or all
> messages my app and all the libraries I use sends? Not sure.

Perform: I see no problem doing this in Amber so that it works the both
way. Shortcut the "known" method sends, and "interpret/compute/simulate"
the unknown ones. Of course, I would never propose such a trick if the
side-effect would be cutting perform: away.

In Amber, this list is easy to produce: whenever you load a method, it
contains (and should in .deploy as well) the list of sent selectors.

> Dart is a bit dualistic in nature - in some ways it is fully dynamic,
> and in other perspectives it is quite static. It will be interesting to
> see where it lands in the end. Reading up on Dart it is quite obvious
> that they *want* to come as close to the "Smalltalk dynamic way of live
> environment interactive coding" as they possibly can. But how close can
> you get with the other constraints they are trying to satisfy? Hard to
> tell.
>
> What I do know though is that Amber is soon taking a few more large
> steps forward - and it will be really fun to see what the community
> (both the Smalltalk and the larger HTML5 community including Dartisans)
> will say when Nicolas new stuff starts to land in github.
>
> Am I a teaser? You bet I am.
>
> regards, Göran

Herby
Reply | Threaded
Open this post in threaded view
|

Re: A few days with Nicolas...

gokr
Hi!

On 07/06/2012 11:25 AM, Herby Vojčík wrote:

> Göran Krampe wrote:
>> It turns out they do a really dirty trick - and we are unsure about how
>> it will scale when compiling a larger Dart app to js. If there is a Dart
>> guru lurking, please give us more info. After a "cursory look" it seems
>> they take *all message sends* in your app (you know, that can be a
>> fairly long list) and implement *all* of them in the base prototype in
>> js as "return this.noSuchMethod();"-kinda. Hehe, what a hack! Clever,
>> but... hm.
>
> Well, without knowing it is done this way in Dart, I proposed this
> solution myself to Nicolas over irc... so more people think it is not
> such a bad idea...

Yeah, ok, when I wrote "really dirty trick" and "what a hack" I actually
meant that it was "sneaky/funny" and not actually bad. Given whatever
constraints we have to work with - it obviously is one way of doing
these things.

>> And yeah, it also means it only works for messages that are known to be
>> sent at compile time - in other words, sure, you do have a working DNU,
>> but you sure don't have #perform:. We are also unsure about how they
>> produce that list, do they support all messages my app sends, or all
>> messages my app and all the libraries I use sends? Not sure.
>
> Perform: I see no problem doing this in Amber so that it works the both
> way. Shortcut the "known" method sends, and "interpret/compute/simulate"
> the unknown ones. Of course, I would never propose such a trick if the
> side-effect would be cutting perform: away.
>
> In Amber, this list is easy to produce: whenever you load a method, it
> contains (and should in .deploy as well) the list of sent selectors.

...but (forgive me from being dense) what do you gain with these
shortcuts? I mean, we still do the lookup machinery ourselves, don't we?
AFAICT the whole point in Dart is to NOT do lookups yourself and instead
rely on js (and thus speed).

regards, Göran
Reply | Threaded
Open this post in threaded view
|

Re: A few days with Nicolas...

Herby Vojčík


Göran Krampe wrote:

> Hi!
>
> On 07/06/2012 11:25 AM, Herby Vojčík wrote:
>> Göran Krampe wrote:
>>> It turns out they do a really dirty trick - and we are unsure about how
>>> it will scale when compiling a larger Dart app to js. If there is a Dart
>>> guru lurking, please give us more info. After a "cursory look" it seems
>>> they take *all message sends* in your app (you know, that can be a
>>> fairly long list) and implement *all* of them in the base prototype in
>>> js as "return this.noSuchMethod();"-kinda. Hehe, what a hack! Clever,
>>> but... hm.
>>
>> Well, without knowing it is done this way in Dart, I proposed this
>> solution myself to Nicolas over irc... so more people think it is not
>> such a bad idea...
>
> Yeah, ok, when I wrote "really dirty trick" and "what a hack" I actually
> meant that it was "sneaky/funny" and not actually bad. Given whatever
> constraints we have to work with - it obviously is one way of doing
> these things.
>
>>> And yeah, it also means it only works for messages that are known to be
>>> sent at compile time - in other words, sure, you do have a working DNU,
>>> but you sure don't have #perform:. We are also unsure about how they
>>> produce that list, do they support all messages my app sends, or all
>>> messages my app and all the libraries I use sends? Not sure.
>>
>> Perform: I see no problem doing this in Amber so that it works the both
>> way. Shortcut the "known" method sends, and "interpret/compute/simulate"
>> the unknown ones. Of course, I would never propose such a trick if the
>> side-effect would be cutting perform: away.
>>
>> In Amber, this list is easy to produce: whenever you load a method, it
>> contains (and should in .deploy as well) the list of sent selectors.
>
> ...but (forgive me from being dense) what do you gain with these
> shortcuts? I mean, we still do the lookup machinery ourselves, don't we?
> AFAICT the whole point in Dart is to NOT do lookups yourself and instead
> rely on js (and thus speed).

I was dense, too. This was to enable to compile directly to
foo._bar_(baz) instead of to smalltalk.send(foo, "_bar_", [baz]) for
known selector baz:. And still use smalltalk.send in case of the
selector being not known at compile-time.

> regards, Göran

Herby
Reply | Threaded
Open this post in threaded view
|

Re: A few days with Nicolas...

Herby Vojčík


Herby Vojčík wrote:

>
>
> Göran Krampe wrote:
>> Hi!
>>
>> On 07/06/2012 11:25 AM, Herby Vojčík wrote:
>>> Göran Krampe wrote:
>>>> It turns out they do a really dirty trick - and we are unsure about how
>>>> it will scale when compiling a larger Dart app to js. If there is a
>>>> Dart
>>>> guru lurking, please give us more info. After a "cursory look" it seems
>>>> they take *all message sends* in your app (you know, that can be a
>>>> fairly long list) and implement *all* of them in the base prototype in
>>>> js as "return this.noSuchMethod();"-kinda. Hehe, what a hack! Clever,
>>>> but... hm.
>>>
>>> Well, without knowing it is done this way in Dart, I proposed this
>>> solution myself to Nicolas over irc... so more people think it is not
>>> such a bad idea...
>>
>> Yeah, ok, when I wrote "really dirty trick" and "what a hack" I actually
>> meant that it was "sneaky/funny" and not actually bad. Given whatever
>> constraints we have to work with - it obviously is one way of doing
>> these things.
>>
>>>> And yeah, it also means it only works for messages that are known to be
>>>> sent at compile time - in other words, sure, you do have a working DNU,
>>>> but you sure don't have #perform:. We are also unsure about how they
>>>> produce that list, do they support all messages my app sends, or all
>>>> messages my app and all the libraries I use sends? Not sure.
>>>
>>> Perform: I see no problem doing this in Amber so that it works the both
>>> way. Shortcut the "known" method sends, and "interpret/compute/simulate"
>>> the unknown ones. Of course, I would never propose such a trick if the
>>> side-effect would be cutting perform: away.
>>>
>>> In Amber, this list is easy to produce: whenever you load a method, it
>>> contains (and should in .deploy as well) the list of sent selectors.
>>
>> ...but (forgive me from being dense) what do you gain with these
>> shortcuts? I mean, we still do the lookup machinery ourselves, don't we?
>> AFAICT the whole point in Dart is to NOT do lookups yourself and instead
>> rely on js (and thus speed).
>
> I was dense, too. This was to enable to compile directly to
> foo._bar_(baz) instead of to smalltalk.send(foo, "_bar_", [baz]) for
> known selector baz:. And still use smalltalk.send in case of the
> selector being not known at compile-time.
(and for super-send)
>
>> regards, Göran
>
> Herby
Reply | Threaded
Open this post in threaded view
|

Re: A few days with Nicolas...

sebastianconcept
In reply to this post by gokr
Meh...

It's always fun to see when they gravitate to Smalltalk a bit more but not too much by failing to do the real deal all from the beginning.

It always sounds interesting but taste fake in the end.

They insist in not getting it, but don't worry world... natural selection doesn't fail... one day you'll have truly anthropomorphized CPU's and software languages

:)




On Friday, July 6, 2012 3:39:13 AM UTC-3, Göran Krampe wrote:
Hi folks!

I just dropped off Nicolas on the airport here in Sweden, he is going
home after staying with me for a few days and working together with our
common customer (HTML5 app, js mainly, no Amber there).

Now, apart from showing Nicolas the beautiful Stockholm archipelago :)
we of course also talked about Amber and where things are going with it
and lots of other stuff in the Smalltalk community.

Personally I haven't had much time at all lately for Amber, but I am
still here, don't worry.

Nicolas on the other hand showed me *awesome* Amber stuff he has been
working quite hard on, but I don't want to "steal his thunder" so please
look forward to impressive stuff Coming Soon to a browser near you,
sorry Nicolas, but I just had to tell :)

We also played a teeny bit with Dart, especially taking a closer look at
the js it produces. One thing that we were especially interested in was
how the heck they support DNU (noSuchMethod they call it) without adding
their own lookup procedure.

It turns out they do a really dirty trick - and we are unsure about how
it will scale when compiling a larger Dart app to js. If there is a Dart
guru lurking, please give us more info. After a "cursory look" it seems
they take *all message sends* in your app (you know, that can be a
fairly long list) and implement *all* of them in the base prototype in
js as "return this.noSuchMethod();"-kinda. Hehe, what a hack! Clever,
but... hm.

And yeah, it also means it only works for messages that are known to be
sent at compile time - in other words, sure, you do have a working DNU,
but you sure don't have #perform:. We are also unsure about how they
produce that list, do they support all messages my app sends, or all
messages my app and all the libraries I use sends? Not sure.

Dart is a bit dualistic in nature - in some ways it is fully dynamic,
and in other perspectives it is quite static. It will be interesting to
see where it lands in the end. Reading up on Dart it is quite obvious
that they *want* to come as close to the "Smalltalk dynamic way of live
environment interactive coding" as they possibly can. But how close can
you get with the other constraints they are trying to satisfy? Hard to tell.

What I do know though is that Amber is soon taking a few more large
steps forward - and it will be really fun to see what the community
(both the Smalltalk and the larger HTML5 community including Dartisans)
will say when Nicolas new stuff starts to land in github.

Am I a teaser? You bet I am.

regards, G�ran
Reply | Threaded
Open this post in threaded view
|

Re: A few days with Nicolas...

Ankh'nAton
In reply to this post by gokr
On 6 Jul., 08:39, Göran Krampe <[hidden email]> wrote:
> Hi folks!
>
> I just dropped off Nicolas on the airport here in Sweden,
> ...
>
> Am I a teaser? You bet I am.
>

So, when will we see a complete CMS like let's say TYPO3 written in
Amber? :)

Greets from the beautiful City of Hamburg...

Reply | Threaded
Open this post in threaded view
|

Re: A few days with Nicolas...

Geert Claes
Administrator
In reply to this post by gokr
Göran Krampe-3 wrote
...
Nicolas on the other hand showed me *awesome* Amber stuff he has been
working quite hard on, but I don't want to "steal his thunder" so please
look forward to impressive stuff Coming Soon to a browser near you,
sorry Nicolas, but I just had to tell :)
...
Göran, Nico,  any update om the "awesome" Amber stuff? :)
Reply | Threaded
Open this post in threaded view
|

Re: A few days with Nicolas...

Nicolas Petton
Hey there!

I've been very busy with other stuff and didn't have much time for Amber
lately. I plan to spend more time on it this month though :)

Nico

Geert Claes <[hidden email]> writes:

> Göran Krampe-3 wrote
>>
>> ...
>> Nicolas on the other hand showed me *awesome* Amber stuff he has been
>> working quite hard on, but I don't want to "steal his thunder" so please
>> look forward to impressive stuff Coming Soon to a browser near you,
>> sorry Nicolas, but I just had to tell :)
>> ...
>>
>
> Göran, Nico,  any update om the "awesome" Amber stuff? :)
>
>
>
> --
> View this message in context: http://forum.world.st/A-few-days-with-Nicolas-tp4638661p4642846.html
> Sent from the Amber Smalltalk mailing list archive at Nabble.com.
Reply | Threaded
Open this post in threaded view
|

Re: A few days with Nicolas...

sebastianconcept
sounds great Nico!

glad to hear that




On Fri, Aug 3, 2012 at 1:53 PM, Nicolas Petton <[hidden email]> wrote:
Hey there!

I've been very busy with other stuff and didn't have much time for Amber
lately. I plan to spend more time on it this month though :)

Nico

Geert Claes <[hidden email]> writes:

> Göran Krampe-3 wrote
>>
>> ...
>> Nicolas on the other hand showed me *awesome* Amber stuff he has been
>> working quite hard on, but I don't want to "steal his thunder" so please
>> look forward to impressive stuff Coming Soon to a browser near you,
>> sorry Nicolas, but I just had to tell :)
>> ...
>>
>
> Göran, Nico,  any update om the "awesome" Amber stuff? :)
>
>
>
> --
> View this message in context: http://forum.world.st/A-few-days-with-Nicolas-tp4638661p4642846.html
> Sent from the Amber Smalltalk mailing list archive at Nabble.com.

Reply | Threaded
Open this post in threaded view
|

Re: A few days with Nicolas...

Geert Claes
Administrator
In reply to this post by Nicolas Petton
Nicolas Petton wrote
I've been very busy with other stuff and didn't have much time for Amber lately. I plan to spend more time on it this month though :)
awesome Amber stuff news? :)