しさくろく

試作録、思索録、詩作録、…etc

Programmer's Astarte+の各種分析 (練習1日目)

昨日Astarte+を初めて打鍵して、設定ファイルを準備した。

Astarteから派生させたProgrammer's Astarteの考え方をそのままAstarte+に適用した上で、Programmer's Astarte+を以下のように定義して、今日から本格的に練習することにした。

練習を始めるにあたって、まず各種の統計分析にかけてみることにする。

(1) プログラミングコードの打鍵統計

Keyboard Layout Analyzerの分析にかけてみたところ、総じて良い結果が出ていた。(jsonファイル)

例えば以下のようなRustコードを入力文章にすると、次のような結果が出た。

// The adult has seen it all, and can handle any drink well.
// All drinks are handled explicitly using `match`.
fn give_adult(drink: Option<&str>) {
    // Specify a course of action for each case.
    match drink {
        Some("lemonade") => println!("Yuck! Too sugary."),
        Some(inner)   => println!("{}? How nice.", inner),
        None          => println!("No drink? Oh well."),
    }
}

// Others will `panic` before drinking sugary drinks.
// All drinks are handled implicitly using `unwrap`.
fn drink(drink: Option<&str>) {
    // `unwrap` returns a `panic` when it receives a `None`.
    let inside = drink.unwrap();
    if inside == "lemonade" { panic!("AAAaaaaa!!!!"); }

    println!("I love {}s!!!!!", inside);
}

fn main() {
    let water  = Some("water");
    let lemonade = Some("lemonade");
    let void  = None;

    give_adult(water);
    give_adult(lemonade);
    give_adult(void);

    let coffee = Some("coffee");
    let nothing = None;

    drink(coffee);
    drink(nothing);
}

下のProgrammer's Dvorakと比較すると、DvorakLRNSを多用した場合に右手小指側に重心がかかるのに比べて、バランスはよくなっているのではないだろうか。(改めて、Dvorakだとreturnとかlnlsが辛そうだ。)

(2) ローマ字

また、青空文庫より坊っちゃんの冒頭部を打たせると、Colemak Mod-DHに勝る結果となり、当然というかDvorakよりも良かった。

Aの使用頻度が高いので中央にある良さが出ているのと、下段の使用が少ないので縦移動が抑制されているのも快適そうな印象。さすがローマ字を意識してあるだけあってホームポジションを堅持しているのがわかる。

Colemakでローマ字を打つというイメージがつかないが、こうしてみてみるとTASARAあたりが辛そう。やっぱりdigraphやN-gramがないと、ヒートマップだけでは実際の辛さがわかりにくい。

(3) 英語

最後にアリス・イン・ワンダーランドの冒頭部。これはColemak Mod-DHに次ぐ結果となった。

DvorakはやはりLRNSが辛い。これは1〜2年使っていても体感した。

所感

こうして比較すると、やはりdigraphを使ったストローク分析を早くやりたくなる。打ちにくい単語などを抽出してみたい。

体感的には、Astarte+は悪手は少なそうではあるし、初日の今日の印象ではバランスも良く、スコア的にもColemakやDvorakより良いことが多く、日本語・英語・プログラミングのいずれに対しても最適でありそう。

少なくとも、ローマ字入力は快適になるし、DvorakLRNSのような辛さは減りそう。

個人的にProgrammer's Dvorakと共通項を多く持ちながらも、日本語・英語・プログラムにおけるバランス面での大幅な改善が見られるので、Programmer's Dvorakを愛用していて悩みを持っている自分としては、Programmer's Astarte+が見いだせたのはありがたい。似ている分だけ移行もスムーズ。

あとは新下駄配列を使いながらもローマ字入力も使うか否かだけれど、高速打鍵時はローマ字も快適だし、プログラム中にアルファベットのローマ字が頻出するケースでDvorakは辛かったので、そういう意味で日本語・英語・プログラミング対応の配列は助かると思う。

追記: 日本語Keyboard Layout Analyzer

設定ファイル用の記事にも追加したが、eswai/keyboard_analyzer用の設定ファイルも書いた。(jsonファイル)

github.com

以下がデフォルトの文章での解析結果。

結果自体はそう変わらないけれど、分析ツールとして、普通の漢字かな混じり文が使えるのは楽で良い。

比較として以下が新下駄配列で、統計データでは打鍵数がProgrammer's Astarte+の73%、しかもそのうち単打が70%以上、総アクション数でいうとAstarteの約50%という、なかなか驚異的な結果となっている。これもやっぱりdigraph分析を早く完成させて分析にかけたい。