X



次世代言語12 Go Rust Swift Kotlin TypeScript

■ このスレッドは過去ログ倉庫に格納されています
0119デフォルトの名無しさん
垢版 |
2018/07/09(月) 20:54:48.10ID:XHrPXSC2
>>114
> ALGOL舐めてるわけ?

AlgolとくにAlgol 60は実用性はともかく言語設計の観点からは非常に優れた言語だったが、命令的言語であるがゆえに型理論には馴染まない部分がある
今回の君のような内容ゼロの一言レスしてる暇があったら、ReynoldsやTennentの教科書・論文ぐらいは読んで勉強したらどうよ
0120デフォルトの名無しさん
垢版 |
2018/07/09(月) 21:22:54.54ID:KFrfmR/A
>>117
そうか?式指向でC系のシンタックスっていったら真っ先にRustが頭に浮かんだが
別に不格好とも無駄に記述量が多いとも感じないが…
そもそもC系の時点で何指向だろうが関数型と比べると記述量は少し多くなるものだし…
C系を式指向にしたところでそんなに変になるところは無いと思うんだが

別に全部C系にしろって言ってる訳じゃないんだ
依存型ありの言語にも1, 2個くらいC系があっても良いのにっ思ってるだけで…
0121デフォルトの名無しさん
垢版 |
2018/07/09(月) 21:40:53.57ID:wwylxN3+
現実は正しい
格付けの方が間違ってるんじゃねえか
リーマンショックみたいに
0122デフォルトの名無しさん
垢版 |
2018/07/09(月) 21:46:37.16ID:U1rzq4XN
あってもいいということはなくてもおかしくないという事だよ
言語設計者が依存型を普及させたいにしてもC系シンタックスを蛇蝎の如く嫌っている可能性だってある訳だ

そうでない君が依存型+C系シンタックスが普及に必要だと思うならそれは正しく良い意味で言い出しっぺの法則だね
0123デフォルトの名無しさん
垢版 |
2018/07/09(月) 21:56:18.25ID:b/biyW6c
>>120
rustは根っこのところは手続き型だからな
もっと式ベースを徹底していったらC系文法なんてどんどん余計なものになってくよ
0124デフォルトの名無しさん
垢版 |
2018/07/09(月) 22:16:18.81ID:wwylxN3+
式指向にしてブロックが値を返す
ブロックの中でreturnなどと書いたらブロックだけではなくメソッド全体が終了する

これSmalltalkとRubyでやったやつだ
0125デフォルトの名無しさん
垢版 |
2018/07/10(火) 02:09:51.97ID:PeZ34IEg
>>124
>ブロックの中でreturnなどと書いたらブロックだけではなくメソッド全体が終了する

他のほぼ全ての言語もそうじゃね?
0126デフォルトの名無しさん
垢版 |
2018/07/10(火) 06:52:59.20ID:TRoApVCG
やっとラムダが当たり前になったところだぞ
型理論の成果がプロダクト利用に広まるには時間がかかるんだよ
0127デフォルトの名無しさん
垢版 |
2018/07/10(火) 08:08:34.60ID:Iy+fy/d3
なんでJavaだけバージョンアップしなきゃだのセキュリティアップデートがどうの、大騒ぎしてんの?
JavaScriptなんて毎日のように新しいsyntaxぶち込まれてるし、
Kotlinがここまでアプデに振り回されてるのはあまり聞いたことない気がする

