Sunday, April 25, 2010

msjs programming demo

I recorded a little screencast showing how to program in msjs. Let me know what you think!

Knuckly interfaces

I loved Marcus Phillipstalk at the san francisco javascript meetup on Friday. He's got a great presentation style and he clearly knows his stuff.

In this case, that stuff was the implementation of OOP patterns in javascript, and he distinguished among the competing inheritance styles, arguing for "functional inheritance". I hadn't heard that name for that pattern before, but I did wonder: with a name so close to a whole different programming paradigm, why not just take the leap over to the dark side? When I asked Marcus about this, he voiced his support for encapsulationI've been critical of OOP for a long time, but Marcus' talk made me think about why.

Saturday, April 24, 2010

The importance of bikeshedding

I really like what's going on with CommonJS. I love how an ad-hoc standards group has formed around a real integration problem. But I'm embarrassed to say that I haven't been following it. Until now, I haven't been worried about interoperability. But now I really want to port msjs to node.js, and I'm paying attention.

Foreign languages


I saw a nice presentation from @brmichel at the San Francisco js meetup last night. His talk was entitled "Not JavaScript" and pitched the benefits of the Objective-J language over javascript. Objective-J has been around for a while, but it seems like there's a small resurgence in interest in compiling alternative languages into JavaScript. For the purposes of this post, I'm not talking about projects like pyjamas and GWT that compile exsiting languages into javascript, but new languages that were invented to solve some of the problems in javascript.

Not "new"



This article from the Facebook engineering team captured a lot of what I've been saying about an emerging new way of building scalable systems for the web. I've been drawing a little table like this:
OldNew
Relational DBsDocument DBs
IDsUUIDs
IndexingMap/Reduce
Function callsMessage passing
Shared, mutable dataImmutable data