Archive | February, 2012

Advertising is not speech

26 Feb

Matt Yglesias is skeptical that solving campaign financing will cure our politics or even much alleviate the corrupting influence of money. I share this skepticism, and my own take is that we should instead focus on the specific problem of advertising. After all, political donations buy all sorts of things other than television air time or web banners—mainly, organization staff and media production—and I’m not so sure these activities shouldn’t fall under First Amendment protection, even if the rich have a disproportionate ability to partake in such “speech”. More importantly, I think staffing and production are beside the point, as the actual ad buys are where the real money goes. I’d go so far as to say political ad buys are entirely illegitimate: rather than curtailing political ad buys, we should outlaw them outright. The crux is finding a workable definition of “advertisement” that distinguishes ads from non-advertisement speech and then also distinguishes the political from the non-political. This is tricky but I think well doable were it not for the inevitable Supreme Court rollback. I won’t go into the weeds here but just say that any defense of advertisements as a valid form of communication in democratic discourse is laughable.

Speed Racer is one of the best films of the last 10 years

22 Feb

Certainly one of the very best blockbusters. And I’m not the only one who thinks so, apparently. My only major criticism is that it’s maybe 20 minutes too long, but I can’t say specifically what I would cut.

Wisconsin has a real shit flag

16 Feb

I would have mistaken it for the work of a 1970′s print shop too.

!lilli!!lllliil!illilllillll!!i!lllll!!iillll…yes, syntax matters

14 Feb

Re Lisp without parens again, I dug up this old quote I clipped from a Reddit comment that sums up why Lisp’s parentheses are a real problem:

There is a reason all Lisp languages didn’t break through: the syntax is too monotonous. A program is written for humans to read, and humans are not too good with repetitive anything, including repetitive parentheses.

Another commenter writes:

People can go and love Lisp and [its] derivatives all they like, nobody I know finds deeply nested s-expressions very readable or writable. Syntax doesn’t matter much, but it does matter. I hacked on a fair amount of emacs customizations, but I always found it hard to follow the control flow.

People just don’t like parsing text like the title here for the same reason that they much prefer reading decimal or hex over binary. Sure, with time and experience, we can learn to deal with monotonous syntax, but given the choice, why should we put up with it? Some people get really good at sending and receiving Morse code, but Morse code is not only far less accessible than a keyboard, it’s unarguably less efficient: a proficient typist will always beat a proficient telegraph operator.

The parens of Lisp are repetitive noise which one can learn to cope with sufficiently well for some tastes, but not well enough for most programmers. Animvs solves this problem and goes a step further: by imposing a stricter indentation scheme and introducing first-class symbol highlighting, Animvs gives code a significant shape indicating structure that can be reliably parsed at a glance with low mental overhead.

Other people’s choices matter

13 Feb

PC vs. Mac, XBOX vs. Playstation, iPhone vs. Android, my programming language vs. your programming language—these are not idle disputes. Contrary to popular moralizing, you’re perfectly justified complaining about what other people in the market choose because what they choose affects you. No market is infinite, so without a critical mass of consumers that share your preferences, your preferences may not get met.

For example, an ever growing tide of Apple-fawning consumers at some point may ruin things for the rest of us as the Apple model of locking everything down gets duplicated by its competitors. Who knows what an Apple-dominated world of computing then looks like: does the price-performance ratio improve as steadily as it has in the PC era? Does the cost of assembling a PC from parts go up? Does the ability remain at all?

If it were a good idea, it would exist already

8 Feb

