X



次世代言語18 Go Rust Elixir Kotlin TypeScript
■ このスレッドは過去ログ倉庫に格納されています
0118デフォルトの名無しさん
垢版 |
2020/01/05(日) 14:41:58.81ID:O1c9EgK/
JuliaとElixirもまだ地歩を固められるかどうかさえ怪しいところだろう。
サーバーサイドなんてElixirよりGo/Rust/TypeScriptの方が獲りそうにも思うが。
0121デフォルトの名無しさん
垢版 |
2020/01/05(日) 15:18:42.39ID:H6Oq7LCM
RubyはPHPに負けた言語だからな
思い返してみると言語の流行度をランク付けしたらいつも10位前後をフラフラしていただけで一度として覇権を握ったことはない
信者はPHPerが単細胞の無能で他の言語を覚えられないからRubyが主流にならなかっただけだと思ってるみたいだけど
ポストRubyのポジションはElixirだろうがそこまで価値のあるポジションとは思えない
0123デフォルトの名無しさん
垢版 |
2020/01/05(日) 16:58:36.15ID:cUAn3/gX
次世代で差し当たって生き残るのが決まってるのはGo、Rust、Swift、Kotlin、TypeScriptの五大言語だけでしょ
この5つは大企業がバックについてて一定の信者コミュニティが形成されてるからもう揺るがない
ほかの言語はこれから競争
Pythonの遅さに対するヘイトでPythonブームがしぼむタイミングでどの言語がポストPythonに収まるかって戦いが注目だ
Rubyのまつもとゆきひろが言ってたけど結局言語自体の良し悪しだけじゃなくて有能なコミュニティが形成されるかどうかという要素が重要だからな
TensorFlowがGoに対応してる関係でAI界隈だとPythonからGoへの移行が多いけどJuliaやCrystalのラッパー作ってる人もいるからまだ他の言語にもチャンスある
ちなみにうちはすでにGo
0124デフォルトの名無しさん
垢版 |
2020/01/05(日) 17:01:50.31ID:cUAn3/gX
>>121
RubyはPythonの地位にあってもおかしくなかった
アカデミックな世界の人たちがPythonに流れたのが大きかった
0125デフォルトの名無しさん
垢版 |
2020/01/05(日) 17:41:07.92ID:O1c9EgK/
rubyが出た頃には既にpythonは十分人気があったわけで、流れたというより
pythonのシェアを奪えないまま自滅したという方が合ってる気がする。
0126デフォルトの名無しさん
垢版 |
2020/01/05(日) 18:38:52.97ID:wCDbKTu8
>>123
研究者が使うフレームワークが殆どpytorch一色になったので、
tensorflowもどこまで安泰か分からん
0127デフォルトの名無しさん
垢版 |
2020/01/05(日) 18:48:23.54ID:cUAn3/gX
>>125
いや、一時期は間違いなくRubyはPythonよりも人気があったよ
日本に限らず世界でね
2000年代に入ってからSciPyとNumPyという科学計算ライブラリの決定版が出たことで一気にPythonの地位が上がった
それまでR言語とかに注目してた層が根こそぎPythonに飛びついて大逆転した
もしSciRubyやNumRubyだったらRubyが天下を取っていたはず
0128デフォルトの名無しさん
垢版 |
2020/01/05(日) 18:56:14.34ID:nCpGvxq/
PyTorchやTensorFlowがどうしてPythonなのかが全く分からん
あんな遅い言語で機械学習をやるメリットは何なの?
ディープラーニングは複雑な計算が必要だからこそ高速な言語でやらないとって思ってしまうのは俺がド素人だから?
0130デフォルトの名無しさん
垢版 |
2020/01/05(日) 19:12:24.89ID:YF3dXBXH
PythonではC等で書かれたライブラリを呼ぶだけで計算はしないから、遅くても問題ない
0132デフォルトの名無しさん
垢版 |
2020/01/05(日) 19:19:55.04ID:zZ0UxrzA
>>128
この分野ではライブラリ叩くのだけが役目で速さがいらないからこそPythonが生き残ったんだよ
0133デフォルトの名無しさん
垢版 |
2020/01/05(日) 19:44:46.12ID:6gmeklwC
ruby好きの奴らなんてmatzも含めて絶対数値計算なんかやらんかっただろう。
そういうとこだよ。
0134デフォルトの名無しさん
垢版 |
2020/01/05(日) 20:12:28.37ID:O1c9EgK/
客観的な数字がない以上どっちが人気があったかというのは水掛け論でしかないけど、
rubyが世界的に人気が出たと言えるのはRoR以降で、登場時期はNumpyとほぼ同じなんだよな。
仮にrubyの人気がpythonを上回ったことがあったとしても非常に短い期間に限られたと思われ。
0135デフォルトの名無しさん
垢版 |
2020/01/05(日) 20:53:54.52ID:6gmeklwC
>>128
pythonが実行速度が必要なところはcで書けばいいと割り切ってる中で
rubyは言語自体の速さをあげることに時間かけてた。
そういう見識のなさがrubyなんだよ。
0136デフォルトの名無しさん
垢版 |
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ヶ月間、何してたんだ?
0140デフォルトの名無しさん
垢版 |
2020/01/05(日) 23:34:13.56ID:2r2GEHCR
pythonもpython自体の高速化はやってきてるでしょ
pypyみたいな変態的なものもあるし
むしろrubyの方が言語仕様的に高速化できる余地が少なくて停滞してた印象
yarvも遅れてやってきた感しかない

