連載の断念
少しずつ書いてはいたのですが問題がありまして。Ring の仕様上の問題で Euphoria の移植は難しいと判断し、連載を断念させていただきます。
また、これにより、日本国内での Euphoria, Ring の使用実績や理由がなくなったため、関連活動を今月で休止させていただきます。使用する理由が見つかるまで、再開時期は未定です。
連載を断念しても、なんとか役に立つシステムを組んでみたかったのですが、この用途にはRingでは不向きであると判断したのもあリます。
活動休止の原因
- ドキュメントの不備が多く、こう書いてくれたらわかるのに。といったことで意欲を削がれています。
- Ring の「識別子の英数大小文字化の同一視」による言語仕様上の欠陥により、演算子やキーワードの衝突が回避できないことです。このせいで、既存資産の移植が難しく、さらにミドルウェアやシステムプログラミングには不向きだと考えられます。
- // 大文字であるのは定数であり、組み込み演算子の and とは違う。
- // それを別名で書き直していたら煩雑だわ。
- // かと言って、いちいち AND を ChangeRingKeyword で無効・有効にするのはイケてない。
- class hoge
- AND = 1 // こう書きたいのに Ring では書けない。
- endclass
- 今迄我慢していましたが、文字の区別はユーザがすることであって言語仕様で同一視を強制させられるのは、非常に不愉快です(テキストフィルタやプリプロセッサでやること)。ワークアラウンドとして「リストとfind()関数」を使うこともできますが、煩雑過ぎて書いていられません(書いてみればわかるとおり、こういう書き方はダサいです)。
この問題が解決するまで再開の意図はありません。ChangeRingCaseSensitive ディレクティブ(引数は Upper/Lower/Sensitive/Insensitive)が追加されたら、すぐにでも戻りますが。
今後の予定
あきらめて、それ以外に取り組みます。