以下の内容はhttps://ujimushisradjp.hatenablog.jp/entry/2024/10/30/222052より取得しました。


Julia言語雑感(2024年10月)

Julia v1.11.0 リリース

Julia言語の最新バージョン,v1.11.0が2024年10月9日にリリースされました。 それと同時に,v1.10がLTSになることが伝えられています

v1.11は待望のリリースではあるのですが,1.10から内部が大幅に変更されていて, 最速インストールした方々から1.11は1.10より遅いんじゃね?とかの声も多々あるようです。

これは,1.9や1.10の初実行の高速化や一度実行したコードのバイナリキャッシュの効果がよく出来ていて,1.11の内部コンパイラの変更の影響で やや遅くなっていることだと思うのですが,ベンチマークでもms単位なので,本当かどうかよく分かりません。

それ以外にも1.11に関する話題がdiscourseに多く投稿されていて,いつも以上にバージョンアップ時の動かない協奏曲の様相を呈しているようです。

なお個人的には会社のPCでは,急ぎの業務が入っているので1.10のままで,家のPCは1.11を使ってみようかと思っています。

家で使って目につくのはREPL実行時の補完機能ですかね。 それ以外はあまり使っていないのでよく分かりません。

Julia v1.11.1 リリース

とか何とか言っている間(2024年10月16日)にv1.11.1リリースされました

わりとJulia言語のリリースではよくある感じですが,1.10の時とかと比べると間隔が短いような気がします。 でも注目度も高い感じでjulia discourseにも「v1.11になってから…」っていう投稿が多いような気がします。

Julia v1.10.6(LTS)リリース

この記事を公開しようとした直前(2024年10月28日)に,現行LTSの最新版v1.10.6リリースされました。今月はリリースてんこもりですね。

OhMyREPLが1.11になったら自動起動できない?

v1.11リリースの話題に関係するのですが, discourseでStartup.jl error with OhMyREPL.jl as of v1.11という記事がありました。

公式が例示しているコード自動起動したらエラーになるというもの。

頭にusing Pkgをつけたらうまくいったよ というのが解決策のようです。

ただ,startup.jlに直にusing OhMyREPLならいけるんですよね。私の家の環境では普通に起動しているので。原因はPkgがJulia本体の外のパッケージになったことが関係しているのだとか。

公式が示している通りにしないで,実行環境を汚すことに無頓着だといけるとか,不思議な世界です。

Julia Tokai 20th

Julia Tokai #20が10/14(月)に開催されたようです。祭日だったのをうっかり勘違いしていましたが, 私はJuliaのコミュニティ規約が守れない人なので,参加は難しいところです。

さて,発表資料Julia 新 LTS v1.10 解説が公開されていて, これがかなり参考になります。

CIではだいたい最新版とLTSで動かすことが多いので,LTSが1.10になったことによってパッケージ開発者の負担も変わります。 1.6はネィティブキャッシュが効かないなど,現行のバージョンと 機能の乖離が少しあったのでパッケージ開発者としてはかなり楽になるのではないかと思います。

普段使いの人は1.11を使うと思うので,主なターゲットはCIでLTSバージョンでテストを動かすパッケージ開発者だとは思うのですが, 私的には知らない機能がたくさん(ほとんど)ありました。

公式ドキュメント見るのも面倒なので,こういうまとまった内容の記事は私的にはすごく役に立ちます。

Julia言語で今さら知った文法

プロパティ分割代入

struct Point2d
x
y
end

という構造体があった時に,

pt = Point2d(1, 2)

というのがあってptのx, yプロパティについて同じ名前の変数に

(; x, y) = pt

という書き方で代入できるというものです。

構造体でなく名前付きタプルでもできるので,たくさんプロパティがある中,数個取り出す時とは 便利に使えそうです。

Julia言語には他の言語からするとえっ,こんな書き方できるの?ずるいと思う文法がありますが, それが一つ増えたとも言えそうです。

for文の変数とかを_とする書き方

この_はループの中の文では参照しない時に使います。

for _ in 1:10
    ...
end

これを知らずにLanguageServerのチェックとかで,forの変数を使ってないよとか言われて困った時があったのですが, この時に_を使うとOKということになります。

その他map関数とか色々使うケースがあると思います。

個人的なこと

以前から強腕でmozcのローマ字入力テーブルを作成して漢直を使っているのですが, メンテナンスしやすいようにツールをjulia言語で作成中です。 mozcのローマ字入力テーブルを利用して漢直を使う方法は以前次のような日記で言及したものです。

強腕でローマ字テーブルを作ったのですが部首合成等の追加が難しいので, 部首合成のテーブルを分ける等を考えています。

やっつけの変換フィルターな感じですが,Julia言語だと少ない記述で実現できるのは 嬉しいところ。

また,作っている状況とかこの日記に残していくかもしれません。

さいごに

discourseでも話題になっていますが,Julia言語の場合結構メジャーなパッケージであってもメンテナンスが 滞っているものが散見され,かなり問題になってきています。

Julia言語本体についてはJuliaHubが大きくバックアップしてあまり問題になることはないですが, パッケージについては相対的に弱い感じがします。

今たくさんあるJulia言語のパッケージが継続的にメンテナンスされていくのかどうか, github上で風化してしまうのか,興味を持って見ていきたいところです。




以上の内容はhttps://ujimushisradjp.hatenablog.jp/entry/2024/10/30/222052より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14