次世代言語18 Go Rust Elixir Kotlin TypeScript

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2019/10/01(火) 02:58:03.93ID:aEwUIB6s
スレタイ以外の言語もok

前スレ
次世代言語17 Go Rust Kotlin TypeScript Julia
https://mevius.5ch.net/test/read.cgi/tech/1567602619/
2020/01/05(日) 19:08:07.33ID:0cNR2y9K
単にAPIとして優秀だからだよ
それだけ
2020/01/05(日) 19:12:24.89ID:YF3dXBXH
PythonではC等で書かれたライブラリを呼ぶだけで計算はしないから、遅くても問題ない
2020/01/05(日) 19:15:19.30ID:wCDbKTu8
どんな言語で書いてもCUDA等を呼び出すだけだから
2020/01/05(日) 19:19:55.04ID:zZ0UxrzA
>>128
この分野ではライブラリ叩くのだけが役目で速さがいらないからこそPythonが生き残ったんだよ
2020/01/05(日) 19:44:46.12ID:6gmeklwC
ruby好きの奴らなんてmatzも含めて絶対数値計算なんかやらんかっただろう。
そういうとこだよ。
2020/01/05(日) 20:12:28.37ID:O1c9EgK/
客観的な数字がない以上どっちが人気があったかというのは水掛け論でしかないけど、
rubyが世界的に人気が出たと言えるのはRoR以降で、登場時期はNumpyとほぼ同じなんだよな。
仮にrubyの人気がpythonを上回ったことがあったとしても非常に短い期間に限られたと思われ。
2020/01/05(日) 20:53:54.52ID:6gmeklwC
>>128
pythonが実行速度が必要なところはcで書けばいいと割り切ってる中で
rubyは言語自体の速さをあげることに時間かけてた。
そういう見識のなさがrubyなんだよ。
2020/01/05(日) 21:17:35.10ID:+Zo8pyHn
68 名前:デフォルトの名無しさん[sage] 投稿日:2019/11/11(月) 08:41:18.73 ID:ugn4nfqU
炎上PJに巻き込まれて帰ってこれなくなってしまったのだろう

69 名前:デフォルトの名無しさん[sage] 投稿日:2020/01/03(金) 12:58:50.03 ID:f2V4CbYL
あけ おめこ とよろ


おまえら、この空白の2ヶ月間、何してたんだ?
2020/01/05(日) 21:54:16.01ID:NzdiaSgk
>>135
さすがに無知すぎるだろ
PythonもRubyも知らないなら無理すんなw
2020/01/05(日) 22:23:58.34ID:wCDbKTu8
>>137
Ruby信者イライラでウケるw
2020/01/05(日) 23:09:54.68ID:6gmeklwC
>>137
やっぱrubyやってる輩って低レイヤーのことをまるでわかってないのな。
馬鹿丸出し。
2020/01/05(日) 23:34:13.56ID:2r2GEHCR
pythonもpython自体の高速化はやってきてるでしょ
pypyみたいな変態的なものもあるし
むしろrubyの方が言語仕様的に高速化できる余地が少なくて停滞してた印象
yarvも遅れてやってきた感しかない

