X

次世代言語26 TypeScript Swift Go Kotlin Nim

■ このスレッドは過去ログ倉庫に格納されています
2022/06/21(火) 09:27:46.30ID:5vOFCGpG
スレタイ(順番はRedMonk準拠)以外の言語もok

※ Rustは現世代最強言語なので除外します

前スレ

次世代言語25 TypeScript Swift Go Kotlin Rust Nim
https://mevius.5ch.net/test/read.cgi/tech/1650185555/
2022/06/27(月) 22:04:16.27ID:6JaS2WC8
>>59
全然関係ない
AWS Lambdaでの実行環境の話
2022/06/28(火) 14:36:14.98ID:1wirEm3f
Rust is coming to Linux, says Torvalds
https://cloud7.news/linux/rust-is-coming-to-linux-says-torvalds/

Torvalds also announced some changes he plans to implement into Linux soon.
Most significantly, the open-source programming language, Rust might be included in the next release. Torvalds stated that Rust will be introduced in a limited way.
2022/06/28(火) 15:53:32.16ID:L5XiZwek
>>61
きたーーーーーーーーーーー
6353
垢版 |
2022/06/29(水) 18:00:11.30ID:zCehF1Jn
KENTA の天敵・モローも、遂にRuby on Rails のキャリア相談までやり出したw

2020年には、Railsはオワコンと言っていたが、
Railsの仕事が増えたため、急きょRailsに鞍替えw
主張が、KENTAと全く同じになったw

【2022年版】Ruby on Railsの将来性
www.youtube.com/watch?v=YWKxh3KoNsY

スタートアップ企業の第一選択肢で、リモートワークも多い。
給料450〜500万円、業務委託は月50〜60万円

データベース設計、React, TypeScript も勉強すると良い

キャリアパスは、
Rails → Go, SRE、エンジニアリング・マネージャー
6453
垢版 |
2022/06/29(水) 18:08:23.13ID:zCehF1Jn
今までのモローの主張は、

KENTA がRuby on Rails サロンをやる目的は、
ポートフォリオを作るための学習期間が長いので、
サロンに長期間入ってもらって、KENTAがもうかるので、Railsを勧めている

Railsはオワコンなので、サロンに入っても、仕事は減っていく一方と言ってたのに、
今じゃ、KENTAと全く同じ事を言ってるw
2022/06/29(水) 18:15:54.85ID:5n1aZHdk
Linux開発にRustで掛かれたコードが解禁された

しかし
Cで書かれたものを置き換えることはしない
APIを変えることはしない
2022/06/29(水) 22:16:42.10ID:a+duSEZX
相変わらず三流ユーチューバーを引き合いに出すやついるのな
2022/07/01(金) 21:34:11.78ID:12jEq8hC
>>65
どこでも同じシンプルな結論が出てるな
・既存のものを書き換えるのは無意味
・新たに作るものはRust一択
2022/07/01(金) 21:52:53.35ID:JFBfOGuK
あまりにも既存コードが膨大だからね
長らくあらゆる環境で機能してたコードをリプレイスするほどまでのメリットはないだろう