他でここまでセキュホがギャースカ言われてるのって、ポンコツペチプァとWordPressくらいじゃね?
Javaってそんな糞脆いの?
0131デフォルトの名無しさん
垢版 |
2018/07/10(火) 09:24:32.49ID:yvVWnyin
>>127
エンプラで使われまくってるからわずかな変更にも大騒ぎするというだけ
履歴書がフォーマット通りじゃないとか、書類に印鑑がないとか、工場作業員の歩く幅が守られてないとか、そういうので騒ぐと同じ
0132デフォルトの名無しさん
垢版 |
2018/07/10(火) 10:15:33.87ID:kqKjfHzH
javaというのは汲み取り式の便所みたいなもので、それに下水と近代的な便座を取り付けたのがkotlinだが、結局大便か小便かあるいはその両方をひり出す装置だということに気づかず、エレガントなクソの仕方について議論しているのが奴らだからな
いきなり外に出ろと言われても、オラクルにオツムを履かせてもらわないと不安で仕方ないんだよ
0136デフォルトの名無しさん
垢版 |
2018/07/10(火) 15:09:37.59ID:3uxGmvBi
クソ。。
0139デフォルトの名無しさん
垢版 |
2018/07/11(水) 04:26:30.97ID:0IxMzPaq
まーた例外とnullの話してらあ
0140デフォルトの名無しさん
垢版 |
2018/07/11(水) 08:37:33.70ID:dzRS/LEU
語るに足る次世代言語がrustしかないんだもの
0146デフォルトの名無しさん
垢版 |
2018/07/11(水) 15:56:04.73ID:hs+tHtH9
メモリ制御しなきゃいけない世界が無くなることはよしんばあっても当分先なのでメモリ制御できる言語の更新はあった方が皆幸せになると思うんだけどな
0147デフォルトの名無しさん
垢版 |
2018/07/11(水) 20:07:05.04ID:gDwkScTK
>>143
機能の整理って感じかなぁ。
0148デフォルトの名無しさん
垢版 |
2018/07/11(水) 20:48:11.63ID:v5sVc8KX
車輪に怒られるだろ
せいぜい定年後の手作りログハウスだな
0149デフォルトの名無しさん
垢版 |
2018/07/11(水) 21:20:11.21ID:5vCD+XSP
GCはメモリには効くけどリソースの速やかな解放には効かないから
using文とかtry-with-resources文とか必要になってくる

SwiftやRustとかはメモリはGCほどお手軽では無いけど
リソースがメモリ管理と同じ流れに乗るからカメラとかのAPI扱うときはむしろ楽になる

