次世代言語27 TypeScript Swift Go Kotlin Rust Nim

レス数が950を超えています。1000を超えると書き込みができなくなります。
2022/08/05(金) 08:26:38.87ID:TpiqaUBm
スレタイ以外の言語もok

前スレ
https://mevius.5ch.net/test/read.cgi/tech/1655771266/
2022/08/27(土) 23:38:25.67ID:WqKrPeWc
安全なメモリ管理ってw
単に関数でnewしたものを保存してスコープが切れたら解放するだけでしょw
それC++でFile file;のように宣言したのと概ね同じなんじゃね?w
2022/08/27(土) 23:43:33.94ID:sUJYl6Ez
Rustはオワコンだからあんま使いたくないな
2022/08/27(土) 23:45:55.57ID:UglcSwzZ
>>882
まずC++がメモリ管理バグを生産し続けている仕組みを学習すべきだな
それまでこのスレに出入り禁止
2022/08/28(日) 00:56:35.98ID:7IFudYOE
C++にはtemplate反対派もいるから
バッファ<T>の代わりにtemplateを使わないやつを再発明することで
オーバーランも再発し続ける
2022/08/28(日) 05:26:11.72ID:qfec6UU9
>>881
Rustの解説にもある通りRAIIがベースで、自動変数の応用例だけどな。

C++は元々cをコンパイルできるという大原則があって、その原則からスマートポインタ強制とかは行っていない。Rustはそのあたりのしがらみを捨てているんだからああなるだろ。
RustもC++の複雑さに加えてHaskellの難しさも取り込んでいるから、絶壁の学習曲線問題は悪化している。置き換えが進むのはc/c++の一部の領域のみで、Javaの領域とか食えないと思うわ。
2022/08/28(日) 06:06:08.65ID:yYM00GDu
>>886
その件でRAIIや自動変数と言い出してる時点で把握不足
それは以下の非常に大雑把に分けた3段階のうちの最初の(1)の部分でしかない

(1) RAIIとデストラクタ
(2) 所有権とその移動
(3) 借用とライフタイム

>>882も(1)止まり
>>880は(2)止まり
(1)と(2)だけではダングリングポインタの発生を防げない
2022/08/28(日) 07:28:26.48ID:/BN7SwZG
>>886
Rustの難しさがC++の難しさを引き継いでいるのかは疑問に少し疑問だし、Haskellの難しさに至っては全く受け継いでないと思うぞ
型に対する要求は小さいし、関数が純粋であることも求めてないし、遅延評価をベースにしてもいない
2022/08/28(日) 10:48:45.36ID:7IFudYOE
サブスクやリボ払いじゃないんだから
よく似た難しさに10回出くわしたら1回あたりのコストは1/10になるんだよ

まあそうなると「コスト」とは何かを定義するのが極めて困難になるんだけど
2022/08/28(日) 12:11:47.01ID:kDu69pxs
RustやC++やHaskellの難しいポイントってそれぞれ具体的にどういうところを指してるの?
単に難しさと言われても人によってイメージするもの違うのでは
2022/08/28(日) 12:52:57.69ID:XrBOFvee
Haskellの難しさは対象ドメインの一般的理解よりも一段二段高い抽象度を意識したプログラミングが必要なところ
2022/08/28(日) 13:12:40.64ID:7IFudYOE
Lisp世代とErlang世代の間に暗黒時代がある
モナドと型推論のプロトタイプもその時代にある
検索しても多分辿り着けないのは検索エンジンが原因でしょ
2022/08/28(日) 13:38:45.23ID:eQVF2PFY
トレイトとライフタイムが難しい
2022/08/28(日) 14:28:30.61ID:5fPmE595
>>893
トレイトはシンプルで分かりやすいけど
クラスが非常に難しい

例えば複数の型に共通する機能性質とメソッド群を用意したいことはプログラミングでよく発生する場合
トレイトだと複数の型々に関係なく独立してそのまま用意して各型に実装するだけだけでいいけど

クラスだと継承でやるにはその型自身に継承しなきゃいけなくて多重継承になったり継承ピラミッドが複雑化
あるいは継承は破綻するからメソッドを増やす別の方法を拡張して使い何のためにクラスを使っているのか本末転倒になる
結局クラスと型が分離できていないことにも問題が多い