もし仮にそこまでメリットあるんだったら、即刻世界中からC/C++のコードを絶滅させてほしいわ
69デフォルトの名無しさん
垢版 |
2022/07/02(土) 07:56:01.10ID:lUSnA9b+
誰もリプレイスするべき、なんて言ってないよ
2022/07/02(土) 09:01:16.19ID:hTSqv50e
そうやってCOBOLのコードが維持それ続けてるんだよなぁ
2022/07/14(木) 20:22:39.85ID:ZkG98XYT
COBOLを舐めてはいけない
そもそも基本的に動的アロケーションをしないから、メモリ管理に関してはRustなんかに比べても信頼性が無茶苦茶高い
72デフォルトの名無しさん
垢版 |
2022/07/15(金) 08:41:12.46ID:LdUI0ldE
>>71
でDATA DIVISIONが半分を占める悪夢のようなコードが蔓延するんですね
2022/07/16(土) 02:22:35.47ID:wu6dkzng
BunはZigで実装してるのか
なかなか尖ってていいじゃないの
https://zenn.dev/k41531/articles/dbedb88f06898a
2022/07/16(土) 07:08:19.77ID:vxjrsiXW
rustじゃ駄目だったのかなあ
2022/07/16(土) 07:25:23.59ID:6ZY7uA4U
多様性があった方が良いんじゃないの?
2022/07/16(土) 12:38:54.49ID:730D9OZt
Zigなかなかおもしろいね
エラーハンドリングがSwift風で好感が持てた
2022/07/17(日) 00:52:05.19ID:vN6ol9NM
Zigやるわ
2022/07/17(日) 01:03:33.43ID:KV4hrNVX
Rustの終わりの始まり
2022/07/17(日) 01:25:06.31ID:0s/4JmSD
Rustは安全性と高速性と書きやすさの両立を実現した
ZigはC++と同じで安全性は保証しない
Rustに対しては相対的にZigのメリットは無い
C/C++で書くよりはZigの方がおすすめではある
2022/07/17(日) 02:03:08.49ID:vKjp9uxK
Zenはどう?
2022/07/17(日) 02:05:03.30ID:vN6ol9NM
Zig軽く見たけどメモリ管理自前なのがキツいな
ここまでむき出しにするかー
2022/07/17(日) 02:45:01.72ID:Zp8ItUSG
zigはそのままCのコンパイラになってかつクロスコンパイルが簡単ってのが良いね
既存のCプロジェクトのコンパイラをzigに置き換えるだけでもメリットがあるし、そうなると徐々にソースもzigに置き換えたくなってきそう
2022/07/17(日) 03:42:19.20ID:Ur3sSwLC
>>80
だいぶ前にZigのパクリって言われてたな
今はどうなんだろ
2022/07/17(日) 09:19:07.01ID:dwElkP1X
>>74
rust実装ならdenoがあるし
nodejs代替ならdenoが本命だし
2022/07/17(日) 11:37:18.91ID:bCNgPTt6
流行るかどうかは別にしてZigはスレタイに相応しい言語だな

今のスレタイはNimを除いて全て現世代の言語になっちゃったから
2022/07/17(日) 11:47:40.57ID:vKjp9uxK
TypeScript、Swift、Go、Kotlinはとっくに普通の言語で、
これから新規プロジェクトやるならその辺の言語しか触らなくてもおかしくないね、ってレベルでもう一般的
87デフォルトの名無しさん
垢版 |
2022/07/17(日) 11:50:14.03ID:+NC/ggVn
>>1
typescript swift go kotlin は十分メジャーだから次スレからは外すように
2022/07/17(日) 14:04:28.95ID:AoTZ8TcP
まだ普及してなくて気になっているのはZig, Nim, V, Valeくらいかな
2022/07/17(日) 14:14:11.96ID:vN6ol9NM
Zig触ってるとRustの所有権ってめちゃくちゃ優れた概念だったんだなと実感できるね
2022/07/17(日) 15:07:20.14ID:SLeX0Vy/
従来のプログラミング言語と違って革命的に新たな概念をもたらした次世代言語はRustだと思うのですが
どうしてスレタイに入れないのですか?
91デフォルトの名無しさん
垢版 |
2022/07/17(日) 15:35:25.31ID:AlxrTtXq
次世代言語ではなくすでに現世代の覇権言語だから
92デフォルトの名無しさん
垢版 |
2022/07/17(日) 16:35:29.89ID:WgvrEhxC
C++0xのパクリだからでは?
2022/07/17(日) 17:26:25.41ID:0s/4JmSD
安全性の保証を実現したC並みの高速な言語はRustしかない
94デフォルトの名無しさん
垢版 |
2022/07/17(日) 17:42:03.18ID:3i/TeYSj
もし今までC/C++でシステム開発をしてきた会社で
モダンなシステムプログラミング言語が試用されるとしたら
それはRustではなくZigもしくはNimだろう
2022/07/17(日) 18:00:29.39ID:SLeX0Vy/
>>94
それらは本質的にはC/C++と変わらないから採用するところはほとんど無いと思われます
もしその分野で新たな言語を採用するとしたら採用に意味のあるRustとなるでしょう
2022/07/17(日) 18:36:18.24ID:occ/cz9x
数名のプロジェクトで、納期も緩ければあるかもね。
2022/07/17(日) 18:51:09.61ID:Zp8ItUSG
>>95
CとC++の欠点は安全性だけだと思ってる?
2022/07/17(日) 18:56:55.96ID:+DL/3zgJ
NimはともかくZigはまだ1.0でもないから会社で使える感じはしないけどな
将来的にCの代替としては期待している
99デフォルトの名無しさん
垢版 |
2022/07/17(日) 19:06:00.51ID:WgvrEhxC
そもそもRustの利点と宣伝されてるものって、C++20のコンセプトを簡易的に実装したものでは?
2022/07/17(日) 19:13:13.63ID:Ur3sSwLC
Rustの話しかしねーなお前ら
2022/07/17(日) 19:48:29.77ID:CH5pcs5m
const std = @import("std");
pub fn main() !void {
const stdout = std.io.getStdOut().writer(); ←ここすこ
try stdout.print("Hello, {s}!\n", .{"world"});
}
writerを変数に取れるとなんか安心する
Rustとかだといきなりマクロでprint!()だしモヤる
2022/07/17(日) 21:24:39.01ID:D6jSpq7E
Rustでもこんな感じで書いてもいいのよ

