次世代言語10[Rust Swift TypeScript Dart]

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2018/04/25(水) 07:02:27.60ID:OmWDt0SE
スレタイ以外の言語もok

前スレ
次世代言語9[Haskell Rust Kotlin TypeScript Dart]
http://mevius.5ch.net/test/read.cgi/tech/1520298555/
2018/05/03(木) 23:03:41.88ID:AfyjFEfn
goのGCと同じものをC++で実装できないのかな
C++のGCが優秀にならないかな
そういう意味
383デフォルトの名無しさん
垢版 |
2018/05/03(木) 23:19:27.01ID:nk+G1gQG
やっぱり意味わからん。
その場合の主語は誰よ?
2018/05/03(木) 23:47:35.35ID:oP7lbF46
>>382
C++のGCって一体なにを指しているのだろう。
2018/05/04(金) 00:00:41.82ID:LrVtGqlb
やっぱここにいる奴は馬鹿ばっかりなんだな。
2018/05/04(金) 00:17:24.19ID:/D8HsFql
C++のGC……?
2018/05/04(金) 00:21:24.66ID:CL+nFZXX
>>383
次世代の誰かだろ
正確な予知はできない
2018/05/04(金) 00:51:59.59ID:/D8HsFql
あーもうめちゃくちゃだよ
2018/05/04(金) 01:35:42.99ID:63fCyROx
一方賢い俺はだいぶ前にNGした
2018/05/04(金) 05:56:35.74ID:zosHXKIm
C++でGCとか言うとバットマンのコスプレしたハーブ・サッターにビンタされるらしいぞ
2018/05/04(金) 06:17:07.59ID:E+YYG/ag
きっとスマートポインタなんかじゃやだもんって意味かと思いました。
2018/05/04(金) 10:09:56.44ID:VQ//CMaE
極めて大きな最適化の自由度とはなんだったのか
2018/05/04(金) 10:34:38.24ID:+ni+4ZPZ
>>392
メモリアドレスが抽象化されてれば、実行時の状況や統計情報に基づいたメモリレイアウトの最適化ができるね
理論的には、一緒に使われるものをメモリ上で近くに置いたりしてキャッシュヒット率を上げたりできる
2018/05/04(金) 11:25:26.68ID:VQ//CMaE
>>393
それは抽象データ型を定義できる言語ならどれでも可能か
それともC++やRustでは不可能か
これが問題だ
2018/05/04(金) 14:10:07.69ID:51fiRXRv
この知ったかぶり
抽象データ型なんか関係ないだろ
2018/05/04(金) 15:02:25.96ID:ZqOHI6SP
>>393
ってもそれ空理空論であって、
x[i,j,k] みたいな配列のメモリレイアウトをアクセスパターンから
決めるという単純な処理ですらどの処理系にも実装の予定すらないだろう

「c/c++では有能なプログラマがちゃんと判断して書くから最適な結果が得られる可能性が高い」
という言説の方がまだ現実的
2018/05/04(金) 15:04:28.49ID:ngnuzOEt
>>396
単純に隙間を詰めるだけなら普通にやってるし、それだけでもメモリのアクセス効率や利用効率は改善するよ
2018/05/04(金) 15:05:37.17ID:ZqOHI6SP
>>397
それアクセスパターンと関係ないでしょ
話通じてないな
2018/05/04(金) 15:09:57.46ID:ZqOHI6SP
アクセスパターンからの最適化というのは、

巨大な配列だけどアクセスされるのはごく一部
→スパース配列を用いる

2次元で同じyについて近しいxで連続してアクセスされることが多い
→ cでいう v[y][x] というように同じy座標のものを連続して並べる

こういうこと
2018/05/04(金) 15:12:34.97ID:ZqOHI6SP
実装が隠蔽されていればそういう最適化の自動化が可能だという>>393に対して、
それはそうだが絵に描いた餅過ぎると否定的なことを言ったのが>>396
以上
2018/05/04(金) 15:24:22.35ID:51fiRXRv
ヒープの話から来てるからあくまでメモリアロケートした単位での最適化と考えるべきでしょ
話を拡大解釈して通じてないのはお前だと思う
2018/05/04(金) 15:40:45.66ID:8dzo215M
>>401
393をそう読むのなら話通じないな
別にお前が無違ってると主張する気は無いよ
思想と言論の自由は認めるから黙れとも言わないし
2018/05/04(金) 15:45:30.86ID:8dzo215M
あ、いや俺が間違ってる気がしてきた
コンパクションで並べるとかいう話か