一長一短なところはある
0150デフォルトの名無しさん
垢版 |
2018/07/11(水) 21:33:18.06ID:cyuAyH9j
実際問題ログハウスで十分なところを最近の言語はウインチェスターハウスにしちゃってる感じ。
0151デフォルトの名無しさん
垢版 |
2018/07/11(水) 21:57:59.72ID:v5sVc8KX
ログハウスはお手軽という意味で例に出したんじゃないんですけど
0152デフォルトの名無しさん
垢版 |
2018/07/11(水) 22:05:01.91ID:vUSWO0TO
ログハウスで充分な仕事しかしてないのにウィンチェスターハウス作れる言語に目が向いてこんなスレに迷い込んでしまったの間違いでは
0153デフォルトの名無しさん
垢版 |
2018/07/11(水) 22:08:04.55ID:JQcRgwrO
ほんまに計算科学の次世代言語欲しいわ
Fortranさん仕様は悪く無いのにprint文書くだけで周りの計算結果変わったりしてコンパイラがガバガバすぎる
0154 ◆QZaw55cn4c
垢版 |
2018/07/11(水) 22:16:20.84ID:WXXvptbG
>>153
それはバグっているだけだと思いますが
0155デフォルトの名無しさん
垢版 |
2018/07/11(水) 22:22:20.98ID:JQcRgwrO
>>154
すぐバグるんだよな
gfortranで通ったし大丈夫だろって思ってたらifortでは通らなかったり、C++よりはるかにプログラマの責任が重いと思うわ
0156デフォルトの名無しさん
垢版 |
2018/07/12(木) 08:59:38.99ID:cbg7+Pwy
fortranは仕様より処理系依存の独自拡張が蔓延ってるイメージ
haskellも処理系拡張が基本みたいな所あるしそういうの好きになれない
0159デフォルトの名無しさん
垢版 |
2018/07/16(月) 12:28:43.44ID:0TUA3bfL
       ____
     /⌒  ⌒\
   /( ●)  (●)\
  /::::::⌒(__人__)⌒::::: \   次世代言語でやるお!
  |     |r┬-|     |
  \      `ー'´     /
0162デフォルトの名無しさん
垢版 |
2018/07/16(月) 17:26:19.10ID:sSti604i
rustはダメだな。
信者のウザさがhaskellと一緒だわ。
ああいう1機能を理解するのがめちゃくちゃ嬉しくなっちゃうような言語はダメだわ。
0164デフォルトの名無しさん
垢版 |
2018/07/16(月) 17:38:21.47ID:fgL4HgKC
リアルの知り合いじゃね
Rust信者には会ったことないが、Haskell信者のウザさは割とガチだな
0167デフォルトの名無しさん
垢版 |
2018/07/16(月) 19:11:15.57ID:AYwAzz0o
> 信者のウザさ
自分では到底習得出来ない言語を
楽しげに使いこなしてる事に対する嫉妬でしょ?
0168デフォルトの名無しさん
垢版 |
2018/07/16(月) 19:16:33.22ID:LulkQD8r
なんで所有権の移動という一度しか起こらない元値を破壊するものが印なしで
参照の借用渡しが&にしたんだろう
0169デフォルトの名無しさん
垢版 |
2018/07/16(月) 19:17:08.68ID:PkmPgg8A
リアルうざい知り合いはモチベーションに影響するからなあ
いくら物が良くても距離を置くのはそれはそれで賢い処世術
0171デフォルトの名無しさん
垢版 |
2018/07/16(月) 22:02:29.79ID:0TUA3bfL
あぁ、わからんでもない
言語じゃなくライブラリの話だが
仕事で使ってるライブラリを大して覚えようともせずVue.jsを猛プッシュしてくる中国人が、同僚に居て大嫌いになったわw
日本で流行ってる!ていうのもペチパーのCakePHP臭がして近寄りたくない
0172デフォルトの名無しさん
垢版 |
2018/07/16(月) 23:18:16.92ID:sSti604i
楽しげに使ってるというよりかは
楽しいと思い込もうと必死になってるといった印象だから嫌なんだよ。。
それ絶対楽じゃないよね、もっと簡単なやり方あるよねって話が一切通じなくなるっていう。。
0174デフォルトの名無しさん
垢版 |
2018/07/17(火) 00:27:27.23ID:hR326+dd
rustの狂信者なんて5chですら見たことないけど
0175デフォルトの名無しさん
垢版 |
2018/07/17(火) 00:31:27.59ID:c2JpqyiJ
>>168
C/C++の&演算子と仕様を合わせただけだろ
仮に借用に&を使わない場合はどうするのが良いと思うわけ?

あと「元値を破壊」ってどう言うこと?
「移動」と「破壊」を同義として使ってるの?
0176デフォルトの名無しさん
垢版 |
2018/07/17(火) 00:39:08.48ID:A75xOI8y
rust使うくらいなら何を使用しますか?
0178デフォルトの名無しさん
垢版 |
2018/07/17(火) 00:59:45.92ID:c2JpqyiJ
>>172
Haskellに対してならある程度は同意する
でも、Rustに対しては同意できないな
メモリ管理を自力でするのではなくコンパイラに任せる
メモリリークは自力でデバッグして解決するのではなく
コンパイラに詳細なエラー情報を表示して解決を手伝ってもらう
コンパイルが通ればメモリリークが無いことが保証される
きちんと楽で簡単になってるじゃん
GCの無い言語であれより楽で簡単にメモリ管理を行う方法を俺は知らない
知ってたら教えてほしい
0179デフォルトの名無しさん
垢版 |
2018/07/17(火) 01:07:36.30ID:+XvdRidc
>>178
半ば本気で言うが c++ で生ポインタ使わなければ概ね実現できるんじゃないか
「〜すれば」は(しないこともできちゃうから)ダメとか、
その場合の効率はどうなんだとか議論の余地はあるだろうけど
0180デフォルトの名無しさん
垢版 |
2018/07/17(火) 01:50:03.11ID:BJF1Zhqz
GCが有っても、不要になったデータは破壊される
ただしその事実が隠蔽される

Haskellでもデータは破壊され、隠蔽される
もし隠蔽しなかったら、破壊的代入禁止という無理ゲーがもっと簡単になるよね
だからRustはGCをやめ、隠蔽するのをやめた
0181デフォルトの名無しさん
垢版 |
2018/07/17(火) 07:16:12.90ID:2OjPLMsJ
破壊的代入禁止が無理ゲーってどこのドカタ星の話だよ
Rust使ってると脳が破壊されるのかな?
0183デフォルトの名無しさん
垢版 |
2018/07/17(火) 11:05:08.67ID:hR326+dd
そんな旧約聖書にだって書かれているようなことは議論の余地もない
0184デフォルトの名無しさん
垢版 |
2018/07/17(火) 12:00:50.30ID:6bm5oNFX
rustは次世代言語の逆で、幼児退行言語。
rustの所有権は、赤ん坊のおしゃぶりと同じ。
おなかすいたらGCおかあさんのおっぱい吸えばいいのに
いつもおしゃぶりを握っていないと不安になるだけ。
0185デフォルトの名無しさん
垢版 |
2018/07/17(火) 12:29:27.79ID:vHkWfwEU
不可抗力的にお母さんのおっぱいが出ない(パフォーマンス上制約のある)現場はどうするのか
幼児退行を悪い事として述べる為におしゃぶりという例を用いているのに、良いものとしておっぱいを挙げているので幼児退行と非幼児退行の良し悪し比較がおしゃぶりとおっぱいの比較になりレスの中で批判の比喩が統一されていない

何かに例えてもふわっとしか批判できないのにそれを通り越して例えに統一感がない無意味さの塊みたいなレス
0189デフォルトの名無しさん
垢版 |
2018/07/17(火) 15:13:35.79ID:g4tBIWtL
おっぱい(GC)で十分なのに、実際は効果のない何かを手で握ってないと不安な幼児退行ってことだろ
おしゃぶりじゃなくてガラガラって方が例えとして正しいと思うが

Rustが幼児退行言語ってことには激しく同意する
もうちょい踏み込むとアダルトチルドレン言語か?
ママのおっぱい(GC)には頼りたくないけどガラガラ握ってないと不安なクソガキメンタル
0190デフォルトの名無しさん
垢版 |
2018/07/17(火) 15:20:19.98ID:Xr+5nhkx
スレッドセーフなARCと
シングルスレッド専用ARCと
mark&sweepのようなもの
を使い分けたい=宣言したいという需要がとても強い

どう強いかっていうと、int型とdouble型とstring型を宣言したい需要と同じ種類の強さ
0192デフォルトの名無しさん
垢版 |
2018/07/17(火) 15:29:20.45ID:g4tBIWtL
ガラガラ握り続けてないと不安で不安で仕方ないRustちゃん
巡回参照を持てない時点で使い物にならない言語なんだよなあ
0193デフォルトの名無しさん
垢版 |
2018/07/17(火) 17:22:24.01ID:hR326+dd
巡回ねぇ
0194デフォルトの名無しさん
垢版 |
2018/07/17(火) 18:02:40.72ID:boY3/Xbc
どのcpuでもinterlockedなインクリメントやデクリメントがあるから、
よほどコア数大きくない限りそんなに違いでないのでは?
測ってないけど。

>>スレッドセーフなarcとシングルスレッド専用のarc
0198デフォルトの名無しさん
垢版 |
2018/07/17(火) 19:11:52.22ID:/YoZRf2z
rustみたいな言語が一般に広まっても
結局無理やりコンパイル通すためにRefCell,unsafe使いまくりのクソコードが
蔓延するだけなんだよね。
「コンパイル通れば安全」とかね、プログラムのバグの多くはそんなところにはない。
0200デフォルトの名無しさん
垢版 |
2018/07/17(火) 19:49:51.65ID:llJWBlJL
まあRustなんてやってる奴は、
悪いこと言わないからCやC++やってろってこった
0201デフォルトの名無しさん
垢版 |
2018/07/17(火) 20:03:03.78ID:hR326+dd
どんな現場にいたら >>198 みたいな歪んだ考えをもつんだ?
気の毒すぎるだろ
0202デフォルトの名無しさん
垢版 |
2018/07/17(火) 20:27:09.02ID:anKKTTWb
>>175
デフォルト借用

破壊というと御幣があるが、C++の仕様をいうならなおさら
auto_ptrへの所有権移動で
=だけで移動するのがわかりにくいからって非推奨になった経緯がある
0204デフォルトの名無しさん
垢版 |
2018/07/17(火) 21:45:45.87ID:Xr+5nhkx
>>198
動的言語でできることはすべて静的言語でもできる
この性質により、お前らが気に食わないコードでもコンパイルが通る

RefCellはコンパイル時ではなく実行時にborrowチェックしているようだな
まるで動的言語のようだ
0205デフォルトの名無しさん
垢版 |
2018/07/17(火) 21:51:32.49ID:c2JpqyiJ
>>202
デフォルト借用なら移動の方はどんな演算子orキーワードを導入するの?

>auto_ptrへの所有権移動で
>=だけで移動するのがわかりにくいからって非推奨になった経緯がある
それはC/C++の=はもともとコピーのセマンティクスを持つから移動に変えたら分かりにくいって事情があったからでしょ?
RustはCとの互換を捨ててるからCのセマンティクスの影響は受けない
でも、Rustは互換は捨ててもCとの親和性は欲しいという都合(ワガママとも言える)があるから
Rustの参照(借用)はC/C++の参照と似たようなセマンティクスになる&で妥当だと思うけど?
C++とRustのコピー・移動・参照(借用)の方法を整理すると↓になる

C++
コピー : =
移動 : std::move()
参照 : &

Rust
コピー : Copyトレイト
移動 : =
参照(借用) : &
0207デフォルトの名無しさん
垢版 |
2018/07/17(火) 22:14:55.31ID:anKKTTWb
C++ユーザー取り込むために文法にせてるのに
肝心のところでC++ユーザーが混乱するじゃないか…
どうせ=で移動したって参照わたしてるんだから&の意味がズレてる

所有権の移動という重要なできごとにこそ別途印がつくべきだった
0208デフォルトの名無しさん
垢版 |
2018/07/17(火) 22:18:19.09ID:c2JpqyiJ
>>179
>半ば本気で言うが c++ で生ポインタ使わなければ概ね実現できるんじゃないか
出来ると思うよ
でも、C++はRustよりもさらに複雑怪奇な仕様で使いづらい
C++のスマートポインタは正しい使い方をすればRustに負けず劣らず優れてるけど
それは、同程度に優れているだけであってRustより優れているとは思わない

あと、少し話が変わるけど実はRustの最も優れているところは
所有権・借用・ライフタイムの概念よりもエラーハンドリングだと思ってる
あのResult型とErrorトレイト・Fromトレイトとtry!マクロ(?演算子)を使用した
エラーハンドリングの方法は個人的には感動するレベルの代物だった
今後の次世代言語のエラーハンドリングは全てあれをベースに発展させていくべきだと思うほど気に入っている
0209デフォルトの名無しさん
垢版 |
2018/07/17(火) 22:28:43.55ID:c2JpqyiJ
>>207
>どうせ=で移動したって参照わたしてるんだから
あれ?それって仕様として決まってるんだっけ?
コンパイラの最適化の結果としてそうなるってだけじゃなかったっけ?

>>所有権の移動という重要なできごとにこそ別途印がつくべきだった
いや、だからその移動に何の印を付けるのがいいと思ってるの?
俺は借用には&が妥当だと思うとは言ってるけどベストだとは言ってないじゃん
ベターな代替え案があるなら俺だって意見を変えるよ
0211デフォルトの名無しさん
垢版 |
2018/07/17(火) 23:26:02.33ID:anKKTTWb
Rustも=でコピーのことがあるから余計ややこしい
let p = q ってかいてあってqがその後も使いまわせるかぱっと見わからんとか
ポインタっぽく普段の=は参照渡しで&が所有権移動にすりゃよかったとおもう
0212デフォルトの名無しさん
垢版 |
2018/07/17(火) 23:59:18.30ID:ztKpQtDs
スレチなんでちょっとだけ、C++は別に複雑では無いよ
プリプロセッサは氏んだほうがいいけど
0213211
垢版 |
2018/07/18(水) 00:26:29.77ID:mEKlqXRd
書いてて初めて気が付いた
実際に触ったことないから想像で書いてるんだが

>let p = q ってかいてあってqがその後も使いまわせるかぱっと見わからん

ほんとにこういう仕様なのか
使いづらすぎんかこれ?
0214デフォルトの名無しさん
垢版 |
2018/07/18(水) 00:39:34.50ID:eCPOxZU7
使い回せるかどうかはCloneトレイト実装してるかどうかに依存する
つまり見た目ではわからない

まあそもそも古い変数を変なとこで使い回す設計って普通にバグの元だし
ぱっと見てコピーかムーブか分かるかどうかが重要かと言われると確かに怪しい
ぱっと見で区別が必要なコード書くなって話だな
0216デフォルトの名無しさん
垢版 |
2018/07/18(水) 01:07:18.74ID:oqdCTGqL
使い回せるかどうかは、ぱっと見た時ではなく、コンパイル時にわかる
ぱっと見てわかるならコンパイラいらねえよ
■ このスレッドは過去ログ倉庫に格納されています

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