3 ポイント 投稿者 GN⁺ 2024-09-23 | 1件のコメント | WhatsAppで共有
  • 12年にわたる開発と実運用を経て、Hy 1.0.0がリリースされた
  • HyはPythonに組み込まれたLisp方言
    • Lisp系のマルチパラダイム汎用プログラミング言語
    • Pythonの代替構文として実装されている
    • Pythonと比べて、さまざまな新機能、一般化、構文の単純化を提供する
    • 他のLispと比べて、Pythonの組み込み機能やサードパーティ製Pythonライブラリに直接アクセスできる
    • 命令型、関数型、オブジェクト指向のプログラミングスタイルを自由に混在させられる

GN⁺の見解

  • HyはPythonとLispの長所を組み合わせた興味深いプログラミング言語。Pythonの豊富なエコシステムとライブラリを活用しつつ、Lispの強力な機能と柔軟性も提供するため、開発者の生産性向上が期待できる。
  • ただし、Hyはまだ広く使われている言語ではないため、学習資料やコミュニティの支援が不足している可能性がある。また、既存のPythonコードとの互換性の問題が生じることもあるため注意が必要。
  • Hyと似た考え方を持つ他の言語としては、ClojureやRacketなどがある。これらはLisp系言語として関数型プログラミングやマクロなどの機能を提供し、JVMや独自ランタイム上で動作する。

1件のコメント

 
GN⁺ 2024-09-23
Hacker Newsのコメント
  • HyがPythonにどう変換されるのか理解するのに苦労した

    • HyはLispプログラミング言語の方言で、S式をPythonの抽象構文木(AST)に変換する
    • Githubのコードを見て、このコンパイラがPythonで書かれていることを確認した
    • Hyを「Pythonに組み込まれたLisp方言」と紹介するより、「PythonのASTにコンパイルされるLisp方言」と紹介したほうが、より明確だと思う
    • LispをPythonに組み込む方法はいろいろあり、それぞれ大きく異なり、さまざまなトレードオフがある
    • たとえば、Cでインタプリタを書いたり、Pythonバイトコードにコンパイルしたり、Pythonソースコードへ直接変換したりできる
    • とにかく興味深いプロジェクトだ
  • HYPE POSTがとても気に入った

    • 企業のソフトウェアと一緒に作業するときにとても素晴らしい
  • Hyが初期から今に至るまで大きく進化していて驚いた

    • PyconでHyを初めて紹介するライトニングトークを見た
    • Paulに会って、Hyの初期バージョンに貢献し始めた
    • CLスタイルのkwargsや、いくつかのライブラリなどを担当した
    • プロジェクトが継続しているのを見てうれしい
  • これで https://github.com/rcarmo/sushy を整理できるようになった

    • Hyをアップグレードするたびに構文が壊れたり、hyruleパッケージから移動したりする問題があった
    • HyはiPadの https://holzschu.github.io/a-Shell_iOS 内でうまく動作する
    • vim/neovimのシンタックスハイライトは、0.29+リリースと非同期機能に追いつく必要がある
    • FennelとGuileも使ってみたが、Pythonライブラリとエコシステムにアクセスできるほうがよい
    • 非同期機能によって効率的なAPI処理が可能になる
  • おめでとう! 2つ質問がある

    • REPLベースの開発をサポートしているか(condition system、breakloopなど)
    • スタンドアロンの配布物はあるか。Python自体を配布するのは面倒だ。理想的には、すべての依存関係を含む単一のHyバイナリを配布できることだ
  • Clojureファン向けの関連情報:

  • おめでとう、そしてありがとう! Hyでトランスフォーマーを試して、https://github.com/kunalb/orphism をリリースした

    • またHyを使ってみる時が来たようだ
  • あまり真面目でない部分をとても楽しんだ

    • もっと多くのプログラミング関連プロジェクトがユーモアを受け入れてくれたらいいのに
    • それはPythonの伝統を称える最良の方法かもしれない
  • Pythonの構文を捨てずに関数型プログラミングの構成要素を得ることができる(Hyのように)

  • Rakuのよい点の1つは、デフォルトで驚くほどLispっぽい印象を与えることだ