スレタイ以外の言語もok
前スレ
次世代言語18 Go Rust Elixir Kotlin TypeScript (実質20)
https://mevius.5ch.net/test/read.cgi/tech/1569866283/
次世代言語21 Go Nim Rust Swift Kotlin TypeScript
■ このスレッドは過去ログ倉庫に格納されています
2020/04/19(日) 15:06:02.92ID:jAOW5aqE
536デフォルトの名無しさん
2021/02/28(日) 21:57:01.28ID:MOb8c/K3 Vlangみたいに凄い事をやりたいというタイプではなくやらない事を選ぶタイプなので悪い方向に転がっても狼少年にはならんと思う
537デフォルトの名無しさん
2021/03/02(火) 22:28:04.28ID:xkSaUBtO どうせなら借用も認めないとかとことん尖らせたらいいと思う。
538デフォルトの名無しさん
2021/03/02(火) 23:12:40.45ID:3dhTBaxS >>537
erlangとかアクターモデルの言語で良いのでは?
erlangとかアクターモデルの言語で良いのでは?
539デフォルトの名無しさん
2021/03/03(水) 08:42:43.27ID:mCX6K/+k ここのところDartが割といい言語じゃんってなってる。
クロスコンパイルできるようになったらGo並に使える気がするんだがなぁ。
Goでジェネリクスが使えるようになるのが先かな。
クロスコンパイルできるようになったらGo並に使える気がするんだがなぁ。
Goでジェネリクスが使えるようになるのが先かな。
540デフォルトの名無しさん
2021/03/03(水) 09:50:07.06ID:d6RCeNqz PowerFx大勝利!
541デフォルトの名無しさん
2021/03/03(水) 11:38:23.70ID:lsQqWTvf 借用を認めないみたいな意味の用語は「シェアードナッシング」でしょ
共有していないところでは副作用を認めるという発想はアクターモデルではあまり強調されなかった
共有していないところでは副作用を認めるという発想はアクターモデルではあまり強調されなかった
542デフォルトの名無しさん
2021/03/03(水) 12:46:08.86ID:Pm16geQl DartのNULL安全はまだ来ないのか
543デフォルトの名無しさん
2021/03/03(水) 18:31:04.85ID:9ncygIV6 null安全なんて言うほど安全じゃない
544デフォルトの名無しさん
2021/03/03(水) 18:32:42.97ID:+TqkcVy7 Go lang 2.0はよ
545デフォルトの名無しさん
2021/03/03(水) 19:00:19.95ID:vf+ENLg5 >>543
型無しのnullが危険すぎるだけだな。
型無しのnullが危険すぎるだけだな。
546デフォルトの名無しさん
2021/03/03(水) 20:39:48.06ID:9dLYGr/x でも型があるとgoのような悪夢に
547デフォルトの名無しさん
2021/03/04(木) 19:00:42.56ID:FwINCIAX DartのNULL安全が来たっぽい(Dart 2.12)
548デフォルトの名無しさん
2021/03/05(金) 00:10:29.44ID:ap8GROD4 記念してNULL安全日としようか
549デフォルトの名無しさん
2021/03/05(金) 11:27:53.31ID:6qFLuZG/ undefined「フフフ、nullの奴がやられおったか」
NaN「nullは我らの四天王のなかで最弱、面汚しよ」
-Inf「・・・」
フラッター2って誰が使ってんの?真顔でNULL安全でない言語はレガシーだと言われると
プッと笑い出しそうになる…
NaN「nullは我らの四天王のなかで最弱、面汚しよ」
-Inf「・・・」
フラッター2って誰が使ってんの?真顔でNULL安全でない言語はレガシーだと言われると
プッと笑い出しそうになる…
550デフォルトの名無しさん
2021/03/05(金) 11:40:40.39ID:7wZZkSrv ぬるぽ
551デフォルトの名無しさん
2021/03/05(金) 12:49:21.47ID:CPRmMLwG int型の値にもnullがあったら嫌だろ
それと64bitに移行してもまだ32bitのint型を使ってたらレガシーだろ
ライブラリの変更だけでできそうなことが、言語ごと作り直さないとできない設計がレガシーなんだ
それと64bitに移行してもまだ32bitのint型を使ってたらレガシーだろ
ライブラリの変更だけでできそうなことが、言語ごと作り直さないとできない設計がレガシーなんだ
552デフォルトの名無しさん
2021/03/05(金) 13:34:46.07ID:gVgFrLj8 いうほどnullで困ってない。
553デフォルトの名無しさん
2021/03/05(金) 15:42:14.78ID:VbRCEJsj 困るってよりループの中でチェックが無駄に繰り返されるのを防ぐのがオモヨ
で、ヌル限定で排除するより総てのプリミティブを範囲型にするほうがいいと思うんだけどね
整数でゼロだけ除けるんも範囲の内だし
で、ヌル限定で排除するより総てのプリミティブを範囲型にするほうがいいと思うんだけどね
整数でゼロだけ除けるんも範囲の内だし
554デフォルトの名無しさん
2021/03/05(金) 15:56:36.25ID:gVgFrLj8 心の底からどうでもいいと思う。くっだらないな。
555デフォルトの名無しさん
2021/03/05(金) 16:56:49.67ID:37/sJ5bt これが次世代について行けない奴の末路か
556デフォルトの名無しさん
2021/03/05(金) 16:57:24.94ID:0LRxSrSM まあDartのSound Null Safetyはネイティブコードにした時の実効速度アップ効果もあるし
557デフォルトの名無しさん
2021/03/05(金) 17:35:05.91ID:ozzHXY/d 全てのバグをコンパイル通す前に消し去りたい…というのは言いすぎだが
やりたいことはそういうことなんよね
決して自分の足を撃ち抜かないスーパーハカー様には無用の長物に見えることだろう
やりたいことはそういうことなんよね
決して自分の足を撃ち抜かないスーパーハカー様には無用の長物に見えることだろう
558デフォルトの名無しさん
2021/03/05(金) 18:26:31.58ID:gVgFrLj8 >>555
そんなしょっぱい機能で次世代ドヤとかやられてもw
そんなしょっぱい機能で次世代ドヤとかやられてもw
559デフォルトの名無しさん
2021/03/05(金) 18:27:21.92ID:gVgFrLj8 シンタックスによるバグなんてど素人だけだわ。
バグが発生するのはそんなところにはない。
バグが発生するのはそんなところにはない。
560デフォルトの名無しさん
2021/03/05(金) 18:48:33.41ID:EPnjm+FH そういったド素人のやるような些末なミスチェックがforgettableになるというのもメリットなんだけどな
規模がでかけりゃ可能性は少なからず上がるし、何より人間の頭の良さはそういう機能をどれだけ上手く使えるかにもあると思わない?
ただ確かにその機能があるというだけで次世代だと錦の御旗を振るのは少し難しくて、それをどれだけ使用者が気にせずいい感じに導入できたかも重要と思う
規模がでかけりゃ可能性は少なからず上がるし、何より人間の頭の良さはそういう機能をどれだけ上手く使えるかにもあると思わない?
ただ確かにその機能があるというだけで次世代だと錦の御旗を振るのは少し難しくて、それをどれだけ使用者が気にせずいい感じに導入できたかも重要と思う
561デフォルトの名無しさん
2021/03/05(金) 21:12:55.25ID:5RYmOCrl そもそも>>545の型無しのnullと>>551がなんのこと言ってんのかわからん。
>>545は動的型付けのnullのこと?
>>551は数値型のintがポインタ型のnullになることはないし、
option<int>ならpresentかabsentを表現するのにつかう。
それにnull safeな言語ってnon-zeroのときに最適化するだけでnoneの参照は普通のnullポインタ。
言語的には仕様かライブラリでnullableのハンドリングを工夫してるだけだから
既存の言語にも追加できる。javaも今やってる。
// まあ、アレは事あるごとに互換性維持したまま魔改造する常軌を逸した言語だが。
>>560
>些末なミスチェックがforgettable
対処としては漸進的型付けで早期エラーにするくらいかな。
最適化で実行前にエラーにできる場合もある。
TypeScriptが次世代かと言われると確かに違和感ある。js2/es4の方がまだ進んでる。
>>545は動的型付けのnullのこと?
>>551は数値型のintがポインタ型のnullになることはないし、
option<int>ならpresentかabsentを表現するのにつかう。
それにnull safeな言語ってnon-zeroのときに最適化するだけでnoneの参照は普通のnullポインタ。
言語的には仕様かライブラリでnullableのハンドリングを工夫してるだけだから
既存の言語にも追加できる。javaも今やってる。
// まあ、アレは事あるごとに互換性維持したまま魔改造する常軌を逸した言語だが。
>>560
>些末なミスチェックがforgettable
対処としては漸進的型付けで早期エラーにするくらいかな。
最適化で実行前にエラーにできる場合もある。
TypeScriptが次世代かと言われると確かに違和感ある。js2/es4の方がまだ進んでる。
562デフォルトの名無しさん
2021/03/06(土) 01:13:30.58ID:Tfz5lFd6 お前らnull safeの機能があって助かった〜なんてことが本当にあると思ってんの?
おめでてーな。結局考慮してない奴はそんな機能あってもつまづくよ。
それももっと酷い形でな。
おめでてーな。結局考慮してない奴はそんな機能あってもつまづくよ。
それももっと酷い形でな。
563デフォルトの名無しさん
2021/03/06(土) 01:32:39.74ID:DBO1vWCm null safeな言語は助かった〜みたいなことになる前に
コンパイラやIDEに文句言われるから
確かに助かった〜なんてことにはならないな
コンパイラやIDEに文句言われるから
確かに助かった〜なんてことにはならないな
564デフォルトの名無しさん
2021/03/06(土) 01:51:36.56ID:4yCs4axt しぬる
565デフォルトの名無しさん
2021/03/06(土) 02:06:07.77ID:Y4U2Cfcl コーディング安全はほぼ関係ないつうのに
そこにこだわって文句垂れるクソw
そこにこだわって文句垂れるクソw
566デフォルトの名無しさん
2021/03/06(土) 03:18:37.29ID:jOZnXzPo V言語にまだ期待している奴がいるってマジ?ガワだけGoっぽいCだぞあれは
clayやcycloneやbitCやらが色々試行錯誤して、何とか生き残ったrustがようやくそれなりの妥当性を見出した「GC無しで安全なメモリ管理」を
何の論文も書かずにWIPで放置しているのに「Rustのように安全」とかフカし続けている奴らだぞ
Cに毛が生えた程度の安全性を持った、Rustより謎な制約を課してきて、フカシた結果ASTも生成できずに最適化が使えない言語ができるぞ
clayやcycloneやbitCやらが色々試行錯誤して、何とか生き残ったrustがようやくそれなりの妥当性を見出した「GC無しで安全なメモリ管理」を
何の論文も書かずにWIPで放置しているのに「Rustのように安全」とかフカし続けている奴らだぞ
Cに毛が生えた程度の安全性を持った、Rustより謎な制約を課してきて、フカシた結果ASTも生成できずに最適化が使えない言語ができるぞ
567デフォルトの名無しさん
2021/03/06(土) 06:46:27.22ID:lBapLpDG だからVは詐欺だって言ったのに…
568デフォルトの名無しさん
2021/03/06(土) 07:46:02.04ID:E5Tw2kdh ガワがGoっぽいCならC2とZigがもっと素直に
569デフォルトの名無しさん
2021/03/06(土) 08:01:57.54ID:Tfz5lFd6 rustの安全性もたかが知れてるのでまあそんなとこだろ。
実際セキュリティー分野でrustを使う機運はほとんどない。
実際セキュリティー分野でrustを使う機運はほとんどない。
570デフォルトの名無しさん
2021/03/06(土) 08:05:43.60ID:E5Tw2kdh セキュリティ分野でRustほど低レイヤーな言語を使う必要がある場面がそもそもあるのか?
571デフォルトの名無しさん
2021/03/06(土) 08:54:36.63ID:YD4frn+e 1Passwordがバリバリ使ってますが
572デフォルトの名無しさん
2021/03/06(土) 13:25:12.62ID:bGzUu7RI573デフォルトの名無しさん
2021/03/06(土) 14:02:22.83ID:oEmAT3IB 型を命名規則に組み込んだ言語とかってないのかな
non primitive だと、さすがに明示的に書く必要あると思うけど、
primitive の宣言時にいちいち型書くのだるい
でも静的型付けは欲しい
non primitive だと、さすがに明示的に書く必要あると思うけど、
primitive の宣言時にいちいち型書くのだるい
でも静的型付けは欲しい
574デフォルトの名無しさん
2021/03/06(土) 14:07:01.49ID:tq2JBvn3 fortranの時にそれは捨てられた
575デフォルトの名無しさん
2021/03/06(土) 14:13:59.72ID:oEmAT3IB576デフォルトの名無しさん
2021/03/06(土) 14:42:16.25ID:XRYgvkNk >>575
IJKが整数型とかあったな・・・(遠い目)
IJKが整数型とかあったな・・・(遠い目)
577デフォルトの名無しさん
2021/03/06(土) 16:33:52.93ID:kirbXePv null 安全だとコンパイル時にエラーになってくれたりするので良いのではないか?
危険な部分は自分で敢て null を使うように書いた部分だけ。それも null チェックした後でしか
本来の型として扱えないようになってればコンパイル時にエラーになって結構安全。
危険な部分は自分で敢て null を使うように書いた部分だけ。それも null チェックした後でしか
本来の型として扱えないようになってればコンパイル時にエラーになって結構安全。
578デフォルトの名無しさん
2021/03/06(土) 16:34:37.52ID:kirbXePv あ、ごめん。リロードせずに書いてしまった。間に沢山の書き込みがorz
579デフォルトの名無しさん
2021/03/06(土) 16:43:07.04ID:BWZLcpxD >>573
初期値入れればたいてい推論で済むんじゃね?
初期値入れればたいてい推論で済むんじゃね?
580デフォルトの名無しさん
2021/03/06(土) 19:01:39.91ID:oEmAT3IB >>579
たし蟹
たし蟹
581デフォルトの名無しさん
2021/03/06(土) 21:08:31.03ID:Tfz5lFd6 >>577
馬鹿はとりあえず「汎用」にどこでも使えるように書くもんなんだよ。
そういう馬鹿に馬鹿と言う労力を抑えるために無駄なシンタックス入れて、
また馬鹿がそれに混乱して酷い状況になるっていうのを嫌というほど見てきたわけだが。
馬鹿はとりあえず「汎用」にどこでも使えるように書くもんなんだよ。
そういう馬鹿に馬鹿と言う労力を抑えるために無駄なシンタックス入れて、
また馬鹿がそれに混乱して酷い状況になるっていうのを嫌というほど見てきたわけだが。
582デフォルトの名無しさん
2021/03/06(土) 21:21:03.25ID:YD4frn+e いつもの人か
583デフォルトの名無しさん
2021/03/07(日) 01:28:00.90ID:j7St4ggd セキュリティー分野に明るいみたいだけど、最近のトレンド知ってたらそんな事いわないと思うんだけどな。
2020年度だけでUse After Freeがらみいくつあったんよ。
馬鹿に作れるものじゃなくなってるよ。
2020年度だけでUse After Freeがらみいくつあったんよ。
馬鹿に作れるものじゃなくなってるよ。
584デフォルトの名無しさん
2021/03/07(日) 14:06:58.16ID:Shd6OUrG XSS絡みか、ブラウザのバグじゃん。
お前らには関係ないわ。
お前らには関係ないわ。
585デフォルトの名無しさん
2021/03/07(日) 14:46:13.47ID:w/ds1TIt Rustが何でどう使われてるかわかったら、ブラウザのバグをどう解決したかわかるんじゃねえの?
586デフォルトの名無しさん
2021/03/07(日) 14:48:03.98ID:Vfc9MKsb587デフォルトの名無しさん
2021/03/07(日) 14:54:59.61ID:4VZYUHqt 機械を意識した具体的なのと表現力重視の抽象的なのの2つでええやろ
@Rust:GCレスながら比較的安全に低レイヤーをさわれる
AIdris2:依存型(型がファーストクラス)ありの線形型(Rustのアフィンの強いやつ)ありのHaskell
@Rust:GCレスながら比較的安全に低レイヤーをさわれる
AIdris2:依存型(型がファーストクラス)ありの線形型(Rustのアフィンの強いやつ)ありのHaskell
588デフォルトの名無しさん
2021/03/07(日) 15:25:04.07ID:7gy+NlG3 >>586
I,J,Kで始まる名前の変数は宣言せずに使うと整数型
宣言すれば他の型にもできるということで
暗黙の型変換があるので宣言してない変数Iに浮動小数点数を代入した場合
Iは整数型になり小数点以下は切り捨てられる
使うときも暗黙の型変換が起こるから切り捨てが起こったことに気づきにくい
ということだったような
I,J,Kで始まる名前の変数は宣言せずに使うと整数型
宣言すれば他の型にもできるということで
暗黙の型変換があるので宣言してない変数Iに浮動小数点数を代入した場合
Iは整数型になり小数点以下は切り捨てられる
使うときも暗黙の型変換が起こるから切り捨てが起こったことに気づきにくい
ということだったような
589デフォルトの名無しさん
2021/03/07(日) 23:58:15.04ID:TkByhUzl >>566
色々試行錯誤した中で一番最悪の結論がrustに思えるがな。
色々試行錯誤した中で一番最悪の結論がrustに思えるがな。
590デフォルトの名無しさん
2021/03/08(月) 00:13:09.24ID:YibNXnJO 結局いうほど安全性が求められてるのか?としか思わん。
本当に安全性を求めるならコンパイラに全てを押し付けることが有効かどうか真剣に考えた方が良いのだが、
どうもそういう方向ではないのだな。
結局何かに責任を押し付けたいだけでそれが一番わかりやすというところでコンパイラが
ターゲットにされているだけという茶番なんだわ。
本当に安全性を求めるならコンパイラに全てを押し付けることが有効かどうか真剣に考えた方が良いのだが、
どうもそういう方向ではないのだな。
結局何かに責任を押し付けたいだけでそれが一番わかりやすというところでコンパイラが
ターゲットにされているだけという茶番なんだわ。
591デフォルトの名無しさん
2021/03/08(月) 00:57:02.44ID:++yKnef9 昨今のトレンドは後工程で苦労するよりコンパイル時に型チェックで苦労するほうがマシでしょというのがひとつ
あと線形型なんかは採用したらパフォーマンス向上した的な話もあるね
https://arxiv.org/abs/1710.09756
あと線形型なんかは採用したらパフォーマンス向上した的な話もあるね
https://arxiv.org/abs/1710.09756
592デフォルトの名無しさん
2021/03/08(月) 08:27:49.24ID:cEivlnWp >>589
let mut, &mut, ::, unwrap, unnecessary trailing semicolon, &str, @val, ast!, dbg!, match
String, Str, CString, Cstr, OsString, Ostrで6種類の文字列型・5種類オブジェクトタイプ
String::from(), to_string(), to_owned(), into(),「.」でチェーンメソッドはするけど
ネームスペースパスは「::」コメントの書き方は6種類、複雑なmatchと暗黙借用のmoving
貶し言葉:イライラする、うるさい小姑、窓のヘリを触ってココ拭いてない言うてくる、全責任はプログラマ
褒め言葉:コンパイラが最高の師匠であり、全てを体得するまでに5年、騎士の剣のような型通りの綺麗な剣技
let mut, &mut, ::, unwrap, unnecessary trailing semicolon, &str, @val, ast!, dbg!, match
String, Str, CString, Cstr, OsString, Ostrで6種類の文字列型・5種類オブジェクトタイプ
String::from(), to_string(), to_owned(), into(),「.」でチェーンメソッドはするけど
ネームスペースパスは「::」コメントの書き方は6種類、複雑なmatchと暗黙借用のmoving
貶し言葉:イライラする、うるさい小姑、窓のヘリを触ってココ拭いてない言うてくる、全責任はプログラマ
褒め言葉:コンパイラが最高の師匠であり、全てを体得するまでに5年、騎士の剣のような型通りの綺麗な剣技
593デフォルトの名無しさん
2021/03/08(月) 08:39:02.15ID:PAkrxJnU うーん、無能だからでは?
594デフォルトの名無しさん
2021/03/08(月) 23:08:18.24ID:XP5LJntG >>580
開成中学生が作ったBlawnとかそんな感じ、型宣言ゼロで静的型付け。関数などがジェネリックなので
コンパイル時にチェッカーが走る。惜しいのが、たぶん頭は良いのだけど言語作成者はメタボロクソに
言われても開発継続する胆力がないとどんなに将来性があっても使ってくれない…
開成中学生が作ったBlawnとかそんな感じ、型宣言ゼロで静的型付け。関数などがジェネリックなので
コンパイル時にチェッカーが走る。惜しいのが、たぶん頭は良いのだけど言語作成者はメタボロクソに
言われても開発継続する胆力がないとどんなに将来性があっても使ってくれない…
595デフォルトの名無しさん
2021/03/08(月) 23:49:34.34ID:XP5LJntG >>566
論文がないのはその通りだけど、そういうレベルじゃないよ。Vはコンパイラーは、コンパイル中に必要な
解放呼び出しを自動的に挿入する。Cで言うfree/deallocateが勝手に入る。参照カウントをつかってると
言ってるけど、変更可能な可変長文字列バッファ、やリスト・マップなんかが無ければスコープを外れると
解放される変数と同じでバッファのmallocはコンパイラがfreeするコードを挿入する。(これを入れない
コンパイルオプションがある)循環参照は終了時に消すだけ、それだけの事、Lobsterとか言ってるけどさ
"Memory Management in Lobster"ね。mattnとか初期の汚いVコードというかCのコードを見てGoの
人は入れようと思わないだろうけど、コントリビュータ自身が過大広告言うてるから人を減らしてる
論文がないのはその通りだけど、そういうレベルじゃないよ。Vはコンパイラーは、コンパイル中に必要な
解放呼び出しを自動的に挿入する。Cで言うfree/deallocateが勝手に入る。参照カウントをつかってると
言ってるけど、変更可能な可変長文字列バッファ、やリスト・マップなんかが無ければスコープを外れると
解放される変数と同じでバッファのmallocはコンパイラがfreeするコードを挿入する。(これを入れない
コンパイルオプションがある)循環参照は終了時に消すだけ、それだけの事、Lobsterとか言ってるけどさ
"Memory Management in Lobster"ね。mattnとか初期の汚いVコードというかCのコードを見てGoの
人は入れようと思わないだろうけど、コントリビュータ自身が過大広告言うてるから人を減らしてる
596デフォルトの名無しさん
2021/03/08(月) 23:50:13.81ID:XP5LJntG >>593
消えろよ、クズ
消えろよ、クズ
597デフォルトの名無しさん
2021/03/09(火) 08:33:23.74ID:9uGzSsM0598デフォルトの名無しさん
2021/03/09(火) 10:48:51.29ID:TUAITkUp raiiまで効率化出来るなら凄いことで
トランスパイラが仕込んだfree()をコンパイラさんが最適化してくれるなんてあり得ないだろうし
ショートループの中でヒープをガッチャガチャ確保解放するコードとか頻出だろ
トランスパイラが仕込んだfree()をコンパイラさんが最適化してくれるなんてあり得ないだろうし
ショートループの中でヒープをガッチャガチャ確保解放するコードとか頻出だろ
599デフォルトの名無しさん
2021/03/09(火) 14:25:02.31ID:jjaB3qUV >>597
BlawnのようなRAIIとは違い、Vの方はちょっと上の説明が間違ってるというか、分かりにくい言い回しを
してるが参照カウントしてるようだ。それをGCと呼ばないのはその通りでしょう
手続言語のコンピューター工学を持つ学位で証明されている理論なのかは知らんけど、そんなの無くても
RubyとかPHPとか動いてるわけで、必死で否定する必要もないでしょうよ。いまだ0.2?ぐらいなので
ワイも使わないけどさ
BlawnのようなRAIIとは違い、Vの方はちょっと上の説明が間違ってるというか、分かりにくい言い回しを
してるが参照カウントしてるようだ。それをGCと呼ばないのはその通りでしょう
手続言語のコンピューター工学を持つ学位で証明されている理論なのかは知らんけど、そんなの無くても
RubyとかPHPとか動いてるわけで、必死で否定する必要もないでしょうよ。いまだ0.2?ぐらいなので
ワイも使わないけどさ
600デフォルトの名無しさん
2021/03/09(火) 14:32:59.11ID:jjaB3qUV >>598
「ショートループの中でヒープをガッチャガチャ確保解放するコードとか頻出だろ 」
それをやってるのがRustのDropトレイトでしょう。トランスパイラが仕込んだfree()を最適化するなんて
どんな言語でもあり得ないと思いますよ。実行グラフを辿って使われなくなるスコープでfreeするだけだろう
gccのLTO(リンク時最適化)ならまだしもfreeの最適化なんてほとんどの言語はしないと思う
「ショートループの中でヒープをガッチャガチャ確保解放するコードとか頻出だろ 」
それをやってるのがRustのDropトレイトでしょう。トランスパイラが仕込んだfree()を最適化するなんて
どんな言語でもあり得ないと思いますよ。実行グラフを辿って使われなくなるスコープでfreeするだけだろう
gccのLTO(リンク時最適化)ならまだしもfreeの最適化なんてほとんどの言語はしないと思う
601デフォルトの名無しさん
2021/03/09(火) 14:37:29.46ID:jjaB3qUV GCのある言語でSTW(Stop the World)するような言語だと、freeの最適化なんてしないで、断片化するから
コンパクション操作が必要になるわけで、それを言語仕様かと言えばそうでは無く、言語からは決められないし
起動時のオプションがあるくらい。もちろんRustはプログラミング次第だけども
コンパクション操作が必要になるわけで、それを言語仕様かと言えばそうでは無く、言語からは決められないし
起動時のオプションがあるくらい。もちろんRustはプログラミング次第だけども
602デフォルトの名無しさん
2021/03/09(火) 15:55:19.39ID:4JaghKzr 変数定義があるんだから使い終わったらfreeだかデストラクトだか出来るようにすればいいのだ。
603デフォルトの名無しさん
2021/03/09(火) 20:09:07.93ID:M6pVOKfv Rustが未完成だった頃もこんな議論をしていたのか?
ウォーターフォールのように先に議論をして後で実装したのか?
ウォーターフォールのように先に議論をして後で実装したのか?
604デフォルトの名無しさん
2021/03/09(火) 20:27:41.71ID:gKCoJnTT Rustの場合は研究レベルで線形型アフィン型がまず実現されてて、所有権もC++の時点で既にあったし、それらがデフォルトになる実用向け言語としてデザインされていったものだから解決の方針も出されてないのとは訳が違うんよ
GCだとZGCが最先端になるのかな
Goで培われたmulti-coloringなmark&sweepとbitmap、対抗馬のshenandoahと同様の複数リージョンによる並列マーキングと並列コンパクションの全部盛りだし
研究レベルの技術に詳しい人居たら教えて欲しい
GCだとZGCが最先端になるのかな
Goで培われたmulti-coloringなmark&sweepとbitmap、対抗馬のshenandoahと同様の複数リージョンによる並列マーキングと並列コンパクションの全部盛りだし
研究レベルの技術に詳しい人居たら教えて欲しい
605デフォルトの名無しさん
2021/03/09(火) 21:30:54.08ID:9uGzSsM0606デフォルトの名無しさん
2021/03/09(火) 22:19:12.47ID:2CFdfqCA >>599
単なる参照カウントとはいえ結局循環参照の解決にgc使う(PHP等)とかそれっぽい参照を検出するとか必要なのに少なくとも前者のオーバーヘッドは否定してるし、参照カウント特有のカウント増減のオーバーヘッドも否定してる
その上でinnovativeな解決策があるそうだからオーバーヘッドもそれらよりは少ないんだろうよ
参考元らしいLobsterに順ずるならライフタイム分析とコンパイル時所有権トレースによる参照カウント増減の最小化・局所化が期待されるらしい
一方で実際にはメモリリークがあり循環参照が実行終了時の開放に任されてる部分が少なからずあるからinnovativeってなんだよって話になるのは自然だろ
単なる参照カウントとはいえ結局循環参照の解決にgc使う(PHP等)とかそれっぽい参照を検出するとか必要なのに少なくとも前者のオーバーヘッドは否定してるし、参照カウント特有のカウント増減のオーバーヘッドも否定してる
その上でinnovativeな解決策があるそうだからオーバーヘッドもそれらよりは少ないんだろうよ
参考元らしいLobsterに順ずるならライフタイム分析とコンパイル時所有権トレースによる参照カウント増減の最小化・局所化が期待されるらしい
一方で実際にはメモリリークがあり循環参照が実行終了時の開放に任されてる部分が少なからずあるからinnovativeってなんだよって話になるのは自然だろ
607デフォルトの名無しさん
2021/03/09(火) 23:53:34.35ID:SwzIUFtj >Rustの場合は研究レベルで線形型アフィン型がまず実現されてて、所有権もC++の時点で既にあったし
これと実装レベルじゃ話が全く違うがな。。これでまず研究があったとか思えるって相当おめでたいんじゃないかね
これと実装レベルじゃ話が全く違うがな。。これでまず研究があったとか思えるって相当おめでたいんじゃないかね
608デフォルトの名無しさん
2021/03/10(水) 10:36:37.47ID:JIwrPDXM >>606
ライフタイム分析は確かに複雑な操作じゃ無ければ参照カウントのメント操作を省略できるでしょう。
それが「最小化・局所化が期待されるらしい」と上記の"Lobster"の言うように95%削減できるかは
プログラム次第だけどw
多くの言語が現在では型推論を備えてるわけだが、これが昔からある理論だとしても多くの人が使用が
できるようになったのはつい最近。型推論を現在で動作しないと否定する人は殆どいない(嫌う人はいる
かもしれない)途中では「ただし、これは執筆時点では実装されていません。」と言っているので、まあ
革新的ではまだないだろうね、単なる目標数値なだけで。
>>605
また多くの人が現実的な問題として否定してるのは参照カウントのオーバーヘッドなんかじゃ無くてGCによる
STWやコンパクションなんかでしょう?現実問題として参照カウントのオーバーヘッドなんて気にしてる言語は
殆どないよ。例えば、RustだってRc<T>やArcによる参照カウントをプログラマ・プログラム側でやってるだけ
>>607
それとRustもGraydon Hoareの個人プロジェクトでMozillaになっただけで研究が先にあったとは言い切れない
そりゃ有名人やコンピューター工学の権威とか参加してるだろうけども
ライフタイム分析は確かに複雑な操作じゃ無ければ参照カウントのメント操作を省略できるでしょう。
それが「最小化・局所化が期待されるらしい」と上記の"Lobster"の言うように95%削減できるかは
プログラム次第だけどw
多くの言語が現在では型推論を備えてるわけだが、これが昔からある理論だとしても多くの人が使用が
できるようになったのはつい最近。型推論を現在で動作しないと否定する人は殆どいない(嫌う人はいる
かもしれない)途中では「ただし、これは執筆時点では実装されていません。」と言っているので、まあ
革新的ではまだないだろうね、単なる目標数値なだけで。
>>605
また多くの人が現実的な問題として否定してるのは参照カウントのオーバーヘッドなんかじゃ無くてGCによる
STWやコンパクションなんかでしょう?現実問題として参照カウントのオーバーヘッドなんて気にしてる言語は
殆どないよ。例えば、RustだってRc<T>やArcによる参照カウントをプログラマ・プログラム側でやってるだけ
>>607
それとRustもGraydon Hoareの個人プロジェクトでMozillaになっただけで研究が先にあったとは言い切れない
そりゃ有名人やコンピューター工学の権威とか参加してるだろうけども
609デフォルトの名無しさん
2021/03/10(水) 12:26:05.36ID:SA6nop04 最近の言語研究は、あわしろ氏の論文がベースになってるものが多い。
610デフォルトの名無しさん
2021/03/10(水) 13:00:36.02ID:5VzsYcNg モダンな最新のC++っていくらするの?
611デフォルトの名無しさん
2021/03/10(水) 14:00:30.87ID:hyPPhEFL ソフトウェアのデバッグは比較的容易だから無料なんだな
文書の誤りや詭弁やデマを取り除くのだけ金がかかる
文書の誤りや詭弁やデマを取り除くのだけ金がかかる
612デフォルトの名無しさん
2021/03/10(水) 15:44:24.64ID:MgNVoYVm 推奨NGワード: あわしろ
613デフォルトの名無しさん
2021/03/10(水) 15:53:52.43ID:SA6nop04 あわしろ氏の論文抜きに次世代言語は語れないだろ。
614デフォルトの名無しさん
2021/03/10(水) 20:32:58.62ID:wDDQFNF0 >>608
話の繋がりがよくわからんレスばかりだけど、とりあえずV言語は単なるリファレンスカウント方式ってことでおk?
話の繋がりがよくわからんレスばかりだけど、とりあえずV言語は単なるリファレンスカウント方式ってことでおk?
615デフォルトの名無しさん
2021/03/11(木) 11:10:34.72ID:CIKGh+S+ バカ「JavaBeans方式のプロパティはリフレクションあってこそのものなのにC++で真似してもなー。 」
616デフォルトの名無しさん
2021/03/11(木) 11:33:02.30ID:onpwfsyg >>615
スレ間違えてるぞバカくん
スレ間違えてるぞバカくん
617デフォルトの名無しさん
2021/03/14(日) 12:34:28.91ID:HIwD2fvq Julia Go RustでPythonを潰そう
618デフォルトの名無しさん
2021/03/14(日) 13:49:01.04ID:flEVf/TW むしろpythonの足りない所補完するんじゃないか?
619デフォルトの名無しさん
2021/03/14(日) 16:28:02.83ID:2WkkfJc2 Pythonを潰すならNimだろ、中身は別物だけど構文はめっちゃ似てる
620デフォルトの名無しさん
2021/03/14(日) 17:07:51.14ID:oR08qjJB つか、構文しか似てない。全然被らんだろう。
621デフォルトの名無しさん
2021/03/14(日) 17:45:58.00ID:flEVf/TW コンパイルして配置のひと手間入るだけで適用分野が全く変わってくる
622デフォルトの名無しさん
2021/03/14(日) 19:29:18.99ID:pQGk05s+ 動的言語の分野でも静的チェック入れたいって要望に応えるような追加が多い。
多分これからは徐々にチェックを厳しくするってリファクタリングをどれだけ段階的に入れやすくできるかってのが
言語に求められる要望になるんじゃないかね。
多分これからは徐々にチェックを厳しくするってリファクタリングをどれだけ段階的に入れやすくできるかってのが
言語に求められる要望になるんじゃないかね。
623デフォルトの名無しさん
2021/03/15(月) 16:25:13.23ID:gJzvcWoz 今からC++かrust学ぶならどっちがいいと思う?
CとJavaはわかる前提で
CとJavaはわかる前提で
624デフォルトの名無しさん
2021/03/15(月) 16:48:36.32ID:tiOBROfx 両方やれば?
逆にどっちかだけ学習するより理解しやすいかもね。
逆にどっちかだけ学習するより理解しやすいかもね。
625デフォルトの名無しさん
2021/03/15(月) 17:49:05.74ID:8Ti0c4YE CとjavaがわかっているならC++は入り易いと思う
626デフォルトの名無しさん
2021/03/15(月) 20:36:28.58ID:esGaOKmu >>623
目的によるだろ
目的によるだろ
627デフォルトの名無しさん
2021/03/15(月) 21:58:43.20ID:ia87ngdU とりあえず新しい事勉強することが目的ならRust
なんらかのプロダクトが目的ならどうせC++のAPIやライブラリ、ビルドツールから逃れられないのでC++
どうせ避けて通れないなら勉強するのはRustで問題に直面してからC++の両方コース
なんらかのプロダクトが目的ならどうせC++のAPIやライブラリ、ビルドツールから逃れられないのでC++
どうせ避けて通れないなら勉強するのはRustで問題に直面してからC++の両方コース
628デフォルトの名無しさん
2021/03/15(月) 23:13:56.48ID:R7EGufd+ C++は割と初めてに近い頃に学習したけど
当時の感じでRustやってたら間違いなく挫折してたと思う
当時の感じでRustやってたら間違いなく挫折してたと思う
629デフォルトの名無しさん
2021/03/15(月) 23:59:28.47ID:M0xOqYlK C++ならCと同じに使えるよ。better C。
630デフォルトの名無しさん
2021/03/16(火) 00:18:10.95ID:wbddlCFD まあおもしろみもクソもない極めて優等生的な普通の解答をさせてもらうと
まずは C そして C++ 最後に Rust と勉強するのが最も望ましい
まずは C そして C++ 最後に Rust と勉強するのが最も望ましい
631デフォルトの名無しさん
2021/03/16(火) 01:15:21.91ID:t/pA05jQ newを使っただけで芋蔓式に
例外処理とRAIIとスマートポインタとtemplateが必要になるC++を
better Cとか言われてスルーしてる優等生の闇が深い
例外処理とRAIIとスマートポインタとtemplateが必要になるC++を
better Cとか言われてスルーしてる優等生の闇が深い
632デフォルトの名無しさん
2021/03/16(火) 01:21:12.51ID:GTaecVmm 誰も本気でプロダクトコード書くと思ってないだけだぞ。
633デフォルトの名無しさん
2021/03/16(火) 01:45:08.00ID:t/pA05jQ だとすると、Pythonのチェックを徐々に厳しくするってのも誰も本気でやらないだろう
634デフォルトの名無しさん
2021/03/16(火) 05:45:19.04ID:0EC0D1BB635デフォルトの名無しさん
2021/03/16(火) 07:57:14.44ID:/8PJuxcZ Javaは決してレガシーな言語じゃない。今も昔もJavaが世界の目指す方向を教えてくれる
https://engineer-lab.findy-code.io/java
Javaの素晴らしさはJVM(Java仮想マシン)の性能の良さやエコシステムの豊かさにあると思います。
エコシステムとはJavaを取り巻く環境やコミュニティといった意味で、これまでさまざまな企業や人々がJavaに対して貢献してきました。
OSSの世界におけるものごとの考え方やコミュニティ運営における方法論は、Javaが歩んできたカルチャーが色濃く影響していると私は考えています。
現在も、多くの企業や人々がJavaの進化を支えています。たとえば、JDK 15の開発には錚々(そうそう)たる企業が参加しています。エンジニアなら誰しも憧れるような有名企業がJavaのエコシステムに関わっているんです。
<JDK 15の開発に参加している企業> Oracle、Red Hat、SAP、ARM、Tencent、NTT Data、Amazon、IBM、 Intel、Alibaba、Loongson、Huawei、BellSoft、Ampere Computing、 Google、JetBrains、Azul、DataDog、Microsoft、他多数。
日本ではJavaがレガシーというイメージが強いですが、実は世界的に見れば全くレガシーではありません。
Javaの進化を見れば、世界のIT企業各社が何を目指しているかがわかります。このエコシステムの素晴らしさを、もっと多くの方々に知っていただけると嬉しいですね。
https://engineer-lab.findy-code.io/java
Javaの素晴らしさはJVM(Java仮想マシン)の性能の良さやエコシステムの豊かさにあると思います。
エコシステムとはJavaを取り巻く環境やコミュニティといった意味で、これまでさまざまな企業や人々がJavaに対して貢献してきました。
OSSの世界におけるものごとの考え方やコミュニティ運営における方法論は、Javaが歩んできたカルチャーが色濃く影響していると私は考えています。
現在も、多くの企業や人々がJavaの進化を支えています。たとえば、JDK 15の開発には錚々(そうそう)たる企業が参加しています。エンジニアなら誰しも憧れるような有名企業がJavaのエコシステムに関わっているんです。
<JDK 15の開発に参加している企業> Oracle、Red Hat、SAP、ARM、Tencent、NTT Data、Amazon、IBM、 Intel、Alibaba、Loongson、Huawei、BellSoft、Ampere Computing、 Google、JetBrains、Azul、DataDog、Microsoft、他多数。
日本ではJavaがレガシーというイメージが強いですが、実は世界的に見れば全くレガシーではありません。
Javaの進化を見れば、世界のIT企業各社が何を目指しているかがわかります。このエコシステムの素晴らしさを、もっと多くの方々に知っていただけると嬉しいですね。
636デフォルトの名無しさん
2021/03/16(火) 08:06:55.78ID:5ZkckJOg JavaのダメなところってまさにJVM、エコシステム、コミュニティじゃないの
インターンのこに就職先を相談されたら、Javaをやらされるところは絶対やめろと言ってるわ
インターンのこに就職先を相談されたら、Javaをやらされるところは絶対やめろと言ってるわ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「中国側も日本機のレーダーを感知していた」 中国メディアが報道 [♪♪♪★]
- 【YouTuber】バイク事故で入院のゆたぼん、振込で「お見舞金」募る [muffin★]
- 高市早苗首相、消費税減税に後ろ向き 足かせはレジシステム? 「責任ある積極財政」期待高いが [蚤の市★]
- 堀江貴文、キャッシュレス非対応の店にモヤッ 『PayPay』立ち上げの人物にまさかの直談判「現金決済しかできないんだけど…」 [冬月記者★]
- 低所得層のマクドナルド離れが深刻に 広がる「ファストフード格差」の真相 米国 [少考さん★]
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★7 [七波羅探題★]
