CatShanty2メンテサポート&雑談掲示板
CatShanty2 の質問やバグ報告など
CatShanty2の現状
hey_kitarou 2019/08/06 14:46:35
CatShanty2はActiveBasic4.2という開発環境(言語)で書かれています。
Basicとはいえポインタが使えるので、自由度が高く、高速に動作するソフトウェアが気軽に作れるのが楽しい環境でした。
当初は盛り上がりも見せていたのですが、現在は休止状態です。(activebasic.com)

結論から申し上げますと現在のCatshanty2は、
「あと数十行コードを追加しただけでActiveBasicコンパイラがフリーズする」という致命的な問題を抱えています。

以前からこの「ActiveBasicの限界」的な問題は認識していたのですが、DLLに分けたりリソースを追い出したりしながら、ActiveBasicの復活を望んでいました。
しかし残念ながらActiveBasicは開発者の方とも連絡が取れない状態のようです。

またCatShanty2のソース自体も大きくなりすぎて、ポインタを追いかけるような作り方では管理しきれなくなっています。
(実際そういったヒューマンエラーに起因するエラーも多々潜んでいると思います)

こういった状況から、現状のままでは新しい機能の追加などは難しい状況です。
全てはActiveBasicを選定した作者の責任です。申し訳ありません。
# ただActiveBasicは本当に気軽で楽しい環境でした。とても残念です。

今後としましては以下2つの道があるように思いますが、どれも平坦な道ではなさそうです。

1)不毛な延命(ソースを削ってコンパイルを通るようにする)
・ActiveBasicの限界内でリファクタリングしてみる
・もっとDLLに分ける
・もっとリソースを外部へ追い出す
・要らない機能を削除

2)明るい未来
・今どきの開発環境で作り直す


現状のCatShanty2は、ActiveBasicには無い処理を独自ライブラリとして実装しています。
・SQLite3のメモリマップ参照などの処理
・ポインタ参照方式での文字列操作(文字列置換など)
・CRC16/32計算
・などなど

2)の明るい未来は、今どきどの言語を選んでも当たり前のようにライブラリや標準命令で備わっているものが多く、拙い作者の不安定な独自ライブラリよりも断然安心して使用できます。
しかし、ゼロからの作り直しになるので、時間もかかります。

1)の不毛な延命は、汚ったないソースを舐め回してリファクタリングやDLLの切り分け設計などを行う必要があります。
加えて上記の独自処理は必要なので、残った部分でどこまで最適化できるかわかりません。
結局、時間がかかります。そして将来、必ず同じ問題に突き当たります。


以上のことから、2)の選択が現実的かと考えています。

ただ、あまりにも時間が無いのです。すみません。

引用しない
 編集キー


【この記事への返信】
Re: CatShanty2の現状ネコの下僕 2019/08/22 03:12:39
▲ page top