Refsort/Ruby 2.80 Released
辞書参照型ソーティングフィルターをスクリプト言語 Ruby で実装した Refsort/Ruby の開発を10年以上続けています(例えば新しいほうから順に *1 *2 *3 *4 *5 *6 *7 *8 *9 *10 *11 *12 *13 *14 *15).もう仕様は落ち着いていて機能の追加をするつもりは(ほとんど)なく,細々とバグのメンテナンスを行っている状態です.
前回のリリースは約3か月前の2017年7月9日でしたが,このたび Refsort/Ruby の改訂版である v2.80 をリリースしました.
実は,今回の改訂は非常に難産でした.そもそも,Refsort の原型は今から10数年前に作成し,そこから機能を加えるごとにコードを建て増し建て増ししていったので,山あいの温泉旅館のように非常に見通しの悪いスクリプトになっていました.そこで1年ほど前から,自前のクラスやメソッドを定義してスクリプト全体をできる限りモジュール化し,さらに例外処理も Ruby の作法に則ったものに統一した新版を書き始めていたのです.
しかし,まず例外処理でつまづきました.モジュール化すると構造はきれいになるのですが,メソッドの階層を深く下ったところで例外を発生させると,それを最上層までもっていって,ファイルを閉じたり配列やハッシュをクリアしたりという後始末をしなければならないので,非常に煩雑でコードの量が増えてしまいます.仕方がないので,モジュール化の階層はできる限り浅くして,例外もできる限り最上層で発生させるようにしました.
次につまづいたのは実行速度です.格好よく自前のクラスを定義して,その中でインスタンス変数をたくさん定義し,それをメソッドで呼び出して使うのは快適なのですが,実行速度が大幅に落ちることがわかりました.Refsort はあくまでソーティング・フィルタなので,あまりトロトロと走らせるわけにもいきません.そこで,涙をのんで自前クラスは最小限にせざるを得ませんでした.そういうわけで,v2.80 は v2.70 に比べると速度が約 15% ほど低下しています.
一つだけ大幅に改良した点は,埋め込みマイルストーンの処理についてです.ここも過去のスクリプトでは温泉旅館の新別館のような扱いだったのですが,今回はマイルストーンのために自前のクラスを定義し,オブジェクトとして扱うことでコードの見通しを大幅に改善しました.
また従来は,出力時には出力候補のリスト全体をまず1回スキャンしてマイルストーンの階層構造を解析し,出力すべきマイルストーンを抜き出したうえで,2回目のスキャンでリストを出力するという2パス構造にしていたのですが,これが非常にわかりにくく,自分でも過去のコードをよく読めない事態に陥っていたので,これをゼロから書き直し,非常に素直な1パス構造に改めました.
仕様を1点だけ改訂しました.それはマイルストーンのコメントに関するもので,従来はマイルストーンのコメントは,それが番号付きやダブルコメント (##) でない限りは,そのまま出力していたのですが,今後は,マイルストーンのコメントは取り除いて出力することにしました.これは,マイルストーンにコメントが付いていると,リストがごちゃごちゃして見にくくなってしまうためです.
そういうわけで,今回の改訂はユーザにとっては非常に小さな変更でしかありませんが,内部的にはある程度手が加わり,将来の改良に向けた準備を進めた版であるとご理解いただければ幸いです.
さて,余談ですが,IOC の Web サイトに耳寄りな情報が掲載されました.以下引用です.
ANNOUNCEMENT (Oct 21, 2017): NO 7.4! Effective today, we are shifting to a semiannual revision schedule. Our next release will be 8.1 in January 2018, followed by 8.2 in late July or early August 2018. A step towards improved alignment with the Clements/eBird world list is one of the motivations for this change. We will continue to post working revisions regularly on the Updates web pages, so please keep up the flow of comments and corrections. Thank you!
従来の慣習に従えば,IOC List は四半期ごとに改訂されるので,前回7月末の改訂の後は10月末に v7.4 が出るはずでした.ところが,この版は出ません!なぜかというと,今後は年4回ではなく年2回の改訂頻度に改める,という方針変更を行ったそうです.従って,次の版は年が明けた2018年1月に v8.1 が出る,ということになります.
さらに,これは年初からアナウンスされていたことですが,代表的な鳥類分類体系の間で,それらを統合しようという機運が盛り上がってきており,それが2018年の IOC 総会の円卓会議で議論されるというのです.これにより,鳥類分類の世界に大きな変化が訪れることになりそうで,私自身は心配半分,期待半分といったところです.
さらに,余計な心配をさせていただくと,日本鳥学会がこの変化の波に置いていかれはしまいかと気を揉んでいます.前回の改訂からすでに5年が過ぎていますが,次の改訂に関して何のアナウンスもありません.世界の動きに対して,意見を言う,見識を示す,参画するという動きを示してほしいと思います.
| 固定リンク | 0
「パソコン・インターネット」カテゴリの記事
- Windows11 24H2 にアップデート(2024.10.05)
- WSL2 をインストールして使っています(2024.06.19)
- Windows 再インストール時に VMD でハマる(2024.04.13)
- Microsoft Teamsの複雑な仕様がやっとわかった(2023.08.20)
- Xeonマシンを組みたくなった(2023.05.21)
「自然」カテゴリの記事
- ガガンボ(2025.06.05)
- 強風の五月晴れ(2025.04.27)
- コガモとアカメガシワ(2025.04.26)
- ムナグロ御一行様お着き(2025.04.26)
- フジが満開(2025.04.24)
「IT関連情報」カテゴリの記事
- IOC List v15.1 Released(2025.03.12)
- 日本鳥類目録第8版に準拠したRefsort/Ruby用辞書ファイル(2024.10.13)
- Windows11 24H2 にアップデート(2024.10.05)
- IOC List v14.2 Released(2024.08.27)
- Ruby を自力ビルドしてみた(2024.07.25)
コメント