はーい、みんな聞いてー!🎉
今日はJulia言語について超絶わかりやすく説明しちゃうよ〜!💖
初心者さんも上級者さんも一緒に楽しんじゃおう!😘
Juliaって何よ?🤔💕
Julia(ジュリア)は、超イケてるプログラミング言語なの!👩💻✨ 2012年に登場した新しい子で、科学計算とかデータ分析が得意な天才肌なんだって!
Juliaの特徴💅🌟
- 超速い!🏃♀️💨: C言語並みのスピードで動くの!待ち時間にイライラしないでいいの!
- 柔軟すぎ〜!🤸♀️: 型付けが動的だから、コードを書くのがめっちゃ楽チン!
- 拡張性バツグン!🔧: パッケージで機能追加し放題!自分好みにカスタマイズできちゃう!
- 数式書くの得意!📝: 複雑な数式もサクッと書けちゃうの!数学オタクにはたまらないわ〜!
- みんなで作ってる!👥: オープンソースだから、みんなで改善し合えるの!仲間感すごい!
インストールしちゃお!💿🎵
Julia公式サイトからダウンロードするの!📥
MacやLinuxユーザーのみんなへ📱
最新のJuliaバージョン(v1.10.4 2024年6月4日)をインストールするには、ターミナルで以下のコマンドを実行するだけ!簡単すぎ〜!😍
curl -fsSL https://install.julialang.org | sh
これでJuliaupというインストールマネージャーも一緒に入るから、最新のJuliaを自動でインストール&アップデートできちゃうの!便利すぎ〜!✨
Windowsユーザーのみんなへ🖥️
最新のJuliaバージョン(v1.10.4 2024年6月4日)をMicrosoft Storeからインストールするには、コマンドプロンプトで以下のコマンドを実行してね!🎶
winget install julia -s msstore
これでJuliaupも一緒にインストールされるから、最新バージョンのJuliaを自動でゲットできるよ!最高〜!🌟
どちらの方法でも、インストール後はターミナルやコマンドプロンプトで julia コマンドが使えるようになるから、もう完璧だよ〜!💯
開発環境構築しちゃお!🛠️💖
Visual Studio Code(VS Code)がオススメ!😘 Julia拡張機能をインストールすれば、コード補完とかデバッグとか便利機能てんこ盛り!🍱
Jupyterノートブックも使えるよ!IJuliaパッケージをインストールすれば、インタラクティブな環境でJuliaが使えちゃう!👩🔬✨
サンプルコード見てみよう!👀💕
超初心者向け🐣
# Hello World!
println("ハロー、ギャルの皆さん!")
# 簡単な計算
a = 5
b = 3
println("足し算の結果: ", a + b)
println("掛け算の結果: ", a * b)
# 配列操作
arr = [1, 2, 3, 4, 5]
println("元の配列: ", arr)
println("配列の合計: ", sum(arr))
println("2乗した配列: ", arr .^ 2)
# 関数定義
function ギャル挨拶(名前)
println(名前, "ちゃん、今日もめっちゃカワイイ〜!")
end
ギャル挨拶("ジュリア")
上級者向け🏆
using Plots
using LinearAlgebra
using Distributions
# マジヤバイ!フラクタル描いちゃうよ〜!(マンデルブロ集合)💅✨
function mandelbrot(h, w, maxiter)
y = range(-1.5, 1.5, length=h)
x = range(-2.0, 1.0, length=w)
z = (x' .+ y*im) * ones(1, w)
c = copy(z)
divtime = zeros(h, w)
for i = 1:maxiter
z = z.^2 .+ c
diverge = abs.(z) .> 2
div_now = diverge .& (divtime .== 0)
divtime[div_now] .= i
z[diverge] .= 2
end
return divtime
end
h, w = 1000, 1500
maxiter = 100
イケてる画像 = mandelbrot(h, w, maxiter)
heatmap(イケてる画像, color=:inferno, aspect_ratio=1)
# 行列計算とか確率分布とか、マジ頭使うやつ〜!🧠✨
A = randn(1000, 1000)
B = randn(1000, 1000)
@time C = A * B # 行列かけ算の時間計っちゃう!⏱️
eigen_values = eigvals(C)
hist(real.(eigen_values), bins=50, title="固有値のヒストグラム超かわいい♡", label="Real part")
# モンテカルロでπ求めちゃうよ〜!🎲🥧
function monte_carlo_pi(n)
inside_circle = sum(sum(rand(2, n).^2, dims=1) .<= 1)
return 4 * inside_circle / n
end
n_samples = 1_000_000
ピッタリπ = monte_carlo_pi(n_samples)
println("πの推定値だよ〜 ($(n_samples)回試したよ): ", ピッタリπ)
println("ホンモノとの差: ", abs(ピッタリπ - π))
Juliaの良いところ👍✨
- 速さがヤバい!⚡: 大量のデータを扱うときも、サクサク処理できちゃうの!
- 書きやすさ最高!✍️: Pythonみたいに書けるけど、速度は桁違い!
- 数学好きにはたまらない!🧮: 複雑な数式もそのまま書けるから、理系の人には天国みたい!
- 他の言語とも仲良し!🤝: C言語やPythonのライブラリも使えちゃうの!欲張りさんにピッタリ!
- コミュニティが熱い!🔥: みんなで助け合って、言語をどんどん良くしていってるの!
まとめ🎀
Juliaは、スピード重視だけど書きやすい、という欲張りな子なの!😍
データ分析とか機械学習とか、計算たくさんする人にはマジでオススメ!💯
これからどんどん人気が出てくると思うから、今のうちに覚えておいて損はないわよ!😉✨
みんなも Julia で プログラミング ライフを エンジョイしちゃおう!🎉💖
最後に
Juliaの公式サイトにあるJuliaを何故作ったのかも紹介するよー🤓✨
なんでジュリア作っちゃったの?🤔💕
ぶっちゃけ、欲張りだったからなの~!🙈💖
私たち、マジでプログラミング大好き人間なわけ。😘 Matlab、Lisp、Python、Ruby、Perl、Mathematica、R、C言語...もう全部使いこなしちゃってるの!💅✨
でもね、それぞれいいとこあるけど、イマイチなとこもあるのよ。😕 科学計算とか機械学習とかデータマイニングとか、大規模な行列計算とか並列計算とか、やりたいことによって使い分けなきゃいけないの。めんどくさ~い!😫
だから私たち、欲張っちゃった!🤑 全部いいとこ取りの言語が欲しいって思っちゃったの!
私たちの欲しいもの、全部言っちゃう!🗣️💕
オープンソースで、ライセンスもゆるゆるな言語!🆓
Cみたいに速いけど、Rubyみたいに柔軟な言語!🏃♀️💨
Lispみたいなマクロが使えるけど、Matlabみたいに数式も書きやすい言語!🧮✨
汎用的にはPythonみたいで、統計はRみたいで、文字列処理はPerlみたいで、行列計算はMatlabみたいで、プログラムの連携はシェルみたいな言語!🦄
初心者でも簡単に覚えられるけど、ガチのハッカーも満足できる言語!😎
インタラクティブだけど、コンパイルもできる言語!💻
(あ、そうそう。Cと同じくらい速いのは絶対条件ね!⚡)
もっと欲張っちゃう!😈💖
Hadoopみたいな分散処理もできるけど、JavaとかXMLとかの面倒くさいのはナシ!📊
バグ探しでログファイル山盛りとかもうイヤ!簡単に見つけられる言語がいい!🔍
1つのCPUのレジスタだけで動く、超シンプルなループも書きたい!💪
でもA*Bって書いただけで、1000台のマシンで大規模な行列計算が始まるのも欲しい!🖥️🖥️🖥️
型?書きたくない時は書かなくていい言語!でも、ポリモーフィックな関数が必要な時は、ジェネリックプログラミングで無限の型に対応できる言語!🌈
多重ディスパッチで、引数の型に応じて最適なメソッドを選んでくれる言語!👌
こんな高機能なのに、シンプルでキレイな言語!✨
結論:ジュリア誕生!🎂🎉
「欲張りすぎじゃね?」って思った? でも私たち、全部欲しかったの!😤💕
そんなわけで、2年半くらい前から作り始めたのよ。😊 まだ完璧じゃないけど、もう90%くらいは実現できてるの!すごくない?🙌✨
これからはみんなの意見も聞きながら、もっともっと良くしていくつもり!💪 だからさ、あなたも欲張りで、無理難題ばっかり言うプログラマーなら、ぜひジュリアを試してみてね!😘🌟
ジュリアで、プログラミングライフをもっとハッピーに、もっとキラキラに✨しちゃおう!🎊💖