実践 Julia 入門

ジッセンジュリアニュウモン

実践 Julia 入門の表紙
その他
著者:
後藤 俊介(ゴトウシュンスケ)
価格:
¥3,960
出版社:
技術評論社
出版日:
2023年03月15日
ISBN:
9784297133504
在庫:
1
判型:
単行本
初級者向け
Juliaプログラミング言語数値計算データ解析機械学習入門書実用例開発環境基本文法実践編

なぜ注目されているか

総合354位 言及 2 件

書籍紹介

2018 年に正式安定版 ver.1.0 がリリースされて以降、数値計算分野などで注目を集めている言語・Julia の本格的な入門書です。本書では言語仕様や基本機能の解説に重きを置きながら、実践的な実用例まで解説します。
本書は「入門編」「基本編」「実践編」の 3 部からなります。「入門編」では、開発環境のセットアップからはじめ、基本的な文法を解説します。「基本編」ではより詳細な解説に踏み入り、Julia 特有の仕様や概念、固有の機能などを理解してもらいます。そして「実践編」では数値計算、データ解析、機械学習を取り上げ、より具体的・実用的な実践に発展します。

はじめて Julia を使うという人から、今まで以上に深く知りたいという人まで、Julia の魅力が詰まった一冊です。

技書の森解説

Python の書きやすさで C に近い速度を出したい、という要求に正面から応える言語が Julia です。『実践 Julia 入門』 (後藤 俊介 著、技術評論社、2023 年 3 月刊) は、その Julia の言語仕様と基本機能の解説に重きを置きながら、数値計算、データ解析、機械学習といった実用例までを扱う本格的な入門書です。版元は、はじめて Julia を使う人から、より深く知りたい人までを対象として案内しています。著者は有限会社来栖川電算所属のエンジニアで、JuliaTokai や機械学習名古屋などのコミュニティ活動を通じて Julia の情報を発信してきた人物です。

入門編 / 基本編 / 実践編の 3 部 13 章という構成

本書は 3 部に分かれています。入門編は 2 章立てで、第 1 章で Julia の特徴とインストール (公式バイナリと juliaup の両方)、REPL、JupyterLab、VSCode といった開発環境を整え、第 2 章でリテラル、変数、演算子、関数、制御構文、型の基本、モジュールまでの基本文法を押さえます。基本編は第 3 章から第 10 章までの 8 章で、標準ライブラリ関数、型システム、多重ディスパッチ、イテレーション、ブロードキャスティング、メタプログラミング、並行 / 並列処理、パッケージマネージャと、Julia らしさを形づくる仕組みを 1 章ずつ掘り下げます。実践編は第 11 章の数値計算 (NLsolve.jl による非線形方程式の求解、DifferentialEquations.jl による常微分方程式の数値解法)、第 12 章のデータ解析 (可視化とデータフレームの基本、公開データの読み込みと簡単な解析)、第 13 章の機械学習 (MLJ.jl と Flux.jl) で締めくくられます。分量の中心が基本編にあることから分かるとおり、ライブラリの使い方の紹介よりも、言語そのものを理解させることに軸足を置いた構成です。

型システムと多重ディスパッチが読みどころになる理由

Julia が速いのは、動的型付けの言語でありながら、関数が初めて呼ばれたときに実際の引数の型に合わせて機械語を生成する JIT コンパイル を採用しているからです。ただし、この仕組みの恩恵を受けられるかどうかは、コンパイラが変数の型を推論できる書き方をしているかに左右されます。型を意識せずに書いても動きはするものの、思ったほど速くならない、という壁に多くの人がぶつかるのはこのためです。もう 1 つの柱が多重ディスパッチで、関数の振る舞いを第 1 引数だけでなくすべての引数の型の組み合わせで選び分けます。クラスにメソッドを持たせる言語とは ポリモーフィズム の実現方法が根本から違い、ここを理解しないまま書くと、Julia のコードは他の言語の書き方を移し替えただけのものになりがちです。本書が基本編で型システム (公称型とサブタイピング、パラメトリック型、ユーザ定義型) と多重ディスパッチ (多重定義、演算子オーバーロード、Holy トレイト) にそれぞれ 1 章を割いているのは、まさにこの理解の分かれ目を埋めるためと読めます。マクロや生成関数を扱うメタプログラミング、タスクとチャネル、スレッド、マルチプロセスの 3 段で整理された 並行処理 と並列処理の章も、速度を引き出すうえで欠かせない内容です。

前提となる経験と、合わない読者

文法の章から始まるとはいえ、変数や関数、条件分岐といったプログラミングの基本概念を一から教える本ではありません。Python や R、MATLAB など、ほかの言語で何かしらのコードを書いた経験がある人が、Julia の考え方へ乗り換えるための本と捉えるほうが実態に近いでしょう。プログラミングそのものが初めてなら、プログラミング言語の入門書ガイド で最初の一冊を選んでから戻ってくるほうが確実です。また実践編の 3 章は各分野の入り口を示す位置づけで、微分方程式の数値解法や深層学習の理論そのものを体系的に学ぶ教科書ではありません。2023 年 3 月時点の Julia とパッケージ群を前提にした内容であり、パッケージの細かな API は版を重ねて変わり得る点も押さえておく必要があります。

研究や業務で数値計算のコードを書いていて、Python の速度に限界を感じている人、あるいは Julia を触ってはみたものの型や多重ディスパッチの設計思想がつかめずに止まっている人にとって、言語の仕組みを基本編の 8 章で順に積み上げる本書は、手元に置いて何度も引き直せる一冊になります。環境構築から始めて自分の計算を Julia で書き直すところまで、日本語で一続きに導いてくれる点が、この本を選ぶ最大の理由です。

言及した記事 (2 件)

この本に興味がある方におすすめ

関連する本

関連記事

関連用語

共有: