April 26th, 2005

  • evan

language geeks

I think I've written before about the two ends of language design and how they approach each other. Briefly, I see two camps: some people propose logically-constructed, internally consistent languages and then relax/restrict/hack them to be implementable. I think of the functional languages as examples of this, particularly Haskell. The other camp works from implementation towards making the languages more pleasant/consistent, and I think of C++ as the best example of that.

I mostly find only the former camp interesting*.

Because of that, it's easy for me to forget there's this whole other group of people who e.g. concern themselves with the corners of C++. But I work with some of them and they have discussions on mailing lists that link to A Proposal to Add Move Semantics Support to the C++ Language.

I can read that and know that it was written by language geeks (and be amused by the section headed "Binding temporaries to references") but ultimately think those geeks and geeks like me have nearly nothing in common.

* One of the most interesting aspects to me of O'Caml is that the guys who make it are these crazy language theorists who also happen to be architecture/performance nuts, and so their language is carefully tuned to suit aspects of both. (Theory: Coq, which comes from the same institution and is written in O'Caml, was recently used to verify the four-color theorem proof. Practice: Xavier grumbling about IA64 and how to optimize O'Caml for it serves a random example.)
  • evan

monotone for linux kernel

Linus is dropping BitKeeper and plugs monotone:
PS. Don't bother telling me about subversion. If you must, start reading up on "monotone". That seems to be the most viable alternative, but don't pester the developers so much that they don't get any work done. They are already aware of my problems ;)
Props to graydon!

Speaking of monotone, an recent unrelated search produced their appendix on hashes as identifiers, which is worth a read regardless.