7 ms·
The most important quote here for me: "What kept me from [writing my own tool] was a calm voice in my head telling me that I’m here to write a book, not a prep
by akavel 8y ago
The most important quote here for me:
"What kept me from [writing my own tool] was a calm voice in my head telling me that I’m here to write a book, not a preprocessor. [...] Now I have written two books and zero tools, which I consider a success."
- patatino 8y agoThat is also the reason why people are obsessed with the best IDE or framework or even keyboard layout.
- hood_syntax 8y agoI do think obsessing about trivial things is harmful, but finding an editor you really like working with is very valuable. I was exposed to vim and had a really hard time working with it, but I saw the value that lay beneath the arcane surface. I knew how much of a pain it was for me to copy/paste/rename/switch between windows when editing; it took me out of my flow. Becoming minimally proficient (I don't use any of vim's really advanced features) was a huge boost in comfort, translating to increased productivity for my attention-deficit brain. This feeling was compounded even more when I started using a tiling window manager: now my hands never needed to leave my keyboard during a programming session unless I was looking something up (I played around with vimperator or the like for a while, never 100% clicked for me). Of course, that's the ideal. I can't use my preferred setup when I'm working on our legacy Windows codebase. I also won't pretend that I'm immune to chasing the new shiny thing to distract me from doing real work, it happens with some frequency. I just think that editors (and perhaps a good tiling window manager) are the exception(s) to the rule.
- joflicu 8y agoI am glad that you brought this up. I tend to spend a good chunk of time cleaning up and optimizing my .emacs right before I start coding. Absolutely useless waste of time!
- mi_lk 8y agoOn the other hand, I'm glad Knuth didn't have such calm voice in his head 40 years ago...
- blattimwind 8y agoDigital typesetting ("phototypesetting") at the time sucked rather hard. troff was kinda the state-of-the-art then.
- enriquto 8y agoAnd the point is that troff is actually an excellent tool with very beautiful typesetting. The fact that Knuth didn't consider it good enough says a lot about him and his ambitious level of exigence.
- svat 8y agoActually, troff was simply not an option for Knuth, for least a couple of reasons. For one thing, at the time, Unix and all its associated tools were really not prevalent outside of Bell Labs and a few places — troff would not have been available to run on the computer systems Knuth had available to him in 1977. (The ones at SAIL, which were PDP-10 machines running either TOPS-10 or WAITS, I forget what I read.) He didn't have the source code of troff either; all he had was published descriptions: and those he did use, e.g. the paper by Kernighan and Cherry describing `eqn` came out in 1975 and he used ideas from it while designing TeX's syntax for math. For another thing, troff was designed to control line printers and other such devices that were typically attached to computers; it simply wasn't designed to drive a digital typesetter of the kind Knuth was thinking of (Alphatype CRS). So he'd need a new program anyway. In fact, he says that until he saw Patrick Winston's book on AI in 1977 (which was one of the early books produced on a digital typesetter, i.e. where the actual technology for getting ink onto the page was based on 0s and 1s, instead of being based on either pieces of lead (hot metal typesetting) or light and lenses (phototypesetting)), he had simply not associated output from computers with “real books”. Things like troff were designed to control the simplistic devices that came with computers, that could move by discrete (large!) amounts on the paper (e.g. some could move by full “lines” only), and strike down specific symbols (from a limited font repertoire that came with the device) onto the page. This wouldn't have seemed relevant to Knuth, who primarily wanted to create his own digital fonts (as he did with METAFONT), and TeX was among other things simply a way to use those fonts. So, regardless of whether one considers troff to have very beautiful typesetting or not, it simply wouldn't have seemed applicable to the problem at the time, to be rejected as "not good enough" or not. Now of course with output going to generic page-description formats like PDF (even TeX's DVI was not Knuth's idea—he was thinking TeX would just write code for the device directly—and he had to be convinced to do it by Fuchs: https://tug.org/interviews/fuchs.html https://tug.org/interviews/fuchs.html), and high-resolution printers (fairly high DPI, even if not 5000+ as with the CRS then) available to typical consumers, we don't appreciate all this. :-)
- scrollaway 8y agoIt's a crazy important quote and everyone should really keep it in mind when they set out to do something. Many people have problems focusing on the task they set out to do. It's a type of procrastination. Insert that famous gif from Malcolm in the Middle. This is relevant to startups as well (and business in general): Being able to decide whether something is in scope of a project or not. You are encountering a roadblock, how do you react? Do you set out to solve it perfectly or do you work around it (or even, do you give up)? The quote you pasted is the perfect way to put it into words. Another common theme I hear about is people asking: "How do I become a successful [profession here]?" (eg. "streamer", "youtuber", "musician", "programmer", "writer", ...). The answer is always the same: "Start".
- 3pt14159 8y agoI think there is a time in a programmer's life when writing tools to make yourself more effective is finally worth it. For me, that time started about two years ago. At 31, a full 25 years since first learning how to program[0] I finally felt like I could be trusted to make the right calls on when to invest the time to abstract or create generation or code parsing tools; and when to do things the old fashion way. After two years of spending about 20 to 40% of my time on tooling I'd wager I'm about 10x faster than I was at 30 and about 20x faster than I was at 25. The problem now isn't writing the code. The problem now is that the code is so fast that I don't have the same amount of passive time to think about features / strategy. I have to intentionally set aside time for it and I find it unnatural. Also, I know too much about cybersecurity which is good for my end users, but bad for my feature productivity. [0] Poorly. My mum taught me how to code QBASIC. I altered video games.
- ryanmarsh 8y ago> I think there is a time in a programmer's life when writing tools to make yourself more effective is finally worth it. Indeed yak shaving should only be done when one has the breathing room to do so. It's just good common sense, except there are exceptions. Slack was a yak shaving effort. The most valuable things I've shipped have all been yak shaving efforts. I guess I'm just better at building tools than anything else. Perhaps I enjoy it more. shrug To each their own, but if you're trying to ship a product instead of a bald yak you're going to have to do it the ugly way, with tools you could fix, etc...
- mjlee 8y agoDonald Knuth seems to have got it right. On the way to writing a book, he wrote all the tooling including a typesetting system, a programming paradigm, a font, a font authoring tool, and so on. https://yakshav.es/the-patron-saint-of-yakshaves/ https://yakshav.es/the-patron-saint-of-yakshaves/