まぁ身もふたもないけど、つたない英語で日本人がリードするプロジェクトに
外人はあんまり寄り付いてこないのがrubyがいまいち盛り上がらなかった原因だと思うよ
RoRの波の時にいろいろ仕掛けておけば違った気がするんだけど
0141デフォルトの名無しさん
垢版 |
2020/01/06(月) 11:00:46.22ID:AUHKm4tz
>>140
日本でRubyが人気あるのは日本で誕生した言語(→日本語のドキュメントやコミュニティが充実)だからってのは確実にあるだろうし逆に考えたらアメリカ人は英語圏で誕生した言語を使うわな
Python開発者はオランダ人だけどアメリカで働いていた人だし
0142デフォルトの名無しさん
垢版 |
2020/01/06(月) 22:45:21.22ID:sgp8c2gs
>>140
結局遅くてもデフォルトのcpythonを使うわけだよ。
そこまでcpuバウンドなプログラムなんて早々ないし、あったらcで実装したライブラリを使う。
なんでも同じ言語だけで無理やり何とかしようってのはバカの発想だわ。
cをどれだけ呼びやすくするかに労力をかけたpythonにrubyは完全に負けたわけよ。
0143デフォルトの名無しさん
垢版 |
2020/01/06(月) 22:51:03.06ID:ax8KHfsY
cというか共有ライブラリの呼び出しでそんな大きな違いあったっけ?
似たようなもんだったと思うけどな
0145デフォルトの名無しさん
垢版 |
2020/01/07(火) 08:51:26.11ID:ofmsTTYR
旧世代言語で言えばC++、Java、Python、JavaScriptの4つが書ければ組み込みからウェブまで基本的に何でもできた
1つの言語で何とかしようとすれば何とかなるかもしれないが開発効率を考えると結局この4つくらいの言語が必要
速さのC++、汎用性のJava、書きやすさのPython、ウェブのJavaScript
最強の言語に統一しようとする試みは全部失敗に終わって適材適所で使い分けるのが結局最適解だったわけだ
次世代言語では汎用性と書きやすさを兼ね備えたGoがあるのでRust、Go、TypeScriptが必須三大言語になる
0146デフォルトの名無しさん
垢版 |
2020/01/07(火) 11:10:34.52ID:4XCSnFAB
wasmの展開次第ではまた統一の流れになるかもよ
今のところRustかGoかかな
0147デフォルトの名無しさん
垢版 |
2020/01/07(火) 15:35:35.01ID:2Dq0zKSW
cythonよりもpybind
0148デフォルトの名無しさん
垢版 |
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
0154デフォルトの名無しさん
垢版 |
2020/01/07(火) 23:27:16.65ID:VzO2pILM
まぁほら、値を返す場合はセミコロンを付けちゃいかんとか、あの辺は真にゴミだ。
0156デフォルトの名無しさん
垢版 |
2020/01/08(水) 14:43:49.47ID:e6ROAylT
>>115
Dartは今一番来てる言語だろ
ちょうどFlutterのスター数がReact Nativeを超えたところだぞ
これで名実ともにクロスプラットフォーム開発のスタンダードがDartになった
0157デフォルトの名無しさん
垢版 |
2020/01/08(水) 15:05:07.83ID:GLREUp4M
Rustのセミコロンは文の終端じゃなくて、「左オペランドを評価してその値を破棄し、右オペランドを評価してその値を返す演算子」だと理解すればスッキリする
0159デフォルトの名無しさん
垢版 |
2020/01/08(水) 20:28:36.87ID:5tRz+DPE
>>155
「式にセミコロンを付けたら文になる」
「文の評価値はunit」
「ブロックの値は含まれる最後の式(文)の値」

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

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

