nim-fuseについてはちゃんとメンテしますが、Nim引退しようと思います。たぶんこの引退は覆りません。
この前Rustを引退して、今後はNimも引退します。
coreutils splitのマージ。そしてRust引退 - テストステ論
私はOSだとかストレージだとか、システムプログラミングばかりやってる人間であって、基本的にC言語ばかり書いているわけですが、C言語は全く糞だしもう人類はこれを使うべきではないと思っています。そう思う人が少なくないのか、次世代システムプログラミングを作る流れがあって、有名順でいうと、D > Rust > Nimという感じになるのでしょうか。
このうち、Dについては本を読みかけの段階でリタイア(難しすぎる!!!)して、Rustはcoreutilsにいくつかコードを入れて引退、Nimはnim-fuseを作って引退。使ってみると色々と悪いところが見えてくるもので、今でいうとNimに絶望してきました。私は会社を辞めるのも早いし、言語を見切るのも早い。
なんか、この言語の作者は低レベルというものに対しておれには理解しがたいこだわりがあるようで、Nimはおれの思ったとおりに動いてくれないことが多いです。しかもちょこちょこアクセス違反で落ちます。その上あらゆる場面でエラーメッセージが分かりにくいので、デバッグが大変です。なんとなくですが、色々な言語を吐けることに妥協した結果、損を食ってるのではないかという印象です。機能的には、関数型言語的な要素を取り込むことが嫌らしく、コードをきれいに安心して書くことが出来ないことが完全に不満です。これは次世代システムプログラミング言語としては失格だろうと思う。これは、本人がもっとも主張するように、メタプログラミング言語なのでしょう。
使っていくうちにわかりましたが、コンパイラにちょこちょこバグがあります。これだけ大きなソフトウェアでは当たり前なのですが、作者自体の手数が不足している気がします。たぶん、まともな形で1。0にたどり着くことはないか、遥か未来だろうと思います。ここまで辿り着くのに10年以上かかってて、さらに10年以上はかかるのではと思います。おれは40だ。マネージメントに徹する。
これからどうするか?Rustを引退したばかりですが、Rustに復帰します。引退したけどやっぱり復帰するわというのはスポーツ選手ではよくあることです。私は自分が生涯使うエディタを選ぶ時にも、あらゆる既存のエディタを使ってみて本を読んでみて比較検討して結局Vimになりましたが、言語も同じのようです。徹底的に比較しないと気が済まない。色々回ってきて、Rustがやはり有望という結論に達しました。私がRustを気に食わないと思ったのはborrowとかboxとかいう概念が難しいと思ったからだけど、今考えるとその程度かという気もしてきましたし(それに、それがあるから安心出来るのです)、なによりあのMozillaがバックアップしている言語なので、ユーザも増えるだろうし、開発も順調に進んでいくだろうと予想出来ます。勝ち馬に乗る人生も悪くない。
Nimには結構時間をかけてきた気がしますが、仕方ないです。これ以上損を広げるわけにはいかない。
今後は、nim-fuseのフレームワークとしての完成度を高めるという仕事がありますが、今まで得た知見をrust-fuseの方にも貢献していこうと思います。そして、現在検討中のfuse上ログ構造化ファイルシステムについては、rust-fuse上で実装しようと思っています。Chao