about summary refs log tree commit diff
path: root/org
AgeCommit message (Collapse)AuthorFilesLines
2020-03-02 Read Paul Graham article "Taste for Makers"William Carroll1-1/+1
I'm considering this essay one of my favorites from Paul Graham. The essay argues that good taste and bad taste exist. Graham argues against relativism in design and cites a variety of examples of architecture, typography, writing, sketching, painting, aircraft design, and others that bolster his opinion. TL;DR - Design should strive to be: - Simple: Prefer simplicity to complexity when possible. - Timeless: Design today for tomorrow by pleasing yesterday. - Pointed: Focus always on the problem; don't work for work's sake. - Suggestive: Constrain usage without suffocating the user. - Humorous: Prefer light-heartedness to sobriety. - Difficult: "Good design" is takes time, effort, and tremendous skill. - Ostensibly effortless: Solutions should look obviously correct. - Symmetric Appreciate symmetry. - Natural: In nature, form ever follows function. - Iterative: Write; rewrite; rewrite; rewrite; throw away; write; publish. - Imitative: Be confident enough to copy others' existing, beautiful ideas. - Communal: Pay attention to "Schelling points" and join the party. Don't be the Milanese Da Vinci. - Fearless: Question the status quo; expect others to challenge your solution.
2020-03-01 Read Paul Graham's "Five Questions about Language Design"William Carroll1-1/+1
This article felt like a summary of "Being Popular". I'd suggest reading both of these.
2020-03-01 Read Paul Graham's "Being Popular" essayWilliam Carroll1-1/+1
Maybe this is my recency bias writing, but "Being Popular" may be one of my favorite Paul Graham essays that I've read. "Being Popular" outlines Paul Graham's ideas about what an ideal programming language would look like. This essay took me 1-2 hours to read, but it was worth the time. Here are some quotes that I enjoyed (not sorted in any meaningful order): "A friend of mine rarely does anything the first time someone asks him. He knows that people sometimes ask for things that they turn out not to want. To avoid wasting his time, he waits till the third or fourth time he's asked to do something; by then, whoever's asking him may be fairly annoyed, but at least they probably really do want whatever they're asking for." "In this particular case there is a way to finesse our way out of the problem. If we treat data structures as if they were functions on indexes, we could write (a x y) instead, which is even shorter than the Perl form. Similar tricks may shorten other types of expressions." "The latest hot language, Python, is a watered-down Lisp with infix syntax and no macros." "Hackers would think a lot more highly of Lisp if Common Lisp had powerful string libraries and good OS support." "I think language designers would do better to consider their target user to be a genius who will need to do things they never anticipated, rather than a bumbler who needs to be protected from himself." Some take-aways: - Let's refer to Python as "Diet Lisp" from now until the end of time. - Fight to keep your user-base small for as long as you can. Only fools want large user bases. - Rich Hickey definitely read this article; he took some ideas with him; he left some ideas behind. - Focus language design efforts around defining rich standard libraries, especially for string manipulation. - Worry little about supporting backwards compatibility; design a language that can and is often rewritten. - Shift the burden of optimizing code performance to the user by designing a powerful runtime profiler that is tightly integrated into the language runtime. - Minimize the costs users face when experimenting: ensure that your language is interactive; ensure users can create REPLs quickly. - Support OS-level libraries (think about Go). - Maximize introspection and hackability. What a useful read!
2020-02-21 Read PG's Lisp for Web-Based ApplicationsWilliam Carroll1-1/+1
Read Paul Graham's notes about the benefits of building Viaweb with Lisp. I found it interesting how his competitors (in the 90s) were using CGI scripts to build their web applications. I wonder how much of his advice would hold true today...
2020-02-21 Read two PG essaysWilliam Carroll1-2/+2
- Programming Bottom-Up: Benefits of writing reusable utility functions and amassing a personal utility belt. Specifically how lisp makes this easier than most or all languages. - This Year We Can End the Death Penalty: Voting against the death penalty is voting against the killing of killers *and* the killing of innocent people, since some estimate that 4% of people on death row are in fact innocent.
2020-02-21 Track which Paul Graham essays I've read and haven't readWilliam Carroll1-0/+190
As I mention at the top of the org file, I cannot rely on my web browser informing me which of these essays I've read; it only shows me which of the links I've clicked.