にしても問題なかったんじゃないのかな。
0164デフォルトの名無しさん
垢版 |
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が推しているので他企業も追随して移行している
0165デフォルトの名無しさん
垢版 |
2020/01/08(水) 21:58:55.88ID:5fiN5kGt
Goの行数が短いとは
0166デフォルトの名無しさん
垢版 |
2020/01/08(水) 22:05:03.81ID:VsmkZjsO
GoはAI関連のPythonからの移行組、組み込み系のCからの移行組、アプリ開発のJavaからの以降組と色々なところから支持されてるよな
0168デフォルトの名無しさん
垢版 |
2020/01/08(水) 22:59:45.27ID:oFdEo24g
Goは機能が少ないから行数は長くなるな
ジェネリクスがまだなくて冗長になりやすい
良くも悪くも割り切ってる
0169デフォルトの名無しさん
垢版 |
2020/01/08(水) 23:17:23.66ID:fhO5tB7/
PythonやJavaは機能が多過ぎるからGoに移行すると言ってるように見えるが
多過ぎるという証拠がない
0174デフォルトの名無しさん
垢版 |
2020/01/09(木) 07:42:30.82ID:QBVFRtP7
>>159
returnを省略できるから値を必ず返してしまう
0176デフォルトの名無しさん
垢版 |
2020/01/09(木) 11:06:37.80ID:vRVrXWOG
Goは機能も絞ってあるし文法も簡単だから初心者の入門用に最適だと思う
しかも当然Pythonより速いので実用性も高い
次世代では学校でGoを習ってプログラミングを始めて実務でもGoで書ける部分はそのままGoとなりそう
0177デフォルトの名無しさん
垢版 |
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次第という側面もあるが
0181デフォルトの名無しさん
垢版 |
2020/01/09(木) 14:16:30.17ID:LsvkYb1v
C#はMSの推奨言語である限り何が出てこようとVC++とともにMS環境下での第一選択肢であることは揺るがない
基本的にOSやハードウェアのベンダーが使えと言っているものと使うのが正しい
0182デフォルトの名無しさん
垢版 |
2020/01/09(木) 21:24:14.26ID:SzStz3wn
関数型言語の特性を少しずつ取り入れる動きがあるのは(それが良いかどうか別にして)ある程度共通の認識として持たれていて
その中でも型システムに関してRustはライフタイム管理と参照の可変性制約に議論の余地があるとはいえそれ以外は程々な落としどころになってると思うんだけどどうよ
つまりはtraitとかenumとかgenericsとかについてなんだけど
0183デフォルトの名無しさん
垢版 |
2020/01/09(木) 21:39:52.57ID:/duGWeb2
てかemunの網羅性チェックとか普通に考えたら欲しくなると思うんだが
なぜC/C++/Java等の手続き型/オブジェクト指向言語では今まで取り入れられてなかったのかが謎
0184デフォルトの名無しさん
垢版 |
2020/01/09(木) 21:52:21.07ID:YgTrDd8p
>>174
関数戻り値の型推論はされないんだから、関数の型がunitのときは型の不整合とみなさないとか
できると思うがなぁ。
その場合のデメリットって「特別扱いは一貫性に欠ける」というくらいしか思いつかない。
0185デフォルトの名無しさん
垢版 |
2020/01/10(金) 01:35:53.38ID:0q4Qxo1U
ジェネリクスの起源はC言語の配列型やポインタ型のような気がする
ポインタ型を取り入れるどころか逆に排斥するのが常識だった
たまたま常識を疑うことができたのがC++と関数型言語だっただけ
0189デフォルトの名無しさん
垢版 |
2020/01/10(金) 20:05:28.59ID:gdjTauNe
>>182
逆だろ。
rustのやろうとしてることを考えればライフタイム管理と参照の可変性制約に議論の余地はない。
他のどうでもいいところに力を入れてることの方が問題。
0191◆QZaw55cn4c
垢版 |
2020/01/11(土) 11:07:27.64ID:Mi8oZktw
>>185
多分趣旨は同一だと思いますが、私はC++ template がジェネリクスの起源だと
0193デフォルトの名無しさん
垢版 |
2020/01/11(土) 13:04:07.27ID:l/QLWHKH
Genericsの起源 → template
Genericsの起源 → enum
Genericsの起源 → マクロ
Genericsの起源 → キャスト
Genericsの起源 → struct
Genericsの起源 → union
Genericsの起源 → ポインタ
Genericsの起源 → レジスタ
0194デフォルトの名無しさん
垢版 |
2020/01/11(土) 13:42:11.23ID:C5APeypm
全ての始祖にして始まりの言語 ダークネスオブライト 神光雪花繚乱 ーCー

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



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

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

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

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