まぁ身もふたもないけど、つたない英語で日本人がリードするプロジェクトに
外人はあんまり寄り付いてこないのがrubyがいまいち盛り上がらなかった原因だと思うよ
RoRの波の時にいろいろ仕掛けておけば違った気がするんだけど
2020/01/06(月) 11:00:46.22ID:AUHKm4tz
>>140
日本でRubyが人気あるのは日本で誕生した言語(→日本語のドキュメントやコミュニティが充実)だからってのは確実にあるだろうし逆に考えたらアメリカ人は英語圏で誕生した言語を使うわな
Python開発者はオランダ人だけどアメリカで働いていた人だし
2020/01/06(月) 22:45:21.22ID:sgp8c2gs
>>140
結局遅くてもデフォルトのcpythonを使うわけだよ。
そこまでcpuバウンドなプログラムなんて早々ないし、あったらcで実装したライブラリを使う。
なんでも同じ言語だけで無理やり何とかしようってのはバカの発想だわ。
cをどれだけ呼びやすくするかに労力をかけたpythonにrubyは完全に負けたわけよ。
2020/01/06(月) 22:51:03.06ID:ax8KHfsY
cというか共有ライブラリの呼び出しでそんな大きな違いあったっけ?
似たようなもんだったと思うけどな
2020/01/06(月) 23:48:50.87ID:OPIqNi1w
cで実装って言っても、cythonなら殆どpythonのように書けるわけで
2020/01/07(火) 08:51:26.11ID:ofmsTTYR
旧世代言語で言えばC++、Java、Python、JavaScriptの4つが書ければ組み込みからウェブまで基本的に何でもできた
1つの言語で何とかしようとすれば何とかなるかもしれないが開発効率を考えると結局この4つくらいの言語が必要
速さのC++、汎用性のJava、書きやすさのPython、ウェブのJavaScript
最強の言語に統一しようとする試みは全部失敗に終わって適材適所で使い分けるのが結局最適解だったわけだ
次世代言語では汎用性と書きやすさを兼ね備えたGoがあるのでRust、Go、TypeScriptが必須三大言語になる
146デフォルトの名無しさん
垢版 |
2020/01/07(火) 11:10:34.52ID:4XCSnFAB
wasmの展開次第ではまた統一の流れになるかもよ
今のところRustかGoかかな
147デフォルトの名無しさん
垢版 |
2020/01/07(火) 15:35:35.01ID:2Dq0zKSW
cythonよりもpybind
2020/01/07(火) 21:50:43.14ID:ueOqy5pf
Ruby の主な設計思想は、C の拡張ライブラリを作りやすくする事!
今は、FFI

言語が流行るかどうかは、便利な拡張ライブラリの作りやすさで決まる。
VSCode がそう。
皆が作る、多くの拡張機能が大人気

R, matlab → Python → Julia
Ruby → Elixir

数十万もする、matlab を誰も使いたくない!
これが無料で使える、Pythonがコスト的に優秀だった!

ただ、文法が辛いから、Ruby風のdo 〜 end を採用した、Juliaへ流れたw
2020/01/07(火) 22:09:56.51ID:yh5VVA2x
的外れのことをよく長々と書くもんだな
2020/01/07(火) 22:35:33.23ID:+L6qE003
juliaなんてインデックスが1はじまりな時点で終わってんだよ。
2020/01/07(火) 22:54:19.05ID:SnOVFU52
ruby信者はrubyの文法が好きみたいだけど
rustは文法もゴミだからね?
2020/01/07(火) 22:55:15.32ID:SnOVFU52
あ、rubyをrustに間違えた。rustすまん…
2020/01/07(火) 22:58:02.03ID:nsSNgmh4
>>152
許さん
2020/01/07(火) 23:27:16.65ID:VzO2pILM
まぁほら、値を返す場合はセミコロンを付けちゃいかんとか、あの辺は真にゴミだ。
2020/01/08(水) 11:36:37.71ID:sRhV0lFo
どうしたらよかった?
2020/01/08(水) 14:43:49.47ID:e6ROAylT
>>115
Dartは今一番来てる言語だろ
ちょうどFlutterのスター数がReact Nativeを超えたところだぞ
これで名実ともにクロスプラットフォーム開発のスタンダードがDartになった
2020/01/08(水) 15:05:07.83ID:GLREUp4M
Rustのセミコロンは文の終端じゃなくて、「左オペランドを評価してその値を破棄し、右オペランドを評価してその値を返す演算子」だと理解すればスッキリする
2020/01/08(水) 19:33:38.16ID:btz4wclA
そんな独自ルール押し付けられても普通はくそだとしか思わんよ。
2020/01/08(水) 20:28:36.87ID:5tRz+DPE
>>155
「式にセミコロンを付けたら文になる」
「文の評価値はunit」
「ブロックの値は含まれる最後の式(文)の値」

それぞれは筋が通ってなくもないけど、2番目のは

「文の値は含まれる最後の式の値」

