スレタイ以外の言語も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
690デフォルトの名無しさん
2021/03/25(木) 20:17:34.37ID:QAr0K9ya Goなんではやらんのか
例外ないとかきいてうえってなったけど
panicあったらいいじゃん
例外ないとかきいてうえってなったけど
panicあったらいいじゃん
691デフォルトの名無しさん
2021/03/25(木) 21:02:19.53ID:KZQE7Wft 普通に使われてるだろGO
692デフォルトの名無しさん
2021/03/25(木) 21:22:28.63ID:s30NAs5i golangは悪くは無いんだが、この分野ではgoだよねというシーンが無いというか
693デフォルトの名無しさん
2021/03/25(木) 21:32:12.66ID:ItxHMUbH694デフォルトの名無しさん
2021/03/25(木) 22:20:19.07ID:CbMP1UQH Goはなにが駄目といってまず名前が駄目
あとエラー処理が面倒すぎる!
あとエラー処理が面倒すぎる!
695デフォルトの名無しさん
2021/03/25(木) 22:27:03.79ID:QAr0K9ya そうなのか
696デフォルトの名無しさん
2021/03/26(金) 12:21:14.41ID:mmjZdfI1 Elixir も、パターンマッチの戻り値で判定するから、
例外機構を使わないのが普通
YouTube で有名な、雑食系エンジニア・KENTA いわく、
Go だけは、普及のキャズムを超えた
Rust, Elixirは超えられなかった
Elixirは、VSCode, Remote Container(Docker)で、
文字列処理などのツールでは楽
例外機構を使わないのが普通
YouTube で有名な、雑食系エンジニア・KENTA いわく、
Go だけは、普及のキャズムを超えた
Rust, Elixirは超えられなかった
Elixirは、VSCode, Remote Container(Docker)で、
文字列処理などのツールでは楽
697デフォルトの名無しさん
2021/03/26(金) 13:15:37.07ID:oXROwrcp goはjavaのダメな点を修正したってだけな気もするが、だがそれがいい。
698デフォルトの名無しさん
2021/03/26(金) 13:17:22.27ID:oKOCwUd9 こっとりーん
699デフォルトの名無しさん
2021/03/26(金) 16:43:15.75ID:5JaI5I85 >>693
native compileされたバイナリの依存関係はどうなってるの?
native compileされたバイナリの依存関係はどうなってるの?
700デフォルトの名無しさん
2021/03/26(金) 21:27:15.39ID:VTO9jEEg あとGoはマスコットがキモすぎる
701デフォルトの名無しさん
2021/03/26(金) 21:32:54.53ID:S1KAvzhB lispよりマシ
702デフォルトの名無しさん
2021/03/26(金) 22:00:57.79ID:VCm8TcY+ どっちもかわいいのに…
703デフォルトの名無しさん
2021/03/26(金) 23:26:17.82ID:f+NQDuNV gopherはもうちょいデフォルメすればかわいい(たぶん)
LISPは諦めてもろて
LISPは諦めてもろて
>>701
Lisp にマスコットなんかあったっけ?
Lisp にマスコットなんかあったっけ?
705デフォルトの名無しさん
2021/03/27(土) 00:40:16.75ID:PG67SvNd706デフォルトの名無しさん
2021/03/27(土) 01:07:42.58ID:71XDemdj Javaの☆のやつのがきもい
707デフォルトの名無しさん
2021/03/27(土) 01:09:38.24ID:+DporzDl708デフォルトの名無しさん
2021/03/27(土) 02:04:50.15ID:ViXMOfbR しかも名前がLispエイリアンとかふざけてる
709デフォルトの名無しさん
2021/03/27(土) 02:39:16.96ID:ZUW1x11T 舌足らず(lisp)なのかな
710デフォルトの名無しさん
2021/03/30(火) 02:28:48.17ID:uKQPYHO8 >>614
よく分からないなら職場の先輩に聞いてください。あなたのくだらない煽りに答える所ではありません。
無視しても良かったのですが、あまりにも気持ち悪すぎるので書いておきます
RustのRc、Arcと言っているのに、それにまったく気づかない文章読解能力の無さどうかと思います。
ARC (automatic reference counting) というのアルゴリズムです。
言うまでもなくRcは(reference-counting)です。単純な参照カウントを改良・自動化したのがARCです。
改良すべきは細かい話になりますが、1つ目が値の受け渡しによるコピーをなくすためのムーブ操作です。
理論上は、ムーブセマンティクスと呼ばれる、C++11/14からある所有権のムーブで、メモリーコピーを
防ぎます。これは「所有権」という言葉からRustを想像すると思いますが、まさしくそれでRustはムーブを
明示的にシンタックスで行いますが、VやNimbleなどはそれが自動化されます。strong/weak/unownedの
キーワードが必要になりますが、確かSwiftもARCです。Vの場合はmutが必要です
2番目にスレッド間でのデータが共有されるため、ここも単純なRCと比べて改良されています。
他にもRCに比べて利点があります。多くの単純な例ではオーバーヘッドと見做されるようなカウント操作を
行わないようになります。これは明示的に所有権の移動を行うRustと同じです。Rustの利点はGCが不明な
箇所では行われない事です
簡単に表せば、最も単純な例では関数を抜けた後にメモリ解放を必要とする変数のデストラクタ呼び出しを
コンパイラが自動的に挿入します。(ここでカウント操作はありません)ただ循環参照を処理する場合には
参照カウンターとは別にサイクルカウンターが必要となります。
Rustはunsafeを使わずとも「循環参照は、メモリをリークすることもある」と認めていますが、独自データ
構造で循環参照を作った場合、メモリーリークしないよう保証するのは実装者の自分自身が必要です。
JavaなどのGCがあるとされる言語は多くはこれを解決するために、マークアンドスウィープを使用して結果的に
Stop the Worldが発生します。これを解決して抑えるためコンカレントGCを作りましたが、常にGCされるので
に結果的にパフォーマンス低下します。
よく分からないなら職場の先輩に聞いてください。あなたのくだらない煽りに答える所ではありません。
無視しても良かったのですが、あまりにも気持ち悪すぎるので書いておきます
RustのRc、Arcと言っているのに、それにまったく気づかない文章読解能力の無さどうかと思います。
ARC (automatic reference counting) というのアルゴリズムです。
言うまでもなくRcは(reference-counting)です。単純な参照カウントを改良・自動化したのがARCです。
改良すべきは細かい話になりますが、1つ目が値の受け渡しによるコピーをなくすためのムーブ操作です。
理論上は、ムーブセマンティクスと呼ばれる、C++11/14からある所有権のムーブで、メモリーコピーを
防ぎます。これは「所有権」という言葉からRustを想像すると思いますが、まさしくそれでRustはムーブを
明示的にシンタックスで行いますが、VやNimbleなどはそれが自動化されます。strong/weak/unownedの
キーワードが必要になりますが、確かSwiftもARCです。Vの場合はmutが必要です
2番目にスレッド間でのデータが共有されるため、ここも単純なRCと比べて改良されています。
他にもRCに比べて利点があります。多くの単純な例ではオーバーヘッドと見做されるようなカウント操作を
行わないようになります。これは明示的に所有権の移動を行うRustと同じです。Rustの利点はGCが不明な
箇所では行われない事です
簡単に表せば、最も単純な例では関数を抜けた後にメモリ解放を必要とする変数のデストラクタ呼び出しを
コンパイラが自動的に挿入します。(ここでカウント操作はありません)ただ循環参照を処理する場合には
参照カウンターとは別にサイクルカウンターが必要となります。
Rustはunsafeを使わずとも「循環参照は、メモリをリークすることもある」と認めていますが、独自データ
構造で循環参照を作った場合、メモリーリークしないよう保証するのは実装者の自分自身が必要です。
JavaなどのGCがあるとされる言語は多くはこれを解決するために、マークアンドスウィープを使用して結果的に
Stop the Worldが発生します。これを解決して抑えるためコンカレントGCを作りましたが、常にGCされるので
に結果的にパフォーマンス低下します。
711デフォルトの名無しさん
2021/03/30(火) 09:11:59.50ID:BHNwTu7Q >>710
RustのArcはAtomically Reference Countedの略な
RustのArcはAtomically Reference Countedの略な
712デフォルトの名無しさん
2021/03/30(火) 09:44:21.64ID:ZeIxFSpI713デフォルトの名無しさん
2021/03/30(火) 15:01:48.57ID:3h4JBsbE あまりにも気持ち悪すぎるwワロス
こいつらマウント取りたくて必死すぎだろwなんも反論になってないw
そんなにVが嫌いならダメな所あげたら良いのに
こいつらマウント取りたくて必死すぎだろwなんも反論になってないw
そんなにVが嫌いならダメな所あげたら良いのに
714デフォルトの名無しさん
2021/03/30(火) 16:45:27.89ID:QeTs/eYE ReScript良さそうだな
715デフォルトの名無しさん
2021/03/30(火) 16:50:58.07ID:ZCSqiewq 見たくないものは見えないんだなあ
716デフォルトの名無しさん
2021/03/30(火) 18:21:16.68ID:bKhExOEr 最新の言語ってデバッグのための値操作とかどうやるんですか
JavaやCだと変数値は変えられるのがデフォだから
一応元の処理は流したうえで値を書き換えてやるのが基本だった気がするけど
最近のってletでデフォconstじゃないですか
JavaやCだと変数値は変えられるのがデフォだから
一応元の処理は流したうえで値を書き換えてやるのが基本だった気がするけど
最近のってletでデフォconstじゃないですか
717デフォルトの名無しさん
2021/03/30(火) 22:53:17.23ID:hcFmxLDn デバッガからなら書き換えられるのも多いのでは?
718デフォルトの名無しさん
2021/03/30(火) 23:09:39.66ID:hr1twhx6 メモリ操作するよりセーブしてからファイル操作してロードできればいいのにな
GCにたとえるとストップアンドコピーってとこか
GCにたとえるとストップアンドコピーってとこか
719デフォルトの名無しさん
2021/03/30(火) 23:25:34.80ID:PerNg8Uc 純粋関数型言語で値の書き換えできるやつってあるのかな
HaskellとかElmで変数(とは言わないかもだが)表示しながらステップ実行とか式の評価の履歴みれるのは知ってるけど
HaskellとかElmで変数(とは言わないかもだが)表示しながらステップ実行とか式の評価の履歴みれるのは知ってるけど
720デフォルトの名無しさん
2021/03/30(火) 23:31:06.76ID:p2ycBMb7 できない理由はないんじゃない?メモリ上に置かれないような最適化とかされない限り。
721デフォルトの名無しさん
2021/03/30(火) 23:58:23.09ID:2Xqp7lc5 24日、最新版となる「Julia 1.6」をリリースしたと発表した。
722デフォルトの名無しさん
2021/03/31(水) 00:29:37.70ID:asE4SEMA ステップ実行やりたいがためにCのライブラリ呼び出しすんな派と
Cライブラリ呼び出しーや派
言語の流行はほぼこれで説明がつく
Cライブラリ呼び出しーや派
言語の流行はほぼこれで説明がつく
723デフォルトの名無しさん
2021/04/01(木) 20:50:12.42ID:4OCi/swF 「AsyncAPI Initiative」がLinux Foundationに参画、イベントドリブンなAPIの記述標準化を目指す
https://www.publickey1.jp/blog/21/asyncapi_initiativelinux_foundationapi.html
https://www.publickey1.jp/blog/21/asyncapi_initiativelinux_foundationapi.html
724デフォルトの名無しさん
2021/04/08(木) 04:40:42.69ID:kgR5ZIDd >>710はスルー力検定?
725デフォルトの名無しさん
2021/04/08(木) 08:12:35.42ID:oHbd1x+/ Rust言語でAndroidはより強固・安全に 〜GoogleがOS開発への導入を進める
C/C++コードの完全な置き換えは非現実的だが、新規コードへの活用は不具合の予防に効果あり
https://forest.watch.impress.co.jp/docs/news/1317183.html
C/C++コードの完全な置き換えは非現実的だが、新規コードへの活用は不具合の予防に効果あり
https://forest.watch.impress.co.jp/docs/news/1317183.html
726デフォルトの名無しさん
2021/04/08(木) 15:38:13.33ID:YWFqFncu Rustほんと人気だね
727デフォルトの名無しさん
2021/04/08(木) 15:43:04.97ID:CsfSuBCz Javaのパクっておkの勝訴の影響はどうなるの
728デフォルトの名無しさん
2021/04/08(木) 19:17:59.07ID:ByNsu0yr フェアユース
729デフォルトの名無しさん
2021/04/08(木) 21:12:55.75ID:KJ+7YtJl googleがイニシアチブとってくるとかなり変わってくるな
ただfirefoxの遅れ取り戻すために作ったものが今後chromやedgeにも使われるとなるとどうなんだろ?
ただfirefoxの遅れ取り戻すために作ったものが今後chromやedgeにも使われるとなるとどうなんだろ?
730デフォルトの名無しさん
2021/04/09(金) 01:33:52.25ID:q4HnPycb GoogleのJavaはそもそもドロイドのアプリ層でしか使ってないとオモウ
なのでOpenJDK標準になってたりKotlin押しになってるアプリ開発環境は変るかも
なのでOpenJDK標準になってたりKotlin押しになってるアプリ開発環境は変るかも
731デフォルトの名無しさん
2021/04/09(金) 07:43:56.69ID:PY9i7lti 節子!それ盗作ちゃうで!インスパイアかフェアユースや!
732デフォルトの名無しさん
2021/04/09(金) 11:54:55.40ID:1od6wqSM フェアユースの定義はどう見ても自然科学の管轄外なので
どちらかといえばコミュ力に近い能力が役に立つ事案
どちらかといえばコミュ力に近い能力が役に立つ事案
733デフォルトの名無しさん
2021/04/09(金) 20:44:39.89ID:ae3tE6Ku やったもん勝ちでいいじゃんいいじゃん
734デフォルトの名無しさん
2021/04/10(土) 09:37:11.94ID:WdqgOojm 中国人みたいなこと言いよる
735デフォルトの名無しさん
2021/04/10(土) 09:56:08.18ID:xmdeuDkH そういう判決だったからな
736デフォルトの名無しさん
2021/04/16(金) 16:43:46.37ID:iRzpcHGc Go言語はos.Open()の戻り値のエラーはスルーできないのに
File.Close()の戻り値のエラーは普通にスルーできるのが気持ちわるくてやめた
(だいぶ前の話だから今どうなってるかは知らない)
せめて
_ := f.Close()
にしないと警告出すくらいのチェックはほしい
File.Close()の戻り値のエラーは普通にスルーできるのが気持ちわるくてやめた
(だいぶ前の話だから今どうなってるかは知らない)
せめて
_ := f.Close()
にしないと警告出すくらいのチェックはほしい
737デフォルトの名無しさん
2021/04/16(金) 17:20:31.43ID:U88khvJX738デフォルトの名無しさん
2021/04/16(金) 18:28:46.84ID:iRzpcHGc739デフォルトの名無しさん
2021/04/16(金) 20:10:02.72ID:U88khvJX >>738
うーん、他の言語もタプルとかとして受け取るなら一部だけ受け取るなんてこと出来ないんだし、一般的な仕様だと思うけどな。
うーん、他の言語もタプルとかとして受け取るなら一部だけ受け取るなんてこと出来ないんだし、一般的な仕様だと思うけどな。
740デフォルトの名無しさん
2021/04/16(金) 22:00:20.82ID:iRzpcHGc >>739
その部分だけで考えれば普通なんだけど言語全体で考えるとバランスが悪い感じ
Openの方は
f, err := os.Open(..) // errを使わないとコンパイルエラー
f, _ := os.Open(..) // 敢えてエラーチェックはしない
の二択だけど、Closeの方は
err := f.Close() // errを使わないとコンパイルエラー
_ := f.Close() // 敢えてエラーチェックはしない
f.Close() // エラーチェックしないの?
の三択になって、例外を使わずに変数の使用を強制することでエラー処理を明示的にするっていう
Go言語のスタンスがぼやける気がする
(そのスタンス自体が私の思い違いかもしれないけど)
Closeだとエラー無視しても大したことないけど、Chdirあたりだと
エラーをスルーできて例外も飛ばないのは危険さを感じてしまう
C言語と同じだと言えばそれまでだけど、変数の不使用はコンパイルも通さないのに
戻り値の不使用は警告も出さないっていう仕様はアンバランスだと思った
その部分だけで考えれば普通なんだけど言語全体で考えるとバランスが悪い感じ
Openの方は
f, err := os.Open(..) // errを使わないとコンパイルエラー
f, _ := os.Open(..) // 敢えてエラーチェックはしない
の二択だけど、Closeの方は
err := f.Close() // errを使わないとコンパイルエラー
_ := f.Close() // 敢えてエラーチェックはしない
f.Close() // エラーチェックしないの?
の三択になって、例外を使わずに変数の使用を強制することでエラー処理を明示的にするっていう
Go言語のスタンスがぼやける気がする
(そのスタンス自体が私の思い違いかもしれないけど)
Closeだとエラー無視しても大したことないけど、Chdirあたりだと
エラーをスルーできて例外も飛ばないのは危険さを感じてしまう
C言語と同じだと言えばそれまでだけど、変数の不使用はコンパイルも通さないのに
戻り値の不使用は警告も出さないっていう仕様はアンバランスだと思った
741デフォルトの名無しさん
2021/04/16(金) 22:43:53.10ID:U88khvJX >>740
errを使わないとコンパイルエラー、は違うよ。
_ = err
と捨ててもコンパイルエラーは避けられる。
例外を使わず、は正しいけど、変数の使用は実質強制されてない。
そういう、errを捨てるような書き方は、Javaのthrows書きたくないからとExceptionで大雑把に例外を握りつぶしてるメソッドみたいなもんで、躾の問題だと思うよ。
errを使わないとコンパイルエラー、は違うよ。
_ = err
と捨ててもコンパイルエラーは避けられる。
例外を使わず、は正しいけど、変数の使用は実質強制されてない。
そういう、errを捨てるような書き方は、Javaのthrows書きたくないからとExceptionで大雑把に例外を握りつぶしてるメソッドみたいなもんで、躾の問題だと思うよ。
742デフォルトの名無しさん
2021/04/16(金) 23:39:26.78ID:h4psCBcA >Javaのthrows書きたくないからと
極刑を望む
極刑を望む
743デフォルトの名無しさん
2021/04/16(金) 23:53:42.11ID:iRzpcHGc 「使う」の意味が曖昧だったかな
errを使うっていうのはエラーをチェックをするという意味じゃなく
コードの中でそのerrをどう扱うかを明示するって意味で書いた
(普通はエラー処理だけど)
>>741の例だと
_ = err
の中で「そのエラーはチェックしない」って意図を明示するためにerrを使ったことになる
_ := f.Close()
と
f.Close()
の違いは、下の書き方だと
・そこでエラーが返される可能性
・そのエラーを無視するという意図
の2つが伝わりにくくなること
もしかしたらコードを書いた本人もCloseがエラーを返す可能性を見落としてるかもしれなくて
そうなると想定しない状態でプログラムが動き続けて予期しない結果を招くかもしれない
もしコンパイラが戻り値を受け取らないパターンを弾いてくれればそういう見落としは防げるようになる
(そこで何も考えず戻り値を捨てる書き方をして予期しない結果になったならそれはもう躾の問題だけど)
Javaで例えるならExceptionで握りつぶすというよりcatch(Exception)して何もしない感じかな
自分は「飲み込む」と表現してる
errを使うっていうのはエラーをチェックをするという意味じゃなく
コードの中でそのerrをどう扱うかを明示するって意味で書いた
(普通はエラー処理だけど)
>>741の例だと
_ = err
の中で「そのエラーはチェックしない」って意図を明示するためにerrを使ったことになる
_ := f.Close()
と
f.Close()
の違いは、下の書き方だと
・そこでエラーが返される可能性
・そのエラーを無視するという意図
の2つが伝わりにくくなること
もしかしたらコードを書いた本人もCloseがエラーを返す可能性を見落としてるかもしれなくて
そうなると想定しない状態でプログラムが動き続けて予期しない結果を招くかもしれない
もしコンパイラが戻り値を受け取らないパターンを弾いてくれればそういう見落としは防げるようになる
(そこで何も考えず戻り値を捨てる書き方をして予期しない結果になったならそれはもう躾の問題だけど)
Javaで例えるならExceptionで握りつぶすというよりcatch(Exception)して何もしない感じかな
自分は「飲み込む」と表現してる
744デフォルトの名無しさん
2021/04/17(土) 02:30:54.76ID:6GAIvEwc そんなに説明しなくても>>736だけで十分わかるよ
https://github.com/golang/go/issues/20803
https://github.com/golang/go/issues/20148 <― Rob Pike
https://github.com/golang/go/issues/20803
https://github.com/golang/go/issues/20148 <― Rob Pike
745デフォルトの名無しさん
2021/04/17(土) 02:59:32.14ID:Cl8a1wE7 同じこと言った記憶あるなあと思ったら一昨年だった
https://mevius.5ch.net/test/read.cgi/tech/1567602619/927
927 デフォルトの名無しさん sage 2019/09/29(日) 19:19:16.64 ID:siw3JIyP
deferのためなんだろうけど、返り値全捨てでの握り潰しがコンパイルエラーにならないのは不満
https://mevius.5ch.net/test/read.cgi/tech/1567602619/927
927 デフォルトの名無しさん sage 2019/09/29(日) 19:19:16.64 ID:siw3JIyP
deferのためなんだろうけど、返り値全捨てでの握り潰しがコンパイルエラーにならないのは不満
746デフォルトの名無しさん
2021/04/17(土) 09:13:21.49ID:GZ3nvsuU >>743-744
これは俺が不勉強だった。Issueも立ってたのか。
この議論は確かに有益だな。
issueで書かれてるように、deferで雑に閉じたいとかそういうケースが確かに漏れるか、ってぐらいだな。
うーん、なかなかバランス難しいもんだな。
とはいえRustみたいな気難しいコンパイラになられるのもなかなかだし。
これは俺が不勉強だった。Issueも立ってたのか。
この議論は確かに有益だな。
issueで書かれてるように、deferで雑に閉じたいとかそういうケースが確かに漏れるか、ってぐらいだな。
うーん、なかなかバランス難しいもんだな。
とはいえRustみたいな気難しいコンパイラになられるのもなかなかだし。
747デフォルトの名無しさん
2021/04/17(土) 09:39:43.53ID:WqZ6rzHC748デフォルトの名無しさん
2021/04/17(土) 11:00:28.48ID:tBKly9ku throwsを書くのは関数や変数の型を書くことと同じ
それに対し「型を書かなくていい変数は存在する」と
言い返したのと同じだから痛快だね
全ての変数に型を書くのに今までどれだけ無駄な努力をしていたか
それに対し「型を書かなくていい変数は存在する」と
言い返したのと同じだから痛快だね
全ての変数に型を書くのに今までどれだけ無駄な努力をしていたか
749デフォルトの名無しさん
2021/04/17(土) 12:15:23.05ID:WqZ6rzHC750デフォルトの名無しさん
2021/04/17(土) 12:35:03.15ID:GZ3nvsuU 検査例外は「ただの大域jmp、しかも行き先が自分ではわからないやつ」っていう例外の悪い部分をうまく取り扱うための、そこそこいい仕組みだと思うんだけど、
いかんせん例外で対応することが多すぎた気がする。
このメソッドより外側には漏れ出しません、ってのは俺はいい宣言だと思うんだけどな。
今はかなり改善されてるんだろうけど、Javaにいい印象なくてなかなかJava系の言語やる気持ちになれないや…。
いかんせん例外で対応することが多すぎた気がする。
このメソッドより外側には漏れ出しません、ってのは俺はいい宣言だと思うんだけどな。
今はかなり改善されてるんだろうけど、Javaにいい印象なくてなかなかJava系の言語やる気持ちになれないや…。
751デフォルトの名無しさん
2021/04/17(土) 13:37:15.96ID:GMKTrofB Javaの例外処理は独自の例外クラスを作って低層の例外を取り込んでいく設計を知らないと
throwsの中身が膨れ上がって大変なことになるね
throwsが面倒っていう人は独自の例外クラスを作るのが面倒なんだと思う
GoとかRustは返せるエラー型が原則1つに制限されるから必然的にそういう設計を迫られる
throwsの中身が膨れ上がって大変なことになるね
throwsが面倒っていう人は独自の例外クラスを作るのが面倒なんだと思う
GoとかRustは返せるエラー型が原則1つに制限されるから必然的にそういう設計を迫られる
752デフォルトの名無しさん
2021/04/17(土) 17:29:58.69ID:GZ3nvsuU753デフォルトの名無しさん
2021/04/17(土) 22:12:19.57ID:IisFsCzs Javaの検査例外は直上でのハンドリングを強制したのが失敗
Goみたいに一種類だけならまだしも、全種類はさすがにノイズになりすぎた
コンパイル時にチェックしたいだけならthrowsは暗黙的にコンパイラが生成し、最終的にキャッチされないままの例外があったら警告出すくらいで十分だったんだよ
結局Javaはmulti catch導入して、型を緩める方向に舵を切っちゃった
Goみたいに一種類だけならまだしも、全種類はさすがにノイズになりすぎた
コンパイル時にチェックしたいだけならthrowsは暗黙的にコンパイラが生成し、最終的にキャッチされないままの例外があったら警告出すくらいで十分だったんだよ
結局Javaはmulti catch導入して、型を緩める方向に舵を切っちゃった
754デフォルトの名無しさん
2021/04/17(土) 22:53:24.71ID:/69X/cno throwsを暗黙的に生成するのはそんなに簡単じゃない気がする
755デフォルトの名無しさん
2021/04/17(土) 22:59:40.59ID:WqZ6rzHC 検査例外がというより、そこは例外に多彩な型を持たせること自体が失敗だったと言うべきだろうな。
例外というものは呼び出し階層の複数の階層を越えて上位層が下位層に依存してしまうんで
それをSOLID原則のに従うようきっちり依存性逆転させるのは骨が折れる。
例外というものは呼び出し階層の複数の階層を越えて上位層が下位層に依存してしまうんで
それをSOLID原則のに従うようきっちり依存性逆転させるのは骨が折れる。
756デフォルトの名無しさん
2021/04/17(土) 23:31:17.79ID:dnL36O9R 例外の型って大抵デバッグ目的で持たせるエラー情報の種別に応じて作られるわけだけど、
それってプログラムでのエラーハンドリングの制御とは異なる関心事なんだよな
それをごっちゃにしてしまったのがJava系の例外の失敗だと思う
プログラムの制御にとっては、成功、リトライ可能な失敗、リトライ不可な失敗、くらいの分類があれば十分で、それ以上細かくしてもノイズになるだけ
それってプログラムでのエラーハンドリングの制御とは異なる関心事なんだよな
それをごっちゃにしてしまったのがJava系の例外の失敗だと思う
プログラムの制御にとっては、成功、リトライ可能な失敗、リトライ不可な失敗、くらいの分類があれば十分で、それ以上細かくしてもノイズになるだけ
757デフォルトの名無しさん
2021/04/18(日) 00:47:22.61ID:z4d4288G プロセスやスレッドを起動するならexitでいいのに
シングルタスクでイベントループを終了しないで続けるためにthrowとcatchがある
上位層が下位層に依存するのはシングルタスクの欠点だが
それは旧世代言語の欠点だというのがなぜか定説になってしまった
シングルタスクでイベントループを終了しないで続けるためにthrowとcatchがある
上位層が下位層に依存するのはシングルタスクの欠点だが
それは旧世代言語の欠点だというのがなぜか定説になってしまった
758デフォルトの名無しさん
2021/04/24(土) 08:05:00.86ID:8O98k7om > 例外というものは呼び出し階層の複数の階層を越えて上位層が下位層に依存してしまう
これどういうこと?
上位下位というのは継承関係?コンポジションの関係?
いずれにせよピンと来ないんだが
これどういうこと?
上位下位というのは継承関係?コンポジションの関係?
いずれにせよピンと来ないんだが
759デフォルトの名無しさん
2021/04/24(土) 08:18:28.13ID:8O98k7om https://ideone.com/gvbImJ
class A {
void foo(int value) {
if (value != 42) throw new IllegalArgumentException();
}
}
class B {
void bar(int value) {
new A().foo(value);
}
}
class Ideone {
public static void main(String[] args) {
try {
new B().bar(0);
} catch (IllegalArgumentException e) {
e.printStackTrace();
}
}
}
たとえばこう↑したとき
どこに「上位層が下位層に依存してしまう」部分があるの?
class A {
void foo(int value) {
if (value != 42) throw new IllegalArgumentException();
}
}
class B {
void bar(int value) {
new A().foo(value);
}
}
class Ideone {
public static void main(String[] args) {
try {
new B().bar(0);
} catch (IllegalArgumentException e) {
e.printStackTrace();
}
}
}
たとえばこう↑したとき
どこに「上位層が下位層に依存してしまう」部分があるの?
760デフォルトの名無しさん
2021/04/24(土) 09:21:13.32ID:PpOY6z/o 呼び出し海藻だろ
761デフォルトの名無しさん
2021/04/24(土) 10:02:36.99ID:K4uxnQki >>759
A が IllegalArgumentException を投げるかもしれないという事実に Ideone が依存している。
A が IllegalArgumentException を投げるかもしれないという事実に Ideone が依存している。
762デフォルトの名無しさん
2021/04/24(土) 12:02:10.01ID:X9M/vDl3 >>761
そのことをもって「上位層が下位層に」と表現しているってことでおk?
そのことをもって「上位層が下位層に」と表現しているってことでおk?
763デフォルトの名無しさん
2021/04/24(土) 12:15:38.69ID:h2P4AVL3 だいたいその認識だったな、俺も。
764デフォルトの名無しさん
2021/04/24(土) 15:59:57.86ID:tHtLe+wG IllegalArgumentExceptionならまああまり依存してる感はないかもしれない
特に問題になるのは、FooException のように、barがfooに依存しているという事実を晒してしまうような例外を投げるケースだな
特に問題になるのは、FooException のように、barがfooに依存しているという事実を晒してしまうような例外を投げるケースだな
765デフォルトの名無しさん
2021/04/24(土) 20:23:23.95ID:UtBZJqS8 やっぱJavaってオワコンなのか書店のJavaコーナーどんどん縮小してるし
以前はJavaコーナー一番広かったのに最近は大概他の言語(Python,JavaScriptなど)に負けてるな
何はともあれ業務上必要で売れるならある程度の面積は占めるはずなんだが
以前はJavaコーナー一番広かったのに最近は大概他の言語(Python,JavaScriptなど)に負けてるな
何はともあれ業務上必要で売れるならある程度の面積は占めるはずなんだが
766デフォルトの名無しさん
2021/04/24(土) 21:19:03.86ID:pIwkRpva 俺がインターンの子にジャバをやらされる企業には絶対いくなといってるからだろうな
767デフォルトの名無しさん
2021/04/24(土) 21:44:59.76ID:tDy/GOTv 新卒奴隷送り込む商売がやりづらくなっただけなのと
六ヶ月リリースになって書籍が追いつけなくなっただけでしょ。
「やさしいjava完全に理解した!」が減っていいことだ。
六ヶ月リリースになって書籍が追いつけなくなっただけでしょ。
「やさしいjava完全に理解した!」が減っていいことだ。
768デフォルトの名無しさん
2021/04/25(日) 04:27:20.08ID:HtPKTQ5q リリースに出版が追いつかないだけの理由なら別に書籍のコーナースペースが縮小したりしないと思う
スペースが狭くなってるって事は需要の絶対数が減ってるからでJavaをやる新人ってのが減ったのは確実なんだろうな
スペースが狭くなってるって事は需要の絶対数が減ってるからでJavaをやる新人ってのが減ったのは確実なんだろうな
769デフォルトの名無しさん
2021/04/25(日) 05:12:25.49ID:fxJVYt9g ただ単にkotlin使うようになっただけでしょ
まだまだjvm使ってるとこは多いと思う
今後はわからんけどね
まだまだjvm使ってるとこは多いと思う
今後はわからんけどね
770デフォルトの名無しさん
2021/04/25(日) 06:29:37.85ID:NMiXqa1m Javaが採用されてきた大きな理由の一つとして、実行環境としてUNIXをターゲットとする場合に、工員の開発PCがWindowsでも比較的支障が少ないってのがある
ただ最近では業務系でも開発にMac使うところは増えてきたし、
.NETもLinuxに対応したりNode.jsやPythonも主にUNIXで運用される主要なスクリプトの中では比較的Windowsの相性が悪くない方だったりして、ライバルも増えた
そもそもクラウドやコンテナの普及のせいで、直接Windows上で開発するということ自体がこれまでよりも困難になってきているし、Windows自体もWSLにより完全なUNIXを備えてしまったためこれまたJavaに拘る理由がなくなってしまった
ただ最近では業務系でも開発にMac使うところは増えてきたし、
.NETもLinuxに対応したりNode.jsやPythonも主にUNIXで運用される主要なスクリプトの中では比較的Windowsの相性が悪くない方だったりして、ライバルも増えた
そもそもクラウドやコンテナの普及のせいで、直接Windows上で開発するということ自体がこれまでよりも困難になってきているし、Windows自体もWSLにより完全なUNIXを備えてしまったためこれまたJavaに拘る理由がなくなってしまった
771デフォルトの名無しさん
2021/04/25(日) 06:56:54.09ID:wIbtFVmU 売り場面積が根拠ならjava云々でなく単に棚分類コードの関係で書店の扱いがいいジャンルに業界がシフトしてるだけの話よ。
鉄板はEXCEL本、python本、後は今ならディープラーニング関連かな。
オライリー・ジャパンですらwebもプログラミングも関係ない分野の本出してんの知らない?
javaならむしろ去年の六月にswingの新刊出てる。
>>769
kotlin使うようになったらからが理由ならscala使うようになった頃に取って代わってるだろうね。
鉄板はEXCEL本、python本、後は今ならディープラーニング関連かな。
オライリー・ジャパンですらwebもプログラミングも関係ない分野の本出してんの知らない?
javaならむしろ去年の六月にswingの新刊出てる。
>>769
kotlin使うようになったらからが理由ならscala使うようになった頃に取って代わってるだろうね。
772デフォルトの名無しさん
2021/04/25(日) 13:13:44.43ID:oFpMkyEJ Java は、GitHub に銀行のソースコードを上げた人とか、
20年やっても年収200万円とか、IT 土方の多重請負構造で、
客には1人月100万円を請求しているはずが、80万円抜かれる
プログラマーに還元されない。
というか、関数内だけを作っている、
システムを作っていない単純コーダーだから
工事現場の見習いみたいな感じ
そのIT業界の多重請負構造を、
YouTube で有名な、雑食系エンジニア・KENTA が、
ばらしてしまったので、日本中に広まった
IT土方Java vs 自社開発系Ruby
SES のモロー vs KENTA
20年やっても年収200万円とか、IT 土方の多重請負構造で、
客には1人月100万円を請求しているはずが、80万円抜かれる
プログラマーに還元されない。
というか、関数内だけを作っている、
システムを作っていない単純コーダーだから
工事現場の見習いみたいな感じ
そのIT業界の多重請負構造を、
YouTube で有名な、雑食系エンジニア・KENTA が、
ばらしてしまったので、日本中に広まった
IT土方Java vs 自社開発系Ruby
SES のモロー vs KENTA
773デフォルトの名無しさん
2021/04/25(日) 13:18:37.83ID:KtTIhOup 推奨NGワード: 土方
推奨NGワード: 請負
推奨NGワード: 雑食
推奨NGワード: KENTA
推奨NGワード: 自社開発
推奨NGワード: Ruby
推奨NGワード: SES
推奨NGワード: モロー
推奨NGワード: 請負
推奨NGワード: 雑食
推奨NGワード: KENTA
推奨NGワード: 自社開発
推奨NGワード: Ruby
推奨NGワード: SES
推奨NGワード: モロー
774デフォルトの名無しさん
2021/04/25(日) 15:27:32.41ID:HtPKTQ5q ちなみに言語じゃないけどDenoってこれから伸びる可能性あるんかね?
775デフォルトの名無しさん
2021/04/25(日) 15:38:35.22ID:8jr05iQT もしかしてDartって若干伸びてきてる?
776デフォルトの名無しさん
2021/04/26(月) 08:02:24.55ID:xaTdJ+wC Youtubeよりも5chで荒らしとして有名になってる件
777デフォルトの名無しさん
2021/04/26(月) 10:52:47.24ID:vu3N8V9m denoというかwasmがくるよ
778デフォルトの名無しさん
2021/04/27(火) 01:13:44.64ID:ybAp8EWh ということはRustが来るのか
779デフォルトの名無しさん
2021/04/28(水) 11:37:01.99ID:3EuQZ3Ew 実際にプロジェクトで使ったことない人には定評あるね
780デフォルトの名無しさん
2021/04/28(水) 12:18:47.51ID:Gm/vyyE5 インフラとか組込とかミスの許されない/修正リリースできない現場は
形式証明機能のある言語を実際に使うとか聞いたで
F*だかidrisだか忘れたけど
ググったらRustでもCHCソルバでプログラム検証しまーすとか普通にでてくるし
クリティカルなとこではちゃんと使われてんじゃないかい
形式証明機能のある言語を実際に使うとか聞いたで
F*だかidrisだか忘れたけど
ググったらRustでもCHCソルバでプログラム検証しまーすとか普通にでてくるし
クリティカルなとこではちゃんと使われてんじゃないかい
781デフォルトの名無しさん
2021/04/28(水) 13:26:23.31ID:GFgIUmSe 大規模開発で使うっていう都市伝説が検証されるだけで一歩前進か
782デフォルトの名無しさん
2021/04/28(水) 16:26:28.05ID:3EuQZ3Ew そんなとこで使われてるわけねーだろ。。
その手の証明ツールを使ったことあればわかるがテストコード書く方がまだまともなアプローチだわ。
実際に使われてるのは不確定性をうまく論理化してプロトコル検証をするって使い道はある。
そう言う使われ方は分散アルゴリズム周りでは少しやってるとこもあるがほんの一部だわな。
その手の証明ツールを使ったことあればわかるがテストコード書く方がまだまともなアプローチだわ。
実際に使われてるのは不確定性をうまく論理化してプロトコル検証をするって使い道はある。
そう言う使われ方は分散アルゴリズム周りでは少しやってるとこもあるがほんの一部だわな。
783デフォルトの名無しさん
2021/04/28(水) 16:31:19.72ID:yDqZolk/ 組込みRustという本がちょうどこの前出たぞ
784デフォルトの名無しさん
2021/04/28(水) 21:17:46.00ID:85tuN82O 意図もわからずなんとなく動くからそのメソッドを使い、借用をつければなんとなく動くから 借用し、
変更する予定はないけどmutし、ここはエラーだからとpanic!し、補足するなと言われているのに
catch_unwind/recoverして、血の涙で泣きながら渡されたソースをシコシコ直すおまいら・・・
rustのどこが良いか全然わからない
変更する予定はないけどmutし、ここはエラーだからとpanic!し、補足するなと言われているのに
catch_unwind/recoverして、血の涙で泣きながら渡されたソースをシコシコ直すおまいら・・・
rustのどこが良いか全然わからない
785デフォルトの名無しさん
2021/04/28(水) 23:38:51.58ID:2VQTxO/e マルチするな
786デフォルトの名無しさん
2021/04/29(木) 07:18:17.94ID:KLHt34b8 ちょっと改変すればどの言語にも適用できそう
というかそういう元ネタあんのかな?
というかそういう元ネタあんのかな?
787デフォルトの名無しさん
2021/04/29(木) 10:33:36.01ID:tR6uAqfq 補足?足なんて飾りです!偉い人にはそれがわからんのです!
早くモデル検査が当たり前になぁれ!
早くモデル検査が当たり前になぁれ!
788デフォルトの名無しさん
2021/04/29(木) 12:41:21.56ID:JBnzphH4 >>781
大規模開発ってプロジェクト人数が多そうだし精鋭にはならんだろうから寧ろ不向きだろうって直観的に思う
大規模開発ってプロジェクト人数が多そうだし精鋭にはならんだろうから寧ろ不向きだろうって直観的に思う
789デフォルトの名無しさん
2021/04/29(木) 12:43:37.33ID:JBnzphH4 >>783
この前それ立ち読みしたけど去年秀和から出た実践〜の8章理解しとけば十分な気がした
この前それ立ち読みしたけど去年秀和から出た実践〜の8章理解しとけば十分な気がした
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【前橋市】小川晶前市長とラブホテルで打ち合わせをした54歳男性職員を停職処分 今月末で依願退職するという [シャチ★]
- 【おこめ券】鈴木農相 米価維持の意図「一切ない」★2 [ぐれ★]
- 【埼玉】「無免許で高速道路で事故」トラックの追突事故で10代男性死亡 無免許過失運転致死の疑いでトルコ国籍の男(22)逮捕 戸田市 [ぐれ★]
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★6 [七波羅探題★]
- 広島・廿日市、おこめ券配布せず 全市民に3000円現金給付へ [どどん★]
- 【警視庁】走行中の電車で女性に露出した下半身押しつけたか 無職の男(46)逮捕「チャンスがあればいつでもやる」 [nita★]
- アメップ「ジャップ安すぎワロタ。飛行機代込でもフロリダより東京のディズニー行った方が安いまである」 [649381991]
- 【実況】博衣こよりのえちえちチーズケーキを仕込み(雑談あり)🧪★2
- 【悲報】マクベ大佐「いい音色だろ(壺を弾く)」僕副官「統一教会っすかw」マクベ大佐「北宋だ(怒)」 [616817505]
- 【速報】1ポンド210円で日英GDP逆転(残り1.5円)...世界6位の経済規模に転落 [237216734]
- じゃあ何券だったら、日本人は満足したんだよ [452836546]
- 朝日新聞記者「中国軍のレーダー照射はこめかみに銃を突きつけられたのと同じ。僕なら反撃して撃墜してる」高市 [931948549]
