X



Julia言語ってどうなのよ!
0002デフォルトの名無しさん
垢版 |
2023/07/21(金) 12:32:10.35ID:FNlyvZlL
スターダムっぽい名前
0006デフォルトの名無しさん
垢版 |
2023/07/21(金) 15:38:41.24ID:Q4rI3Qtx
漠∞∞∞!
斗∞∞∞∞!
盤∞∞∞∞∞!
陽∞∞∞∞∞∞!
係∞∞∞∞∞∞∞!
衰∞∞∞∞∞∞∞∞!
語∞∞∞∞∞∞∞∞∞!
区∞∞∞∞∞∞∞∞∞∞!
典∞∞∞∞∞∞∞∞∞∞∞!
業∞∞∞∞∞∞∞∞∞∞∞∞!
床∞∞∞∞∞∞∞∞∞∞∞∞∞!
団∞∞∞∞∞∞∞∞∞∞∞∞∞∞!
0007デフォルトの名無しさん
垢版 |
2023/07/21(金) 17:29:35.85ID:eD9pKuA2
普段C++で計算しててちょっと楽になるかな?と触ってみたら全然そんな事なかった
そんな俺みたいな人が多そう
0009デフォルトの名無しさん
垢版 |
2023/07/22(土) 12:39:04.29ID:vXmUnTo0
まあこれ以上需要が増える事は絶対ないし消えてもなんとも思わないな
0011デフォルトの名無しさん
垢版 |
2023/07/23(日) 21:48:07.95ID:K4vmsGUK
型システムいい感じだし好きで使ってるけどな
まあこの言語である必要はないな
0012デフォルトの名無しさん
垢版 |
2023/07/27(木) 17:06:48.60ID:6FNIWXSU
Rust学ぼうと思ってたけど用途に対して学習コスト高すぎるからJuliaにしようかと思ってる
0013デフォルトの名無しさん
垢版 |
2023/07/27(木) 23:35:45.28ID:L/etlfw/
Juliaも見事に駄目言語だな。こんな変てこな言語を使ってはいけない。

×駄目言語たち (実行すると0が表示される)

 a = b = [1, 2, 3]; a[2] = 0; println(b[2]) # Julia
 a = b = [1, 2, 3]; a[1] = 0; print(b[1]) # Python
 a = b = [1, 2, 3]; a[1] = 0; print(b[1], "\n") # Ruby

○まともな言語たち (実行すると2が表示される)

 vector<int> a, b = {1, 2, 3}; a = b; a[1] = 0; cout << b[1] << endl; // C++ STL
 int[3] a, b = [1, 2, 3]; a = b; a[1] = 0; writeln(b[1]); // D
 integer :: a(3), b(3) = (/1, 2, 3/); a = b; a(2) = 0; print "(i0)", b(2) !! Fortran
 a = b = [1, 2, 3]; a(2) = 0; printf("%d\n", b(2)) # Octave
 a <- b <- c(1, 2, 3); a[2] <- 0; cat(b[2], "\n") # R

△まあ許せる言語 (1行目と2行目を実行するとそれぞれ0と2が表示される)

 $a = $b = 1, 2, 3; $a[1] = 0; $b[1] # PowerShell
 [int[]]$a = [int[]]$b = 1, 2, 3; $a[1] = 0; $b[1] # PowerShell

駄目言語たちの挙動はC/C++でaがポインタの場合

 int *a, b[] = {1, 2, 3}; a = b; a[1] = 0; printf("%d\n", b[1]); // C/C++

の動作に似ている。C/C++はaをポインタとして明示的に型宣言しているので納得できるし、
aを配列として型宣言した場合

 int a[3], b[] = {1, 2, 3}; a = b; a[1] = 0; printf("%d\n", b[1]); // C/C++

