Nimはじめました

Nimでシェルを書いてみる
Nimでシェルを書いてみる

明けましておめでとうございます今日から令和です

新たにプログラミング言語のNimをはじめました新しい時代に新しいプログラミング言語を習得しようと…すみません嘘です

正直プログラミング言語としてはC++とJavaScript(Windowsなら加えてC#)で良いんじゃねって思っていたんですがJavaScriptにどっぷり浸かると今更C++のコードを書きたくないなって思って最近C++からは遠ざかっていましたC#に至ってはむしろ近寄らないようにしていました*1

JavaScriptで何でもできれば良いのにって思ってNode.jsに手を出したりしてやっぱりあちら(Unix系)の世界の産物はこちら(Windows)とはいまいち相性が悪いような気がしましてNode.jsにも近寄るまいと心に誓うのでありました

素直にC++を使えば良いんですが以前STLがどうにも遅くて自前実装したり当時スマートポインタも無かったのでそれも自前で書いたりと苦労の割には…と言う感じであまり良い思い出がありません最終的にメモリ管理も自前で書いたりして…きっと最近のC++は速いんでしょうけど

閑話休題最近それなりのプログラムを作りたくなりましてC++にするか他の言語にするかと考えてNimに白羽の矢が立ったわけです

C++の代替としては他にGoRustがありますがそれらを調べたうえでNimにたどり着きました

Nimを一言で言うと一部の物好きしか使ってない変態言語でしょう

仮に変態だとしても
変態という名の紳士だよ

と言う事で紳士たるものとしてNimを使うのです

重要なのはNimで何を作るかと言う事ですが取り合えずコマンドラインのシェルを作ろうかと思っています最終的にはそのシェルと連動するファイラーを作りたいんですが案外シェルだけで事足りるかもしれません

と言う事で最近ちまちまNimでシェル*2を作っています

Nimの一番の問題点はドキュメント不足だと思います公式のマニュアルも素っ気ないソースを読めと言う事なんでしょうがこの辺の学習コスト考えたらC++のが楽なんじゃないと言う邪念を振り払いながらマニュアル読んだりソース読んだりして何とかやっております

取り合えず今作っているシェルはchimeraと言う名前でその名の通りいろいろごちゃ混ぜな物ですバックグラウンドでcmd.exeやらWSHやらを動かしたりしてます

今年中にはある程度の形にしたいですね

作成中のシェルの現状
作成中のシェルの現状