burgess's blog

Tern clarified

I have begun to fear that my initial description of Tern was unclear, as a result of attempting to explain to an unknown audience that Tern does absolutely everything under the sun, including what they want. There are two main confusions in that, and I would love to clear them up.

First, Tern does not do everything. Computers, being Turing complete, might be said to do everything, but in fact, they are just a general tool for running programs; all they do is run programs. The programs do everything. In analogy, Tern doesn't do everything---it is a very powerful, very general tool, but it is the set of patterns that defines what can be done. One of the central points of Tern is that Tern itself is simplistic, probably consisting of only one syntactical element. All the learning is figuring out the patterns and their relationships, and that is domain-specific learning, depending on what you want to describe.

Proposals submitted

I have submitted three proposals to Google and am, with everyone else, holding my breath. I wasn't able to post them here for comments first, but they are there now. That language proposal (`Tern') is probably biting off more than I can chew, but it's one of those projects that has grabbed me and won't let go---I'm really excited about it.

Comments are always desired. Good luck everybody!

Tern: A descriptive language

Synopsis and benefits

Tern is a descriptive language for defining subjects by the behaviors and properties they share with others: That is, the patterns they exhibit. The name `Tern', which is a kind of sea-bird, derives from the last four letters of `pattern'. `Pattern', in this case, is used as in the context of `Design Patterns', the movement based on the seminal book of that name and the work of Christopher Alexander.

Tern is a useful tool for the design pattern community itself, providing a language for describing patterns and pattern languages (glossaries of patterns) that is itself a standardized pattern language.

Verification: An idiom and a tool

Synopsis and benefits

Verification is an idiom underlying tools such as make and its competition, automated testing tools such as DejaGnu, monitoring tools such as sysmon and mon, and standards-testing tools such as lintian.

A single tool will be written to use this commonality to solve these broad families of problems in a way that feels tailored to each and brings more power to each yet is the same for them all. This tool can be used to replace or supplement any of the tools listed above, or be extended to any problem, currently known or yet to be identified, with the underlying verification idiom (explained in Project details).

The identity service (proposal)

Synopsis and benefits

Users moving between computer systems---particularly when entering a new one such as when arriving at a new school or a new job---often struggle with getting login accounts set up, re-creating their favored configurations, and even the enormous challenge of updating their new e-mail address or other contact information with their friends.

A standard protocol for identity servers to collect this information and control access to it would provide for simple, configuration-less migration of users, an easy way to get public information about users, and a simple way to organize the personal data that would otherwise be tossed about between less-constant services, such as instant messenger profiles and names.

Syndicate content