Loading user information from Channel 9

Something went wrong getting user information from Channel 9

Latest Achievement:

Loading user information from MSDN

Something went wrong getting user information from MSDN

Visual Studio Achievements

Latest Achievement:

Loading Visual Studio Achievements

Something went wrong getting the Visual Studio Achievements

Gilad Bracha: Inside Newspeak and Objects as a Service

31 minutes, 43 seconds


Right click “Save as…”

Lang.NET Symposium 2009 was held on Microsoft's campus (make sure you watch the talks, which are available for your viewing pleasure). We were of course there and conducted several interviews with some of programming language design's brightest thinkers.

Here, language design master Gilad Bracha discusses his Newspeak programming language. What is Newspeak and why was it created? What general problems does it solve that can't be done with already existing languages and tools? What does it facilitate, really? We dig into the fundamental ideas, history and future of Newspeak. Gilad was kind enough to keep the discussion at a level appropriate for a broad technical audience and not just for his fellow scientists.

Newspeak People say: "Like Self, Newspeak is message-based; all names are dynamically bound. However, like Smalltalk, Newspeak uses classes rather than prototypes. As in Beta, classes may nest. Because class names are late bound, all classes are virtual, every class can act as a mixin, and class hierarchy inheritance falls out automatically. Top level classes are essentially self contained parametric namespaces, and serve to define component style modules, which naturally define sandboxes in an object-capability style. Newspeak was deliberately designed as a principled dynamically typed language. We plan to evolve the language to support pluggable types."

If you want to understand the thinking behind the thinking of Newspeak, then tune in. Please go ahead and play around with Newspeak, Niners, and provide Gilad and team with feedback.

How far could the notion of Internet-distributed synchronizable objects, or objects as a software service, be taken? 



Follow the discussion

  • Oops, something didn't work.

    Getting subscription
    Subscribe to this conversation
  • Bent Rasmussenexoteric stuck in a loop, for a while
    A superb presentation of the benefits of Newspeak!
    - capability based security
    - very generic module system
    - almost functional
    - network object synchronization
    - etc
  • CharlesCharles Welcome Change
    Now play with it, man!
  • William Staceystaceyw Before C# there was darkness...
    I was thinking about something like this today based on other Lang.Net talks.  Lets take a popular need like Quickbooks or MS Accounting.  Typically, the "store" runs on a pc/server at the office.  So to get remote to it to check a customer balance (for example) is kinda a lot of work and involves:
    1) fire up a browser.
    2) start gotomypc, or logmein or live mesh and get a remote desktop session.
    3) Login to remote windows.
    4) wait for desktop to paint remotely.
    5) start quickbooks or msAccounting
    6) login.
    7) find customer and drill in, etc.

    Not climbing a mountain, but a lot of work.  Now do it 10 times a day.

    Now say a remotable object represents behavior (UI) and data (a customers statement history) and security.  You can drag that onto your desktop from the service and have it sync automatically.  So at all times I can have that customer or many customers on my desktop that shows there balance (maybe I could even drag other View objects onto this object for skinning UI).  The comm part works via Azure to surface the Object and Azure backend talks to QB service via .Net Services.  You could have a another Object/Behavior that is a collection container to host a collection of Customers so you can orginize and summarize many customers in a list.  So now you have a virtual desktop app that is composable and how you want to see and organize your data on your desktop - like a custom Dashboard.  But it is just soft links (i.e. shortcuts) to URIs in the cloud.  You can even email your customer their own account link so they can have it to review and print stuff they way they like.  Colaboration/interaction becomes the next plus.  Maybe now send all your customer links to a 3rd party to handle AR (invoices, statements) and collections, address changes, etc.  Same ideas with vendors and checking accounts.  See account balances in "gadget" objects, post a check or visa charge to have it recorded back to mother, etc

    Trying to get my head around how this compares/contrasts to using things like LiveMesh sync and ClickOnce today - because you could do much of this today without remotable objects using more brute force methods.   Interesting space.
  • rhmrhm
    Haven't had time to watch the video yet, but I have to ask: Is Newspeak a reference to George Orwell's 1984, or is it just a co-incidence? Smiley
  • Vesuviusvesuvius Count Orlock
    It is Nineteen-Eighty-Four Big Smile

    I must confess thinking the same though.
  • I don't know the official answer, but my guess is that yes, it is most definitely a reference to 1984. In his Lang.net talk, he introduced himself as being from the Ministry of Truth Smiley.
  • CharlesCharles Welcome Change
    Indeed. Gilad explains the reasoning behind the name in the documentation for the language. Orwell's Newspeak has a vocabulary that grows smaller over time. This is a characteristic that programming language vocabularies do not have; they typically increase in size over time as they evolve to enable more expressiveness to compose solutions to new problems (and for comaptibility reasons removal of language features is almost always a bad idea...). And, by now, you should get Gilad's sense of humor Smiley

  • Pure and utter WIN is that name. You just have to love Gilad Smiley.
  • CharlesCharles Welcome Change

    Very thoughtful, staceyw. In fact, I think a Newspeak object service on Azure would be a fun project and would provide for really compelling applications that evolve, at the object level, without the need for explicit recompilation by the author. Further, imagine the model where the objects you use can come from some distributed service in the cloud and the pain of versioning is completely removed from your plate, by design. You could imagine an ecosystem of developers who write and maintain object services that you consume at design time once, then the runtime system takes care of the synchronization with the cloud, object versioning, etc - you don't need to compile to incorporate updates, etc.

    I posed this idea to Gilad after the interview and he smiled approvingly. So, this is not insane. Smiley As mentioned in the interview this aspect of Newspeak is not fully baked and is on Gilad's plate of futures.


  • CharlesCharles Welcome Change
    You know it. Gilad is a treasure. I'd love to see him at Microsoft. He'd be a very welcome addition to our IQ Smiley
  • CharlesCharles Welcome Change
    He talks about this at 05:40 in this conversation. SPend 30 minutes with this. It's well worth the time. I seldom watch videos I'm in, but this one is different given the concepts. Watching it now.

  • Allan LindqvistaL_ Kinect ftw

    so there is no "new" in newspeak i guess? only factory methods? interesting stuff Smiley
    the synchronized objects are cool but it seems very hard to find one solution for this that works for everyone.. consider TPL, there are so many ways to do concurrency that its not good to have it in the language and thus lock it in.. anders talked about that a while back i belive.
    but if gilads vision of a shrinking and mutable language comes to pass however, this might be less of a problem Smiley (still a problem though i think)

    surely gilad knows that wpf is available for xp? :O maybe it wasnt available at the time..

  • I found this very thought provoking. More like this, please Smiley

    On the subject of capability-based security (and keeping in mind that all I know of Newspeak is this interview) I would have to wonder if this might increase coupling between components.

    For example, suppose that create a class that manages session state. In v1, session state is always maintained in memory. In v2, I would like to be able to have the option of session state being pushed to the DBMS. If this were implemented in Newspeak, does this mean that consumers of my session state class have to be re-coded to provide my class with a DBMS "facility"?
  • THeaveyTHeavey theavey

    I tried the Lang.NET and "watch the talks" links but was not able to get to those pages. Any tricks?

  • CharlesCharles Welcome Change



Remove this comment

Remove this thread


Comments closed

Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.