にしても問題なかったんじゃないのかな。
2020/01/08(水) 20:40:04.73ID:MaFwnBiO
結局Rustは死産だった
2020/01/08(水) 20:46:34.81ID:tjOftEX2
>>159
問題あるからそうなってるんだよ
2020/01/08(水) 21:11:26.71ID:5tRz+DPE
>>161
具体例plz
2020/01/08(水) 21:25:54.87ID:AbnA2tlH
なぜ
Go
Rust
TypeScriptが
旧世代5大言語を超越するのでしょうか?
2020/01/08(水) 21:50:40.19ID:m4KDxoTK
>>163
Go→めっちゃ書きやすい。少ない行数で何でも書けるので生産性爆上げ。実効速度はC/C++よりは遅いがJavaやPythonよりもずっと速いので何にでも使いやすい。文法が分かりやすいので入門用言語にも適している。オールマイティな次世代エース的存在で欠点がほぼない

Rust→C++と同レベルに速い唯一の言語。なおかつC++よりも文法が整理されている。C++と違ってメモリ安全性が確保されている。Goほどの書きやすさ・利便性はないがC++の後継としてシステムプログラミングに使えると考えられている

TypeScript→JavaScriptを大規模開発にも使えるように整備した言語。JSがウェブだけでなくアプリ開発にも使われるようになったという背景にマッチ。既存のJSコードという遺産をそのまま使えるのでデメリットなし

3言語ともにGoogleやMicrosoftが推しているので他企業も追随して移行している
165デフォルトの名無しさん
垢版 |
2020/01/08(水) 21:58:55.88ID:5fiN5kGt
Goの行数が短いとは
2020/01/08(水) 22:05:03.81ID:VsmkZjsO
GoはAI関連のPythonからの移行組、組み込み系のCからの移行組、アプリ開発のJavaからの以降組と色々なところから支持されてるよな
2020/01/08(水) 22:19:11.42ID:btz4wclA
goはガベコレ付きのcってくらいだろ。それくらい機能が少ないから良い。
168デフォルトの名無しさん
垢版 |
2020/01/08(水) 22:59:45.27ID:oFdEo24g
Goは機能が少ないから行数は長くなるな
ジェネリクスがまだなくて冗長になりやすい
良くも悪くも割り切ってる
2020/01/08(水) 23:17:23.66ID:fhO5tB7/
PythonやJavaは機能が多過ぎるからGoに移行すると言ってるように見えるが
多過ぎるという証拠がない
2020/01/09(木) 01:00:17.42ID:vhRTlzM5
GoがJavaよりずっと速いってことはない
ほぼ同程度
2020/01/09(木) 01:23:41.01ID:AUFIvY9B
かなり速いよ
起動が
2020/01/09(木) 02:53:10.48ID:Ur3XGElN
>>159
今日まで1200円(93%OFF)で買えるよ

現役シリコンバレーエンジニアが教える
Goで始めるスクラッチからのブロックチェーン開発入門
45レクチャー(5時間33分)
https://www.udemy.com/course/go-blockchain/
2020/01/09(木) 06:44:29.90ID:Ur3XGElN
Rust in Blockchain
Bringing engineering insight and experience to blockchain technology.
https://rustinblockchain.org/
174デフォルトの名無しさん
垢版 |
2020/01/09(木) 07:42:30.82ID:QBVFRtP7
>>159
returnを省略できるから値を必ず返してしまう
2020/01/09(木) 09:24:02.44ID:xKZrNt+9
Goはそこそこ速くて文法もすっきりしてるから汎用性高い
2020/01/09(木) 11:06:37.80ID:vRVrXWOG
Goは機能も絞ってあるし文法も簡単だから初心者の入門用に最適だと思う
しかも当然Pythonより速いので実用性も高い
次世代では学校でGoを習ってプログラミングを始めて実務でもGoで書ける部分はそのままGoとなりそう
2020/01/09(木) 11:22:30.94ID:vRVrXWOG
旧世代五大言語…C、C++、Java、Python、JavaScript
新世代五大言語…Go、Rust、Kotlin、Swift、TypeScript

