HeadlinesBriefing favicon HeadlinesBriefing.com

偏屈者が言語サーバーを試す

Hacker News •
×

私は10年前とほぼ同じ方法でコードを書いています。テキストエディタで編集し、ターミナルに切り替えて、コンパイルと実行のコマンドを実行します。結果を見て、エディタに戻ります。不確かな場合は、トレーサープリントを追加するか、デバッガで再起動します。例外でプログラムがクラッシュした場合は、修正して再起動します。

Lispプログラマーがやっていることをうらやましく思います。Lisp開発は、ライブで実行中のシステムの一部を追加、削除、置換するために、コードを直接REPLに入力して行われます。Lispプログラマーは「切り替える」必要はありません。なぜなら、彼らはすでにプログラムプロセスの内部にいるからです。彼らは「コンパイルして実行」することはありません。コードはすでに実行されているからです。そして、ホットスワップで編集します。デバッガで再起動することはありません。なぜなら、何でも検査できるからです。例外で再起動することはありません。なぜなら、条件システムがどこからでも再開できるからです。

その結果、Lispプロジェクトの初期には、ソースコードが存在しない場合があります。進化する定義はメモリイメージにのみ存在します。これは、人々がリレーショナルデータベースを初期に扱う方法に似ています。スキーマは実行中のデータベースにのみ存在します。最終的に、バージョン管理下のファイルにダンプされます。

私はLisp開発者ではないので、うらやましいままでしょう。しかし、私は近づこうとしていなかったことに気づきました。Haskellには部分的な利点があります。型システムが例外を減らし、EmacsのEglotを備えたHaskell言語サーバー(hls)がより良いイントロスペクションを提供します。ghcidは変更を監視し、迅速に再コンパイルします。