Rustでは型とトレイトという二つの直交した概念だけで全てが済むからシンプルで分かりやすい
クラスも継承もないのはRustだけでなくGoでもそうだけど今までクラスと継承で遠回りしてきたプログラミング言語の到達点かなと思う
2022/08/28(日) 15:06:53.82ID:17VtAmCD
>>894
インターフェースも知らんのか?
2022/08/28(日) 15:17:26.17ID:WHMHQcXx
トレイトも型なのに何言ってんだこいつw
2022/08/28(日) 15:26:53.46ID:7IFudYOE
>>895
Linusを怒らせたのはそういう所だな
C++を知っていても使わない自由があると言いながら
実際に使わない者が現れれば「知らんのか?」とミスリードしてくる
2022/08/28(日) 15:34:27.90ID:MtWOn5Ys
>>897
C++にはインターフェースが無いことも知らんのか?
そりゃリーナスも怒るわw
2022/08/28(日) 15:39:21.95ID:ntsn5RH7
C++も素のままならまだいいのだが
やっぱり癌はSTLなどのライブラリや例外だな
内部で勝手に動的にメモリ確保したりとかするなよってw
2022/08/28(日) 15:57:21.77ID:5fPmE595
>>895
そのインターフェース等を批判してることを読み取れないのか?
クラスとインターフェースの2種類が必要となってしまっている
トレイトだけで済むRustがシンプルで分かりやすいことを認めたわけだな
2022/08/28(日) 16:07:51.94ID:uFtLPU6J
分かってなさそう
2022/08/28(日) 16:15:35.13ID:5fPmE595
>>896
トレイトは型ではない
例えばCopyトレイトやDisplayトレイトなどの既存のものから自作のものまで自由にトレイトを作れるが
それらトレイトはもちろん型ではなく機能や性質を示すだけである
ある型を作ったときにそれら任意のトレイトを実装するか否かは自由であり
あるトレイトを作ったときにどの型に対して実装するか否かも自由である
2022/08/28(日) 16:21:02.87ID:eCF2zYYC
スパゲティーは苦手だからCarbonに期待
2022/08/28(日) 16:22:01.22ID:0b1WGCJ7
Rustでは型とトレイトという二つの直交した概念だけで全てが済むからシンプルで分かりやすい

クラスとインターフェースの2種類が必要となってしまっている

ほーん
2022/08/28(日) 16:33:32.30ID:Lrz1i+MR
つまりクラスとか継承とかそんな複雑なものは要らないよな
型とインターフェースだけがあればいい
Goは実際にそうなっている
2022/08/28(日) 16:33:43.64ID:kDu69pxs
>>893
ライフタイム以前よりはかなり簡単になったけどまだ引っかかりどころは残ってる感じ?
2022/08/28(日) 16:44:44.59ID:UslCRvMa
>>900
Rustの公式リファレンスにもトレイトはインターフェースって書いてあるんですがww
2022/08/28(日) 16:48:30.90ID:5qFsJjmO
>>900
Rustはstructとimplとtraitの3種類が必要としまってますねwww
2022/08/28(日) 16:52:01.49ID:5fPmE595
>>907
そうだよ
インターフェース自体を問題にはしていない
クラスに加えて結局インターフェース等も必要としている状態を批判している
それならばGoやRustのように最初からクラスは無い方がシンプル
2022/08/28(日) 17:01:29.35ID:5JaYE9jd
C++20でconceptというのがあるんだな
これは知らんかったわ
C++も大変だねー
911デフォルトの名無しさん
垢版 |
2022/08/28(日) 17:27:57.92ID:VCib2hQJ
rust は使ったことないがエラーメッセージが c++ より親切と聞いておる。
2022/08/28(日) 17:42:22.67ID:eCF2zYYC
ここに書き込んでるヤツのせいで本当にrustが嫌いになったわ
913デフォルトの名無しさん
垢版 |
2022/08/28(日) 17:47:23.10ID:ARvglkbX
>>912
他人の意見ばかり気にしてないで、自分で判断したらいいのに
2022/08/28(日) 18:01:38.50ID:9BfrdysB
>>897
別にリーナス怒ってはないやろ
mallocで失敗したくらいで強制終了するしかないポンコツは流石に使えんわって言っただけで
2022/08/28(日) 18:04:31.62ID:e6Sjxbuq
>>911
C++と言うより原理的にテンプレート絡みのエラーメッセージはわかりにくいわな
まあそこは言語組込のrustに軍配上げるしかない
2022/08/28(日) 18:12:18.75ID:ZW7HH5qp
> クラスとインターフェースの2種類が必要となってしまっている