Re my previous post, I should acknowledge that ‘Lisp without parens’ is a very old idea. Old enough that any time it comes around again, long-time Lispers leap out from their parenthesis-girded fortresses to ridicule the idea. This raises a good question: if Lisp without parens is a good idea, why hasn’t it become a reality? I have three explanations:

  1. The Lisp-without-paren solutions of the past made the fatal mistake of trying to infuse Lisp with infix notation. See, for example, Dylan. This is just a bad idea, as it solves the too-many-parens problem but complicates (at best) Lisp’s homoiconicity, making macros much harder to write and thereby defeating Lisp’s one remaining unique feature.
  2. Indentation-sensitive syntax was an old idea before Python, but before Python took off, everyone ‘knew’ it was a bad idea. (And in fact, some still insist that indentation-sensitive syntax doesn’t work.) And it wasn’t until Python was well established that a few people began to suggest using indentation to leave Lisp parens inferred but keeping the S-expression structure intact. So the idea of Lisp-without-parens is maybe 50 years old, but the idea of Lisp-without-parens-but-keeping-S-expressions is less than a decade old. As the Python example illustrates, sometimes good ideas just take time and a few failed starts to become reality.
  3. A more general problem is that having one good idea often isn’t enough: existing technologies and their accompanying ecosystems have a lot of inertia, and the current set of users will resist the pain changes bring as long as the benefits are unclear or seemingly minor. The applicable lesson from this is that the first successful Lisp that gets rid of parenthesis will most likely include other compelling features.

I’ll submit that Animvs avoids these problems. It cleans up the parens and indentation style, but keeps the syntax homoiconic and reductively simple (simpler, in fact, than any existing Lisp, what with their hacky reader macros polluting the nice clean symbols). It also introduces new ideas other than just a new syntax.

Animvs: Lisp for people who don’t like Lisp

7 Feb

I made this video several months ago but just uploaded it today. It describes, Animvs, my programming language project I’ve kept on the back burner for the last five years. The selling points are, briefly:

  • based on the semantics of Clojure, but allows mutability and immutability to live side-by-side
  • also allows dynamic and static code to live side-by-side
  • features clean syntax with the virtues of traditional S-expressions but without the ugly flood of parens
  • designed with editing environment conveniences in mind, including some usually only found in traditional static languages, e.g. name refactoring like found in Java IDE’s

The video doesn’t get into the mutable/immutable or dynamic/static business, but it does give you a good taste of the syntax (which is far more important than many would give credit).

What is fun?

6 Feb

The definition of fun often gets hung up on the distinction between fun and entertainment. Some insist that fun requires interaction rather than just passive consumption, e.g. games are fun, but movies are entertainment. This however is clearly prescriptivist semantics, for plenty of passive entertainments have been called “fun”. If there is any real distinction between “fun” and “entertainment”, it’s a matter of degree: both are synonyms for ‘pleasurable engagement’1, and fun simply is a more intense, attention-consuming form. While fun has unique connotations with games and child-like play, these follow from the fact that games generally require greater attention than other entertainments and the fact that children tend to more easily invest themselves in their experiences.

Now, ‘pleasurable engagement’ comprises a very broad swath of experiences, so fun is a multi-varied thing: there is no one type of experience that defines “fun”. Off the top of my head, here’s every category of experience that may qualify:

  • excitement: facing danger, going fast, punching, LOUD NOISES!
  • challenge: overcoming obstacles
  • competition: challenges against other people
  • exploration: discovering an environment
  • accomplishment: a sense of progress
  • socialization: idle chat, social climbing
  • narrative: being told a story by any means (visual, auditory, textual, etc.)
  • informative: learning things of interest, like from a documentary or a lecture
  • aesthetic: pretty pictures, music, etc.
  • auditory and visual stimulation: we often enjoy external stimulation for its own sake, even if random and garish, e.g. the flashing lights and noises of a casino
  • olfactory, gustatory, tactile, sexual stimulation: pleasure from smells, tastes, touch
  • humor: anything amusing or that makes you LOL
  • physical manipulation: affecting the physical world gives us a satisfying sense of control; even virtual action in a simulated world can give us this feeling
  • motor skill action: exercising hand-eye coordination
  • physicality: exercising our full body and/or subjecting it to straining conditions
  • creation: playing with our own ideas
  • vicarious experience: living out experiences we normally don’t have
  • logic, reasoning: puzzles, riddles, strategy, etc.

