Skip to content

サクラエディタの「業務要件」を考える #71

Open
@berryzplus

Description

前置き

何かアプリを作るときは「叶えたい目的」があります。
「叶えたい目的」を実現するのがアプリの役割だと思います。
サクラエディタにも「叶えたい目的」があるはずです。

目的

サクラエディタの業務要件(=叶えたい目的)を なんとなく共有 します。

今風アプリの業務要件

今風なアプリを作るときの流れは以下のような感じです。

  1. ~をしたい!
  2. ~ができるアプリを探す (「~ができる」が業務要件
  3. ~ができるアプリが見つからなかった!
  4. ~ができるアプリを書いてみる
  5. ~ができるかどうか使ってみる
  6. ~ができるアプリができた!

今風アプリの開発では 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以外の環境で作成されたテキストファイルを編集できるようにしたい」の定義を言い換えてみます。

  1. ホームページやCGIを編集したい!
  2. ホームページやCGIを編集できるアプリを探す
  3. ホームページやCGIを編集できるアプリが見つからなかった!
  4. ホームページやCGIを編集できるアプリを書いてみる
  5. ホームページやCGIを編集できるかどうか使ってみる
  6. ホームページやCGIを編集できるアプリができた!

サクラエディタの業務要件再考

「ホームページやCGIを編集できる」は間違いなく「業務要件の一部」だと思います。
「業務要件の一部」と言ってるのは、全体像があって「その一部」だと感じたからです。

言葉遊びで定義を少し弄ってみます。

「ホームページやCGIを編集できる」
   ↓対象の定義を汎化する
「テキストファイルを編集できる」
   ↓対象の定義を汎化する
「ファイルデータをテキストとして編集できる」

対象を汎化したらサクラエディタの業務要件の話っぽくなってきました。
そして、新しい言葉が出てきました。
「テキストとして編集」
ただの「編集」じゃなく「テキストとして編集」です。

何故こういう言葉が出てきたかというと、サクラエディタは sakura.exe のようなファイルも開くことができるからです。対象ファイルが「テキストファイル」であるとは限らないと思っています。ファイルデータがテキストであるかどうかと関係なく、ファイルデータはテキストとして表示されます。これが「テキストとして編集」の意味です。

「テキストとして編集」という言葉は、具体的にどうするか曖昧だと思います。
先ほどとは逆に、詳細化してみます。

「ファイルデータをテキストとして編集できる」
   ↓操作内容を詳細化する

  • ファイルデータ(バイナリ)を編集データ(テキスト)に変換して表示する
  • 編集データに新しいデータを追加する
  • 編集データの一部データを削除する
  • 編集データ(テキスト)をファイルデータ(バイナリ)に書き出す

「テキストとして編集」は4つの操作の組み合わせで構成されていることが分かります。

これはある意味「テキストエディタの業務要件」でもある気がします。
notepad.exe で編集できないファイルを編集したい」をやりたいことと捉えるのもあながち間違いではないのかも知れません。

息切れしてきたのでここで一旦切ります。
情報共有が目的のissueですので、ご意見等あればご自由にお寄せください。

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions