開発に至る経緯
ここを読まれている方はもう読まれているでしょうが(ていうか読んでくれると嬉しい)私の著作「異世界のジョブズに、僕はなる ~定年SEの異世界転生業務報告書~」は異世界にて、パソコンを作るならどうするかという発想のもとに書かれた作品です。
なろう作品の中にも魔法をプログラム言語かそれと似たような構造で書くものや、すでに似たような装置があり、それで動かすなどは有っても、自分でハードウェアから作るに至る作品は見かけなかった(もしかしたらあるかもですが)ので、ならば自分で書こうと。
この作品を書くに当たって、昔の思い出などを散りばめながら書いていたため、無性にプログラムが書きたくなってしまい、夜も寝られず昼寝をする事態にw
未完の作品があるのに、ついつい脇道にそれてしまうのは、誰もが思い当たることの100や200はあるでしょう。
思いついてしまったら居ても立っても居られないのは、物書きモノ作り人の性とも言える現象なので、未完の作品は気を長くしてお待ちいただければと思います。
さて、プログラムを作るにあたって、まずは何を作るかを決めないことには話しになりません。
世の中には星の数ほどのプログラムが作られ、そして超新星爆発どころか塵芥のように消えていく(積み上がっていくと言ったほうがいいかもですが。まるでプログラムがゴミのようだw とか)。
最近はゲームエンジンも充実してきて、個人でもかなり見栄えのするゲームが作れる人もいるでしょうけど、そんな人は稀で、今の時代、個人でプログラムを書くとなると、大抵はしょぼいツールか、ExcelのVBAとか、せいぜいそんなものでしょう。
まともに使ってもらおうとすれば、かなりの規模のプログラムになるか、優れた発想に基づいたプログラムである必要がありますが、どちらも個人ではなかなか難しいですよね。
ではどうするか。
ずばり隙間産業を狙います。
つまり知られている分野ではあっても、労力に見合わない等、誰も手を出さない分野。
そこを狙うわけです。
あったら便利という機能でも、商業的に採算が合わないと、企業はそんなソフトは作ってくれません。
なにかのついでに入れてくれることは有っても、その機能だけ分離してくれるなんてことはなく、余計な機能のせいで使い勝手が悪くなったり、リソースを圧迫したりします。
ならどうするか。
なければ作る!
これがプログラマ的発想というものでしょう。
で、肝心の隙間ですけど、自身のプログラム資産を再利用することで、プログラムを書く量を大幅に減らせるので、まずはそれを前提に考えてみました(貧乏性とも言うw)。
モジュールの再利用は近代プログラミングにおける最大の発明と言っていいでしょう。
著作の中では革命とまで言っています。
コンパイラに付属の標準ライブラリは言うに及ばず、Windowsの各種API。
.NETなどのフレームワーク。
人間がほぼ考えられるあらゆる機能が、ライブラリとして提供されている今日この頃。
自分の欲しい機能を探すだけで、日が暮れることもしばし。
なので、自分で作った機能のほうが探しやすいというのもあります。
といっても、これまで書いてきたプログラムは、公開した物していない物、業務で書き散らしたプログラムを含めると結構あったりします。
その中で業務はともかく、個人として一番工数を注ぎ込み、大作となったのがAlice Builderという、アリスソフトのゲームエンジンSystem3.x(詳細はwiki等を参照。ホームページは18禁ですw)用の統合開発環境。いわゆるIDEですね。
System3.xに付属のツールをIDE上から制御し、ソースコードの修正からデータの作成支援、コンパイルと実行。そしてソースコードデバッグまでを可能とした力作です。
何故かツール本体より付属のエディタ開発に力を注ぎ込みすぎた迷作でもありますw
Windowsにはエディットコントロールとかリッチエディットコントロールとかエディタのベースになる機能が標準装備されていて、このWindowsの機能を使えば、メモ帳程度ならものの30分とか時間があればできるわけです。
Alice Builderでも最初はリッチテキストを使用してはいたんです。
ところがどっこい。
標準機能は何もしなくてもそれなりに使い物になりますが、何か凝ったことをしようとすると、その標準機能がかえって邪魔をすることになり、それを回避するために更に複雑な操作を強いられ、結局めんどくさくなって、これなら全部自分で作ったほうが速い(気の所為w)と、フルスクラッチで作る羽目に。
ここまで手をかけたのに、ゲームエンジンはSystem4系統に移行し、ツールが対応できなくなり、いつしかアリスソフトもツールの公開をやめてしまったので、こちらも日の目を見ることもなくなり、サイト閉鎖とともにひっそりと消えたソフトとなりました。
自分としては思い入れのある作品でもあるので、なんとか再生し、日の目を見せてあげたい。
というわけで、Alice Builderよりエディタ部を切り出し、ひと手間加えて、再び世に送り出そうというのが今回のプロジェクト、Alice BuilderあらためAlice Editor(安易なネーミングw)開発プロジェクトの始まりです。
とはいえ先程も書いたように、今のソフトウェア産業は、しょぼいフリーソフトなど及びではない。
ならば何か差別化を図る必要があります。
このソフトならではという機能がなければ誰も使ってはくれません。
キビシー!
そこで、目玉を何にしようかと考えた結果が、巨大ファイル対応(というか専用)のテキストエディタです。
ベクターなどフリーのテキストエディタを見ても、巨大ファイル対応を謳っているものはなさそうだし、商用でもEmEditorなど少数が巨大ファイル対応を謳っている他、あまり声高に主張しているエディタは見当たりませんでした。
EmEditorも試用してみましたが、たしかに巨大ファイルが扱えるが、最初の読み込みに時間がかかったり(一度読むと早い?)メモリーや仮想記憶だかテンポラリファイルだかを山のように使ったりと、どうも自分の望むものではない。
(読み込めてもメインメモリが少ないとうっかり改行入れただけで固まるし、スクロールもバーの操作をしてもなめらかにスクロールしない。EmEditorはFree版なのでもしかしたら最新版や有償版はもう少し快適かもしれないけど)
そこで「ぼくが考えた最強の巨大ファイル専用テキストエディタ」wを作ってみたいと思います。
まずプログラムを作るのに当たって最初にやるのは要件定義というやつですね。
どんなプログラムを作るのか決めておかないと、色々と迷走し、先に紹介した小説の主人公のように最初に考えていたものとは違ったものになる場合があります。
まあ、ちゃんと考えていても、途中で考えがくるっと変わる場合もありますがw
個人で作るものだから気分で変えてもいいじゃん! と、ゆるい感じでやっていってもいいじゃん。
な、割とテキトーな感じでやっていく所存であります。
また、ほとんど誰も手を付けていない分野ですので、もちろん技術的な困難があると予想されます。
今考えられる要件を適当に並べても、場合によってはそれが実現できない可能性もあります。
なにせ最強! ですのでw 妥協はしません!
なので、要件というより目標と言う名の妄想を設定し、技術的検証を行いつつ実装する。
技術的に困難、あるいはめんどくさいw 等の個人的理由で、目標や要件を変えることも辞さない覚悟(笑)で臨みたいと思います。
みなさま生暖かく見守っていただければ幸いです。