use std::io::{self, Write};
fn main() {
let mut stdout = io::stdout().lock();
stdout.write_all(b"hello world").unwrap();
}
2022/07/17(日) 21:44:39.47ID:PMMdo41Y
>>101
(1) Cのprintfと同じ機能がRustのprint!であり分かりやすく使いやすい
(2) Rustでも色々な指定は可能
(3) プログラミング言語毎に様々な書き方がなされている中では些細な話
2022/07/17(日) 22:16:39.96ID:PMMdo41Y
>>102
そこは>>101の例に合わせてformat指定

let mut stdout = std::io::stdout().lock();
write!(stdout, "Hello, {}!\n", "world")?;
2022/07/17(日) 22:23:33.10ID:Zp8ItUSG
>>101
これってフォーマット指示と引数があっているかのチェックはいつ行われるの?
2022/07/17(日) 22:26:33.06ID:SZhCYswt
Zigだけどやっぱスコープ抜けた時に一斉に不要なメモリ解放する機構ぐらいは欲しいなあ
そういうのないよね?

Obj-Cにおけるautoreleasepoolとかv8におけるHandleScopeみたいなやつ
2022/07/17(日) 22:33:23.76ID:CH5pcs5m
>>102
ありがとうございます

import java.io.*;
class Ideone {
public static void main (String[] args) {
final PrintStream out = (new java.util.Random()).nextBoolean() ? System.out : System.err;
out.printf("Hello, %s!\n", "world");
}
}
JavaのIOまわりはすこ
2022/07/18(月) 00:06:45.58ID:KMiFC5Pb
>>87
俺的には最初のリリースから10年経っているのはもう次世代とは言えない
って感じなんだよな。

>>96
数名でも初心者に毛が生えた程度のレベルの奴(どかた)でも良いプロジェクトじゃないと駄目だろ
メジャーなC++ですら日本ではスキルのある奴がそろわないんだからな

