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

レス数が950を超えています。1000を超えると書き込みができなくなります。
2021/08/22(日) 08:59:03.31ID:QorwbXcj
スレタイ以外の言語もok

前スレ
次世代言語21 Go Nim Rust Swift Kotlin TypeScript
https://mevius.5ch.net/test/read.cgi/tech/1587276362/
2021/11/18(木) 13:51:24.01ID:+0r8+Axf
>>856
C++の標準ライブラリにあるstd::string、コンテナクラス、unique_ptr、shared_ptrなどを使っていればnewを書かずにヒープメモリを使うことができるし、shared_ptr以外はスコープを抜けたときに自動的にデストラクタを呼んでヒープを解放してくれる。
ちゃんとC++を使えばほとんどの場合手動でメモリ解放せずに済むよ。
2021/11/18(木) 14:53:32.65ID:/He/baLS
>>856
それはRAIIを判ってない発言だからたぶん恥ずかしい
2021/11/18(木) 14:56:26.80ID:/He/baLS
>>857
コンテナの中身がポインタだったら?
2021/11/18(木) 14:57:53.21ID:+tJnStuG
本人も認めてるけどRAIIってネーミングセンスがないよな
2021/11/18(木) 15:10:40.66ID:+tJnStuG
>>856
この辺見るといいと思う
https://www.youtube.com/watch?v=86xWVb4XIyE&;t=1790s

shared_ptrがGCの一種って話も出てくる
2021/11/18(木) 15:13:07.47ID:5Kqa+JGe
>>857
しかし元の方は>>821でdeleteを使わないだけでなくshared_ptrも使わないとおっしゃっているのです
つまり解放をどうするのか問題が残ります
あとコンテナ自体の解放に加えて要素が値だけで構成されずポインタを含む場合はその先の解放も必要ですよね
2021/11/18(木) 16:00:24.60ID:5Kqa+JGe
>>858
ある程度の構造を持ったデータを扱う場合
RAIIではそのクラスのデストラクタでdeleteが発生しますよね?
>>823はdeleteも要らないと書いていますがそこはどうするのでしょう?
2021/11/18(木) 16:21:52.26ID:BzFs1LlE
new/deleteを明記しないってだけやろ
2021/11/18(木) 16:36:40.14ID:f69aBKlz
golangなんかだとbenchでB/opやallocs/opが取れるけど、他の言語はあまりメモリー量は重要視してないのかな?
最終的にはエネルギー毎のjoule/opとか出してほしいけど、IntelとAMDそしてARMで全然違うのはCOP21とかは
何も考えてない偽善だろう
2021/11/18(木) 17:16:59.79ID:x5F/kwMZ
>>862
所有権について言及してるしunique_ptrを使うのでしょう
867デフォルトの名無しさん
垢版 |
2021/11/18(木) 18:07:16.31ID:dthIgn7Y
流れを踏まえると
C#はせっかくGCがあるのに
自分でいちいち手動のDisposeを描かされる

