clibと呼ばれるライブラリー開発の思い出(5) [clib]
前回から一年近くが過ぎてしまいましたので、過去の記事を最初に列挙しておきます。
しかし、今日作り直すとしたら、C/C++ではなくGoで開発すると思います。実際開発しましたし、将来機会があればやはりGoだと思います。
スレッドライブラリ
独自に設計したメモリ管理ライブラリに基づいて設計したのが「スレッドライブラリ」でした。主には二つの機能が提供されていました。CThread
、IRunnable
、CSynchronizer
、CReaderWriterLock
というスレッド生成および同期用のクラス- スレッドセーフなコレクションクラス(リスト、セットなど)
今日なら
1993年から2000年にかけてC++を用いたデジタル複合機のコントローラソフトウェア開発で経験したメモリ関連の苦労を反映したのがclibでした。かなりの量のソフトウェアを新規開発しながらも、富士ゼロックス社のデジタル複合機を2000年後半から2年弱で開発できたことに貢献したと思っています。しかし、今日作り直すとしたら、C/C++ではなくGoで開発すると思います。実際開発しましたし、将来機会があればやはりGoだと思います。
小さなスタックで動作する軽量なゴルーチン、CSP による通信、ガベージコレクタとメモリ保護、構造体によるコンパクトなメモリ設計、オブジェクト指向プログラミング、および、ウェブのクライアントやサーバの機能を含めたさまざまな機能を提供する標準パッケージと、道具は揃っています。したがって、オペレーティングシステムにLinux を採用している組み込みシステムでは、C やC++で開発するのではなく、Go で開発するのが適切だと思っていますし、将来Go で開発されるのが普通になる日がくるのではないかと期待しています。実際、ある組み込みシステムの制御ソフトウェアをGo を使った完全なテスト駆動開発で行うプロジェクトを2 年間にわたり率いて、Go での組み込みシステムの開発が可能なことを実証できました。残念ながら、clibを設計してから10年後にGoは登場しました。
『プログラミング言語Go』の「訳者あとがき」より
2018-10-09 06:56
コメント(0)
この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。