John Robb asks... isn't The Register just a poorly formatted weblog?
Good point. I personally care about...
Weblogs, Wikis, Pages. If it has useful information and I can find it and make sense of it, it's good to me.
There's a discussion on /. about non-professional books for science and math.
Going back a few years the book Science Matters is a really good, broad, but short and readable-on-a-beach survey of science. Just enough of basic science to keep you out of trouble.
I'd like to elaborate on the interesting ways Kelsey's transformation approach addresses the following features of virtual machines (from Ted Leung).
"Virtual machines get you portability, the ability to do JIT compilation (although this could be done in native code apps), and security (via sandboxes, etc)."
Portability Kelsey's approach gets you portability to any low level instruction set. Language providers translate to a high level intermediate language. In his case this is Scheme, which is essentially the call-by-value lambda calculus.
Only one programmer has to provide the translation to any specific instruction set, whether it is for a virtual machine or actual metal. Everyone else rides for free.
JIT The intermediate language can be passed around (in a concise format such as the one used by SISC) until such time as it makes sense to transform it into a specific low level instruction set. This has the benefit of delaying the commitment of target architecture longer than a virtual machine architecture provides. Specific distributed objects could be migrated to some unspecified target at run-time and compiled to efficient code, along the lines of Kelsey, et al.'s Kali Scheme.
Security This is the most interesting test of all of the high-level transformation approach. Basing the intermediate form on function application is a beneficial form of security. The high-level model of computation can be analyzed and/or encapsulated more effectively than a low level byte code.
Low level virtual machines are an undesirable model for security. Kelsey's mate Jonathan Rees describes how this alternative works in his and Kelsey's implementation of Scheme.
I would venture that the resource constrained platforms are going to be passing relatively small documents anyway. Even the more capable systems should be passing multiple small documents instead of huge documents.
Let's just use gzip.
As predicted by Dick Cheney on le show, the Dr. David Kelly story has slipped from America's journalistic radar. But it's still big news in the UK, as is the subsequent war between Tony Blair's government (backed by Rupert's newspapers) and the BBC. I have become a believer in reincarnation: Spiro Agnew is alive and working for Tony Blair, and, in this country, Dr. Fred C. Schwarz (of the Christian Anti-Communism Crusade) has come back as a leggy blonde anorexic.
James Robertson asks the 64-bit question for Smalltalk.
Implementing dynamic languages with 64-bit words always had an appeal to me for this reason:
You can encode 64-bit floats as literals. Everything else can be encoded within a NaN. The result is that arrays of large floats are more efficient in space and time, enabling more efficient analytical computing. You can also encode more information in an immediate object, like characters with styles, full 32-bit integers without shifting tag bits, etc.
I am beginning to believe this sincerely. Note that it does not say "only weapon", but it does say "most compelling"...
Jython, lest you do not know of it, is the most compelling weapon the Java platform has for its survival into the 21st century
Franz now has a SOAP implementation for Common Lisp. Great news.
"When I last looked at SOAP it was annoyingly complex. But that doesn't mean it's not important..."
Perl 6 looks to be delivered on the Parrot virtual machine, which looks to be more and more suitable as a target for the full Scheme language.
If the goal is truly to provide a universal base for executing any language then toss out the virtual machine altogether. Or at least abstract it away for language providers.
Don't make them twiddle with bits just because they implement "compilers". Let them simply translate to another higher level language, as Richard Kelsey demonstrated well over ten years ago!
We (the industry) seem to be stuck in a virtual machine rut. Has anyone asked why that's a good idea?
My track coach in high school told me what "assume" means 25 years ago. We base soooo much on unproven assumptions in this industry.
"Perl 6 to Scheme. Come in, Scheme."