A Conversation with Gilad Bracha

Play A Conversation with Gilad Bracha
Sign in to queue


Recently, I got the chance to spend a few days at the Emerging Languages Camp at OSCON 2010 in Portland, Oregon. It was great to learn about so many new (and not-so-new) approaches to programming language design. The event was set up to ensure the maximum number of sessions in an 8-hour chunk of time, and you will soon be able to watch all the sessions on the Emerging Langs website (perhaps in a few weeks, so keep on checking!).

I caught up with a few folks after each long day of sessions, and over the coming days I'll be posting those conversations here. First up is one of my favorite language designers and personalities, Gilad Bracha. Gilad has no problem expressing his opinions and this is a great trait. He's also a great language designer and his Newspeak programming language is steadily maturing. In this conversation, we discuss a whole range of topics, from what's new in Newspeak to what's wrong with the web (from a languages and tools point of view). As always, this conversation just happened (C9 Classic, as it were...). We sat down, turned the camera on, and this is the rabbit hole we jumped down. It's always great to chat with Gilad.

Tune in.




Right click to download this episode

The Discussion

  • User profile image

    I believe the F# pattern matching feature is called Active Patterns. The idea of patterns as reusable and extensible classes in Newspeak sounds great. If the syntactic footprint of this feature is low then why not. Pattern matching is a pretty pervasive feature after all.

    I'd like to try out the Newspeak Hopscotch IDE at some point in time, if it's publicly available to try out.


    Now about the connection between {C,D}LR, JVM and Newspeak, it sounds from Gilad's description like there's a very long way before Newspeak can become a natural citizen of either platform in terms of their intermediate languages (MSIL, Java bytecode). The Java dynamic invoke is perhaps just bytecode support for dynamic invocation, which then doesn't address the more demanding class dynamism Gilad mentions.


    The Spur research prototype, previously presented on 9, is impressive, however I wonder how well it optimizes when one starts messing with prototypes, adding and removing functions to objects and prototypes. That said, the idea of pay for play is great: if you don't do very dynamic things, you don't pay much and dynamism is optimized away.

    Newspeak capability based security is truly elegant but in terms of Javascript, as Gilad mentions when you can't even protect object members and have to resort to tricks like closures, it's not really adequate - it's a hazardous zone to move around in without closures and with them, it's inefficient.


    I wonder if Microsoft research on low-level typed assembly language (TAL) is the way forward; how will that mesh with dynamic languages and verification requirements. Can you potentially rewrite and host the CLR on TAL? And perhaps create new dynamic run-times that interoperate on the TAL level. That sounds like a good topic Charles!


    Now looking forward to the Jonathan Shapiro interview!


    Thanks Smiley

Add Your 2 Cents