今のところこんな感じだけどDartやJuliaは五大に入ってきてもおかしくないと思ってる
クロスプラットフォームアプリ開発でDart(Flutter)がReactNativeに勝利しそうな勢いで注目してる
多分DartはJavaライクな文法がJavaScript嫌いなアプリ開発者たちから受けてるんだろう
AndoroidはKotlin、iOSはSwiftという棲み分け自体が不効率の極みなのでDartがもう少し使えるものになればクロスプラットフォーム開発に雪崩を打って移行していくと思う
JuliaはJuliaですでにAI関連で信者層が形成されているしPythonでできることはJuliaでもできる状態になってるからじわじわシェア奪っていけると思う
TensorFlow次第という側面もあるが
2020/01/09(木) 12:07:25.94ID:kiVtjsUg
dart2nativeのよってFlutter以外にもDartの使い道が
2020/01/09(木) 12:45:50.31ID:LsvkYb1v
GoはそもそものGoogle自身がほとんど使ってない
2020/01/09(木) 13:01:10.01ID:9BpGshJT
AndroidはJavaScript、iOSもJavaScript
一方、サーバーは非効率の極み
2020/01/09(木) 14:16:30.17ID:LsvkYb1v
C#はMSの推奨言語である限り何が出てこようとVC++とともにMS環境下での第一選択肢であることは揺るがない
基本的にOSやハードウェアのベンダーが使えと言っているものと使うのが正しい
2020/01/09(木) 21:24:14.26ID:SzStz3wn
関数型言語の特性を少しずつ取り入れる動きがあるのは(それが良いかどうか別にして)ある程度共通の認識として持たれていて
その中でも型システムに関してRustはライフタイム管理と参照の可変性制約に議論の余地があるとはいえそれ以外は程々な落としどころになってると思うんだけどどうよ
つまりはtraitとかenumとかgenericsとかについてなんだけど
2020/01/09(木) 21:39:52.57ID:/duGWeb2
てかemunの網羅性チェックとか普通に考えたら欲しくなると思うんだが
なぜC/C++/Java等の手続き型/オブジェクト指向言語では今まで取り入れられてなかったのかが謎
2020/01/09(木) 21:52:21.07ID:YgTrDd8p
>>174
関数戻り値の型推論はされないんだから、関数の型がunitのときは型の不整合とみなさないとか
できると思うがなぁ。
その場合のデメリットって「特別扱いは一貫性に欠ける」というくらいしか思いつかない。
2020/01/10(金) 01:35:53.38ID:0q4Qxo1U
ジェネリクスの起源はC言語の配列型やポインタ型のような気がする
ポインタ型を取り入れるどころか逆に排斥するのが常識だった
たまたま常識を疑うことができたのがC++と関数型言語だっただけ
2020/01/10(金) 02:36:02.44ID:kSkZ4oHO
次世代とか関係なく趣味でやるのにオススメの言語ある?
https://rosettacode.org/wiki/Category:Programming_Languages

https://duckduckgo.com/bang_lite.html
!rosettacode Generics
2020/01/10(金) 10:47:12.28ID:OzcTj1e5
次世代とか関係ないならスレチ
188デフォルトの名無しさん
垢版 |
2020/01/10(金) 15:44:58.26ID:puBSVXWR
>>186
https://mevius.5ch.net/test/read.cgi/tech/1571717826/
2020/01/10(金) 20:05:28.59ID:gdjTauNe
>>182
逆だろ。
rustのやろうとしてることを考えればライフタイム管理と参照の可変性制約に議論の余地はない。
他のどうでもいいところに力を入れてることの方が問題。
2020/01/10(金) 21:31:36.42ID:0q4Qxo1U
力を入れるより力を抜く方が難しい戦闘民族もいるんだろう
2020/01/11(土) 11:07:27.64ID:Mi8oZktw
>>185
多分趣旨は同一だと思いますが、私はC++ template がジェネリクスの起源だと
2020/01/11(土) 12:52:41.76ID:C5APeypm
お前初めてか次世代言語は、力抜けよ
193デフォルトの名無しさん
垢版 |
2020/01/11(土) 13:04:07.27ID:l/QLWHKH
Genericsの起源 → template
Genericsの起源 → enum
Genericsの起源 → マクロ
Genericsの起源 → キャスト
Genericsの起源 → struct
Genericsの起源 → union
Genericsの起源 → ポインタ
Genericsの起源 → レジスタ
2020/01/11(土) 13:42:11.23ID:C5APeypm
全ての始祖にして始まりの言語 ダークネスオブライト 神光雪花繚乱 ーCー

