Wednesday, October 14, 2009

Copycat

Apparently, after a quick Google search or two, I am not the only one to have looked for the ultimate programming. Of course, most of these seem to be of the computer type. But there are few that aren't: (presented for comic relief)
So anyway, after you've read these from cover to cover, like I didn't, you should read these next few articles in the proper mindset:
  • Real Ultimate Programming consists of DRY (Don't Repeat Yourself), KISS (Keep It Simple, Stupid), and YAGNI (You Ain't Gonna Need It). Apparently NAMBLA (North American Man-Boy Love Association) is supposed to be a joke.
  • The ultimate programming language is Visual PyHPerlacle, an object-oriented scripting language in a client-side servlet built for your business-logic backend.
  • Programming language design is hard because of the lack of real-world use cases. Really? Try looking at your favorite program - it is a use case! Google actually matched on a comment; it says "the ultimate programming language is one that gives the user as much freedom as possible." So this means that taking things away from the programmer (GOTO's, inline assembly, global variables, side effects) is bad.
  • The ultimate setup for pair programming consists of two notebooks VNC'd to one large, powerful desktop station, and both connected to two large LCD monitors. This is cool, since it means dual-everything is the way to go, but first I must find a partner-in-crime who can force help me to implement stuff. Volunteers?
  • The Ultimate RISC machine has only one instruction, move. Everything else can be memory-mapped to special addresses: registers, ALU inputs/outputs, and the usual idea of memory-mapped devices. Applied to programming languages, this means that assignment with side effects is the universal operation. (Programming language implementation count: 0)
  • Lisp is the ultimate programming experience. No, it has too many parenthesis. (save flamewar posts until you read the rest)
  • The ultimate programming language is not a language, but a platform for building things.
  • User Experience makes the ultimate programming language. This tells us that: line noise (Perl, anyone?) is bad, white space and letters are good, and popular programming languages have something going for them. (Example given: Python) Note that this is the proper link to the presentation referenced in the notes.
    Anyway, there are some good ideas, but it suffers from hasty generalization, saying that "since language X (Python) lacks static typing and a useful syntax for constructors, you should use our vaporware binary/proprietary data structure which will solve everything!"
    Clearly, he hasn't heard of Lisp's S-Expressions. They're perfect for representing AST's, other than I-expressions, which suffer from a lack of usage. (but fulfill the other two requirements of "readability" and "uses only white space and alphabetic characters") Lisp is the ultimate data format. People seem to have misunderstood (like they did when Lisp was invented) that it was not intended for writing code.
Anyway, there are also some blogs with similar titles, and lots more stuff which is mildly interesting when read, but is probably not worth your time. (and the rest of the results are links to pirated copies of Windows Vista/7 Ultimate) Fortunately, this blog does not appear anywhere in either search (even with quotes), so there is no need to confront problems of self-reference. (yet)

No comments:

Post a Comment