残念な言語(キリっ

と言わざるを得ない
2021/11/18(木) 18:10:14.42ID:z3VijVy2
GoやJavaなんかだとGCがあるからやばい、って思えるほどシビアなプロジェクトの開発をしてみたいもんだ
869デフォルトの名無しさん
垢版 |
2021/11/18(木) 18:13:29.70ID:P63H+fUW
>>863-864
デストラクタ内のdeleteは勘定に入れなくて良いルールなんだろう
2021/11/18(木) 18:20:18.80ID:MFoti6qx
>>867
というより可能な限りGCを動かさないように
値型を多用してコレクションも
System.Collectionsじゃなくて
System.Collections.Genericのほうを使うとかして
ヒープ側を使わないようにする悲しい頑張りが必要
2021/11/18(木) 18:21:21.59ID:Hn1JS7XJ
まあ、ネイティブコンパイラが必須なケースが少ないからこそ
JavaScriptインタプリタのようなものをC++やRustで書いて使ってるんだよな
2021/11/18(木) 18:27:54.82ID:+6yu0rNA
>>870
C#ならガベージの生成を避けるようなケースでもC++なら気にせずヒープ使いまくれるってことか?
そうでないならそれはGCの問題ではないことになるぞ
2021/11/18(木) 18:28:22.88ID:7LzjmfPa
まだgcの定義の話してんのかよ
文脈依存用語を絶対的な意味で決めつけようとする意味あんの?
2021/11/18(木) 18:37:38.93ID:EV0O2NnK
Railsの高速化に貢献する新たなJITコンパイラを搭載したRuby 3.1プレビュー1が公開
2021/11/18(木) 18:44:25.05ID:+6yu0rNA
>>874
すまないがもはや汎用言語でない言語はスレ違い
2021/11/18(木) 18:47:30.80ID:BzFs1LlE
>>869
newしないんだったらdeleteだって書く必要ないでしょデストラクタであっても
2021/11/18(木) 19:27:50.79ID:z3VijVy2
「汎用言語」と呼ばれるにはミドルウェアを書くのにも適してる言語じゃないといけないの?
2021/11/18(木) 19:36:07.29ID:x5F/kwMZ
Rubyより採用実績の少ない言語は皆専用言語
2021/11/18(木) 19:51:50.15ID:rsuv1+NH
このスレといいフレームワーク系のスレといい、お気に入り以外を攻撃してワンワン噛みつく奴ばっかや…
ニュースリリースぐらい大目に見たれよ?Wikipediaを何行も張り付けるウンコの10倍は有用だぜ?
2021/11/18(木) 20:17:22.46ID:5Kqa+JGe
>>864
なるほど
クラス宣言側でdeleteを使っていても関数側でdeleteを明記しなければdeleteを使っていないことになるのですね

>>821
> deleteも使わない。

>>823
> deleteすら要らない。

ここまではっきりと書かれているので当然クラス宣言の中でもdeleteを使わない意味だと受け取っていました

ところでクラス宣言のデストラクタでdeleteを使う形はスマートポインタと完全に同じ形になっていますが
この自動的にメモリを解放する手法はGCに該当するのでしょうか?
2021/11/18(木) 20:28:31.75ID:Hn1JS7XJ
いちいち質問して答えを待ってると判断が遅いんだよね
自分のお気に入りの答えを自分で判断する方が圧倒的に早い
882デフォルトの名無しさん
垢版 |
2021/11/18(木) 21:25:37.77ID:PdOXvPCx
C++はJavaと違うって事では。
2021/11/18(木) 21:51:51.02ID:tNnQbC1E
早漏DTの意見でした
2021/11/18(木) 22:44:57.81ID:2INYRpvr
組み込みのmruby は、apache などのmiddleware も書ける。
C の文字列の代わりに、mruby の文字列を使うと簡単・安全

人工衛星、イザナギ・イザナミなどに使っている

mrubyの本も出た。
micro python, Lua の代わりに使う
2021/11/18(木) 22:59:55.28ID:QovEQeBY
>>880
自動的に開放しているからGCの一種
2021/11/19(金) 00:42:48.75ID:mxTjN9mz
>>880
クラス宣言ってshared_ptrの実装のこと言ってる?
2021/11/19(金) 05:13:09.95ID:DX593LKr
mrubyとか名前ダサくね?
信者になればかっこよく見えるの?
名前重要とかどこいった
2021/11/19(金) 10:31:20.07ID:eyeX0xyM
ruby.js
889デフォルトの名無しさん
垢版 |
2021/11/19(金) 12:27:45.87ID:fGKSbVlD
そんなこと言ってるとrustに別実装の処理系が出来た時にディスられるぞ
rustだからstainlessとか
2021/11/19(金) 12:47:40.77ID:mxTjN9mz
すでに別実装はあったような
2021/11/19(金) 13:41:02.55ID:rEwMjqRY
>>889
なんでもかんでもxxx.rsって付くのはダサいけど、xxx.jsと同じかな
2021/11/19(金) 13:55:37.85ID:XZPDRrte
GCある言語でもインスタンスの生成や参照切れで解放されることくらいは
知ってる必要があるんだが、それもまともにわかってなさげなやつで溢れてる。
893デフォルトの名無しさん
垢版 |
2021/11/19(金) 13:56:15.69ID:eyeX0xyM
ださい拡張子
.cs
.ts
.ps
.gs
894デフォルトの名無しさん
垢版 |
2021/11/19(金) 14:56:18.17ID:nTNvNEE2
>>892
誰一人まったく解放されないなんて言ってる奴いないと思うが、どこの世界線から来た人?
895デフォルトの名無しさん
垢版 |
2021/11/19(金) 18:18:36.72ID:cPtoFLsh
>>886

class foo
{
  ~foo()=delete; // このdeleteのことを言ってる。
};
2021/11/19(金) 19:21:02.67ID:p3l3yC+x
>>895
アスペか?
897デフォルトの名無しさん
垢版 |
2021/11/19(金) 19:55:35.05ID:cPtoFLsh
>>896
ID末尾をxにしてるのは、C++とC#の両方を表現してるのかい?
898デフォルトの名無しさん
垢版 |
2021/11/19(金) 19:57:08.72ID:cPtoFLsh
宣言のdeleteって言うから。
2021/11/19(金) 20:09:20.65ID:M2ROgxHD
>>898
流石にnew/deleteとdelete宣言は別物だろうなぁ。
同じ単語を使っているのはc++のケチ臭い用語の流用の結果だし。
900デフォルトの名無しさん
垢版 |
2021/11/19(金) 20:52:12.15ID:cPtoFLsh
デストラクタのdelete自体も嵐を呼ぶ話題だけど。
2021/11/19(金) 21:04:37.53ID:eorWY7YE
>>895
それならRAIIで本体をGCさせる時に連動GCさせる時の常套手段
902デフォルトの名無しさん
垢版 |
2021/11/19(金) 21:11:17.06ID:cPtoFLsh
たぶんJavaの人じゃないかと思うんだよね。
2021/11/19(金) 22:08:12.78ID:CstSAS10
>>901
本体もGCと呼ぶかは議論が分かれそうだが
付属部分を連動GCすることだけを目的に本体が実体を無くしたものがunique_ptrだよな
904デフォルトの名無しさん
垢版 |
2021/11/20(土) 00:19:22.26ID:OQv16NeR
自動変数もGCなのか?
2021/11/20(土) 02:24:49.30ID:V+twZ/1f
>>584
電気メーカーが糊口をしのぐための税金バラマキ国プロ
昔も今も変わらない
2021/11/20(土) 08:44:52.28ID:V7jlhcsx
1. 昔も今もどっちも変わらない
2. GCもスマポもどっちも変わらない
3. 1も2も3もどれでも変わらない
907デフォルトの名無しさん
垢版 |
2021/11/20(土) 11:42:49.09ID:NkWaDqk7
>>904
約一名にとってはそうみたい
2021/11/20(土) 11:51:59.21ID:/G7VwRdk
>>904
自動変数は参照あっても解放されるからGCにはならんね。
2021/11/20(土) 12:28:48.64ID:/C1S+OCl
君らはいつになったら回収されるん?
910デフォルトの名無しさん
垢版 |
2021/11/20(土) 16:24:03.02ID:lK9Ghq6L
Rustの悪口言ったやつ許さんから
2021/11/20(土) 16:27:17.15ID:pWBsNJLr
Rustの母ちゃんでべそ〜
2021/11/20(土) 16:42:56.01ID:H5f9Qsz8
RustがすごいんじゃなくてGCがクソ
913デフォルトの名無しさん
垢版 |
2021/11/20(土) 18:07:02.96ID:OQv16NeR
バグを無くすにはGCじゃなくテストですよ。
2021/11/21(日) 10:14:13.30ID:UyY2TlzJ
ソースを読まなくてもできるテストは
不正アクセスと同じではないが似ている
2021/11/22(月) 20:18:26.53ID:pPz4fu4C
抽象バカはテストが書けないので困る。
2021/11/25(木) 08:38:48.33ID:KcP0JmbS
rustは少なくともCである程度のプログラムを書いてハマった経験がないと
この機能何のためにあるの?ってのがわからない
2021/11/25(木) 10:28:07.08ID:dqP+a0eJ
Rustを最近学んでるだけど、すぐに学習曲線やばい言語だということを納得した
おれはC++のスマートポインタらへん知ってるから、かなりマシなほうだと思うけど、
たしかにC/C++やってない人にはそうとうにキツそうだね

やってない人にオススメできる気がしない
2021/11/25(木) 10:35:35.35ID:6PNOZvLH
>>917
それは逆
Rustに苦労している人たちはC++経験者かつ頭が固くてC++から離れて頭をゼロにして学習する能力がない人たちだと言われている
2021/11/25(木) 10:56:21.20ID:lTzmbhqT
>>918
そんな話どこで言われてるの?
2021/11/25(木) 10:58:35.45ID:iyas0vJe
まぁC++一筋十数年って人だと大変かもね
C++に加えてScalaとかHaskellあたりを履修済みだとだいぶ楽
2021/11/25(木) 11:45:21.45ID:lTzmbhqT
rustもC++もScalaもHaskellも分かるが、まるでそうは思わないw
2021/11/25(木) 11:45:21.46ID:lTzmbhqT
rustもC++もScalaもHaskellも分かるが、まるでそうは思わないw
2021/11/25(木) 12:14:40.21ID:OYLxCDo4
C++11以降の流れをある程度追えているなら問題なかろうよ
2021/11/25(木) 12:38:43.29ID:lTzmbhqT
03で止まってる人なら辛いかもね
2021/11/25(木) 14:54:39.16ID://sjBQgD
最新のC++の方向性見るとこれなら
最初からRustやればとは思わない?
2021/11/25(木) 15:14:28.01ID:lTzmbhqT
C++はCみたいな書き方も出来るが、rustは最初からrustでないといけないから難しいと思う
2021/11/25(木) 15:50:19.56ID:662tr9PH
今はc/c++の知識を階段として学んでいる人多いだろうけど、今後はrustしかわかりませんみたいなrustネイティブも出てくるのかな?
これってアセンブリ→cのときにも言われてた?
cを理解するにはアセンブリがわかってないと無理みたいな
2021/11/25(木) 16:03:54.47ID:dqP+a0eJ
よくしらんけど、学習曲線を緩和させるような取り組みもいちおう検討されてるんでしょ?
2021/11/25(木) 16:04:26.05ID:ypEo7i9g
>>926
Cみたいな書き方できるのをメリットと見るかデメリットと見るか?
2021/11/25(木) 16:59:45.85ID:lTzmbhqT
CはBASICほど遅くなくアセンブラ(機械語)が必要ない、当時俺にとっては奇跡の言語だった
C/C++/VB→Javaのときは実際にJavaしか分かりません、が大量に発生した
2021/11/25(木) 17:35:06.78ID:88pS2ZzI
今後のネイティブ系プログラミングは基礎入門C言語→Rustになるでしょう
C++は今となっては中途半端でありやる価値を失った
2021/11/25(木) 17:51:06.67ID:dqP+a0eJ
言語仕様でいえばC++よりRustのほうがいいと思うけど、C++で作られた過去の資産が巨大すぎて、そう簡単に価値がないとはならなそうかなあ
まあ10年後とかにはCOBOLみたいに、悲しい負の遺産扱いされてるかな
933デフォルトの名無しさん
垢版 |
2021/11/25(木) 18:17:02.30ID:YKvzJ4Sm
まさか5年前にはc++がcobolのような負の遺産という立ち位置になっていくんだろうなっていうのが目に見えるようになるなんて思いもしなかったわ
2021/11/25(木) 18:31:54.46ID:htMyv0Y1
c++は新しい部分もあるけど古いダメな書き方もできるからな
新しい部分は古い部分に触れた人には喜べるけどだったらc#やjava使ったらと思う
rustはエグイなと思うので書かない

c++は新しい書き方だけを強制できるような仕組みが必要なんじゃないかな
自由度が高いことこそが最大の利点だ見たいな考えは古い
2021/11/25(木) 18:34:36.25ID:htMyv0Y1
>>933
大体15年前はすでにC++は負の遺産だったよ
クールだった時代はかなり短い

新しい言語が形を成してた2000年前半にはもう粗大ごみ扱い
2021/11/25(木) 19:23:28.39ID:l4YrYzBR
そのうちc++のオブジェクトファイルとリンクできるけど取り扱いの難しい機能を禁止したSmartC++が出てくるんじゃない?

生ポインタ禁止(スマートポインタ強制)するだけでもいい感じになると思うけどなぁ。
2021/11/25(木) 19:26:08.23ID:sK32tKJd
EC++ぶっつぶしたC++標準委員会には無理
2021/11/25(木) 19:34:59.70ID:6PNOZvLH
>>936
今となっては全てが自動的にスマートポインタ扱いとなっているRustを使えばよい話
しかもunique_ptrはコストゼロになっていて効率もいい
2021/11/25(木) 20:09:06.46ID:SwFLZgNz
馬鹿なRusterたちがこんなスレでわっしょいわっしょいw
一口にC/C++と言っても、当面はOSのkernelなんかは10年以上はC99だろうし、組み込みもCでしょう。
C++は一時は止まってたがC++20とか、確かに古いダメな書き方が出来るが、分岐予測CPU用のlikelyと
unlikelyなんかRustにも”降りてきた機能”。こういう表現が言えるのはC++が実験的/先進的であるから
Rustのような言語は破綻させないために先進的な(あるいは実験的な)機能は入れにくい。
ところがC++は違う、破綻しようが滅茶苦茶だろうが関係ない。使いたい人がその機能を使う
負の遺産だとも、クールではないとも異議は唱えないが、根本的なところが違う
940デフォルトの名無しさん
垢版 |
2021/11/25(木) 20:11:54.48ID:mXEi3hQs
あわしろ氏もC++はオワコンと言ってる。
2021/11/25(木) 20:26:41.70ID:dqP+a0eJ
せやな
C++という言語自体というより、C++で作られた資産が負の遺産だと思っているよ
2021/11/25(木) 20:40:18.41ID:pEcDGUra
まるで第二Rustスレだな
2021/11/25(木) 20:51:59.29ID:88pS2ZzI
スレタイの諸言語は限定した環境においてはRustに対して優位性があるけど
C++は過去しか優位性がないので仕方ないのでは
2021/11/25(木) 21:18:43.03ID:lTzmbhqT
rustは難しいからなぁ・・・
945デフォルトの名無しさん
垢版 |
2021/11/25(木) 21:22:32.76ID:YKvzJ4Sm
誰もCが悪いなんて言ってなくね
C++だったらRustの方が無難と言ってるだけで
2021/11/25(木) 21:27:45.38ID:I+op7MmV
Rustになんか優位性ない。スレタイの諸言語に対してもそう、Swiftは参照カウントでボトルネックになる
ところを自前で管理可能だし、Nimは同じ参照カウントに切り替え可能だし、Golangは他にない超高速な
軽量スレッドを有している。 KotlinとTypeScript は知らんけど
2021/11/25(木) 21:37:57.24ID:lTzmbhqT
C++は難しいを通り越してユーザーに厳しい?というかピーキー?というかマニアック?な言語だと思う
好きな奴だけ使う言語
948デフォルトの名無しさん
垢版 |
2021/11/25(木) 21:41:06.37ID:QrEUJ+3X
>>934
>c++は新しい書き方だけを強制できるような仕組みが必要

ほんそれ
2021/11/25(木) 21:44:35.39ID:/vPuyV+m
新しい書き方の強制はclang-tidyなどのlintである程度できるのでは
今時マージ前にCIでlint通すくらいはやっているでしょう
2021/11/25(木) 21:54:04.18ID:6PNOZvLH
>>946
あまりに無知
参照カウントの話にしてもRustのRcは単なる構造体によるライブラリに過ぎず必要なら自前で同じ物も似た物も違う物も作れて自由自在
そして必要ならガベージコレクションするRustのモジュールも多数存在している
つまりその分野ではRustは最強

> Golangは他にない超高速な軽量スレッドを有している。

これもRustのタスクの方が軽量かつ高速
そしてRustではそのスケジューリングも含めて自由自在に出来る
2021/11/25(木) 21:58:25.51ID:lTzmbhqT
C++の新しい書き方だけを強制とか言ってるアホは何なの?w
何が新しくて何が古いのか何を強制したいのかできるのか知らんけど、使いたくなければ使わなければいいだけ
2021/11/25(木) 22:05:56.88ID:662tr9PH
>>951
そりゃ一人で作ってりゃ好きにやればいいけど、仕事でやるなら複数人でやることだってあるでしょ。 コーディングルールだぁって縛ったって漏れる可能性があるなら、古い機能(使いたくない機能)を使えなくするってのはいい手だと思うけどなぁ
2021/11/25(木) 22:08:20.71ID:QrEUJ+3X
>>941
使用者が
2021/11/25(木) 23:31:57.01ID:lTzmbhqT
>>952
C++が使える奴だけで作れなければやめればいいだけw
どんな言語でも使えるやつだけで作ればある程度適切な使い方になる

そうでなければ原則goみたいな言語で作ればいい
都合のいい制約を言語レベルで作りたいなら自分で言語を作れ
2021/11/26(金) 00:49:44.30ID:QMqJW7g5
>>950
こういう外部ライブラリを持ち出して顔真っ赤になるやつがいるから、大嫌いRuster。なにが無知やお前が無知や
一生わっしょいわっしょいしとれ
2021/11/26(金) 01:01:56.78ID:Ye0bskEh
>>954
使えるやつだけで作れる状況にできれば理想だけど規模が大きかったりするとそうも言ってられない
GitHubで公開してpullreq受け付けるようなプロジェクトの場合はそもそも人を限定できないわけで
よろしくないコードを機械的にチェックできる仕組みはあった方が良い

ただそれを言語仕様でやれというのはおかしな話というのは同意
linterなりコンパイラなり使えばよい
レス数が950を超えています。1000を超えると書き込みができなくなります。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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