Re: [comphist] Lost arts from the 8 bit days.
Brought to you by:
mute_id10t
|
From: Eli <el...@pf...> - 2002-10-03 01:17:18
|
On Wednesday 02 October 2002 03:26 pm, Eric S. Raymond wrote: [snip] > I am *glad* this kind of programming is dying out. And I say that as > somebody who did a lot of it back when it was necessary. I'll say > this once: > > MAINTAINABILITY IS MORE IMPORTANT THAN EFFICIENCY > > No, that wasn't the case fifteen years ago, or even ten. Machines were > too constrained. But today, if I were managing a project and caught > anybody doing tricks like you describe, I'd chew him out but good. There > is such a thing as being too clever in the wrong direction, and this is it. No argument here... but... I think of it differently. When I was playing with GWBASIC, I was writing some fun little games. The graphics weren't half bad for a highschool freshman, and they were fun to make and play.... and I could play them as I made them. I outgrew what GWBASIC could do, and migrated to C. I never wrote any games in C. Graphics were too much of a hassle, and I had begun to try adding a 'design' phase to my development process. (With no formal programming education, I'll leave the definition of 'design' to your imagination ;). ) Programming had become hard. Bit twiddling was new territory, and I enjoyed it, but making something fun was just too much work. On a graphing calculator, you had to be clever, but it was fun, because you were stretching a _calculator_ to play tic-tac-toe against you (in Casio's 400 bytes), or making a chess board and using almost all its memory (TI's 90k). Years passed; I discovered operating systems, got a job doing Linux kernel work. Lots of fun and challenge. But I am one of those fellows that works very hard at being lazy. I had, in my quest for automation, out-grown shell scripting. Yeah, I could do anything in a shell, but good data structures make life a lot easier, and doing any 'real' processing on data was becoming rube-goldbergesque. Quickly getting a program that was "useful" (for an ever-increasing definition of "useful") was getting too painful. So I started looking for a new language to learn. I knew C/C++, and C++ was^Wcould be an improvement, but it was still 'C' to me. I'd seen Java, and it felt like C+=2 which wasn't what I wanted either. Perl just looked like $#!^. I've read a lot about the 'power of Lisp', but I've used ((L),(I),(),(S),(P))... thanks, but no thanks. Then I found Python. The language looked much more high-level, and I could do things with it that I had emulated in C++ (passing a pointer to a member function of a specific object for instance). And it had ready access to GUI toolkits. I've found that programming is fun again, and I'm finally toying with a game idea to implement in Python. (Well, now that I've found PyQt and dumped tkinter... Documentation!!!!) That gets me utilities that are _useful_ very _quickly_. They may be sluggish, but on a decent modern PC, they're fast enough, and can automate things with a click of the mouse that would take me much longer than if I were doing it myself. So what happens when I run into something that is just too slow? Profile to find the hot spots, improve those algorithms if I can, but if I really just need a piece of code to execute faster, I can buy a faster PC or implement just that algorithm in C/C++, and call it from Python. (Or so I've read; I haven't needed to go that far... it's usually algorithmic in nature.) In other words, I can create something that does 0.1% of what I need, and use it, freeing up time to develop the next 0.1% smoothly. It may not handle 10GB inputs, but I don't have those yet, and when I do, I know I can easily make the needed changes _then_. Useful now, better later. Writing 'tight', 'clever' code takes too long. I want to be _using_ this program already! (If laziness is a virtue, is impatience? ;) ) (Note that this doesn't necessarily apply in all areas... kernel work for example. If it has to be reliable, or deal with hostility, the rules change.) Now where'd I leave my asbestos underwear? ;) Eli |