Efficient Software (by alaric)
Efficiency is a major goal for programmers. It used to be a much bigger goal; once upon a time, it was a struggle to fit useful applications into machines with 1MHz clocks, which took several clock cycles to perform basic operations on 16-bit values. You had to optimise even quite basic algorithms to get them to complete in acceptable timeframes.
In the 1980s and 1990s, the available computing power and memory for running an application exploded, but the sizes of data sets people wanted to work with grew in step. Now people wanted to word process documents with large images. Or keep databases of EVERYTHING. So efficiency was still a big concern for application programmers. But the focus began to shift.
I now have two whole fans of my guitar playing, one of them is Alaric and well... ok look he thinks everything I do is great and the other one is Jean.
Yes - Jean, she adores it and even asks for more, unfortunalty she prefers my punk and thrash metal versions of things which is unfortunate as they are what I do (badly) when I can't actually play the song but she seems to think they are the best things ever!
So far in the percivial compertition we have established that Percivial is a: Vertibrate Quadraped Terrestrial (land animal) Warm Blooded Has Live young Mammalian
Todays clue is that it is soft and furry and small.
Carry on guessing and asking questions remember there is a wiggly pet to be won!
It's not just on technical matters that I find myself liking Paul Graham, he's also pretty much followed the kind of career path I want: start own company, become wealthy enough to no longer need to work, then mess around designing programming languages. Ok, I'm a bit more daring: I want to design a programming language, a virtual machine, operating system kernel, network protocol suite, database, and set of standard libraries.
I'm interested in programming languages. When I was a kid, I'd get books on different languages out of the library, and sit and learn a language. I didn't get to write code in many of them, since this was before I owned a modem; all I had at home where BASIC, Z80 assembly language, Pascal, x86 assembler, then C and C++. But I devoured new languages whenever I could. When I came across FORTH I wrote my own implementation (although at the time I didn't get the metaprogramming stuff), since FORTH is easy to implement (it's a great bootstrapping language), and later on, I implemented a kind of Lisp as a scripting language for a game engine (except I used a Prolog-esque syntax,
foo(bar,baz) rather than
(foo bar baz)). I really wanted to play with the rich feature set of Ada, and the parallelism of occam. I studied COBOL and FORTRAN and found they didn't look much fun. I studied Smalltalk and found that it looked like great fun. Prolog was interesting, a radical departure, but I saw it as foolish to write whole programs in it - I felt it should be used as a database query language like SQL. It's Turing complete, but a large class of programs are ugly to write in it.