このブログは更新を終了しました。移転先はこちらです。

2022-12-11

2022/12/11 ―― 「アウトライン」問題/TypeScriptを使い始めた

 前回から少し間が空いたが、日付をタイトルにしている時は「記事」というより「長いつぶやき」というつもりのものである(経緯:2022/11/14 ―― 日付をタイトルにする試み/やり方を真似したくなるということ)。

 複数の話題をパッケージにすることで「論じている感」を下げている、ということでもある。


*


 デジタルノートツールの文脈で「アウトライン」と言うと単に「階層構造を示すように並べたリスト」ということになると思うのだが(表現はWikipediaより)、「アウトラインを考える」とか言った時にはもうその「形」ではなく「あらまし」「輪郭」といったイメージで語ることになると思う。その当たり前に行われる越境がずっと気になっている――というか、そもそも「形」だけを指して「アウトライン」と呼ぶことに無理があるよなと思っている。

 「アウトライン」と聞いてoutなline(つまり外側の線、輪郭のイメージ)を思い浮かべないはずはないし、outなlineのイメージは階層構造のイメージにはふつう直結しないのではないか。日本語にすると尚の事で、「輪郭」とか「概要」とかいう単語だけ聞いて「階層」を思い浮かべる人はほとんどいないと思う。outlineを辞書で引けば、手元の辞書(ジーニアス英和大辞典)では「(箇条書きに整理された)概略、概説」という意味が二番目に載っているが、それだけではそれ以上の構造的なニュアンスは想起しない。ちなみにリーダーズ英和辞典では「高機能ワードプロセッサーで、章・節などの見出しのみを表示したもの」と書いてある。これまた微妙である。辞書が古いせいもあるかもしれない。

 そのイメージの乖離ゆえに、「アウトライナー」という名称を聞いた状態であのツールの様子を見た時、単にその形をアウトラインと呼ぶのには個人的に抵抗がある。しかも、そこに何らかの動詞を伴わせた時点で、直ちに旧来の意味でのアウトラインの意味が混ざってきてしまう。アウトライン(=形)があの階層構造のリストの形をしているのは、本来アウトライン(=概略)のためだからであろうし(そうでなければ「アウトライン」という名前が付けられることはないだろう)、アウトライン(=形)を操作するというのはアウトライン(=概略)を作ろうとすることを意味しだす。アウトラインと呼ばれている形とアウトラインという語が含みうる概念とは違うもののはずだが、話の中で線引きがどこにあるのかは明らかでない。各々がどういう意味でアウトラインと言っているのか、アウトラインという語が曖昧すぎて全く自明ではないと感じる。

 単に形を操作することだけを示したい時に、「アウトライン操作」と言ってしまっていいのかどうか。いいのかというのは「良いか悪いか」という意味ではなく、「形の操作に過ぎない」ことが伝わるのかどうか、という意味である。しかし一方で、それが形の操作に過ぎないとしたならば、アウトライン(=概略)を組み立てる意味を込めたい時に逆に困るような気もする。

 形式と目的が同じ語で語られてしまうと、形式に常に目的が伴っているかのように感じる。でも、アウトライン形式で何かを書いた時、それは必ず目的的なアウトラインなのかは疑問である。少なくとも、積極的にアウトラインを作る時と、アウトラインと言えなくもないくらいの記述をする時とのグラデーションがある。そのグラデーション全てをカバーできるのが所謂アウトライナーの強みだと思う。しかしアウトライナーと言ってしまうと積極的で目的的なアウトラインに持っていくことをイメージしてしまうところがあるのが、私の中では引っかかるポイントになっている。


*


 ここ数日、TypeScriptの環境構築を勉強して実際にtsファイルでコーディングできるようにした。npmでインストールとかjsonで設定とかコマンドで実行とかいうことには相変わらずおっかなびっくりだが、あれこれ検索してどうにかちゃんとコンパイルされるようにできた。

 プログラミング言語としてずっとJavaScriptを書いてきたが、関数やメソッドが複雑化してくると型付けができないのが不便に感じるようになった。複雑と言ってもプログラミング一年生の素人がひとりで作っているものなので全然大したものではないのだが、VSCodeの入力補助やエラーがもっとうまく働いてくれたら楽なのにと感じる場面が増えてきた。

 私はJavaScriptの勉強を始める最初の一歩を敢えてTypeScriptからスタートしたので、TypeScriptがどんなものでどう書けばいいのかはある程度知っていた。結局メソッドなどを調べる時にはJavaScriptを調べることになるのでツールづくりは完全にJavaScriptで書いていたのだが、最近になってじわじわとTypeScriptのありがたさがわかってきた。あれはこういう時にありがたいのだ、というのが実感としてわかるようになった。

 あとはコーディング技術が上がってきて文字数が増えることを厭わなくなり、型をその都度書いても別に面倒ではないなという気持ちになってきたこともある。不慣れなうちは型をちゃんと書けというのは面倒臭さばかりが目立ってしまうが、今は「ヒントになる情報をここに書き足せたらいいのに!」とか思っているわけなので、書けるなら書きたいくらいである。


 そんなわけで「実感を得てステップアップ」という感じで階段をひとつ上った。前に新たなメソッドを覚えた時なんかもそうだったが、低次元の技術でなんとかしていて「ここがこうできたらいいのに!」と思ったところで「こうすればできるんじゃん!」を発見した際の嬉しさは、プログラミングならではのものかもしれない。次に進めと急かされて学ばされるのは辛いが、自分で欲してから次に行くならこんなにも楽しい。

 そういえば、HTML要素をもっと直感的に書けたらいいのにと思っていて、そういやよく聞くReact(JavaScriptのライブラリ)ってどんなのなんだろうと思って調べたら、まさに自分の望みを叶えてくれそうなものだと知った。これも習得できたらきっともっと楽しくなるだろう。そこまでしなくても書ける程度のものしか作ってはいないが、わくわくを追ってReactにも手を出してみようかと思う。