>>99
逆じゃないのか
Rustの制約をC++でも簡易で良いから欲しいって感じでC++20でようやくコンセプトとして導入じゃないのか
ジェネリクスには制約は必須なのにC++では長い間導入されていなかったからな
2022/07/18(月) 00:50:41.17ID:u6hhGzsh
Zigの特徴はCよりも未定義動作を増やすことでコンパイラによる最適化を過激にできて場合によってはCよりも高速になることを狙う点
つまり未定義動作を無くすことで安全と高速を両立させるRustとは真逆の戦略を採っていること
2022/07/18(月) 01:42:15.77ID:S/imfak8
>>109
UBの種類はさすがにCより少ないよ
2022/07/18(月) 06:06:03.85ID:4eOAm5LE
>>109
お前、未定義動作の意味わかってないだろ...
2022/07/18(月) 06:17:28.08ID:u6hhGzsh
未定義動作によりコンパイラが最適化を進められる話
https://cpplover.blogspot.com/2014/06/old-new-thing.html
2022/07/18(月) 07:01:28.61ID:ssl6Co9E
マジキチかよw
114デフォルトの名無しさん
垢版 |
2022/07/18(月) 08:19:25.09ID:mVdITidT
Rust信者ってこんなに低脳なん?w
ヤバっ...
2022/07/18(月) 11:04:54.36ID:5guVnF2o
てかcにもdefer入るしそれで良くね?
116デフォルトの名無しさん
垢版 |
2022/07/18(月) 11:21:45.49ID:1omE+gQa
そもそもC/C++がまともに使えない低能のための言語がRustですし
117デフォルトの名無しさん
垢版 |
2022/07/18(月) 11:36:06.98ID:biPIwclR
>>95
zigはそう言えなくもないがnimはちゃうやろ。少しはググれよ。
ただまぁ、c/c++からの移行ではrust一強な感はある。
118デフォルトの名無しさん
垢版 |
2022/07/18(月) 11:40:31.18ID:biPIwclR
>>115
決定したの?
2022/07/18(月) 15:04:52.06ID:n//xSWhh
僕は職業プログラマーじゃないんで
新しいBASICたるswiftとswift playgroundでいいです。
ちょっと数学的解析するのに使ったらすげぇ楽だこれ
ちにゃ〜
2022/07/18(月) 16:31:30.05ID:o05Sk4F2
>>119
Mathematicaとかmaxmaとか使ったほうがいいんじゃない
2022/07/18(月) 23:29:01.81ID:V4/YV6GP
>>108
ジェネリクスとRustのトレイトによる制約の相性の良さは感動した
Rustはよく考えられて設計されていると
2022/07/19(火) 00:44:59.22ID:gapBBEtz
よく考えて設計したがためにtraitにasync fnを定義するためにGATsが必要で
コンパイラにSATソルバーを入れる必要が出てきてたりして大変そう
2022/07/19(火) 09:36:36.78ID:wQVGctip
タイトルにRustが無いのに、こいつらは文字も読めなければ知性すらない。そりゃ嫌われるわな
124デフォルトの名無しさん
垢版 |
2022/07/19(火) 22:42:59.43ID:MhwTnkaY
比較としてrustが出るならいいが、単独で出されると何だかなぁ感があるよな。
125デフォルトの名無しさん
垢版 |
2022/07/20(水) 01:23:22.22ID:x6yfnsIC
Google?の新言語
https://github.com/carbon-language/carbon-lang
2022/07/20(水) 01:33:59.92ID:xi/WqfXE
>>125
C++から移行しやすい後継言語ということか
Rustを参考にライフタイムも検討中みたい

C++の既存コードって膨大だし、本当にシームレスにC++から移行できるなら有用そう
2022/07/20(水) 01:40:05.72ID:nOwUi7j2
>>122
GATsがnightlyで使えるようなので試してみたが非常に強力だな
Rustに欠けていた土台部分の穴を埋めて様々な機能の大きな基盤となる感じだ

