HN🔥 423
💬 227

なぜ今さら「Janet」なのか?2023年版の全貌を解説

yacin
1日前

ディスカッション (11件)

1
krinne
1日前

この投稿は新鮮だね。AI以前のインターネットでの議論を思い出させる。新しい言語、新しい構文、そして何年もコードを書いてきた人たちとの激しい議論。AI禁止のオンラインコミュニティを誰か立ち上げるべきだと思う。

2
uka
1日前

しかし、リテラル関数をクォート解除できるようにすることで、Janetは完全に参照透過なマクロを書くことを可能にしている。

Lisp使いの人たちって、こういう極めて抽象的な話ですぐ盛り上がるよね。普通の人にこんなこと言ったら、たぶん逃げ出されると思う。

3
wodenokoto
1日前

HNで時々流れてくるJanet関連の投稿に惹かれて読んでみたんだけど、あちこちで絶賛されている「Janet for Mortals」が、全然「一般人(Mortals)」向けの内容じゃないことに気づいた。

4
ramblurr
1日前

Janetが注目されるのは嬉しいね。

最近の機能として「サンドボックス」を推しておきたい。

「機能セットを無効化して、インタプリタが特定のシステムリソースを使用できないようにする。一度無効化された機能は、二度と有効化できない。」

https://janet-lang.org/api/misc.html#sandbox

5
1313ed01
1日前

Fennelもあるよ。同じ開発者が以前作った言語で、Janetと似てるけど、Luaにコンパイルされて、完全にLua上で動作するもの。独自の標準ライブラリがないからJanetのパーサーライブラリみたいな便利なものはないけど、Luaを埋め込むような用途のスクリプトを書くのには最適。

https://fennel-lang.org/

6
xrd
1日前

作者はこれらをJanetで作ってる(以前HNでも話題になったね):

https://bauble.studio

https://toodle.studio

この2つの魅力的なアートツールのおかげで、少し前にJanetにすごくハマったんだ。

8
mackeye
1日前

ある程度の長さがあるシステムスクリプトにおいて、Janetが僕の中ではsh、python、awkを完全に置き換えたよ!起動時間がめちゃくちゃ速い(僕の環境ではhyperfineで1.4ms、dashは1ms)し、sh-dslモジュールを使えば、($ cmda w x | cmdb y z) みたいにシェルコマンドをすごく綺麗に書ける。デバッグ用にイメージをロードできる機能も大きな助けになる。使い始めてまだ間もないけど、たぶん今一番のお気に入り言語だね。ちなみに他に使ったことあるLispはSICPで使ったMIT Schemeだけ。

9
a-french-anon
1日前

SETQ is def

最初これを見て声に出して「え?」って言っちゃった。SETQはバインディングを作らず、既存のものを更新するだけだからね。で、ドキュメント(https://janet-lang.org/docs/bindings.html )を読んだら、やっぱり作者が間違ってた(「defで作られたバインディングは不変」だから)。たぶん「SETQ is set」と言いたかったんだろう。

JanetはGuile、Tcl、そしてCLの中間にあるような(SBCLの速度や成熟度は別として)いい立ち位置にあると思うから本当に好きになりたいんだけど、ラムダや制御フローの演算子に角括弧(つまりベクター)を使うのだけは生理的に受け付けないんだ。Clojureの時と同じで、どうしても馴染めない。頑張れば慣れるかな?

あと、LSPやSLIMEの現状はどう?最近はそこが本当に重要だから。

10
janetacarr
1日前

Janetには少し不満がある。主にパッケージ管理のバージョン管理がないことと、ライブラリ全体が不足していること(高度なHTTPルーティングとか)。

ただ、JPMを使ってバイナリやスクリプトが作れて、非常にポータブルな点は最高だね。昔、実証実験としてPlaydateっていうゲーム機にJanetを移植したこともあるよ。

Janetを書くのは実際に楽しいんだけど、書くたびに周りからは「お前が作ったのか」と思われる(違うんだけどね)。