おまえはまだ、本当のCを



2020/01/11(土) 17:39:11.16ID:jnWa1Bc7
>>189
ごめんこれは私の書き方が悪かった
Rustのやろうとしてることからすれば議論の余地が無いのは間違いない

ただRustのやろうとしてること(つまりそれらを型システムに落とし込んで管理しようとすること)そのものには反対意見も見られるのでそのように書いた
(私はRustの方針で良いとは思っている)

それなりに一般人類が扱える程々な型システムの機能は言語の目的に依存しない範囲でどの程度かなって話をしたかった
型システムの程々が言語の目的に依存するのは分かった上でなので、それ無しに語る事なんてできないと言われたらはいとしか返せない

あと例にgenericsを書いたのは最近の言語でGoが少なくとも今は取り入れてないからだったんだけど、冒頭に関数型〜と書いてしまったがために >>185 みたいに起源の議論になってしまって申し訳ない

あとgenericsの起源の話をするならAdaちゃんのことも思い出してあげて下さい(小声)
196デフォルトの名無しさん
垢版 |
2020/01/12(日) 02:59:36.74ID:eMSUjpmi
言っとくけどMITのJulia凄いんだから!バカにしたら許さないから!
2020/01/12(日) 10:32:30.51ID:kMp+U+wu
バーカ
おまえのかーちゃんAV女優
2020/01/12(日) 11:36:08.74ID:gA+rg5vj
juliaはクソだわ。推してるやつも数値計算まともに理解してないろ。
2020/01/12(日) 15:31:32.23ID:txAfGBZe
実数クラスは複素数クラスを継承していない
数値計算の闇は深い
2020/01/12(日) 15:35:53.73ID:kMp+U+wu
おまえらクラスにはセックスメソッドすら実装されてないよね
2020/01/12(日) 18:19:08.33ID:Age3j7t+
じゃあ実装するから
LGBTをふまえたモデル化やってみて
2020/01/12(日) 20:19:36.78ID:kMp+U+wu
は?キモ
2020/01/13(月) 21:57:09.26ID:mYAmbNyn
Go, Rust, Swift, Kotlin, Typescript
基本的にこれだけやっとけばいいわけか
2020/01/14(火) 12:59:45.06ID:uZ65hl6g
>>203
分野次第だろ
例えばiPhoneアプリ作らないならSwiftいらないし
2020/01/14(火) 13:30:37.65ID:AAWN8rY8
〇〇だけやればいい
これを満たせるのはC++とJavascriptだけ
2020/01/14(火) 13:56:29.79ID:06NyUtxI
旧世代「綿密な準備、計画、理解、Go、Rust、Swift、Kotlin、Typescript」
ニュータイプ「あっ(察し)」
2020/01/14(火) 18:52:16.13ID:xEAW1qCD
本屋に行くとswiftやkotlinの本がたくさん陳列してあって流行ってるのを感じる
2020/01/14(火) 20:52:15.46ID:NIc2ogis
まだ発展途上とはいえ、RustってC, C++の上位互換っていう認識でいたんだけどどうなの

ライブラリの充実度とかはまだまだだろうけど
2020/01/14(火) 21:23:10.59ID:JlIaLGxV
>>208
上位互換を目指してるというのは正しいけどまだ上位互換とは言えない
C/C++のほうがまだ多少は実効速度が上みたい
体感できるほどの差はもちろんないけど
2020/01/14(火) 21:37:06.70ID:1v7jQTZs
Rustのほうが未来永劫遅いだろ
速くなる要素あるのか?
2020/01/14(火) 21:53:54.59ID:CySpaDcH
言語の処理速度は      C > C++ > Rust
プロダクトの性能の傾向は Rust > C++ > C

