Sunday, June 12, 2005

Fitting in with a Tough Crowd

I began this post a while back, saved the draft, and pretty much forgot where I was going with it. Make what you will of it...

I want people to think that I'm cool. I want to impress people, and more importantly, I want to impress the kind of people who otherwise would impress me. I want all the other geeks to think I'm cool. Hey, I'm human.

How do you impress a geek? You be a better geek, in some respect. You write a very useful application, or create an amazingly efficient library for handling a common task. You be the geek the other geeks wish to be. I want to create software, and I want that software to be useful, maybe even to the point of making the world even just a little bit better. If I manage to impress some fellow geeks along the way, then I say that is even better.

To the point I had in mind when I began writing this: I should but do not wish to change my coding style if I want to impress anyone. People commonly don't like my coding style, for various reasons, none of them good reasons, even. There really aren't good reasons to dislike a particular coding style, and I want to make it clear why I think so.

Firstly, why I don't think we have no reason to dislike a particular coding style, and how this is different from liking a particular coding style, which I do think we should do. Source code is supposed to be human-readable instructions to computer, but in truth they are no more readable at the lowest level than an executable binary. In the lowest levels, they are all bits, after all. Source code, however, is stored in a convention of bits, which a computer can process not only as instructions to follow, but as instructions to display to the user. The computer, in other words, can display the text on the screen. The biggest mistake in the software development world is the lack of instructing the computer to display this source code text intelligently. Source code presentation has not improved much over the years. We went from displays of hard-delimited lines, to having word-wrapping functionality that didn't do a good job, so we still keep old rules around about the length of the lines, because that's easier in the short-term than just making the word-wrappers smarter. We got syntax-highlighting, and that was pretty basic, but it stuck and works OK. Code-folding came along a long time after that, and it spread quickly and helps a lot, and its at least something near to intelligent, but it still works with those hard-delimited lines.

Why power of the tab

In itself and its symbolism

The tab is a controversial character, because it isn't really a character. The controversy began with the bad decisions in its original creation. The tab exists, really, in two forms, which work together and sometimes separately, causing most of the problems. The tab is a key on the keyboard and also a character present in many text files. It is the tab character's presence in source code that irks as many people as it makes happy.

No comments: