次世代言語18 Go Rust Elixir Kotlin TypeScript
■ このスレッドは過去ログ倉庫に格納されています
スレタイ以外の言語もok
前スレ
次世代言語17 Go Rust Kotlin TypeScript Julia
https://mevius.5ch.net/test/read.cgi/tech/1567602619/ JuliaとElixirもまだ地歩を固められるかどうかさえ怪しいところだろう。
サーバーサイドなんてElixirよりGo/Rust/TypeScriptの方が獲りそうにも思うが。 フロントもバックも、全部TypeScriptでいいよ Elixirを持ち上げてるのは元Ruby信者が多い RubyはPHPに負けた言語だからな
思い返してみると言語の流行度をランク付けしたらいつも10位前後をフラフラしていただけで一度として覇権を握ったことはない
信者はPHPerが単細胞の無能で他の言語を覚えられないからRubyが主流にならなかっただけだと思ってるみたいだけど
ポストRubyのポジションはElixirだろうがそこまで価値のあるポジションとは思えない Elixirなんか実務で聞いたことねえわ
PHPはゴミ 次世代で差し当たって生き残るのが決まってるのはGo、Rust、Swift、Kotlin、TypeScriptの五大言語だけでしょ
この5つは大企業がバックについてて一定の信者コミュニティが形成されてるからもう揺るがない
ほかの言語はこれから競争
Pythonの遅さに対するヘイトでPythonブームがしぼむタイミングでどの言語がポストPythonに収まるかって戦いが注目だ
Rubyのまつもとゆきひろが言ってたけど結局言語自体の良し悪しだけじゃなくて有能なコミュニティが形成されるかどうかという要素が重要だからな
TensorFlowがGoに対応してる関係でAI界隈だとPythonからGoへの移行が多いけどJuliaやCrystalのラッパー作ってる人もいるからまだ他の言語にもチャンスある
ちなみにうちはすでにGo >>121
RubyはPythonの地位にあってもおかしくなかった
アカデミックな世界の人たちがPythonに流れたのが大きかった rubyが出た頃には既にpythonは十分人気があったわけで、流れたというより
pythonのシェアを奪えないまま自滅したという方が合ってる気がする。 >>123
研究者が使うフレームワークが殆どpytorch一色になったので、
tensorflowもどこまで安泰か分からん >>125
いや、一時期は間違いなくRubyはPythonよりも人気があったよ
日本に限らず世界でね
2000年代に入ってからSciPyとNumPyという科学計算ライブラリの決定版が出たことで一気にPythonの地位が上がった
それまでR言語とかに注目してた層が根こそぎPythonに飛びついて大逆転した
もしSciRubyやNumRubyだったらRubyが天下を取っていたはず PyTorchやTensorFlowがどうしてPythonなのかが全く分からん
あんな遅い言語で機械学習をやるメリットは何なの?
ディープラーニングは複雑な計算が必要だからこそ高速な言語でやらないとって思ってしまうのは俺がド素人だから? PythonではC等で書かれたライブラリを呼ぶだけで計算はしないから、遅くても問題ない どんな言語で書いてもCUDA等を呼び出すだけだから >>128
この分野ではライブラリ叩くのだけが役目で速さがいらないからこそPythonが生き残ったんだよ ruby好きの奴らなんてmatzも含めて絶対数値計算なんかやらんかっただろう。
そういうとこだよ。 客観的な数字がない以上どっちが人気があったかというのは水掛け論でしかないけど、
rubyが世界的に人気が出たと言えるのはRoR以降で、登場時期はNumpyとほぼ同じなんだよな。
仮にrubyの人気がpythonを上回ったことがあったとしても非常に短い期間に限られたと思われ。 >>128
pythonが実行速度が必要なところはcで書けばいいと割り切ってる中で
rubyは言語自体の速さをあげることに時間かけてた。
そういう見識のなさがrubyなんだよ。 68 名前:デフォルトの名無しさん[sage] 投稿日:2019/11/11(月) 08:41:18.73 ID:ugn4nfqU
炎上PJに巻き込まれて帰ってこれなくなってしまったのだろう
69 名前:デフォルトの名無しさん[sage] 投稿日:2020/01/03(金) 12:58:50.03 ID:f2V4CbYL
あけ おめこ とよろ
おまえら、この空白の2ヶ月間、何してたんだ? >>135
さすがに無知すぎるだろ
PythonもRubyも知らないなら無理すんなw >>137
やっぱrubyやってる輩って低レイヤーのことをまるでわかってないのな。
馬鹿丸出し。 pythonもpython自体の高速化はやってきてるでしょ
pypyみたいな変態的なものもあるし
むしろrubyの方が言語仕様的に高速化できる余地が少なくて停滞してた印象
yarvも遅れてやってきた感しかない
まぁ身もふたもないけど、つたない英語で日本人がリードするプロジェクトに
外人はあんまり寄り付いてこないのがrubyがいまいち盛り上がらなかった原因だと思うよ
RoRの波の時にいろいろ仕掛けておけば違った気がするんだけど >>140
日本でRubyが人気あるのは日本で誕生した言語(→日本語のドキュメントやコミュニティが充実)だからってのは確実にあるだろうし逆に考えたらアメリカ人は英語圏で誕生した言語を使うわな
Python開発者はオランダ人だけどアメリカで働いていた人だし >>140
結局遅くてもデフォルトのcpythonを使うわけだよ。
そこまでcpuバウンドなプログラムなんて早々ないし、あったらcで実装したライブラリを使う。
なんでも同じ言語だけで無理やり何とかしようってのはバカの発想だわ。
cをどれだけ呼びやすくするかに労力をかけたpythonにrubyは完全に負けたわけよ。 cというか共有ライブラリの呼び出しでそんな大きな違いあったっけ?
似たようなもんだったと思うけどな cで実装って言っても、cythonなら殆どpythonのように書けるわけで 旧世代言語で言えばC++、Java、Python、JavaScriptの4つが書ければ組み込みからウェブまで基本的に何でもできた
1つの言語で何とかしようとすれば何とかなるかもしれないが開発効率を考えると結局この4つくらいの言語が必要
速さのC++、汎用性のJava、書きやすさのPython、ウェブのJavaScript
最強の言語に統一しようとする試みは全部失敗に終わって適材適所で使い分けるのが結局最適解だったわけだ
次世代言語では汎用性と書きやすさを兼ね備えたGoがあるのでRust、Go、TypeScriptが必須三大言語になる wasmの展開次第ではまた統一の流れになるかもよ
今のところRustかGoかかな Ruby の主な設計思想は、C の拡張ライブラリを作りやすくする事!
今は、FFI
言語が流行るかどうかは、便利な拡張ライブラリの作りやすさで決まる。
VSCode がそう。
皆が作る、多くの拡張機能が大人気
R, matlab → Python → Julia
Ruby → Elixir
数十万もする、matlab を誰も使いたくない!
これが無料で使える、Pythonがコスト的に優秀だった!
ただ、文法が辛いから、Ruby風のdo 〜 end を採用した、Juliaへ流れたw juliaなんてインデックスが1はじまりな時点で終わってんだよ。 ruby信者はrubyの文法が好きみたいだけど
rustは文法もゴミだからね? あ、rubyをrustに間違えた。rustすまん… まぁほら、値を返す場合はセミコロンを付けちゃいかんとか、あの辺は真にゴミだ。 >>115
Dartは今一番来てる言語だろ
ちょうどFlutterのスター数がReact Nativeを超えたところだぞ
これで名実ともにクロスプラットフォーム開発のスタンダードがDartになった Rustのセミコロンは文の終端じゃなくて、「左オペランドを評価してその値を破棄し、右オペランドを評価してその値を返す演算子」だと理解すればスッキリする そんな独自ルール押し付けられても普通はくそだとしか思わんよ。 >>155
「式にセミコロンを付けたら文になる」
「文の評価値はunit」
「ブロックの値は含まれる最後の式(文)の値」
それぞれは筋が通ってなくもないけど、2番目のは
「文の値は含まれる最後の式の値」
にしても問題なかったんじゃないのかな。 なぜ
Go
Rust
TypeScriptが
旧世代5大言語を超越するのでしょうか? >>163
Go→めっちゃ書きやすい。少ない行数で何でも書けるので生産性爆上げ。実効速度はC/C++よりは遅いがJavaやPythonよりもずっと速いので何にでも使いやすい。文法が分かりやすいので入門用言語にも適している。オールマイティな次世代エース的存在で欠点がほぼない
Rust→C++と同レベルに速い唯一の言語。なおかつC++よりも文法が整理されている。C++と違ってメモリ安全性が確保されている。Goほどの書きやすさ・利便性はないがC++の後継としてシステムプログラミングに使えると考えられている
TypeScript→JavaScriptを大規模開発にも使えるように整備した言語。JSがウェブだけでなくアプリ開発にも使われるようになったという背景にマッチ。既存のJSコードという遺産をそのまま使えるのでデメリットなし
3言語ともにGoogleやMicrosoftが推しているので他企業も追随して移行している GoはAI関連のPythonからの移行組、組み込み系のCからの移行組、アプリ開発のJavaからの以降組と色々なところから支持されてるよな goはガベコレ付きのcってくらいだろ。それくらい機能が少ないから良い。 Goは機能が少ないから行数は長くなるな
ジェネリクスがまだなくて冗長になりやすい
良くも悪くも割り切ってる PythonやJavaは機能が多過ぎるからGoに移行すると言ってるように見えるが
多過ぎるという証拠がない GoがJavaよりずっと速いってことはない
ほぼ同程度 >>159
今日まで1200円(93%OFF)で買えるよ
現役シリコンバレーエンジニアが教える
Goで始めるスクラッチからのブロックチェーン開発入門
45レクチャー(5時間33分)
https://www.udemy.com/course/go-blockchain/ Rust in Blockchain
Bringing engineering insight and experience to blockchain technology.
https://rustinblockchain.org/ >>159
returnを省略できるから値を必ず返してしまう Goはそこそこ速くて文法もすっきりしてるから汎用性高い Goは機能も絞ってあるし文法も簡単だから初心者の入門用に最適だと思う
しかも当然Pythonより速いので実用性も高い
次世代では学校でGoを習ってプログラミングを始めて実務でもGoで書ける部分はそのままGoとなりそう 旧世代五大言語…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次第という側面もあるが dart2nativeのよってFlutter以外にもDartの使い道が GoはそもそものGoogle自身がほとんど使ってない AndroidはJavaScript、iOSもJavaScript
一方、サーバーは非効率の極み C#はMSの推奨言語である限り何が出てこようとVC++とともにMS環境下での第一選択肢であることは揺るがない
基本的にOSやハードウェアのベンダーが使えと言っているものと使うのが正しい 関数型言語の特性を少しずつ取り入れる動きがあるのは(それが良いかどうか別にして)ある程度共通の認識として持たれていて
その中でも型システムに関してRustはライフタイム管理と参照の可変性制約に議論の余地があるとはいえそれ以外は程々な落としどころになってると思うんだけどどうよ
つまりはtraitとかenumとかgenericsとかについてなんだけど てかemunの網羅性チェックとか普通に考えたら欲しくなると思うんだが
なぜC/C++/Java等の手続き型/オブジェクト指向言語では今まで取り入れられてなかったのかが謎 >>174
関数戻り値の型推論はされないんだから、関数の型がunitのときは型の不整合とみなさないとか
できると思うがなぁ。
その場合のデメリットって「特別扱いは一貫性に欠ける」というくらいしか思いつかない。 ジェネリクスの起源はC言語の配列型やポインタ型のような気がする
ポインタ型を取り入れるどころか逆に排斥するのが常識だった
たまたま常識を疑うことができたのがC++と関数型言語だっただけ >>182
逆だろ。
rustのやろうとしてることを考えればライフタイム管理と参照の可変性制約に議論の余地はない。
他のどうでもいいところに力を入れてることの方が問題。 力を入れるより力を抜く方が難しい戦闘民族もいるんだろう >>185
多分趣旨は同一だと思いますが、私はC++ template がジェネリクスの起源だと Genericsの起源 → template
Genericsの起源 → enum
Genericsの起源 → マクロ
Genericsの起源 → キャスト
Genericsの起源 → struct
Genericsの起源 → union
Genericsの起源 → ポインタ
Genericsの起源 → レジスタ 全ての始祖にして始まりの言語 ダークネスオブライト 神光雪花繚乱 ーCー
おまえはまだ、本当のCを
知
ら
な
い >>189
ごめんこれは私の書き方が悪かった
Rustのやろうとしてることからすれば議論の余地が無いのは間違いない
ただRustのやろうとしてること(つまりそれらを型システムに落とし込んで管理しようとすること)そのものには反対意見も見られるのでそのように書いた
(私はRustの方針で良いとは思っている)
それなりに一般人類が扱える程々な型システムの機能は言語の目的に依存しない範囲でどの程度かなって話をしたかった
型システムの程々が言語の目的に依存するのは分かった上でなので、それ無しに語る事なんてできないと言われたらはいとしか返せない
あと例にgenericsを書いたのは最近の言語でGoが少なくとも今は取り入れてないからだったんだけど、冒頭に関数型〜と書いてしまったがために >>185 みたいに起源の議論になってしまって申し訳ない
あとgenericsの起源の話をするならAdaちゃんのことも思い出してあげて下さい(小声) 言っとくけどMITのJulia凄いんだから!バカにしたら許さないから! juliaはクソだわ。推してるやつも数値計算まともに理解してないろ。 実数クラスは複素数クラスを継承していない
数値計算の闇は深い おまえらクラスにはセックスメソッドすら実装されてないよね じゃあ実装するから
LGBTをふまえたモデル化やってみて Go, Rust, Swift, Kotlin, Typescript
基本的にこれだけやっとけばいいわけか >>203
分野次第だろ
例えばiPhoneアプリ作らないならSwiftいらないし 〇〇だけやればいい
これを満たせるのはC++とJavascriptだけ 旧世代「綿密な準備、計画、理解、Go、Rust、Swift、Kotlin、Typescript」
ニュータイプ「あっ(察し)」 本屋に行くとswiftやkotlinの本がたくさん陳列してあって流行ってるのを感じる まだ発展途上とはいえ、RustってC, C++の上位互換っていう認識でいたんだけどどうなの
ライブラリの充実度とかはまだまだだろうけど >>208
上位互換を目指してるというのは正しいけどまだ上位互換とは言えない
C/C++のほうがまだ多少は実効速度が上みたい
体感できるほどの差はもちろんないけど Rustのほうが未来永劫遅いだろ
速くなる要素あるのか? 言語の処理速度は C > C++ > Rust
プロダクトの性能の傾向は Rust > C++ > C
理由は、コンパイラ時のチェック系の支援が大きいほど
プログラマが気を使う量が減って高度な高速化実装がしやすくなるため
実例はServo
一方Cで限界までチューニングすれば他は追いつけない
メンテ難易度は上がるがそれを扱えるメンバーと運用があれば問題無い
実例はLinuxカーネル 色々な言語が登場しても未だにCが生き残ってるのはとにかく速さだからね
Cを置き換えようとする次世代言語は速さでCに負けてたら結局置き換えられないよ Cが使われる理由は速さではなく自由度
書いたとおりに動くという当たり前のことができる言語は、特に新しい言語においてはほとんどない >>211
と思うじゃん?
実際はコンパイル時間が鬱陶しすぎてクソな通し方するようになる。 Rustは、Cには負けるけどC++には速度で勝った、みたいな記事を最近見たんだが ■ このスレッドは過去ログ倉庫に格納されています