データベース嫌いとの決別
Evernoteが、OSごとに異なった開発体制を統一し、新しいEvernoteとして再スタートを切った後のことです。それ自身は意欲的な試みであり、中長期的な展望を考えるなら必要な措置だったとは思うのですが、一つ困ったことがありました。
AppleScriptが使えないのです。
伝統的なMacアプリはAppleScriptに対応しており、自分でコードを書けばアプリケーションを操作したり、データをやりとりできました。ライフハック・マインドセットにおいて、そうした操作が可能なことは重要な要件で、私もかなり好き勝手にEvernoteを”改造”していました。
しかし、Appleそのものが、AppleScriptよりもショートカット(.app)に力を入れている流れもあり、新しく出てくるツールはAppleScript未対応なものが増えてきました。新しいEvernoteも、その仲間だったのです。
そもそもElectronなどで作られているアプリケーションは、「特定のWebツールに特化したブラウザ」くらいの位置づけで、Swiftなどで書かれているネイティブのアプリとは有り様が大きく違っています。OSを気にせず使えることと、深いレベルでOSと結びついた機能が使えることは、トレードオフのような関係があるのでしょう。
そうした事情を理解しつつも、自分で操作できないのは困ります。いや、困りはしません。普通にツールを使うなら可能です。でも、なんだか楽しくありません。それに夏の入道雲のようなモヤモヤもあります。
自分のデータくらい、自分で好き勝手に触らせてよ。
というわけで、数年前に脱Evernoteを目指しました。全データをエクスポートして、自分のローカルで操作できるようにするのです。
その際に決意したことがありました。「テキストファイルベースにして、データベースは絶対に使うまい!」と。
データベース嫌い
結果的に出来上がったのが「Textbox」というシステムで、今はver2.0になっています。Webに記事を公開するための簡易CMSとしてもスピンオフしました。個人的なイノベーションです。
どちらにおいても、データそのものはmdファイルに保存されています(そのときは意識していませんでしたが、Obsidianとほぼ同じ構造です)。
はっきりいって効率が悪いのはわかっていたのです。大量の情報を扱うんだから、テキストファイルよりも、データベースを使った方がよいに決まっている。しかし、当初の決意があります。なんとかデータベースを回避してシステムを構築したいと試行錯誤した結果、上記のような形になりました。
ではなぜ、そこまでデータベースを忌避していたのでしょうか。
一つには、新Evernoteが「データベース」だったからでしょう。昔のEvernoteは、すべてのノートに対してローカルにフォルダが作成され、一つひとつに.htmlが作られていました。もちろんデータベースもあったのでしょうが、そのhtmlファイルを編集すると、ちゃんとEvernote上でも書き変わったのです。しかし、新しいEvernoteではそうした実体的htmlファイルはなくなり、すべてがデータベースに統合されました。おかげで、私が直接ノートを触れなくなってしまったのです。
その残念さの反動から、非Evernote的な方向を目指すようになった。つまり、カウンターカルチャー的な駆動力が働いていたわけです。
不慣れと苦手意識
それだけではありません。もう一つには、私がデータベースをまったく扱えなかった点があります。
それなりコンピュータを触っていても、日常的にデータベースを触ることはありませんでした。Evernoteのように、データベースに情報を格納してはいても、自分がそれを触っている感覚がないことがほとんどです。SQLを書いて、データベースに問い合わせて、みたいなことはまったく経験がありません。
そうするとどうなるかというと、「データベース」が遠いものに感じられるのです。仮にそこに情報を保存しても、手軽に取り出すことができない。そんな感覚がしてきます。
つまり、当初Evernoteにデータが「向こう側」に行ってしまったことを嫌ってローカルファイルに回帰しているのに、それをデータベースに保存してしまったら、また別の「向こう側」になってしまう。そうした予感が、データベース忌避を生んでいたのでしょう。
あまりにその感覚が強くなりすぎて、「データベースは悪」のような歪んだ信念すら形成されてしまっていました。
データベースという選択肢
もちろん、データの扱いにおいてデータベースが硬直的である側面はあり、自由かつ気楽に情報を扱うのには向いていないことはたしかでしょう。
一方で、データベースというのはコンピュータを扱う上で生まれた重要なテクノロジーであることも間違いありません。特に大量の情報を扱う上でデータベースの選択はきわめて有効です。
となれば、データベース向きの情報とそうでない情報を切り分けて、最適な情報をデータベースに割り振ればいいわけですが、「データベースは悪」という信念があると、そもそもそれについて考えるのが嫌になるのです。詳細な検討や分析は抜きにして「自分の環境ではデータベースは触らない」というイデオロギーができあがり、それ以上それについて詳しくなることがありません。先入観を改訂できないのです。
それを変えてくれたのが、生成AIでした。
たくさんの情報を扱う相談をしていたら「これくらいの規模になると、SQLiteでの保存も選択肢に入りますね。もともとのデータが揃っているので作成は一発です」みたいなことを言ってきたので、ふ〜ん、じゃあやってみて、とお願いしたらあっという間に数千件のデータが入った.dbのファイルができました。当然、自分ではそのデータベースにアクセスできないので、ビュアーとなるindex.htmlとsever.jsも書いてもらいました。さくさく全データにアクセスできます。
めっちゃ簡単に扱えるやん。
それまでずっと感じていた距離感が一瞬でなくなりました。何をあんなに忌避していたのか、もうぜんぜんわからないくらいです。今はむしろ積極的にセルフ・データベースを整備していくぞ!くらいの気持ちになっています。
テクノロジーが変えるもの
私がもしSQL言語を自由自在に扱えていたら、データベースへの忌避感をそもそも覚えていなかったでしょう。何かに習熟していることは、対象との心理的な距離感を変えます。人間が何かを学ぶことの見落とされやすい価値の一つです。
テクノロジーが、その距離感を変えてくれることがあります。いまだに私はSQLが扱えませんが、それでも.dbは忌避する対象ではなくなっています。データベースそのものがテクノロジーですが、そのテクノロジーと私をつなぐテクノロジーとしての生成AIがあるわけです。
実際、AppleScript→ショートカット.app、という流れにMCPを位置づけられるように感じます。片方にアプリケーションがあり、もう片方にユーザーがいるときに、その二つをつないで、ユーザーが主体的にアプリケーションを扱えるようにする。役割はほぼ同じでしょう。単にそのアダプターに生成AIが挟まっているだけです。
そのように簡単に触ることができ、動き方が分かるなら、対象との心理的な距離は変わってきます。
もちろん、データーベース以外の対象であっても、同じことです。


