X



次世代言語24 Go Nim Rust Swift Kotlin TypeScript
レス数が1000を超えています。これ以上書き込みはできません。
0002デフォルトの名無しさん
垢版 |
2022/03/22(火) 04:13:45.26ID:SFGcZaAi
まだやんのかよ!
0003デフォルトの名無しさん
垢版 |
2022/03/22(火) 04:35:15.60ID:ZDHdo9X7
別に俺はスレ消えても良かったんだが、次スレの話が出てたから、書き込み多かったし立ててやっただけw
次はいくら書いても俺は立てないことにするわw
0006デフォルトの名無しさん
垢版 |
2022/03/22(火) 09:32:54.41ID:WDiMcqSF
Goが最強みたいな評価が一般的になると正直死にたいです。僕の負けで良い。
0007デフォルトの名無しさん
垢版 |
2022/03/22(火) 10:27:19.81ID:NPpB+iCa
>>6
言語オタクの人生敗北者
0008デフォルトの名無しさん
垢版 |
2022/03/22(火) 11:36:51.09ID:gDGySq5W
(´・ω・`) おーい、磯野、V言語の話しようぜ
0009デフォルトの名無しさん
垢版 |
2022/03/22(火) 11:45:38.12ID:AcJFNf65
次世代アセンブラって無いの?
それがさいつよだろ。
0010a4
垢版 |
2022/03/22(火) 11:53:46.88ID:bZwDTm1t
>>9
なでしこみたいな日本語のアセンブラとかどうかな。
0013デフォルトの名無しさん
垢版 |
2022/03/22(火) 14:30:13.10ID:kJBXUALW
数年前のGo「ジェネリクスが無いことで型システムがシンプルに保たれています」
今のGo「ついにジェネリクスがやってきた!今こそGoがプログラミング言語の頂点に立つ!!」
0014デフォルトの名無しさん
垢版 |
2022/03/22(火) 14:43:31.42ID:1lLSjjDL
型パズル始める人の要望に合わせると
誰でも理解できるシンプルな言語仕様から
かけ離れてくけどどう決断するんだろ
0015デフォルトの名無しさん
垢版 |
2022/03/22(火) 14:46:21.80ID:CV3n6ay4
Javaにもジェネリクスいらんかったと思うのよね
C++やっててJava出てきたときの新鮮さはよかったね
型パラメータ無しで、プリミティブ型と参照型のふたつでやりくりしてくだっていう
割り切りからのOOP集中って感じでとにかくスッキリしてた

まぁユーザが増えて言語の地位を得るとともに
ドカタ言語という側面も出てきたからジェネリクスからは逃れられんかったね
いつまでも先進的な言語ではいられないね
0016デフォルトの名無しさん
垢版 |
2022/03/22(火) 15:29:21.31ID:q+lZbjeY
Goはジェネリクス導入は大変だから後回しにしたってだけで
言語仕様をシンプルにする云々は外野が勝手に言っていた印象
0017デフォルトの名無しさん
垢版 |
2022/03/22(火) 15:43:35.66ID:6iNFM9yp
JavaはArrayListやHashMapの要素が型無しだったから流石に不便すぎた
Goの場合は動的配列や連想配列の要素はもともと強く型付けされているから、genericsが無くても実用的にはほど問題にならなかったんだよ
0019デフォルトの名無しさん
垢版 |
2022/03/22(火) 17:07:12.89ID:6iNFM9yp
>>18
仮にそうだとしたら、ジェネリクスを理解してない俺のような愚かな人間にとっても、
強く型付けされた動的配列や連想配列は必要であることが証明されたわけだ
0020デフォルトの名無しさん
垢版 |
2022/03/22(火) 18:15:30.35ID:fXuf+9rG
>>19
そんな当たり前のことしか誇れるものがないGoが悲惨
大昔の言語やスクリプト言語と比較するしかないとは
0021デフォルトの名無しさん
垢版 |
2022/03/22(火) 19:10:05.42ID:q+lZbjeY
ジェネリクスの代わりにコード生成でなんとかしているとか聞いたことある
C++のテンプレートの展開を手動でやっているようなものでコンパイルエラーメッセージが大変なことになりそう
0023デフォルトの名無しさん
垢版 |
2022/03/22(火) 20:21:19.87ID:ZDHdo9X7
じゃあもう全員で最も技巧的で分かりにくいが高速で何でも出来るC++に移行すればいいのだよw
人間がそんなに頭いいんならなw
0024デフォルトの名無しさん
垢版 |
2022/03/22(火) 20:36:53.80ID:4GRWOR+L
>>23
そこは生産性の高いRustでよいでしょう
見落としもコンパイラがエラーにしてくれることでどれだけ時間の節約になったことか
0025デフォルトの名無しさん
垢版 |
2022/03/22(火) 22:46:34.46ID:JFwrpdmf
ああだからな、俺はRust/Goの「キラーアプリ」は何?と聞いてるんだ。
「上に政策あれば下に対策あり」ではないが、「難題あれば迂回策あり」程度にはノウハウは溜まっている。
だからそこを敢えて正面突破する場合、迂回策を明確に上回る利益が必要なんだよ。
(迂回策では実現出来ない性能とか)


前スレ>>992
C#が重量級になりすぎてるのは事実。
同様にC++もだから、C++の特定の使い方(とはいえほぼ本流)だけ切り出して簡易版を用意したいのは分かる。
ただそこで余分な仕様を付け加えて、結果「借用」とかやりだしてるから頂けない。
「簡易版」への切り出しなら「簡易」に収まる範囲に留めるべきだった。
(「メモリリーク無し」ではなく「データ競合無し」なら所有権を1つに絞る必要もなく、
つまり関数の引数として使うだけならいちいち借用する必要もなかったはずであり、
これであれば無駄な混乱もなかったはずなので、
やっぱり所有権を絞ってるのは所有権の静的追跡=「メモリリーク無し」を目指してる気がするが)


前スレ>>994
> うっかりループカウンタをgoroutine内でそのまま使ってしまって意図通り動かなくなったりすることがある
これは同様の事を俺もやった事がある。ただしこれにも、

・IDEで色が付く(ローカルではない変数は別の色で表示される)

という、果てしなく馬鹿っぽい迂回策はある。
エラー検出は編集時であり、コンパイル時よりも性能がいい。(ただし目で見てチェックだが)
そしてコードやプログラマに対する負荷もない。
(つまるところ、一方ロシアは鉛筆を使った、に近い)
0026デフォルトの名無しさん
垢版 |
2022/03/22(火) 23:01:40.97ID:VJ4XWCtb
>>25
C++のunique_ptrの意味も利点も所有権とは何かもわからないまま文句だけ垂れる無知無能C#プログラマーさんだ
そして相変わらず意味不明な書き込み
0028デフォルトの名無しさん
垢版 |
2022/03/22(火) 23:21:26.67ID:Sw2JYvg8
>>25
C#にも参照があるのに
なぜ他の言語に対しては参照を必要ないと批判しているのですか?
0029デフォルトの名無しさん
垢版 |
2022/03/22(火) 23:34:13.07ID:JFwrpdmf
>>28
他の言語では「借用がない」と言っている。
Rustによって新たに導入されたもので、それで何かしら恩恵があればいいが、
「データ競合がない」程度では見合わない。
既にある迂回策に対して利点がないのなら、プログラマの負担を増やしただけ無駄だ。
0030デフォルトの名無しさん
垢版 |
2022/03/22(火) 23:54:39.23ID:oWCaELBD
>>29
呆れた…
参照を使うことを借用と言うんだよ
だから借用というものは当然存在しなくて存在するものは参照だけ
せめて超基本的なことくらい学んでから出直してきたら?
0031デフォルトの名無しさん
垢版 |
2022/03/23(水) 00:25:31.71ID:znQ4kzdw
既に、YouTube で有名な、雑食系エンジニア・KENTA が結論を出している

Rust, Elixir は普及のキャズムを越えなかった。
越えたのは唯一、Go だけ

例えば、今世紀最大の起業家、
Ruby 製のVagrant の作者・Mitchell Hashimoto も、Rubyから、Goへ行った

Go製のTerraform で、HashiCorp の時価総額は、今や数千億円

GitHub もGoへ移行する
GitHubのコピーで、時価総額2兆円のGitlab はRuby on Rails のままで、Goへ行かない!
クレイジーw

CircleCI は、Closure 製なのか?
これも、Go, Elixir へ移行しないといけない
0032デフォルトの名無しさん
垢版 |
2022/03/23(水) 05:11:33.35ID:k8Z8CHR2
>>24
頭がいいなら、そんなメモリ安全とかデフォルトimmutableでmoveで借用という制限だらけのRustを使わずとも安全かつ正確な実装ができるんじゃよw
ただ、(横暴な言い方をすると)それだけ安全側に振ったC++なRustでも結局習得に時間がかかるため、コストに釣り合うのはごくごく一部の領域のみというのが結論w
0033デフォルトの名無しさん
垢版 |
2022/03/23(水) 05:28:37.24ID:k8Z8CHR2
>>25
相変わらず、荒すぎる上に間違っているw

お前の場合、Rustは不勉強すぎてお話になっていないよw そういう解釈か〜という勘違いとかそういうレベルではなく、まるで整合が取れてないから他人から見ると字面だけ追って理解できてない状態にしか見えないw
ただC#よりRustの方が楽ということは全くないw なぜなら制限が少ないからw GUIの裏でタスクが1つ2つ動く程度では並列時の問題なんてそうそう起きないし、品質の取れたエコシステムすら整っておらず複雑かつ面倒なだけのRustはメリットなんて何一つないよw

Goでのうっかり問題については、並列時の所有権のありがたみはRustならではw discordが移行したときにこぞって持ち上げられたのがココw ただこれも常時強制されると不便なだけなので、一長一短w
0034デフォルトの名無しさん
垢版 |
2022/03/23(水) 06:26:25.92ID:y0K+8omk
>>32
> デフォルトimmutableでmoveで借用という制限

プログラミング歴があるならば
デフォルトでimmutableの方がありがたいことにほとんどの人が賛同する
そのためimmutableだけの言語まであるくらいだ
Rustはmutableも使える言語だからそこに制限はない

moveについてはその方が複写よりも当然効率が良いため
何らかの事情で複写したい時はcloneすればよいので困らない
効率が悪くても毎回複写がいいならばCopyトレイトを宣言で可能
つまりRustは3種類の方法を提供していてそこに制限はない

借用とは参照を使うことであってこれも制限ではない
そして参照渡しをするなどの実質の参照を扱う言語は普通に多い
Rustにおける参照とはそれらよりも抽象化された概念だがほぼ同じ
何か制限を設けているわけではなくむしろプログラマーへの選択を与えている
複写(Copy/clone)して渡すのか参照を渡すのかそれともそのものを渡す(move)のかを選べる
0035デフォルトの名無しさん
垢版 |
2022/03/23(水) 06:59:48.04ID:k8Z8CHR2
>>34
> プログラミング歴があるならば
> デフォルトでimmutableの方がありがたいことにほとんどの人が賛同する
ないないw

> Rustはmutableも使える言語だからそこに制限はない
デフォルトの制限が厳しいから書きにくいんだよw 制限を外すことの大変さと恐ろしさをプログラミング歴のある人は知ってるからw

> moveについてはその方が複写よりも当然効率が良いため
> 何らかの事情で複写したい時はcloneすればよいので困らない
効率悪w

> 効率が悪くても毎回複写がいいならばCopyトレイトを宣言で可能
> つまりRustは3種類の方法を提供していてそこに制限はない
わざわざトレイトが必要なんですってよ!奥さんw
こんなに使いにくいのが制限じゃないんですってよ!w

> 借用とは参照を使うことであってこれも制限ではない
> そして参照渡しをするなどの実質の参照を扱う言語は普通に多い
言葉すら必要なく、所有権を意識するから必要になる概念で、おもっきし制限だよねw

> Rustにおける参照とはそれらよりも抽象化された概念だがほぼ同じ
> 何か制限を設けているわけではなくむしろプログラマーへの選択を与えている
> 複写(Copy/clone)して渡すのか参照を渡すのかそれともそのものを渡す(move)のかを選べる
嘘乙w
0036デフォルトの名無しさん
垢版 |
2022/03/23(水) 07:05:41.35ID:k8Z8CHR2
なんでRust推す連中ってこう嘘ばかりついたり誤魔化そうとしたり間違いを認めなかったりするんだろうなw
0037デフォルトの名無しさん
垢版 |
2022/03/23(水) 07:11:45.93ID:QvYnh0pZ
>>35
キチガイだな
コードを書いたことがないのかな
今どきはJavaScriptですら書き換えない変数はconst宣言(=immutable)が勧められる時代
JavaScriptにしてもRustにしても書き換えたい変数はmutableにできるのだからそこに制限も不便もない
0038デフォルトの名無しさん
垢版 |
2022/03/23(水) 07:13:47.16ID:znQ4kzdw
Erlang VM を使う、関数型言語のElixir は、Immutable

Docker も、Immutable Infrastructure
disposable(破棄可能)だから、流行った
0039デフォルトの名無しさん
垢版 |
2022/03/23(水) 07:21:13.86ID:k8Z8CHR2
>>37
Rust推しはキチガイってことですねw
JavaScriptはデフォルトconstじゃないですw
出来るところをconstにしよう!なら問題ないw
デフォルトをconstにする=制限と言ってるだけw だってmutとか書かないといけない=制限だからw
そして書いた瞬間に確実に「制約」になるからねw
明示的に書けば外せるから制約じゃない!とかアホとしかw
0041デフォルトの名無しさん
垢版 |
2022/03/23(水) 07:23:16.59ID:iWJcW09w
>>36
君がプログラムを書いたことがないからじゃないか?
>>34が書いているようにRustは選択肢が色々と用意されていてプログラマーがそれらを選択することができる言語
もちろんcloneやcopyは最小限にしたほうが望ましいからそれらはデフォルト適用になっていない
合理的である
0043デフォルトの名無しさん
垢版 |
2022/03/23(水) 07:31:08.29ID:kDmi0r/e
頭いいなら機械語直接書いてくれ
俺は頭悪いからモダンな構文使える言語を選ぶよ
0044デフォルトの名無しさん
垢版 |
2022/03/23(水) 07:33:34.18ID:k8Z8CHR2
じゃあgoっていう簡単な言語があるよw Rustとかいうゴミ言語を勧めるバカの言うことは聞かない方がいいよw
0045デフォルトの名無しさん
垢版 |
2022/03/23(水) 07:35:26.97ID:QsWn2aJ/
Goの良さもRustの良さもわかるからそこまで論争になるのがよくわからないw
0047デフォルトの名無しさん
垢版 |
2022/03/23(水) 07:40:32.44ID:k8Z8CHR2
なんかやたら噛み付いてくるんだよねw 事実なのにちょっとでもRustをディスるとw
0048デフォルトの名無しさん
垢版 |
2022/03/23(水) 07:41:18.55ID:Ur6oGy1g
なぜ論争になるかより、なぜ相手にするのかが疑問だ
NG放り込めば始末できるのに
0049デフォルトの名無しさん
垢版 |
2022/03/23(水) 07:41:49.60ID:YNaZlr7q
>>39
色んなプログラミング言語を知らないあなたが無知にみえます
Rustの場合は関数型言語に近くてif式、match式、loop式といったように文ではなく値を返すことが可能なものが多いです
そのため必然的にほとんどの変数利用はimmutableとなります
もちろんRustはmutableも使えますからそこに制限は全くないです
上述したようにif式、match式、loop式といった値を返すことも可能な点でも他の言語よりも自由度と表現力が増しています
0051デフォルトの名無しさん
垢版 |
2022/03/23(水) 07:46:48.46ID:k8Z8CHR2
>>49
近くねーよw 関数型に近い表現が出来るとしか言われてねーよw
そして最近の言語は程度の差こそあれ近い表現も遅延評価も出来るよw
0052デフォルトの名無しさん
垢版 |
2022/03/23(水) 07:57:06.22ID:QsWn2aJ/
rustは学習曲線高いと言っても、一番最初にrustを勉強すると大変だとは思うけど、c++とhaskellあたりを学んでおけば大したことないし、コンパイラがうるさいおかげでよくわからないままメモリ周りのバグを含んだクソコードを書かないという点ではハードルはむしろ低いんじゃないか?
goはそれとは逆のアプローチを取ってるだけでどちらが優れているとかではない気がする。
片方を過剰に擁護するのはプログラミング言語についてあまり知らないから自分の理解できるところだけ切り抜いて騒いでるだけにしか見えない。
goが馬鹿向けの言語とか言ってる人もいるけど、goを使って素晴らしいソフトウェアを作り上げた優秀なエンジニアもたくさんいることを知らずに言ってるなら本当に恥ずかしいことだと思うw
0054デフォルトの名無しさん
垢版 |
2022/03/23(水) 08:02:19.50ID:IC5SATyv
>>44
横入りですまんがGoは言語の機能が低すぎるせいで無駄に記述が長くなり苦痛
書いていると同じパターンが何度も出てくる
Go言語のサポートが少ないため冗長なことを人間がさせられてしまう
0055デフォルトの名無しさん
垢版 |
2022/03/23(水) 08:19:52.35ID:7xSibnEC
>>52
>c++とhaskellあたりを学んでおけば大したことないし

つまり初級者・中級者お断りということかね。
PythonとかJavaあたりのユーザーは絶望的かと。
0056デフォルトの名無しさん
垢版 |
2022/03/23(水) 08:23:01.04ID:k8Z8CHR2
C++の前にCは習得しておきたいし、C++自身もHaskellも学習曲線やばいけどねw
ヤバい言語を2つも習得してようやく他の言語と比較しうる学習曲線になるRustって一体・・・w

Goの冗長さはRustの言語的制約と似たようなものw
明快さの代わりに受け入れざるを得ないw この手の問題は開発環境によりほんのり改善できるw
0057デフォルトの名無しさん
垢版 |
2022/03/23(水) 08:34:40.79ID:Bhs+4jj4
>>55
C++もHaskellも全く知らないけど
Rustを普通レベルには使えるようになったから
C++もHaskellを知らなくても大丈夫なことは保証するよ
0059デフォルトの名無しさん
垢版 |
2022/03/23(水) 08:42:55.48ID:QsWn2aJ/
>>55
この表現は確かに不適切だったと思う。
伝えたかったのは、cライクな構文、メモリ周りの知識、型システムの知識があればrustが極端に難しい言語ってわけではないってことなんだ。
そしてこれらの知識はプログラミングを書いていれば自然と知ることになるものだと思ってる。(c++とhaskellが書けないと理解できないと言いたかったわけではない)
プログラミング初学の人や、プログラマではないが仕事の道具としてスクリプト言語を使ってるような人が学ぶ言語じゃないのとは思うけど、アプリケーションの開発を行うような人にとっては難しすぎる言語仕様じゃない。
0060デフォルトの名無しさん
垢版 |
2022/03/23(水) 08:47:46.12ID:k8Z8CHR2
違う違うぞ
使えるようになったつもりなだけだw
RustにはC++とHaskellが必須!C++の難解なエラーを気が狂いそうなほど読み解き、公衆の面前でモナドとは・・・っていうポエムを書いてからでないと本当の意味でRustの扉は開かないw
0061デフォルトの名無しさん
垢版 |
2022/03/23(水) 09:06:26.09ID:+IZ6XP4Y
>>59
同感
Rustを難しいと言うのは大げさもしくは批判派によるレッテルだと学んで分かった
むしろRustを使うことでの絶大な効果に驚いた
一番大きかったのは実行時デバッグの激減
コンパイル時点で実行時に起き得る様々な問題を食い止めてくれるため開発効率が一気に上がった
使いやすさに加えて実行の速さや省メモリなど一石多鳥
0062デフォルトの名無しさん
垢版 |
2022/03/23(水) 09:23:15.77ID:QsWn2aJ/
>>61
伝わってよかった....
後半の部分も完全に同意する。ブレークポイント貼って変数の値をチェックしながらデバッガをいじくり回すみたいなことをする頻度が激減したのが大きい。
ヤバそうな部分もunsafeとかunwrapみたいにコード上に明示されるのが地味に快適。自分にとってコードって書くことより読むほうが大変だから、そういうところがありがたい。
006338
垢版 |
2022/03/23(水) 09:35:58.30ID:znQ4kzdw
確か、Elixir はスクエニで使っている。
ニコ生でも、会議をやっていた

他には、組み込みのNerves

YouTube で有名な、雑食系エンジニア・KENTA のサロンは、Ruby on Rails だけど
ポートフォリオは、Elixir のPhoenix
0064デフォルトの名無しさん
垢版 |
2022/03/23(水) 10:03:50.80ID:Hqya9b1R
>>62
書きより読み重視ってのは最近の言語全般の傾向であるように思う
GoとRustは全然方向性違うけど、ソースコードの情報量増やして読むコストを下げるという点では同じかな、と
OSSなんかだと書く人より読む人が遥かに多いし、個人開発だったとしても半年前のコードなんて覚えてないから結局読みやすさは重要だよね
0065デフォルトの名無しさん
垢版 |
2022/03/23(水) 10:52:27.45ID:FgzylXVH
書きやすい言語ほど読みにくいよね
書き手の自制心にもよるんだけど
rubyとか書いてるときすっげーストレスないんだけど
あとから見るとその時のノリで書いてるのがよくわかる
Javaは現代視点だとやや冗長かもしれんが
後から読んでも意外と読みやすい
0066デフォルトの名無しさん
垢版 |
2022/03/23(水) 11:32:06.34ID:znQ4kzdw
可読性は重要。
漏れなんか、一月前の自分のコードでも、自分で書いたと分からないからw

この処理は、いつの間に誰が書いたの?
とか、よく他人に聞くw
0067デフォルトの名無しさん
垢版 |
2022/03/23(水) 11:33:27.01ID:k1M19ntv
>>62
たしかにRustでは実行しながらの無駄なデバッグ時間が無くなった
コンパイラによるチェックが厳しい言語ほどプログラミング効率が良くなると実感した

>>64
その通りで1年経つと自分で書いたコードでも忘れてる
機能追加などで再び触るときに読みやすさだけでなく
Rustではデータの扱いや構造をいじった時にミスるとコンパイラが敏感に叱ってくれるのが良い
おかげで時間生産性が大きく改善した
0068デフォルトの名無しさん
垢版 |
2022/03/23(水) 12:00:43.29ID:WWS7e+O4
>>59
>cライクな構文、メモリ周りの知識、型システムの知識があればrustが極端に難しい言語ってわけではないってこと

Pythonユーザーはカスリもしないし、Javaユーザーもcライクな構文以外は知識無いだろ。

>そしてこれらの知識はプログラミングを書いていれば自然と知ることになるものだと思ってる。

そりゃ傲慢だね。
PythonとかJavaを使うのにコールスタックとかヒープとか意識したっけ?
0069デフォルトの名無しさん
垢版 |
2022/03/23(水) 12:23:50.13ID:EvHbv07S
>>68
技術に対する知識も興味も意欲もない人でも
誰でも簡単とかいう主張はしないと思うが…
0070デフォルトの名無しさん
垢版 |
2022/03/23(水) 12:44:20.95ID:WWS7e+O4
>>69
>技術に対する知識も興味も意欲もない人

なるほど。Rustユーザーにとっては
>cライクな構文、メモリ周りの知識、型システムの知識
が技術に対する知識・興味・意欲を持つ人のレベルということか。
このハードルをクリアしているPython・Javaユーザーってどれくらいいるのかな?
0071デフォルトの名無しさん
垢版 |
2022/03/23(水) 12:50:13.13ID:k8Z8CHR2
Rust信者の単発IDがなんかいってるだけw
やってることがやばいんよねw
Rust別に読みやすくないし、変更しにくいし、習得大変だし、ごく一部の超高速超並列処理が必要なクリティカルな領域以外はいいことないからw
0072デフォルトの名無しさん
垢版 |
2022/03/23(水) 13:09:38.08ID:svGg7ZtK
C言語やってC++言語は何となく知っているレベルでRustやればいいなら、C++中途半端な人には嬉しい。
C++用のライブラリなんかは移植しやすいのだろうか。
0073デフォルトの名無しさん
垢版 |
2022/03/23(水) 14:02:38.40ID:QZvXUCU9
>>72
移植しやすさはライブラリの作りに依存すると思う
グローバル変数を雑に使うライブラリなんかだとインターフェースやデータの持ち方を見直す必要がある
スレッドセーフなライブラリならある程度はベタに移植できると思う

ただ枯れてる既存のライブラリをわざわざ移植するのは特別な理由のない限りやる必要はないと思う
0074デフォルトの名無しさん
垢版 |
2022/03/23(水) 14:05:59.79ID:aOOT3ZZt
>>71
Rust程度で難しいというなら
あんさんプログラミングに向いてまへんわ
スクリプトをいじる程度にしとき
0076デフォルトの名無しさん
垢版 |
2022/03/23(水) 16:44:05.96ID:QZvXUCU9
>>75
Rustの得意とするシステムプログラミング領域がそもそも初心者お断りというか、初心者が手を出そうとしない領域だよね
0077デフォルトの名無しさん
垢版 |
2022/03/23(水) 16:47:42.50ID:5QD+Xegu
>>75
Rustは普通のプログラマーなら余裕
ちょろっとスクリプトを書くだけの似非プログラマーには無理
0078デフォルトの名無しさん
垢版 |
2022/03/23(水) 19:17:49.04ID:Ur6oGy1g
なぜ簡単に分断工作にひっかかるのか
うちじゃ老若男女Rust使っとるよ
0079デフォルトの名無しさん
垢版 |
2022/03/23(水) 19:24:04.56ID:XLgqvJYc
先入観のない初心者はRustの学習が速い
Rustは抽象度高く分かりやすく出来ているから
無理に既存の低レベルのものに例えて考えないほうが飲み込みが早いということかも
0081デフォルトの名無しさん
垢版 |
2022/03/23(水) 19:40:04.95ID:QZvXUCU9
本当の初学者向けの優しさというのは入門書が多いとかチュートリアルが充実してるとかで
言語仕様の善し悪しはそんなに影響しないのでは

というかプログラミング初心者がrust使って何する想定なの?
0083デフォルトの名無しさん
垢版 |
2022/03/23(水) 20:00:27.47ID:S8syHMIu
Rustユーザーの多くは初心者向きじゃないという認識のようですな。
ちょろっとスクリプトを書くだけの初心者とか初級者はお断り、と。
0084デフォルトの名無しさん
垢版 |
2022/03/23(水) 20:12:48.64ID:NzxRseYp
>>83
そういうのはインタプリタ&スクリプト言語でもいけるケースが多い
もちろんRustで書けば速さや省メモリの点でも有利なので環境によってはRustも使う
0085デフォルトの名無しさん
垢版 |
2022/03/23(水) 20:58:37.09ID:k8Z8CHR2
Rustなんて誰も使わないので大丈夫ですw
嘘ばかりついてるから、誰も信用せず、普及もしないw
0088デフォルトの名無しさん
垢版 |
2022/03/23(水) 21:47:49.22ID:EHvtOoqR
>>25
dockerはgo製と聞いたことがある。
0089デフォルトの名無しさん
垢版 |
2022/03/23(水) 22:20:55.11ID:ln8rDjYo
>>52
> goが馬鹿向けの言語とか言ってる人もいるけど
それは俺の事だろうが、俺はそれ自体を馬鹿にしているわけではない。
実際、元祖馬鹿向けCのJavaはCよりも成功してる。

簡単は正義だ。問題は、前スレ870で言ったとおり、簡単の使い方は単純には3通りあって、
A. もっと馬鹿を雇って人件費を抑える
B. 簡単になった分早く処理して、回転数で稼ぐ
C. これまでは複雑すぎて現実的に不可能だった事に挑戦する
で、「楽になった=(A)」しかやってないのなら馬鹿にされて然るべき。
(B)(C)に関しては方向性は違うがいずれも脳味噌フル回転だから、「楽」とは感じられないはずなので。

が、まあ、(A)で行くのも自由だし、一々他人を馬鹿にする趣味もないしで、これは放置だ。
ただ俺は(C)を目指すから、それ(キラーアプリ)は何だ?と最初から何度も尋ねてるのに、
出てこない=君らも目指してないし、これまでも目指した人が誰も居なくて完成品もないから列挙出来ない
のだから、馬鹿にされても文句言えないと思うけど。手段が目的化してるだけだし。
(この点はRustも同様。
> 安全側に振ったC++なRust (32)
というのは当たってる。馬鹿向けC++になってしまっていて、(C)を目指した奴が居ないのも同じ)

多分な、コンパイル時にエラー=文法エラーにしないといけない、と固執してる点が間違ってる。
初心者がよくやるミスを救済したいのなら、IDEで色を付けるだけで済む。例えば、
・ローカル変数と、それ以外の変数(クロージャ等)は、色を変える (これは既に言ったが)
・再代入されてる変数は、色を変える
後者もすさまじく馬鹿っぽいが、現実的にこれで問題ないだろうよ。(まあ俺はimmutableでもいいんだが)

本来プログラマが学ぶべきなのは、Rust公式勝手訳日本語版まえがき(前スレ990)にある、
> やっかいな落とし穴を回避する術
なんだよ。それを文法にしてそれ以外はエラーにすれば学ばなくてもよくね?文法だけでいけるよね!
がRustの試みでもあるようだけど、ならコンパイラではなくリンターにするべきだったと思うのだが。

(と思ってたが…Goのは出てきたがまあ書いたので投稿しておく)
0090デフォルトの名無しさん
垢版 |
2022/03/23(水) 22:21:53.85ID:ln8rDjYo
>>88
なるほどDockerなら上手くランタイムと融合して実装の手間は大いに減る気はする。
(他言語では自前で実装しなければならない部分がランタイム内に既に実装されてるという意味で)
ランタイムがOSモドキなので仮想系は確かに強いかも。
ただしこれは言語の強さというよりは、処理系が偶々フィットした感じだが。
0091デフォルトの名無しさん
垢版 |
2022/03/23(水) 23:05:09.57ID:k8Z8CHR2
何を勘違いしてるのか知らんが、GoにVMはないし、仮想系?ってなんだよw
OSもどきというのはどういうこと?w
ILなどをその場で解釈/実行したり必要ならnativeにして実行を動的に実施する機能が追加されてるだけ(?)じゃないんか?w
gollvmみたいなのはあるけどw
0092デフォルトの名無しさん
垢版 |
2022/03/23(水) 23:48:27.71ID:uZNiLL5S
Dockerってシステムコールしまくってコンテナの実行環境を整備してるだけだろ?
コンテナの実行というクソ重い仕事に比べたらそりゃGoのオーバーヘッドなんか何の問題にもならんだろうな
0093デフォルトの名無しさん
垢版 |
2022/03/24(木) 01:09:04.02ID:pqCNb7jw
rustってライブラリの充実度って現状どんな感じですか?
結局pythonが当たったのってライブラリの充実度がでかかったのでそこ重要な感じがするんですけど
0094デフォルトの名無しさん
垢版 |
2022/03/24(木) 01:11:18.00ID:1Vr2GJ3G
どこの馬の骨が書いたのか分からないゴミみたいなのが散乱してるだけの原初の野原状態w
0098デフォルトの名無しさん
垢版 |
2022/03/24(木) 02:28:03.86ID:WqRDDg3u
>>89
あまりにもデタラメすぎ
普通のプログラミング経験がないのか?
色を付けたりリントが頑張れば何とかなると思い込んでる時点でお子様プログラマーだな
0099デフォルトの名無しさん
垢版 |
2022/03/24(木) 02:41:26.25ID:1Vr2GJ3G
>>97
はいはい嘘乙
こういうのはRustの学習用何かを売りたいだけのアホだから踊らされないでね
0100デフォルトの名無しさん
垢版 |
2022/03/24(木) 03:24:56.84ID:LzBWTpj6
>>99
たいてい必要とするライブラリが充実しているので合ってるじゃね
むしろRustで困ったこと何があるの?
0101デフォルトの名無しさん
垢版 |
2022/03/24(木) 04:31:02.79ID:1Vr2GJ3G
どこの誰が作ってんのか分からんやばいライブラリを疑心暗鬼で使わないといけないからw
俺は業務で使ったことはないから、その辺の知見はないw
npmとかだと人気とか見れるし、これが定番ってのがある程度見えてるんだけど、Rustにはそれらが全くないのだよw
0102デフォルトの名無しさん
垢版 |
2022/03/24(木) 04:41:53.12ID:aaqsPLkK
>>101
なぜそんな嘘を付きまくっているの?
npmのJavaScriptと比べても開発状況は同じ
さらにダウンロード数やその推移もRustは全て公開されていて人気状況ももちろんわかる
0103デフォルトの名無しさん
垢版 |
2022/03/24(木) 05:50:03.15ID:IpI64M2x
自分でライブラリのコード読むような連中はRust使う旨味無いからC++使い続けてるでしょ
漏れの分野じゃRustの気配全く無いぞ
0105デフォルトの名無しさん
垢版 |
2022/03/24(木) 05:54:59.24ID:1Vr2GJ3G
ちなみにどこかの日本人が自分で作ってたのがあるのは知ってるけど、そういうことじゃないから先に言っておくねw
0106デフォルトの名無しさん
垢版 |
2022/03/24(木) 07:00:09.81ID:FIGV+eJh
同じなんて言ってないだろ
人気だから安心理論は笑うが
0107デフォルトの名無しさん
垢版 |
2022/03/24(木) 07:08:59.34ID:FIGV+eJh
あ、同じって言ってた
同じじゃねえょ
0108デフォルトの名無しさん
垢版 |
2022/03/24(木) 09:02:13.23ID:uXrCWmC0
2021年のRust利用に関する調査結果が発表
https://codezine.jp/article/detail/15590
WebAssemblyアプリ開発で最も使われている言語はRust
https://www.publickey1.jp/blog/21/webassemblyrustthe_state_of_webassembly_2021.html
グーグルやMSが「Rust」言語でOS開発、背景に国家による諜報活動の影
https://xtech.nikkei.com/atcl/nxt/column/18/00692/042700054/
「Atom」の開発者が究極のコードエディターを目指す 〜「Zed」の開発が始動
「Electron」を捨て、Rust言語を採用。GPUI、tree-sitterなどで武装し、超高速なコードエディターに
https://forest.watch.impress.co.jp/docs/serial/yajiuma/1374986.html

プログラミング言語「Rust」の普及に立ちはだかる壁
https://japan.zdnet.com/article/35153014/
なぜ「Rustは難しい言語」とされるのか――習得の難しさとその対策をWebエンジニアが考察
https://atmarkit.itmedia.co.jp/ait/articles/2201/26/news004.html
0109デフォルトの名無しさん
垢版 |
2022/03/24(木) 10:45:51.40ID:+3oKH6IH
人気だから云々というのはデータサイエンティストの商売道具なんだな
それに、変数の型など書かない方が、実行時のデータを分析する仕事は増える
0110デフォルトの名無しさん
垢版 |
2022/03/24(木) 10:56:08.60ID:Ae+CEOFA
>>104
おまえnpm trendsの内容を見てないだろ
単にダウンロード数などの数値がわかるだけだぞ

>>105
npm trendsも個人がやっているだけだぞ
0111デフォルトの名無しさん
垢版 |
2022/03/24(木) 11:40:40.62ID:v7pSPIP9
ダウンロードのグラフを見て採用を決めるアホはいないからそこはどうでもええよ
どうせnpm公式を見ることになるし
Rustなら同じ情報は https://crates.io/ にあるし
その詳細ドキュメント https://docs.rs/ を見て決めるよ
0112デフォルトの名無しさん
垢版 |
2022/03/24(木) 12:21:02.66ID:Hvf7BfqR
cratesはいい名前のライブラリ程放置ライブラリで、いいライブラリはわけわからん名前だから口コミ以外でライブラリ見つけられんのよな
でも口コミが有効な程ユーザーがいないので結論としてライブラリ見つけられん
0113デフォルトの名無しさん
垢版 |
2022/03/24(木) 12:28:49.48ID:cpMYWIcY
>>112
そんなの要らん
検索でダウンロード順などにも出来るぜ
人気だけで決めるようなレベルの人ならそれで十分
どの世界でも同じだが普通は内容を見て検討
0115デフォルトの名無しさん
垢版 |
2022/03/24(木) 12:53:05.46ID:tho1Y8H6
いつも同じパターン
RustとC#のアンチなガイガー君がたくさん書き込みをしてそれらを叩く

RustとC#の話ばかりになる

Rustは人も多いので色んな情報や質問が出てきてガイガー君が寝てる時間も盛り上がってる現状
0118デフォルトの名無しさん
垢版 |
2022/03/24(木) 13:30:34.37ID:hpnd5vIU
結局rust厨ってのは他の言語に対してマウント取りたいだけだから自分のスレに行かんのだろう
0119デフォルトの名無しさん
垢版 |
2022/03/24(木) 13:38:11.84ID:C/wmaJvp
>>116
そうなのよ
C++Rustスレで暴れているだけならいいのだけど
Rust本スレでもRust叩きをして荒らしていて困ってるの
0120デフォルトの名無しさん
垢版 |
2022/03/24(木) 14:03:00.30ID:cnbeCFj/
>>113
内容を見るにはまず見つける必要があるんだが……
ダウンロード順は人気の分野のものしか見つからん
0121デフォルトの名無しさん
垢版 |
2022/03/24(木) 14:10:28.86ID:cnbeCFj/
例えばダウンロード順だとwebとかで検索してもactix-webは二ページ目になるんだよな
我々はarctic-webが人気と知っているからこれを見つけることが出来るが、知らなかったら見つけられんだろこれ
0122デフォルトの名無しさん
垢版 |
2022/03/24(木) 14:16:19.41ID:JB9oIWQh
人気バカにしてるやついるけどかなり重要な要素だろ
今後継続してメンテナンスされやすいかどうかの違いは大きい
0123デフォルトの名無しさん
垢版 |
2022/03/24(木) 14:46:16.02ID:RmgcY/8b
>>121
ダウンロード数が多いのが並ぶ分野ならば2ページ目も当然見る
1ページ目の各々の内容を確認すればweb関連のうち自分が目的とするものか否かはすぐわかる
そして今actix-webより上に並ぶものを見てみたがいずれも重要な存在ばかり
中身を見て自分が今必要なものではなくとも把握しておく価値あるものがズラリ
0124デフォルトの名無しさん
垢版 |
2022/03/24(木) 14:50:46.28ID:RmgcY/8b
>>122
Rustに限らずどこでも同じだが
ダウンロード数が多いものと人気は食い違うこともある
例えば複数の領域にまたがるものはダウンロードが多くなる
しかし自分が求めている特定の領域に限れば1番人気とは限らない
0125デフォルトの名無しさん
垢版 |
2022/03/24(木) 18:22:21.38ID:sVFN7N70
>>123
うーん。これは流行らない言語大好き言語マニアの考え方
成果が出る人間の大多数は他分野のものを把握するより自分が作りたいものに集中するので、こういうオタクに占有された言語はキツい
ゆるふわのpythonとかjsなんかが流行るのが現実だからな
0126デフォルトの名無しさん
垢版 |
2022/03/24(木) 19:07:56.38ID:d1t9w96u
>>125
それは明らかにあなたの勘違い
今回の質問者は"web"なんていう非常に幅広い曖昧な単語で検索している
これでは多くのライブラリ検索システムにおいてもwebに関係した様々なものが大量に出るであろう
各人で目的のものが異なるのだから質問者の目的のものが2ページ目に出たのは何ら不思議ではない結果
0127デフォルトの名無しさん
垢版 |
2022/03/24(木) 19:14:33.26ID:sVFN7N70
>>126
よく知らんけどactix-webが一ページに出るようなキーワードって何かある?
もちろんactix以外で
0129デフォルトの名無しさん
垢版 |
2022/03/24(木) 19:19:33.96ID:sVFN7N70
>>128
それは人気の分野でしか出来ない方法だな
actixはフレームワークという人気分野だからググったらヒットするけど、ユーザーの少ない分野ではそれは無理
0132デフォルトの名無しさん
垢版 |
2022/03/24(木) 19:32:38.88ID:Qyn6vTpY
googleで検索するよな
0135デフォルトの名無しさん
垢版 |
2022/03/24(木) 19:45:35.24ID:1Vr2GJ3G
必死なRust信者が単発IDで頑張ってるねw
crate.ioでは良い関連が導出できないのか、そもそも関連の深いものがないのか、効果皆無だったから出さなかったw
ようは全然alternativeが提示されないってことねw
人気=ダウンロード数とできないかどうかなんて些細な点だから、そんな例外を考慮する前に基礎的な仕組みがないことを嘆く必要があるよw

RustスレでRustの話をするのは何の問題もないと思うw
ただvsスレでもない他の言語スレでスレ違いを指摘されても延々とRustの話をしてたRust信者はどうかと思うw
このスレでも嫌われてるよねw Rust w
Rustの教材そんなに売りたいの?w 炎上商法?w 多分こう書くと勉強しはじめる人が増えてゴミ記事が大量に湧くんだろうねw
0136デフォルトの名無しさん
垢版 |
2022/03/24(木) 20:16:44.07ID:/HBDruak
>>135
そりゃcrate.ioでは出てこなくて当然

あとここはスレタイにRustもあるし次世代言語の一つなのでスレ違いではない
そもそも貴方がRust叩きをしている筆頭
0137デフォルトの名無しさん
垢版 |
2022/03/24(木) 20:22:21.45ID:1Vr2GJ3G
>>136
スレ違いなところに出張して無関係なRustの話を延々放置してても続けるし、指摘してこちらに誘導しても居残り続けるRust信者が嫌われてるという話だよw
ここでRustが叩かれてるのはそういう理由だという話をしているw
Rust自体の魅力は放っておいても世間に滲んでいっていたというのに、お前ら信者が嘘と誇張とルール無視し放題でヘイトを稼いでいるせいで全く浸透してないんだよw
0140デフォルトの名無しさん
垢版 |
2022/03/24(木) 21:22:05.35ID:1Vr2GJ3G
こんなところ読んでる奴は大抵の言語はすでに知っててROMってるのが大半w
他の言語をディスるRust信者は単純に嫌われて(恐らく相当強力な)ユーザーを減らし続けてるだけと分かってくれw
0141デフォルトの名無しさん
垢版 |
2022/03/24(木) 22:00:47.79ID:K94Y9ZL5
ユーザーってGAFAMのこと?
0143デフォルトの名無しさん
垢版 |
2022/03/24(木) 23:03:48.67ID:9cbRkQeA
対象が有名人などでも何でも同じだが
好きか嫌いかではなく
実は興味があるか無いかの二択
嫌いとかアンチは興味がある側の人
それら含めて興味がある人が多いと話題性があり盛り上がる
そして知らなかった人やそれまで興味を持たなかった人々が興味を持つ機会となる
さらにそこから一定数はファンが生じる
0144デフォルトの名無しさん
垢版 |
2022/03/24(木) 23:18:11.18ID:1Vr2GJ3G
炎上商法で成功したソフトなんて1つもないよw 残念だったねw
悲惨な末路しかないw
0145デフォルトの名無しさん
垢版 |
2022/03/24(木) 23:18:59.49ID:DqvTJnEp
>>100
やっぱりpythonがブレークした一つのきっかけはnumpyとか機械学習系とかだと思うんですけどその手のライブラリはもう揃ってきてるんですか?
0146デフォルトの名無しさん
垢版 |
2022/03/24(木) 23:20:45.72ID:1Vr2GJ3G
このスレで叩かれたり見た人がツイッターで呟く
→違和感を感じた誰かが引用RT
→影響力のある人の目に止まり原因を追い始める
→辿り着いて絶句
→Rust今後やばそうだって思って一歩引いて静観を決める(←イマココ)
0149デフォルトの名無しさん
垢版 |
2022/03/24(木) 23:51:19.57ID:rNy1eSrz
タブレットモードで使ってるのが悪いのか、Rust謹製のFirefoxはしょっちゅう固まる。
閉じることが出来なくなるのが辛い。
0151デフォルトの名無しさん
垢版 |
2022/03/25(金) 00:47:48.87ID:4OElhmyv
>>140
このスレをざっと読んだけれど
叩かれている言語はC#とRustで
叩いているのは連投しているキミだと感じた
キミの主張ではどの言語が誰に叩かれているんだい?
0153デフォルトの名無しさん
垢版 |
2022/03/25(金) 01:28:59.11ID:4czHOVAh
>>151
そいつ、ここしばらくいろんなスレで荒らしまわってる通称ガイガー君で、何かを聞いてもまともに議論にならないよ
0155デフォルトの名無しさん
垢版 |
2022/03/25(金) 08:17:20.71ID:yQTGjdBz
このスレrustしか話題ないなか?w
いい悪いは別として圧倒的にrustは注目されてて他の言語(Nimとか)は空気だなwwww
0156デフォルトの名無しさん
垢版 |
2022/03/25(金) 08:21:15.09ID:6IycpRpt
Nimはオワコン
人気が出なかったからな
0157デフォルトの名無しさん
垢版 |
2022/03/25(金) 08:29:35.16ID:XAr12dgF
nimのドット演算子は合理的だと思うけどなぁ。

Pythonあたりに取り込まれんかね。
嫌われている関数呼び出し構文がずいぶん改善すると思う。
0161デフォルトの名無しさん
垢版 |
2022/03/25(金) 08:37:51.44ID:6IycpRpt
今時大企業の莫大な資金力なしに流行る言語を生み出して勝たせることが出来るわけもなし
0163デフォルトの名無しさん
垢版 |
2022/03/25(金) 09:08:32.18ID:u1kd+8tP
スレタイにある言語だとNimとRust以外はもう採用領域もある程度固まってて良くも悪くも話題がない
Rustはまだそのレベルに到達するかどうかってラインだから、人によって見方が違って話題になるんだろうね
Nimとかはそもそも知ってる人がほとんどいないレベルだろうからなぁ
0166デフォルトの名無しさん
垢版 |
2022/03/25(金) 10:42:45.45ID:ON48JF13
採用領域とはなんだ?
要するに採用された物以外を規制してるんだろ

Rustが参照を規制しているのと同じようなことを
機械ではなく人間が手動でやってる
0167デフォルトの名無しさん
垢版 |
2022/03/25(金) 10:51:27.96ID:9ogzvJw1
>>166
参照を規制してプログラミングするのはどの言語でも同じ
そうしなければ一番広い意味でのデータ競合がどの言語でも起きうる
Rustはそれをどんなに複雑なパターンでもコンパイラがチェックしてくれるという違い
0168デフォルトの名無しさん
垢版 |
2022/03/25(金) 11:08:02.15ID:4czHOVAh
Rustが有力になる領域はOSみたいなミドルウェアやベアメタルとかの低レベルなシステムプログラミングよ
その辺だとそもそもC/C++/Rustしか選択肢にないけど
0170デフォルトの名無しさん
垢版 |
2022/03/25(金) 11:14:36.50ID:eoZx8ezX
Rustを試したことなくてイメージだけで語ってるやつは
ボローチェッカさんの存在を身に染みてないんやろなw
他の言語だとコンパイラさんに叩かれるだけだけど
Rustの場合はボローチェッカさんにも詰められるんやぞ
0171デフォルトの名無しさん
垢版 |
2022/03/25(金) 11:21:56.33ID:QvA9KxTG
>>170
あれは本当にありがたいよね
プログラミングの効率が一気に上がった
実行時に無駄にデバッグしていた時間がほとんど無くなったのが大きい
0173デフォルトの名無しさん
垢版 |
2022/03/25(金) 11:55:17.22ID:mOGsJD9H
>>168
実行速度が求められたり、複雑さなのに安定性が求められるものに向いている気がする
口では何と言っていても実態では安定性にそれほど価値を置いてないケースも多々あるから
0174デフォルトの名無しさん
垢版 |
2022/03/25(金) 11:58:21.38ID:k+N4+RC0
>>170
NLL入ってからborrow checkerに怒られることはほとんどなくなったよ

>>172
単によく知らないから質問しただけなんだけど、
Nimは低レベルを扱いやすくする機能は特にないってことか
Cへとトランスパイルされるのは低レベルへの対応というよりも、対応プラットフォーム増やすことや性能稼ぐことが目的という理解で正しい?
0175デフォルトの名無しさん
垢版 |
2022/03/25(金) 12:12:09.59ID:whQHGuOj
NimはDと同じようなイメージだな
C++からいろいろ便利にしましたって感じなんだけど、それを言うならC++20だって良くなってるし、わざわざ乗り換えるほどでもないよね、ってなりがち
Rustくらいの特徴が何があれば、多少面倒でも乗り換える人は出てくるんだろうけど
0176デフォルトの名無しさん
垢版 |
2022/03/25(金) 12:12:46.01ID:vqaIaLyp
>>174
以前のRustコンパイラはたしかに厳しすぎて吐くエラーも見にくかったけど
non lexical lifetime対応した今のRustコンパイラは普通に書いていれば困ることはなく
コンパイラの出すエラーも非常に見やすくて何が問題なのかすぐわかる上に
何を直すと良いかのアドバイスもあったりしてコンパイラ親切さトップ言語になったね
0177デフォルトの名無しさん
垢版 |
2022/03/25(金) 12:28:24.72ID:XAr12dgF
>>175
Rustはbetter c じゃなくてsmart/simplified c++あたりだわな。
Rustよりマイルドなc++標準サブセット出ないかな。
0179デフォルトの名無しさん
垢版 |
2022/03/25(金) 12:33:45.17ID:XkeiXeqJ
>>178
もちろんRustより良い言語が出てくればそうなるし良い言語が出てくるのは良いこと
しかし現状ではRustより良い言語がないし他に登場する気配もない
0180デフォルトの名無しさん
垢版 |
2022/03/25(金) 13:20:25.76ID:yp7Tyx5s
Rustより良い言語が出て自然と消えるのは良いことだろ
ただ、今のところはRustは良い言語だし使いたいと思う
0181デフォルトの名無しさん
垢版 |
2022/03/25(金) 14:31:56.50ID:+bBvNTMI
Rust は、Linux カーネルの開発の一部で取り入れるよ、っていう話で初めて注目した。
0182デフォルトの名無しさん
垢版 |
2022/03/25(金) 14:32:33.84ID:2aIwxdP0
>>176
おかげでよりブラックボックス化したけどな。まともな文法定義がもうできなくなってる。
0185デフォルトの名無しさん
垢版 |
2022/03/25(金) 16:28:19.83ID:yp7Tyx5s
>>184
セマンティクスのことを言いたいんじゃないか?
0188デフォルトの名無しさん
垢版 |
2022/03/25(金) 18:08:36.16ID:/LCeqdiL
>>182
何もブラックボックス化していないし文法定義に変化はない
Rustを叩く人はなぜデタラメばかり言うのだろうか
0189デフォルトの名無しさん
垢版 |
2022/03/25(金) 19:28:43.78ID:szsym4Ce
>>184 >>188
え? より厳密になってんじゃないの?

機能の安定化とNLLのバックポートを備えたRust 1.36
Rust 2015でNLLがサポートされたため、古いボローチェッカは間もなく言語から削除されることになる。この移行を安全に行なうために、新たなボローチェッカでは、古いボローチェッカでは受け入れられていたが、新たなボローチェッカでは違反になるコードに対して、警告を発するようになる予定だ。
0191デフォルトの名無しさん
垢版 |
2022/03/25(金) 19:52:52.64ID:k+N4+RC0
>>189
それは古いborrow checkerのバグでコンパイル通ってなかったコードがエラーなるということだと思う
基本的には新しいborrow checkerの方が制約は緩いはず
0192デフォルトの名無しさん
垢版 |
2022/03/25(金) 19:53:32.69ID:k+N4+RC0
>>191
バグでコンパイル通ってなかった、ではなく、バグでコンパイル通ってしまっていた、が正しい
0193デフォルトの名無しさん
垢版 |
2022/03/25(金) 20:22:05.99ID:RUUx2+G1
でもバクだろうと通らなくなるんだから文法変わってるという意見が正しいな、ごちゃごちゃ並べ立て言い訳してるみたいだけど
0195デフォルトの名無しさん
垢版 |
2022/03/25(金) 20:29:27.44ID:Mjr9Vw0y
文法ってのが構文+意味論みたいなのを指してるなら
NLL導入前後で構文は変わらず意味論は変わったから、まぁ全体としては変わってるでいいんじゃない?
それはそれとして文法定義ができないってのは意味不明だけど
0196デフォルトの名無しさん
垢版 |
2022/03/25(金) 20:34:34.89ID:k9SUNOiI
>>193
文法は一切変わっていない
大雑把に言うと
以前はコードの文字通りに追うだけで借用ライフタイムを無駄に広く取ってチェックしていた
だから厳しすぎて今では通る普通のコードが通らなかったりした
変更以降は実際に使われている状況を追うことで借用ライフタイムを実用の意味あるものとした
だからほとんどのケースで緩くなってプログラミングする上で困ることがなくなった
0198デフォルトの名無しさん
垢版 |
2022/03/25(金) 20:58:59.81ID:tb8uqVBL
>>196
フロー解析に頼るって信者的にどうなの?
あくまで型でチェックしてるのが美しいんじゃなかったのか
0199デフォルトの名無しさん
垢版 |
2022/03/25(金) 21:02:27.36ID:I37gdFG5
>>196
ある2つの形式言語ABで、同じ文章がAで受理してBで拒否するんだったら、そりゃ「ABは文法が違う」としか言えんな。

まぁ、だからと言って言語自体を否定する類の話じゃないけど、Rustを神聖視するあまり横車を押そうとするのはアホに見えるからやめたほうがいいよ。
0201デフォルトの名無しさん
垢版 |
2022/03/25(金) 21:17:24.39ID:LQTFL9vM
>>199
その程度で文法が変わったとは言わないと思う
その解釈だと今後もRustは文法がどんどん変わる計画となっている
例えばライフタイムについても現在stableでは通らないものがnightlyでは通るように更に緩くなっていくことが確定している
一方でeditionが変われば今まで通っていた記述がエラーとなるなど通らなくなることもある
Rustは今後もどんどん使いやすく向上していくよ
0204デフォルトの名無しさん
垢版 |
2022/03/25(金) 21:23:34.44ID:0Q30DE2u
Rustプログラマーは給料上がっていくだろうね
そうすると人口も増えていく
パイソンもそうだったし
0205デフォルトの名無しさん
垢版 |
2022/03/25(金) 21:23:43.31ID:YQJ39BAy
>>201
最終的にライフタイムや借用を人間が一切明示しなくなってGCなしC#みたいになるのがゴールなの?
それでいいのか信者は
0206デフォルトの名無しさん
垢版 |
2022/03/25(金) 21:24:25.90ID:VGJQOYmV
>>201
通らなかったものが使えるようになるのはただの拡張だがその逆は破壊的変更。
後者がそう頻繁にあるとは思わんがな。
0207デフォルトの名無しさん
垢版 |
2022/03/25(金) 21:25:38.70ID:I37gdFG5
>>201
>その解釈だと今後もRustは文法がどんどん変わる計画となっている

当たり前だろ。
お前は何を言っているんだ? 形式言語の文法を何だと考えているんだか。
そういうアホな主張をするからRust信者は狂信者扱いされるんだよ。
0210デフォルトの名無しさん
垢版 |
2022/03/25(金) 21:40:29.03ID:AozLNx79
>>200
craterはcrates.ioの全クレートをコンパイルしてみてコンパイラのバージョンアップで壊れるやつがいないかどうかチェックする仕組みのこと
スクリプト言語だとチェックできるのが構文エラーくらいしかないからあまり意味はないかも
0211デフォルトの名無しさん
垢版 |
2022/03/25(金) 22:03:36.42ID:cG5UiOtS
>>207
確かに言語の拡張も文法が変わったと言える
どのプログラミング言語も常に文法を変えながら拡張されていくのだろう
0214デフォルトの名無しさん
垢版 |
2022/03/25(金) 22:30:28.83ID:6wzTiGXz
>>201
同じコードで通る/通らないが変わるのなら、それは普通は「文法の変更」という。
なぜなら、

Error: コード生成が出来ない
Warinig: コードは生成可能だが、普通はこんな事をする必要もないからバグだよね?

だから。ここをRustはおそらく(haskell信者が一時期言ってた)

・Rustのアプリにはバグがない。なぜなら、バグのあるコードは全てコンパイラが落とすから

をやりたいのだろう、通常は警告のところをエラーにしてる。
ただこれは一部馬鹿にとっては逆効果で、

・エラーがなければ全て良し

だと勘違いしてしまってるように見える。
(別人だが)フレームワークにドキュメントで禁止されてるコード食わせてドヤってる馬鹿とか、
>>98 もそう。今時のエディタだと文字列/正規表現リテラルは色が付くが、
エスケープを失敗するとコード全体がリテラルの色になる。いくら馬鹿でもこれを無視はしないだろ。
従う気があればエディタで『予定と違う場所に』色が付くだけで十分なんだよ。
本来は警告も無視せず、一つ一つ問題がないか確認するものだし。
その辺面倒くさがってエラーに一本化した結果、悪癖が付いてしまってる。


ただまあこれはいいとして、
Go(2009)/Docker(2013)だから、これはタイミング的にも「これで勝つる!」だったのだろう。
とはいえDockerは普通の人が組むアプリではないので他案件/構造も引き続き募集中だが、
結局Rust(2010)にはないのか?本当にメモリ安全な言語がなくて困ってる奴がいれば飛びついているはずで、
時期的には2014頃に何か出現しててもおかしくないのだが。
未だに何もないのなら、所詮は馬鹿向けC++で、ポシャる見通しの方が高いだろうよ。
0217デフォルトの名無しさん
垢版 |
2022/03/25(金) 22:43:28.74ID:4czHOVAh
Ruby on Railsのようなキラーアプリ(ライブラリ)はRustにないのか、っていう話でしょ
そもそもRustはシステムプログラミング言語だし、そういう低レイヤーに縁がないエンジニアはこれからも使う可能性低いっしょ
0218デフォルトの名無しさん
垢版 |
2022/03/25(金) 22:49:09.03ID:k+N4+RC0
>>199
文法って言ったらシンタックスであってコンパイラはシンタックスだけをチェックしてるわけじゃないんだから
コンパイラが受理しないからと言って文法が違うとはならないでしょ

>>214
文法の変更って言ったら普通は例えばBNFが変わるとかそういう話でしょ
0219デフォルトの名無しさん
垢版 |
2022/03/25(金) 22:49:43.62ID:883KHxPC
>>214
君は書き込みをする前に二つの点を改善しなさい
一つ目は意味の分かる文章を書くこと
頭をゼロにして読み返してみればおかしなところに気付くはず
二つ目は批判したい対象についてもっと学習すること
妄想で話を進めるから意味不明と間違いが多い
0220デフォルトの名無しさん
垢版 |
2022/03/25(金) 22:55:01.03ID:6wzTiGXz
>>216
(スレ的に昔の話を混ぜ込んでわかりにくくなってたのならすまん)

90で言ったとおり、Dockerを組みたいのならGoは多分最適で、結果、
Go(2009)/Docker(2013)と順当な期間でデビューし、その界隈では広く使われるに至ってる。
Dockerのアイデアが先にあって偶々出てきたGoに飛びついたのか、
GoにインスパイアされてDockerの構造を思いついたのかは分からんが。

Rustが「他の言語では現実的に不可能な」レベルの得意分野があるのなら、
同様に、Rustが最適だ、と思えるアプリが既にあるか、開発中のはず。

俺は何度も言ってるが(C)を目指すべきだと思ってるので、(89参照)
その言語が得意とする構造等があれば、
俺が作りたいアプリにそれが含まれてたらその言語を使う、というだけ。
(言語の習得が目的ではない)
0221デフォルトの名無しさん
垢版 |
2022/03/25(金) 23:09:22.77ID:f8iKGyO6
>>220
前にもデタラメと意味不明なことを書いていた人だったのか
浅はかな知識ならびに自分勝手にこうでなければならないと決めつけた話を元に暴走しているためにデタラメと意味不明になっている
0223デフォルトの名無しさん
垢版 |
2022/03/25(金) 23:17:57.63ID:sK8SIzoZ
>>218
文法=構文って思ってるのは分かるけど皆がそうとは限らないよ
自分だったら構文と意味論の区別が問題になるようなこのケースで
文法なんてあいまいな用語は使わないけど
強いて言うなら構文と意味論は両方文法に含まれると思っている
0226デフォルトの名無しさん
垢版 |
2022/03/25(金) 23:25:23.45ID:k+N4+RC0
>>223
カジュアルに文法って言葉使ってるなら自分も気にしないんだけど
>>182 が文法定義って言ってたり
>>199 で形式言語って言ってたりして
それどういう意味で言ってるの?ってのが気になってつっかかってしまった
0227デフォルトの名無しさん
垢版 |
2022/03/25(金) 23:26:20.50ID:4czHOVAh
>>220
実際、Rustの最高のターゲットはシステムプログラミングだから、そういう意味ではCと似ている
だからLinuxカーネル、Android OSみたいな巨大プロジェクトでも採用されるまでに至った

その他の有名事例はFirefoxは常識として、Dropboxのファイルストレージ、DiscordのStateサーバ、Figmaのmultiplayerサーバ、AWSのS3/CloudFront/Bottlerocketとかかな

https://www.rust-lang.org/production/users
細かく挙げればここにあるようにいくらでもあるけど、眺めてみると件数としてはhigh performanceを求めて採用する事例が多いかな
0228デフォルトの名無しさん
垢版 |
2022/03/25(金) 23:32:52.17ID:6wzTiGXz
>>218
> コンパイラが受理しないからと言って文法が違うとはならないでしょ
少なくともCではほぼ同義だし、他言語でもそんなもんだと思うけど。

Cの場合は「自分の足を撃て」で躊躇なく撃つ言語なので、エラーは、

・シンタックスエラー
・記憶領域(変数のサイズ)等が確定的でなく、オブジェクトコードに出来ない
 (これはC特有で、要はソースを食わせる順が間違ってたりしててサイズを知らない物が存在した場合。
 2パスコンパイルをしてる他言語では発生しない)

だから、他言語でもコンパイルが通らない=文法エラー、という認識が普通だと思うよ。

Rustの場合は他言語だと警告のところをエラーにしてるから話がおかしくなる。
元々全部警告にしてたら、誰も文法が変わったとは認識しないだろうよ。
だけどそういうコードの存在自体を許さないのだから、エラーにしているわけで。

元々コンパイラは色々情報持ってるんだから、気づいたおかしなところも吐いてくれ=警告で、
なら警告チェックを厳しくしてバグ検出出来るんじゃね?=リンターなわけ。
だから簡易リント機能は元々コンパイラにあって、さらにそれを強化して専用にした物がリンターと呼ばれる。

で、ここで「文法が変わった」かどうかを争ってても意味ないと思うが。
他言語出身者なら、同じコードで通る/通らないが変わるのなら、「文法が変わった」と認識するし、
コンパイラ屋なら、構文解釈に変更なくリント機能だけが強化/緩和されたのなら、「文法は変わってない」と言い張るだろうさ。
(実際にリント機能部分だけの変更なのかは知らんが)
0229デフォルトの名無しさん
垢版 |
2022/03/25(金) 23:36:20.64ID:8M8bRdYX
例えば自分はWebでReact/Next.jsを使っているんだけど
そこで使われているトランスパイラがRust製のswcへ変わったよ
色んな分野で代替する新たな良いものが出てくるとRust製が多いね
0230デフォルトの名無しさん
垢版 |
2022/03/25(金) 23:41:25.24ID:k+N4+RC0
>>228
Cみたいなシンタックスにセマンティクスが浸食してる言語例に出すあたりマジで何も分かってないんですね

それにCのエラーだってシンタックスエラー以外に型エラーとかいろいろあるでしょ

とにかく文法という言葉の使い方が独特すぎるからあなたの言うところの文法とは何かをちゃんと定義して欲しい
コンパイル時にエラーと判断されうるものは全て文法という理解で良い?
リンク時エラーも文法エラー?
0231デフォルトの名無しさん
垢版 |
2022/03/25(金) 23:57:36.32ID:6wzTiGXz
>>227
> Linuxカーネル
それ前も言ったけど、forkしただけで、採用されてないよ。

> Firefox
結果シェアはズタボロに落ちて最早ゴミ。対応面倒で切られてる始末だろ。

> Discord
ブログにあった件なら、生存オブジェクトが大量にあるのにGC言語(Go)を使った点が間違ってる。
ただ、Go側で「GC非対象ヒープ」を(自前ででも)用意すれば済んだ話。
あれで言語移行したのはただの趣味だと思うよ。

他は知らんが、Goでも採用実績なんていくらでもあるし、Rustよりは多いと思うよ。
それを全部見るのは無理なので、折角詳しくて布教したがってる連中が居るのだから聞いてみるか、というわけ。
Goの連中はピンポイントでDockerを出してきたし、納得するものでもある。
Rustにはねえのか?という話。
(ただしDockerと同様の物を俺が組む事は多分無いので、他案件/構造も募集)

>>229
本当に「この言語じゃないと現実的に無理」なら、「書き換え」ではなく「新分野を開拓」出来るはずだ。
Dockerの構造は「新規」だよ。
0232デフォルトの名無しさん
垢版 |
2022/03/26(土) 00:05:21.48ID:xT2VrKPz
>>231
そんな言いがかりみたいなでたらめ並べてうれしいのかね
それともそれら次々とRustで置き換わっていく恐怖に怯えての言動かね
0233デフォルトの名無しさん
垢版 |
2022/03/26(土) 00:18:45.11ID:JI2pA1P6
ドッカーは確かにgoで書かれているが、作ったイメージをコンテナとして動かすランタイムはRustで書かれてたりするのだよね
抽象化されてることすら知らなそうけど
0234デフォルトの名無しさん
垢版 |
2022/03/26(土) 00:19:28.54ID:W/ip1wOX
>>231
そんなにGo使いたいならRustのことを気にせずGo使ってどうぞ
Goも良い言語だから安心してね
0236デフォルトの名無しさん
垢版 |
2022/03/26(土) 00:27:20.02ID:Z1/vdmI3
ランタイムあるからGoだけではコンテナランタイム作れないって聞いたんだけど本当?
0237デフォルトの名無しさん
垢版 |
2022/03/26(土) 00:30:14.44ID:9D+dR2jG
>>232
> 次々とRustで置き換わっていく恐怖に怯えての言動かね
自意識過剰すぎ。

というか、俺はお前らがそこまで言語に拘る意味が分からない。
それが適してたらそれを使うだけ、だろ。

俺がその言語作ったわけでもないし、その言語を使えば俺が偉くなるわけでもないし。
お前が修得出来たのなら、俺も修得出来るし、他の人も同様に修得出来るだけ。
修得で無理に差別化しようとするからおかしな事になるのだと思うが。


>>234
Goは味見して糞言語だったからもう使う気はないがな。
同じ事を何度も書かせて、しかも、それを悪いとしてない事が無理だ。
俺が切れたのはJSONのタグ記述だが。
(ああGo的には自動生成出来るような仕組みがあるから問題ないんだ!としている事は知ってる)
0239デフォルトの名無しさん
垢版 |
2022/03/26(土) 00:35:20.61ID:W/ip1wOX
>>237
じゃあ自分の使いたい言語を使っていいよ
こんなスレに文句を書きに来てるぐらいだから、本当はRustのことが気になって気になってしょうがないんだろうけど
0241デフォルトの名無しさん
垢版 |
2022/03/26(土) 00:44:14.12ID:d6z2UOgm
>>237の人は前スレから一貫していて
Goに対してもクソ言動と批判しつつ
Rustを叩くための棍棒としてGoを使っている
C#については絶賛
0242デフォルトの名無しさん
垢版 |
2022/03/26(土) 00:44:35.30ID:9D+dR2jG
>>239
リスカブス乙
俺は定期的に他言語情報をクロールしてるだけだよ。

ただNimがCソースを吐くとは知らなかったのでちょっと気になってるが。(使うとは言ってない)
0243デフォルトの名無しさん
垢版 |
2022/03/26(土) 00:51:02.81ID:9D+dR2jG
>>241
> C#については絶賛
してねえだろ。
実際GUIは糞で、JSの方が数段マシ。そりゃ世の中のGUIがHTMLになるのも納得だよ。
GUIのメインスレッド+サブスレッドの構造もよろしくないと思ってる。
(ここら辺も既に書いたが)

ただな、どの言語にも一長一短はあるんだよ。みんな色々考えて、改善してきてるわけだから。
だから、○○言語最強!ではなくて、言語特性を理解した上で選択、としたいわけ。
0244デフォルトの名無しさん
垢版 |
2022/03/26(土) 00:54:11.51ID:AS0dCv5n
>>241
それに対してガイガー君がC#を叩く構図だね
もちろんそれ以外の時はガイガー君はRust叩き
二人ともロクでなし
0247デフォルトの名無しさん
垢版 |
2022/03/26(土) 01:01:58.12ID:LzDSDoUW
>>243
JavaScriptも良い言語だけど
型が弱いしTypeScriptは中途半端だから
最近Rustに移ったよ
もちろんサーバーサイドだけでなくブラウザサイドもRustでWASM
WASM⇔JavaScriptのオーバヘッドは誤差範囲とわかり実用的
0248デフォルトの名無しさん
垢版 |
2022/03/26(土) 01:25:19.73ID:9q2PYIcF
俺はC#を叩いたことは一度もないw
間違いを指摘し続けてただけだぞw
Rustは変なビジネスチャンスばかり狙った信者が嘘八百並べ立ててるから、すごい怪しげな新興宗教になってるw
0249デフォルトの名無しさん
垢版 |
2022/03/26(土) 01:29:08.29ID:9q2PYIcF
半年くらい前までは俺も静かにRustの普及を望んでたんだけどねw
今はもう・・・やばい印象しか受けない
0250デフォルトの名無しさん
垢版 |
2022/03/26(土) 01:57:44.71ID:Y9M7cL9r
>>249
ガイガー君は嘘つきだな
Rustの配列とスライスの違いすら知らないことがこのまえ発覚したことで全てバレた
Rust初心者でも知っていることなのにな
0251デフォルトの名無しさん
垢版 |
2022/03/26(土) 02:31:08.59ID:9q2PYIcF
[T]がarrayで&[T]がスライスだと間違って覚えてただけだろw 原因はarrayを初期化以外で使ってなかったからってちゃんと書いたw
多分Rustをやってる期間は多分お前よりはるかに長いよw
0252デフォルトの名無しさん
垢版 |
2022/03/26(土) 03:04:03.73ID:R0l+7kK3
>>251
そんな間違いする人を初めて見た
正解は[T]がスライスで&はその参照
&が参照を意味するだけにすぎないことも知らない時点でRustを知らないと確定
0254デフォルトの名無しさん
垢版 |
2022/03/26(土) 04:31:22.21ID:NboHt8Df
>>251
> [T]がarrayで&[T]がスライスだと間違って覚えてただけだろw

酷くおバカな間違いだな
Rustを使ったことがないからそういう勘違いをしてしまう
ちゃんと公式ドキュメントの各1行目を読もうぜ

配列
https://doc.rust-lang.org/std/primitive.array.html
A fixed-size array, denoted [T; N], for the element type, T, and the non-negative compile-time constant size, N.

スライス
https://doc.rust-lang.org/std/primitive.slice.html
A dynamically-sized view into a contiguous sequence, [T].
0256デフォルトの名無しさん
垢版 |
2022/03/26(土) 07:50:27.56ID:ZP/Jhtaq
>>62
それ、C/C++が全く出来ないレベルじゃん。メモリやポインターの理解が出来てないから実行時デバッグに時間が掛かる。普通は処理を書いたら動くことを確認するだけで済む。
0257デフォルトの名無しさん
垢版 |
2022/03/26(土) 07:54:07.76ID:Vvd4qIhx
>>251
> 多分Rustをやってる期間は多分お前よりはるかに長いよw

はるかに長い期間やっててそれでは知能が低いです
0258デフォルトの名無しさん
垢版 |
2022/03/26(土) 08:12:28.41ID:3FEKWr2M
>>256
それはそういう話じゃないと思うぜ
C++とRustの両方使いこなせると分かるが
低レベルであるポインタアクセスがRustでは無くなり抽象化された参照アクセスとなり
安全でないアクセスがコンパイル時点で排除されるためその種の実行時デバッグが無くなる
その件だと思われる
0260デフォルトの名無しさん
垢版 |
2022/03/26(土) 08:47:16.92ID:9LDujC2l
>>259
その件は君が嘘をついていると明確になっている
その件の書き込みを見ると君はarrayとsliceを勘違いしただけでなく関数からarrayで返すと明言している
一方でその関数は返り型宣言で必ず[T; N]が現れる
このNは定数であるからさらに宣言することになりarrayでNの存在を忘れる人はいない
しかし君はarrayを[T]だと間違えて覚えていたわけだから矛盾する
君はRustのコードを書いたことがないという結論となる
0261デフォルトの名無しさん
垢版 |
2022/03/26(土) 09:14:29.48ID:9q2PYIcF
何を勘違いしちゃったのか知らないけど、こう書いてあるんだけどw
「arrayは定義はあるんだけど、今まで初期化にしか使わなかったから、使わなすぎて間違って覚えてたw」
0262デフォルトの名無しさん
垢版 |
2022/03/26(土) 09:23:18.54ID:6PoAfdDe
>>260
正確にはガイガー君はsliceで受けてArrayで返すと言っている
この発言の時点でガイガー君はRustを知らないと証拠

動的サイズのスライスで受けて固定サイズの配列を返すのは不可能だからだ
Nが判明しないと配列で返せないが実行時になるまでスライスの長さは不明
この点からもガイガー君はRustを知らない
0263デフォルトの名無しさん
垢版 |
2022/03/26(土) 09:51:30.12ID:9q2PYIcF
ニュアンスが違うんだよw
「それは俺のポリシーとして、可能ならVecを返すならVecを受けたいだけw
今回のケースではメリットとかないよw
同様にsliceで受けたらArrayで返したいし、iteratorを受けたらiteratorを返したいw」
slice->&[T]
array->[T]
0267デフォルトの名無しさん
垢版 |
2022/03/26(土) 10:18:06.61ID:Iuuv9oj0
間違ってても普通に説明すりゃいいのにお互いに煽りながら主張しあってるから、くだらない議論が余計に長引く
0269デフォルトの名無しさん
垢版 |
2022/03/26(土) 10:44:45.97ID:Z1/vdmI3
>>263
Vecを返す関数は原則引数の型はVecにしたいということ?
敢えてそうする理由ってなにかあるの?
0271デフォルトの名無しさん
垢版 |
2022/03/26(土) 12:29:34.61ID:5mCX3GGP
新しい言語はどれも配列の宣言があまりきれいじゃない気がする

Cなどの型名 変数名[要素数]だと何か都合が悪いのだろうか
それともやってる感を出すために変えてるの?
0272デフォルトの名無しさん
垢版 |
2022/03/26(土) 12:37:22.57ID:9D+dR2jG
>>271
固定長で問題ないならそれが一番いいが、
大体において固定長である事自体がものすごく不便だから。
0273デフォルトの名無しさん
垢版 |
2022/03/26(土) 12:41:53.15ID:sDWgty5N
>>271自身がモダンな言語における配列を正しく理解できてないから変なように感じるんじゃないかな
最近の言語ではCスタイルの配列、いわゆる配列変数(複数個の変数が連続して並んでいるもの)はあまり積極的に使用されないんだよ
最近の言語では配列は配列型のオブジェクトであって、変数が並んでるわけじゃないの
0275デフォルトの名無しさん
垢版 |
2022/03/26(土) 17:16:05.98ID:+G9UHc/m
>>271
Cの形だとパーサーをLRにしないといかんのでは?
GoとかPascalの形だとLLでパースしきってしまえるから早い。
0276デフォルトの名無しさん
垢版 |
2022/03/26(土) 18:34:45.11ID:9q2PYIcF
別スレの引用なので、興味があればそれを見てこいw
LL/LRとか懐かしいなw
S式とかに回帰するかw
0278デフォルトの名無しさん
垢版 |
2022/03/26(土) 20:52:37.86ID:Vz8Iz6e1
>>263
Vecを受けてVecを返すインタフェースに通常することはない
普通は以下のようにする

(1) 同じVecを返す場合 (=書き換えたい場合)
まずこの場合はVec<T>自体を渡さなくても参照を渡せば済む
書き換えるから&mut Vec<T>を渡せばいいように思うが
普通はスライス&mut [T]を渡すインタフェースにする
なぜならVecの書き換え参照を渡すとVecの書き換えしかできないが
スライスの書き換え参照を渡せばVecの途中一部の書き換えもできるし
配列や配列の途中一部の書き換えもできるからである

(2) 別のVecを返す場合 (=引数側のVecのデータから作り出したい場合)
この場合も同様となる
引数としてVec<T>を渡すのではなくスライス共有参照&[T]を引数にする
これで入力データがVecだけでなく配列やそれらの一部でも受け付けることが可能

(2)' (2)のケースで入力を順次アクセスのみする場合
この場合は入力としてイテレータを受け付けられると良い場合がある
なぜならイテレータはVecのようなメモリ領域を必要としないため有利
イテレータを入力とする場合のインタフェースは更に2通りに分かれる
 [a] イテレータのメソッドとしてしまう
  イテレータチェーンに組み込むことができて便利
  ただしVecや配列やスライスに適用する時はinput.iter().method()の形になる
 [b] 引数として IntoIterator<Item=T> を受け付ける
  これだと引数に直接スライス、配列、Vec、イテレータのどれも渡せて便利
  ただしイテレータチェーンに組み込むことはできない
  イテレータメソッドの2つ目の入力インタフェースとしても使われる
どちらの場合でも順次出力でない場合ならばVecを返すのもありだが
順次出力ならばイテレータを返したほうがイテレータチェーンに組み込めて有利
なぜなら中間生成Vecを無駄に返さずに済むからである
この場合にVecが欲しければcollect()すればよい
0280デフォルトの名無しさん
垢版 |
2022/03/26(土) 22:23:14.39ID:27vH2xuj
ガイガー君はRustに関しても素人だから
そういう常識を知らなくても仕方ない
0282デフォルトの名無しさん
垢版 |
2022/03/26(土) 23:07:56.60ID:Z1/vdmI3
>>279
&strじゃなくてString使ったり、&TじゃなくてBox<T>やRc<T>使ったりするのかな
初めて聞くポリシーだからどういう考え方なのかが気になる
0284デフォルトの名無しさん
垢版 |
2022/03/26(土) 23:29:11.35ID:fQbyL396
鋭い指摘だな
確かにガイガー君は参照を使いこなせなくて借用を批判してた
0286デフォルトの名無しさん
垢版 |
2022/03/26(土) 23:41:42.26ID:9q2PYIcF
同じ型の方が設計意図が明白になるし、繋げやすいからw それだけだよw 他のにする理由がないよねw
まあもとのスレにも理由は書いたけどw
0287デフォルトの名無しさん
垢版 |
2022/03/26(土) 23:58:50.18ID:+vg1NaC4
>>286
繋げやすい??
全く意味不明だ
繋げるならばメソッドチェーンにすべき
そしてVecが中間生成物となるのは無駄となるバッドパターン
イテレータメソッドチェーンにすべき
イテレータを使わないならばスライスを引数で渡すべき
0288デフォルトの名無しさん
垢版 |
2022/03/27(日) 00:23:39.64ID:PoGWmBV8
>>287
君にとって意味不明なら意味不明でいいよw そう思っていればいいw
ポリシーとはそういうものw 菜食主義者に肉を食わないとはケシカランって言ってるようなものだからw
0289デフォルトの名無しさん
垢版 |
2022/03/27(日) 00:25:07.45ID:v5PJ1K00
>>286
借用で済ませて良い場所で所有権要求するのは普通じゃないからドキュメントコメントにちゃんと書いた方が良いよ
0290デフォルトの名無しさん
垢版 |
2022/03/27(日) 00:30:12.96ID:wv2YT7DD
>>288
技術分野でのポリシーとはまず意味のある目的がありそのために設定される
それを説明せずにポリシーとだけ唱えて普通ではない非合理なインタフェースにしているから叩かれる
0291デフォルトの名無しさん
垢版 |
2022/03/27(日) 01:18:29.05ID:PoGWmBV8
wwwww
知ってて書いてるんだと思うが、もとを読めば分かるけど、参照で受けてるよw
0292デフォルトの名無しさん
垢版 |
2022/03/27(日) 01:35:46.26ID:BChElFEF
>>291
見てみた
確かに引数の型をVecの参照にしてることがわかった
そして元のお題では一貫してずっとlet input = ["a", "b", "c"];となっているのに
引数の型をVecの参照にしてしまったためそこだけlet input = vec!["a", "b", "c"];としている
つまりに引数の型をVecの参照したのは明白な失敗となっている
もちろん正解は引数の型をスライスにすること
これで配列もVecも受け取れる
0293デフォルトの名無しさん
垢版 |
2022/03/27(日) 03:52:33.29ID:PoGWmBV8
>>292
だから失敗したからではなくて、何度も言ってるようにポリシーとして合わせたんだよw
正解は動くことw 2つの方法からsliceとしない方を選択したのw
0294デフォルトの名無しさん
垢版 |
2022/03/27(日) 04:12:54.52ID:keWGy6tX
>>293
それまでに他の人たちが書いたコードは入力元データが全てlet input = ["a", "b", "c"];と配列になっているね
そして関数の引数の型は全てスライス&[T]となっているね

ところが唐突にその引数の型を&Vec<T>へと変更したコードが登場
それまでの入力元の配列をスライスで渡すことが出来なくなる破綻
破綻の辻褄を合わせるため入力元データを配列から無駄で無意味なlet input = vec!["a", "b", "c"];へと変更
それまで入力元が配列でもスライスでもVecでも大丈夫だったのに入力元がVecしか受け付けなくなっているね
0295デフォルトの名無しさん
垢版 |
2022/03/27(日) 07:57:46.18ID:DQbwsS9F
> 2つの方法からsliceとしない方を選択したのw

キミはスライスが何なのかも知らなかったでしょ
自分の知能が低いのを弁えないと恥かくよ
0296デフォルトの名無しさん
垢版 |
2022/03/27(日) 08:56:07.10ID:PoGWmBV8
>>294-295
何を言いたいのか知らんが、I/F部分は自由にいじってるので、渡す型が変わるのなんて何の問題もないよw
0297デフォルトの名無しさん
垢版 |
2022/03/27(日) 09:20:19.51ID:aDr0zmJe
>>296
元々は利便性の良いスライスや効率で優る配列も受け付けていたのに
貴方の変更では効率の劣るVecのみを受け付けとなってコードが退化している
0302デフォルトの名無しさん
垢版 |
2022/03/27(日) 12:11:24.82ID:mrHY19JA
面白い課題なんだね
input = ['a', 'b', 'c']; と集合が与えられた時に
そのべき集合(=全ての部分集合)を返す関数subsets()を作成せよ、ってことか
[]とか['a']とか['a', 'b']とか['a', 'b', 'c']とか全てを漏れなく返せと
0305デフォルトの名無しさん
垢版 |
2022/03/27(日) 14:06:20.96ID:v5PJ1K00
>>301
Vec<T>を引数で受けることは配列全体の所有権を関数に委譲するという意図を表明してるんだけど
そういう意図ということで認識合ってる?
0307デフォルトの名無しさん
垢版 |
2022/03/27(日) 20:05:48.71ID:beT1hCdX
たかだか数年で身につけたスキル、しかも数年後には使ってないかもしれないスキルでイキってんじゃねーよ
0309デフォルトの名無しさん
垢版 |
2022/03/27(日) 23:33:02.98ID:Pk6DsGJR
人間よりは長生きしてもらわないと
AIが人間に勝てそうな所がどんどん減っていく
0312デフォルトの名無しさん
垢版 |
2022/03/28(月) 06:43:08.84ID:dhMFtSYI
中間生成となるVecを使わずにイテレータを返すイテレータにするという点と
2進数でべき集合を表現するという点が面白いね

fn subsets<T>(input: &[T]) -> impl Iterator<Item=impl Iterator<Item=&T>> {
let len = input.len();
(0..(1 << len))
.map(move |bits| (0..len)
.filter(move |index| bits & (1 << index) != 0)
.map(|index| &input[index]))
}

fn main() {
let input = ["a", "b", "c"];
use itertools::Itertools;
for (i, iter) in subsets(&input).enumerate() {
println!("{}: {:03b}: [{:?}]", i, i, iter.format(", "));
}
}

出力
0: 000: []
1: 001: ["a"]
2: 010: ["b"]
3: 011: ["a", "b"]
4: 100: ["c"]
5: 101: ["a", "c"]
6: 110: ["b", "c"]
7: 111: ["a", "b", "c"]
0314デフォルトの名無しさん
垢版 |
2022/03/28(月) 11:24:54.13ID:cDjwoBcZ
>>297
横からみてた感想だけど、コードの目的(全てのサブセットを列挙する)達成できているのに退化とは?
その論説は本来の設問からすると別のゴールが生えてる
0315デフォルトの名無しさん
垢版 |
2022/03/28(月) 12:05:00.42ID:6B08HyS+
ツッコミついでにスライスの参照ではなくVecでインターフェース書くメリットについて考えてみたが
これ考え方がモロにPythonのそれだわ
こういう設計はRustだとあんまりやらないが、これをVecから派生した型へのimplとして書くとそこまで違和感ない

「Rustっぽくない」のは指摘されてる通りだが、思想としてはたぶんそこから来てる
0316デフォルトの名無しさん
垢版 |
2022/03/28(月) 12:12:56.02ID:6B08HyS+
Pythonはそのまま例えばこんな感じで書かれた関数をオブジェクトに代入してメソッドに使えるからPythonって言ったけど
とにかくオブジェクト指向にどっぷり頭まで漬かった設計だな

元の「どちらのやり方もある」発言も、「関数型の書き方に寄せるかオブジェクト指向的な書き方に寄せるか」という意味なら納得
(まあオブジェクト指向に寄せるならimplで書けよなんだが)
0317デフォルトの名無しさん
垢版 |
2022/03/28(月) 14:02:45.07ID:aDLT1T3I
>>314
元々に挙げられていた例は入力が配列
そして彼のコードは配列を入力として受け付けなくなっているから退化であっている
0318デフォルトの名無しさん
垢版 |
2022/03/28(月) 14:31:13.30ID:tMGTgyj2
>>316
そのimplを使ったオブジェクト指向的な書き方でもその理由はおかしい
例えばRustには以下のようなrepeatというメソッドが標準ライブラリにある
assert_eq!(vec![1, 2].repeat(3), vec![1, 2, 1, 2, 1, 2]);
もちろんご指摘のようにimplで書かれているのでメソッドとして使えている

しかしソースコードを見てみると次のようになっている
 impl<T> [T] {
  fn repeat(&self, n: usize) -> Vec<T>
  (以下略)
つまりVec<T>に対してではなくスライス[T]に対してimplされている

したがって配列に対しても適用できる
assert_eq!([1, 2].repeat(3), vec![1, 2, 1, 2, 1, 2]);
もちろんスライスに対しても適用できる
let v = [0, 1, 2, 3, 4];
assert_eq!(v[1..=2].repeat(3), vec![1, 2, 1, 2, 1, 2]);

>>315
上述の状況なのでその指摘では皆が納得できる理由や説明になっていない
メリットについて考えてみたとのことだがVecにimplするメリットもない
0320デフォルトの名無しさん
垢版 |
2022/03/28(月) 23:11:23.81ID:51Y1Thh9
1+1=の結果とか誰も興味ない上、俺がindex版、iterator版、vector版3つ正解を書いてやった後も、誰も興味のないその話題をひたすら続けて無視された挙げ句、このスレにまで持ってきて見当違いな自画自賛と自作自演の嵐w
どれだけバカなんだよw
0321デフォルトの名無しさん
垢版 |
2022/03/28(月) 23:19:40.94ID:ie9Ayk2m
>>318
ガイガー君とやらは配列とスライスの違いすら知らなかった超初心者だから仕方ないんじゃないか
もちろんスライスに対して実装すればVecにも配列にも適用できるからそれがベストチョイス
0324デフォルトの名無しさん
垢版 |
2022/03/29(火) 18:10:38.94ID:wvo3NcdM
Juliaって数値計算に特化してるイメージなんだけどそれ以外の用途でも良い感じに使えるの?
0325デフォルトの名無しさん
垢版 |
2022/03/29(火) 19:43:35.70ID:4eDRgxgo
数値計算というのはひたすら配列に対してループをぶん回すもんで、FortranやJuliaはそういう処理の記述に特化している
そういう意味だと、数値計算以外だと昔のCOBOLみたいに愚直に一行ずつレコードを処理していくような古典的なバッチ処理には向いてるんじゃないかな
0326デフォルトの名無しさん
垢版 |
2022/03/29(火) 22:44:22.64ID:zunmlMTL
>>321
本人乙w 配列とスライスの違いは分かってたけど、配列の定義を誤って覚えてただけだよw
Juliaは入れていいと思うw
0327デフォルトの名無しさん
垢版 |
2022/03/29(火) 22:53:46.10ID:Wg3aSHjk
>>326
あんたは [T] を配列だと思っていた
もちろん [T] はスライスが正解
これはあんたが配列とスライスの違いをわかっていなかったことを意味する
0331デフォルトの名無しさん
垢版 |
2022/03/30(水) 16:32:49.22ID:uX6cnVWL
動的型付け言語は型無し糞言語じゃないんだ
僕はまだ大丈夫なんだ

こういうやつよな
●したくなるのは
注連縄を首に巻いて通勤快速に連結してやりたくなるよな
0334デフォルトの名無しさん
垢版 |
2022/03/30(水) 21:52:53.10ID:9xKIjqbP
もちろん強い静的型付け言語の方が圧倒的に優れている
ほとんどのバグはコンパイル時点で検出できる
言語によっては実行時のエラーや善きせぬ例外を無くすこともできる
そのため強い静的型付け言語が最もプログラミング生産性も高い
0335デフォルトの名無しさん
垢版 |
2022/03/30(水) 21:58:42.01ID:txMnCN3x
>>333
バカなことばかり書いてあるダメなページだな

> 動的言語の値は、実行時においても自分の型を覚えている。
> このことは何を意味するか?
> 実行時に値の型を調べ、それに対応したコードを実行するプログラムが書けるということだ。

これはまともな静的型付け言語でも出来る
しかもコンパイル時に安全に型をチェックして実行時にエラーをなくすことさえ可能
動的型付け言語ではそのような安全性は無く実行時エラーの山
0336デフォルトの名無しさん
垢版 |
2022/03/30(水) 22:01:00.78ID:kwE0Wrnf
正直動的型付けのメリットをあまり感じない
0337デフォルトの名無しさん
垢版 |
2022/03/30(水) 22:02:22.01ID:usrXoLFt
いまさら型の動的静的言い出してもウンザリだから
それは君たちが各自自分で勉強して自分で満足してくれ
どっちが優れてるだのどうだの素人の見解1ミリもいらんから
0338デフォルトの名無しさん
垢版 |
2022/03/30(水) 22:06:41.15ID:ibIM88PL
このスレ雰囲気からして学生が多い気がするが、一般的には

型あり:ソースコードに型を明記する=静的型
型無し:そうじゃない=動的型

だぞ。ただし「型無し」と全くの初心者に言うと「本当に型がない」と勘違いしてしまう為、
「動的型付け言語」と『教育上』言われる事があってもおかしくないが、それは学校での話。
プログラミング界での用語は上記の通り。
330内はアセンブラしか知らんが、アセンブラにも型(サイズ)はあって、
floatとdoubleは命令が違うし、byte/word/doublewordも命令が違う。
(だから本当の意味で型がない言語なんて実装しようがない)

ただまあ、この辺のごくごく初歩的なところをまずは抑えるべきだよ。
生産性なんてその後の話、一通り書けるようになってからでいい。
心配しなくても初心者の時に書いたコードなんて後から見たらゴミ同然でしかない物ばかりだよ。
0339デフォルトの名無しさん
垢版 |
2022/03/30(水) 22:09:14.11ID:MqQwCbKz
>型あり:ソースコードに型を明記する=静的型
>型無し:そうじゃない=動的型

どこの一般だよ
0340デフォルトの名無しさん
垢版 |
2022/03/30(水) 22:10:48.06ID:1lFVb3RX
いずれにしても動的型付け言語はバグがあっても実行時になるまで検出できないクソ言語
強き静的型付け言語がベストと結論が出ている
0342デフォルトの名無しさん
垢版 |
2022/03/30(水) 22:33:44.92ID:YEeL7eMZ
ちょっとした短いスクリプトを書く程度ならば動的型付け言語でも大丈夫
そうでなくプログラミングをするならば静的型付けのメリットが非常に大きいね
0343デフォルトの名無しさん
垢版 |
2022/03/30(水) 22:47:29.54ID:Xsfwo5z4
個人的にどちらが好みかと言われると静的型付け言語なんだけど、自分全然Pythonとか使うので、そういう言語を唾棄してる人的に雑な書き捨てをするときは何の言語使うのか正直気になる
0344デフォルトの名無しさん
垢版 |
2022/03/30(水) 22:52:27.20ID:Cwc9b4uh
>>343
ものに依る
例えば簡単なものならシェルスクリプト
よくいる何でもかんでもPython屋さんたちはシェルスクリプトも静的型付け言語も使えないがために陥ってる
0346デフォルトの名無しさん
垢版 |
2022/03/30(水) 23:09:42.25ID:UJJsLtPb
PHPないと個人サイト作成不便だよ。
pythonで書いてた時期もあったがやはりPHPのが楽だしCPU負荷も少ない。
0348デフォルトの名無しさん
垢版 |
2022/03/30(水) 23:23:35.91ID:7iBx/H5p
>>346
おもちゃ程度ならPHPで十分だね
しかしアクセスされるたびに動的サーバーサイドレンダリングをしているわけで無駄すぎ
例えばアクセス数のある企業がそれをしたら負荷のせいで複数のサーバーが必要になりやすい
>>347の言うように出来る限り静的サイトジェネレーションがベスト
0351デフォルトの名無しさん
垢版 |
2022/03/30(水) 23:35:38.07ID:UJJsLtPb
静的サイト生成系は結局すぐやめたなぁ。
JSで無理くりなことやりはじめたりして個人サイトレベルだと逆に作りが歪む傾向がある。
0353デフォルトの名無しさん
垢版 |
2022/03/30(水) 23:49:24.01ID:UJJsLtPb
自分は普段はc++とc#ばかりだけど...
だけどphpの方が楽、blazorとか逆にしんどかったし。
0354デフォルトの名無しさん
垢版 |
2022/03/30(水) 23:58:31.85ID:BjMRLjMo
>>353
選び方が極端すぎ
BlazorはJavaScriptの代わりにC#で書いてブラウザ上をWebAssemblyで動かす究極のアホ
C#はランタイムがデカい上にGCランタイムも必要なわけでそれらを全てブラウザ上のWebAssemblyで動かす
巨大で重くて遅い
0355デフォルトの名無しさん
垢版 |
2022/03/31(木) 00:17:05.37ID:nlcs9ENP
負荷が高いからCGIは使わない、PHPは使わない、
共用格安24時間稼働サーバーでnodeやjavaは基本動いてないからそれらは使わない、
VPSで個人サイト運営とか手間なだけだからやらない。

そうなると何でサーバー側で判定必要な処理書いてるのさ。
3大クラウド使って普通の個人サイトにGoでサーバー処理でも書いてんの?
0356デフォルトの名無しさん
垢版 |
2022/03/31(木) 00:28:30.60ID:LBSBAbTE
>>354
WebAssembly使うならGCの無いRust一択だな
C++でもよいがRustに対してC++使うメリットがないため
この新たな分野ではC++よりもRustの方がシェア高い
0357デフォルトの名無しさん
垢版 |
2022/04/01(金) 21:23:07.86ID:KJ3cEQ7q
>>344
なるほど、返答ありがとう
ということはシェルスクリプトレベルなら許容するけど、シェルスクリプトで扱えないデータ構造が出てくるような場合は、もう静的型付き言語じゃないとありえないって感じなんだね
0359デフォルトの名無しさん
垢版 |
2022/04/02(土) 08:35:29.97ID:4T2g1HGg
どの言語も読めないのはそいつの能力が低いだけ
その一方でプログラミング開発デバッグ効率は言語により大きく異なる
強い静的型付けでコンパイル時に可能な限りエラーを出し尽くしてくれるほど効率がいい
0360デフォルトの名無しさん
垢版 |
2022/04/02(土) 10:10:09.80ID:qwJ1jUe9
コマンドラインツールでもweb使うとかになるとpythonで書くかな
他は可能な限りシェル
0361デフォルトの名無しさん
垢版 |
2022/04/02(土) 10:43:36.91ID:ofyuLHc/
pythonが十分に普及してくれたんで最近はsh/batのかわりにpy一本で済ませることが多くなってきた。
0363デフォルトの名無しさん
垢版 |
2022/04/02(土) 12:13:37.37ID:qwJ1jUe9
めちゃくちゃ楽したいときはipynbもありかなーと最近思っている
手作業混ぜなきゃいけないけど表を加工するタスクとか、pandasのto_clipboardで時短できる
0364デフォルトの名無しさん
垢版 |
2022/04/02(土) 14:47:38.25ID:pHmc1XXg
>>361
わかる。
sed, awk, curlにbashの配列使ってとかやってたのを一時期perl5に移そうかと思ったけど、これだけpythonが一般化したらもう全部pythonでいいやって思った。
0366デフォルトの名無しさん
垢版 |
2022/04/02(土) 15:17:59.11ID:aIdGEsvv
pythonのインデントによるフォワードルールに慣れてくるとC風の{};が体が拒否反応起こす。begin/end系も論外
0367デフォルトの名無しさん
垢版 |
2022/04/02(土) 15:42:43.12ID:Yphv2UuC
インデント系言語はコードフォーマット自分で整えるのが前提なのがなぁ
適当に {} を書いて保存するとフォーマッタが良い感じに整形してくれるのに慣れるともう離れられなくなる
0369デフォルトの名無しさん
垢版 |
2022/04/02(土) 15:55:36.79ID:6GewdDTG
生産とデバッグ効率は言語というより開発環境とライブラリがものをいうからなぁ。
少々言語自体にアドバンテージがあっても環境しょぼきゃデバッグも時間かかるだけだし
ライブラリも数万数十万人といった十分な使用実績ないなら主要な機能さえバグがある可能性が高くなるし。
0370デフォルトの名無しさん
垢版 |
2022/04/02(土) 16:27:09.73ID:AD4X0KNq
コンパイル時点で問題点をエラーにしてくれない言語こそ開発効率が非常に低い
なぜなら実行時にエラーを引き起こすからだ
その結果として実行時デバッグという無駄な時間のかかる行為が必要となる
0374デフォルトの名無しさん
垢版 |
2022/04/02(土) 19:18:12.91ID:huJOhBgh
pythonのインデントは20年前は馬鹿にしてたけどコードの行数が少なくて済むので一覧性が上がる効果がある
自分は主にC#使ってるけど行数が増えるのでもう何とかして{}減らないかと常に思ってる
0375デフォルトの名無しさん
垢版 |
2022/04/02(土) 19:26:43.20ID:pHmc1XXg
>>366
その部分は俺は今も波括弧ブロックの方がみやすいわ。
0376デフォルトの名無しさん
垢版 |
2022/04/02(土) 19:52:57.36ID:Eaxn3zCS
目Parseする時に {} は視認性が上がるからあった方がよい
実験結果が示している
0377デフォルトの名無しさん
垢版 |
2022/04/02(土) 19:59:17.80ID:huJOhBgh
()は目パース処理されてるらしいけどブラケットはそういう話は聞いたことはないけどな
実際は一行に一個{や}がある状態だから視認性には関係がないかと…
0382デフォルトの名無しさん
垢版 |
2022/04/02(土) 21:55:55.31ID:/mZUsJdk
人間が管理できる規模のうちは型アノテーションでも十分

コードの規模がデカくなってくるとコンパイル時チェックがないとやってられん
0385デフォルトの名無しさん
垢版 |
2022/04/02(土) 23:13:17.46ID:Eaxn3zCS
例え型アノテがあったとしてもウンポコペチプーだけは絶対に許してはならない
導入しようとしてくるエタヒニンのガイジどもは全員アウシュビのガス室送りにすべき
0386デフォルトの名無しさん
垢版 |
2022/04/02(土) 23:47:53.77ID:Yphv2UuC
>>381
強い静的型付け、かつ、型エラーがある場合は実行すらできない言語が良いということかな?
それとも動的型部分を一切排除して型付けをグローバルに強制したいということ?
0388デフォルトの名無しさん
垢版 |
2022/04/03(日) 03:17:07.00ID:Y2X5X0mD
>>382
コンパイル時チェックがないとやってられん、に同意
Rustのように型だけでなく書き換え競合などもコンパイルエラーとしてくれるのが理想的
0389ワイドショーは見るな
垢版 |
2022/04/03(日) 05:25:31.65ID:qYWEirZv
ソ連の核は綺麗な核
ポル・ポトはアジア的優しさ
北朝鮮は地上の楽園
珊瑚自作自演事件
南京・慰安婦捏造
教科書書き換え「誤報」事件
朝日・武富士裏献金事件
拉致問題切り捨て
サイレント魔女リティ
風の息遣い
五味ボマー
変態新聞
村木局長犯人扱い
その他人民裁判ならぬマスコミ裁判は数知れず
そしてマスコミお得意の「報道しない自由」

これでも貴方は新聞を信用しますか
これでも貴方は新聞を購読しますか

よく考えて下さい
0390デフォルトの名無しさん
垢版 |
2022/04/03(日) 09:41:03.41ID:DNCDVh6y
以前の彼は紳士的でした
ところが並列処理での変数の取り扱いにバグが紛れていて不正確な変更が行われこんなことにばかり言うようになってしまいました

手遅れになる前にRustを使いましょう
0392デフォルトの名無しさん
垢版 |
2022/04/03(日) 09:54:03.47ID:ajg4rWD0
>>391
RustとPHPの需要を比較しても意味ないですよね
例えるなら小麦粉をもっと食べましょう。と言ってるのに対してスパゲティのほうが人気店あるよね?っていってるようなものですよ。
0393デフォルトの名無しさん
垢版 |
2022/04/03(日) 10:25:30.38ID:DNCDVh6y
PHPでまともに仕事してるならいいだろ
Rust使えば何でも許されてニート生活しててもいいわけじゃない
0394デフォルトの名無しさん
垢版 |
2022/04/03(日) 10:52:41.24ID:N+64wXdQ
なんかお勉強界隈でルースト?ってゆうの流行ってるみたいですけど、それで仕事できるんですか?
それでワープレより顧客にバリュー提供できるってゆうんですか?
0395デフォルトの名無しさん
垢版 |
2022/04/03(日) 10:58:50.79ID:DNCDVh6y
rust サビ 発音はラスト

マジンガーZでルストハリケーンって相手がサビる兵器があったけどアレ
0396デフォルトの名無しさん
垢版 |
2022/04/03(日) 11:03:35.19ID:DNCDVh6y
>>394
今の時点ではそのレベルのバリュー提供は無理だね
学校のサイトの管理を理系の先生がやってるけどワードプレス使ってる

rustは多分10年後もその牙城は崩せない
と言うか未来永劫に先生がrust使ってサイト管理をするようにはならない
0397デフォルトの名無しさん
垢版 |
2022/04/03(日) 11:14:22.42ID:1jVKF75a
>>377
俺は逆の話しか聞いたことない。
波括弧は目パースされてるが丸括弧はされてない。
例えばlispは丸括弧だらけだけど、あれの括弧の整合性はエディタ支援がでかい。
0398デフォルトの名無しさん
垢版 |
2022/04/03(日) 15:53:41.27ID:kjO3l4sO
>>384
TypeScriptはJSの全ての値に型をつけるために無茶な仕様追加してるからな
ゼロベースで設計すればマシな言語になるのにな
0401デフォルトの名無しさん
垢版 |
2022/04/03(日) 16:15:00.29ID:/giYNahv
goは詳しくないが。
関数で複数の値を返却できるが、エンジニアのスキル差がある時に、コードの整合性を保つのがめんどい。
Jsonのパースがめんどい。

とりあえず言語仕様として提供する機能が少なすぎて、Java、Rubyとかに慣れたエンジニアからしたら使いづらい。

メリットとデメリットは表裏一体の側面もあるが、こういう意見を持つエンジニアの方が多分多いんじゃね?

少なくともwebサービス開発においては、goは一時の流行りで終わると思うわ。複数人でのコードの管理がめんどいもん。

結局、言語仕様が複雑すぎず軽すぎずが好まれる傾向にあると思う。なので、スレタイに含まれる言語の中ではKotlinに一票
0402デフォルトの名無しさん
垢版 |
2022/04/03(日) 16:20:18.51ID:kjO3l4sO
>>400
それで成功したから生JSと混ぜられるのは必要なんだろうな
俺はかっちりした言語を使いたいけど
0403デフォルトの名無しさん
垢版 |
2022/04/03(日) 16:22:15.40ID:RzJGOQaY
TypeScriptが実現しようとしているのはVSCode上でのJSの完璧な型検査であって、別に最強の独自言語を作りたいわけでもコンパイル時チェックをしたいわけでもない
MSが提案しているJSへの型アノテーションの導入が実現したらTypeScriptは.ts.dのみを残して役目を終える
0404デフォルトの名無しさん
垢版 |
2022/04/03(日) 17:52:10.08ID:rc6NcMYZ
ナデラのMSは良いMS
0406デフォルトの名無しさん
垢版 |
2022/04/03(日) 19:57:40.10ID:DNCDVh6y
>>401
どういう認識なんだ?
普通はgoは低機能だから誰が書いてもほぼ同じコードになるのがメリットだと言われてるんだけどw
0408デフォルトの名無しさん
垢版 |
2022/04/03(日) 20:38:24.09ID:N+64wXdQ
>>406
それ言語機能が少なすぎてコピペしまくり=誰が書いても同じになる
というのがオチなんだよね
控えめに言ってゲェージ
0410デフォルトの名無しさん
垢版 |
2022/04/03(日) 20:53:04.52ID:En8qx50/
goのエラー処理は俺が2019年に業務でちょっと触った時は
if err !=nil {}
みたいなのをひたすら書くしかなくて愕然とした経験があるんだが、これって今は改善されてるの?
比較的新しい言語にしてはずいぶん泥臭いことやるんだなって思った
0411デフォルトの名無しさん
垢版 |
2022/04/03(日) 21:02:47.89ID:N+64wXdQ
Go「ぜんぶ ひらがな に すれば かんじ や かたかな が なくて よみやすいね!」

言うほど読みやすいか?
0412デフォルトの名無しさん
垢版 |
2022/04/03(日) 21:03:41.40ID:/giYNahv
>>410
されてない認識
これめちゃくちゃめんどいし、戻り値の管理が無駄に煩雑になるだけだと思うんだが

パターンマッチングもめんどい
0413デフォルトの名無しさん
垢版 |
2022/04/03(日) 21:05:03.73ID:N+64wXdQ
>>409
ジェネリクスがないからコピペ or interface{}でAny化して型安全を捨てる言語やぞ
エアプは黙っとれ
0414デフォルトの名無しさん
垢版 |
2022/04/03(日) 21:32:49.77ID:DNCDVh6y
>>408
違うよ
文法が厳格でしっかり書いてないと枝葉みたいなしょうもない理由でコンパイル通らない
それでレベルが担保される
0415デフォルトの名無しさん
垢版 |
2022/04/03(日) 21:35:23.71ID:DNCDVh6y
コーディングになんでエアプが出てくるんだろうか?
語彙が貧困すぎる
脳が死んでないか?
0416デフォルトの名無しさん
垢版 |
2022/04/03(日) 21:49:33.85ID:gPxpOVle
高度に抽象化され凝縮度の高い用語を使ってるだけだよ
エアプガイジは黙っとれ
0417デフォルトの名無しさん
垢版 |
2022/04/03(日) 21:56:36.46ID:DNCDVh6y
ガイジ ← 脳が委縮した差別主義者が使う言葉
エアプ ← いつまでもゲームでしか物事を例えられない人が使う言葉
0418デフォルトの名無しさん
垢版 |
2022/04/03(日) 21:59:40.61ID:gPxpOVle
脳が委縮した差別主義者いつまでもゲームでしか物事を例えられない人は黙っとれ

Goみたいな文だな
0421デフォルトの名無しさん
垢版 |
2022/04/03(日) 22:18:16.65ID:9lFqLTmO
go の if err 1= nil は貧者のEither/Result型って感じはするな
rust の enum みたいなものを導入すると付随していろいろなものを導入する必要があり言語仕様が膨らむということならば
シンプルな仕組みで代替するという go なりの割り切りなんだと思うけど
実際のところどうなんだろうね
0423デフォルトの名無しさん
垢版 |
2022/04/04(月) 02:08:47.79ID:pXIYfz5U
Rustなどのように『値付きenum=タグ付きunion』を導入している言語たちは
色々シンプルかつ効率と容易さと美しさを両立できているから
プログラミング言語として常備すべき基本的な型なのだと思われる
0424デフォルトの名無しさん
垢版 |
2022/04/04(月) 07:33:26.24ID:fw6p8g0C
Goにいまさらenum導入しても標準ライブラリから全部変えないとあまり恩恵ないし
if err !=nil {}のシンタックスシュガー導入くらいが妥当だろうね
0425デフォルトの名無しさん
垢版 |
2022/04/04(月) 13:42:12.37ID:lSnbwV1p
関数が複数の値を返却できるのはメリットのように見えて、ソースコードの規模が大きくなるほど型の管理が難しくなるだけだと思うわ

KENTAという人はgo推してるが、保守性の高いコード組みやすい代替言語にすぐ取って代えられると思うんだよな
0429デフォルトの名無しさん
垢版 |
2022/04/04(月) 20:08:25.60ID:ZaQ2qXNU
10年ぶりにプログラミング学習勧めてるけどpython面白いなー
5chではそんな流行ってない感じ?
0430デフォルトの名無しさん
垢版 |
2022/04/04(月) 20:13:10.33ID:w+f2Elco
>>429
5ch全体ではわからないけど少なくともこのスレではpythonは下火
今一番流行っているのはRustだね。
一番人気。それだけにアンチも多くて喧々諤々の議論が巻き起こっている状態。
というよりRustの勢いが羨ましくてファビョってるだけだけどなw
0431デフォルトの名無しさん
垢版 |
2022/04/04(月) 20:48:23.61ID:mbicHYAd
Perl 6 は Raku になったし、自滅かもしれんが、Ruby は「ペナンブラ氏の24時間書店」に登場する位にカリフォルニアの方では認知されてたと思ったんだけど。
0434デフォルトの名無しさん
垢版 |
2022/04/04(月) 21:24:09.92ID:yu8UGqfF
>>427
PHPもだが言語機能に大差はないからあとはライブラリの質だけの差になった
そこで圧倒的差がついた
0435デフォルトの名無しさん
垢版 |
2022/04/04(月) 21:25:42.99ID:yu8UGqfF
>>426
年齢はPerlと大して変わらんからな
Pythonなんてモダンな要素全くないのにここまで流行ったのは凄い
特にRubyやRailsみたいな積極的なマーケティングとかもしてないのに
0439デフォルトの名無しさん
垢版 |
2022/04/04(月) 23:35:26.89ID:AN+U/Dr9
>>432
これホンマガイジ
言語機能が足りないから自動コピペ生成すりゃいいじゃんが罷り通ってるって
頭Goしてるんちゃうか?
0440デフォルトの名無しさん
垢版 |
2022/04/04(月) 23:45:58.24ID:TGLutmH3
>>435
たしかにまあRubyはRailsがキラーアプリとなって日の目を見ることが出来たけど、Pythonは人気を得るきっかけとかあったのかな
GoogleはPythonをめちゃ使ってて、GuidoがGoogleに入社した2005年頃にはすでにPythonがスクリプト言語の中では勝ち組感があったんだろうけども、なんでやろ
0443デフォルトの名無しさん
垢版 |
2022/04/05(火) 00:05:51.56ID:2NHa52hR
Cを使うならRustにした方が機能豊富でプログラミングしやすいよ
もちろんデータ競合もメモリ管理ミスも検出してくれる
そしてほとんどの場合で速度差もない
0444デフォルトの名無しさん
垢版 |
2022/04/05(火) 00:48:48.74ID:vdX4VYV5
The Rust Programming Language 日本語版 をちょこっと読んでみたけどC++作ったストラウストラップが変態だった気がしてしまう
0446デフォルトの名無しさん
垢版 |
2022/04/05(火) 01:29:37.39ID:/ryaTu8Q
>>442
ガイジの真似とてコピペを走らば即ちガイジなり
CがガイジだからGoもガイジで〜ぇすでええんか?
0449デフォルトの名無しさん
垢版 |
2022/04/05(火) 01:42:08.31ID:u+FS9OX1
>>448
君のいうコードジェネージョンがコピペというなら
ジェネリクスも中身は型が違う同じコード生成してるだけだよ?
はい勝った
完膚なきまでに勝った
ここを君を導きたかった
勝ち俺の勝ち
ジェネリクス否定
矛盾
ジェネリクスはコンパイラによるコードジェネーション
勝ち俺の勝ち
勝ち完全
フルに勝ち
勝った
0450デフォルトの名無しさん
垢版 |
2022/04/05(火) 01:46:35.34ID:raev6Sae
>>449
見事に勝っちゃったねえ
レスバ見てたけどそこに導こうとしてるのはわかったよ
そっちに行くな!って思ってた
そもそもコンパイラがコードジェネレータだしね
本質的には同じことしてるわけで機会がコピペしてるからなあ
そっちに行っても負けは確定する
0451デフォルトの名無しさん
垢版 |
2022/04/05(火) 01:50:00.91ID:u+FS9OX1
>>450
いや危なかったジェネリクスがゴミっていう風に持っていくと絶対に勝てないからね
勝つにはなんとか相手を捻じ曲げさせるしかなかった
うまく誘導できたよ
負けるかと思った
0454デフォルトの名無しさん
垢版 |
2022/04/05(火) 02:19:13.35ID:fMFdzsU+
元の話はこれか
型安全を捨てるのは暴挙だな

>>413
> ジェネリクスがないからコピペ or interface{}でAny化して型安全を捨てる言語やぞ
0455デフォルトの名無しさん
垢版 |
2022/04/05(火) 07:05:37.18ID:82POVtug
>>440
pythonはなんといってもAI(ディープラーニング)が起爆剤だろ
あとは自動化・RPA関連(Excel連携、スクレイピング)でもライブラリが豊富で人気がでた
0456デフォルトの名無しさん
垢版 |
2022/04/05(火) 07:07:35.56ID:82POVtug
たった3ヶ月でウェブエンジニアになれた
きっかけはRailsを学んだこと
とか言ってるの最高に気持ち悪い
今はRustとかやって難しいところに悩んでる人がエンジニアだと思う
0457デフォルトの名無しさん
垢版 |
2022/04/05(火) 07:20:44.40ID:fQZQ0DHq
Rust自体は特に難しくはない
もしRustを難しいと感じるようなレベルの人ならば一般的にプログラミングに向いていない
0458デフォルトの名無しさん
垢版 |
2022/04/05(火) 08:14:13.65ID:/ryaTu8Q
なんかバカが勝手に盛り上がってて藁

どこのチンカス野郎がマス書いたコピペジェネレータと言語標準じゃ全く次元が違うだろ

はい勝った
完膚なきまでに勝った
ここを君を導きたかった
勝ち俺の勝ち
ジェネリクス否定
矛盾
ジェネリクスはコンパイラによるコードジェネーション
勝ち俺の勝ち
勝ち完全
フルに勝ち
勝った
見事に勝っちゃったねえ
レスバ見てたけどそこに導こうとしてるのはわかったよ
そっちに行くな!って思ってた
そもそもコンパイラがコードジェネレータとかワロス
本質的には同じでないわけでガイジがコピペしてるからなあ
そっちに行っても負けは確定する
0459デフォルトの名無しさん
垢版 |
2022/04/05(火) 08:37:48.08ID:VqqpMSri
>>456
でもそういう奴等はわかりやすい地雷で助かる
IT業界は人手不足だって言われているのは「自走できる」人材の不足なのに、どっかのYoutuberやプログラミングスクールの言うことを鵜呑みにしてRailsで作成したポートフォリオをドヤ顔で出してくるような奴は俺が企業の採用担当だったら速攻で落とすわ
0462デフォルトの名無しさん
垢版 |
2022/04/05(火) 14:27:50.37ID:ZwTPjiXX
>>455
AI関連の前に科学技術系のライブラリをpythonでって流れは結構あった。
そこらへんがperl、rubyにはなかった。
float回りをいじくると途端に言語や開発環境が汚くなるわけだが、その辺を躊躇しなかったってのが良くも悪くもある。
0463デフォルトの名無しさん
垢版 |
2022/04/05(火) 14:54:27.96ID:hteyj+L8
>>455
せやな、現在の圧倒的なPython人気はAI関連が充実してるからやな
でもGoogle社内の開発言語にもっと昔から採用されてたのにはAIは関係ないやろ

>>462
NumPyやSciPyみたいなのがキラーアプリだと?

もっとよく思い返すとRed Hat、Debian、GentooなどのOSでパッケージマネージャなど様々なツールがPythonで実装されてたし、
数値計算とか関係なく、スクリプト言語のデファクトスタンダードとしての地位を2000年ぐらいには確立してたね

キラーアプリがあるからというよりは、単純に開発者コンセンサスを得やすい言語だったんだろうな、と思ってきた
0464デフォルトの名無しさん
垢版 |
2022/04/05(火) 15:30:06.85ID:ZwTPjiXX
>>463
いやそのころのpythonのパッケージ管理ツールって相当ひどかったぞ。
まともに依存関係を解決できることなんてほとんど期待できなかったし。
まあ今もそういう傾向はあるが。
0465デフォルトの名無しさん
垢版 |
2022/04/05(火) 15:49:46.89ID:Zafpq7jd
pythonは2007年ごろには将来デスクトップ系ではスクリプトの中核になるから小さな社内スクリプトやプラグインのスクリプトは可能な限りpythonにしましょうってずっと自分は運動してたわ。
幸い反対する人もほとんどいなかったな。

もちろんアプリはpythonでは書かないが。

AIなんかはあまり関係ないなぁ。
0466デフォルトの名無しさん
垢版 |
2022/04/05(火) 15:55:55.07ID:VZWFnuGC
40-300行ぐらいのpythonスクリプトは便利だわ

Windowsだと特にshell(cmd)の扱いづらさが際立つし
0467デフォルトの名無しさん
垢版 |
2022/04/05(火) 16:01:09.15ID:Om5krohy
googleはyoutubeや検索エンジンをpythonで実装してたもんな
それでpythonが注目されだした
確か書き換えたらコード量が大幅に減ったのとメンテナンスコストが下がったんだ

当時はC++,java,PytohnがGoogle三大言語だった
今は知らんけど
0468デフォルトの名無しさん
垢版 |
2022/04/05(火) 16:03:31.17ID:Zafpq7jd
pythonはmayaのプラグイン組み込み言語でもあったから
行列やベクトルや虚数を使った回転などを多用する層が
そこで増えていったってながれもあるやろな。
0469デフォルトの名無しさん
垢版 |
2022/04/05(火) 16:19:20.26ID:I+HzSIOd
カーニハン、ロブ・パイクが1999年に出したプログラミング作法(The Practice of Programming)では Perl, awk, C++, Java, C で処理速度とソースコードの行数表にしてた。
0473デフォルトの名無しさん
垢版 |
2022/04/05(火) 18:09:13.50ID:Zafpq7jd
rustは広くは使われないだろうねぇ。
システム部分以外は
ルーズで簡単で気にかけることや
独特な概念が少ない言語でないと広く使われない
プログラミング未経験者が数日である程度書ける程度のでないと
0474デフォルトの名無しさん
垢版 |
2022/04/05(火) 18:21:07.39ID:RXEj+ZGQ
そこでKotlinですよ
ベターJavaの位置付けで学習コストも低い
Scalaほど複雑でもなく、初心者にも手を出しやすいからRustよりはWebでは使われるんじゃないかね

Goは学習コストが低いとかで誤魔化してるだけで、一昔前の使いづらい言語みたいな感じ
0475デフォルトの名無しさん
垢版 |
2022/04/05(火) 18:54:22.88ID:iyhQru73
>>471
所有権気にしなきゃいけないのにPythonの後継は無いなぁ。

>>52
>c++とhaskellあたりを学んでおけば大したことないし

とかいう世界だろ。
0476デフォルトの名無しさん
垢版 |
2022/04/05(火) 19:19:35.56ID:4JjDvpWU
>>475
理解する気がないから勘違いしてるのだろうけど
所有権なんて難しい話ではなく非常に簡単なことだぞ
このスレにもRustのコードが多数書かれてきてるようだが何か難しいことや特殊なことあったか?
0477デフォルトの名無しさん
垢版 |
2022/04/05(火) 19:48:47.33ID:3noiRnfQ
Kotlinなんてぱっとせんもん一生泥から出てこんやろw
webでは絶対流行らない
Javaで既に作られてるもんはわざわざKotlinにしようなんてならんし
Javaに慣れ親しんでる層はJava17を導入するやろな
Javaみたいなのを毛嫌いする層はそもそもKotlinに見向きもしてないし
0479デフォルトの名無しさん
垢版 |
2022/04/05(火) 20:25:45.56ID:8mvJZb/O
kotlinとjavaは相互運用可能なのに、わざわざjavaを選択する発想なんて出てこないだろ

goは学習コスト低い分、この先流行りに乗って採用する企業は増えるかも知れんが、機能不足故にいずれ見離されるんじゃない?

rustは初心者には複雑すぎるし、それこそweb開発でメリットがあまりない

kotlinはともかく、rustやgoが10年先も使われるイメージが想像できない
0480デフォルトの名無しさん
垢版 |
2022/04/05(火) 20:27:09.43ID:fN/L9gSF
これからは同じ内容をどれだけ短くてわかりやすく書けるかと言うことに
各言語は対応せざるを得ない状況になる
0481デフォルトの名無しさん
垢版 |
2022/04/05(火) 20:28:17.56ID:3noiRnfQ
いや逆や
わざわざKotlinをwebで採用する意味ないし
今もそんなことしてる会社は物好きな少数のみ
0483デフォルトの名無しさん
垢版 |
2022/04/05(火) 20:33:11.57ID:3noiRnfQ
goは流行ってるし機能拡張していってるんやから機能不足やから廃れるってことはないやろ
つい最近genericsが導入されたやん
フレームワークにしろ何にしろ使う人が増えればより充実して行くもんよ
こういうのは流れが大事
流れがないswift、Kotlinが今更伸びることはないやろ
0485デフォルトの名無しさん
垢版 |
2022/04/05(火) 20:51:09.86ID:RriiMuS9
>>479
むしろRustだけは生き残ることが確実
Rustの以下のメリットを持つ代替言語が存在しないため
・ガベージコレクションを必要とせずC言語と同等の速さと省メモリを実現
・各種データ競合やメモリ使用の安全性を保証
・現代的な各種プログラミングパラダイムを洗練して採り入れており非常にプログラミングしやすい
0486デフォルトの名無しさん
垢版 |
2022/04/05(火) 20:52:42.92ID:fN/L9gSF
一番最初の言語に選びたくないNo1は今のところRustかな?
まあそんなことにはならないでしょうが

自分は最初はBASICだった

もう使うことはないと思ってたらAppleiiのエミュにBASICが入ってて
使ったことはないのに適当にやっても結構動くものが作れた
0488デフォルトの名無しさん
垢版 |
2022/04/05(火) 21:11:03.50ID:ks20fz6N
>>487
たぶんそれが正解
スクリプト言語程度で良い用途は別として
普通にちゃんとしたプログラミングをするならばC言語で基本をまず学んだ上でRustがベストかな
0489デフォルトの名無しさん
垢版 |
2022/04/05(火) 21:14:31.44ID:jsmatYo9
Cからちょっとだけアセンブラ(オプションで出力させたものを解読できる程度)もありかも知れない
0491デフォルトの名無しさん
垢版 |
2022/04/05(火) 21:18:27.03ID:/ryaTu8Q
>>474
Kotlinやろうとしたら必然的にJVMとJavaも勉強しないとだよね
学習コスト3倍じゃん
バカじゃん
0493デフォルトの名無しさん
垢版 |
2022/04/05(火) 21:28:32.93ID:8mvJZb/O
rustはシステムプログラミングとか、低レベルプログラミングの分野で生き残ると思いますよ
あくまで俺が話してるのはweb系の話

ちょっと主張を代えてしまうようで申し訳ないけど、俺が主張したいのは、kotlinが来るというよりも、goやrustがこの先web開発で盛り上がりを見せるとは思えないということです
0495デフォルトの名無しさん
垢版 |
2022/04/05(火) 21:32:44.23ID:u+FS9OX1
>>493
サーバーサイドに関してはpython一択になると思うよ
今の若手がpython推しなんだからそいつらが偉くなったらみんなpythonになる
現に俺が管理して利権として享受してるサービスをpythonでリプレースしようという案が出てきてる
全力で防いでるが
0496デフォルトの名無しさん
垢版 |
2022/04/05(火) 21:33:48.12ID:m6fZyHop
>>493
大規模ウェブサイトのバックエンドにgoやらrustやら使う事例は多いからweb系とひとくくりにするのもちょっと不正確では
0497デフォルトの名無しさん
垢版 |
2022/04/05(火) 21:33:58.15ID:MlP9V3nG
>>493
うちはWeb系だけどRustを使っています
WebAssemblyでRust以外に良い選択肢がないと思います
実際に一般的な調査でもWebAssemblyで使う言語の1位がRustですね
0499デフォルトの名無しさん
垢版 |
2022/04/05(火) 21:38:03.57ID:DitKiC+e
railsやってた人が動的型付言語で大規模開発は
もう嫌じゃーとなったときにどこに行くかねえ
JVMがgoかrustか

個人的にはgoは無いな…
0501デフォルトの名無しさん
垢版 |
2022/04/05(火) 21:44:13.55ID:8mvJZb/O
>>496
そこなんですけど、今goが流行ってるのってコンテナ構成にマッチしていたり、並行処理が得意だったりメリットがあるからだと認識しています。

とは言え、goはパターンマッチングがやりにくかったり、関数の戻り値が複数あったりで、お世辞にもコーディングが快適とは言えない。
なので、goに代わるkotlinや swiftくらいのちょうどいいレベルの言語仕様の言語が出てきて、使われるようになるんじゃない、みたいな見解を持ってます。
この意見がスレタイとマッチしてなくて、申し訳なかった
0503デフォルトの名無しさん
垢版 |
2022/04/05(火) 21:47:59.27ID:cdGLCT5H
実際の流行りと5chプログラマーのrustへのお熱っぷりには乖離があると思うが
プログラマーがそれだけ好くんだから大した言語よな
go嫌いはif err != nilがキモく感じて嫌がってるのかもしれない
0504デフォルトの名無しさん
垢版 |
2022/04/05(火) 21:48:34.22ID:ZJzYuLv9
>>501
RustならGoの戻り値の問題はいわゆる代数的データ型となる値包含enumでシンプルかつ扱いやすく解決しているし
パターンマッチングについても同じくenum拡張されて非常に強力やな
0505デフォルトの名無しさん
垢版 |
2022/04/05(火) 21:54:38.07ID:ZwTPjiXX
rust信者はただサンクコスト回収のために必死になってるだけだわ。
そういう活動が逆効果ってことを全く理解していない。
0506デフォルトの名無しさん
垢版 |
2022/04/05(火) 22:03:45.09ID:oCmbM95T
現実問題としてRustに勝てる言語が出現してくる気配すらないのはマズいよな
当面はRustが最終解なのかもしれないが

> Rustの以下のメリットを持つ代替言語が存在しないため
> ・ガベージコレクションを必要とせずC言語と同等の速さと省メモリを実現
> ・各種データ競合やメモリ使用の安全性を保証
> ・現代的な各種プログラミングパラダイムを洗練して採り入れており非常にプログラミングしやすい
0509デフォルトの名無しさん
垢版 |
2022/04/05(火) 22:56:37.28ID:A4DfkOI9
食わず嫌いのアンチがコストがかかると思い込んでいるだけではないか
むしろRustは様々なコスト削減になる
プログラミング&デバッグ開発効率が良くなるだけでなく
高速化と省メモリ化によりサーバーやクラウド類の支出コスト削減も大きい
0510デフォルトの名無しさん
垢版 |
2022/04/05(火) 23:13:12.17ID:jhOIIm2D
>>502
rubyしか使ってなかったときは気づかなかったが
rustも使うようになってrubyのブロックがくっつく形がキモく感じるようになった
ruby.foo {|x| x}.bar {|x| x} # ←キモい &blockが一個しか渡せない問題もある
rust.foo(|x| x).bar(|x| x, |y| y) // ←スッキリ
0511デフォルトの名無しさん
垢版 |
2022/04/05(火) 23:21:49.33ID:1v6++hVm
すでにC++, C#, Haskell, Scala, Rustといろいろ渡り歩いてるから
サンクコストなんて感じてないんだよなぁ
Rustの次に移行したい面白い言語が見当たらないからRustに留まってるだけで
0512デフォルトの名無しさん
垢版 |
2022/04/05(火) 23:22:32.66ID:fN/L9gSF
どちらにしても|x|と言う表現は個人的にはキモいと思う
洗練されていない

rubyを毛嫌いしていたのもそれと冒頭の大文字小文字でpublicかどうか決めてる部分
0513デフォルトの名無しさん
垢版 |
2022/04/05(火) 23:25:05.56ID:EpygGO7e
rubyはブロックを1つ渡すときのやり方に特化されてるくせにメソッドチェーンで
ブロック渡し使うとなんかキモいよな

Rubyのクロージャでも{}を省略できたら見た目が良かったかもな
0515デフォルトの名無しさん
垢版 |
2022/04/05(火) 23:28:52.60ID:shnfpWMI
>>514
代数的データ型ならばそれを便利かつ容易に扱える様々な仕組みがないとメリットがない
Goにはそれがない
Rustにはそれがある
0516デフォルトの名無しさん
垢版 |
2022/04/06(水) 01:16:54.79ID:5q0U6A70
GoのマルチリターンはEitherのつもりなのにTupleだし、沼設計としては最先端なんだよな…

理想: e+v
現実: (e+1)*(v+1)=(e+v)+ev+1

結果が完全な失敗と完全な成功だけじゃないところもまた、現実のそのものである。
0517デフォルトの名無しさん
垢版 |
2022/04/06(水) 03:20:12.66ID:wPZ6Wy+h
>>510
ほんとここだけは直してほしい
Ruby全盛時に設計しちゃったもんだから
余計な要素が入り込んだ
0520デフォルトの名無しさん
垢版 |
2022/04/06(水) 08:28:24.14ID:FubAROXf
>>476
そういうことを言っているからRustユーザーは駄目なんだ。
ヒープもスタックもメモリ管理も知らないGC前提の高級言語のユーザーが所有権とかmoveとかを理解するまで、一体いくつ新概念を理解しなきゃいけないか。
理解を助けるメタファーもろくに無いし、「非常に簡単」はありえない。

まぁ、
>c++とhaskellあたりを学んでおけば大したことないし
とかいう発想だから、Rustユーザーは自分達がどれだけ他言語ユーザーから乖離しているか気づいていないか。
0521デフォルトの名無しさん
垢版 |
2022/04/06(水) 08:38:33.64ID:ByE3BIzU
Rust使い人は使えばいい

メモリ管理などの低レベルなことに専心したくないから大多数の人はGC言語を使ってるのであって
Rust必須になればみなプログラムやめるよ

メモリ管理は関心の集中先ではないからなあ
0523デフォルトの名無しさん
垢版 |
2022/04/06(水) 08:59:55.51ID:ERAAutfZ
>>521
食わず嫌いで勘違いしすぎていて痛すぎる
メモリ管理するためのコードを書くのがRustだと勘違い?
例えばRustのプログラム例>>312のどこでメモリ管理してる?
メモリ管理なんて面倒なことするコードを書きたくないからRustを使うのだよ
0526デフォルトの名無しさん
垢版 |
2022/04/06(水) 09:10:21.22ID:aOWfxLhU
>>525
それの何を問題視してるのかしら
moveはクロージャに変数キャプチャするかどうかでGC言語にもある概念
&は単なる参照でこれもGC言語にもある概念
0528デフォルトの名無しさん
垢版 |
2022/04/06(水) 11:00:12.47ID:X7GvwD6X
>>521
2種類の人種がいるんだよ

自動車産業に例えたら、(1)地方の工場勤務の期間工と(2)研究開発センターのエンジニア

(1)はRustは使用しなくていい。というか理解できなくて使えない。Pythonとかで頭を使わないコード書くだけだから。例えるなら、ラインで組み立て作業を1日延々しているだけのルーチンワーク要員。

(2)はRustなどを使用してシステムプロラミングWebassemblyなどでローレイヤーや基盤を作っていく。例えるなら自動車のエンジンやデザインの設計者。
0529デフォルトの名無しさん
垢版 |
2022/04/06(水) 11:12:27.97ID:P2epzghE
普通のプログラマー
 PythonでもJavaScriptでもRustでも用途毎に使い分ける

似非プログラマー
 特定のスクリプト言語しか使えない
0531デフォルトの名無しさん
垢版 |
2022/04/06(水) 11:27:29.43ID:XB6J8/aS
Rustでメモリ管理はしなきゃいけないでしょw
双方向リストを普通に書くと循環参照でるよね
WeakとRcをプログラマが手動で必死に使い分けてなんとかするのがrust
一方で循環参照もなんとかケアしてくれる(かもしれない)のがGC言語

これはRustを批判するんじゃなくて
GC言語の価値を改めて評価できるという例
0533デフォルトの名無しさん
垢版 |
2022/04/06(水) 11:29:06.13ID:PUvuY8jT
>>505
Rustを難しいと勝手に思い込んでいるようだけどそれは勘違い
C言語とあともう一つ今どきのプログラミングパラダイムを備えた言語を使いこなせる人ならばRustは容易に楽に習得できる
つまり普通にまともなプログラマーにとっては難しいことは何もない
0534デフォルトの名無しさん
垢版 |
2022/04/06(水) 11:32:57.60ID:SQHVCoBe
>>531
双方向リストなんてライブラリにあるのを使うだけだからそんなの関係ないだろ
同様にベクターコンテナもライブラリにあるのをそのまま使うだけ
それとも君は毎回自作してるのかね?
0535デフォルトの名無しさん
垢版 |
2022/04/06(水) 11:38:59.86ID:XB6J8/aS
RustにGCが無いのは特徴であり
この言語の方向性においては利点でしかない思ってるよ
GC無しでRAIIでなんとかしていこうず!という潔い言語
中途半端にならなくて清々しいよ
0536デフォルトの名無しさん
垢版 |
2022/04/06(水) 11:41:06.57ID:j3mCjXSb
>>531
GC言語とはガベージコレクションが必須な言語
一方でC/C++/RustはGCが必須ではなくGCが必要な用途の時だけGCすればよい言語
だからどうしても循環参照などでGCが必要ならばC/C++/RustでもGCをするモジュールなどが用いられている
0537デフォルトの名無しさん
垢版 |
2022/04/06(水) 11:42:07.19ID:azRXBWjT
>>528 >>529

>>471が「RustがPythoneを置き換える」とかいう妄想を垂れ流しているから突っ込んだだけだよ。

バカはトンカチを持つと何でも釘に見えると言うけど、Rustユーザーはその典型だな。
0538デフォルトの名無しさん
垢版 |
2022/04/06(水) 11:46:18.46ID:iij/35sY
>>531
またそんなデマカセを書いてるな
ヤラセ記事ならともかく実際のプログラムでそんな変な実装をしている例を見たことがない
妄想で叩くのはやめとけ
0539デフォルトの名無しさん
垢版 |
2022/04/06(水) 11:46:52.40ID:azRXBWjT
>>533
C言語とあともう一つ今どきのプログラミングパラダイムを備えた言語を使いこなせる人……つまり普通にまともなプログラマー

なるほど、PythoneやJavaだけを使っているプログラマーは普通でもまともでも無いということを主張したいんだな。
0540デフォルトの名無しさん
垢版 |
2022/04/06(水) 11:50:43.24ID:yFuiayyW
>>537
でもその人の書き込みを見たら
Web分野と限定してるね
Web分野でのPythonなんてPythonしか使えない人しか採用しない状況だから
話としては合ってるんじゃないかな
0542デフォルトの名無しさん
垢版 |
2022/04/06(水) 12:32:21.96ID:rwS/Q696
>>540
webでもPython置き換えとしてRustが出てくることは無い。
web用途だからといって所有権だのスコープ・ライフタイムだのを回避できるわけじゃないしな。

>>541
Rustユーザーが初心者・初級者を馬鹿にするようじゃなぁ。Rustの失敗は約束されたな。
0544デフォルトの名無しさん
垢版 |
2022/04/06(水) 12:58:29.92ID:6roFDaHL
>>536
えっ・・・?GCがないからRust最強他はクソじゃなかったんですか?(´∵`)
どこぞのチンカスメンがマス書いた野良イブラリでGCとかRustユーザーのおじさんたちって・・・(´∵`)
0546デフォルトの名無しさん
垢版 |
2022/04/06(水) 14:20:43.99ID:1nRPgXLc
また意味不明の非GC言語なんて言い出してんのかw、リファレンスカウント使ってんだからそんな意味のない宣伝もうやめろよ?
0549デフォルトの名無しさん
垢版 |
2022/04/06(水) 14:46:08.13ID:Fm2KF3vu
参照カウントのガベージコレクション
https://developer.mozilla.org/ja/docs/Web/JavaScript/Memory_Management#reference-counting_garbage_collection

これは、最も素朴なガベージコレクションアルゴリズムです。このアルゴリズムは、"あるオブジェクトがもはや必要ない"ことを、"あるオブジェクトがその他のオブジェクトから参照されていない"ことと定義します。あるオブジェクトは、それに対する参照がゼロの時にガベージコレクト可能であると見なされます。
0550デフォルトの名無しさん
垢版 |
2022/04/06(水) 14:48:22.40ID:7ui2nPA0
>>517
引数の最後のブロックを特別扱いで記述できる文法はrubyからgroovyを経由してkotlinにも引き継がれていて、わりと欠かせない記述方法になってる
ここの https://dogwood008.github.io/kotlin-web-site-ja/docs/reference/lambdas.html
これみたいな記法を頻繁に使うからいまさら無くなっても困る
lock (lock) {
sharedResource.operation()
}
0551デフォルトの名無しさん
垢版 |
2022/04/06(水) 14:57:27.14ID:rwS/Q696
>>543
スレの流れが追えていないのに口を出すなよ。最初の方の>470 >471 >475から所有権出てるわ。

ChMateとか導入したら?
0552デフォルトの名無しさん
垢版 |
2022/04/06(水) 23:24:49.88ID:DtmD4s0L
>>551
その所有権がどうしたんだい?
所有権が理解できないなら参照も理解できないから
参照渡しと値渡しの区別もつかないことになる
どの言語でもそういう話は理解しないと使えないから
所有権の概念があるかどうかで困るプログラマーは存在しない
0555デフォルトの名無しさん
垢版 |
2022/04/07(木) 07:31:09.34ID:zb08jYei
>>552
こういうRustユーザーが多いなら、RustのHaskell化は約束されたようなものだな。
Rustコミュニティー全体がその認識なら致命的かと。
0556デフォルトの名無しさん
垢版 |
2022/04/07(木) 07:42:19.84ID:wRPEswS2
Rustは当面プログラミング言語の王者として君臨し続けるのではないか
高速かつ省メモリかつ安全という他の言語が満たせないRustのアドバンテージを崩せる新言語が登場しない限り

> Rustの以下のメリットを持つ代替言語が存在しないため
> ・ガベージコレクションを必要とせずC言語と同等の速さと省メモリを実現
> ・各種データ競合やメモリ使用の安全性を保証
> ・現代的な各種プログラミングパラダイムを洗練して採り入れており非常にプログラミングしやすい
0557デフォルトの名無しさん
垢版 |
2022/04/07(木) 08:03:31.90ID:/n3eSctb
俺はRustは廃れるに一票
このスレ見てる限り信者がカルトすぎる
Go信者が可愛く見えるレベル

そもそも設計で差を付けられるレベルなら、言語に拘る意味もそこまでない
このスレがそういう趣旨だというのもあるとは思うが、言語への執着が酷すぎ
0558デフォルトの名無しさん
垢版 |
2022/04/07(木) 08:10:05.04ID:zl/syFdq
はっきり言って近代的な言語なら仕様も習得もそのコーディングもどの言語でも大差ないんよ
そうなると言語自体として本質的な有利な面を持つRustがじわじわと広まる結果となるかな
0559デフォルトの名無しさん
垢版 |
2022/04/07(木) 08:56:02.87ID:/n3eSctb
>>558
> どの言語でも大差ない
だから敢えて独自路線を、というのがGoの当初の目的でもあったろ
(上手く行ってるかは別)

> 本質的な有利な面を持つRust
俺はあれは筋が悪いと見てる
寿命管理はmoveではなくupが多分正解で、これを綺麗に書ける言語が出てきたらその瞬間終わる
(それ以前にGCの方がいいが)

あとRustの問題は、多分プログラマが上達しない事
これは長期的には絶望的に不味い
「C++はプログラマを育てる言語だ」というのはC++始祖の持論だが、これは考える事を強いるからだ
Rustの場合は(このスレ見る限り)「コンパイラが全てやってくれる!考えなくて済む!」のノリのようで、これは絶望的

Rustは「C++の特定の使い方」に近似出来、コンパイラがその形式を強制する
だからC++をこの形式で使っている連中は確実に移行する
そうではないC++使いが移行する事はない
Rustを使えばデバッグしなくて済むから楽!とか言ってる初心者連中は戦力にならない

というかね、根本的なところで、寿命管理や所有権とかは「面倒」であって「苦労」はしない
だからやらなくて済むのならそれが一番いいが、
やれと言われればやるだけであり、手間が増えるだけで、出来ないものでもなく、それ自体には苦労もしない
だから根本的な立ち位置がイマイチなんだよRustは
そしてこれに苦労するような連中は、そもそもプログラミング能力が低いだけなのだから、
そこで苦労する事は糧となるから頑張れ、でもある

これが無理だからGCを使うのだ、という事に対しても俺は肯定的で、それでいいと思うが、
Rustが目指しているのは「GCが無いと困る馬鹿でも補助輪を付けてチェックするからなんとかなり、
GC無し並の速度が出ます」であって、結局は馬鹿向けの補助輪でしかない
そこで苦労する程度ならガチでC++で苦労した方が上達するからそうしろ、でしかない
(まあ馬鹿でも何とかなるように、というのが言語の進歩でもあるのだが)
0560デフォルトの名無しさん
垢版 |
2022/04/07(木) 08:56:07.07ID:hOTZf/Ps
言語の普及について語るときにキラーアプリを語ればいいと思う
Rubyが普及したのはRuby on Railsがあったから。
Pythonが普及したのはAIライブラリ(tensorflowなど)があったか。
RustにはRubyのRoRやpythonのAIに相当するものがあるか?もしくはこれからでてくるか?
そのヒントとしてはWebAssemblyにあるように思う。
0561デフォルトの名無しさん
垢版 |
2022/04/07(木) 09:01:27.48ID:5wMGrsUW
 :::....   /|\||   
     //|'\\.... ...:::.. .......
    |/ ,'|-、 \\
    |/ ,'|-、 \\\
    |/ ,'|-、 \\\|.... ...:::.. .......
    |/ ,'|-、 \\\|:..。..... ...:::.. .......
    |/ ,'|-、 \\\|__|
    |/ ,'|-、 \\\|:...|ヽ .... ...:::.. .......
    |/ ,'|-、 \\\|::::| |::..... 
 | ̄ ̄ ̄ ̄ ̄\、'\\|;;:.|_,,|___   
 | □□ □□ | |\, \|;;::....     |\
 | □□ □□ | |  | ̄ ̄ ̄ ̄|\;: . |  |
 | □□ □□ | |  |□□□□|  |::...|  |;;:
 | □□ □□ | |  |□□□□|  |::...|  |:;:./
 | □□ □□ | |  |□□□□|  |::...|  /
 | □□ □□ |.._|__,,|□□□□|  |::...|/  
,,| ̄ ̄ ̄|| ̄ ̄\≡\,□□□|/ ,/

今北産業 [IMAKITA INDUSTRIAL CO.,LTD]
     (1978〜 日本)
0562デフォルトの名無しさん
垢版 |
2022/04/07(木) 09:02:23.11ID:qcT6PBEO
RustのようにCと同等の速さと省メモリの言語が出てくればRustが敗れる可能性が出てくる
現時点では存在しないためRustの天下が続きそう
0563デフォルトの名無しさん
垢版 |
2022/04/07(木) 09:26:02.84ID:/n3eSctb
>>560
> WebAssembly
ねえよ馬鹿タレ
というかこのWebAssembly推しは一体何なん?
シェア的にもあり得ないし、ググラビリティもJSに比してゴミ以下だろ

Webの場合はそもそもクライアントサイドで何が出来て何をやるべきかが分かってない事が多く、
つまり、他言語で既に十分出来てる連中でもクライアントサイドを書く時には、まずこれを理解せねばならず、
一番手っ取り早いのはJSであり、これを避けては通れない
JS/TSである程度クライアントサイドをこなしてからなら他言語でWebAssemblyでもいいが、
JSに比してググラビリティも0に近いWebAssemblyでクライアントサイド入門とか、ただの自殺
俺はWebAssembly推しは完全にミスリードで、糾弾されるべきだと思ってるよ

この状況で、JSに比してWebAssemblyが主流になる状況は、現在のところあり得ない
だいたい、Rustをわざわざ学んでWebAssemblyするくらいなら、上記のようにそれ以前にJSを通るし、
ほぼ全部のサイトでJSで十分だからこそ圧倒的シェアになってる

元々JSだったのは「ソースじゃないと信頼出来ない」という事であり、
それが「最早そういう状況ではないのでバイナリでもいい。速さ重要」となってきているからこそのWebAssemblyではあるが、
ならばそのうち「もうネイティブバイナリでよくね?サンドボックスを仮想的に作ろう。これが最速」となって、
ネイティブバイナリをブラウザ内で実行する状況になって終わると思うけど
仮想周りは本当に進歩したし、何故か知らんがアメリカ人はエミュには執着するしで、これも時間の問題
0564デフォルトの名無しさん
垢版 |
2022/04/07(木) 09:37:09.90ID:Nyl3OsEM
確かにWebAssemblyではガベージコレクションのないRustが一強になってるな
WebAssemblyにおいてreference typeがサポートされたためDOM操作の壁が大きく低くなり実用的となったことも大きい
今後Rustによるフロントエンドが更に進むことが確実となった
0565デフォルトの名無しさん
垢版 |
2022/04/07(木) 10:03:19.72ID:6mRJTF59
>>559
世にあるc/c++メモリ周りの扱いによるバグやセキュリティホールの殆どは、「GCがないと困るバカ」以外の人間が書いているわけだが。
0566デフォルトの名無しさん
垢版 |
2022/04/07(木) 10:10:10.15ID:hOTZf/Ps
>>563
おまえが(1)のタイプだということはわかったから黙ってくれw

(1)はRustは使用しなくていい。というか理解できなくて使えない。Pythonとかで頭を使わないコード書くだけだから。例えるなら、ラインで組み立て作業を1日延々しているだけのルーチンワーク要員。

(2)はRustなどを使用してシステムプロラミングWebassemblyなどでローレイヤーや基盤を作っていく。例えるなら自動車のエンジンやデザインの設計者。
0567デフォルトの名無しさん
垢版 |
2022/04/07(木) 10:18:58.15ID:/n3eSctb
>>564
> 確かにWebAssemblyではガベージコレクションのないRustが一強になってるな
今は、だろ

> (WebAssembly は将来的にガベージコレクションによるメモリー管理を行う言語をサポートする 高レベルの目標 を持っている事に注意してください)。
> https://developer.mozilla.org/ja/docs/WebAssembly/Concepts
要するに今はGCの直接サポートがないから
GC言語だと436のようにGC部分も自前で用意してやる必要があるが、
直接サポートされれば丸々この部分は落とせ、436も完全に
「Rubyでもクライアントサイドが書ける」と言ってもいいくらいの物になるのだろうよ
この意味では、Ruby(436)のアプローチは正しい

とはいえ、肝心の(上記リンクの先)
> https://webassembly.org/docs/high-level-goals/
に「GCをこれからサポートする予定です!」という記述がないのだが、これは落とされたのか?
落とされてないのなら、サポート後はJS嫌いな奴はRyby/Python等でクライアントサイドを書くのも既定路線
ガチ最速目指すのならC++で書くのも既定路線
Rustは「『C++では無理な馬鹿にとっては』最速」というだけであり、この冠詞が取れない限り厳しいよ
C++はWebをやろうとしてないだけであって、出来ないわけではないので

RoRの状況知らんが、もしかして一番喜んでるのはRoRの連中かもよ?
これまで全部サーバーサイドレンダリングするか、諦めてJS書くかしかなかったのが、
Rubyで全て完結するようになるから。
(既にasm.js使ってJSは書いてないかもしれんが)
0568デフォルトの名無しさん
垢版 |
2022/04/07(木) 10:23:06.36ID:/n3eSctb
>>565
> メモリ周りの扱いによるバグやセキュリティホールの殆ど
具体的にはどんな奴よ?
そしてそれがRustやJava等だと「自動的に」「どんな馬鹿が書いても」大丈夫だとでも?
0569デフォルトの名無しさん
垢版 |
2022/04/07(木) 10:29:46.01ID:FJnsEJOV
WebAssemblyでなぜ利用トップがRustで2位がC++なのか?
理由は簡単でGC言語は圧倒的に不利であるため
またWebAssembly自体でのGC導入が問題点多すぎで当面無くなったことも大きい

次になぜC++ではなくRustが1位なのか?
理由は簡単でRustの方が圧倒的にプログラミングしやすいため
Rustが有利なこと自体はWebAssembly以外の分野でも全く同じだが歴史の積み重ねの差がまだある
歴史的に新しいWebAssemblyでは後発言語の不利な点がないためRust有利が顕著に現れた
0570デフォルトの名無しさん
垢版 |
2022/04/07(木) 10:33:32.72ID:/n3eSctb
>>566
Rust信者は(1)のくせに(2)を気取ってる、勘違い意識高い系馬鹿だね

(2)なら最初からC++を使うし、そのスタイルがRustで強制しているスタイルと合致してれば、
これまた迷うことなく最初からRustを使うし、移行にも躊躇ない

だから正直、ここで信者がやってる布教なんて全く意味ないと思うんだけどな
ウザイだけで
0571デフォルトの名無しさん
垢版 |
2022/04/07(木) 11:27:45.58ID:wigEobQO
ビックテックがこぞって使ってるんだからほっといてもある程度は流行るでしょ
俺は楽に稼ぎたいしみんなにもそうなってほしいからRust推してるわ
0573デフォルトの名無しさん
垢版 |
2022/04/07(木) 11:37:41.07ID:QfJTmIv3
>>557
> 俺はRustは廃れるに一票

キミの投票はキミのカーチャンにでも見てもらってください
キミのカーチャン以外はそんな一票になんの興味も無いので
0575デフォルトの名無しさん
垢版 |
2022/04/07(木) 12:40:08.52ID:OdIUq1Z2
Rustはプログラミング言語にとって根源的に重要な要素「データ競合やメモリ扱いで安全性が保証される」及び「C言語と同様に最高速&省メモリ」を両立する唯一の言語
新たな言語が出現しないとRust最優位は崩れないのではないか
0576デフォルトの名無しさん
垢版 |
2022/04/07(木) 13:09:09.76ID:a0EStXea
Ruby on Rails 7 で、脱Node.js, Webpack, Babel。
IE の死滅により、ES5 へ変換しなくても、ブラウザはES6 のままで動く

WebSocket を使う、Hotwire で、
近年、React に奪われたシェアを回復すべく、
SPA のgame changer を目指すのが、Railsの野望!

Rubyだけで、SPA になったから、React, Vue.js は今後どうなるのか?
Railsが、SPAのシェアを奪えるか
0577デフォルトの名無しさん
垢版 |
2022/04/07(木) 13:44:56.72ID:tEZE72Zs
>>564
RustWasmでDOM操作まともにやれるならやってみたいなと思って最近調べてるんだけど、
https://zenn.dev/igrep/articles/2021-11-wasm-reference-types
によるとReference Typesを使うとむしろパフォーマンスは下がるらしいし、JSにはまだ到底及ばないらしいんだよね
実際使ってみての感想とか、↑のベンチ取り方おかしいわヴォケとかあったら聞きたいんだけど、どう?
0579デフォルトの名無しさん
垢版 |
2022/04/07(木) 14:34:20.48ID:86kfLMWB
>>578
それはWebのDOM要素とWebAssemblyでのReference Typesの話だろ
Rustなどの特定の言語の話じゃない
それすら理解できないやつが的外れな文句を言うな
0580デフォルトの名無しさん
垢版 |
2022/04/07(木) 14:43:19.94ID:hOTZf/Ps
>>578
そんな言論統制したら比較すれの意味がなるなるだろ
Rustの話を禁止したらここはGoの話題だけになりGoがRustに比べてはやってるんの?って勘違いする人がでてくる
0582デフォルトの名無しさん
垢版 |
2022/04/07(木) 17:13:11.30ID:uI5WJg3m
>>580
Rustは習得が簡単とか大嘘つくやついるしなぁ。
話題にするのはいいけど嘘八百はいかんよ。
0584デフォルトの名無しさん
垢版 |
2022/04/07(木) 17:23:30.39ID:uI5WJg3m
>>583
所有権、ライフタイム、moveセマンティック、参照・借用、型システム、その他もろもろの概念を「ほとんど全部使わないと」まともなプログラムができないところ。
だから「C++とHaskellが使えればRustは簡単」とかいうアホなコメントが出てくる。
0585デフォルトの名無しさん
垢版 |
2022/04/07(木) 17:57:35.76ID:+6isarPd
>>584
僭越ながら横から失礼しますが、概念の数は学習の難易度とは比例しません。
個別の概念を合わせた結果、目的の用途に合致するようになるかどうかのほうが重要かと思います。

機械語だったら概念の数がRustとGoよりもずっと少なくなると思いますが、機械語を使えばプログラミングしやすくなると思いますか?
0587デフォルトの名無しさん
垢版 |
2022/04/07(木) 18:23:34.25ID:6J24GmAj
>>568
全ての問題が解決すると思ってるのは馬鹿なので相手にしなくて良い
ゼロイチの議論しかしない人もそう
人間誰しも馬鹿な間違いをする可能性があって、間違いを見逃す頻度を大きく下げられることに価値がある
0588デフォルトの名無しさん
垢版 |
2022/04/07(木) 18:37:02.12ID:D5y31O0v
>>586
でも両方書ける人はGoよりRustの方がプログラミングしやすいと100%答える現実を見ると
Goは言語機能不足という感じやね
0589デフォルトの名無しさん
垢版 |
2022/04/07(木) 18:50:26.86ID:6pGOygc2
>>588
>でも両方書ける人はGoよりRustの方がプログラミングしやすいと100%答える現実を見ると
そんな現実はお前の脳内にしかない。
0590デフォルトの名無しさん
垢版 |
2022/04/07(木) 18:56:45.12ID:wax9VJjI
Rustも使いこなせる人でGoの方がプログラミング使いやすいと言う人を見たことないな
こればっかりはGoの貧弱な言語仕様では仕方ないところかと
0591デフォルトの名無しさん
垢版 |
2022/04/07(木) 18:56:54.01ID:pGmXk0tm
>>585
「概念の数が増えない段階なら」学習は簡単でしょうな。ADDとかの概念そのものは簡単に学習できる。
ただ、機械語の場合はメモリの位置にも機能&概念があるから、それらを含めると「概念の数が少ない」とは言えない。

あと、
>>584
目的の用途に合致するようになるかどうかのほうが重要かと思います。

というのは学習においては成り立たなくて、「すでに習得した概念 (日常生活なども含む) に沿っているか」の方が重要。
例えばオブジェクト指向はいろいろな概念の集まった複雑な考え方だけど、「対象物を操作する」という日常生活で慣れ親しんだ概念を下敷きにしているから比較的習得しやすい。
0592デフォルトの名無しさん
垢版 |
2022/04/07(木) 19:53:12.89ID:+6isarPd
>>591
同意です。

が、私が強調したい部分は、言語仕様が簡略な分、必要最低限の複雑性が代わりに言語以外のところに現れることです。

CPUレジスタの固有機能や命令セットの違いとかもまさにその通りで、言語自体の概念ではないが、目的の用途に取り組む場合に必要なる知識だったします。

RustとGoを学習する場合も勿論、言語を構成する概念だけ、一通り目を通せば終わり、というわけではないですよね?
0593デフォルトの名無しさん
垢版 |
2022/04/07(木) 19:53:35.29ID:48p+VEp6
雑魚ウェブプログラマーの俺からするとRustはGoに比べて言語機能がリッチでいいんだが、まだライブラリ(Rustではクレート)が十分に揃ってないように感じるのと、クレートがすごい細かい単位で分割されてるからたくさんクレートを組み合わせて使わないといけないのが難点かな
個人的には早くまともなORMを出してほしい。1番使われてるであろうORMのDieselが非同期に対応してないのは辛いw
0594デフォルトの名無しさん
垢版 |
2022/04/07(木) 20:33:59.30ID:hOTZf/Ps
>>593
そうあせるな。JavaだってまともなO/Rマッパーが追加されるまで10年くらいかかってる。

Java
- 1996年 Java 1.0
- 1999年 JavaEE
- 2006年 JavaEEにJPA(O/Rマッパー)追加
 
Rust
- 2015年 Rust1.0
0595デフォルトの名無しさん
垢版 |
2022/04/07(木) 20:39:59.88ID:zb08jYei
>>592
そこは>>584で述べた通り、Rustは
「もろもろの概念をほとんど全部使わないとまともなプログラムができない」
というのが学習する上で凶悪な障壁になっている。
例えばPythonなら基本的なメソッド呼び出しから段階的にプログラムを作りながら学習していけるけど、
Rustは関数ひとつ呼び出すにも所有権、スコープ、ライフタイム(RAII)、moveセマンティック、参照・借用あたりの概念を習得しないとそもそもプログラムが作れない。
自動車のマニュアルをいきなり習うようなもので、そりゃ挫折する人間も増えるかと。
まずはオートマで運転に慣れてから限定解除したほうが習得しやすいよね。
0596デフォルトの名無しさん
垢版 |
2022/04/07(木) 20:43:09.58ID:eYC8sBa3
25年前からの10年と7年前からの10年を同じく扱いにするなよ。
0597デフォルトの名無しさん
垢版 |
2022/04/07(木) 21:06:58.62ID:/n3eSctb
>>587
お前、ホームドアがなかった頃にホームから落ちたことあるか?
俺はないよ。


大都会では用水路に蓋がなく、偶に人が落ちて死んでる。
それらがほぼ暗渠になってるトン菌民とかからすると非難囂々だが、
住んでる連中は蓋がない事に慣れてるし、落ちる事もほぼないので、今後も蓋がされる気配はない。

同様な事はホームドアにも言える。
実際、ホームドアがなかった頃、困った奴はどれくらい居る?
俺は落ちた事も、落ちそうになった事もない。
ホームの端は歩かないというのが鉄則で、
混雑してる場合は何かの拍子で押されて一歩よろめいても問題ない程度の余裕を持って歩く、
それが出来ないなら諦めて人混みの流れに乗る、としてきたからだ。
これは電車通勤してる奴はみんなそうしてるし、実際に殆どの奴は落ちた事がないはず。
落ちるような奴は、そもそも保険も注意も足りてないだけ。

ガードレールがあり、歩道と車道が完全に分離してる道と、そうでない道、どの経路を通るかの選択も同じ。
車が通らない道が一番安全で、次にガードレール付きの歩道がある道、そうじゃない道の順なのは誰でも分かる。
なら、安全な道を選択すれば事故の確率は減らせる。


同じなんだよ。危険性があると分かっているのなら、上位での回避努力は出来る。
それがホームドアがなくても殆どの人が落ちた事がない理由だ。
上位での回避努力をして、さらにチェッカーが付いていれば、さらに事故を減らせる。
しかしRustは、上位の努力をせずにゴリゴリチェッカーだけで安全を確保しようとしてる。
それは俺は違うと思うし、今まで落ちた事もないから、俺にはRust流ホームドアも要らんよ、としか思わない。
(なおホームドア自体は視覚障害者や児童の為に有った方がいいが)

Rustの連中が言ってる安全性は、C/C++で特に困ってない連中には何の魅力もない。
その安全性は多分開発速度の向上に寄与するはずだが、Rustで早くなったって話もないでしょ。
0598デフォルトの名無しさん
垢版 |
2022/04/07(木) 21:32:17.79ID:6pGOygc2
非同期でないORMとか意味わからん。誰が使うんだ?
rustがランタイム速いとか言ってもそれじゃ全く意味ないじゃん。
0599デフォルトの名無しさん
垢版 |
2022/04/07(木) 21:32:21.20ID:+6isarPd
>>595
実際は概念一つ一つを念入りに調査せずに、初心者の内はとりあえず思ったまま書いて、
コンパイラに渡してエラーになったら修正するのが普通かと思いますね。

たぶん、人によっては間違ったコードがCIとかでエラーになることを恥と思う気持ちもあるが、些細な問題です。
私もよく、失敗したくないときは、ローカルでコンパイルしてからプッシュするようにしています。
そこは基本的に気持ちの問題ですよね。
0600デフォルトの名無しさん
垢版 |
2022/04/07(木) 21:35:29.56ID:ikFGu1Ah
じゃあ動的型付け言語でも問題ないな
自分で気を付ければいいだけなんだから
0601デフォルトの名無しさん
垢版 |
2022/04/07(木) 21:38:19.51ID:+6isarPd
>>595
たとえばの話、多くの初心者は再帰関数を使って、スタックオーバーフローを起こして初めて、スタックというものを意識をするわけですが、
それまでは、スタックという概念をまったく気にせずにプログラムを作っていたことも、よくありますよね?

Rustの所有権周りの概念のうち、どれだけこのスタックのアナロジーに当てはまるかは多分人それぞれですが、
少なくとも、所有権の概念を細分化してできた概念の数が、そのまま敷居の高さになることはないと思います。
0602デフォルトの名無しさん
垢版 |
2022/04/07(木) 21:41:34.29ID:bwKax5i+
>>597
GAFAMのような大企業はホームから突き落とされるリスクが現実的だからホームドアを必要とするんだよ
ただお前さんのプログラムは攻撃者に狙われるほど広く使われていないというだけ
もちろんそういうマイナーなプログラムに安全性は不要というならそれは自由だけど
0603デフォルトの名無しさん
垢版 |
2022/04/07(木) 21:46:07.49ID:bwKax5i+
あと酔っ払ってホームから転落する大人もいるってのもあるな
つまり一流のプログラマでも絶対にミスをしないということはないから機械的にチェックしたいという話
0604デフォルトの名無しさん
垢版 |
2022/04/07(木) 21:59:21.50ID:/n3eSctb
>>600
実際俺はJSで特に苦労もしてない。

Rustの信者連中が間違ってるのは、Rust公式勝手訳日本語版まえがき(前スレ990)にある、
> やっかいな落とし穴を回避する術
を学ぼうともしてない事なんだよ。
これを学んでからRustを使えば確かに二重チェックになって意味はあるが、
学ばずに済ませようとするのは間違いだよ。
(とはいえ結果は君らが負うのだから好きにすればいいが)

ホームドアがない時には、端を歩かない、走ったりもしない、というのは鉄則だった。
ホームドアがあるから、走ったりしても安全!というのは明確な間違いだよ。
そんな事をしてる限り、危険予知能力なんて絶対に身に付かないから、
Rust以外の言語だとまともにプログラミング出来なくなるとも思う。
(それも含めて選ぶのもまた自由だけど)


>>602
GAFAM連中は「やっかいな落とし穴を回避する術」を知ってる上でやってるから二重チェックになってて意味がある。
ここのRust信者はこれを知らずに「Rustを使いさえすれば安全!バグ無し!」とか、
一時のHaskell連中と同じ事を言いだしてるから、ただのカルトであり、意味がない。

ただそれはさておき、コンパイラのチェックが厳しければ生産性が向上するはずなのだが、
実際聞いた事ないだろ?
実際には二重チェックとしてしか使われておらず、なければないで済む範囲での使用に留まっているから、
生産性の向上分が見えてこないだけ。
本当にRustじゃないと無理だっていうものがあれば、キラーアプリとしてそれが出てくる。
ないんだから、そういう事。
0605デフォルトの名無しさん
垢版 |
2022/04/07(木) 22:07:07.36ID:gzjYIF1u
>>604
やっかいな落とし穴が何に該当するかよくわからないのだけどrustやるならC++での危険回避法を熟知しておけということ?
0606デフォルトの名無しさん
垢版 |
2022/04/07(木) 22:09:45.98ID:zb08jYei
>>599
> 実際は概念一つ一つを念入りに調査せずに、初心者の内はとりあえず思ったまま書いて、
> コンパイラに渡してエラーになったら修正するのが普通かと思いますね。
Rustの場合、初心者がまともに動くプログラムに到達するまでいくつも修正しなきゃいけないのが問題だっつうの。
エンストしまくってたらマニュアル運転の練習もクソも無いわな。

>>601
> たとえばの話、多くの初心者は再帰関数を使って、スタックオーバーフローを起こして初めて、
> スタックというものを意識をするわけですが、
ここからすでに前提が間違っている。
Pythonとかは再帰関数を使用しなくてもプログラムを実装できるけど、
Rustは所有権を使用しなけりゃ変数定義も関数呼び出しもできない。

> 少なくとも、所有権の概念を細分化してできた概念の数が、そのまま敷居の高さになることはないと思います。
ここも間違っている。
細分化して段階的に学習できればまだマシな方で、Rustの場合は所有権の概念をほぼ丸呑みしないとプログラムできない。
クラッチとギアとハンドルを同時に操作しないとマニュアル車を前に進めることもできないようなもんだ。
0607デフォルトの名無しさん
垢版 |
2022/04/07(木) 22:32:09.52ID:/n3eSctb
>>605
いやC++に限らず、プログラミング全般で、
そこに危険があれば、どうやったら上位で回避出来るかは、術がある。
これまで何とかやってきてるんだから当たり前だろ。

面倒だから一々言う気もないけど、「データ競合」については前スレで既に書いたとおり、
・メインスレッド+サブスレッドでディスパッチ前に全部解決
で完全に回避出来る。
この構成を採用しているのがC#のGUIで、
どうもお前らは言語に対してのこだわりが過ぎてて、これがC#を褒めてるように聞こえるらしいが、
どの言語であってもこの構成にすれば回避可能で、C#のGUIではそれをフレームワークとして強制してるだけ。
だからC#では、フレームワークを正しく使う気があれば、「術を知らなくても」自然と回避できることになる。
他言語なら、この知識があれば、同様に自前で回避出来るだけ。

Rustの場合はこれをコンパイラのチェックにより同様に「術を知らなくても」回避出来るようにしている。(回避術は異なるが)
その他諸々突っ込んで、「コンパイルが通りさえすればOK」を目指すのも一つの手で、実際そうしてるようだが、
本来それはあくまで「Rustではどういう術を強制する事によって、どの問題を回避している」と認識出来てからやるべき問題。
それを初心者のうちはある程度すっ飛ばしても構わないとは思うが、知らずに済ませるのはどうかと思うよ。
566の(2)のつもりなら特に。

実際にRustが採用している術は、C++でのRAIIとunique_ptrに近いから、
これらを既に常用してたら、グダグダ言われずともRustに移行するだろうよ。
ただ、回避する術は一つじゃないから、違う術を使ってる連中は、Rustを使う事はないだろう。(俺はこちら)

そして本来は、どんな術があるのかを学ぶのが学習で、
元々はデザインパターンもこの方向だったはずだが、何かおかしな事になっちゃって見捨てられた感じになってるが。
0608デフォルトの名無しさん
垢版 |
2022/04/07(木) 22:40:48.67ID:eUNchQrd
Rust自体は好きだけどPythonの代替先になるというのは現状個人的には全く考えられないなぁ
単一所有権ベースの書き方が、意識せずとも間違いなく書ける内容なら静的チェックがなくても取り沙汰されないし、それがメリットとしても喧伝されないと思うんだよな
別分野だけど機械学習系だと公式のラッパー先としてまず出てこない言語だし、やっぱ性能とは別の事に頭使いたいジャンルだと不向きだと思うよ
もし広い範囲でPythonの代替になると思ってる人が居るんだとしたら、普段のスクリプティングとかもRustで書いてんのかな
0609デフォルトの名無しさん
垢版 |
2022/04/07(木) 22:41:15.91ID:QfJTmIv3
ようしわかった
もうわかった
ついにわかった
言ってほしいんだろ?
そういうことだろ?

Rustはしょうもないクソ言語で未来はないし
GAFAMが使ってるのもそれはそいつらがアホだからだ
ね、これでこの話おしまい

こんなクソ言語だれも使わなくていいからね
心配しなくていいからね
こんなクソ言語消えてなくなるから
誰も使わないからね

俺は使うけど
0611デフォルトの名無しさん
垢版 |
2022/04/07(木) 23:00:34.39ID:/n3eSctb
>>608
> 単一所有権ベースの書き方
これが演算には絶望的に不向き。ウザイだけ。
ただし鯖等では確かに「上から下に流れる」ように書くので、「単一所有権ベース」でも多分問題なく書ける。

だからまあ、現時点でWeb限定に近いのは、既に住分けてる、とも言える。
他のアプリでも、自前で状態管理するのを極力止めて、内部でRESTfulにすれば、そこそこ行けるはず。
0613デフォルトの名無しさん
垢版 |
2022/04/07(木) 23:38:47.04ID:+6isarPd
>>606
言いたいことは分かります。
要は学習成果の可視化しにくいインターバルが長いと不利ということですよね?

学習した先に何を求めるかは人それぞれですし、
それって結局、言語機能を部分的にでも成果として、学習者が捉えられるかどうかだけの問題じゃないんですか?
(Rustの所有権を部分的にできるかは平行線なので置いておいて)

案外若い世代はところどころデジタルリテラシーがあるので、
プログラミング学習ができないと危惧して、変にレール敷くような考え方はしなくても良いんじゃないですか?
0614デフォルトの名無しさん
垢版 |
2022/04/07(木) 23:51:03.44ID:eYC8sBa3
1ヶ月に一度1ー2時間ほどプログラミングします
といった程度の人達が、あやふやな知識のまま
目的の動くもの素早く作れる言語でないと
広い裾野には訴求しない
ニッチな人のニーズには合致する可能性はあるけど
0615デフォルトの名無しさん
垢版 |
2022/04/08(金) 00:23:55.25ID:PcnkB3on
>>607
要はライブラリなど自分が依存するものの中身がどうなっているかはちゃんと把握した上で使えって話と、
自分が困ってないなら無理に道具を変える必要がないって話ね
rustというよりrustを変に持ち上げてる人に対するコメントだった訳ね
0616デフォルトの名無しさん
垢版 |
2022/04/08(金) 00:24:56.07ID:nM4swqos
我々の生きているうちにもしそんな素晴らしい汎用言語が出来ると夢が広がりますよね。
未来の言語研究に期待しましょう。
0617デフォルトの名無しさん
垢版 |
2022/04/08(金) 00:26:25.71ID:PcnkB3on
>>614
たしかに、次世代言語なんて銘打ったスレに集まるような人向けの言語なんてニッチの最たるものだろうね
0618デフォルトの名無しさん
垢版 |
2022/04/08(金) 00:31:27.96ID:TpfOdACd
>>613
>学習した先に何を求めるかは人それぞれですし、
なら、なおさらPythonの代替をRustに求めるのは無理。
まさしく>>608の通り、学習した先に「やっぱ性能とは別の事に頭使いたい」というならRustは不要だわな。

>>609
いやいや、自分もRustは認めているよ? Forthと同じぐらいには。
0619デフォルトの名無しさん
垢版 |
2022/04/08(金) 00:47:01.39ID:nM4swqos
>>618
そうですね。別に性能だけの話じゃないと思うが、
いろいろ気にしない人には確かにPythonでプログラミングを勧めるのも一つの手だと思いますね。
0620デフォルトの名無しさん
垢版 |
2022/04/08(金) 01:01:29.96ID:8ljQsUz4
Rustに移行するのはC++から来る人が多いだろうな

ptyhon、java,typescript、スクリプト系からは少ないだろう
0621デフォルトの名無しさん
垢版 |
2022/04/08(金) 03:06:12.85ID:Km060/QD
>>597
長々と書いてるけど、お前って一人で開発してんの?
なら好きなの使えばいーじゃん。
0622デフォルトの名無しさん
垢版 |
2022/04/08(金) 06:34:32.60ID:z2O+b+J1
>>608
Pythonなんて超遅いダメ言語だろ
C/C++に移行すれば10倍くらい速くなるぞ
メモリ使用量も大きく減る
0624デフォルトの名無しさん
垢版 |
2022/04/08(金) 07:36:43.85ID:5MIkz0s/
>>620
JavaScript(Node.js)からRustへ来たけど特に難しいところは無かったよ
JavaScriptでPromise返す並行プログラミングしていたから
RustでFuture返す並行プログラミングにすぐ移行できた
0625デフォルトの名無しさん
垢版 |
2022/04/08(金) 07:50:10.89ID:aDtoFpcQ
RubyやPHPからRustに来る人はゼロではないだろうけど少ないだろ
それぐらいなぜ認めたくないのか?

用途が違う
0626デフォルトの名無しさん
垢版 |
2022/04/08(金) 07:51:28.36ID:3RXqham9
みんな色々と考えるんたな。
自分の使う言語を選んで仕事始める人が多いのか?
0629デフォルトの名無しさん
垢版 |
2022/04/08(金) 08:08:54.70ID:jLbA7OdY
俺がスクリプト言語からRustも使うようになった理由はスクリプト言語っぽく書けて便利で速いから
今後もそういう人が増えるのは間違いない
0636デフォルトの名無しさん
垢版 |
2022/04/08(金) 11:18:15.72ID:J3x148PI
C/C++/Python/Java/Scala/Goあたりは仕事で書いてたけど今はRustメインだな
他にどの言語を学べばRust使う気がなくなるの?
0637デフォルトの名無しさん
垢版 |
2022/04/08(金) 11:29:00.59ID:CQiu8f2R
なんだこのビッグウェーブはw
Rustってとてつもない一大ムーブメントなのか?w
0638デフォルトの名無しさん
垢版 |
2022/04/08(金) 11:59:33.01ID:xydoIMfT
>>635
スクリプト言語とRustしか使っていないのですが何を勉強するとよいですか?
速さが必要なものと大きなものはRustを使っています。
0640デフォルトの名無しさん
垢版 |
2022/04/08(金) 12:33:53.85ID:gfZaFbSj
テキトーにパースするでもserdeが楽だから使うわ
0642デフォルトの名無しさん
垢版 |
2022/04/08(金) 13:30:54.85ID:LwBnqH/T
Ruby 界隈では、mruby の本が出た。Ubuntu 18.04, C99 対応。
Webで使えるmrubyシステムプログラミング入門、近藤宇智朗、2020/11

Elixir の本も出た。
Ruby on Rails の本を書いている、黒田努の本

Rust は、Rubyと同様の式ベース言語で、Elixirと同様のパターンマッチ

ただ、YouTube で有名な、雑食系エンジニア・KENTA が、
バックエンドのキャリアパスは、Rails → Go のみと断言している!

Elixir, Rustは普及のキャズムを超えなかったから
0643デフォルトの名無しさん
垢版 |
2022/04/08(金) 13:52:24.78ID:VBKiPB4k
Goで出来ていることがRustでも容易に出来るようになったことが大きい
そしてRustの方が高速かつ適用範囲も広い
0644デフォルトの名無しさん
垢版 |
2022/04/08(金) 13:58:37.76ID:ueuwLW+z
>>615
違うぞ。
つか話が通じないのは全然立ち位置が違うからだが、ここを詰める意味はないので終わりにしたいのだが。

> 自分が依存するものの中身がどうなっているかはちゃんと把握した上で使え
理想的にはそうだが、現実的には無理だし、やる意味もない。
例えば数学関数、sin(x)とかも様々な実装方法はあるが、十分な速度と精度が出れば何でもよく、
sin(x)自体を導出する数学の知識(級数展開)なんて必要ないだろ。
ライブラリにしてもフレームワークにしても、基本的には外面仕様まで抑えればよく、内部まで知る必要はないんだよ。
実際、鯖やJSを書いてる奴等も、ブラウザの実装なんて知る必要ないし、知らないだろ。

ただしそれらの優劣を問う場合、内部実装まで掘り下げないと比較にならないだろ。
「データ競合」について言えば、C#とRustのアプローチは明確に異なるわけだが、
この「異なる」という事を認識し、それぞれの利点と欠点を把握してないと、正しい比較にはならないだろ。
Rust信者は「Rustにすれば僕がどんなに馬鹿でも無知でも全て解決してくれる」と思っているようだが、
これだと比較検討する技術レベルには達してないんだよ。
ただ、「データ競合」については確かにRustにお任せでも回避出来るのだろうし、これ自体が悪い方法でもない。
(一つか、下手すると一つも方法を知らない癖に何故比較検討出来てるつもりなのか?という話)

> 自分が困ってないなら無理に道具を変える必要がない
これも違ってて、だいたい人は困ってる事を認識出来てないものなんだよ。
携帯が無い時代に携帯が無くて困ってた奴は居なかったし、
スマホが無い時代にスマホが無くて困ってた奴も居なかったし、
Rustが無い時代にRustが無くて困ってた奴も居なかった。
だから新しい物を持ってくる場合、「実はあなたはここに困っていたのですが、気づけていません。
Rustを使えばこう出来ます。一度使えば二度と戻れませんよ」と具体例を示さねばならないのだが、
これがないだろ、という話だよ。(納得する物が有れば単に乗り換えれば済むだけ)
0645デフォルトの名無しさん
垢版 |
2022/04/08(金) 13:59:03.07ID:ueuwLW+z
RustはC++の特定のスタイルを強制してそれ以外をコンパイルエラーにするように出来てる。
だからそのスタイルを使いたい奴には超フィットするけど、
そうじゃない奴には使えない。(コンパイルエラーになるだけ)
だからやっぱりこの「エラー」ってのは強すぎてて、
> C++での危険回避法を熟知しておけ
これもちょっと違ってくる。
「Rustが採用している『術』」での危険回避をしたいのなら、
それ以外をエラーにしてくれるRustが最適で、同じ事をわざわざC++でやっても抜けを許容される分だけゴミ。
ただ問題は、Rustの場合はそれ以外を許容しないから、いつまで経っても「Rustが採用した『術』」以外の方法を学ぶ事が出来ない。
だって試そうとしてもエラーになるのだから。
だから「Rustが採用している『術』」が間違っていたら(不適切だったら)その時点で終わってしまう。
だからこそ、無駄にカルト化する。言語と心中する事しか許容しないので。

本来は、「Rustが採用した『術』」と「他の方法」を知ってて、長短見極めた上で、
Rustでの採否に納得した奴がRustを使うべきなのだが、
君らは「他の方法」を知らずに「Rustが採用した『術』」をマンセーしてるだけでしょ。それはカルトだよ。

ただし「Rustが採用した『術』」はそんなに悪いものでもないし、
コーディング戦略は大きい単位で適用した方が効率がいいのも事実。
最大単位は「言語」なので、実験としてはいいし、
Rustが無くともC++で同じ事をやってた連中にとっては天国だろう。
だからやたらマンセーしたがる奴が居てもおかしくない。
(ただし実は最上位の「プログラミング全般」という単位があり、
例えば「用意した変数はそれ以降で自由に使える」とかだが、Rustはこれに反しているので混乱も来す事となっている)
0646デフォルトの名無しさん
垢版 |
2022/04/08(金) 13:59:38.12ID:ueuwLW+z
長期的展望については、構成上、Rustは(育成含めての)独立したエコシステムを持ててない事がかなりポイントになる。
これはやはりホームドアが分かりやすいと思うが、これがなかった頃、まともな大人は、
・ホームの端は歩かない
・ホーム上では走ったりしない
・ふらつく程は飲まない
等を遵守して、ホームからの転落事故はほぼ0に出来てた。
Rustはこれにホームドアをさらに設置し、物理的に転落しないようにした。
結果、「大人の常識の遵守」「ホームドア」で二重のセキュリティになり、安心感は増してる。
とはいえ、ほぼ精神的なものであり、実際は無くても転落する奴はほぼ居なかったので、実質的意味はほぼ無い。
これが、キラーアプリが存在出来てない理由。(GAFAMはこの使い方)

さてここで、「俺はホームドアがない駅なんて知らねえ。老害の常識なんて糞食らえ」というゆとりがいて、
ただの10分間の休み時間でもドッチボールをしようとしてた小学生時代と同様、
駅で10分待つ間にも鬼ごっこ等で遊ぼうとしたとする。
一般社会では「これだからゆとりは」となって袋だたきなのは確実だが、プログラミング界隈では違う。
・端を歩ける→デッドスペースだった両端の1mを活用出来、輸送能力が10-20%程増す
・走らない縛り無し→ならホームの両端はスカッシュコートに出来るじゃん!
・へべれけでも大丈夫→なら通勤電車内にバーを設置し、1時間飲んでたら家に着いてるとか出来るじゃん!
等、利便性を提供出来れば良しとされる。
俺が「Rustによって新たに提供される価値とは何か?」とさんざん聞いてたのはこれなんだよ。
Rust流のホームドアが無かった頃は事実上無理だった事も何か出来るようになってるはず。
その活用事例は何か、なんだよ。
0647デフォルトの名無しさん
垢版 |
2022/04/08(金) 14:00:07.89ID:ueuwLW+z
ただしこれは両刃の剣で、ホームドアがある前提で、それ以前の「大人の常識」を「所詮は老害の戯言」と切り捨てると、
ホームドアがない駅では確実に事故りまくる。今のRustがこれで、既に書いたが、
・「Rustが採用した『術』」以外はエラーにする=Rustではそれ以前の「大人の常識」を試せないし、学べない
んだよ。だから、構成として
・既に大人の常識がある人が、さらにホームドアが設置された駅を使う(GAFAM)
用に出来てて、
・全く何も知らない幼児が、怪我をしながらも危険を学び、次第に大人になっていく(Rust信者)
用には出来てない。(つまりRustだけではプログラマを成長させる事は出来ない)
とはいえ、現実の今時の公園ではブランコすら撤去されてる始末で、
安全重視の、スリルの欠片もなく面白みもない遊具だけになってしまってるが、
ではこれが間違ってるかと言われれば、
昭和時代のヤベー遊具は確かに楽しかったが、でも確かに危なかったし、なんだかなあ、ではある。

つまり、自前での育成(≒プログラマによる試行錯誤)を放棄している点に置いて、Rustが目指している所は、
・Rust専用コーディングドカタ育成
・他言語で育成されたプログラマの取り込み
であって、Rustではプログラミングの世界を成長させる事は出来ないし、プログラマの自主的な成長も促せない。
Rustが出来るのは、やり方を画一的に固定した開発だけだ。
ただこれが悪いわけでもない。実際、フレームワークは同様だし。
だからまあ、立ち位置としては「言語」よりも「フレームワーク」と考えるべきなのだろう。
そうすれば、「Rustに合ってる状況ならRust使え」で、みんな非常に納得出来るだろうし。
ポリシーに合致してないコードを拒絶する点に於いても、フレームワークと同様だし。
(C#の場合にデタラメなコードを食わせてイキってる馬鹿もこのスレには居たが、
この点Rustならエラーなのでフレームワークとしても正しい)
0648デフォルトの名無しさん
垢版 |
2022/04/08(金) 14:05:58.17ID:xmDi13Bx
Rustのプログラミングの快適さは
様々なプログラミングパラダイムを巧みに洗練して採り入れているところにあると思う
一つ一つは既存の言語にあるものが多いけど総合的に組み合わされたのはRust特有でそれがコーディングのしやすさに繋がっている
0652デフォルトの名無しさん
垢版 |
2022/04/08(金) 14:56:47.94ID:CQiu8f2R
>>650
再起とポインタなんて知らなくてもWebプログラマーはつとまるんだよ
ましてや精神的態度なんて根性論いいだしたら人材不足の今、人なんて集められないよ
0653デフォルトの名無しさん
垢版 |
2022/04/08(金) 14:58:59.00ID:CQiu8f2R
>>650は下の(2)の人のことをいってるんであってこのスレにいる大多数の(1)の人たちには関係がないこと。
ーーーーーーー
プログラマーには2種類の人がいる。
自動車産業に例えたら、(1)地方の工場勤務の期間工と(2)研究開発センターのエンジニア
(1)はRustは使用しなくていい。というか理解できなくて使えない。Pythonとかで頭を使わないコード書くだけだから。例えるなら、ラインで組み立て作業を1日延々しているだけのルーチンワーク要員。

(2)はRustなどを使用してシステムプロラミングWebassemblyなどでローレイヤーや基盤を作っていく。例えるなら自動車のエンジンやデザインの設計者。
0654デフォルトの名無しさん
垢版 |
2022/04/08(金) 15:07:49.60ID:Js+ybEIJ
自分はCS出てフルスタックやってるから他の立場のことはわからないが
色々やってきた言語の中でRustが最も開発効率良いと断言できる
0659デフォルトの名無しさん
垢版 |
2022/04/08(金) 17:09:14.19ID:a6HBTm5x
頭の悪い子に限って延々演説するよなw
お前らそれを完全スルーしてて賢いわw
0660デフォルトの名無しさん
垢版 |
2022/04/08(金) 17:14:34.86ID:BG4ZrdKI
>>657
Vは確かに最初の宣伝はそんな感じだっけど、現状はRustとGoを足して10で割ったくらいの状態だからなぁ
0665デフォルトの名無しさん
垢版 |
2022/04/08(金) 19:40:32.31ID:wv8X5M3X
>>664
facebookのPHPエンジニアが優秀=PHPエンジニアが優秀

という短絡思考には感服致します
障害者学級PHPoorたちの心のより所なんですね
0666デフォルトの名無しさん
垢版 |
2022/04/08(金) 19:54:22.21ID:haRe9nr5
このスレだけ見てるとPHPerよりRusterのほうが危険で頭がおかしいと思ってしまう…

実際はそんなことはないかもしれないが
0667デフォルトの名無しさん
垢版 |
2022/04/08(金) 19:58:36.19ID:gFm4wviN
>>664
え、どうなったか聞かれたから答えたらなぜかPHPともどもボロクソ言われるの、
意味がわからんのだが。
0668デフォルトの名無しさん
垢版 |
2022/04/08(金) 20:05:37.41ID:g/vqQJB9
>>654
「unsafeに触らない限りは」だろ。
実際にはフレームワークとかライブラリとかが充実している言語のほうが開発効率は高い。
(すでに開発済みだからという理由だけど)
0669デフォルトの名無しさん
垢版 |
2022/04/08(金) 20:09:42.84ID:nC7N6zb/
Rustは欲しいcrateほど放置されてるcrateやwipの空crateが一定数あるのが実用を考えた時に厳しい
RustのWinUI3対応早く来ないかなー
後別に何でもかんでも関数型になって欲しい訳でもないんだけど、スクリプト的な簡単に書きたいモチベーションのある言語に、関数のデフォルトのカリー化と、引数を渡すのと同じ記法での部分適用が導入されて欲しい
個人的に見た目がスッキリするし書くのが楽に感じるので
Fsharp使えというのはそうかもしれない
0671デフォルトの名無しさん
垢版 |
2022/04/08(金) 20:39:12.10ID:IqLRftxA
>>668
それはプログラミング言語の問題ではないな
純粋にプログラミング言語の比較でRustより上のものを挙げないと
0673デフォルトの名無しさん
垢版 |
2022/04/08(金) 20:42:20.02ID:haRe9nr5
>>671
使いやすさから言えばjavaやc#のほうが上だと思う
Rustは使いどころがまだ確立されていない
0674デフォルトの名無しさん
垢版 |
2022/04/08(金) 20:48:04.21ID:4vP7lCV8
>>671
なら「標準ライブラリが充実している」でいいよ。
標準ライブラリが言語に含まれないとは言わんよな?
0676デフォルトの名無しさん
垢版 |
2022/04/08(金) 20:53:57.99ID:nx5fqsfT
>>673
そこはさすがに誰が見ても
Rust>Javaはあらゆる面から全員一致として
Rust>C#もほとんどの人が同意でしょ
0678デフォルトの名無しさん
垢版 |
2022/04/08(金) 21:31:56.88ID:Br+emjPa
言語自体の比較だと現状ではRustが一番かもしれん
新言語が現れなければじわじわと利用環境や利用者を拡大していくのだろう
0679デフォルトの名無しさん
垢版 |
2022/04/08(金) 21:33:57.02ID:a6HBTm5x
>>669
> 後別に何でもかんでも関数型になって欲しい訳でもないんだけど

リストのリテラルが無いあたりで割り切りを感じるよな
あくまで軸足は関数型言語にはないという

リストの結合とかカリー化や関数結合もデフォで組み込まれてたら
もっと違う感じだったやろねえ
0680デフォルトの名無しさん
垢版 |
2022/04/08(金) 22:02:06.45ID:GQWBx4Yt
ガベージ出まくるからゼロコスト抽象にならない問題点などあるよな
見かけはマクロでわかりやすくする程度が現実解
まあ普通のGC言語でもサポートしてないのが多い中
そこまで必要とされていない機能なのかもしれん
0683デフォルトの名無しさん
垢版 |
2022/04/08(金) 23:37:25.21ID:nC7N6zb/
>>675
処理として等価なものが書けるという意味では問題ないよ
それよりもっと簡単に書けるようになるので、あると嬉しいなって
0686デフォルトの名無しさん
垢版 |
2022/04/09(土) 00:20:56.02ID:qlihBLS+
>>650
似てはいる。

「JavaではCS学生には過保護すぎ」が趣旨だと思うが、
同様にRustを考えるなら
・修得概念は多いがこれは暗記の類であり、チャレンジではない
・コンパイラ頼みで考える事を放棄してるから、成長しない
で、アカデミックには不適だ。
大学なんて就職予備校だと割り切るならありだが。

Goなら、
・修得概念は少なく抑えられている
・構成自体は何でも出来る(はず、多分)
・やたらコピペさせられる点が糞
であって、教育/アカデミックには向いてる。(少なくともRustよりはいい)


「データ競合」「デッドロック」等のバグをコンパイラに頼って回避してる限り、
コンパイラがサポートしてくれない状況では確実にやらかす。
コンパイラのサポート無しでも回避出来る腕だが、さらにコンパイラでダブルチェックする、が正しい。

フレームワークなんて暗記の類で、ちゃんとプログラミングが出来る奴なら、使えば使えるようになってる。
フレームワークは生産性を上げる為の手段であり、
プロダクトを目指さなくてもいい学生の時点で型に嵌めてしまうのは成長を阻害する気がする。Rustがこれ。
(他言語でもフレームワークを使って課題製作して出来たつもりになってるのなら同様ではあるが、
既に書いたようにRustの場合は言語自体がフレームワーク化してるので、これを回避出来ないのが難点)
0687デフォルトの名無しさん
垢版 |
2022/04/09(土) 01:45:47.90ID:H+Mv/KjD
コンパイラのチェックが厳しい→コンパイラに頼る→学習にならない
もう言語の利点を語るんじゃなくて、学習に向いてるかどうかってことに話を絞ることでRust批判につなげることにしたのね
0688デフォルトの名無しさん
垢版 |
2022/04/09(土) 01:58:00.79ID:il24SwZF
暗記ごときでボローチェッカーに対処できるなら自他ともに認めるRustの学習曲線の問題は発生しないんだよなあ
0689デフォルトの名無しさん
垢版 |
2022/04/09(土) 02:01:36.12ID:il24SwZF
あとデッドロックは別にRustで静的に防止できる類のバグではないぞ
メモリリークと同様だね
0690デフォルトの名無しさん
垢版 |
2022/04/09(土) 02:15:58.74ID:eXc0QQCs
言語として魅力を感じるのはGoよりRustだが、将来的にGoよりシェアを拡げるかと言われたら疑問
0691デフォルトの名無しさん
垢版 |
2022/04/09(土) 02:26:41.71ID:730EZC4A
Rustはシステムプログラミングの分野でだけちゃんと生き残れば大成功だよ
あとは特にハイパフォーマンスや低コストが要求されるとこくらいか

ほとんどのアプリケーションでは、JavaやらPythonやらなりの高水準言語にて、より適す言語が見つかるやろ
0692デフォルトの名無しさん
垢版 |
2022/04/09(土) 03:28:08.67ID:iJevktt3
>>691
Javaの諸々の弱点を克服したものがRustであるため
従来Javaで書かれていた分野にRustが食い込んで行きつつあります
0694デフォルトの名無しさん
垢版 |
2022/04/09(土) 04:14:38.03ID:0HVqg1ER
FacebookがバックエンドをJavaからRustにした記事でJavaの問題点が多数挙げられていたな
0695デフォルトの名無しさん
垢版 |
2022/04/09(土) 05:55:15.91ID:GQoYu9QH
他部分の結論がまだ早いが、環境的な点から考えて、
GoはJavaとPythonと比べて、教育言語として価値が高いことは今のところない

・良くも悪くもOOPではない。抽象化のレクチャの定番が崩れている
・コンベンション重視のせいで、文化風土が専制的
(たとえばインデントは実質タブしか。手法にフレームワークを当てはめがち。考える余地を与えない)
・C言語の代わりにはならず、高級言語として教えるにもポインタの概念が余計
・例外処理/リソース管理/並行処理あたりの重要ポイントの対応方法が独創的で潰しが効かない

以上、拡大解釈せずにあくまで業界最適化言語と考えるのが無難という意見だ
0696デフォルトの名無しさん
垢版 |
2022/04/09(土) 06:21:18.57ID:Qew3WBrk
>>695
そのGo批判は間違っている
OOPはclassが無いだけだろ
例外処理もtry-catchが無いだけだろ
GoもRustもどちらもclassやtry-catchは無いが異なる方法を取っているだけにすぎない
言語毎に様々な形態がある部分を取り上げて批判するあなたの視野が狭く偏見を持っているだけにみえる
0697デフォルトの名無しさん
垢版 |
2022/04/09(土) 07:21:22.99ID:qlihBLS+
>>695-696
それは教育目的を明確にしておかないと空回りする。単純には以下となる。
・実務: 大学は就職予備校である
・養成: 大学は人材養成所である
・アカデミック: その分野の発展を目指す

695は実務寄りの意見だ。
ただ、実務なら議論するまでもなく現在のシェア、または求人のシェア通りにやるべきであって、
それ以外を選ぶのは教授の趣味でありエゴでしかない。
今ならPython/Java/JavaScript/C#/C++/C/PHP/Rubyの順かと。

650記事と696(と686内俺のGoへの意見)は養成寄りで、人材の底上げを目指したものだ。
> ポインタを使うプログラミングは今日書かれるコードの90%には必要とならず、製品コードにおいてははなはだ危険なものであるということは素直に認める。
> その通りだ。そして関数プログラミングは実務ではほとんど使われていない。それも認める。
> しかしそれでも、最もエキサイティングなプログラミング仕事ではこれらは重要なものなのだ。
> たとえばポインタなしにLinuxカーネルで作業することはできない。
> Linuxのコードを1行も理解することはできず、実際ポインタの理解なしにはどんなオペレーティングシステムのコードも理解できない。
つまりはプログラミングドリルに何を用いるかで、プロダクトを目指したものではない。
だから界隈の文化なんて全部無視でよく、単に、学生の頭の体操/訓練に何が適しているかだ。
この場合、スタート時から色々概念が必要なRustは最悪で、仕様は軽ければ軽い程良く、
早い段階で「仕様とか概念に苦労せず」学生が自在に「こねくり回せる」必要がある。
こねくり回す時の苦労が養成になるので、そこは頑張って苦労しろ、というわけだ。
この用途なら、Goも悪い選択ではない。
が、まあ、素直にCを選択する方が妥当ではあるが。
0699デフォルトの名無しさん
垢版 |
2022/04/09(土) 08:16:17.09ID:cvyLC6WE
GoもRustもclassはない
でも実質似たようなことはできる

でも実質は実質であり素直にOOPできるかと言えばそうでもなく変な制約がある
ファイル分割とかしたいとか思わないならその限りではない
0700デフォルトの名無しさん
垢版 |
2022/04/09(土) 08:17:47.26ID:ehpYMGIZ
goはある意味goroutineとchannelを使うための言語だしな。そこに価値を見出す人が使えばいいこと。
ただまぁ、独創的だから潰しがきかないとか批判しだしたらpythonも癖が強すぎてたいがいだがな。
結局普及したもの勝ち。
0701デフォルトの名無しさん
垢版 |
2022/04/09(土) 08:24:05.70ID:cvyLC6WE
>>698
目的に応じて言語を選んだほうがいい

C→Rustは狭すぎるし心に余裕がなくなるし楽しくない
標準的なGUIもないから入門には不向き
個人的には間にGC言語やPython挟んだほうがいいと思うよ
0704デフォルトの名無しさん
垢版 |
2022/04/09(土) 09:09:13.58ID:ehpYMGIZ
個人的にはswiftがそこそこモダンな機能を一通り備えていながら癖の強くない文法でバランスがいい言語だと思うけど、
Apple依存というところが最大のネック。
0706デフォルトの名無しさん
垢版 |
2022/04/09(土) 09:33:25.59ID:cvyLC6WE
コンパイラチェックが厳しいで思い出した

全然関係ないけど自分は麻雀が打てない
ゲームではできる
自分では上がりだと思ってても実際は上がれなかったりする
結局ゲームで判定してもらってる
どこが悪いのかは自分で分かっていない

コンパイラのチェックでは原因が出るのでどこが間違ってるのかはわかる
0707デフォルトの名無しさん
垢版 |
2022/04/09(土) 09:43:27.34ID:7NJqkFJL
Rustのコンパイラはどの部分とどの部分がどういう問題となっていて今回のエラーとなっているのかを
複雑なケースでも丁寧に教えてくれて学習効果も高いですね
0708デフォルトの名無しさん
垢版 |
2022/04/09(土) 10:38:03.26ID:ALVqghU/
結局 c -> c++ -> rust って感じに進まないと理解できないと思うがな。
いきなり c -> rust で何をやってるか理解できるとはとても思えん。
この種のことをrust信者はすぐ誤魔化す。
0710デフォルトの名無しさん
垢版 |
2022/04/09(土) 10:47:43.60ID:3YobdmGS
>>708
そこは完全に逆
C++は学ぶ必要なし
今となっては何の価値もない言語
C++を学んでも回り道をしている無駄なunique_ptrくらいしかRustのために役に立つ知識がない
0711デフォルトの名無しさん
垢版 |
2022/04/09(土) 10:53:42.52ID:EFTB/rfv
>>708
自分はそのルートだったけどC++を経由する必要はどうかなぁ
現代のC++をマスターするのはRust以上に難しいし、初心者が自分でどこまで学べばいいかを判断するのも難しそう
まぁ結局我々は初心者ではないので推測で言ってもあまり意味はないけど
0713デフォルトの名無しさん
垢版 |
2022/04/09(土) 11:11:18.68ID:UvtYS0nS
単刀直入に言うと
実はC++とRustには共通点が非常に少ない
特にC言語との共通点を除くとほとんど残らない
だから学ぶべきはC→Rustが正解
0714デフォルトの名無しさん
垢版 |
2022/04/09(土) 11:38:59.26ID:P+77Yson
>713
>実はC++とRustには共通点が非常に少ない

そういう嘘をつくからRust信者はクソ言われるんだよ。

Rustの根幹をなすメモリ安全性はC++のRAII/unique_ptrから着想を得た所有権/ムーブセマンティクスの運用を徹底することによって実現しているし、
Rc/ArcもC++のshared_ptrの機能を強化しているだけ。
引数渡しをムーブセマンティクスデフォルトにするという致命的ミスをしているからC++と別物のように見えるけど、
C++ユーザーからすればC++を少し洗練させたぐらいにしか見えない。
その実体を知りながら「共通点が非常に少ない 」とか言うのは詐欺師ぐらいなものだ。
0715デフォルトの名無しさん
垢版 |
2022/04/09(土) 11:49:01.58ID:0K2sKttC
C++に着想を得ているのはそうだと思うけど、歴史通りの順番で学ぶ必要ある?
(その理屈だと最初はパンチカードからかな…)
C++の後付したわかりにくいmoveを学ぶより、最初から洗練された方を学んだほうがいいと思うけど
0716デフォルトの名無しさん
垢版 |
2022/04/09(土) 11:53:43.59ID:EFTB/rfv
C++の歴史を追っていくみたいなのは、言語設計的にはすごく学びがあって、好きな人にはおすすめなんだけど
ただプログラミングがしたい人におすすめできるかというと…
0718デフォルトの名無しさん
垢版 |
2022/04/09(土) 12:00:59.18ID:LZU2nudI
最近のC++はなんとRustの後追いをしている状況
例えばRustの中核となっている enum OptionとResult そして Iterator
Optionは C++では std::optionalで これはC++17でようやく導入された
Resultは C++では std::expectedで これは現在導入に向けて審議中
Iteratorは C++では std::rangesで これはC++20でようやく導入された
このようにRustでの成功を見てC++が後から導入となっている
最近導入されたばかりなのでC++入門書や解説サイトにはもちろん出てこない
【結論】C++は学ぶ必要なし
0719デフォルトの名無しさん
垢版 |
2022/04/09(土) 12:05:05.94ID:cvyLC6WE
C++は無駄に増改築を繰り返された老舗旅館
通路の途中で無駄に段があったり渡り廊下があったり

HPに書いてある現代風の部屋に泊まれる場合もあるけど古い部屋に泊まることもある
0720デフォルトの名無しさん
垢版 |
2022/04/09(土) 12:09:41.54ID:EFTB/rfv
C++98ならそんな増築感はなかったけど、そこまで戻るとRustとの共通点もほとんどなくなっちゃうしなぁ
0721デフォルトの名無しさん
垢版 |
2022/04/09(土) 12:15:44.17ID:ehpYMGIZ
RAIIとテンプレートメタプログラミングが発見されてから独特の進化を始めたな。
0722デフォルトの名無しさん
垢版 |
2022/04/09(土) 12:16:15.06ID:cvyLC6WE
>>718
>>720
新しい部分を指してC++を学ぶべきと言ってるのではないと思うよ
それまでのC++からC++11 以降の新しい流れをみるんだろ
C++で何が都合が悪かったか判る
0724デフォルトの名無しさん
垢版 |
2022/04/09(土) 12:24:26.93ID:cvyLC6WE
>>723
自分はC++を学ぶべきとは思ってないけど何が都合が悪いのか体験したらいいということだろうと推測

初心者にわかるかどうかは知らない
初心者にはjava C# Pythonを勧める
0725デフォルトの名無しさん
垢版 |
2022/04/09(土) 12:26:21.53ID:2dOqhr+x
C++の増改築を学ぶのはムダな枝も多くて学ばないほうがいい
RustはC++含めた様々な言語から色々採り入れているけど
洗練して整合性あるようコンパクトに採り入れてるからシンプル
0726デフォルトの名無しさん
垢版 |
2022/04/09(土) 12:36:22.62ID:HmFS1ypI
>>694
URLキボン
0728デフォルトの名無しさん
垢版 |
2022/04/09(土) 12:44:13.05ID:qlihBLS+
>>706
> どこが悪いのかは自分で分かっていない
Rustで作ったゲームなら、フリテンですor役がありません、と親切に教えてくれるよ

と信者の代わりに突っ込んでみる
0729デフォルトの名無しさん
垢版 |
2022/04/09(土) 12:51:14.42ID:byaB+Tw8
Rustのコンパイラは賢い先生みたいなもので不十分なところを的確に適切に指導してくれる
昔Rustは学習難易度高いと言われていたためコンパイルエラーに最も力を入れたプログラミング言語へと成長した
0731デフォルトの名無しさん
垢版 |
2022/04/09(土) 13:05:08.55ID:P+77Yson
>715
何をトンチンカンな指摘をしているんだよ。
>713 >実はC++とRustには共通点が非常に少ない
に対する反論なのに、
>715 歴史通りの順番で学ぶ必要ある?
とか共通点の話と何の関係も無いだろ。
Rust信者はこういう詭弁を弄するクソしかいないのかね。

あと、言語の話をしているのに
> (その理屈だと最初はパンチカードからかな…)
とか言語じゃないものを引っ張り出すようなアホな反論するなよ。
0732デフォルトの名無しさん
垢版 |
2022/04/09(土) 13:10:56.96ID:Wb48yUxI
>>718
C++から見てRustのそのシンプルで分かりやすい記述と概念は羨ましい
だからRustから輸入する形で取り入れることになった
0733デフォルトの名無しさん
垢版 |
2022/04/09(土) 13:23:59.57ID:P+77Yson
>718
>最近のC++はなんとRustの後追いをしている状況

Rust信者は我田引水が酷いな。
C++の標準化が遅いのはC++が巨大だからであって、しがらみのないRustの方が採用早くなるのは当然だろ。

> Optionは C++では std::optionalで これはC++17でようやく導入された
初出はboost::optionalで2003年8月

> Resultは C++では std::expectedで これは現在導入に向けて審議中
これはboost::outcomeが初出かな? 2014年

> Iteratorは C++では std::rangesで これはC++20でようやく導入された
そこそこ違いがあるけど、boost::rangeは2003年。

どれもRustリリース前のものばかりだろ。
RustがC++のアイディアをパクって先行実装しただけじゃね?
0734デフォルトの名無しさん
垢版 |
2022/04/09(土) 13:25:35.27ID:OTzifHJR
C++の貧相なラムダ式見て涙出てくるわ
おばちゃんの必死の若作りみたいで痛々しい

>>730
相変わらず読む価値無しの駄文オナは続いてるようだよw
0736デフォルトの名無しさん
垢版 |
2022/04/09(土) 13:41:58.59ID:xJyQ5Sl3
>>733
C++にはRustのenum(=型収容付きenum=タグ付きunion)が無いため
それらC++のバージョンはRustのものより劣っている
それではRustに勝てない
0737デフォルトの名無しさん
垢版 |
2022/04/09(土) 14:01:07.29ID:n9UcTFQC
スレタイの言語間で争える話題ないか考えてみたけど
それぞれ狙うところがバラバラで共通項がないな
0740デフォルトの名無しさん
垢版 |
2022/04/09(土) 14:14:38.49ID:ehpYMGIZ
このスレで荒れてくれる分には構わんわ。C++スレとかRustスレとかを荒らさないで。
0741デフォルトの名無しさん
垢版 |
2022/04/09(土) 14:19:25.04ID:mmQa05p2
便利さを理解するために不便さを体験するべきか否か論な訳だけど、個人的にはそれをするにしては遠回りが過ぎるのがC++という長大な壁だと思っているので経由する必要はないかなと思ってる
代わりの話としてZigとかどうよ
依存型的なコンパイル時計算と実行時計算をフラットに書ける感じ
結構賛否両論来そうな話題だと思う
0748デフォルトの名無しさん
垢版 |
2022/04/09(土) 14:38:25.49ID:cvyLC6WE
mainのあるファイルから連鎖的に参照されないと同じフォルダにあってもソースがコンパイルされない言語は糞
0750デフォルトの名無しさん
垢版 |
2022/04/09(土) 15:06:56.55ID:BphNan8J
言語依存の特性というよりはコンパイラがインクリメンタルかリカーシブルかなんて、言語にほとんど関係ない・・・
0751デフォルトの名無しさん
垢版 |
2022/04/09(土) 15:33:43.71ID:cvyLC6WE
じゃあ
ファイル名がクラス名やモジュール名と一致してないとダメな言語は糞
0753デフォルトの名無しさん
垢版 |
2022/04/09(土) 17:40:19.06ID:qlihBLS+
>>741
> 便利さを理解するために不便さを体験するべきか否か論
そう捉える奴も多いのだろうが、それだと完全に精神論になってしまうだろ。


コメントで要求されてる「Howは要らない。Whyを書け」と捉えるべき。(C++はRust仕様のコメント)
つまり、C++でどういう手法が試され、結果としてRustが何を採用してるかを紐解けば、
Rustが何故こうなっているのかが分かる、というわけ。

信者がひたすら「Rustは正しい」と信じることしかできないのは、Whyを知らず、妥当性の判断能力がないから。
ただしHowはRustの場合は文法にしてしまっているので、
Whyを知らなくても、知ってる奴と同等のコードは生成出来てしまう。
だからプロダクト目的のRustドカタには必要がないのも事実。
(これはフレームワークに於いて、何故こんな構造を採用したのか?とか考える必要がなく、
ただ従って正しく使えば生産性が上がるのと同様)

逆にアカデミックとか、Rustの次の言語を考えたい奴がWhyを抑えないのは問題。
信者ではなく、自分で判断してRustを選択したと言いたいのなら、Whyを知らないといけない。

(知ってないと判断出来ないはずなので、論理的に矛盾する。
これはC++の全てを知っておけという意味ではなく、
Rustで採用された「データ競合」「寿命管理」「例外処理」等の対処方法については、
当然だが他のやり方も存在しており、それぞれ一長一短有るから統一されてない。
それらを知らずに、Rustのやり方しか知らず、ひたすらRustマンセーなら、それはただの信者と言える)
0754デフォルトの名無しさん
垢版 |
2022/04/09(土) 18:34:35.92ID:JZiB2qZH
色んな言語やってきたが総合的にみてRustが現在のプログラミング言語の中の最強言語で間違いない
理論的に任意の言語が動き実際にも多数の言語が動かされているWebAssemblyにおいてもRustが利用トップである客観的事実もある
0755デフォルトの名無しさん
垢版 |
2022/04/09(土) 18:36:58.31ID:il24SwZF
話題は>>577で振ったけどスルーされました(^p^)
実際どうなんすかこれ、Yewとかその辺の利用者の使用感知りたいんだけど
0757デフォルトの名無しさん
垢版 |
2022/04/09(土) 20:19:57.41ID:cvyLC6WE
Rustはボロー周りとEnumだけがよくできていて他はそうでもない
長期で運用しにくいしょうもない弱点だらけ
0760デフォルトの名無しさん
垢版 |
2022/04/09(土) 20:31:58.00ID:cvyLC6WE
レスをたどる能力もないのかRustの機能や制約を知らないのか自分で何かを調べる能力がないのか
どれなんだろう?
0762デフォルトの名無しさん
垢版 |
2022/04/09(土) 20:38:12.58ID:cvyLC6WE
言語面は置いといてrustはまずcargoを何とかしろ
モジュールパッケージの参照の仕組みを改善しろ
0764デフォルトの名無しさん
垢版 |
2022/04/09(土) 21:34:11.92ID:lI/OjvKQ
>>763
つまり次世代はRust覇権が確定。Rust一択ってこと。
VScodeが覇権したようにプログラミング言語もそろそろRust一択にしようよ
0767デフォルトの名無しさん
垢版 |
2022/04/10(日) 00:20:38.04ID:xqQhhwbp
他の言語でもRustのように広い意味でのデータ競合を実行前にチェックしてくれたらいいのに
そうすればその分の実行時デバッグを無くすことができるのに
0768デフォルトの名無しさん
垢版 |
2022/04/10(日) 00:52:23.84ID:fmRbxCQk
>>767
それ、馬鹿の一つ覚えだろうけど、割とマジに、データ競合で困る事なんて無いぞ。
もしみんなが本当にデータ競合に困りまくってたら、あらゆるアプリがRustでキラーアプリ化してるはずだろ。

実際は誰も困ってないし、さらにホームドアを付けたところで元々バグもないから差別化出来ず、キラーアプリ化もしてない。

面倒なのでスルーしたが、256で突っ込まれてるように、
実行時デバッグをそれほど必要としてる時点でプログラマとしてはポンコツ。
初心者なのを自覚して、まずはコードを頭の中で動かせるようになる事を目指すべきだよ。
0769デフォルトの名無しさん
垢版 |
2022/04/10(日) 00:52:41.03ID:dmNwgspZ
とかく計算系のライブラリの高速実装がGPGPU関係なくRustよりC++が優先されているのが悲しいが個人でなんとかできる規模でもなく
0770デフォルトの名無しさん
垢版 |
2022/04/10(日) 01:03:58.92ID:fmRbxCQk
>>769
やれば分かるが演算系はリソースの確保/開放ははっきり言ってほぼ必要ないので、
C++どころかCでも全く苦労しない。
しかもRustだと使い回すには一々所有権を気にしないといけないだけ面倒。
他言語なら見えれば何度でも問題なく使えるのに。

だからその辺がRustメインになる事はあり得ないと思うけど。実用重視なら尚更。
境界チェックが一々入る分だけ無駄に遅くなるのも致命的ではあるし。

俺は演算部分だけCのdllにして、GC言語からそれを呼び出すのが最強だと思うけど。
つまりNumPyでいい。(なお俺は使った事無いが)
0771デフォルトの名無しさん
垢版 |
2022/04/10(日) 01:07:40.61ID:clYg/AzK
>>768
超巨大なコードベースの前で人は簡単にポンコツになるよ
Sanitizerやclang-tidyへのgoogleの投資を見れば分かる

ただこの手のツールが必要になる言語やアプリは限られているから
あらゆる領域でデータ競合抑止が役に立つというのは偽だとは思うが
0772デフォルトの名無しさん
垢版 |
2022/04/10(日) 01:22:47.07ID:fmRbxCQk
>>771
それはコードベースが巨大すぎて見落とす確率が高くなるだけだろ。
ただし事実としてこれはあるのは認める。

これについては、Web系見てて思ったんだが、

Java(OOP): どんな巨大なコードでも、20年前のコードでも、メンテナンスしてみせる!!!
Web系(Restful): そもそも巨大にならないように分割。
 一人で管理出来るサイズ(1,000-10,000程度)なら管理も簡単だし、コードも最悪書き捨てでもいい。

で、俺はWeb系の方が正解じゃないかと思いだしている。
だから、Javaを殺すのはWeb系だろうなとも思っている。
0775デフォルトの名無しさん
垢版 |
2022/04/10(日) 01:35:56.55ID:o4uZiwRi
>>772
用語の使い方からも
間違った対比からも
知的レベルの低さが露呈している
そこは単純にモノリスvs.マイクロだけであってOOPやRESTは関係ない
0776デフォルトの名無しさん
垢版 |
2022/04/10(日) 01:51:37.37ID:lgnAhvFe
>>772
web系というかブラウザやらOSやらの低レイヤーで考えるべきかと
OSもマイクロカーネルにしたらバグ少なくなるのかね
0777デフォルトの名無しさん
垢版 |
2022/04/10(日) 01:55:17.11ID:G67EgXPk
Nimの話題ロクに出てこないね
自分は使ったことないけど、使ったことある人はどう?
他の言語との違いや特色教えてくれると嬉しい
0778デフォルトの名無しさん
垢版 |
2022/04/10(日) 01:55:40.00ID:fmRbxCQk
>>775
まあ揚げ足取りはどうぞご自由にだが、話は通じてるようだ。
それで、反論は出来ないのか?
だとすると、やはりRust信者は低脳だとしか思えない。
(議論する気があるのなら、そのレスでは駄目だし)

・巨大化したコードベースではどうしても見落としが発生するから、全部所有権を強制化してコンパイラでチェックする
という直接的な解決策をRustは採用しているが、
・そもそも巨大化しないようにひたすら分割し、見落としが発生しにくい規模に抑える
という、上位アーキテクチャでの解決策もあるのだよ。
これは「データ競合」の時も言ったろ。
そこに問題があれば、解決策もそれなりに用意されてる。(格好いいかはまた別だが)
それでは解決出来てない!不十分だ!と言うのなら、
どうにも取りきれなかったバグがRustによって取りきれ、結果的にキラーアプリ化するはずなのだが、
実際これがないだろ。
なら、これまでの地味な方法でも何とかなってたって事なんだよ。
0779デフォルトの名無しさん
垢版 |
2022/04/10(日) 02:03:42.86ID:fmRbxCQk
>>776
> OSもマイクロカーネルにしたらバグ少なくなるのかね
通説としてはそういう事になっている。(まあ知ってると思うが)

Linusはモノリシックカーネルの利点を言ってるけど、あれは俺は後付だと思うよ。
とはいえ速度重視ならモノリシックの方が上だし、
堅牢性重視ならマイクロカーネルってのは、技術的にも正しいと思う。

俺が言ってるのはもっと単純な話で、
機能が少なければ、実装に必要なコードも少なく済み、見落としも減る、という、至極当たり前の話。
だから「仕様を必要最低限に絞る事こそ最強」という話だね。
これもよく言われているとも思うけど。
だから、マイクロカーネルの方が仕様が小さいから実装コードも減り、結果的に「見落とし」のバグは減ると思うよ。
0780デフォルトの名無しさん
垢版 |
2022/04/10(日) 02:03:43.80ID:Yq6q8jid
Nim、vlang、Zig、Zenらへんはマイナーすぎてなんとも
D言語が使われなかったのと似たような理由で使われなさそう
0781デフォルトの名無しさん
垢版 |
2022/04/10(日) 02:04:15.32ID:UjiUu+PI
結論は変えるつもりがなくそこに至るまでの論理だけを手を代え品を代えひねり出し続ける
信者もそれに対する批判も不毛なんだ
0782デフォルトの名無しさん
垢版 |
2022/04/10(日) 02:06:36.51ID:NYexxOz5
>>778
アーキテクチャとアプリと言語は全て別問題なのに区別がつかずにごっちゃに話しているキチガイに見えます
0783デフォルトの名無しさん
垢版 |
2022/04/10(日) 02:21:42.17ID:UjiUu+PI
そんなことより次々世代言語にどういう特徴を持った言語が来るか予想しようぜ
0784デフォルトの名無しさん
垢版 |
2022/04/10(日) 02:34:28.97ID:NYexxOz5
>>780
IT大手各社が珍しく揃って支援&採用しているRustだけが最近のプログラミング言語の中で長期に残りそう

>>783
Rustを置き換えるような次々世代言語は
Rustが備えるC言語並の速さ省メモリと安全性を押さえた上で異なるアプローチとなるだろうけど
Rust関係の論文が多い状況からすると理論的な裏付けが先行研究としてあるものの中から出てくるのかな
0786デフォルトの名無しさん
垢版 |
2022/04/10(日) 09:17:53.01ID:fmRbxCQk
>>782
それはRust信者はプログラマではないからだな。

プログラマは全レイヤで最適化を模索する事が出来る。(本来は)
例えばだいぶ前にスマホ見てて踏切の内側と外側を間違えて死んで話題になってたが、これについて

・現場(踏切の改善):踏切内の障害物検知器の精度を上げ、人が間違って立ち止まってる場合も検出し、電車を緊急停止させる(Rust)
もありだが、
・運用(経路選択):そもそも踏切を通らない経路を選択する。歩道橋があればそれを使う。
・運用(マナー):歩きスマホ禁止。イヤホンも爆音にはせず、周りの人の声も聞こえる程度にしておけば気づけたかも?
・運用(ポリシー):外でボーっとしない。事故に巻き込まれる確率は0ではないのだから、常にある程度は周りに気を付ける
・アーキテクチャ:高架化して踏み切り自体を無くす(C#)

アーキテクチャ面での対策が根本対策になるが、現実的には運用での回避になってる。
大人の場合はマナー/ポリシーで回避し、
これを期待出来ない小学生には、通学路なら歩道橋を設置して、経路選択での対策が為されてる。

「データ競合」も同様に、

・現場(チェッカ):所有権を厳密に管理し、コンパイラでチェック(Rust)
もありだが、
・運用:難しい事はしない。競合する可能性のある場所は限定的にして、見ればバグに気づける程度にする
・アーキテクチャ:スレッド構成上、そもそも競合が発生し得ない(C#)

で、アーキテクチャでの対策が根本対策だが話が大がかりになり面倒になるので、
大体は運用で対策され、でも何とかなってるというのが実態だ。
通常は言語選択はアーキテクチャよりさらに上のレイヤか、そもそも独立した軸なので、
言語比較で一番下のレイヤ(現場)での改善のみに限定するのが間違ってる。
そして重要なのは、既存の言語でも根本対策はやる気になればすぐに出来るんだよ。多少面倒なだけで。
だから信者の言う「Rustでなければ無理だった」というアプリが存在せず、キラーアプリも出てこないわけ。

Rustは「一方ロシアは鉛筆を使った」の米国側を突き進もうとしてる。これもありだが、ロシア側もありなだけの話。
0787デフォルトの名無しさん
垢版 |
2022/04/10(日) 09:21:12.35ID:n6k1Ijhp
この人は無駄で無意味な間違った例え話を延々と繰り返し妄想の世界に住んでいる
0788デフォルトの名無しさん
垢版 |
2022/04/10(日) 09:21:25.28ID:sR7YmRYu
Scalaの方がKotlinより機能豊富だけどWeb系では落ち目になったね
Scalaの方が好きだが
0789デフォルトの名無しさん
垢版 |
2022/04/10(日) 09:26:20.41ID:BLmvSJJ5
>>788
Scalaは結構好きで長く使っていたけど
使っているとどうしてもJVMが見えてしまう部分があって
Rustに乗り換えちゃったな
0790デフォルトの名無しさん
垢版 |
2022/04/10(日) 09:29:58.47ID:93k1uAXl
rustaceanはある時期を境に爆発的に表に出てきてプログラミング界隈を圧倒する未来が見える
0791デフォルトの名無しさん
垢版 |
2022/04/10(日) 09:41:23.13ID:BLmvSJJ5
表に出るかなぁ?
OSやコンパイラ、ミドルウェアあたりに侵食して、気付かないうちに全員が依存してる、みたいな状況なら有り得そう
0793デフォルトの名無しさん
垢版 |
2022/04/10(日) 10:55:59.09ID:vR2aNwQM
>>779
>Linusはモノリシックカーネルの利点を言ってるけど、あれは俺は後付だと思うよ。
後付けというか経験知からの意見だろ。
Linusはそもそもが理論家なわけでもないし。
仕様を最初から小さく絞れるとか考えてる奴は全く的外れとしか言いようがない。
0794デフォルトの名無しさん
垢版 |
2022/04/10(日) 11:21:10.49ID:7HDkHX8h
Linux作り始めたときからタネンバウムと論争しているのに理論家じゃないとか後付けとか
0796デフォルトの名無しさん
垢版 |
2022/04/10(日) 11:41:39.32ID:vR2aNwQM
>>794
だからLinusはタネンバウムみたいな理論家を嫌ってんだろ。議論の中身理解してないのか?
0799デフォルトの名無しさん
垢版 |
2022/04/10(日) 12:31:07.74ID:2AahvlRa
次世代はシンプルな言語仕様+強力な静的チェックだと思う
Rustみたいに事前の宣言でガチガチに縛るんじゃなく、型推論やフロー解析を積極的に利用して利用のされ方に基づいた型チェックや生存期間のチェックを行う
まあこのままいくとJavaScript+VSCodeがそれになるかもしれないが
0800デフォルトの名無しさん
垢版 |
2022/04/10(日) 12:46:03.55ID:fBzqkVFD
>>799
ことweb界隈で使われる言語に関しては前半同意

サービス独自の機能をスピーディーに開発することが求められるweb界隈において、プログラマ自身が考えないといけないことが多くなるrustはまず普及しない
0801デフォルトの名無しさん
垢版 |
2022/04/10(日) 12:55:32.64ID:fmRbxCQk
>>793
運用していくうちに追加追加で仕様が段々膨らんでいくのはある程度仕方ないとして、
それでも更新タイミングで不要な仕様を出来るだけ削除して仕様を絞るのは基本中の基本だろ。
マイクロカーネルもある意味これで、「カーネルがやるしかない事しかやらない」という、最小仕様を目指したものだ。

プログラミングに於いて小さい仕様を目指すのは大正義だし、みんなそうしてる。
(出来てるかはまた別。特にJava分野。
対してWebの場合はこの辺切り捨てるしサービス終了もありありなので、
反発はあるかもしれないが、仕様が雪だるま式に膨らんでる事はない。
俺はこの辺、Java流の「どんなに大きくなっても何とかしてみせる」ではなく、
Web流の「定期的に棚卸しで削除」の方が長期的には正しいのではないかと思いつつある、という事)



>>794
Linusは当初から分かっててモノリシックを選択したのはいい。
当時の速度的にそれが妥当だったのも分かる。

ただ、今となってはマイクロカーネルにすべきだし、徐々にでも変更していくべきだと思うよ。
今でもモノリシックの利点を説いているのは、後付のように思える。
0802デフォルトの名無しさん
垢版 |
2022/04/10(日) 13:03:29.70ID:WQm20ac3
>>794
「俺は後付だと思う」って予防線貼ってるし、そこまで知らなかったんだよ、きっと
許してあげて
0803デフォルトの名無しさん
垢版 |
2022/04/10(日) 13:10:21.13ID:BLmvSJJ5
>>799
Rustのように型が強力でコンパイル時チェックの細かいGC言語ってのが現状ないから
そこは新言語の余地がある気がしている
JSだとどうしても型はガバガバにならざるを得ないからなぁ
0804デフォルトの名無しさん
垢版 |
2022/04/10(日) 13:17:50.89ID:blp15KeH
言語には向き不向きがあるわけで
それを無視してRustがすべての言語を置き換えるみたいな話をしているのがおかしい
C/C++の置き換えは進むかもしれないけどwebやスマホやPCアプリとかでは採用されないでしょ
普通はどの言語が最適かをいろいろ検討して決めます

なんか通販の広告みたいなんだよね
良いことしか言わないし
大手IT企業が採用ってのは通販広告の有名人も愛用!みたいな感じ
コンピュータ関係の新技術の売り文句は100%そうだった試しはないので話半分で聞いていた方がよいと思う
0805デフォルトの名無しさん
垢版 |
2022/04/10(日) 13:30:51.71ID:fBzqkVFD
>>804
ほんまこれ
このスレの一部のRust信者がRustこそ至高みたいなノリだけど、このノリについていけないRust推し結構いると思う
0806デフォルトの名無しさん
垢版 |
2022/04/10(日) 13:55:42.06ID:UjiUu+PI
いつでも最初から型が要るのは足枷というのは確かに思うわ
そうなると漸進的型付けってやつかねえ
TS以外のaltJSは死んだとかだれかが言っていたが、Haxeの再興もあるか?
0807デフォルトの名無しさん
垢版 |
2022/04/10(日) 14:04:03.83ID:WXrh5iWM
>>805
というよりRustは好きだけど別に推してはないという
誰も使わなくていいよ
俺と一部のお前らが使うだけでいい
みんなに使ってもらう必要なんて一切ない
0808デフォルトの名無しさん
垢版 |
2022/04/10(日) 14:14:16.90ID:lifo30Qd
>>807
そう思ってるなら言わなきゃ良いんじゃないですか?そういう他の言語を使ってる人を小馬鹿にした態度がRust推しそのものでしょ、しかも良い印象は全く受けない
0809デフォルトの名無しさん
垢版 |
2022/04/10(日) 14:16:40.89ID:WXrh5iWM
アンタにレスしてないから気にしないでね
人を小馬鹿になんかしてないし
Rust以外の言語も好きだし
そもそもどの言語も馬鹿にしたりしない
0810デフォルトの名無しさん
垢版 |
2022/04/10(日) 14:23:28.49ID:sejldIDY
こういう屈折した性格の勘違い野郎ばっかで本当に近づきたくない。扱いにくいのに能力なんてないし言語触ってれば最先端だと勘違いしてる、とんでもねえバカ
0811デフォルトの名無しさん
垢版 |
2022/04/10(日) 14:40:08.25ID:9taU8UGO
RustはMozillaのステマでfirefoxのRust導入は
不可能と叩きが暴れてた頃が懐かしいなあ〜
0812デフォルトの名無しさん
垢版 |
2022/04/10(日) 14:57:34.06ID:fmRbxCQk
>>810
まあ勘違い馬鹿は必ず存在するのである程度致し方ない。
連中は基本的に「難しい言語使ってる僕すごい」であり、
プログラミング言語の優劣を自己で判断する能力はないので、
何か新しく「凄いけど難しい!!!」とされる言語が出てきたら勝手に移住する。
だから、対策としては、何でもいいから新しい言語を作って適当に吹聴する事だね。
そうすればRust界隈も浄化される。

なお一時期はC++の連中の選民思想が超絶にウザかったが、これが今はRustになってるだけ。
ならC++スレはどうなったかと思って見てみたら、完全にお馬鹿の溜まり場になってたわ…。
まあ○○言語を使ってれば賢いって事にはならないので、当然でもあるのだが。
0815デフォルトの名無しさん
垢版 |
2022/04/10(日) 15:22:51.62ID:fmRbxCQk
>>783
はっきり言えば、誰も「新言語」なんて必要としてないだろ。
欲しがってるのは、各自が気に入った言語での、
・バグを自動的に検出してくれるゴリゴリのリンター
・Cと同速で動く爆速環境
であって。

はっきり言ってRust信者の「Rustは書きやすい!!!」すら方便で、連中は
・リントが強く、データ競合が起きない
・寿命管理ががっちりしてるので、GCなくてもメモリリークが発生しにくい
事がRustの買いだと言ってるわけだが、
Rust信者すら、信者になる前に使ってた言語でこれらを満たす状況になってたら、そのままその言語を使い続けてるだろ。

寿命管理はGCが爆速なら(リアルタイム系以外は)誰も文句言わないのでこれで決まり。
データ競合バグは言う程問題でもないが、
これをどうしても避けたいのなら、JSのように基本シングルスレッドにしてしまえば根本解決する。
だからこの2点が必要とされてるのなら、JSの爆速環境があれば済む話。

JSにおいて速度の枷は動的型であり、だからこそTSでアノテートだが、JSに変換して実行してる現在では速度メリットはない。
だからV8(JSエンジン)がTSをそのまま食うようになれば、解決する。期待値としては多分現行の倍速程度にはなる。
あるいはBlazor(WebAsembly)がこれに近い状況。

ただし世界が望んでるのは、Python/RubyがとりあえずJS並に高速化する事だね。
ただ俺はPython/Ruby連中が高速化についてあまり真剣に取り組んでない(ように見える)のは意味が分からないのだが。
Matzも新言語作るんだーとか言ってたと思ったが、あんたがやるべきなのはRubyの高速化でしょうが、と。
0817デフォルトの名無しさん
垢版 |
2022/04/10(日) 15:24:50.68ID:x8oklrTT
>>805
そもそも5ch以外で信者っぽい人見たことないけどな
リアルでもTwitterあたりでもみんな複数言語使ってる中の一つにRustもあるってだけ
0818デフォルトの名無しさん
垢版 |
2022/04/10(日) 15:33:46.76ID:lgnAhvFe
>>815
ruby3はruby2の3倍高速化というお題目でそれなりの成果を出した訳だけどそれでもまだまだ足りないと言うのね

スクリプト言語で高速化するためにはボトルネック箇所をCなりで置き換えるのが普通
JSはブラウザで動かさなければならないという制約上言語自体を高速化する必要があり
ブラウザベンダー大資本がつぎ込まれた結果高速化した
前提がかなり異なるから同じことがruby/pythonに起こることはないのではないか
0819デフォルトの名無しさん
垢版 |
2022/04/10(日) 15:56:47.79ID:fmRbxCQk
>>818
> ruby3はruby2の3倍高速化というお題目でそれなりの成果を出した訳だけど
それよく勘違いされてるが、
3倍になった『部分がある』だけで、全体が3倍になったわけではないよ。
(これは公式でもこう『追加』アナウンスされてたはず)

俺が思う割と正当な比較はこれだが、
> https://1.bp.blogspot.com/-rfuoTnmJM5Q/X41w-eFt9QI/AAAAAAAAJcc/nFNdlKqfs6sRKna-85JxpmzrAe1bw0tGQCLcBGAsYHQ/s0/3730357d-results-energy-time-and-memory-usage-screenshot-from-research-paper.png
> https://okuranagaimo.blogspot.com/2020/10/blog-post_19.html
「Pythonは100倍以上遅いぞ」なんて言われる事も多く、
C比だとJSで5-6、Python/Rubyは80-100程度だと思ってる。
だからまずはJS並にするだけで16倍程度は高速化するわけであり、CやCythonは嫌だ…な連中には十分だと思うんだよ。
Rubyも16倍のクライアントを捌けるようになれば鯖代も半分以下に出来るだろうし。
(そもそもコードが汚れるのは無理に速度チューニングしたコードにするからであり、
馬鹿みたいなコードでも速く動くのならコードも綺麗に保てるし)

> 前提がかなり異なるから同じことがruby/pythonに起こることはないのではないか
逆に言えば、金さえつぎ込めば改善出来るわけで、
改善項目とそれに要する金額をずらっと羅列して、クラファンで資金が付いたところから実行、
十分な結果で採り入れられたらそいつがその資金を給料として獲得、とかいう方式にすれば、
割とすぐにでも行けるんじゃないかと思うんだけどな。
0820デフォルトの名無しさん
垢版 |
2022/04/10(日) 15:58:01.34ID:UjiUu+PI
>>815
> JSにおいて速度の枷は動的型であり、だからこそTSでアノテートだが

違うよ
ブラウザがTSをそのまま食えるようにするというのは開発者側でトランスパイルする必要性を無くすだけで実行速度の改善を目的としたものではないよ
ていうかその方向性はasm.jsとかPNaClみたいな先駆者がいて彼らの現状の到達点がWASMという経緯があるよ
0821デフォルトの名無しさん
垢版 |
2022/04/10(日) 16:21:05.00ID:fmRbxCQk
>>820
> 実行速度の改善を目的としたものではないよ
それは知ってるが、JSの速度改善には型の固定(静的型)が必要だから、「『Any無しの』TSを食わせる」必要があるんだよ。
その前段階として「TSを食わせる」が必要なわけ。
(実際やろうとしてるかは知らん)

asm.jsはお世辞にもいいものとは思えない。
あれもJSエンジン内で型を固定出来てるわけではないし。(ただJITだとあれでも行けるのかな?)

PNaClは知らない。けど削除されちゃったよね。
ただwiki見る限りWebAssemblyでいいから削除、みたいな感じのようだが。

「Any無しのTSを食わせる」位ならBlazorでWebAssemblyしろってのはその通りだが。
だからWASIも方向性としては有ってて、最高に上手く行けばJVMを置き換える事になるかもしれんけど。
(Java言語そのものは死なず、JavaからWebAssemblyを吐くようになるだけだが)
0823デフォルトの名無しさん
垢版 |
2022/04/10(日) 16:53:31.25ID:QEMS6G9N
毎日Rust攻撃してる人、暇なんかな。
別の事に時間使えはいいのに、と他人事ながら思うよ。
0824デフォルトの名無しさん
垢版 |
2022/04/10(日) 16:57:09.68ID:7HDkHX8h
AssemblyScript や Static TypeScript の話をどこかで聞きかじったのが混ざってるんだと思う
0825デフォルトの名無しさん
垢版 |
2022/04/10(日) 17:16:31.79ID:ZtzjE5Lq
Ruby はJIT で、C コードをコンパイルするけど、
1万ぐらいコンパイルしても、Rails みたいにすべての関数が平均的に呼ばれるアプリでは、
1割ぐらいしか速くならない

行列・ベクトル演算みたいに、CPU セントリックな処理では速くなるから、
Python, Julia では、JITの効果は大きいかも

I/O を使わずに、少ない数値を何回も使って、組合せ演算するようなたぐい

YouTube で有名な、雑食系エンジニア・KENTA が言ってたけど、

Scala が滅んだのは、
食えないから、コミュニティーに居座る無職のベテが、新規を叩きまくるから。
食えない所には、変な香具師しか残らない

Scala, PHP は、KENTAがオワコン認定したから、一気に滅んだ

結局、Laravel, Django, Node.js などは、競争でRails に勝てなかったから。
だから、未経験者のキャリアパスは、Rails → Go だけと宣言した
0826デフォルトの名無しさん
垢版 |
2022/04/10(日) 17:19:51.97ID:kr0xp78k
>>794
ライナスは理論家じゃなくて実務家

ライナスはUNIXクローンが動かないと意味がないからとりあえずソースを書いて動かそう派で
タネンバウムは理論上マイクロカーネルが有利だからマイクロにしろと言って噛みついて来た理論家
0827デフォルトの名無しさん
垢版 |
2022/04/10(日) 17:37:12.48ID:ZtzjE5Lq
Blitz.js は、React 版・Ruby on Rails。
Cake PHP みたいなものか?

Type Script なら、Rubyよりも型安全だけど、
モデルが、RailsのActive Record よりも弱いらしい
0828デフォルトの名無しさん
垢版 |
2022/04/10(日) 17:53:45.64ID:lgnAhvFe
>>819
"それなりの成果" ってわざわざ書いた意図をくみ取って欲しかったな

クラファンとかアイディア出すのは良いんだけど
具体的にどういう課題があって改善したがってるのかが分かんないんだよね
Cで書いたモジュールと置き換えるのじゃだめなの?
0829デフォルトの名無しさん
垢版 |
2022/04/10(日) 18:07:58.32ID:b41tYEVR
定期的にKENTAさんを引用している人、もしリスナーさんだったらやめたほうが良いですよ?

分析は正しいかもしれないが、イメージを悪くして迷惑をかける可能性だってあるし、
本人が見ていないところに、荒らしにも見える行為はマナー上良くないですからね?
0830デフォルトの名無しさん
垢版 |
2022/04/10(日) 18:20:31.55ID:aoUYGCMa
Youtubeで有名な、とかいう主観に満ちた枕詞をつけてるあたり権威付けして威を借りようとでも思ってるんでしょ

たかがYouTuberに言語の勢いを減らせるほどの影響力ないでしょ
0831デフォルトの名無しさん
垢版 |
2022/04/10(日) 18:27:03.03ID:Yq6q8jid
YouTuberの名前を出されても中学生が書いてるのかなとしか思わんしマジでそんなやつどうでもいい
偉そうに技術を語るなら、超有名OSSプロダクトをいくつも作ってるとか、GAFAでアーキテクトをやってるとかぐらいの実績がほしい
0832825
垢版 |
2022/04/10(日) 18:58:00.76ID:ZtzjE5Lq
KENTA の有料のRuby on Rails サロンは、日本6位の3千人。
日本1位は、キングコング西野の数万人

vue.js 日本ユーザーグループが、3千人

単独のフレームワークの有料サロンで3千人は、あり得ない!
世界的にも断トツじゃないか?

実際に、外人から驚嘆されている。
転職で未経験者が、こんなすごいポートフォリオを持ってくるのは、あり得ないって

これが日本人が発明した塾・予備校。虎の穴

でも、これほどすごくても、日本人の年収が先進国の1/3 なのも、あり得ないけどw
失われた30年。
財務省のせいで、世界中で唯一、GDP が伸びなかった国
0834デフォルトの名無しさん
垢版 |
2022/04/10(日) 19:35:37.31ID:N5dTO4j8
>>821
GC対応は悲観的
様々な言語で効率化が異なる手法のGCのためにWebAssemblyに共通仕様のGCを作るのは不可能という結論になった
だから当面はWebAssemblyにGCは載らずいずれGC対応しても各GC言語はそのまま動かず特別仕様に制限される
0836デフォルトの名無しさん
垢版 |
2022/04/10(日) 20:10:14.95ID:vR2aNwQM
>ただ、今となってはマイクロカーネルにすべきだし、徐々にでも変更していくべきだと思うよ。
>今でもモノリシックの利点を説いているのは、後付のように思える。
そう思ってるなら思ってる奴がフォークするなりしてやればいいんじゃね?
そのためのフリーソフトなんだから。でも結局やらんだろうがな。
0837デフォルトの名無しさん
垢版 |
2022/04/10(日) 20:30:35.41ID:aoUYGCMa
オンラインサロンの会員数を出したり、外人から驚嘆されてるとかいう眉唾情報を出したり、教祖が教祖なら信者も信者だな
0838デフォルトの名無しさん
垢版 |
2022/04/10(日) 20:49:57.25ID:fmRbxCQk
>>828
> 具体的にどういう課題があって改善したがってるのかが分かんないんだよね
> Cで書いたモジュールと置き換えるのじゃだめなの?
この主語がRubyではなく、Rubyランタイムだと仮定すると、以下。


Rubyについて文句言われてるのは速度だけだろ。
エコシステムはPythonには劣るが、基本的には「それ、Rubyでも出来るよ」程度にはなってるんだろ。
なら後は人数だけで、新規を呼び込むにはPythonよりも圧倒的に速い速度だよ。
手法は速くなるのなら何でもいい。

改善箇所は、まずはプロファイラ付きのランタイムを配ってデータを集めて、
使用頻度の高さ*コード見ての改善見積もり=高速化効果見積もりと、その費用の一覧を作って、
ついでにそのプロファイラー付きランタイムでの使用実績も掛けて各社向けに
「御社のRubyプログラムは○○円で△%高速化」の一覧に差し替えて、クレクレ君するしかないね。
長期的に見れば自前でゴリゴリチューニングするよりランタイムが速くなってくれた方が楽だから、
10社くらい束ねればわりと行けるのではないかと。
あくまで、各社が「ここを速くしてくれ」として費用を出してきた場所を改善だ。
ユーザー無視して高速化しても外れるだろうし。
0839デフォルトの名無しさん
垢版 |
2022/04/10(日) 20:50:32.86ID:fmRbxCQk
>>828
> 具体的にどういう課題があって改善したがってるのかが分かんないんだよね
> Cで書いたモジュールと置き換えるのじゃだめなの?
主語がRubyだと仮定して、
Rubyのどこが不味いのか、速度が欲しければCでdllを用意しろ、という意味なら、死ねと言われるだろうよ。


Rubyは根本の戦略が間違ってる。
Pythonとダダ被りなので、このままだと、シェア的に見て死ぬのはRubyだと確定してる。
なら、Pythonと正面からやり合うのではなく、違う道を模索しないといけない。
具体的には互換性無視での先行だね。そして「学生が学ぶならRuby」という地位を確立してしまう事だ。
2012位にRubyカンファレンスでMatzが「互換性を重視しました!」
と言って沸いたという記事があったはずだが、あれが完全なる間違い。
互換性重視と言うと聞こえはいいが、これは「新規のコードよりも既存のコードを優遇する」という事であり、
これからコードを書く/学ぶ連中にとっては全く意味無い。それよりは、最新の書き方を試せる方がいい。

どの言語も段々と互換性を重視するしかなくなるので、仕様改訂出来ず、段々と古くさくなっていく。
Pythonなんて既にそうなってるだろ。
なら、「常に最新の書き方が出来ます!」をキープして、新規学習者の登竜門的な地位を確立するしかない。
これには、
・バージョン管理で仕様を年に一度は大幅改訂。新しい記法を貪欲に採り入れ、古い記法はばっさり捨てる。
・古いバーションの記述でも動きはするように、関数単位でのパースバージョン指定が出来るようにする。
・学生にとって入社〜3年目程度に必要な概念は全て学習出来るよう、
 他言語でのプロポーザルの有力案は全て採り入れる。(高速である必要はなく、動けばいい)
とかで、とにかく「プログラミングの学習にはRuby!」という地位を確立しないと、
Pythonに食われて死ぬ未来しかないだろ。

で、RoRは仕様を改訂/捨てまくりだと聞いてるけど、
あれが正しいよ。というか、何かしらPython(や他言語)と差別化しないと死ぬだけ。
0841デフォルトの名無しさん
垢版 |
2022/04/10(日) 20:58:47.74ID:fmRbxCQk
>>834
> 様々な言語で効率化が異なる手法のGCのためにWebAssemblyに共通仕様のGCを作るのは不可能という結論になった
そりゃそうかもしれんが、これはWebAssemblyの連中が真面目すぎるだけ。

Python/Ruby/JS/TSを使ってる連中が、GC方式なんて気にしてるわけねえだろ。
GC出来てれば何でもいいんだよ。(循環参照でもGC出来るのは必須で)

やりたくないから理由を適当にでっち上げたようにしか見えないね。
(オープンソースならそんなもんだが)
0842デフォルトの名無しさん
垢版 |
2022/04/10(日) 21:10:10.44ID:fmRbxCQk
>>836
wikiによるとArchとDebianでやってみた奴はいるらしい。
> 2012年現在、Machベースの GNU Hurd も機能しており、それを採用した Arch Linux と Debian のテスト版も進行中である。
> https://ja.wikipedia.org/wiki/%E3%83%9E%E3%82%A4%E3%82%AF%E3%83%AD%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB

ただまあ、マイクロカーネルにしても、
ドライバ周りのコードを(カーネル開発人員が)自前で書かないといけないので、
最終的に書かなければならない合計コードサイズ自体は大して変わらず、
カーネルで落ちるかユーザーモードでバグるかの違いで、大して意味はないのかも?
ならわざわざやろうと思わないのも道理だ。
0844デフォルトの名無しさん
垢版 |
2022/04/10(日) 21:24:19.23ID:9taU8UGO
この聞きかじりで広く明後日の知識を披露してる人は
前暴れてた人と同じなのか違うのか
0845デフォルトの名無しさん
垢版 |
2022/04/10(日) 21:28:26.61ID:ZtzjE5Lq
循環参照とか参照カウント・世代別GC とか、
動的言語で、そんな事を知っている香具師はいない

唯一、Ruby には「Rubyのしくみ」と言う、
Ruby1.9の仮想マシンの本があるから、

Cookpad の笹田耕一が、どういうようにRuby VM を作ったかと言うのは、
日本人だけは知っている
0847デフォルトの名無しさん
垢版 |
2022/04/10(日) 21:54:26.09ID:W8i2G4wq
>>832
すまん、コレ見るとやっぱジャップランド土人ってガイジの集団じゃないか?
中国に併合してもらって考えを悔い改めた方がいいのでは?
0848デフォルトの名無しさん
垢版 |
2022/04/10(日) 21:55:02.28ID:QUw9uGH2
V8高速化するのは兆円越えるような凄まじい金銭が投入されてるが、pythonの組織など億から10億程度、rubyはその1/5行くかどうかなんだから張り合える訳がない。
0849デフォルトの名無しさん
垢版 |
2022/04/10(日) 22:10:35.68ID:tGlbubKc
他言語のエンジンをrustで作り出したら本格的

今のところjs/tsのエンジンであるdenoのみか
0850デフォルトの名無しさん
垢版 |
2022/04/10(日) 22:50:17.14ID:D/xoL3wp
GOとか早くも終わりそうな感じだけど実際どうなの?
API作るには良いかと思った事もあったけどわざわざ採用する程でもないんだよねぇ
0852デフォルトの名無しさん
垢版 |
2022/04/10(日) 22:54:54.30ID:vR2aNwQM
サーバー用途以外だったらワークフローエンジンとかCIツール周りなんかは向いてそうな気はする。
0853デフォルトの名無しさん
垢版 |
2022/04/10(日) 22:55:50.40ID:Yq6q8jid
>>848
いくらなんでもそんなに金かけてるわけないだろ
V8の開発をする専門エンジニアをフルタイム数万人規模で働かせるっていうの?
ちなみに任天堂やソフトバンクの時価総額が7兆円ぐらいな
0854デフォルトの名無しさん
垢版 |
2022/04/10(日) 23:46:53.01ID:OCBvsT75
>>850
Goはある範囲内なら簡潔に分かりやすく書けていいよ
今はRustでもGoと同様のプログラミング方法で簡潔に分かりやすく書けるようになったため私はRustへ移った
理由はRustの方が速くて他にも広く適用できるため
0855デフォルトの名無しさん
垢版 |
2022/04/10(日) 23:58:13.16ID:pEZ46Oyr
>>835
もちろんそれでも他でも動く
C#によるBlazorも重くて遅くてデカいけど動いている
焦点は効率の問題
0856デフォルトの名無しさん
垢版 |
2022/04/11(月) 00:50:05.90ID:E3KBZvfK
>>838
いや、だから一般論じゃなくてあなたは何に困ってるのかを聞いてるの
ただ漠然と速度が遅いと言われるだけでは分からんのよ
0860デフォルトの名無しさん
垢版 |
2022/04/12(火) 13:44:31.10ID:A7zu82Eq
速度に不満があるならJulia使おうぜ
ちなみに俺はプロット表示出来なくて、すぐ必要なわけでもないし面倒になって環境構築の段階で挫折した
0861デフォルトの名無しさん
垢版 |
2022/04/12(火) 20:19:42.59ID:vS+B3//0
所詮道具は道具だ
個人的に深掘りしたいライブラリ整備したい言語と
働くために使う言語は別だと割り切ればだいたい幸せだよ

まあそれで何個も使ってるとしんどいんだけどな
0863デフォルトの名無しさん
垢版 |
2022/04/13(水) 02:09:35.75ID:dECpaYfo
流れに身を任せれば良い。幸福感が得られる。
重要な決定に関与しないので、責任感に追われることは無い。
それも生き方。何の間違いもない。
0868デフォルトの名無しさん
垢版 |
2022/04/13(水) 19:36:47.36ID:uZMWha80
考えてみたらnimなんてQitaか5chでしか聞かなかったもんな。
声の大きい人のおかげでGoやRustと同格っぽく錯覚してたけど、実際は>>865のように
Crystalあたりが比較対象になるマイナー言語だったんだよな。
0874デフォルトの名無しさん
垢版 |
2022/04/13(水) 21:55:10.23ID:VZeyJm3t
>>865(整理)
1 JavaScript
2 Python
3 Java
4 PHP
5 CSS
5 C#
7 C++
8 TypeScript
9 Ruby
10 C
11 Swift
12 R
13 Objective-C
14 Shell
14 Scala
16 Go
17 PowerShell
18 Kotlin
19 Rust
19 Dart
0875デフォルトの名無しさん
垢版 |
2022/04/13(水) 21:56:44.53ID:WrxbMLiQ
Rが意外と高ランクなのはなぜだろう
Stack Overflowの質問数が多いから学生が課題で使うなどしてるのかな
0877デフォルトの名無しさん
垢版 |
2022/04/13(水) 22:07:12.36ID:CqWBmt+n
>>865
この相関表だとJuliaがここにスレタイに入ってないのはおかしい、Nimも外してJVMで動いてる競合が全くしないKotlinも外せよ。
入れるならコンパイルできるHaskell、Erlang、Dあたりだろう。TypeScriptは残しても良いけど、ここの人たちがGCだのなんだの
ムーブセマンティックがどうの言うてる次世代言語のような先進性なんてほとんど無いぜ?
このスレにNimがあるのはえらい迷惑、RustやC++をまじめにやってる人も迷惑だと思うけど、あんたら好きそうだから隔離としては
ええんちゃうか?
0880デフォルトの名無しさん
垢版 |
2022/04/13(水) 22:20:19.72ID:tuyUM4Xb
「次世代言語」ってどういう意味よ
ちなみにHaskellはJavaやPythonなんかよりも古い言語だ
0881デフォルトの名無しさん
垢版 |
2022/04/13(水) 22:35:07.15ID:WrxbMLiQ
現世代じゃなくて次世代ってことは流行ってる言語はだめか
Nim以外スレタイから消した方が良い?
0882デフォルトの名無しさん
垢版 |
2022/04/13(水) 22:48:55.23ID:IduSatGp
実用プロダクトがバンバン出て
求人も当たり前に見つかるのは
次世代感はあまり無いかも
0883デフォルトの名無しさん
垢版 |
2022/04/13(水) 23:05:23.43ID:ay76B0Js
>>880
Haskellは98とか2010とかいろいろ修正機能追加してるので、C11とかC++20とかそういう立場でしょ。次世代ってことは現世代で
問題があるか書き難いか、表現しずらい、誤解を生むような記述が解消されてたり、コンピューターサイエンス屋が無理やり入れたに
機能なんかを削除したり。あとは実行上のメモリー管理や分散処理が簡単になるとか
0885デフォルトの名無しさん
垢版 |
2022/04/13(水) 23:26:59.24ID:lUUAz3L8
>>880
無駄が少なく記述できる(冗長・簡潔)とか、新しい概念が追加されている(Structured programming→OOPS)なんかもそう。
今まではアセンブラや行番号記述の言語(例えばN88BASIC)などから構造化プログラミングが可能になり、C++やJavaでOOPSが唱えられていたけどRustで言えば多態はクレートになるが、クレートより先の進化が無いとは限らない。
またErlangやHaskellにあるガード構文もパラダイムを変えるようなものではなく、あくまでも制限なので構文上で次世代というには、多くの言語が似たような構文を導入し始めてる。
例えばasync/awaitなど非同期構文などはまさにそれ
0886デフォルトの名無しさん
垢版 |
2022/04/13(水) 23:42:53.90ID:5KgZTTtC
>>883
メモリー管理というか、どんどん複雑大規模化するソフトに対するメモリーに起因するバグが統計的に少なく記述できる「次世代言語」
0887デフォルトの名無しさん
垢版 |
2022/04/14(木) 11:35:33.89ID:lzoOecS7
Haskellはメインの言語としては狭すぎる                 
特殊な分野向け

というがCSSがランキングにあがってるんだよね
0888デフォルトの名無しさん
垢版 |
2022/04/14(木) 12:22:45.14ID:Z089SWEo
ScalaがGoやKotlin,Rustより上なのか
Scala3になっていろいろ改善されてるみたいだし、まだ復活の目ある?
0889デフォルトの名無しさん
垢版 |
2022/04/14(木) 12:46:43.91ID:NlVTXqiH
ない
Scalaはビッグデータ分野のOSSでの採用が多かったから既存コードベースだけは無駄にデカい
そんな状況で非互換メジャーアップデートしたらどうなるかわかるだろ?
0891デフォルトの名無しさん
垢版 |
2022/04/14(木) 18:41:17.09ID:lzoOecS7
本当の意味での次世代って存在するのかな?

ロシアが威嚇のために日本海に向けてミサイル撃ってるけど
他の国にも威嚇してエスカレートして核戦争始まって文明が滅ぶかもしれないw
0893デフォルトの名無しさん
垢版 |
2022/04/14(木) 21:31:28.88ID:dmYzyL87
次世代言語って、今流行してる言語を置き換えうる別の言語ってことじゃないの?
新しい概念やらが採用されてるかどうかは関係なく、政治的な理由で決まることもある気がする
まあそういうのよりは、新しい概念が採り入れられてる言語について語ったほうが楽しいだろうけど
0894デフォルトの名無しさん
垢版 |
2022/04/14(木) 21:39:45.95ID:IQzKdxCE
Rustは次世代を担う方の素養はないと思う。C->C++->Rustと進んでこないとRustの目指している世界観が理解できないと思うのに、コードは命名規則に_を使うのか思えば大文字小文字でFn/fnで意味付けをしてたり、’staticみたいなコメント?と思える雑な定義が多い。理解してない子が勢いで作ったの?って感じがするので広める前に整理が必要だよね。ISOをとったらどうかな?
0898デフォルトの名無しさん
垢版 |
2022/04/14(木) 23:45:37.43ID:fXS8nb7A
Rustは十分に抽象化されているため
Cの生ポインタの知識なく効率よく使える
むしろ生ポインタは安全でないため足を引っ張る知識
0900デフォルトの名無しさん
垢版 |
2022/04/15(金) 01:12:09.01ID:eIDEFdSW
バカが安易に生ポインタ書き込みしないようにunsafeしないと使えないようになってるので大丈夫
99%以上の用途ではそんな低レベルなものは必要とせずとも大丈夫なようにRustはできている
ほとんどの人は実験目的以外で用いることがないだろう
0903デフォルトの名無しさん
垢版 |
2022/04/15(金) 08:32:18.47ID:nO4hXcis
CもC++もRustも使えるが
確かにRustでは他の多くの言語と同じく生ポインタを使って読み書きすることはないしその概念も不要だな
普通の言語ならばそのような抽象度の低いものを持ち出さずともプログラミングできるべきなのだろう
0906デフォルトの名無しさん
垢版 |
2022/04/15(金) 09:08:45.73ID:OmyTBDUu
人間関係というか変な人を排除するのにRustっていい例があります。
うちの会社です。
C++使える人は仕事はできる(昔からやってるだけですが)んですが、人格に問題があり、とにかく後輩にはほとんど教えず
なにか聞かれると自分で調べろとか、そういうなにかと偉そうな人たちが多いです。
そんな中Rustのプロジェクトが立ち上がるとそれまでC++使ってた偉そうな人たちが見事にいないプロジェクトになり、非常に風通しがよいプロジェクトになっております。
お互いつらい目にあってきたからその反動ですごくお互いに親切に教え合う雰囲気。
逆にC++のプロジェクトは偉そうな人たちと社内で最も使えない人たちだけが残りまして廃墟になっておりますw
0907デフォルトの名無しさん
垢版 |
2022/04/15(金) 10:13:34.70ID:y5QQqJ15
理系の比較的頭の良い人が多い割に非生産的な仕事の多い分野は、非協力的で常にイライラしてる人が多い印象
オンプレのインフラとかC++なんかはまさにそうだね
0908デフォルトの名無しさん
垢版 |
2022/04/15(金) 12:27:18.13ID:4kmZAVVg
なんでも敵視するRust新兵隔離所、Rustの話しかしてないからRustに誘導されたら、真のRust使いが怒り出した
0911デフォルトの名無しさん
垢版 |
2022/04/15(金) 13:05:03.59ID:/A+hDicd
>>910
そうだよ
でも生ポインタというかアドレスが何か分かっていないとこのキャストが意味するところは理解できないでしょうし
それゆえ「生ポインタの知識は不要だし有害」は過言という主張です
0913デフォルトの名無しさん
垢版 |
2022/04/15(金) 16:25:15.14ID:ozQCMa2m
メロスは激怒した
必ず、かの 邪智暴虐 ( じゃちぼうぎゃく ) のRUSTを除かなければならぬと決意した。
メロスには生ポイントがわからぬ
0914デフォルトの名無しさん
垢版 |
2022/04/15(金) 16:35:16.39ID:UYa93qbN
生ポインタの知識は無くてもプログラムは書けるし、動くし、困るまでは、知らなくても良いんじゃないの?
0915デフォルトの名無しさん
垢版 |
2022/04/15(金) 17:23:21.88ID:k/yGxJzN
一皮むけば生ポインタ出てくるのはどの言語でもそうだしことさらrustだけ取り上げる理由もないとは思うけど
ポインタの知識が有害というのは言い過ぎ
0918デフォルトの名無しさん
垢版 |
2022/04/15(金) 23:46:20.49ID:qbrugoRS
>>917
Rustの話ではないぞ
double freeはRustでは起きない
Rustは全自動解放だからプログラマーが気にすることはない
0920デフォルトの名無しさん
垢版 |
2022/04/16(土) 02:10:47.90ID:IW60Azsc
c++はstd::unique_ptrで使い回すようにしたららだいぶスッキリしたよ。
継ぎはぎ故の古い環境やオレオレツールが動くのも良い。
でもどっかでカバっと大規模に整理して欲しいと思ったりもする。
0921デフォルトの名無しさん
垢版 |
2022/04/16(土) 06:37:22.84ID:Ynxy6YP5
pythonってそんなに世の中で使われているかな?
単にエンジニアが好きと思ってるだけのような気がしなくもないのだが・・・
俺は嫌いだけどw
0924デフォルトの名無しさん
垢版 |
2022/04/16(土) 09:04:49.24ID:teyv0kaV
「 全自動解放だからプログラマーが気にすることはない 」そんな訳ない、Rustでも自分でカスタムアロケータ書けば気にする
0926デフォルトの名無しさん
垢版 |
2022/04/16(土) 16:00:51.37ID:HzTWzZVk
pascal じゃなく python ?
pascal は言語理論上の基礎の上に載ったしっかりした文法だが python のような出鱈目文法が今はウけるのか?

世も末としかいいようがない…
0928デフォルトの名無しさん
垢版 |
2022/04/16(土) 17:15:40.83ID:Tmn9GDW2
>>923
ベーシックよりはマシかと。
0930デフォルトの名無しさん
垢版 |
2022/04/16(土) 18:23:19.78ID:rBRO4aI9
>>929
意味解析しないと構文解析できないCとかいう言語が跋扈してる時点ですでに世界は終わっているよ
0933デフォルトの名無しさん
垢版 |
2022/04/16(土) 19:42:31.25ID:6xv6jabx
>>924
嘘つき
アロケータを自作しようが標準のを使おうが
そのことには全く影響されずに自動で解放されるぞ
0935デフォルトの名無しさん
垢版 |
2022/04/16(土) 20:51:06.94ID:D0HU54VV
Rustに手を出してみたが特に難しいことは無かったな
むしろ洗練されたわかりやすい言語だと感じた
その上で必要ならば細かいことにも手が行き届く感じ
0938デフォルトの名無しさん
垢版 |
2022/04/16(土) 23:59:23.94ID:rBRO4aI9
>>937
それ、「freeを呼べばメモリが解放される」って主張にたいして
「メモリ解放しない独自実装のfreeならメモリリークする」って反論するようなもので
論理的には正しいけど意味のない主張だよね
0940デフォルトの名無しさん
垢版 |
2022/04/17(日) 00:34:36.53ID:iAVEey/W
>>937
それは君が理解できていないからそんな主張になる

メモリの解放は3階層ある(GCでない場合)
(1) デストラクタによる解放 ←プログラミング言語の仕様で関係するのはここまで
(2) メモリアロケーターでの解放 ←例えばmallocに対するfreeの内部はここ
(3) OSへのメモリ解放 ←システムコールsbrkはここ

C言語は(1)がないため(2)のfreeをプログラマーが忘れず呼び出す必要がある
C++は(1)のデストラクタの記述と呼び出しにプログラマーの手動が一部残りうる
Rustはプログラマーが何もしなくてよい
0943デフォルトの名無しさん
垢版 |
2022/04/17(日) 00:54:39.19ID:10LdHAnc
>>942
Rustでプログラマーがメモリ解放しなくてよい点はGC言語に似ているけど
GC言語はガベージ(=ごみ)が溜まっていって後でガベージコレクションを行なう必要があるのに対して
Rustでは即座に自動的にメモリ解放されるためC言語と同様に省メモリかつ高速というメリットがある
0945デフォルトの名無しさん
垢版 |
2022/04/17(日) 01:16:07.56ID:3NrKz2t8
>>944
CとC++とRust がその同じ方法だけど
いずれも超高速だよ
つまりGCするよりも即座に解放するのが正解と結論が昔から出ているよ
0946デフォルトの名無しさん
垢版 |
2022/04/17(日) 07:19:14.82ID:98II7f1E
>>944
普通はシステムコールする専用のスレッドを作ってそこで全部やるからオーバーヘッド無いよ
0947デフォルトの名無しさん
垢版 |
2022/04/17(日) 08:46:12.09ID:xE2XgYmS
嘘乙
システムコールだろうがGCallだろうが、CPUとメモリ使うから一緒だぞ
これだから物理を知らないソフト屋は
0948デフォルトの名無しさん
垢版 |
2022/04/17(日) 09:02:05.09ID:98II7f1E
バックグラウンドのシステムコールが問題になるような環境だと、それこそガベコレ動かしてる余裕など無いのでは?
0951デフォルトの名無しさん
垢版 |
2022/04/17(日) 10:28:31.82ID:sABjwZnn
>>944
どういう状況を想定するかにもよるけど、解放可能なオブジェクトを解放せずどこかに貯めておいて、
後からまとめて解放するような実装もできるよ
明示的に書かないといけないからちょっとめんどくさいが
0952デフォルトの名無しさん
垢版 |
2022/04/17(日) 10:33:33.77ID:fCmr+50W
解放可能なオブジェクトを解放せず後からまとめて解放するような実装を明示的に書く

それはもうGCなのでは?
0953デフォルトの名無しさん
垢版 |
2022/04/17(日) 10:44:39.16ID:JSPiPQVg
自分でやるかシステムに任せるかで違うと思うよ

自分でやるとバグが発生する可能性がある
0954デフォルトの名無しさん
垢版 |
2022/04/17(日) 11:09:06.02ID:wPmjz1Mj
現実にGC言語方式よりもC/C++/Rust 方式の方が圧倒的に速くて省メモリであると判明している
ただしCでは手動でメモリ解放しなければならないデメリットがありミスも多かった
そこでC++ではメモリ解放を一部自動化した
さらにRustではメモリ解放を完全自動化してミスもゼロとなった
0958デフォルトの名無しさん
垢版 |
2022/04/17(日) 11:17:28.40ID:zOCvtZTK
>>956
そんなの当たり前じゃん
一般的にコンパイル時点でメモリリークを検出することは論理的に不可能
だからRustコンパイラはメモリリークが発生しないことを保証できない
これはRustの問題ではない
0959デフォルトの名無しさん
垢版 |
2022/04/17(日) 11:19:15.00ID:98II7f1E
わざとメモリリークさせているのか事故ってるだけなのかコンパイラは区別できないからな
0960デフォルトの名無しさん
垢版 |
2022/04/17(日) 11:29:57.34ID:MOkVW5s5
Rustでは循環参照以外ではメモリリークを起こさないことをコンパイラが保証できる
さらにRustでは循環参照をプログラマーが意図的に起こさない限り勝手に作られることはない
そのためプログラマーの意図せぬ循環参照は起きずメモリリークも起きない

現実問題としては長らくRustプログラミングしてきて実験テスト目的以外で循環参照を扱ったことは一度もない
0961デフォルトの名無しさん
垢版 |
2022/04/17(日) 12:30:05.08ID:Do/bMUQD
顔真っ赤になってこういう事を書いてくる知能の無さそうな奴と仕事するのが嫌だ
0962デフォルトの名無しさん
垢版 |
2022/04/17(日) 12:32:19.63ID:sABjwZnn
>>952
tracing GCみたいな大げさなものでなくても、解法対象オブジェクトをVecに入れておいて適当なタイミングでVecごとdropするみたいなことはできる
シンプルだからバグの入り込む余地は少ないと思うけど、あらゆるケースに対応しようとするともう少し複雑な仕組みが必要かもね

>>960
いつもrust擁護してるけど、知識不足のせいか言葉遣いが雑なせいなのか、突っ込みどころ多すぎて逆効果になってる
循環参照以外でも Box::leak などでメモリリークは起こせるよ
0963デフォルトの名無しさん
垢版 |
2022/04/17(日) 13:18:48.86ID:6DAoI3Fa
>>962
おまえバカだろ
プログラマーが意図的にしないとメモリリークは起きないという話の場へ
Box::leakでメモリリークを起こせるという主張はキチガイ
0964デフォルトの名無しさん
垢版 |
2022/04/17(日) 13:31:15.61ID:sABjwZnn
>>963
よく読んで
>>960の主張は以下
1. Rust では循環参照以外ではメモリリークを起こさないことを保証できる
2. 循環参照はプログラマーが意図的に起こさない限り起きない
Box::leakは1の反例
プログラマが意図的にメモリリークを起こさない限りメモリリークしないなんて主張については何も言っていない
0965デフォルトの名無しさん
垢版 |
2022/04/17(日) 13:37:41.71ID:51iJikl9
結局プログラマーが意図的に起こさないとRustではメモリリーク起きないんでしょ?
この件でRust叩きは無理があるんじゃないかしら
0966デフォルトの名無しさん
垢版 |
2022/04/17(日) 13:39:19.65ID:JSPiPQVg
速くて省メモリなんて目指してない人が大多数なんだよ

システム書く人ならそれ目指すけど
0967デフォルトの名無しさん
垢版 |
2022/04/17(日) 13:47:11.48ID:li53nBOw
プログラミング言語は3つに分類できる感じ?
CとC++ ←省メモリ高速だがメモリ解放でミスると危険
GC言語 ←省メモリ高速ではないがメモリ解放は自動で気にしなくていい
Rust ←省メモリ高速だがメモリ解放は自動で気にしなくていい
0968デフォルトの名無しさん
垢版 |
2022/04/17(日) 14:13:22.09ID:kfDvzEft
なんかすげぇ素人がまぎれこんできたなw
長文タレ流し君の方がよかったかもw
0969デフォルトの名無しさん
垢版 |
2022/04/17(日) 14:21:16.64ID:JSPiPQVg
Rust ←省メモリ高速だがメモリ解放は自動で気にしなくていいが 独自の戒律があり常にそれを気にしなくてはならない
0970デフォルトの名無しさん
垢版 |
2022/04/17(日) 14:22:13.65ID:66PDnQQD
>>967
その通り
IT大手各社が珍しく連合してRust推ししているのはRustがプログラミング言語の革命児だから
0972デフォルトの名無しさん
垢版 |
2022/04/17(日) 14:54:33.00ID:sABjwZnn
Rustはバランスの良い言語だと思うけど万人向けではないからなぁ
真の意味で万人向けの言語なんてそもそも存在するのかは分からんが
0977デフォルトの名無しさん
垢版 |
2022/04/17(日) 15:53:33.91ID:2ONtHvJl
つまりMicrosoft・Amazon・Google・Facebook(Meta)など大手IT各社が一緒になってRust Foundationを立ち上げたのも裏で電通が暗躍?
0978デフォルトの名無しさん
垢版 |
2022/04/17(日) 15:57:37.21ID:98II7f1E
wikipediaのMozilla Foundationのページ見てたら理事会に日本人居るの見つけたんだけど
この人経歴が訳アリすぎるなw
0984デフォルトの名無しさん
垢版 |
2022/04/17(日) 17:37:31.56ID:gswFN8hB
電通陰謀論は左右問わないね
ネトウヨはマスコミ批判に絡めて電通を黒幕にするし、パヨクは自民党が選挙で勝つことの裏に電通がいることにしたがる
0987デフォルトの名無しさん
垢版 |
2022/04/17(日) 18:36:45.87ID:KG26dcth
>>986

TypeScript Swift Go Kotlin 辺りは次世代感があまりないので、タイトルから外したかったが、とりあえずそのままにしておいた。
0996デフォルトの名無しさん
垢版 |
2022/04/17(日) 21:16:36.68ID:HtOTcTar
>>994
いやいや、C++,C#,Javaは次世代でもないし、GoやRustに比べればすでに完敗してるから入れなくていいだろ
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 26日 19時間 7分 49秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

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