スレタイ以外の言語もok
前スレ
次世代言語Part8[Haskell Rust Kotlin TypeScript]
http://mevius.5ch.net/test/read.cgi/tech/1512137301/
探検
次世代言語9[Haskell Rust Kotlin TypeScript Dart]
■ このスレッドは過去ログ倉庫に格納されています
2018/03/06(火) 10:09:15.60ID:x/Au45rc
701デフォルトの名無しさん
2018/03/30(金) 23:09:07.15ID:MliDoeQ0 マルチスレッドを考えるとスタックはスレッドローカルなので速度だけの問題ではない
速度だけ考えると確かにどうでもいいからマルチスレッドを考えるといい
速度だけ考えると確かにどうでもいいからマルチスレッドを考えるといい
702デフォルトの名無しさん
2018/03/30(金) 23:32:59.08ID:vpP76l93703デフォルトの名無しさん
2018/03/30(金) 23:36:16.61ID:vpP76l93704デフォルトの名無しさん
2018/03/31(土) 00:27:11.90ID:Pb+ZodvD そもそも返り値使いすぎなんだよな
返り値なんてエラー管理かスカラー関数くらいにしとくものなのかも
返り値なんてエラー管理かスカラー関数くらいにしとくものなのかも
705デフォルトの名無しさん
2018/03/31(土) 01:41:58.87ID:uN2ioEKO その言語の推奨されるスタイルに合わせるべきじゃね?
C++ならちょっとしたことで>>697のどっちがいいか変わるとかには目をつぶって
返り値使うべき
Fortranならoutパラメータを活用すればいいだろ(タプル無いし)
そこから外れるのは実際に速度が必要になってからでいい
C++ならちょっとしたことで>>697のどっちがいいか変わるとかには目をつぶって
返り値使うべき
Fortranならoutパラメータを活用すればいいだろ(タプル無いし)
そこから外れるのは実際に速度が必要になってからでいい
706デフォルトの名無しさん
2018/03/31(土) 02:05:24.43ID:Pb+ZodvD そう。その推奨されるスタイルとしてintent(out)を採用している言語って少ないよなあーと思うんよ
707デフォルトの名無しさん
2018/03/31(土) 02:15:44.60ID:t0EWsjNV このスレ的にあれどけどc言語がそうだ
戻り値はスカラーかポインタ
それ以外の返り値が必要なら非constポインタを渡す
戻り値はスカラーかポインタ
それ以外の返り値が必要なら非constポインタを渡す
708デフォルトの名無しさん
2018/03/31(土) 03:00:03.91ID:uN2ioEKO C言語はスタイルとしてはそうだけど、言語機能としてポインタ渡しとoutは区別されてないな
逆にD言語やC#はoutをinout/refと区別してるけど、推奨はされてない感が強い
逆にD言語やC#はoutをinout/refと区別してるけど、推奨はされてない感が強い
709デフォルトの名無しさん
2018/03/31(土) 08:00:23.62ID:9+5jHACw まあ直感的には引数はインプットで返り値がアウトプットってのは自然だとは思う。
そうならんのはcの場合は返り値をレジスタ、もしくはスタックにどう置くかを意識してるからでしょ。
良くも悪くも低レイヤーに合わせているわけだ。
そうならんのはcの場合は返り値をレジスタ、もしくはスタックにどう置くかを意識してるからでしょ。
良くも悪くも低レイヤーに合わせているわけだ。
710デフォルトの名無しさん
2018/03/31(土) 11:14:49.43ID:Pb+ZodvD Cはintent指定出来ないことに目を瞑ればかなり良いんだけど、配列の範囲外アクセスチェック周りとかが原始的すぎてデバッグしんどいなあ
711デフォルトの名無しさん
2018/03/31(土) 13:27:31.25ID:pVxcphgn そもそもpure宣言相当が無い、つまりどんな関数も副作用が有りうると想定する
必要のあるCはお題から外れるのでは。
必要のあるCはお題から外れるのでは。
712デフォルトの名無しさん
2018/03/31(土) 14:04:14.80ID:Pb+ZodvD せやな
713デフォルトの名無しさん
2018/03/31(土) 14:18:10.92ID:38KyKd1m 「副作用が無いDSL」のインタプリタをCで作るか
インタプリタではない何かをDDDで作れ
インタプリタではない何かをDDDで作れ
714デフォルトの名無しさん
2018/03/31(土) 14:45:53.72ID:uN2ioEKO つ__attribute__((pure))
715デフォルトの名無しさん
2018/03/31(土) 19:03:39.12ID:pVxcphgn libC関数もヘッダに情報が入って、pure から pure じゃない関数を呼んだらコンパイルエラーになるくらいになったら意味があると思うけど。
716デフォルトの名無しさん
2018/03/31(土) 20:16:30.87ID:dM6Zlct0 画面に出力するのは副作用?Thunderbolt3で接続したGPUボックスをGPGPUとして使った計算は?
ヒープ領域を変更するのは?
と、考えるとpureなものって何でしょうね、ってならないかね
ヒープ領域を変更するのは?
と、考えるとpureなものって何でしょうね、ってならないかね
717デフォルトの名無しさん
2018/03/31(土) 20:30:38.28ID:Pb+ZodvD その辺はHaskell的なアプローチでいいんじゃない?
718デフォルトの名無しさん
2018/03/31(土) 20:31:03.58ID:Pb+ZodvD Haskell のは並列か
719デフォルトの名無しさん
2018/04/02(月) 19:29:25.78ID:o7/+6TQd Cって
「本当は疎結合にしたいけど性能優先でしかたなく密結合にするよ」
を理解できるレベルを暗黙の前提にしてない?
なんであんなに流行したんだろ??
「本当は疎結合にしたいけど性能優先でしかたなく密結合にするよ」
を理解できるレベルを暗黙の前提にしてない?
なんであんなに流行したんだろ??
720デフォルトの名無しさん
2018/04/02(月) 19:41:43.42ID:jOZ58Btw Nimって疎結合にしても密結合なCくらいのパフォーマンス出るんだろうか?
721デフォルトの名無しさん
2018/04/02(月) 19:51:29.66ID:7E1ezZvV ライバルたり得たPascalが
文字列は255文字まで
可変長引数使えない
ポインター扱いにくい
int と char の区別が面倒、など
なんとも無意味な不便さを抱えていたからだと思う
32ビットまでの Windows は API の呼び出し規約が Pasal 流なのに文字列はC式、
初期の Macinrosh は API の文字列も公式の解説書の記述も Pascal だったりしたなあ
文字列は255文字まで
可変長引数使えない
ポインター扱いにくい
int と char の区別が面倒、など
なんとも無意味な不便さを抱えていたからだと思う
32ビットまでの Windows は API の呼び出し規約が Pasal 流なのに文字列はC式、
初期の Macinrosh は API の文字列も公式の解説書の記述も Pascal だったりしたなあ
722デフォルトの名無しさん
2018/04/02(月) 20:02:30.49ID:jOZ58Btw ごめんなんでもない
723デフォルトの名無しさん
2018/04/02(月) 22:21:14.63ID:EN/8rlvw 疎結合の意味はよくわからんがdllやsoの中身はほぼ全部Cの関数だろ
724デフォルトの名無しさん
2018/04/02(月) 22:23:36.55ID:QQz+Sj8+ 高級言語からCの方向で見てるからの感想だろ。
アセンブラからCの方向だったらまた違った感想になるんじゃないかね。
アセンブラからCの方向だったらまた違った感想になるんじゃないかね。
725デフォルトの名無しさん
2018/04/03(火) 00:10:13.25ID:RwyGVa1s ドライバのようにインタフェースを関数ポインタで定義して実装を分離するみたいなのが疎結合のC?
726デフォルトの名無しさん
2018/04/03(火) 00:12:50.53ID:kpq2obaf 素直に別の実行ファイルにするのが疎結合のC
727デフォルトの名無しさん
2018/04/03(火) 01:42:26.51ID:+aZgql8Q728デフォルトの名無しさん
2018/04/03(火) 03:18:38.36ID:uqya3zvR 作者のwirth先生はPascalを教育用、ModulaをOSも書けるように作ったのに
Pascalの方がそれなりに広まってModulaがさっぱりだったのは不幸だよな
まあModulaはModulaで面倒くさいとこあるんだけど
Pascalの方がそれなりに広まってModulaがさっぱりだったのは不幸だよな
まあModulaはModulaで面倒くさいとこあるんだけど
729デフォルトの名無しさん
2018/04/03(火) 12:54:09.54ID:GZlQK3q7 いい加減スレタイからRustはずそうぜ
730デフォルトの名無しさん
2018/04/03(火) 14:02:58.92ID:bDjjKsy9 つか、スレタイから次世代言語をはずした方がいいんじゃね。
旧世代の言語の話しか出てこないし。
旧世代の言語の話しか出てこないし。
731デフォルトの名無しさん
2018/04/03(火) 14:19:06.58ID:01qL0AuM >>730
次世代を語るためには旧世代を知っておかねばならんのだ(キリッ
次世代を語るためには旧世代を知っておかねばならんのだ(キリッ
732デフォルトの名無しさん
2018/04/03(火) 14:58:56.73ID:nX+Jhx5Q おんこちしんと
うんこちんちん
似てる
うんこちんちん
似てる
733デフォルトの名無しさん
2018/04/03(火) 16:29:09.56ID:lykT2DjF >>729
C++のポジションを狙う言語には「なんなんだよこの仕様=うっとうしい」もついてくるからw
C++のポジションを狙う言語には「なんなんだよこの仕様=うっとうしい」もついてくるからw
734デフォルトの名無しさん
2018/04/03(火) 17:41:10.26ID:01qL0AuM >>733
C++のポジションを狙うRustには「なんなんだよこのアンチ=うっとうしい」もついてくるからw
C++のポジションを狙うRustには「なんなんだよこのアンチ=うっとうしい」もついてくるからw
735デフォルトの名無しさん
2018/04/03(火) 18:01:19.06ID:teyqxCn/ ネタにしてるが、マジで旧世代言語知らずに次世代なんて語れんだろう。
736デフォルトの名無しさん
2018/04/03(火) 19:42:11.24ID:wFxxlJZP そもそも次世代言語ってまだない言語を夢想して話せってこと?無茶いうな
737デフォルトの名無しさん
2018/04/03(火) 19:48:53.79ID:AUs9WXEq あのアンチはRustに職を奪われたからね、しょうがないね
Rustスレで気持ちよく大暴れしてるときに自分で漏らしてたよ
Rustスレで気持ちよく大暴れしてるときに自分で漏らしてたよ
738デフォルトの名無しさん
2018/04/03(火) 20:16:15.66ID:BzNmSsTz なんでこんなrust普及の妨げにしかならんこと言いだすんだろう。
739デフォルトの名無しさん
2018/04/03(火) 20:27:21.10ID:X7iioW9i UE4やHoudini使ってると次世代言語はビジュアルプログラミングでいい気がしてきた
740デフォルトの名無しさん
2018/04/03(火) 20:33:03.03ID:s7jZ67re Rustは次世代言語だがC++知ってた人と今から勉強始める人の格差はリセットされないな
世代交代とは寿命が尽きることであって格差がなくなることではない
世代交代とは寿命が尽きることであって格差がなくなることではない
741デフォルトの名無しさん
2018/04/03(火) 20:44:15.49ID:uqya3zvR >>739
MSは何故GUIエディタを放棄してXAMLなんぞ作ったんだろうか……
MSは何故GUIエディタを放棄してXAMLなんぞ作ったんだろうか……
742デフォルトの名無しさん
2018/04/03(火) 21:06:26.14ID:teyqxCn/ XAMLはまだBlendで書けるだろ。
743デフォルトの名無しさん
2018/04/03(火) 21:10:07.12ID:f/nGrkvY XAMLを手書きしてる人なんているか?
744デフォルトの名無しさん
2018/04/03(火) 21:27:57.24ID:teyqxCn/ Xamarinの人たちかな。
745デフォルトの名無しさん
2018/04/03(火) 22:59:23.72ID:oucbN3qp 補完ありのテキストエディタならいくらでもいそうな気がするが。
746デフォルトの名無しさん
2018/04/03(火) 23:12:30.59ID:gOYTrQOB Delphi「やっと時代が追い付いたか」
747デフォルトの名無しさん
2018/04/04(水) 00:44:22.36ID:fh2IMjqM748デフォルトの名無しさん
2018/04/04(水) 16:47:20.75ID:VNuZKpdj Kylix「誰も知らない 知られちゃいけない」
749デフォルトの名無しさん
2018/04/04(水) 17:04:36.07ID:Pmay6Vdj deっvi---l
750デフォルトの名無しさん
2018/04/04(水) 17:31:20.15ID:wRFLDXS3 まあVBの方が古いんだけどな
751デフォルトの名無しさん
2018/04/07(土) 09:53:55.09ID:e89pcJBq752デフォルトの名無しさん
2018/04/07(土) 12:37:16.42ID:JZPNgytE Goの案件って結構あるのね
753デフォルトの名無しさん
2018/04/07(土) 12:55:34.16ID:y0NHVjlZ Goみたいな不安定なものよく使うな
754デフォルトの名無しさん
2018/04/07(土) 13:26:35.73ID:LOY6Fa8O Cはグローバル変数の使い方やOOPのやり方みたいなローカルルールないと無理っぽい
Cがいくら安定してもローカルルールは安定しない
Cがいくら安定してもローカルルールは安定しない
755デフォルトの名無しさん
2018/04/07(土) 13:43:27.23ID:iO/NW/s5 流石にひどいw
756デフォルトの名無しさん
2018/04/07(土) 16:18:41.57ID:dIEw27mY >>752
まじでー。普通のcrudなweb案件とかもあるならやってみたい
まじでー。普通のcrudなweb案件とかもあるならやってみたい
757デフォルトの名無しさん
2018/04/07(土) 17:28:50.26ID:1M9Ik5ns どこが不安定なんだろ?
758デフォルトの名無しさん
2018/04/07(土) 18:15:56.12ID:LOY6Fa8O 小学校でプログラミングを教えろ、ただし中学レベルの数学を教えるな
Goがやりたいことは大体これと同じだろ
Goがやりたいことは大体これと同じだろ
759デフォルトの名無しさん
2018/04/07(土) 18:27:40.19ID:2Xz4c+5M 何か問題でも?
760デフォルトの名無しさん
2018/04/07(土) 19:04:22.55ID:LOY6Fa8O どこかの評論家に否定される前に、自分で考えて肯定すればいいのに
自分で考えるのをやめたら、否定してくださいと言ってるようなものじゃないか
自分で考えるのをやめたら、否定してくださいと言ってるようなものじゃないか
761デフォルトの名無しさん
2018/04/07(土) 19:20:07.17ID:y0NHVjlZ >>759は自分で考えてなんの問題もないと肯定したレスだろう
762デフォルトの名無しさん
2018/04/07(土) 19:59:52.92ID:65xgSjRP763デフォルトの名無しさん
2018/04/07(土) 20:02:15.13ID:y0NHVjlZ いやいやいや
764デフォルトの名無しさん
2018/04/07(土) 20:42:13.27ID:n5lWGq5m >>762
例外なんて機能を欲しがるとか正気か?
タプルかタグ付きユニオンのある言語には例外なんて必要ない
むしろ、無いほうがよほど筋が良い。よりによって例外かよ…
Go言語の問題はもっと他にあるよね
ジェネリクスとかNil安全とかラムダ式とかイミュータビリティとか
例外なんて機能を欲しがるとか正気か?
タプルかタグ付きユニオンのある言語には例外なんて必要ない
むしろ、無いほうがよほど筋が良い。よりによって例外かよ…
Go言語の問題はもっと他にあるよね
ジェネリクスとかNil安全とかラムダ式とかイミュータビリティとか
765デフォルトの名無しさん
2018/04/07(土) 20:45:00.99ID:y0NHVjlZ AirPlayさんなんだろ
766デフォルトの名無しさん
2018/04/08(日) 00:14:21.96ID:Dxb/j7Bg767デフォルトの名無しさん
2018/04/08(日) 00:16:58.41ID:kOs0IpX+ ガイガイ
768デフォルトの名無しさん
2018/04/08(日) 00:44:53.47ID:V9VuwMAu ここでのクソみたいな議論に時間を使うことが一番コスト高ってことを
goを使ってる人はわかってる。
goを使ってる人はわかってる。
769デフォルトの名無しさん
2018/04/08(日) 00:59:11.92ID:yrhx1H5B >>764
例外ってか戻値無視してたらコンパイルエラーにする構文がほしい。(すでにgoにあったらスマヌ)
ライブラリやミドルウェア作るとき、ここでエラーならそれ以上処理進めんなってことあるので、アプリ側のエラーハンドリングを強制させたい。
それができないからやむを得ず例外で終了させてる。
例外ってか戻値無視してたらコンパイルエラーにする構文がほしい。(すでにgoにあったらスマヌ)
ライブラリやミドルウェア作るとき、ここでエラーならそれ以上処理進めんなってことあるので、アプリ側のエラーハンドリングを強制させたい。
それができないからやむを得ず例外で終了させてる。
770デフォルトの名無しさん
2018/04/08(日) 01:06:05.49ID:+FJwvftX771デフォルトの名無しさん
2018/04/08(日) 01:11:44.09ID:+FJwvftX つーかgoが気に入らない理由に例外を上げるけど、例外ってそんなに良いもんかね?
例えばこの関数は例外を上げる可能性があるからtryブロック内に書かないとコンパイルエラーになる言語ってある?
それくらいやってくんないと例外を使う意味って、エラーハンドリング問題の先送りでしかないから。
例えばこの関数は例外を上げる可能性があるからtryブロック内に書かないとコンパイルエラーになる言語ってある?
それくらいやってくんないと例外を使う意味って、エラーハンドリング問題の先送りでしかないから。
772デフォルトの名無しさん
2018/04/08(日) 01:12:25.64ID:DdcJdhQn >>766
問題って書いたのが誤解を招いてしまったかな…
別に上記の全てが無いとダメって言ってるわけじゃないよ。あったら嬉しいなくらいにしか思ってない
けど、例外なんて邪魔にしかならん機能を欲しがるくらいなら他に欲しいものがいくらでもあるだろと思って…
あと、揚げ足取って悪いけど、100徳ナイフを欲しがってるなら例外も欲しがってるはずだろ…
例外と継承を捨てたのはGoの英断
問題って書いたのが誤解を招いてしまったかな…
別に上記の全てが無いとダメって言ってるわけじゃないよ。あったら嬉しいなくらいにしか思ってない
けど、例外なんて邪魔にしかならん機能を欲しがるくらいなら他に欲しいものがいくらでもあるだろと思って…
あと、揚げ足取って悪いけど、100徳ナイフを欲しがってるなら例外も欲しがってるはずだろ…
例外と継承を捨てたのはGoの英断
773デフォルトの名無しさん
2018/04/08(日) 01:16:07.05ID:kOs0IpX+ >>772
いやお前は悪くない。相手が意味ワカラン奴なだけだ
いやお前は悪くない。相手が意味ワカラン奴なだけだ
774デフォルトの名無しさん
2018/04/08(日) 01:46:25.89ID:21utqBEE java
但しランタイム例外は除く
但しランタイム例外は除く
775デフォルトの名無しさん
2018/04/08(日) 02:00:48.53ID:DdcJdhQn >>771
>例えばこの関数は例外を上げる可能性があるからtryブロック内に書かないとコンパイルエラーになる言語ってある?
Javaの検査例外とSwiftの例外はtry必須だよ。
けど、try必須だと書くのが面倒なんだよね。実際、Javaでは非検査例外のほうが主に使われてるし…
検査例外と非検査例外を場合によって書き分けるのがJavaの理想なんだろうけど、現実はそうじゃない…
Swiftの例外はtryの書き方が何種類かあるからJavaより使い易くはなってるんだけど
Rustと同じでタグ付きユニオン(enum型)あるから別に必要なくない?ってなる
Rustはエラー処理にenumのResult型を使うけど、Swiftでは例外を使うのがマナーなのかな?
>例えばこの関数は例外を上げる可能性があるからtryブロック内に書かないとコンパイルエラーになる言語ってある?
Javaの検査例外とSwiftの例外はtry必須だよ。
けど、try必須だと書くのが面倒なんだよね。実際、Javaでは非検査例外のほうが主に使われてるし…
検査例外と非検査例外を場合によって書き分けるのがJavaの理想なんだろうけど、現実はそうじゃない…
Swiftの例外はtryの書き方が何種類かあるからJavaより使い易くはなってるんだけど
Rustと同じでタグ付きユニオン(enum型)あるから別に必要なくない?ってなる
Rustはエラー処理にenumのResult型を使うけど、Swiftでは例外を使うのがマナーなのかな?
776デフォルトの名無しさん
2018/04/08(日) 02:16:09.65ID:+FJwvftX >>775
swiftはそうだったな。
たしか例外周りはswift2で追加実装されてウゲーってなった覚えがあるような。
swiftの言語仕様の変更は凄まじいものがあるよな。もうswift4だっけか?
正直swift信奉者≒apple信者じゃないと説明がつかない。
言語仕様をミニマムに抑えて熟考するgoを見習ってほしいわ。
swiftはそうだったな。
たしか例外周りはswift2で追加実装されてウゲーってなった覚えがあるような。
swiftの言語仕様の変更は凄まじいものがあるよな。もうswift4だっけか?
正直swift信奉者≒apple信者じゃないと説明がつかない。
言語仕様をミニマムに抑えて熟考するgoを見習ってほしいわ。
777デフォルトの名無しさん
2018/04/08(日) 02:26:12.80ID:+FJwvftX >>775
つまり結局goのエラーハンドリングの面倒くささと一緒になるってことだよな?
goのエラーはただの値だから
構造体のメンバ変数に格納先を用意してやれば、
後で纏めてチェックしたり、
一回でもエラーが発生したら処理を中断する
みたいな書き方は全然できる。
そのへんはgo blogに記事があった。
つまり結局goのエラーハンドリングの面倒くささと一緒になるってことだよな?
goのエラーはただの値だから
構造体のメンバ変数に格納先を用意してやれば、
後で纏めてチェックしたり、
一回でもエラーが発生したら処理を中断する
みたいな書き方は全然できる。
そのへんはgo blogに記事があった。
778デフォルトの名無しさん
2018/04/08(日) 03:04:32.63ID:N7to3hps779デフォルトの名無しさん
2018/04/08(日) 03:14:34.94ID:+FJwvftX780デフォルトの名無しさん
2018/04/08(日) 03:17:34.48ID:N7to3hps781デフォルトの名無しさん
2018/04/08(日) 03:49:10.38ID:DdcJdhQn >>780
例外の一番の問題は予想外の場所で例外が不必要にキャッチされて、その上で
握りつぶされてしまった場合、握りつぶされた場所を特定するのがかなり面倒臭いこと。
そんなコード書くヤツが悪いと言いたいが実際にいるんだからしょうがない…
どこで握りつぶされるか分からんリスクを背負うくらいならその場で握りつぶされた方がまだいい
因みに、エラーハンドリングに関してはRustのResult型が最も筋が良いと思ってる
Result型なら故意に握りつぶそうとでもしない限りは簡単には握りつぶせない
例外の一番の問題は予想外の場所で例外が不必要にキャッチされて、その上で
握りつぶされてしまった場合、握りつぶされた場所を特定するのがかなり面倒臭いこと。
そんなコード書くヤツが悪いと言いたいが実際にいるんだからしょうがない…
どこで握りつぶされるか分からんリスクを背負うくらいならその場で握りつぶされた方がまだいい
因みに、エラーハンドリングに関してはRustのResult型が最も筋が良いと思ってる
Result型なら故意に握りつぶそうとでもしない限りは簡単には握りつぶせない
782デフォルトの名無しさん
2018/04/08(日) 04:07:01.05ID:N7to3hps >>781
goのほうが握りつぶしが書きやすいからこそ、どこで握りつぶされるか分からんリスクはgoのほうが大きい、と思うんだよなあ
goのほうが握りつぶしが書きやすいからこそ、どこで握りつぶされるか分からんリスクはgoのほうが大きい、と思うんだよなあ
783デフォルトの名無しさん
2018/04/08(日) 08:46:33.77ID:Dxb/j7Bg >>781
トラブルシューティングの為に、キャッチした時点でロギングしないの?
トラブルシューティングの為に、キャッチした時点でロギングしないの?
784デフォルトの名無しさん
2018/04/08(日) 09:00:51.10ID:RUgiqDA/ Cのprintfの戻り値を毎回欠かさずチェックしてる人だけが例外に石を投げなさい
785デフォルトの名無しさん
2018/04/08(日) 10:19:07.88ID:xmyFoIZI 戻り値の握り潰しは局所的・静的に判断できるけど例外はそうじゃないからなぁ。
それこそ例外を起こしてみないと見つけるのが困難だったりして。
それこそ例外を起こしてみないと見つけるのが困難だったりして。
786デフォルトの名無しさん
2018/04/08(日) 10:23:53.74ID:+rfxRhvD 例外は継続的な改良に対応しやすいのがメリットなんだよな
取りあえず最初は例外安全だけ意識して例外は上の方でまとめて処理しておいて、
あとでより丁寧な取扱いが必要になったときは問題なく対応できる
もちろん、検査例外とかいうビチグソは無い前提だが
取りあえず最初は例外安全だけ意識して例外は上の方でまとめて処理しておいて、
あとでより丁寧な取扱いが必要になったときは問題なく対応できる
もちろん、検査例外とかいうビチグソは無い前提だが
787デフォルトの名無しさん
2018/04/08(日) 11:36:37.63ID:Bf+GYw8s 最初はexit
exitの握り潰しが必要になったら例外で
exitの握り潰しが必要になったら例外で
788デフォルトの名無しさん
2018/04/08(日) 11:42:04.86ID:YK+KPtHu789デフォルトの名無しさん
2018/04/08(日) 13:08:16.40ID:mQRLIlYG このスレも例外が理解できない幼稚園児ばっかかよ
Goみたいな言語が流行るわけだ
Goみたいな言語が流行るわけだ
790デフォルトの名無しさん
2018/04/08(日) 13:22:55.27ID:Bf+GYw8s 自分で選んだ言語がそれだったらそれでもいいよ
より良い言語を後で見つけたら自分が馬鹿だっただけで済む
しかしそれを選んだのが会社や国家だったら馬鹿にしても炎上するし擁護しても炎上する
より良い言語を後で見つけたら自分が馬鹿だっただけで済む
しかしそれを選んだのが会社や国家だったら馬鹿にしても炎上するし擁護しても炎上する
791デフォルトの名無しさん
2018/04/08(日) 13:39:52.93ID:T4sPcvM1 このスレの議論はほんとレベルが低いな
間違った使い方をしたときどちらがマシかでしか優劣をつけられないのか
間違った使い方をしたときどちらがマシかでしか優劣をつけられないのか
792デフォルトの名無しさん
2018/04/08(日) 13:50:33.26ID:DdcJdhQn >>782
なんか会話が噛み合わないなと思ってたがやっと理由が分かった気がする。
>>782の言う"どこ"はGoのエラー(戻り値)は握りつぶしがしやすいから
誰が"どこ"でエラーを握りつぶすコードを書くか分からないって意味の"どこ"だよね。
俺の言う"どこ"は例外がスローされた場所に対して
キャッチされる場所が"どこ"か分からないって意味の"どこ"なんだよ。
キャッチされる場所が分からないとデバッグ時に探すのが面倒なんだよ。
Goみたいに戻り値としてエラーが返されるとエラーの発生場所と
握り潰した場所は必ず一致するからデバッグしやすい。
結局、従来の例外はgoto文と同じでフローが飛ぶから気持ち悪いってのが俺の意見。
なんか会話が噛み合わないなと思ってたがやっと理由が分かった気がする。
>>782の言う"どこ"はGoのエラー(戻り値)は握りつぶしがしやすいから
誰が"どこ"でエラーを握りつぶすコードを書くか分からないって意味の"どこ"だよね。
俺の言う"どこ"は例外がスローされた場所に対して
キャッチされる場所が"どこ"か分からないって意味の"どこ"なんだよ。
キャッチされる場所が分からないとデバッグ時に探すのが面倒なんだよ。
Goみたいに戻り値としてエラーが返されるとエラーの発生場所と
握り潰した場所は必ず一致するからデバッグしやすい。
結局、従来の例外はgoto文と同じでフローが飛ぶから気持ち悪いってのが俺の意見。
793デフォルトの名無しさん
2018/04/08(日) 14:09:14.32ID:Bf+GYw8s 従来の言語にはexitがあるから例外がない
SmalltalkやJavaScriptにはexitがないから例外があるんだろう
SmalltalkやJavaScriptにはexitがないから例外があるんだろう
794デフォルトの名無しさん
2018/04/08(日) 14:12:58.97ID:DdcJdhQn >>791
でも、次世代言語って間違った使い方(プログラマによるミス)をさせないように
制限をかける意味合いが強くない?Null安全とかその典型だと思うんだけど。
オレは絶対に使い方を間違えないって言うんならC++, C#とかを使ってろよってなるし…
でも、次世代言語って間違った使い方(プログラマによるミス)をさせないように
制限をかける意味合いが強くない?Null安全とかその典型だと思うんだけど。
オレは絶対に使い方を間違えないって言うんならC++, C#とかを使ってろよってなるし…
795デフォルトの名無しさん
2018/04/08(日) 14:13:54.54ID:aL28Ce5R >>792
戻り値のエラーを握りつぶされると、不適切な状態で動き続けるから、デバッグが困難になると思うんだが。
例外の握りつぶしでも同じ事だけど、構文としては、例外の握りつぶしの方が見つけやすいと思うけどね。catchブロックでしか細工できないから。
goだと正常な返り値の隣に,_つけるだけで握りつぶせちゃうから、見つけづらいんじゃないかな。
戻り値のエラーを握りつぶされると、不適切な状態で動き続けるから、デバッグが困難になると思うんだが。
例外の握りつぶしでも同じ事だけど、構文としては、例外の握りつぶしの方が見つけやすいと思うけどね。catchブロックでしか細工できないから。
goだと正常な返り値の隣に,_つけるだけで握りつぶせちゃうから、見つけづらいんじゃないかな。
796デフォルトの名無しさん
2018/04/08(日) 14:15:23.81ID:V9VuwMAu 間違えを考慮しないシステムの恐ろしさを全くわかってない奴はそもそも話にならん。
プログラミングを語る資格がない。
プログラミングを語る資格がない。
797デフォルトの名無しさん
2018/04/08(日) 14:23:41.21ID:DdcJdhQn >>795
すまん。よく考えると確かにデバッグはどっちも面倒なことに変わりないわ。
ただ、個人的にはtry-catchも,_もどっちも見つけづらさは大して変わらないと思ってる。
デバッグ時じゃなくて、普通にコードを読むときに戻り値でやったほうがフローを把握しやすいってことが言いたかった。
すまん。よく考えると確かにデバッグはどっちも面倒なことに変わりないわ。
ただ、個人的にはtry-catchも,_もどっちも見つけづらさは大して変わらないと思ってる。
デバッグ時じゃなくて、普通にコードを読むときに戻り値でやったほうがフローを把握しやすいってことが言いたかった。
798デフォルトの名無しさん
2018/04/08(日) 14:26:14.02ID:aL28Ce5R 返り値でエラーを判別するコードだと、本来やりたいことの次にほぼ必ず、エラー判定処理が入るから、可読性が低いんだよね。
昔、C使ってた頃は、そういうところが嫌でたまんなかったし、ひどいのになると主要な処理が全部、条件部分で行われてて、if文の連なりしかないコードとかみたし。
正常系をリーダブルに書くには、例外の方が気持ちいいなと思うよ。
昔、C使ってた頃は、そういうところが嫌でたまんなかったし、ひどいのになると主要な処理が全部、条件部分で行われてて、if文の連なりしかないコードとかみたし。
正常系をリーダブルに書くには、例外の方が気持ちいいなと思うよ。
799デフォルトの名無しさん
2018/04/08(日) 14:32:30.43ID:kugCg6kv そのあたりはEitherが良いと思うんだな
800デフォルトの名無しさん
2018/04/08(日) 14:35:54.54ID:aL28Ce5R 後、最近のIDE使ってると、todoをコメントに入れとけば、あとでそれを、まとめて見直せるから、取り敢えず、try-catchして、catchのところはtodoにしといて、まず正常系を一通り買いてから、あとで異常系に対処するっていうワークフローにできるのが、例外の利点かなと思う。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【速報】中国外務省報道官 高市首相発言撤回なければ「断固たる対抗措置」 ★2 [蚤の市★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★4 [ぐれ★]
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… ★3 [BFU★]
- 中国、日本行き“50万人”キャンセル 渡航自粛でコロナ禍以来最大 [お断り★]
- 【速報】日本産牛肉の対中国輸出再開協議が中止 ★2 [おっさん友の会★]
- 毛寧(もう・ねい)報道官「中国に日本の水産品の市場は無い」 高市首相の国会答弁に「中国民衆の強い怒り」 [ぐれ★]
- 【速報】中国政府、ゲームを禁輸。原神やブルアカ、荒野行動が日本で影響 [347751896]
- 中国「私達が怒ってるのは日本の政治家に対してで、日本の観光客や日本企業はこれまで通り歓迎する。これこそが大国としての余裕」 [377482965]
- 中国政府、日本人のビザ免除停止、鬼滅の刃公開停止を検討へ [271912485]
- 【悲報】日本人の半数以上が、事ここに至っても日本が中国に喧嘩売ったって理解していない件について [616817505]
- 高市コイン、ガチで156円突入へwwwwwwwwww [246620176]
- Bloomberg「やり過ぎた中国、高市首相の政策遂行手助け」 [481941988]