はコンパイルエラーになり実行できないので問題ないが、駄目言語たちはどう見ても配列の代入にしか
見えない書き方なのに実際の挙動がそうならないのは大問題で、バグの元となるのは必定。
0014デフォルトの名無しさん
垢版 |
2023/07/28(金) 03:06:33.05ID:HsfaqfZ/
>>13
その話ならばGoという最悪の言語があって直感と常識を裏切る挙動をしてくる
しかも理解できたと思ったら二転三転と次々と裏切りの挙動をしてくる

// まず [1 2 3] をaに作ってbに代入するところからスタート
a := []int{1, 2, 3}
b := a

// 実験1: 途中要素の書き換え
a[1] = 222
fmt.Println("a =", a) // → [1 222 3]
fmt.Println("b =", b) // → [1 222 3]
// aもbも書き換わってしまった!同じものを指しているのだろうか?

// 実験2: 末尾要素の削除
a = a[:len(a)-1]
fmt.Println("a =", a) // → [1 222]
fmt.Println("b =", b) // → [1 222 3]
// aだけ削除された!
// aとbは別なのだろうか?

// 実験3: 要素の追加 (その1)
a = append(a, 777)
fmt.Println("a =", a) // → [1 222 777]
fmt.Println("b =", b) // → [1 222 777]
// aとbは再び同じになってしまった!なぜだ??

// 実験4: 要素の追加 (その2)
a = append(a, 999)
fmt.Println("a =", a) // → [1 222 777 999]
fmt.Println("b =", b) // → [1 222 777]
// aだけ追加された!また裏切られた!!
0015デフォルトの名無しさん
垢版 |
2023/07/28(金) 03:53:06.49ID:65xaooD2
slice のコピーを作るなら make & copy

b := make([]int, len(a))
copy(b, a)

参照ならポインタ

b := &a
0016デフォルトの名無しさん
垢版 |
2023/07/28(金) 04:16:53.95ID:HsfaqfZ/
この単純代入もエラーとならず禁じられていない
b := a
そして複雑化した時など最も発生しやすいのがこの単純代入
その時に>>14の複雑怪奇な挙動となり想定外のバグを生み出すのがGo
0018デフォルトの名無しさん
垢版 |
2023/07/28(金) 04:47:22.23ID:HsfaqfZ/
Go以外の全ての言語の利用者が>>14のGoの挙動に違和感を持つ
つまりGoは仕様からしておかしいということだ
しかも隠れたバグを引き起こす
0019デフォルトの名無しさん
垢版 |
2023/07/28(金) 10:33:55.91ID:Zgvcm9f5
>>13
その基準だと Rust もダメ言語なんだが
0020デフォルトの名無しさん
垢版 |
2023/07/28(金) 12:19:57.31ID:9v9DJg3O
Amazonでjuliaだけで検索したら上半身裸の女性がたくさん出てくる😅
0021デフォルトの名無しさん
垢版 |
2023/07/28(金) 18:08:39.71ID:gdkptAW0
>>19
Rustも>>13の言う「○まともな言語たち (実行すると2が表示される)」だよ

let mut a = [1, 2, 3];
let b = a;
a[1] = 0;
println!("{a:?}"); // [1, 0, 3]
println!("{b:?}"); // [1, 2, 3]
0022デフォルトの名無しさん
垢版 |
2023/07/29(土) 12:12:04.65ID:q7EMPtC5
チンチン七拍子!
チンチンチン チンチンチン チンチンチンチンチンチンチン
チンチンチン チンチンチン チンチンチンチンチンチンチン
0026デフォルトの名無しさん
垢版 |
2023/08/07(月) 10:32:22.37ID:0BLyOSfR
TIOBE Index for August 2023
August Headline: Julia enters the TIOBE index top 20 for the first time
https://www.tiobe.com/tiobe-index/

ビッグウェーブきてんね
0027デフォルトの名無しさん
垢版 |
2023/08/07(月) 23:44:53.14ID:zpJ4TKyU
>>26
最近になってJuliaの日本語解説書が何冊か発売されたから、TIOBEのランク入りは日本人の寄与じゃないのか?
本を頼りにちょっと齧ってみて見限る人が多くて、ブームは一過性に終わりそう。
レスを投稿する


ニューススポーツなんでも実況