>>125
画期的なものを期待して見たら単なるAltC++でズッコケた
128デフォルトの名無しさん
垢版 |
2022/07/20(水) 10:38:59.85ID:+8MBpHfA
>>125
なんでCarbonとかにするかなぁ
Macのやつと間違えるやん
2022/07/20(水) 13:53:08.57ID:QduY8YNs
名前は置いておいてついに決定版の言語が出たか
Rustの次の言語だなこれは
2022/07/20(水) 14:18:06.41ID:ThH+Z+BW
見たところZigのC++版ってとこかな
2022/07/20(水) 14:18:06.52ID:GOFKDz27
Rsutは死産だったな
2022/07/20(水) 14:36:18.32ID:CC/ADkRB
Nim言語ならC++の関数だけでなくテンレート関数/クラスを呼び出せる機能があり、std::vectorやstd::stringを使うことも可能。
compileプラグマを使えばC++のコードをコンパイルしてリンクできる。
emitプラグマ使えばNimのコードの中にC++コードを入れることができる。
Nim言語はC++言語を生成してからgcc/clang/vcc等のC++コンパイラを呼び出して実行ファイルを生成するからC++と簡単に連帯できる。
133デフォルトの名無しさん
垢版 |
2022/07/20(水) 15:42:59.72ID:qJwz0nM8
Nimはもっと評価されて良いと思う
2022/07/20(水) 16:04:11.13ID:QduY8YNs
Goはオワコンということでよろしいか?
2022/07/20(水) 16:15:14.40ID:LSK66KxM
なんでセミコロンありなの?
2022/07/20(水) 17:02:44.97ID:ThH+Z+BW
開発者の趣味
2022/07/20(水) 18:42:51.78ID:5UvTR+16
GC言語 GCによる自動メモリ解放
Rust 即時の自動メモリ解放
C/C++/Carbon(現在0.1) 自動メモリ解放ではない
2022/07/20(水) 19:19:34.59ID:XnEgORKH
>>137
Rustはスタックに積んでいる&生ポインタが無いから自動回収されるだけ。c/c++と一緒。
そんなことよりもスタック重視で基本は何でもスタックということを強調したほうがRustらしさの説明になるだろ。
2022/07/20(水) 20:40:05.79ID:xdIX6xM1
Rustはあらゆる面で安全と高速を両立する抽象化を実現した言語
Carbonのドキュメントを見ると目標はそこでなくRustの領分に入って来ていないでしょう
2022/07/20(水) 20:43:23.04ID:CC/ADkRB
ほとんどのシステムプログラミング言語と呼ばれるものは変数がスタックに確保されるかヒープに確保するかはコントロールできるはず。
ただし可変長な配列や文字列型はヒープにデータを格納される。
違いはヒープに変数を確保したときに手動で解放する手法、スコープ抜けたら解放する手法、参照カウンタが0になったら解放する手法、GCを使う手法などがあるところ。(valeのgenerational referencesというのもあるけど)
Nim言語でもrefがついてないobjectはスタックに置かれるしRustでもBoxやRc使えばヒープに確保されるしC++でもscoped_ptr使えば参照カウンタでヒープが管理される。
基本的に変数はスタックに確保して、どうしても必要であれば(一つのオブジェクトを複数の変数から参照したい、OOPしたいなど)ヒープを確保するという感じの書き方になると思うけど。
2022/07/20(水) 20:52:32.44ID:5UvTR+16
Rustでは自動的に安全に即座にメモリ解放される
ここが重要なポイント
だからRustは高速と安全を両立させることができている
それに加えてRustではメモリ競合なども完全に防止する
2022/07/20(水) 21:03:41.80ID:5UvTR+16
そしてCarbonの目標文書を読んでもその目標は書かれていない
つまりRustの本質と競合する言語ではない
2022/07/21(木) 00:23:47.84ID:F7Gtvv1S
変数をヒープに確保するという言い方はなんか気持ち悪いな
2022/07/21(木) 00:34:40.13ID:MOkaWH3B
結局CarbonはC++の変種に過ぎないのか
新たなプロジェクトではRustを利用する流れは変わりそうにないな
Carbon採用の動機や利点が全くない
2022/07/21(木) 00:49:33.21ID:JPxznSjw
Googleが推してるのではなくGoogle社員のプロジェクトやからね
2022/07/21(木) 00:50:32.86ID:mCQN4Yoj
なんでそんな必死なん?
2022/07/21(木) 01:20:47.87ID:F7Gtvv1S
将来的にはcarbon freeにしたいという自虐ネタを込めた命名
2022/07/21(木) 01:25:08.23ID:qcok3Xr6
人によりけりだけど、一つのプログラミング言語を学習してそれをずっと使いつづけたい、他の言語の勉強したくないという人は多い。
Rustは比較的学習コストが高め。
もし他のプログラミング言語がメジャーになったりもっと優れたプログラミング言語が現れると苦労してRustを勉強した努力が無駄になってしまう。
だから新しい言語の話題がでるとRustを苦労して勉強した努力が無駄になってしまうという恐怖感が生まれて必死に否定するんじゃないかと。