あとgenericsの起源の話をするならAdaちゃんのことも思い出してあげて下さい(小声)
0196デフォルトの名無しさん
垢版 |
2020/01/12(日) 02:59:36.74ID:eMSUjpmi
言っとくけどMITのJulia凄いんだから!バカにしたら許さないから!
0206デフォルトの名無しさん
垢版 |
2020/01/14(火) 13:56:29.79ID:06NyUtxI
旧世代「綿密な準備、計画、理解、Go、Rust、Swift、Kotlin、Typescript」
ニュータイプ「あっ(察し)」
0207デフォルトの名無しさん
垢版 |
2020/01/14(火) 18:52:16.13ID:xEAW1qCD
本屋に行くとswiftやkotlinの本がたくさん陳列してあって流行ってるのを感じる
0208デフォルトの名無しさん
垢版 |
2020/01/14(火) 20:52:15.46ID:NIc2ogis
まだ発展途上とはいえ、RustってC, C++の上位互換っていう認識でいたんだけどどうなの

ライブラリの充実度とかはまだまだだろうけど
0209デフォルトの名無しさん
垢版 |
2020/01/14(火) 21:23:10.59ID:JlIaLGxV
>>208
上位互換を目指してるというのは正しいけどまだ上位互換とは言えない
C/C++のほうがまだ多少は実効速度が上みたい
体感できるほどの差はもちろんないけど
0211デフォルトの名無しさん
垢版 |
2020/01/14(火) 21:53:54.59ID:CySpaDcH
言語の処理速度は      C > C++ > Rust
プロダクトの性能の傾向は Rust > C++ > C

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

一方Cで限界までチューニングすれば他は追いつけない
メンテ難易度は上がるがそれを扱えるメンバーと運用があれば問題無い
実例はLinuxカーネル
0212デフォルトの名無しさん
垢版 |
2020/01/14(火) 22:06:05.36ID:Y6z2uzMK
色々な言語が登場しても未だにCが生き残ってるのはとにかく速さだからね
Cを置き換えようとする次世代言語は速さでCに負けてたら結局置き換えられないよ
0213デフォルトの名無しさん
垢版 |
2020/01/14(火) 22:09:27.27ID:AAWN8rY8
Cが使われる理由は速さではなく自由度
書いたとおりに動くという当たり前のことができる言語は、特に新しい言語においてはほとんどない
0215デフォルトの名無しさん
垢版 |
2020/01/14(火) 22:43:28.59ID:ETa8CiFD
Rustは、Cには負けるけどC++には速度で勝った、みたいな記事を最近見たんだが
■ このスレッドは過去ログ倉庫に格納されています

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