理由は、コンパイラ時のチェック系の支援が大きいほど
プログラマが気を使う量が減って高度な高速化実装がしやすくなるため
実例はServo

一方Cで限界までチューニングすれば他は追いつけない
メンテ難易度は上がるがそれを扱えるメンバーと運用があれば問題無い
実例はLinuxカーネル
2020/01/14(火) 22:06:05.36ID:Y6z2uzMK
色々な言語が登場しても未だにCが生き残ってるのはとにかく速さだからね
Cを置き換えようとする次世代言語は速さでCに負けてたら結局置き換えられないよ
2020/01/14(火) 22:09:27.27ID:AAWN8rY8
Cが使われる理由は速さではなく自由度
書いたとおりに動くという当たり前のことができる言語は、特に新しい言語においてはほとんどない
2020/01/14(火) 22:16:53.48ID:3eaorBLU
>>211
と思うじゃん?
実際はコンパイル時間が鬱陶しすぎてクソな通し方するようになる。
2020/01/14(火) 22:43:28.59ID:ETa8CiFD
Rustは、Cには負けるけどC++には速度で勝った、みたいな記事を最近見たんだが
2020/01/14(火) 23:02:29.05ID:AAWN8rY8
しょーもないブログ記事なんか真に受けんな
2020/01/15(水) 00:35:12.86ID:l5yk4jFW
C++のコンパイル時計算のあれこれを見ていると証明が必須じゃないCoqかよみたいな気持ちになるし人類にとってはできることが多すぎる
コンパイル時間のあれこれを言うならC++こそ人の事言えねぇよ
2020/01/15(水) 03:36:18.54ID:JGL8Rg1T
まあそうなんだがc++を置き換えると言いつつ
c++の問題を後追いしてるところはアホとしか言いようないなと思ってるってことだわ。
2020/01/15(水) 04:14:23.70ID:gFOlYGPu
C++を越えようとすればするほどC++に近づき、最終的にC++そのものになっていく
2020/01/15(水) 09:36:21.05ID:CBF4WmsT
最近はセキュリティ要件厳しいから
静的解析パスしないとリリースできなかったりするんだけど
とりあえず静的解析を黙らせるために過剰にvalidity checkが入れられてると思う
そういう無駄をきれいに省けたらc、c++を上回る可能性はあるかもしれない
2020/01/15(水) 11:05:13.31ID:l5yk4jFW
でもボクシングとかで実行時に負担掛ける動的多相を導入しない限りコンパイル時間は大きくは変化しないでしょという気持ち(型渡しと型消去)
別にRustだって依存型(定理証明系)とか高階多相(Scalaとか)でコンパイル時間増えてるわけじゃないんだし
2020/01/15(水) 13:04:38.24ID:DG9IEwRP
高尚な低速言語供が売りとしてる機能を組上げる部品をゲロベチョっとコーダー側へぶちまけ
オマエ自身が工夫してどうにかしろな仕組みを提供してんのがrustだからのう
関数型へ傾いてるとはいえコンパイル時間がどうこう言うのにrustの例は不適切かな
2020/01/15(水) 19:26:50.92ID:JGL8Rg1T
いや実際cの5〜10倍ビルド時間かかるだろ。
224デフォルトの名無しさん
垢版 |
2020/01/15(水) 19:42:04.64ID:vosN76E7
ダンリンポインタ探しに1000倍かかるよりいいわ
2020/01/16(木) 06:11:49.71ID:iXD/XJ1o
まともにやってりゃそんなクソコードにならんわ。
どんなコードだよそれ。
2020/01/18(土) 08:53:48.14ID:+M4Y4zKh
新言語登場

Project Verona
https://github.com/microsoft/verona

> Research programming language for concurrent ownership
2020/01/18(土) 08:59:16.18ID:8D4uGXih
もう新言語に期待するしかないかもな
2020/01/18(土) 11:08:15.00ID:bckYulo4
C++20に期待しろ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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