class に加えて interface があるのは救いなんだがw
実装ではなくてインタフェースに対してプログラミングせよ
ってのを実践するのに丁度いい潔い言語機能なんだが
2022/08/28(日) 18:24:29.65ID:7IFudYOE
interfaceでできることは (多重継承禁止しなければ) classでもできる
この客観的事実を、鬼滅棒みたいに振り回す人
と仲良くなるところまでがC++の難易度です
2022/08/28(日) 18:31:25.88ID:ZW7HH5qp
個人的にはC++でIFooとか涙ぐましいことやってんのも受け入れられるよ
問題は、言語ユーザが実装とインタフェースを分離したいという発想を持ってるかどうかだから

もちろんそうなったとき、よりスッキリすんのは言語として interface があるほうだよねって話
919デフォルトの名無しさん
垢版 |
2022/08/28(日) 18:34:20.72ID:RvFPV5Qc
そもそもC++はオブジェクト指向言語ではないのでインターフェースは必要ない。
2022/08/28(日) 18:36:05.49ID:ii1XaHH8
>>903
Rustを使えば避けられるよ

>>908
implは単なる接着剤だよ
Goのように接着剤なしで書く方式もあるように
接着剤であるimplはそこで言う種類じゃないよ
921デフォルトの名無しさん
垢版 |
2022/08/28(日) 18:39:21.55ID:RvFPV5Qc
そもそもRustは仕事がないのでimplは必要ない。
2022/08/28(日) 18:40:17.57ID:ii1XaHH8
>>918
うん
インタフェースは必要でむしろクラスが要らないよね
そのわかりやすい道を選んだのがGoとRust
923デフォルトの名無しさん
垢版 |
2022/08/28(日) 18:44:55.39ID:RvFPV5Qc
Rustは仕事がない。
Goは仕事がある。
この差は大きい。
2022/08/28(日) 18:45:28.11ID:iJSRjwGP
雇われ仕事はな
2022/08/28(日) 18:46:02.45ID:eCF2zYYC
>>913
自分の判断ではrustはスパゲッティだから
2022/08/28(日) 18:47:05.71ID:eCF2zYYC
ていうか、Rustって使ってる人少なすぎじゃね?
2022/08/28(日) 18:48:13.72ID:TZ0QCmjM
メソッドが無いってんならともかく、クラスが無いと言っても明示的なクラス定義に比べてソースコードの物理的レイアウトの自由度が高いというくらいの話でしかないでしょ
そんなドヤ顔で語るほどのことでもない
2022/08/28(日) 19:04:58.89ID:ii1XaHH8
>>925
少なくとも他の言語と比べたらスパゲティになりにくいね

>>927
メソッド自体はクラスと関係なくてクラスベースのプログラミング言語でなくても存在するものだよ
クラスを特徴付けるものはクラスの親子関係を示す継承だね
GoとRustに継承はないからクラスとは明確に異なるよ
2022/08/28(日) 19:06:04.35ID:TZ0QCmjM
クラスに継承は必須ではないよ
VBAのクラスに継承は無いぞ?
930デフォルトの名無しさん
垢版 |
2022/08/28(日) 19:06:48.27ID:RvFPV5Qc
Rust、Haskellは仕事がない。
2022/08/28(日) 19:07:23.94ID:L4K2SyLA
>>920
implは操作の定義
structはデータの定義

この2つを分けたことの意味が分からないようならRust辞めたほうがいいよ
932デフォルトの名無しさん
垢版 |
2022/08/28(日) 19:08:15.18ID:RvFPV5Qc
始めても居ないだろ。
2022/08/28(日) 19:16:42.43ID:p0vNwv3L
Goのimplicitなインターフェース実装よりも
Rustのexplicitなトレイト実装のほうが断然いい

ただJavaと違ってC#やSwiftならExtensionで後からクラスにインターフェース実装追加できるからGoやRustの方式が特に優れてるわけでも無いと思うけどね
2022/08/28(日) 19:25:12.79ID:ii1XaHH8
>>929
VBAは他にもできないことや制限されることが色々とあるから置いときましょ

