{デライト}{一日一文}{デライト史}{希哲6年}{技術的負債}{『阿部寛のホームページ』}{最悪の事態}{実装可能}{遅かった}{9年}...=}(95)

{デライトはなぜ速いのか K#F85E/E74C-1187}

いまデライトでは,「高速化」の作業最優先取り組んでいる。その理由デライトの現状については,昨日,「デライト高速化前の現状整理」にまとめた。そちらは個人的覚え書きだが,興味があれば覗いてみて欲しい。

今日は,デライトの「速さ」の歴史について簡単に振り返ってみたい。


「デライトはなぜ速いのか」というに,デライト用者ユーザーは少し違和感を覚えるかもしれない。個人知識管理(PKM)サービスとしてのデライトは,速いと言えるほど速くはない。せいぜい「」だ。ただ,並の速さで動いているのが奇跡的に「速い」と言えるほど,実装難度が高いのだ。普通に実装すれば,遅過ぎてまず実用にならないだろう。

サービスとしてのデライトは,「デルン」という全く独自CMS で動いている。Wikipedia に対してウィキがあるようなものだと思ってもらえばいい。このデルンの実用化成功したのは,希哲6(2012)年,もう9年ほど前のことだ。

実は,最初にデルンが動いた時,使っていた論組プログラミング言語PHP だった。そして,あまりにも遅かった。ある程度のが出来たあと,すぐに C++書き直した。

これが出来たのは,当然,準備していたからだ。元々,デルン開発にあたっては速度重視していた。それは体感出来る速さのためというより,「遅さで使いものにならない」事態を避けるためだった。ほとんど前例が無く,全てが未知数手探りという状況だったので,そもそもデルンのようなものが現実的に実装可能なのかどうかすら分からなかった。作ってみたがまともに動かない……これを最悪の事態想定していた。

そうなると,利用する技術は少しでも速い方が良かった。手探りの開発過程でいわゆる技術的負債蓄積していくことも想定していたため,それを補ってくれるだけの速さが必要だった。言語で言えば,今なら Rust あたりも選択肢に入ったかもしれないが,デルンを構想し始めた当時は C++ くらいしか無かった。

一方で,当時の私はウェブ開発経験に乏しく,デルンに何が必要なのか把握出来ていなかった。そこで,PHP を使って試作品プロトタイプを作ってみることにしたわけだ。

案の定,PHP で出来たデルンは実用的速度で動かず,すぐに準備していた C++ に切り替えた。この移行作業円滑に進み,やがて という独自言語に変貌していく。

今のデライトは,この Cμ に FastCGIマルチスレッドnginx 等々と徹底的に速度を重視した構成で動いている。PostgreSQL出場(DB)側も Cμ で外充て(ストアド)函数にしている。徹底して単純化された設計も手伝い,ほぼ極限まで高速化出来る可能性がある。

これまでのデライトにとって,「速さ」は遅さを補うためのものだった。そして今,この速さを武器にするために高速化作業を進めている。どうせやるなら,有名dev.to『阿部寛のホームページ』のように,速さを楽しんでもらえるくらいにしたいと思っている。是非楽しみにしていてほしい。

=}
{デライト}{進捗記録}{領当て}{希哲15年2月12日の開発}{端末間}{横向き}{568px}{希哲15年2月12日の進捗時限}{希哲15年2月12日の進捗}{希哲15年2月12日}...=}(46)

{希哲15年2月12日5歩 K#F85E/E74C-974E}

デライト文書整備「使い方」構成を練る。

個人機向けと諸場端末向けで説明を分ける方向検討していたが,これは共通化してしまうことにした。

自我アイコン設定機能実装を通して鼻付き吹き描き領当てがほぼ共通化されたこと,昨日引き入れ操作をほぼ共通化したことで,表示操作ともに端末間での差異がほとんど無くなったことによる。併用することも多いはずなので,この状態で説明し分けるのは無駄だろう。

結果として今のデライト単純性柔軟性を極めて高度両立させている。これを強みとして活かしたい。

これに伴ない,画面撮り横幅統一することにした。個人機で見ても違和感がなく,スマートフォンで見ても細か過ぎないという点で,現在最小横幅の基準にしている iPhone 5横向き幅(568px)を採用することにした。今後は宣伝用の画面撮りも含めてこの横幅を基準にする。

画面撮り時の横幅は少し前からよく考えていたのでちょうど良かった。これまでは普段自分で使っているをそのまま使うことが多かったが,要点を伝えるには無駄が大きいと感じていた。適当に縮めると統一感が無くなるという問題もあった。

{構成}

{}