異なるプログラミング言語間でも似た所はあるし、新しい言語を学ぶときにRust言語を学んだ経験が全く無駄になることはないだろうと思うけど。
2022/07/21(木) 01:25:42.94ID:nOpNTAAx
Carbonでオブジェクトをヒープに確保するのどうやるの?
なんかよーわからん
ドキュメントがなさすぎる
流石にまだこれを使うのは難しいな
2022/07/21(木) 01:34:26.10ID:nOpNTAAx
Rustの欠点として可変参照の扱いがC/C++互換をかなり難しくしてるんだよな
既存プロジェクトとのinteropにおいては無視できないケースが多い
特にGoogleなどの大企業は
その結果生まれたのがCarbon
2022/07/21(木) 01:56:23.59ID:F7Gtvv1S
Carbon本家もRustが使えるならRustを使えと言っている
でかいC++プロジェクト抱えてる人が使うものだよね
https://github.com/carbon-language/carbon-lang/blob/trunk/docs/project/faq.md#why-not-rust
2022/07/21(木) 02:05:12.80ID:hbmQrHo+
>>148
Rustが出現して以来これだけ時間が経過しても
Rustが実現した『高速と安全の両立』を満たす他の言語が出てこなかった
その結果が大手IT各社による共同でのRustへの支援表明とRust Foundation設立
そしてC++を拒否していたLinux開発陣営までもがRust採用発表
つまり既にこの業界では雌雄が決している
2022/07/21(木) 02:06:50.27ID:hbmQrHo+
>>148
次に学習コストが高いといっても
他との大きな違いは所有権とライフタイムだけでありその概念は一日あれば誰でも理解できる
そして後は具体的にコードを書いて身につけてくのも他の概念と同じ
さらにRustが実現した『高速と安全の両立』のためには所有権とライフタイムによるのが最も適切とわかってきた
つまりRust以外に両立を満たす言語が出てきても学習必須の概念となる
同時にそれは画期的な発明がなされない限りRustの二番煎じの言語しか出現しないことを意味する
2022/07/21(木) 02:13:15.45ID:hbmQrHo+
>>150
データ競合安全性に関しては誰が考えても可変参照の不可変参照との区別が必要となる
むしろその区別をはっきりさせてこなかったために従来の言語はデータ競合の入りうる隙きを許してきた
過渡的には既存の安全でないものと組み合わせる時に扱いが大変だとしても
最終的には可能な限り全て安全なもので組み立てていくことになろう
2022/07/21(木) 02:17:23.88ID:F7Gtvv1S
>>148
現状Rustが初めての言語って人は少ないから
最初に学んだ言語を使い続ける人はrustユーザーの中ではかなり少数派なのでは
2022/07/21(木) 02:41:33.10ID:SY914jbi
>>142
> Rustの本質と競合する言語ではない
>>152
> この業界ではすでに雌雄が決している

どっちやねん
2022/07/21(木) 04:57:34.89ID:tF9h1cCP
ifの条件のとこ括弧必要なのかよ!
2022/07/21(木) 05:28:59.67ID:aDWah/z9
>>156
Rustが実現してる安全と高速性の両立をCarbonが提供するわけではないみたいだから競合しないね
CarbonのFAQ >>151 にもRustが使えるならばRustを使った方が良いと書かれているね
だから雌雄は決していると言っても過言ではないかも
159デフォルトの名無しさん
垢版 |
2022/07/21(木) 06:11:50.65ID:EDO+eFgH
恐らくCarbonはRustのいいところだけを抽出した感じだな
CarbonのほうがC++やTypeScriptに近いのでRustよりも馴染むだろう
Carbon派とRust派で分かれそうだ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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