Wednesday, October 29, 2008

Types and Languages Notes

Notes from:
http://channel9.msdn.com/shows/Going+Deep/Erik-Meijer-Gilad-Bracha-Mads-Torgersen-Perspectives-on-Programming-Language-Design-and-Evolution/

Mads is a real cool dude.

Gilad is smart but very conceited.

Eric is the man.

People coming from dynamic languages get used to typed languages that have primitive type systems.

Static typing where possible and dynamic typing where necessary.

Pluggable type systems allow type system specialization that is specific for the domain (Newspeak).

Type systems provide:
Early error detection.
Documentation
Design process as it forces structured thinking about the problem.
Quick feedback
Better intellisense on code; the extra information you put in the code helps the IDE provide better feedback.

Problem is that for new problems, the type system can get in the way.

Eric makes a point that for VB, they implemented a pluggable type system that allows intellisense on an XML document based on a schema or something along the line. This is interesting because the data you are dealing with extends the type system of the language.

Mads argues that allowing everyone to extend the language with typesystems would end up with a bablification of systems. I disagree with this; it is the standard argument that people have against adding any new feature to a language in that it "could" make the language harder to use. The same argument is used to argue against lisp type macros and lots of other really really smart things. It is always hypothetical bullshit; I have never seen a single paper that backs this argument up.

All the good stuff in computer science was done until about the late 70s.

Capability based security is based on keys. Control who actually has a function pointer to the piece of functionality that does the dangerous or protected functionality.

Not sure that I feel the rest of the article is really that productive. Gilad really dislikes the modern collection of languages.

He makes a point that inertia in languages is a really big deal. It sounds like he is frustrated which I can totally understand if you try to be a visionary in the computer languages field.

Dev tools in a purely dynamic language. The types are useful for refactoring. With a pluggable type system it really helps things out a lot. The value of the types is giving a formalism to describe things and describe new things.

The VB xml implementation is completely latebound and you still get intellisense.

Thus intellisense and type systems are completely orthogonal. A problem with Smalltalk was that it doesn't talk to the external world efficiently.

Newspeak runs on squeak. Potentially the newspeak could be ported to the CLR.

No comments: