はじめに
今月は何を血迷ったのか7月1日から(書いているうちに7月2日になりましたが)書き始めます。 順次内容を追加していきたいと思います。
最近この日記で何か言及されるのを恐れてQiitaやZennの Julia言語に関する記事が少ない気がするのですが,こんな個人の日記見てる人間ほとんどいないんだから自分の思うままに書けばいいと思います。
ただ,個人の独断と偏見で言わせてもらうなら,Qiitaで「バージョン何とかリリース」と一言だけ書くのはおかしいと思います。技術的な内容が全然含まれておらず,もし書くならそれはSNSとか個人のblogとかに書く内容だと個人的には思います。
なお,Julia言語はコミュニティに参加するには行動規範がわりと厳しめなので,その点は注意していただければと思います。ただ,私のように他のユーザーと交流をしない,はぐれ一匹ミーハー系Julia言語ユーザーは行動規範にとらわれないので間違っていると思った情報に対しては言いたい放題です。
個人的に思うJulia言語の情報の感じとして,今までかなりのスピードで変化してきたので,腐臭がする情報がかなりネット上に残っていることには注意が必要だと思います。
Julia v1.10.10(LTS版)リリース
最新の LTS版 (なお最新はv1.11.5です)のv1.10.10が2025年7月1日にリリースされたと
Julia Discourseでアナウンス
がありました。
今月早目に雑感を書こうと思ったきっかけになります。LTS版のマイナーリリースが 重なっているのは,それだけ利用しているユーザーも多いということでしょうか。
そういう私も会社のPCではまだ最新系列ではなく,v1.10系列でバージョンアップを重ねています。
今月JuliaCon 2025開催
2025年5月の日記でも言及した通り,2025年7月22~26日にJuliaCon 2025がピッツバーグで開催されます。
日本からの参加者等の情報は先日の日記に記した通りです。
注目は,Julia言語の覇権を取りたいと言っているごまふあざらしさんの発表です。
Julia言語で覇権と言えば,覇権を取る、Juliaパッケージの作り方の記事が有名ですが,
EzXML.jlがJulia言語のXML処理ライブラリの覇権を取った後,JuliaIOに移管したのは
流石でした。
自分がJulia言語を使い始めの時にこのライブラリを知って,やや更新が少なくなってきてただ個人で管理するのはそろそろキツそうかな,と思った時に
最後更新のラストスパートをしてからJuliaIOにレポジトリが移行していたなぁ…というのを何となく思い出しました。
JuliaTokai#22 の資料公開
先月私が絶対に参加できない日に開催されたJuliaTokai#22 の発表資料,Julia言語と高校数学 と関数型まつりレポートが公開されています。
JuliaTokai22Infoによると, ごまふあざさしさんは資料は公開されていませんが,発表はされているようですね。
2025 Julia User & Developer Surveyの締切は7月7日まで(追記 2025-07-03)
先月の日記でも紹介した2025 Julia User & Developer Survey(Julia言語ユーザー動向アンケート調査)の締め切りが7月7日という内容がJulia Discourseの記事に投稿されてました。
2024年のアンケートの質問文と比較すると,格段に日本語訳が分かりやすくなっています。私の知らない誰かが協力したか,単にAI翻訳の精度が上がったかのどちらかかと思います。
アンケートに協力される方はお早目に。
Julia v1.11.6(最新安定版の次期バージョン)テスト中(追記 2025-07-03)
Julia Discourseの記事によると,現在v1.11.6がtesting periodだそうです。特に何も無ければ一週間程度後にリリースされそうです。
Julia Discourseでも不具合に関してはちょこちょこ報告されているので,それの対応かと思われます。
Makie.jl入門(追記 2025-07-07)
大野 周平さんによるMakie.jl入門という記事が発表されています。
今まで日本語の記事はほとんど見られませんでしたが,実は海外ではPlots.jlよりMakie.jlの方が ずっと人気があります。
時代はMakie.jlということで,皆さんもPlots.jlなど打ち捨てて,Makie.jlを使ってみてはいかがでしょうか?
追記(2025-07-08)
個人的にはMakie.jlは利用していないのですが,一般的に注意が必要な点を記述します。
スレッドセーフではない
これは,Plots.jlも同様なので特に欠点という訳ではないのですが,CairoMakie.jl,GLMakie.jl,WGLMakie.jl全てに当てはまります。
このため,マルチスレッドで並列的に描画するのは避けた方が無難かと思います。一つの回避方法としてはJulia言語のマルチタスク機能を利用することが挙げられます。
Ubuntu上での古いIntelのCPU内臓グラフィックや,OpenGLが非推奨になったArmベースのMacではGL系のMakieが不安定
自分が社用で使っているubuntuでは19.10からアップデートをくり返しているOSだからかOpenGL周りが不安定でGL系のMakieは全く使えません。また,最近のAppleはOpenGL系に冷たい対応なので,ややMacもこの辺り不安があります。まぁ自分はMacを使っていないので,この辺り多分余計なお節介とも思います。
個人的なコメント
なお,自分の用途の場合は,Plots.jlでも特に問題ありません。
業務ではサンプリング周波数が数kHzの時系列データを数秒間,複数の要素をプロットし, それに合わせて解析結果(フィルタみたいなもの)も合わせて表示します。
また,その波形を社内向けや客先への報告書に添付します。この時,上記のデータをドローフォーマットや出版品質で表示すると, グラフだけで数MBの容量となり,メール等での送付には向きません。 弱小メーカーでは共有ファイルサーバーの容量もカツカツで,文書ファイルの容量削減は結構大きな問題です。
そのため,普段でもColor quantizerを使って色数を減らし(参考),
たりします。極力添付画像の容量を減らすグラフの元データにMakie.jlレベルの品質は必要ありませんし,どちらかというと
処理速度が優先になります。
数学者や理論物理学者が多いJulia言語界隈ではどうも印刷品質にこだわって,plot界隈で自論を主張するのですが,
実際はそれでは問題がある用途も多々あることを私達は認識する必要があると思います。
数学者や理論物理学者のネット上での圧が強過ぎることが,Julia言語を実務で使っている人の情報がネットに出てこない理由の一つだと 自分は思っています。 (まぁJulia言語を使って実務をやっている人は,外に出せないデータを扱っている人が多いし, ノウハウが流出することを著しく嫌っているし,ネットに書く暇はない,という感じかとは思いますが。)
Julia言語で÷は…(追記 2025-07-07)
あるXのつぶやきで,÷はrem関数と同じとつぶやいている人がいるのだが,正しくは多分÷はdiv関数と同じだと思います。
Xの情報ってホント精査が必要っすね。
Juliaで学ぶ最適化と機械学習(2025) [東大般教1年向け講義資料] 追記 2025-07-07 深夜頃
自分は,検索サイトで過去1ヵ月間の範囲で検索したりするのですが, DuckDuckGoで検索した時に Juliaで学ぶ最適化と機械学習(2025) という,東大の今年の講義の教材が引っかかりました。
ライセンスがCC BY-SA 4.0なので,これからJulia言語を勉強したいと思う人にとっては,
いい教材となるのではないでしょうか?
その他,参考リンクのところにJulia言語その他のプログラミングに関する教材へのリンクがあるので, こちらも非常に参考になるのではないかと思います。
Feedback requested: updated Gettext.jl for i18n (追記 2025-07-10)
Feedback requested: updated Gettext.jl for i18nという記事がJulia Discourseに投稿されています。
Gettext.jlは今まで裏でpythonのライブラリを呼んでいたのをcのライブラリ(jll)のみにリンクするようにして使いやすくするようにしたよ,って感じでアナウンスされています。
ただ,gettextのC言語で使われている_から始まるマクロに違和感がある,っていう意見が出てきてたりして(個人的には_で始まるのもアリ派),なかなかモメそうな予感です。
今まで多言語化にまったく手がついていない現状のJulia言語。はたして今後多言語化への対応が進むでしょうか?
なお,公式パッケージに登録するためには現状,英語で色々書かないといけないのでPlotsGRBackendFontJaEmoji.jlを登録するつもりは毛頭ありません。
ウザい日本人による日本人のためのパッケージ。Readmeを英語化して英語でissueとかついたらウザ過ぎます。
Modern Julia Workflow [追記 2025-07-10]
チコちゃんにオコられそうな感じで夜中にボーッとネット検索していると,Modern Julia Workflowsというサイトを見つけました。
Julia言語をインストールしてデバッグ等開発して,モジュールを他の人とシェアして…等のワークフローを簡潔に一通り説明されています。
当然私の知らない情報もちらほらありそうでした。参考情報の一つとしてチェックしてみては?
2025年7月のTIOBE Index,Julia言語の順位は35位[追記: 2025-07-10]
毎月恒例で,このblogでしか注目していないJulia言語のTIOBE Indexの順位,今月は35位です。
特にコメントすることはないのですが,Julia言語の最近の特徴として,Ratingが0.4%前後で安定しているということが挙げられます。
今月はJuliaCon 2025の月なので,来月以降しばらくの間は順位が上がらないか注目ですが,昨年と同じくあまり順位の変動はないのではないかと推測されます。
Julia言語が唯一20位以上に上がった2023年8月は,コロナ明けで久しぶりにJuliaConがオンラインでなく実際に会場を用意しての開催になった直後でした。
そういう特別感は今回はないということもあり,しばらくは無風ではないかと思います。
2025-07-10 Juliaの公式ドキュメントがv1.11.6になっているのを観測
いよいよv1.11.6がリリースしそうな感じです。
Julia v1.11.6リリース[追記: 2025-07-11]
安定版の最新v1.11.6がリリースされました。
自分が最新版リリースの日程を気にする理由としては,どうもかなり機械的にリリースしているらしく,わりと中間状態が発生がちです。このタイミングで時々discourseに不具合報告が流れるのですが,しばらくすると時が解決してしまうといった事が起こりがちです。
基本的にはjulia discourseのアナウンス後にアップデートするのが無難かと思います。今回でも公式サイトでは2025-07-09がリリース日となっていますが,まだその時点ではtarballとかのリンクはv1.11.5が最新のままでした。
JuliaHub newsletter julia 2025 [追記: 2025-07-11]
全く気がつかなかったのですが,JuliaHubの2025年7月のニュースレターが7/4に配信されています。
主にJulia User & Developer Surveryに関するお知らせと,Dyadの紹介といった感じでしょうか?
Dyadはハードウェアの技術開発(シミュレーションを用いて開発のスピードアップ)用の環境っぽいです。
自分の場合は,ハードウェアに全く絡んでないというのもあり,利用はしないかな?という感じです。
その他様々な技術blogへのリンク等が紹介されている等,参考になる情報も多いのではないかと思います。
実践的に学ぶ建築構造物振動制御のための現代制御理論 [追記: 2025-07-20]
日本建築学会の「構造物の振動制御小委員会」が刊行した実践的に学ぶ建築構造物振動制御のための現代制御理論にはJulia言語が利用されていようです。
序文に「なぜMATLABではなくてJuliaなのかと言うと,現代制御理論を学ぶ上でMATLABは大変便利な数値計算言語であるものの,商用の言語を学会刊行物で取り扱うことが適切でないことに加えて,MATLABがあまりにも便利すぎてtoolboxの使い方を学ぶことに終始してしまい,現代制御理論の本質を学ぶ上で却って妨げになると考えたためでもある」とあり,しかも「学会がJulia言語を推奨している訳ではない」とあるその態度には好感が持てます。
うちの会社で別部署の人がToolBox付きのMATLABの購入申請が通らず,結局Pythonか何かでやってるらしい。 こちらは最初からあきらめてて,Octave→Scilab→Juliaの歩み。まぁ本当にスピードが必要ならC/C++系を利用するのですが, Julia言語を利用しだしてからはそんな出番も無くなってきています。
Julia v1.12.0-rc1 リリース [追記: 2025-07-20]
少し前の話になりますが,2025年7月14日にJulia V1.12.0-rc1がリリースされたという記事がありました。
これがどういう意味を持つかというところですが,現在LoopVectorization.jlではv1.12でのCI実行中に 警告メッセージを無視しないとパスしていないという状態のようです。
この辺りがどうなるかが決まっていないということで,
高速化のためによく利用されているこのLoopVectoricationパッケージの保守が次期v1.12でも継続するかどうかを
(個人的に)注目しています。
SciMLあたりの開発に影響するのではないかと推測しています。
Julia言語のバージョン変更時にこういう状況が発生する理由としては,バージョン変更時に採用しているLLVMのバージョン変更が実施され, その時に低レベルのAPIの仕様等が変更になり,その仕様変更への対応が遅れたり,難かしかったりするためです。
また,Julia言語内で利用されているコンパイラの仕様も変更になったりする影響もあります。 (今まではこの部分の改良で高速化が実現されてきた)
Julia言語ユーザー達の可視化パッケージに対する当たりがキツい。エグ過ぎる[追記: 2025-07-20]
数年前Plots.jlで見たイシュー波状投稿が現在はMakie.jlに移っているらしい。以前にPlots.jlで見たような質問も多いので,まさに「移動」という感じです。
何かデフォルトのフォントで日本語が表示されないとか。自分とかむしろ当たり前じゃんとか思うのだが,
AtrifactsにCJKフォントを入れる等,対応をしようとしているらしい。
前も言った気がするけど,Julia言語のユーザーは情報提供もせずに文句ばかりぶ~たれる輩が多過ぎる。
まぁMakie.jlのメンテナはうまくあしらっている(← NotoColorEmojiはほぼどのグラフ化モジュールで使えない。モノクロ版ならOK。)
のでこのままメンテを突き進んで欲しいところです。