Gilad's keynote is up - he's one of the guys who worked on the Animorphic system (that was eventually bought by Sun). Now that's he's out of that world, he's working on Newspeak, a direct derivative of Smalltalk. I like his style based on the title of the talk :)

Why are they doing a new language? They think that with the changes in the computing ecosystem (security, the net, etc) - they wanted to move forward. The three places they wanted to change:
- Security
- Modularity
- Interoperability
Newspeak vs. Smalltalk:
- Messaged Based
- No Static State
- Classes can Nest
For example on Messages:
t := Array new: n.
^t
The bolded stuff is not messages :) They've added syntactic sugar to make more stuff message sends.
That gets into access control - in Smalltalk, all messages are public, so to encapsulate, you use inst vars and/or blocks. If you make everything a message send, then everything is public. So, they've added notions of public/protected/private.
No Static State - no globals, no class variables, no pool dictionaries (etc). No static state, period. This helped them work towards an object capability model. On the security front, there's reflection - you don't want to lose it (it's really useful), but it is an issue. They are following the Self model and using Mirror based reflection.
So now we're looking at Newspeak running - they use Squeak as the underlying environment, but they have ditched the look and feel completely. I think you might be able to see the environment when I get the video out :)
Modules: every module is its own sandbox.
In pursuit of "all messages, they've added implicit receivers. Lookup proceeds up the lexical scope chain (such that they are visible). That's a change from Smalltalk :)
Wow - they've taken the message passing thing right down. No primitives - instead there's a VM mirror, and you send messages to that. Sounds like a very cool idea to me. FFI is handled by the notion of "Aliens" - you implement an Alien layer and message it.
World changing things since the origin of Smalltalk: Multicores - need a concurrency story. Actors are one way to get there, and they intend to go that way. They haven't got that all figured out, but they figure it will be more like "E" than like Erlang. There's also functional programming, and they can support that.(assuming functional libraries - that would be a separate dialect).
Then there's the net and cloud computing - Javascript is the assembly language, and the browser is the OS. Back to the Future - timesharing and X-Terms? There are lots of downsides:
- UI issues
- connectivity (fast, cheap, reliable)
- Reboot constantly (i.e., session expired)
Gilad prefers "Network Serviced Applications" - always available, uses network, but does not require it at all times. "Run locally, think globally". Want hotswapping at the client, but in a well defined, modular fashion.
Newspeak status:
- Expect some tweaks to syntax and semantics
- Implementation not complete (libraries, tools)
- Will be Open Sourced under Apache 2.0
- Lots of work to do
Technorati Tags:
smalltalk, smalltalk solutions