それでもやっぱり
>>396
>「c/c++では有能なプログラマがちゃんと判断して書くから最適な結果が得られる可能性が高い」
>という言説の方がまだ現実的

だと思う
2018/05/04(金) 17:35:05.26ID:ngnuzOEt
で、有能なC++プログラマはヒープの断片化をどうやって回避するの?
一般的な回避策としてはまとめて静的に確保するわけだけど、それだとRAII的な方法論を否定してることになるよね
2018/05/04(金) 17:41:04.90ID:VQ//CMaE
生ポインタをprivateメンバーにすれば再配置できるんだろ
2018/05/04(金) 18:45:44.08ID:VQ//CMaE
そもそもRAIIを肯定するのも否定するのもC++プログラマの自由だ
この自由を尊重すれば、極めて大きな最適化の自由度はC++にもあるんじゃないか
自由を奪ったら最適化の自由度もなくなるのは当たり前だ
2018/05/04(金) 18:55:41.39ID:/D8HsFql
C++は何も縛らないからなんでも出来る理論本当に嫌い
2018/05/04(金) 19:00:50.09ID:ngnuzOEt
縛ったほうが最適化の自由度は上がる
C/C++はポインタのせいで配列アクセスの並列化がやりづらいのは有名な話だ
2018/05/04(金) 19:11:43.01ID:VQ//CMaE
>>407
じゃあ逆の理論はなんなの
一長一短理論
どっちもどっち理論かね
2018/05/04(金) 19:12:50.22ID:/D8HsFql
>>409
>>408
411デフォルトの名無しさん
垢版 |
2018/05/04(金) 19:24:33.12ID:HyF2shia
GCは、あるプログラマにとっては仕事を単純にしてくれるが、別のプログラマにとっては仕事を複雑にする要因になるという特性があるんだよね
2018/05/04(金) 20:34:01.38ID:+h39vGOl
>>411
プログラマに、というよりは作ろうとする対象によってではないかな。
2018/05/04(金) 22:10:23.06ID:VQ//CMaE
「設定より規約」で複雑な設定を不要にするために規約で縛って単純にすることはある
最適化とは関係ない
2018/05/04(金) 22:27:54.24ID:U2Bct8CT
>>413
全然レイヤが違うぞ…はぁ
2018/05/04(金) 22:29:07.68ID:/D8HsFql
もういいや
2018/05/05(土) 00:07:46.07ID:3M7DBZHK
>>414
全然違うレイヤでしか評価されない概念だからね

型宣言を省略して単純にした言語はあまり評価されない
だからC++のように複雑な言語がずっと勝ち続ける
2018/05/05(土) 09:26:04.08ID:0zR7mPRl
言語レベルでは縛りを減らして、ツールもしくはプロジェクト毎の規約で矯正する方が成功してる印象。
2018/05/05(土) 12:36:15.72ID:Ptn/YTVe
Ruby使いはなんでもRails基準で話するから困惑させられるわ。

規約で縛るのと、設定させるのはまた別の次元の話な気がする。

規約で縛った上でさらに明示的に設定させるなんて思想もあるし、
明示的に設定すること、と言う一文すら大きく捉えたら「規約」だと思うんだが。