>>931
違うよ
implは『実装』の定義だよ
structは(構造体の)『型』の定義だよ
2022/08/28(日) 19:32:34.36ID:Lrz1i+MR
>>933
優れてるかどうかは誰も言っていなくて
元々の話はRustはトレイトがあるから複雑で難しいとかいう批判に対して始まった議論やろ
実際にはクラスとそれに纏わる諸々がないからGoもRustもクラスのある言語より簡単でわかりやすくなってる
2022/08/28(日) 19:39:33.75ID:jYJ6rDEN
importしないと使えないメソッドがあるのが理解できない
2022/08/28(日) 19:45:44.96ID:BvDaIb58
問題はクラスではなく副作用だよ
勘違いするなよ
クラスのメンバーが途中で書き換えられたりしなければ問題はないのよ
2022/08/28(日) 19:49:05.31ID:lJnoAt2m
rustはstructのフィールドごとにmut設定できないので欠陥言語
2022/08/28(日) 19:53:38.21ID:fprIa6qZ
次スレのタイトルは

次世代言語28 Rust

にしとこうか?
940デフォルトの名無しさん
垢版 |
2022/08/28(日) 19:55:42.04ID:RvFPV5Qc
仕事がない言語に未来はない。
2022/08/28(日) 20:11:14.04ID:iJSRjwGP
仕事があっても未来がない言語の方が多い件
942デフォルトの名無しさん
垢版 |
2022/08/28(日) 20:17:59.03ID:RvFPV5Qc
RustはPHPより優れているんだ!!といくら主張しようとも。
Rustは仕事が無くてPHPは仕事があるんだから仕方がない。
2022/08/28(日) 20:18:38.81ID:e6Sjxbuq
>>941
具体的にどういう言語に未来がないの?
2022/08/28(日) 20:25:11.67ID:pOmrVgZH
>>943
COBOL Fortran Ruby Perl VB.NET VBScript Delphi
2022/08/28(日) 20:25:27.41ID:lJnoAt2m
コボラーの人たちは逃げ切ったと思う
くいっぱぐれなかったコボラー
2022/08/28(日) 20:30:40.83ID:DhGNghcs
Objective-Cもまだ仕事はあるだろうけど未来はないな
947デフォルトの名無しさん
垢版 |
2022/08/28(日) 20:35:31.36ID:RvFPV5Qc
全部、一時代を築いた言語たちじゃないか。
2022/08/28(日) 20:36:35.22ID:DhGNghcs
だから仕事と過去はあるけど未来がないと言われてるんだろ
2022/08/28(日) 20:38:56.54ID:DhGNghcs
Elmとかいうの一時期Qiitaで流行ってたけどもう下火だな
950デフォルトの名無しさん
垢版 |
2022/08/28(日) 20:48:08.93ID:RvFPV5Qc
世界で見捨てられたころに日本で流行らせようとする人たちが出てくるのは何故なんだろうな。
2022/08/28(日) 20:51:32.52ID:7IFudYOE
流行らせよう・・・そんな未来形は使う必要がねえんだ
2022/08/28(日) 20:52:32.31ID:lJnoAt2m
PHPとRoRのプロの人は今後も食いっぱぐれないと思う
2022/08/28(日) 20:57:10.97ID:pOmrVgZH
COBOLみたいに進化が止まればね
PHPはアグレッシブに言語仕様変えてるから往年のぺちぱーにとっては厳しくなりつつあるんじゃないか?
2022/08/28(日) 21:08:03.91ID:CjJz/pgW
>>935
トレードオフなんだよ
得たものもあれば失ったものもある
ある状況において簡単になってるように見えるだけ
2022/08/28(日) 21:09:02.48ID:M1jTd8eK
おれRoR得意だけどRails使ってるとこはフットワーク軽いとこ多いし、みんなどんどんGoに置き換えてるよ
Railsにフロントもやらせるとゴチャっとしてメンテしづらくなりやすいし、APIだけやらせるんならRailsである必要性もないし・・・
2022/08/28(日) 21:25:19.61ID:JJMPEtcG
>>955
APIだけの場合でもモデルの作りやすさとか考えると全然あり
まぁLambdaとかでコスト削減したいなら無し
2022/08/28(日) 21:31:52.80ID:FsgvCgwF
スレタイは次世代言語じゃなく新世代言語にしとけば?
それならスレタイにある現世代の言語でも違和感ないから
2022/08/28(日) 21:41:34.26ID:BvDaIb58
>>955
Goにする理由がわからないなあ
Web APIだけならRailsで十分でしょうよ
2022/08/28(日) 22:08:57.12ID:e6Sjxbuq
>>944
C, C++, C#, Python, JavaScript/TypeScript, Go,
2022/08/28(日) 22:10:55.80ID:iJSRjwGP
>>959
未来のある言語ばかりだな
2022/08/28(日) 22:12:52.50ID:e6Sjxbuq
>>944
途中で書き込んでしまった
あとFORTRANはスパコンとかの数値演算系ではまだまだ現役で未来がないわけじゃないよ
2022/08/28(日) 22:16:33.25ID:iJSRjwGP
>>961
Formura「いつのスーパーコンピュータの話をしてるんだ」
2022/08/28(日) 22:41:58.53ID:gOapjWvD
YouTube で有名な雑食系エンジニア・KENTA が勧めるキャリアパスは、
Ruby on Rails → Go のみ

