次世代言語18 Go Rust Elixir Kotlin TypeScript
■ このスレッドは過去ログ倉庫に格納されています
スレタイ以外の言語もok
前スレ
次世代言語17 Go Rust Kotlin TypeScript Julia
https://mevius.5ch.net/test/read.cgi/tech/1567602619/ 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++には速度で勝った、みたいな記事を最近見たんだが C++のコンパイル時計算のあれこれを見ていると証明が必須じゃないCoqかよみたいな気持ちになるし人類にとってはできることが多すぎる
コンパイル時間のあれこれを言うならC++こそ人の事言えねぇよ まあそうなんだがc++を置き換えると言いつつ
c++の問題を後追いしてるところはアホとしか言いようないなと思ってるってことだわ。 C++を越えようとすればするほどC++に近づき、最終的にC++そのものになっていく 最近はセキュリティ要件厳しいから
静的解析パスしないとリリースできなかったりするんだけど
とりあえず静的解析を黙らせるために過剰にvalidity checkが入れられてると思う
そういう無駄をきれいに省けたらc、c++を上回る可能性はあるかもしれない でもボクシングとかで実行時に負担掛ける動的多相を導入しない限りコンパイル時間は大きくは変化しないでしょという気持ち(型渡しと型消去)
別にRustだって依存型(定理証明系)とか高階多相(Scalaとか)でコンパイル時間増えてるわけじゃないんだし 高尚な低速言語供が売りとしてる機能を組上げる部品をゲロベチョっとコーダー側へぶちまけ
オマエ自身が工夫してどうにかしろな仕組みを提供してんのがrustだからのう
関数型へ傾いてるとはいえコンパイル時間がどうこう言うのにrustの例は不適切かな まともにやってりゃそんなクソコードにならんわ。
どんなコードだよそれ。 新言語登場
Project Verona
https://github.com/microsoft/verona
> Research programming language for concurrent ownership どんな言語がでても馬鹿がいじれば糞化するという現実を受け入れさせるフレームワークが必要。 劣化前のソースコードと文書は残っている
ただし過去に戻ったら他の人間とは仲良くできない
その代わりソースコード自体がAIみたいなもの
人間をクビにしてAIを使うとはそういうことよ
人間がいじればAIではなくなる , -――- 、
/ ヽ
| ノ ー | それRutstでよくねえ?
|(・) (・) | だって、それRutstでよくねえ?
| ( |
ヽ O 人
>ー-― ´  ̄ ̄\
⊂ニニ ̄ ̄ ̄ヽ / |
くメ) _ノ | | | | |
(/ | | / | | |
| |/ /| | |
| ト / | | |
ヽ__/ | | | 「Rust言語」をWindowsプロジェクトに適用してみた、Microsoftの事例
https://www.atmarkit.co.jp/ait/articles/1911/12/news050.html
欲しい機能がまだまだある
Rustは比較的歴史が浅いため、Microsoft社内の開発に使うことを考えると、よく使う言語機能であっても欠けているものがあるという。
その最たるものは、安全な変換(“プレーンな古いデータ”型をrawバイトと間で相互に安全にキャストする)やCスタイルの共用体の安全なサポート、誤りを許容する割り当て(割り当ての失敗でパニックに陥らず、所定の手順で停止する)だ。
Cargoには優れた単体テスト機能が組み込まれているため、開発者が本番コードと同じファイルにユニットテストを記述して、開発中に簡単に実行することができる。だが、Microsoft社内の大規模で複雑なビルドシステムでは、Cargoをビルドツールとして利用できない。 >>226
Microsoftとしては未だにRustが本命ではあるが自前でもっといいのが作れないか研究してみるって趣旨みたいだな
Q.
Does Project Verona mean Microsoft is no longer using C++/C#/Rust/...?
A.
Project Verona is a research project that is not affecting engineering choices in the company.
The Project Verona team is connected to the people using all the major languages at the company, and want to learn from their experience, so we can research the problems that matter.
https://github.com/microsoft/verona/blob/master/docs/faq.md , -――- 、
/ ヽ
| ノ ー | それRutstにコントリビューチでよくねえ?
|(・) (・) |
| ( |
ヽ O 人
>ー-― ´  ̄ ̄\
⊂ニニ ̄ ̄ ̄ヽ / |
くメ) _ノ | | | | |
(/ | | / | | |
| |/ /| | |
| ト / | | |
ヽ__/ | | | Microsoftっていっつも新しい言語生み出してんな
ちょっと前に発表してたBosqueとかどうなったのか続報全然ないけどもう諦めたのか?
遡ればF#とかも期待したほど流行らなかったしもっと遡ればVisual Basicとか散々ゴリ押ししたけど粗大ゴミになってる
Windowsというプラットフォームにあぐらをかいてるわけじゃないだろうがまともに使えるものを生み出す能力あるのか? >>237
C#「……」
TypeScript「……」 javascriptを静的型付けで縛るなんて俺の方が先に考えてたから C#はC++を拡張してJavaにしただけ
TypeScriptはJavaScriptを拡張して静的型付けにしただけ
Microsoftのオリジナルではないからこそまともなものになった その基準で行くと世の中でオリジナル言語と言えるのはどれよ C#のモデルはDelphiであってC++でもJavaでもない >>242
今回新しく作ったVeronaはRustを参考にしてるけどかなりオリジナリティ高そうな感じ https://www.zdnet.com/article/microsoft-opens-up-rust-inspired-project-verona-programming-language-on-github/
>Also, Rust isn't the only language that's inspiring Project Verona,
>which also borrows concepts from Cyclone, a "safe dialect of C"
>and Pony, which has key contributors from Microsoft Research.
久しぶりにPonyの話が出てる
Pony大勝利やん >>244
ヘルスバーグさんめっちゃC++の話してるけど
https://www.codebrary.com/2018/03/deep-inside-c-sharp-interview-with.html
> is that we tried to stay much closer to C++ in our design.
> C# borrows most of its operators, keywords, and statements directly from C++. 相変わらずvlangのメモリ管理がゴミって話だろ?
何を勘違いしたんだ Java# も F# も C# も Rust も捨てた結果が Verona ωωω >>237
MSが出したやつはいつもダサいですね
言語も
製品も > Go→めっちゃ書きやすい。少ない行数で何でも書ける
お、おう(笑)
エアプ勢はレガシー言語触ってろ >>248 日本語訳
マイクロソフト、「Rust」に基づくプログラミング言語プロジェクト「Project Verona」がGitHubに
https://japan.zdnet.com/article/35148191/ Veronaが有能だった場合Rustが消える可能性も Rustに挑んで心が折れた
Veronaとやら頼むぞ・・・ Rustは名前が悪すぎる。車輪のベアリングが錆びついてギシギシで滑らかに回らないイメージ。 rustでYouTube検索したらゲーム動画ばっかやった >>271-272
名は体を表すと言う。プログラミングの命名でも、名が体を表すのが良いとされる。
だから、言語名に体を見出そうとするのは自然な感覚。ましてRustのアイコンは
歯車だから、労力が無駄にかかり動作が遅いと思われるのは当然。さらに、Rustは
米国生まれなので、かつては栄えていたが今は没落した北部の重工業地帯を表す
rust beltも連想される。
開発者はこんな変な名前をなぜ選んだのか。真価を分かる人だけが使えば良いという
通好みの言語にしたかったのか。 ■ このスレッドは過去ログ倉庫に格納されています