I was recently thinking about some criticisms of some very flexible programming languages - largely how some people don't like them because they have no idea what constructs people are going to use, and often run into styles or concepts that they don't personally like. This is a weird thing to think about - on one hand, it seems sort of unfair to criticise a language for effectively implementing a lot of different contentious features (especially if these things are well-done), there's a utility to be able to say that "I have mastered X" and being able to be reasonably confident that if people show them a program, they'll be able to work on it/debug it/etc so long as it doesn't tie into concepts too far outside the normal realm of programming. In some ideal egocentric world, whatever we like in languages, as people who can speak code, would be all there is, and everyone else would have skills and preferences that are substantially similar to ours. With a very flexible language, coding conventions become much more important, but these conventions are only rarely named and are generally not good resumé-fodder. These conventions also often rely on a certain amount of code that goes with them to support working within the concepts - over the course of doing programming in the private sector and at CMU (Robotics dept), I've seen some amazingly sophisticated libraries/conventions in C (and C++) that extended those languages in wildly different directions, from garbage-collection to objects in C with inheritance (invent a better cfront, and ...). I confess that I would feel less competent in a language which had easy syntax for working in ways I don't normally think -- as much as continuations are an interesting language feature, I haven't worked with them much and I'd rather not come across them all the time in other people's code -- in the greater sphere of language features, even the most curious among us are probably only fluent in a small set of ways to approach programming. I'm not sure whether (and when) we're better off with something like Lisp or Python (with a very simple syntax) compared to very large languages like Perl (that have a very large number of dialects possible). I wonder if there's a way to frame the question that'll help sense be made of it.
This has been a good weekend to bump into people, as sad a weekend it is for departures. A mix of hearing some a capella goodness and frisbee started the day, followed by a picnic with more frisbee, veggie burgers, and an awesome conversation with someone whose name I misremember who recently spent some time in the middle east. A lot of the parents I met there were surprisingly cool people - they remind me a bit of the better sides of my own.
(section not shown)
Afterwards, I went to the 61c (where I am now), and eventually ran into a passing roseandsigilmkehrt, talking for a bit about the work he's doing now and nearby topics. Last night, there was also dinner and hanging out with people and parents. While some part of me is sailing between Scylla and Charybdis regarding managing emotions, another part of me is happy in a way I haven't been for quite awhile. Things are too different right now from my normal existance to really pick it apart.
A recent random memory - playing various Jack Nicklaus golf games on the PC, ages ago. Once I got bored with playing the pre-set courses, I loved playing with the course editor to create impossible terrains.
Tomorrow's graduation ceremony shall be bittersweet.