さらに彼は、PHP, Scala をオワコン認定した。
要するに、この2つはRailsに勝てる要素がない

時価総額1兆円のGitLab は、Railsで続けることを宣言している
2022/08/28(日) 22:54:34.17ID:M1jTd8eK
ああ、ごめんなさい、ガイジを召喚しちゃった・・・
2022/08/28(日) 22:58:49.50ID:e6Sjxbuq
>>962
富岳とかの利用方法見たらわかるけど、最初に載せてる
なんだかんだ言って言語仕様的に最適化し易いのとライブラリに1日の長がある

[コンパイラ/インタプリタ]
富士通コンパイラ(Fortran2008 & Fortran2018サブセット, C11 & GNU拡張仕様・Clang拡張仕様, C++14 & C++17サブセット & GNU拡張仕様・Clang拡張仕様, OpenMP 4.5 & OpenMP 5.0サブセット), GNUコンパイラ, Julia, OpenJDK (Java), Python, Ruby, XcalableMP, LLVM
https://www.hpci-office.jp/pages/r-ccs_riken_2022-2
2022/08/28(日) 23:01:39.48ID:iJSRjwGP
>>965
それ今はまだ使われてるってだけで未来の話はしてないよね
2022/08/28(日) 23:11:01.40ID:BvDaIb58
Fortranは過去の資産が大量にあるからなあ
しかもバリバリ現役のが
普通にCOBOL以上だよ
2022/08/28(日) 23:15:53.85ID:e6Sjxbuq
>>966
新規案件もあるしコンパイラの改善も進んでるけど?
あんたの未来の定義はなに?
2022/08/28(日) 23:23:42.78ID:iJSRjwGP
>>968
話の流れくらい把握してから聞いてくれよ
2022/08/28(日) 23:27:23.09ID:e6Sjxbuq
>>969
把握できてないのは貴方では?
2022/08/28(日) 23:52:33.65ID:1VE+JRD5
次の土方言語
2022/08/29(月) 00:01:26.37ID:RL/dmmx9
機能を追加しつつげてるC#辺りの方が、次世代って言わないだろけれど、時代に合わせて進化続けてる感じするよ。
2022/08/29(月) 00:13:24.90ID:DkZBXm10
C#は一つの言語にアグレッシブに手を入れ続けるという点では現在進行系で最も成功している言語だろうね
単純な言語仕様の量で言えばもはやC++を超えてるんじゃないか
2022/08/29(月) 00:15:09.28ID:m+eGoc7U
C#に一番類似してるやつとさっさと決着つければいいのに
PythonとRubyがとうの昔にやったことを未だにできてない
2022/08/29(月) 00:24:30.02ID:5N7ZaELz
Javaと言いたいのかもしれないが、C#の方が別物になりすぎて今や全然類似していない
今だと一番類似してるのはKotlinあたりだろうが、シェアではそもそも全く勝負になってないな
2022/08/29(月) 00:38:48.50ID:q9iRl6Qa
科学計算系の現役のライブラリの中覗くとFortranのコードベタ移植してたりするよね
2022/08/29(月) 01:40:27.72ID:oXLAwjez
>>953
PHPは太古のコードも割と動くからな…
2022/08/29(月) 06:56:36.80ID:5dAad4gs
>>970
IEの新規案件もまだあるんだがそれでもJScriptに未来があると言うのか
2022/08/29(月) 07:04:39.97ID:7/v7fhbZ
>>978
> IEの新規案件もまだあるんだが
それ一般的なのか?
2022/08/29(月) 07:10:46.62ID:5dAad4gs
>>979
新規案件があるくらいじゃ未来があるとは言えんという話だぞ
話の流れずっと理解してないな
2022/08/29(月) 07:32:15.58ID:7/v7fhbZ
>>980
詭弁のガイドライン
2. ごくまれな反例をとりあげる
レス数が950を超えています。1000を超えると書き込みができなくなります。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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