[quote=Dick Hamming]it is better to solve the right problem the wrong way than the wrong problem the right way[/quote] [quote=ESR - The art of Unix programming]The only way to write complex software that won't fall on its face is to hold its global complexity down — to build it out of simple parts connected by well-defined interfaces, so that most problems are local and you can have some hope of upgrading a part without breaking the whole.[/quote] [quote=Kent Beck]Make it run, then make it right, then make it fast.[/quote] [quote=ESR - the art of unix programming]Using prototyping to learn which features you don't have to implement [...][/quote] [quote=ESR - the art of unix programming]RMS, a charismatic and polarizing figure, himself became so much a culture hero that by the year 2000 he could hardly be distinguished from his legend.[/quote] [quote=ESR - the art of unix programming]Among Unix tools, make(1) is compact; autoconf(1) and automake(1) are not. Among markup languages, HTML is semi-compact, but DocBook is not. The man(7) macros are compact, but troff(1) markup is not. Among general-purpose programming languages, C and Python are semi-compact; Perl, Java, Emacs Lisp, and shell are not (especially since serious shell programming requires you to know half-a-dozen other tools like sed(1) and awk(1)). C++ is anti-compact — the language's designer has admitted that he doesn't expect any one programmer to ever understand it all. Some designs that are not compact have enough internal redundancy of features that individual programmers end up carving out compact dialects sufficient for that 80% of common tasks by choosing a working subset of the language. Perl has this kind of pseudo-compactness, for example. Such designs have a built-in trap; when two programmers try to communicate about a project, they may find that differences in their working subsets are a significant barrier to understanding and modifying the code.[/quote] [quote=ESR - the art of unix programming]When you feel the urge to design a complex binary file format, or a complex binary application protocol, it is generally wise to lie down until the feeling passes.[/quote] [quote=David Gelernter Machine Beauty: Elegance and the Heart of Technology (1998) ]Beauty is more important in computing than anywhere else in technology because software is so complicated. Beauty is the ultimate defense against complexity.[/quote] [quote=Brian Kernighan]On the other hand, the ‘user-friendly’ GUIs of other operating systems have their own problems. Finding the right buttons to push is like playing Adventure: the interfaces are just as burdensome as any Unix command line interface, save that one can in theory find the treasure by sufficient exploration. In Unix, one needs the manual.[/quote] [quote=ESR]Touch-typists often prefer roguelike programs because they can avoid taking their hands off the keyboard to move a mouse. Given a choice, touch-typists will prefer interfaces that minimize keystrokes far off the home row; this may account for a significant percentage of vi(1)'s popularity.[/quote] [quote=ESR]But computing resources and human thinking time, like wealth, find their justification not in being hoarded but in being spent.[/quote] [quote=ESR]Perl's main drawback is that parts of it are irredeemably ugly, complicated, and must be used with caution and in stereotyped ways lest they bite.[/quote] [quote=Stuart Feldman]Why the tab in column 1? [...] I just did something simple with the pattern newline-tab. It worked, it stayed. And then a few weeks later I had a user population of about a dozen, most of them friends, and I didn't want to screw up my embedded base. The rest, sadly, is history.[/quote] [quote=ESR]People from outside the Unix world (especially non-technical people) are prone to think open-source (or ‘free’) software is necessarily inferior to the commercial kind, that it's shoddily made and unreliable and will cause more headaches than it saves. They miss an important point: in general, open-source software is written by people who care about it, need it, use it themselves, and are putting their individual reputations among their peers on the line by publishing it. They also tend to have less of their time consumed by meetings, retroactive design changes, and bureaucratic overhead. They are therefore both more strongly motivated and better positioned to do excellent work than wage slaves toiling Dilbert-like to meet impossible deadlines in the cubicles of proprietary software houses.[/quote] [quote=Dave Clark]The IETF's philosophy has been famously summarized as “We reject kings, presidents, and voting. We believe in rough consensus and running code”.[/quote] [quote]The most dangerous enemy of a better solution is an existing codebase that is just good enough.[/quote]