|
1 | 1 | # Linters for Thought: Reflections on Software Engineering and Collective Intelligence |
2 | 2 |
|
3 | 3 | Joshua Levy ([GitHub](https://github.com/jlevy), [Twitter](https://x.com/ojoshe))\ |
4 | | -*v0.1.4 (June 2025) – Draft!* |
| 4 | +*v0.1.5 (June 2025) – Draft!* |
5 | 5 |
|
6 | 6 | <div class="boxed-text"> |
7 | 7 |
|
8 | | -This is a rough draft. |
| 8 | +This is a rough and incomplete draft. |
9 | 9 | I'd be very grateful for your feedback! |
10 | 10 |
|
11 | 11 | The ideas here come from many people, no doubt far more than I have currently cited. |
12 | | -Some are from conversations with friends and colleagues over the years. |
13 | | -I would like to add more credits where they are due. |
| 12 | +I would like to include more references and credits where they are due. |
14 | 13 | If you know relevant work or if your own work is relevant, please let me know so I can |
15 | 14 | reference it. |
16 | 15 |
|
17 | 16 | The fastest way to reach me is to tag or DM me: [x.com/ojoshe](https://x.com/ojoshe) |
18 | 17 |
|
19 | 18 | </div> |
20 | 19 |
|
21 | | -## Purpose |
| 20 | +## Overview |
22 | 21 |
|
23 | 22 | This work is a collection of reflections and research ideas on software engineering and |
24 | | -tools for thought. |
25 | | - |
26 | | -I'll start with Engelbart's ideas on intelligence augmentation and talk about why it's |
27 | | -important today. Then I turn to the history software engineering and its relation to |
28 | | -human knowledge work. |
29 | | -Finally, I'll get into a few specific ideas for tools we might design, discover, and |
30 | | -build that augment our *collective intelligence*—that is, improving our ability to find |
31 | | -solutions to complex human problems. |
| 23 | +tools for thought that augment our *collective intelligence*—that is, improving our |
| 24 | +ability to find solutions to complex human problems. |
| 25 | + |
| 26 | +I've worked in software and knowledge tools for a long time, in research, in startups, |
| 27 | +and in publishing. |
| 28 | +In terms of the ability of software to impact our lives, the mid 2020s |
| 29 | +is possibly the most exciting time since the dawn of the Internet. |
| 30 | + |
| 31 | +However, there are several ways my own views seem to differ from what I see in many |
| 32 | +discussions today. There's a lot here, but it is in support of four key points: |
| 33 | + |
| 34 | +1. Although popular debate today focuses on "AGI" and how AI can replicate human |
| 35 | + abilities, Doug Engelbart's ideas on augmenting *human* intellect (*intelligence |
| 36 | + augmentation*, or IA) are as prescient and relevant as they were 50 years ago. |
| 37 | + |
| 38 | +2. Although many are wondering if AI is replacing software engineers, the essential |
| 39 | + challenge of software engineering is *the exploration of software solutions to human |
| 40 | + problems*—and this is the same today as it was decades ago. |
| 41 | + |
| 42 | +3. The challenges of software engineering in fact give glimpses into the future of *all* |
| 43 | + human knowledge work. |
| 44 | + Instead of saying software engineers are being replaced by LLMs, it is more accurate |
| 45 | + to say *the patterns we now see with software engineers using LLMs will increasingly |
| 46 | + appear in all knowledge work and problem solving*. |
| 47 | + |
| 48 | +4. In both software engineering and other knowledge work, the most difficult but |
| 49 | + high-leverage activities improve "infrastructure": tools that help people explore |
| 50 | + solutions more efficiently. |
| 51 | + This is analogous to software engineering, where the most powerful systems always |
| 52 | + need mature, flexible tools and infrastructure. |
| 53 | + |
| 54 | +If you find you agree with these arguments, you'll see this suggests some different |
| 55 | +emphasis than what we currently see in many AI labs and startups. |
| 56 | +At the end, I give a few tentative ideas on how to approach building such tools and |
| 57 | +infrastructure. |
32 | 58 |
|
33 | 59 | <div class="boxed-text"> |
34 | 60 |
|
@@ -98,7 +124,7 @@ The hard part is figuring out which parts are which. |
98 | 124 |
|
99 | 125 | </div> |
100 | 126 |
|
101 | | -### Why Programmers Live in the Future |
| 127 | +### Programmers Live in the Future |
102 | 128 |
|
103 | 129 | In the next section I want to take a significant detour through some historical insights |
104 | 130 | about the challenges of building software. |
@@ -323,7 +349,7 @@ engineering: |
323 | 349 | It involved inherent consequences of mathematics and the laws of physics. |
324 | 350 | It is ultimately consistent. |
325 | 351 |
|
326 | | - Engineers should *always try to understand natural complexity. |
| 352 | + Engineers should *always try to understand natural complexity*. |
327 | 353 |
|
328 | 354 | - **Feature complexity:** On the other hand, if you are building a messaging platform, |
329 | 355 | you will discover your users (and competitors) like features such as emoji reactions |
@@ -667,7 +693,7 @@ broadly, checking for a wide range of specific errors, both for humans and for L |
667 | 693 | <div class="boxed-text"> |
668 | 694 |
|
669 | 695 | ***Linting** is the use of tools that minimize the attention needed to fix errors or |
670 | | -inconsistencies. |
| 696 | +inconsistencies.* |
671 | 697 |
|
672 | 698 | </div> |
673 | 699 |
|
@@ -1017,7 +1043,7 @@ Some key areas where document and tooling infrastructure needs to improve: |
1017 | 1043 | - There are numerous ways shell and shell-like UIs can be enhanced to be *both* easier |
1018 | 1044 | to use and more powerful |
1019 | 1045 |
|
1020 | | -### A Few of My Own Experiments (So Far) |
| 1046 | +## Appendix: A Few of My Own Experiments (So Far) |
1021 | 1047 |
|
1022 | 1048 | Over the past couple months, I've found that because I can build more myself with LLM |
1023 | 1049 | coding tools, I have been able to prototype a few of these bottom-up tools. |
|
0 commit comments