Gilad Bracha: Inside Newspeak and Objects as a Service
- Posted: Apr 30, 2009 at 4:41 PM
- 54,615 Views
- 15 Comments
Download
How do I download the videos?
- To download, right click the file type you would like and pick “Save target as…” or “Save link as…”
Why should I download videos from Channel9?
- It's an easy way to save the videos you like locally.
- You can save the videos in order to watch them offline.
- If all you want is to hear the audio, you can download the MP3!
Which version should I choose?
- If you want to view the video on your PC, Xbox or Media Center, download the High Quality WMV file (this is the highest quality version we have available).
- If you'd like a lower bitrate version, to reduce the download time or cost, then choose the Medium Quality WMV file.
- If you have a Zune, WP7, iPhone, iPad, or iPod device, choose the low or medium MP4 file.
- If you just want to hear the audio of the video, choose the MP3 file.
Right click “Save as…”
- High Quality WMV (PC, Xbox, MCE)
- MP3 (Audio only)
- MP4 (iPod, Zune HD)
- Mid Quality WMV (Lo-band, Mobile)
- WMV (WMV Video)
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?
Enjoy
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?
Enjoy
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.
Follow the Discussion
C
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.
I must confess thinking the same though.
C
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.
As mentioned in the interview this aspect of Newspeak is not fully baked and is on Gilad's plate of futures.
I posed this idea to Gilad after the interview and he smiled approvingly. So, this is not insane.
C
C
C
so there is no "new" in newspeak i guess? only factory methods? interesting stuff
(still a problem though i think)
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
@25:00
surely gilad knows that wpf is available for xp? :O maybe it wasnt available at the time..
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"?
I tried the Lang.NET and "watch the talks" links but was not able to get to those pages. Any tricks?
http://www.langnetsymposium.com/2009/talks.aspx
C
Remove this comment
Remove this thread
close