-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
サクラエディタの「業務要件」を考える #71
Comments
サクラエディタの歴史的経緯に詳しくないのでへぇーと興味深く読みました。とはいえ、何のためのIssueかさっぱり分からなくてもやもやするのでコメントします。 いわゆる「職業=プログラマー」から離れて7年ほど経つからか、「業務要件」という言葉にしっくりきていないです。 ・これは、雑談?コラム?ポエム? ・開発メンバーの足並みを揃えたい ・プロジェクトの未来を見つけたい(今後の方向性を見直し、整理する) いずれも相互に関係しているとは思うのですが、より強い狙いがどれなのか見えてくるとコメントしやすくなるのかなーと思いました。 メンバーそれぞれにこのソフトウェアに対する「想い」があると思うので、「開発メンバーアンケート」みたいなIssueを立てようかなーと最近思っていましたが、それに近い問題意識があるのかと思いまして。 |
コメントありがとうございます。
何故「叶えたい目的」を共有したいか? サクラエディタの「叶えたい目的」を共有できれば、 将来的には #44 テストを計画してみたい で触れているような「リリースに向けたテスト計画」を考える基準になる「目的」を共有したいと考えていますが、課題は他にもたくさんあると思っていて「リリース可否判定基準」を定めることで身動きが取れなくなくなることを懸念しています。現時点では「なんとなく共有できればOK」と思っています。
主として雑談です。
断面ごとの目的、いま何の話をしているか?にはこだわるほうなので、 意外に思うかもしれませんが、メンバーの目的を揃える必要はないと考えていました。 結局のところ「サクラエディタの目的を第一に考えていこうぜ!」と言うことになるので「足並みを揃える」と同じになるんですが、ぼく個人の主観としては「メンバーの足並みは揃ってなくても構わない」と思っています。
繰り返しになりますが、「叶えたい目的」の共有は「あるべき姿」の共有と同義だと思っています。「何が正しいのか分からん」という状態から一歩抜け出すためには「サクラエディタの原点を考えてみる」ということが必要なのかな?と思っています。
まさしくそんな感じです。 とりあえず「こうだ!どうだ!」みたいなノリじゃなく「なんとなく共有したい」としてるのは、他の考え方があれば聞いてみたいなぁ、という思いがあったからです。 |
多分一番古参の「ユーザー」だと思いますがおもいつくまま。 それから数年たってサクラは思わずあちこちで見かけるようになります。 今ではIDEも無料で手に入る世の中ですので言語編集は他のツールのほうが生産性は高いと思いますが、ログの解析とか設定ファイルの編集とか、exe一つで動くニーズは高いと思っております。 いろんな人が交わって今に至るということでOSSの形をしたSNSなんじゃなかろうかと。 すいません、まとまりなくて。 |
ちょっと修正しました。結論部分が分かりづらくなっていたので加筆修正しました。
「編集データ」というのは sakura-editor/sakura#980 で修正対象に上がっていた 追加&削除以外の編集機能って何だろう?発展ネタです。 読み込む、追加する、削除する、書き出す この4つの操作が、サクラエディタの業務要件を満たすための機能だとします。 それ以外の機能って、何なんでしょうか? 例えば、サクラエディタの代表的機能「検索」について考えてみます。 この機能は、ファイルを読み込みません。 ぼくの個人的見解では、検索は業務要件を満たす主要機能を便利に使えるようにするための補助機能です。・・・考えてみてください。
検索は、文書内から指定されたパターンを検索し、見つかったパターンに移動する機能です。多くの実装で、見つかったパターンが選択状態になるので、対象パターンを選択する機能であるともいえます。 ここで、検索は補助機能である、の見解に納得したことにします。 そうすると、 他の多くの機能も「編集を補助するための機能」なんじゃないか? と予想できると思います。文字コード変換とかマクロとか、構文色分けとか、サクラエディタには様々な機能がありますが、すべて「円滑に編集操作を行うための補助機能です」と説明して問題ないように思います。 |
前置き
何かアプリを作るときは「叶えたい目的」があります。
「叶えたい目的」を実現するのがアプリの役割だと思います。
サクラエディタにも「叶えたい目的」があるはずです。
目的
サクラエディタの業務要件(=叶えたい目的)を なんとなく共有 します。
今風アプリの業務要件
今風なアプリを作るときの流れは以下のような感じです。
今風アプリの開発では 5. ができてはじめて 6. のリリースができます。
サクラエディタの業務要件
今風アプリの業務要件の考え方をサクラエディタに当てはめてみます。
・・・サクラエディタって「何ができる」んでしょう?
アプリである以上、原点の「~がしたい」が存在しているはずです。
リリースしている以上、「~ができる」になっているはずです。
しかし、「~ができる」の具体的内容は不明です。
このissueでは「~ができる」の具体的内容が何だったのかを考えたいと思っています。
サクラエディタが作られた理由を想像する
サクラエディタが作られた理由を想像してみます。
「なんで作られたか?」が分かれば「何がしたかったか?」に辿り着けそうに思うからです。
時代背景
サクラエディタのベースが作られたのは 1998年 です。
'98年といえば、インターネットの普及期にあたります。
windowsとUNIXをインターネット越しに繋げられるようになった時期です。
フリーソフトとしてのサクラエディタ
サクラエディタを使う理由として
「秀丸に匹敵する高機能フリーエディタ」であることを挙げる人は多いと思います。
秀丸 は、サクラエディタとよく比較されるメジャーな日本語テキストエディタです。シェアウェアなので、しばらく使っていると起動時に送金を求めるダイアログが出るようになります。良識ある利用者は代金4,320円を振り込んで利用を継続します。利用するPCの所有者が BLACK 企業だったりすると有償ソフトウェアの利用ができないことがあります。そういう事態を回避するために、普段から無償のサクラエディタを使っておく、というのは一つの選択だと思います。
「無償で利用できる高機能なテキストエディタが欲しい」がサクラエディタが作られた原点である可能性は高いと思います。ただ、これが業務要件だとすると結局何がしたいのか不明なままになってしまうので、「無償で利用できる」を業務要件とするのは違う気がします。
notepad.exeの代わりとしてのサクラエディタ
サクラエディタを使う理由として
「notepad.exeで編集できないテキスト」を編集できることを挙げる人は多いと思います。
ウインドウズには、システム標準で
notepad.exe
が付いています。1998年当時のnotepad.exeが対応するのはシフトJISのみでした。
改行コードもCRLF以外の改行は扱えず、LF改行のテキストは「改行なし」に見えました。
「windows標準のnotepad.exeでは編集できないテキストを編集できるようにしたい」がサクラエディタが作られた原点であった可能性は高いと思います。ただ「
notepad.exe
で編集できないテキストって具体的にどんなんやねん!」と突っ込める内容なので、この動機はもう少しブレークダウンさせる必要がありそうです。UNIX互換エディタとしてのサクラエディタ
サクラエディタを使う理由として
「改行コードLF」を正しく処理できることを挙げる人は多いと思います。
「Shift_JIS以外の文字コード」を概ね正しく処理できることを挙げる人も多いと思います。
「windows以外の環境で作成されたテキストファイルを編集できるようにしたい」がサクラエディタが作られた原点である可能性は高いと思います。
サクラエディタが「何のために作られたか」を想像する
「windows以外の環境で作成されたテキストファイル」ってのは、大雑把に言って「UNIX環境向けテキストファイル」のことです。より具体的には、ホームページを構成するHTMLやPerl等のCGIスクリプトを指すと思います。
「windows以外の環境で作成されたテキストファイルを編集できるようにしたい」の定義を言い換えてみます。
サクラエディタの業務要件再考
「ホームページやCGIを編集できる」は間違いなく「業務要件の一部」だと思います。
「業務要件の一部」と言ってるのは、全体像があって「その一部」だと感じたからです。
言葉遊びで定義を少し弄ってみます。
「ホームページやCGIを編集できる」
↓対象の定義を汎化する
「テキストファイルを編集できる」
↓対象の定義を汎化する
「ファイルデータをテキストとして編集できる」
対象を汎化したらサクラエディタの業務要件の話っぽくなってきました。
そして、新しい言葉が出てきました。
「テキストとして編集」
ただの「編集」じゃなく「テキストとして編集」です。
何故こういう言葉が出てきたかというと、サクラエディタは
sakura.exe
のようなファイルも開くことができるからです。対象ファイルが「テキストファイル」であるとは限らないと思っています。ファイルデータがテキストであるかどうかと関係なく、ファイルデータはテキストとして表示されます。これが「テキストとして編集」の意味です。「テキストとして編集」という言葉は、具体的にどうするか曖昧だと思います。
先ほどとは逆に、詳細化してみます。
「ファイルデータをテキストとして編集できる」
↓操作内容を詳細化する
「テキストとして編集」は4つの操作の組み合わせで構成されていることが分かります。
これはある意味「テキストエディタの業務要件」でもある気がします。
「
notepad.exe
で編集できないファイルを編集したい」をやりたいことと捉えるのもあながち間違いではないのかも知れません。息切れしてきたのでここで一旦切ります。
情報共有が目的のissueですので、ご意見等あればご自由にお寄せください。
The text was updated successfully, but these errors were encountered: