The "Keynote" this morning was provided by Gilad Bracha. Gilad's leading the Newspeak effort at Cadence. This talk was similar, but not exactly the same, as the one given at Potsdam and video taped a while back. Niall Ross was busy bashing out minute by minute notes on the talk, I'll leave that report to him. I'll just highlight a couple of the high level thoughts shared and my thoughts about them.
Nested Classes
This is perhaps my most favorite part of Newspeak. Newspeak allows a class to be declared in the scope of another class. It has no distinct namespace model, or perhaps better said, Classes (Behaviors)
are Namespaces. I've been enamored with this concept since I observed Smalltalk/X doing this many years ago.
Beta did it. I've felt for a number of years, that the VisualWorks namespace model would be better served by doing something simple like this. The devils always been in the details, and I admit to truly never thinking out all the edge cases. But seeing yet another language inventor embrace this model, gives me strengthened faith that it would be the right way to do namespaces. It builds the language semantics from fewer reusable blocks, and I think that's a good thing.
Aliens
One of the new things I hadn't heard about yet in the Newspeak world, was how they do foreign function interfacing. I hope to see more of this later this afternoon with Vassili. But what I understand is that you treat things like DLLs as Alien objects, and the claim is, you do much less "special syntax" to interface with them. More later on this maybe.
Mirrors
All reflection in Newspeak is done via Mirror objects. By separating them into separable objects, you can control the degree of reflection you want to support. You might just provide a mirror that can tell you things about your objects. Or it might be the full blown thing we are used to in Smalltalk that lets you find out how things are composed, as well as change them. I find this kind of appealing. Even primitives are done with a mirror like thing. You get a mirror for the VM. Making it pluggable like this means you can have more or less "primitive" support for your language execution.
Security
This is where I wonder if Newspeak won't stumble. I'm not predicting it will. I'm wondering. Gilad made the point that historically Smalltalk came from a sort of "It's a Small World" environment where the impetus was exploration and learning, no boundaries. But that in the real world, there are people who write malware and spambots and that kind of thing. So being able to support security seems a strong undercurrent of Newspeak design. For example, class extensions (or "Monkey Patching" as Gilad has called it) are discouraged. Skepticism on my part is not based on any technical grounds, but at a higher philosophical level (I think this is appropriate with Smalltalk-ish systems, because they allow us to anthropomorphize so easily). I note that the world I live in is very imprecise. And it's very insecure. I have lots of weak security around me (I have locks on my doors and car, but I often don't use them). My bank is pretty secure, but it's added on. In the end, I keep the real world security around me to a bare minimum, because it makes life easiest and most pleasant. Can one hope that if we put too much security in a our programming expressions, that we won't find them tedious and onerous to deal with. Just random musings.