summaryrefslogtreecommitdiffhomepage
path: root/services/blog/content/posts/2024-03-20/my-bucket-list.dj
blob: d998cc2b968356ec79ea930ce59c59f9c1c30fce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
---
[article]
uuid = "6b749793-c760-4597-8a4c-b32d027b7585"
title = "死ぬまでに作る自作○○一覧あるいは人生の TODO リスト"
description = "駄文"
tags = [
]

[[article.revisions]]
date = "2024-03-20"
remark = "公開"

[[article.revisions]]
date = "2024-04-07"
remark = "URL slug を todos-in-my-life から my-bucket-list へ変更"
---

これは眠れない夜にノートへ書き散らした文をなんとか文章の体裁に直したものであり、およそ論理と呼べるものを期待してはならぬ。

Knuth 曰くプログラミングは文芸である。断っておくが、労役に伴うプロダクティブでプラクティカルな行為を指してそう言っているのではない (Knuth がどう考えているかは知らないが、少なくとも私にとっては)。いわゆる趣味プログラミング、穢れなき自由意志の下で記述されるプログラムとはすなわち、絵描きにとっての絵、文字書きにとっての文章に等しい。プログラムとは、ソースコードとは、芸術作品の一形態なのである。

この人生でプログラミングという行為に魅せられたからには、美しい作品を遺さねばならぬ。すなわち、簡潔で、理解しやすく、凝縮され、機能的で、速く、軽く、よい名前を持ち、うまく動くものをだ。

何を作りたいかは各々異なるであろうが、私にとっては車輪の再発明として知られる自作○○である。

車輪の再発明を恐れてはいけない。これを批判する人間というのは、プロダクティビティやプラクティカリティにフォーカスするエンジニアという人種である。今私が表現者たろうとするなら、自らの手で自らの車輪を作ることに何の恐れを抱く必要があろうか。

そう、これが私の死ぬまでに作る自作○○一覧あるいは人生の TODO リストである (現時点ですでに部分的あるいは全面的に達成しているものを含む)。

* 自作 C コンパイラ
* 自作アセンブラ
* 自作リンカ
* 自作 Scheme 処理系
* 自作 ML コンパイラ
* 自作 Lua 処理系
* 自作 JVM
* 自作 Wasm 処理系
* 自作正規表現エンジン
* 自作 JavaScript 処理系
* 自作ブラウザ
* 自作エディタ
* 自作 ActivityPub 実装

選定理由は作りたいということのほかにない。そこに題材とキャンバスがあり絵筆と絵具があれば、生きとし生けるもの、いづれかコードを書かざりける。

おお、願わくは、私にこれらを生み出すだけの時間があらんことを。