Most games push buttons in several of these categories rather than just one. Also note that some of these types of pleasurable engagement alone rarely rise to the level of fun. A good lecture, for example, may often be entertainingly informative, but hardly ever fun.

Some people would argue that the definition of fun I’ve just given is circular, that the real question is not ‘what experiences are fun’ but rather ‘what essential quality do fun experiences have in common’. Again, though, my argument is that there isn’t any such common essence. While psychology and neurology may identify some common mental state behind all these experiences, we won’t find some deeper common quality in the experiences themselves. The things we find pleasurably engaging are diverse, end of story.

For another definition of fun, we can distinguish fun from non-fun experiences by their lack of unpleasant qualities. The most notable of these ‘anti-fun’ qualities are:

  • tedium
  • pain
  • frustration
  • pressure of consequence2

In this version of the story, the hard-wired human impulse to seek out stimulation is driven mainly by an aversion to these unpleasant states of mind. Basically, we get bored, but most of us won’t drive nails into our hands as relief.

A question that immediately follows, now, is whether games are defined by any particular type or types of fun (or aversion to anti-fun). Are there certain boxes every game must check to be sufficiently ‘gamey’? The classic example of insufficiently gamey games are those that really want to be movies, like the FMV (Full-Motion Video) games of the 90′s. The real sin these games committed, though, was not in delivering the wrong kinds of fun but in failing to deliver much fun of any kind. They failed as “interactive stories” because they were barely interactive and were terrible stories (both in conception and execution). Similarly, the cutscenes in most of today’s games grate, not because they’re the wrong kinds of fun but because they’re generally presenting bad stories, poorly written and sloppily directed.3 So the real problem here is that good passively-consumed entertainment is extremely hard to deliver: a game that attempts to be entertaining in the ways movies and TV try to be entertaining probably fails because good movies and TV are by themselves very hard to make. Moreover, even when a game’s canned narrative content is done well, the game can easily frustrate players by thwarting their expectations: just as I probably wouldn’t be happy with a movie consisting mostly of text on the screen, I won’t be happy sitting controller in hand, waiting for overly-long cutscenes to end. So really, a designer needn’t worry about whether their game delivers the right types of fun to qualify as a “game”. That’s an academic question. The important question is whether the game actually delivers the fun it means to, keeping in mind that this success can hinge upon the player’s expectations.

Another common question that arises is whether games are more than just fun-delivery mechanisms. In recent decades, academics have advanced many theories of games concerning their social function, their role in personal development, and their status as cultural artifacts. While all these ideas may be valid and interesting to think about, I don’t think they’re of much use to any practicing game designer. A proper theory of fun, in contrast, is useful, even though it isn’t a secret formula that auto generates good gameplay. What the theory tells us is, first, what constitutes a game (as far as game designers should be concerned):

Different people favor different kinds of fun. All kinds of fun are valid, though not all necessarily marketable or easy to create. So don’t worry about what a “game” is supposed to be, but do worry about finding an audience with the right expectations.

More significantly, the theory helps us properly analyze games and break down what makes them work (or not work). This exercise yields loads of useful information and allows designers with conflicting values to, at the very least, articulate their differences, e.g. Designer A wants an RPG focused on exploration while Designer B wants an RPG focused on the thrill and action of combat. Moreover, applying this analysis to the best games out there reveals an important pattern: any one type of pleasurable engagement loses its impact if not properly paced, so good games hinge upon the proper mixing and pacing of different modes of fun.

(As for what constitutes “proper pacing”, that’s a whole other post.)

  1. Pleasurable, of course, being an important qualifier. I’m sure torture is quite engaging but neither fun nor entertaining. []
  2. The pressure of consequence is interesting because we sometimes find it pleasurable, e.g. the thrill of gambling. []
  3. Today’s cutscenes certainly look flashy, but the value of flashy imagery has radically diminished in the last decade due to market glut. Neat visuals were a novel, exciting treat up until about the year 2005. Today, not so much. []