30,328 karma · joined August 18, 2007
Because of this, the satisfaction of listening to music isn't only auditory or aesthetic, but also an identity satisfaction, of feeling one's ideas about oneself confirmed.
It's probably true that humans inject identity ideas into everything, so this is nothing special to music. But it's a strange situation, since music per se is the most abstract of the arts and this extra layer we put on top of it is so obviously extrinsic.
I wonder how such a thing could ever get started. Perhaps as an experiment in one of the smaller states?
I wrote a Chrome extension that I use daily. Unfortunately, Chrome has become so bloated that I now have to wait a second or two (on OS X Mavericks) for the simplest things to happen. I really hate this, so I'm going to try porting it to FF, which appears to have no such problem.
It's a little surprising that the performance sweepstakes now favor FF (and Safari, which is even better), but I'm not the only person I know who's experiencing this.
I have no idea about this quote in particular, though; it seems like a job for http://quoteinvestigator.com.
More powerful programming languages rely less heavily on naming
... reminds me of section 1.1. of Compiling With Continuations:
The beauty of FORTRAN—and the reason it was an improvement over assembly language—is that it relieves the programmer of the obligation to make up names for intermediate results.
I remember going "Wha?" when I read that.
No doubt its error handling leaves a lot to be desired, but single-character names are a different matter. That's part of the APL style, and it's a mistake to reject it out of hand. The trouble is that nearly everybody does, because it's so beyond the pale.
Edit: Perhaps I should explain what I mean about the APL style.
Languages in this style are not "unreadable"; rather, they trade lexical readability for whole-program readability. Their emphasis is not on names, but on operators; specifically, operator composition. Their advantage is the astonishingly high-level power of their operator strings—sequences of composed operators, each of which passes its output to the next, like Unix pipes.
After a while, typical operator strings become recognizable as idioms, making them leap out at the reader. This allows one to comprehend quickly what would take many lines of code in most other languages. True, each of those many lines would be more lexically "readable" in the sense that you could grok its individual tokens more easily. But that's not how you comprehend what a program is doing. To do that requires grokking the intent of a bunch of lines together. In other words, program intelligibility is not primarily a matter of token readability but of whole-program comprehension. We're just so used to one way of doing it that we reject all others as "unreadable". We forget that variable and function names are not an end in themselves, but a means to an end. APL-based languages have a different means to that end.
If APL-style programs were to use long expressive names like other languages, the shape of their operator strings—the most important thing—would be obscured, and you would lose comprehensibility rather than gain it. The role that names play in such programs is different. They are placeholders. Like colored beads, they occupy certain positions in the operator strings and demarcate what the code is doing. If these names were even half as long as what you use in conventional languages, they would overwhelm the code so much that it would consist of nothing but names with a few operators scattered here and there. The program's structure would then be less accessible.
Another way of saying this is that names are so much shorter because everything is so much shorter, which is what makes the operator-oriented style so powerful.
It's true that such a language is symbolic, even cryptic, compared to most. But that is a bad reason to dismiss it, especially before one's eyes have adjusted. All programming languages are symbolic and cryptic before one has learned any. The reason why programmers take for granted that conventional languages are more "readable" is that these languages are related to each other and we all know one of them. We are like Spanish speakers saying that French is more readable than Russian. Since we all (to extend the analogy) know at least one Latin language, we take this view for granted when it's really just relative and—if one wants to push the point—false.
Now where are beagle3 and silentbicycle to back me up.
Unfortunately, it's so out-there that nearly everyone dismisses it as unreadable and daft. In a better world, it would be taught and studied as an exemplar of design. (On the other hand, they've succeeded financially so how cool is that.)
The other thing is that the core of Emacs is a masterful piece of domain-driven design, where the domain is "text editing and windowing". Its conceptual model is clear, simple, and consistent. (Some of the later additions don't have this quality, but fortunately they mostly stay out of the picture.) It has a rich language for its concepts—'buffers', 'text properties', and so on—and uses that language everywhere through documentation and code. This tremendously eases the burden of writing programs that interoperate, because everything is based on the same conceptual model and thus makes sense in the same way. Not all Emacs programs follow identical conventions—far from it—yet it's amazing how close they get, given how many there are. It's Emacs' exemplary domain model, as much as its Lisp character, that creates this conceptual unity.
So while Emacs rightly gets a lot of credit for the technical aspects of its extensibility, we should hear more about the design aspects. Its core design is a masterpiece and ought to be studied as an example of the power of software design itself—something we're mostly still pretty bad at. It might be hard to get that taken seriously, though, since on the surface Emacs is obtuse, clunky, and old. Only when you dive underneath does it become orderly and beautiful.
In any case, filters that happen to be shared don't thereby become the "true nature of reality".
Everybody sees that concept through their own filter. I suppose to a cobbler the true nature of reality is surfaces that wear out over time.
It reminds me rather of cutting the perforations off of postage stamps. I doubt that J.C.R. Licklider would approve.
Thanks!
I think they mostly mean making daylight saving permanent, but have a recurring dread that maybe they don't.
As long as we accept syntax as a significant part of what defines a programming language, "visual language" is a reasonable concept.
Edit: Reasonable implementations are another matter. :)
Since bad hires are one of the worst things that can happen and no one is perfect at hiring, I'm curious what you do about this problem. Do you just work harder at getting closer to perfect?
It seems to me that there's always an implicit trial period anyway—the question is how you encode it. The best people, who have many options, won't want to stick around if they made a mistake either, right?
http://quoteinvestigator.com/2012/08/29/substitute-damn/
He never said that the coldest winter he spent was a summer in San Francisco either. Damn.