misra然り、規約で担保される部分も否定はしないけど、
そんなこと考えなくても言語レベルで無茶は出来ないってのは、結構有益だと思うよ。
goが他の言語だと警告で済ますものをコンパイルエラーにしてたりとか。
2018/05/05(土) 14:40:21.15ID:0zR7mPRl
それはわかる。
ただ「言語レベルで無茶させない」機能を実装するために「言語実装が無茶してる」
っていう本末転倒レベルのコンパイラが増えてる。
2018/05/05(土) 14:54:28.61ID:fkw9D7UX
何かを実装しやすくする為の機能、とバグを減らすための安全装置としての機能、と分類した時に後者が気に入らんて訳だな。
古いタイプのハカー思想的にはそうだろうね。
まあでも人間にコード書かせてる内は後者を充実させて行くしか無いでしょう。
2018/05/05(土) 17:40:15.09ID:wfyrkg3u
バグを減らすための機能はコードを書きやすくするための機能でもあって欲しい。Fortranはその辺のバランス感覚が地味に良い
2018/05/05(土) 18:31:47.37ID:sJdk0i7H
[][][] [[[ ] X_[[[ [] ][ [] ][][[[]
423デフォルトの名無しさん
垢版 |
2018/05/05(土) 22:21:49.30ID:g4wn0nIy
このスレ的にDart 2はどうなの?
2018/05/05(土) 22:28:11.15ID:J0iT62yj
>>423
哀れな水子霊
供養してあげよう
2018/05/06(日) 11:13:25.80ID:UdK4FK7I
>>420
半分だけはその通り。
ただセキュリティーについても結局は効率や速度を要求されるからって話なんだよ。
安全のためにって効率を落とすようなルールを作っておいて
ノルマは下げないみたいな現場ではセキュリティーホールつくようなハックが流行るってこと。
ルールを厳しくして逆に流出なんてパターンは結局これ。
2018/05/06(日) 11:29:16.72ID:EZJKrplU
悪事の限りを尽くしてきたサイコパスが
効率悪化だけは許さない真面目キャラになるのなんでだろう
2018/05/06(日) 12:54:13.10ID:BpvGgdyJ
安全性重視と言えば聞こえはいいが
やってることはWarningをErrorにしてるだけだからな
2018/05/06(日) 13:00:40.56ID:5SuvHbqD
>>427
明確にエラーなら、それを前提にした最適化ができる
2018/05/06(日) 13:12:21.81ID:4/stHYd4
まあ正直Worningでいいとは思う
2018/05/06(日) 13:18:55.75ID:+3dRclkW
>>425
unsafeなりなんなりあるかと。
効率や速度というのは、安定動作している事が確実に出来てからやっとテーブルに上げることができる話題であって、
それで落ちる効率なんてのは最初からサボってた証拠とみなす方が多いかと思うよ。

ルールを厳しくして結局流出ってのは、また別の尺度かと。
流出したとしても、それは理由もはっきりさせられるし、なによりソフトウエアの瑕疵ではなくて運用の問題の話になってくる。
2018/05/06(日) 14:32:39.98ID:7acvvhvM
セキュリティーについての効率化云々とか、半可通だなあとしか言えんわ…
2018/05/06(日) 15:54:07.22ID:cxBuJYdg
レイヤの上書きし続けるのやめろ
2018/05/06(日) 15:58:41.42ID:+3dRclkW
いくらコンパイラが怒らないからと言え、セキュリティーホールを突くようなハックとやらをしてたら流石にコードレビューではねるんじゃね?
どういうコードかイマイチ想像がついてないけど。
インラインアセンブラが禁止されてるからハンドアセンブルしたコードか入ってるconst char[]を無理矢理呼び出すとかかな。

単純にそのプロジェクトで使ってる静的解析が誤認するようにコードを書く事を、静的解析のセキュリティーホールと勘違いしてるのか、
それとも、バッファオーバーランしないようにするにあたって、根本的に長さを指定できる関数を使わずに付け焼き刃でバッファにクソ長い配列使うみたいなコードなのか(でもこれは静的解析で怒られそう)

一体何が、コーディングの上でセキュリティーホールを突くようなハックなんだろう?
ピアレビューがあれば瞬殺されて終わりな気もするし。
2018/05/06(日) 16:29:24.39ID:3zhAqmJH
>>421
Fortranって現役なんか?聞いたことないが
2018/05/06(日) 16:32:16.64ID:YMV7ENjt
>>434
現役だよ
2018/05/06(日) 16:36:08.57ID:T0X5noxd
スパコンでは現役。計算物理屋とかFORTRANしか書けないおっさんも居るしね。
まあ数値計算系のコード書いてる連中なんてgitも知らなかったりするレベルで
超絶的に遅れてるから意見なんて無視していいよ
2018/05/06(日) 16:41:56.05ID:4/stHYd4
>>434
現役かと言われたら、現状数値解析以外では老害しか使っとらん感じで口ごもっちゃうけど、そんな状況に反して最新の言語仕様は結構いい。そして老害はFortranの良い仕様は使っとらん
ある意味逆に次世代言語感あると思う
2018/05/06(日) 17:13:53.77ID:+3dRclkW
ベンダーがきっちり面倒見てるのも大きいわな。Fortranは。
老害と呼ばれるコードが生き残れるのも、新しいものがサポートされていくのも。
2018/05/06(日) 18:05:19.44ID:4/stHYd4
まあ新しいもののサポートは遅いがな
2018/05/06(日) 18:53:07.67ID:UdK4FK7I
まあ運用の問題と言えばそうだけどね。
実際どこぞのrustコードなんて結局unsafe丸がこみコードになってるって話だよ。
レビュアーがまともならってのもその通りだが
P○zyさんとことか有名どこでもそんなもんですよ。
2018/05/06(日) 19:31:39.25ID:9CUhRDV/
}]] [[《_["[[]]" 〈[]》》 [][][]0,1》》〈〉 [] } } "B,V,0%%%,*1BVLO,SASA1`}}//%\\0,1\"VL"\
2018/05/07(月) 12:03:19.49ID:Go6Qgpic
>>440
そのP○zyさんのコードはどこで見れるの?
2018/05/07(月) 17:37:45.62ID:aRQ7vpNn
Fortran現役ってすげーな。
なんか便利な構文あるの?
スペースがなくても構文が認識するって凄いね。何というか分野によって現役だったりするし、web系とか組み込み系とか分野毎に次世代を考えたほうが良いのかも
2018/05/07(月) 18:29:43.67ID:Si7Pqr9d
数値計算の新しいアルゴリズムってあるの?

動画の圧縮とかだったらどんどん新しくなってるけど
2018/05/07(月) 18:42:27.46ID:4LWU/9Ql
アルゴリズムというよりは非プログラマが数学物理をプログラムに落とし込みやすいって所じゃないか?
統計メインの生物系なんかはもうRやPythonに移ってるけど
2018/05/07(月) 21:30:21.40ID:u0xzmUnv
>>443
まあ、分野についての言及は必要だろうね。
447デフォルトの名無しさん
垢版 |
2018/05/07(月) 22:27:02.76ID:9toRjaak
よし、じゃあワシがwebの代表として次世代言語はrustであることをここに宣言しよう
2018/05/07(月) 23:32:28.33ID:b+1hN3YL
今phpのlaravelしててミドルウェアとかバリデーションとかルーターとかマイグレーションとか
それ自体はフレームワークの機能なんだけど言語仕様としても使えそうなのがチラホラあるけど
こういうの言語に使われることないんかな?
2018/05/07(月) 23:45:44.05ID:eqjeSWEf
>442
はいよ
http://tanakh.jp/posts/2016-12-20-rust-pezy-sc.html
2018/05/08(火) 00:32:28.71ID:kgnxB5OH
一元論が無理なら八百万って極端すぎる
二刀流くらいがちょうどいい
2018/05/08(火) 07:49:53.07ID:BTpaOhWg
C++の置き換え言語としてRustには期待している。ただ構文がなんかうっとうしいなあ。
ruby風のラムダは気に入ってるが。
2018/05/08(火) 08:43:30.21ID:lO+5Uui0
>>445
Numpy相当のベクトル記述が出来るたった一つのコンパイル言語。それがFortran
2018/05/08(火) 10:01:01.47ID:JvzvEXdE
>>452
確かにあれは書きやすいし速い
GPGPUでの(それをラップしたライブラリでの)行列演算に対するアドバンテージって何かあるのか?
分岐がモリモリ入ってくる場合くらいしか思いつかないが
2018/05/08(火) 13:34:11.30ID:k5VrHriK
>>453
なんのことを指しているんだ?
2018/05/08(火) 17:08:07.13ID:I+Jt0Kav
>>452
現実のFortranプログラミングは大量に宣言したスカラー配列を添字でゴリゴリ回すだけだけどな
行列やベクトルの演算のセマンティクスなんか一切残らん
2018/05/09(水) 01:16:05.28ID:PEulJP5b
haskellの方がCより速いってさ

https://superstrings.io/once-more-on-haskell-vs-c-performance-a54498bfa91
2018/05/09(水) 02:14:38.03ID:0YDcqAhS
>>456
https://superstrings.io/once-more-on-haskell-vs-c-performance-a54498bfa91f
2018/05/09(水) 02:26:18.12ID:bn/AH8fd
なんですぐばれるウソをつくのだろう?
2018/05/09(水) 02:35:21.53ID:hrOQbIqv
>>457
すばらしいね。
Cのコードに
__attribute__((optimize("unroll-loops")))
付けると100倍早いけどw
あと、手元の環境で gcc は何故か -O だけunroll付けたのと同様に早くて -O2 以上は遅かった。
バグと言うべきなのかな。
2018/05/09(水) 03:11:33.85ID:0bpmHxx0
>>453
コンパイラのやる気さえあれば、ライブラリでは不可能な最適化なんていくらでもでできるだろ
実際にやってるかはしらん
2018/05/09(水) 07:10:29.94ID:UxragvBK
乱数生成が遅いってどこかで見たような、Haskell
2018/05/09(水) 07:59:31.19ID:2PdkdhLd
>>461
それって言語の問題ではなくコンパイラの実装の問題?
それとも言語仕様として計算量の大きい生成アルゴリズムが規定されてたりするんだっけ?
2018/05/09(水) 08:01:55.30ID:2PdkdhLd
あ、ごめん。ライブラリの乱数生成の関数を呼んだらということかと思ったけど、自分で乱数生成の処理を書いたらということかな。
2018/05/09(水) 08:15:55.42ID:UxragvBK
>>463
ごめん、そこまで詳しくないので、誰か補足を。記憶だと前者だったかな。
2018/05/09(水) 08:17:13.45ID:yFt+gB3J
https://qiita.com/philopon/items/8f647fc8dafe66b7381b

この辺の話?
2018/05/09(水) 09:54:11.86ID:X/W01mab
>>458
せっかくコンパイラ作ったんだからみたいな貧乏性だな
一方、富豪的プログラマはインタプリタを使う
2018/05/09(水) 21:36:31.89ID:AJJ2h/PO
なんか知らんが定期的にCより速いって話が出てくるな。
高級かつランタイム速度が落ちないってなんかおかしいとか思わないもんなのかな。
2018/05/09(水) 22:20:41.60ID:dqSR3cl1
さ、最適化をダイナミックに出来るから……
2018/05/09(水) 23:00:53.08ID:hrOQbIqv
理想を追求する精神は忘れなくて良いやろ
470デフォルトの名無しさん
垢版 |
2018/05/10(木) 02:12:17.66ID:FhKx4uhS
高級品だと遅くなるならC++がCより速くなることはないんだろうなあ
フムフム
2018/05/10(木) 08:10:24.35ID:WcF1ShgP
実際、もしもコードを書く人がコンパイラを書いた人よりも賢いならばCの方が早 速いww
2018/05/10(木) 09:54:42.57ID:+xjpfXr5
コンパイラの最適化能力的には今でもFortranが頭ひとつ抜けてるんだっけ
2018/05/10(木) 10:07:40.42ID:sqBEyANZ
async awaitの存在のお陰でTypeScriptが使いやすさで一歩先言ってる感あるな。
VasualStudioでもサポートしてるんだよね。mac版試してみたい
2018/05/10(木) 15:49:44.61ID:TSTj28YJ
>>472
どうせバックエンド同じなので、C言語でもpragmaとattribute駆使すればFortranと同じになるはず
2018/05/10(木) 16:11:32.31ID:gErYAeAK
>>474
しんどー
2018/05/10(木) 16:20:28.17ID:VgJxGkPJ
rebuildfmで聞いたがswiftは機械学習との親和性を高める方向でラトナーは頑張ってるみたいね。
2018/05/11(金) 00:25:42.85ID:ew48BEmx
にむにむ
2018/05/11(金) 11:38:41.21ID:Bitu5gZ+
フォートランはスタックフレームを使わないから早いらしい
2018/05/11(金) 19:21:18.09ID:BkhZdaXW
>>467
昔々 Java の方が C++ より速いなんて話もあった。
JIT で速くなるとか。

しかしC++だったとしてもややこしい機能を使わずC言語風に作って最適化掛かったらお終いのような気がしてならない。
480デフォルトの名無しさん
垢版 |
2018/05/11(金) 20:24:29.02ID:ew48BEmx
Cはポインタが自由すぎて最適化難しいとはよく聞く
2018/05/11(金) 21:16:38.36ID:mlwOVON7
Javaの場合はいくら局所的に速くなっても、JITそのものにかかる時間だったり
あるいは膨大なロード時間を計測に含めてしまうと台無しだからなあ
もちろん速いとアピールしたいベンチマークではその辺が含まれないようにするし
遅いとアピールしたい場合は
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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