Wandering through linear types, capabilities, and regions

A survey by François Pottier, which links a number of concepts and clarifies a cluttered landscape. Spotted via LtU.



What's Under the Hood of Google's App Inventor for Android? Scheme!

Perhaps not too surprising, as Hal Abelson (of SICFP fame) is involved. Spotted by Mitch Wand. Thanks, Mitch!



Three resources on climate change

I recently came across two excellent resources on climate change, and also list a third which I encountered a couple of years back.



Engineering Values in IT

A joint study by The Royal Academy of Engineering, the Institution of Engineering and Technology and the British Computer Society. The authors include Tony Hoare and Martyn Thomas.

"This study was undertaken by a group of Fellows of The Royal Academy of Engineering, the British Computer Society (BCS) and the Institution of Engineering and Technology (IET). The group focussed on how greater professionalism could be brought to bear on the tasks of specifying, procuring or developing software-based IT systems."

The report comes down strongly in favour of promoting chartered engineer status for IT professionals (which is currently rarely found in practice). The introduction notes university courses should reflect "the fact that most developments involve modifying or interfacing with pre-existing software." The conclusion points out "Testing is not enough" and "Errors should no longer be regarded as inevitable".



Objects as Modules in Newspeak

Objects as Modules in Newspeak, by Gilad Bracha et al.
We describe support for modularity in Newspeak, a new programming language descended from Smalltalk and Self. Like Self, all computation — even an object’s own access to its internal structure — is performed by invoking methods on objects. However, like Smalltalk, Newspeak is class-based. Classes can be nested arbitrarily, as in Beta. Since all names denote method invocations, all classes are virtual; in particular, superclasses are virtual, so all classes act as mixins. Unlike its predecessors, there is no static state in Newspeak, nor is there a global namespace. Top level classes act as module definitions, which are independent, immutable, self-contained parametric namespaces. They can be instantiated into modules which may be stateful and mutually recursive. Naturally, like its predecessors, Newspeak is reflective: a mirror library allows structured access to the program meta-level.
A simple, principled, and intriguing language design.

Decades ago, one of the major advances in programming language design was the claim that programming-in-the-small and programming-in-the-large require different constructs. Newspeak (along with Scala) reverses this trend, claiming classes are a good fit for both.

Type families represent a key example of program structuring that is difficult to support with current type systems (see, e.g., 'A statically safe alternative to virtual types' Kim B. Bruce, Martin Odersky, and Philip Wadler, ECOOP 1998). Newspeak, by virtue of using late binding everywhere and having no type system, supports type families easily. Thus, I view Newspeak as posing a key question: what is the type system that will support type families as elegantly as Newspeak?

Newspeak's innovation of prohibiting a global namespace is also interesting. Although Newspeak is very much an imperative language, this aspect is right in line with functional languages, as it argues that sometimes making a dependency painfully explicit is the better course, as it supports parameterization and reuse. In particular, this provides a simple and principled solution to the same problems tackled by complex frameworks for dependency injection.

This page is powered by Blogger. Isn't yours?