On Sun, Apr 12, 2009 at 2:50 PM, Nickolay Platonov <nick...@gmail.com> wrote:
> Hi Malte,
>
> Congratulations with launched project! Really cool, that advanced javascript
> programming techniques goes into production systems.
> I think Joose is a good candidacy to became a standard extension of native
> javascript OO (like Moose in perl).
>
> About development - the mutability branch is relatively mature and stable
> for now. It lacks some attributes features (predicate, delegating, probably
> some others),
> but in general its already suitable for real-world usage.
>
> Having a roadmap would be good, sure.
>
> I'm currently planning to spent a little time for polishing (some
> refactoring, comments, more tests etc). I'm sorry, some features are
> implemented with breaking
> backward-compat (notably class methods). I'm leaving this to your judgment -
> its generally possible to write some glue-compatibilty code, though
> migration is not complex..
Can you elaborate on the exact breakage. I leaning toward backward
compat. Is there a difference in call semantics or only with advanced
stuff like inheritance?
> My further plans are:
> - implement distributing standard (Ingy promised to help) to allow js
> modules to be installed (like perl modules with "make, make test, make
> install")
Very interesting. I know Ingy already made something similar.
> - write a full-featured bridge to Ext3 (will be released on next week)
Cool.
On a further note. Do you have recent performance numbers? How are we
doing. I'm personally not really worried about runtime performance,
but startup time is important for me and since Joose is self-hosting
that is kind of equivalent. By the way: Could you give a quick
overview of the mutability branch. Would that allow us to serialize
Joose code?
I developed a full serializer for JavaScript for the bespin project:
http://hg.mozilla.org/labs/bespin/file/e5f3bbce9abf/frontend/js/bespin/worker/worker.js
We use is to enable moving code with runtime state into workers
(threads). This might be perfect to serialize Joose code and get
parse-only startup time.
Bye
Malte
> - re-write Symbie with a new bridge
> - implement a thin wrapper around DBIx::Class (probably with JSORB)
>
> As about JS on GoogleApp+Rhino - that sounds interesting (cloud computing is
> always interesting)
> But I'm currently driven by practical need - I'd like to create the
> underlaying infrastructure (like Joose + distributing) and high-level
> framework (Symbie), which will allow
> create web-sites, which run almost completely in browsers.
>
> I'm still open here - if you have an interesting startup idea, based on
> GoogleApp+Rhino - I'd be glad to participate.
>
> Regards, Nickolay
>
>
> On Sun, Apr 12, 2009 at 12:21 PM, Malte Ubl <malt...@gmail.com> wrote:
>>
>> Hey Nickolay,
>>
>> as you knwo I currently spent most of my open.source time working on
>> bespin. However; I still have quite a lot of time left work my other
>> projects (the big work project finally went live and things settled
>> down).
>>
>> What are your immediate plans for Joose development?
>> Maybe we should have a Roadmap of what is needed for Joose 3.0
>>
>> One thing that I currently find really interesting is JS on Google App
>> Engine via Rhino. If you're interested in that topic I'm sure I could
>> get you an invite.
>>
>> Bye
>> Malte
>
>
Good, we should do that. Should think about the behavior of
addClassMethod, too, but that is of less importance. Accessing
arguments is also expensive and makes optimizations by TraceMonkey,
etc. impossible.
>> Is every method call now a call to a wrapped method because it might call
>> SUPER?
>> There is a dirty trick around this by calling toString on the method
>> and looking for SUPER to find out whether the overhead is neccessary.
>
> I thought toString dont works in IE6,7? The overhead here is minimal - its
> only a single call to 'closured' function
> with some properties "shuffling", should be ok here.
But a cost on every call right? In my experience
Function.prototype.toString/toSource works perfectly on all of our
target platforms.
>> If methods retain their method object we could provide for a
>> serializable form which knows how to create the closure at runtime.
>
> Yep, its possible. But I just thought about a 2nd limiting factor - file
> size.
> It can grow significantly, we need to roughly estimate it first somehow..
Should be now problem with minimization and especially gzipping.
>> On a related note:
>> I developed a very simple meta class that instantiate Joose classes
>> lazily on first instantiation. I'll let it rest for a while and then
>> put it into core.
>
> Really cool idea - it can dramatically reduce startup time for Ext bridge.
Its really simple. You basically postpone the call to
initializeFromProps to as late as possible.
Cheers,
Malte
> Regards, Nickolay
>
>
>
>>
>>
>> Bye
>> Malte
>>
>> On Tue, Apr 14, 2009 at 11:15 AM, Nickolay Platonov <nick...@gmail.com>
Hi all,
Has anybody been working on serialization yet?
I would like to use it for my classbrowser based mini ide. The goal of
the ide is to do live client-side development in the classbrowser and
when finished allow to export the current state of the meta model as
javascript files. Are the reflective capabilities of the joose
mutability branch suited for this? Or is this beyond what is possible?
I would like to use it for my classbrowser based mini ide. The goal of
the ide is to do live client-side development in the classbrowser and
when finished allow to export the current state of the meta model as
javascript files. Are the reflective capabilities of the joose
mutability branch suited for this? Or is this beyond what is possible?