I monitor a lot of different things but don't often go much deeper
than the home page of most projects.  Things still percolate through.

On Thu, Mar 17, 2011 at 3:27 PM, Inge Solvoll <[email protected]> wrote:
> This is funny :) I have been going through the excact same process lately,
> discovering new ways of organizing my javascript code. I too found that I
> could get away from the moving target of "this" by applying a more
> functional style. And that it is quite easy to enforce the separation of
> public and private by returning an object instance containing only the
> public methods and fields, and have the public methods call the private
> methods inside the function context.
>
> I didn't really study this too hard, it just came naturally while working
> with jQuery and TDD. We have this guy in Norway who wrote an awesome book
> about test driven javascript, I've learnt a lot from reading his book and
> attending one of his talks. Most javascript programmers have lots to learn
> from him, his website here: http://cjohansen.no/.
> Pub/sub sounds great. The bad reputation of javascript isn't necessarily the
> language's fault, the bad programmers should also be blamed. We jump right
> into low level stuff like browser differences and events without thinking
> too much about creating higher level abstractions. I've been looking into
> backbone.js, a very good example of an abstraction that REALLY makes a
> difference in client programming. Do you guys draw inspiration from sources
> like that?
>
>
>
> On Thu, Mar 17, 2011 at 5:56 PM, Howard Lewis Ship <[email protected]> wrote:
>
>> As you might tell from my blog, I've been doing a lot of thinking over
>> the last few days (and weeks, and months) about what I would like to
>> see in the JavaScript support for Tapestry 5.3/5.4.
>>
>> First note the split releases: I think it will take more than one
>> release to get it "right".  I'd like to introduce some stable ideas in
>> 5.3 and build on them in 5.4.
>>
>> My blog discusses the packaging/namespaceing approach:
>>
>> http://tapestryjava.blogspot.com/2011/03/better-namespacing-in-javascript.html
>>
>> I'm prototyping this inside TapX and seeing great results.  More
>> readable, more succinct, easier to build and debug.  You don't get
>> tripped up over "this" because "this" is no longer relevant; it's a
>> more functional style of programming.
>>
>> I think another area to scope out would be a simple publish/subscribe
>> system running on the client side.  Currently, we are "abusing" the
>> event system to deal with flow of control issues, such as requesting
>> fields to perform validation checks, or notifying the world that a
>> Zone has updated its content.
>>
>> I think there some value in separating these two things, so that we
>> can publish a notification about an element without firing an event on
>> that element.  One benefit is that it helps de-couple logic from the
>> particular JavaScript substrate (my term: currently the substrate is
>> Prototype/Scripaculous).  A second benefit is that it should be
>> possible to have notifications that are about other abstractions
>> besides elements.  Third, a client-side pub-sub system should become a
>> very natural way of hooking together a server-side push system into a
>> Tapestry application in a uniform way.
>>
>> I haven't done too much thought about what this will look like exactly.
>>
>> I kind of like the idea that when you register a listener for a
>> notification, you receive an object with which you can pause and
>> unpause notifications (much like Prototype 1.7's on() function).
>>
>> Do you register a notification by a string name or by an arbitrary
>> object?  Are notifications in some kind of hierarchy?  Perhaps for
>> notifications on DOM elements, there's some thought of bubbling (or a
>> more generic concept of a filter between the publisher of the
>> notification and the listeners for the notification).
>>
>> I'll jot down my thoughts on an API shortly.  Have to get to work now!
>>
>>
>> --
>> Howard M. Lewis Ship
>>
>> Creator of Apache Tapestry
>>
>> The source for Tapestry training, mentoring and support. Contact me to
>> learn how I can get you up and productive in Tapestry fast!
>>
>> (971) 678-5210
>> http://howardlewisship.com
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>>
>



-- 
Howard M. Lewis Ship

Creator of Apache Tapestry

The source for Tapestry training, mentoring and support. Contact me to
learn how I can get you up and productive in Tapestry fast!

(971) 678-5210
http://howardlewisship.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to