スレタイ以外の言語も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
656デフォルトの名無しさん
2021/03/20(土) 09:27:09.06ID:SD207SQV >>654
まだ1.5じゃね?
まだ1.5じゃね?
657デフォルトの名無しさん
2021/03/20(土) 09:38:24.94ID:vUNrx7r3 よし見慣れた
早く使いたい
早く使いたい
658デフォルトの名無しさん
2021/03/20(土) 11:47:53.86ID:ARQDcx4T >>655
go
go
659デフォルトの名無しさん
2021/03/20(土) 13:16:39.14ID:KZGebSzt linux kernelにrustディレクトリが出来たみたいだね
次世代言語として磐石な立ち位置を確立したね
次世代言語として磐石な立ち位置を確立したね
660デフォルトの名無しさん
2021/03/20(土) 13:40:40.93ID:Yqrg6wwp どの部分を置き換えるんだろうな?
661デフォルトの名無しさん
2021/03/20(土) 13:46:03.02ID:WZkKHDRu Pythonブーム終われと思ってる
662デフォルトの名無しさん
2021/03/20(土) 14:07:37.20ID:IyzEzHor Ruby on Rails 6 の本を出している人の、入門書が出た。
Erlang/OTP 上で動く、Ruby風の関数型言語
Elixir実践ガイド、黒田努、2021/2/5
Ubuntu 20.04, Docker CE 19.03, Elixir 1.11
>>655
皆Python から、MIT製のJulia へ移行してる
Erlang/OTP 上で動く、Ruby風の関数型言語
Elixir実践ガイド、黒田努、2021/2/5
Ubuntu 20.04, Docker CE 19.03, Elixir 1.11
>>655
皆Python から、MIT製のJulia へ移行してる
663デフォルトの名無しさん
2021/03/20(土) 14:08:30.45ID:RK0j7xAM Pythonブームが終わるのはいいけど
その次のやつはテンプレートメタプログラミングをやるのかやらないのか
早く判断しないと話が始まらない
その次のやつはテンプレートメタプログラミングをやるのかやらないのか
早く判断しないと話が始まらない
664デフォルトの名無しさん
2021/03/20(土) 14:31:20.03ID:OmO/62/g665デフォルトの名無しさん
2021/03/20(土) 14:33:14.82ID:Yqrg6wwp666デフォルトの名無しさん
2021/03/20(土) 19:00:58.65ID:1UkxzHtC >>662
juliaなんて流行るわけねーだろあんなfortranくさい言語
juliaなんて流行るわけねーだろあんなfortranくさい言語
667デフォルトの名無しさん
2021/03/20(土) 19:07:26.91ID:pbI+9NdC とりあえず言語の名前は固有名詞で唯一無二のネーミングを新たに創造してほしい
668デフォルトの名無しさん
2021/03/20(土) 21:01:13.23ID:Yqrg6wwp 5文字ぐらいの単語をランダムに生成して辞書引きでヒットしなかったものを使うしかないけどそんなの流行るかな?
669デフォルトの名無しさん
2021/03/20(土) 21:10:08.83ID:2mvexEfV そんな極端なことしなくても、ちょっと綴りをもじるぐらいで良いじゃん。
BluRayみたいな。
BluRayみたいな。
670デフォルトの名無しさん
2021/03/20(土) 21:17:55.54ID:yTMQr8HE AV女優ばっか検索かかっちゃう言語名で良いのかね
671デフォルトの名無しさん
2021/03/20(土) 21:53:24.28ID:Yqrg6wwp xxx langで大抵ははじけるけどな
672デフォルトの名無しさん
2021/03/20(土) 21:57:26.85ID:CnPV4MQo 外国人はきちんとlangつけてて国内の人はlangつけてないって傾向ある?
673デフォルトの名無しさん
2021/03/20(土) 22:01:58.22ID:vUNrx7r3 JavaのやつC#でもうあったわ
674デフォルトの名無しさん
2021/03/21(日) 11:30:16.19ID:LObm+gcQ rustで検索するとネトゲしか出て来ない時期あったな
675デフォルトの名無しさん
2021/03/21(日) 17:56:17.54ID:SWaIFGXw とりあえず Go おまえの名前はだめだ
Go の何がだめといって名前がクソすぎる
Go の何がだめといって名前がクソすぎる
676デフォルトの名無しさん
2021/03/22(月) 00:46:24.50ID:TakJ5P2I Goだと検索に引っかかりにくいという難点はあるな
677デフォルトの名無しさん
2021/03/22(月) 10:30:05.11ID:34uAeWpb 外国人は一文字言語の頃からちゃんとlangと付けてたのかねえ
678デフォルトの名無しさん
2021/03/22(月) 10:40:46.73ID:g8se3Ggw clangがな
679デフォルトの名無しさん
2021/03/22(月) 12:24:42.48ID:b6jSgIhJ Cとかはインターネット自体がまだそんなに普及してなかったからな
680デフォルトの名無しさん
2021/03/22(月) 17:29:55.95ID:mGS5nVo3 >>655
Nim
Nim
681デフォルトの名無しさん
2021/03/22(月) 21:57:37.36ID:9lhdYRnl つかググラビリティを気にするようになったのは2000年以降だろう
682デフォルトの名無しさん
2021/03/22(月) 21:59:15.41ID:SRfXrm/K その頃はまだヤフってたわ
683デフォルトの名無しさん
2021/03/22(月) 23:37:25.80ID:cezDTGq+ 千里眼使ってたわ。
684デフォルトの名無しさん
2021/03/23(火) 21:05:10.36ID:ekfmkzWo Microsoft Power Fx のご紹介
https://community.dynamics.com/365/b/dynamicsblog-ja-jp/posts/microsoft-power-fx
https://community.dynamics.com/365/b/dynamicsblog-ja-jp/posts/microsoft-power-fx
685デフォルトの名無しさん
2021/03/25(木) 09:09:11.03ID:/Q1xsaOg >>655
Julia
Julia
686デフォルトの名無しさん
2021/03/25(木) 16:48:07.88ID:LuSagST9 プログラミング言語Crystal、初のメジャーリリースとなるバージョン1.0を公開
687デフォルトの名無しさん
2021/03/25(木) 17:03:45.18ID:xF1J6Xyz Rubyが好きな人のためのコンパイラか
688デフォルトの名無しさん
2021/03/25(木) 18:30:54.53ID:18nzHvsr 最近は、Go, Rust よりも、Elixir が熱い
動的型付けの関数型で、型を書かないのが楽チン
動的型付けの関数型で、型を書かないのが楽チン
689デフォルトの名無しさん
2021/03/25(木) 20:04:29.48ID:KmpgWBAt Erlang VMのお世話が大変だろ
なんでJava等と比べてGoがデプロイ楽と言われてるか
シングルバイナリで行けるからだろ
ScalaやClojureはJavaVM、ElixirはErlangVMから実行時まで逃れられない
なんでJava等と比べてGoがデプロイ楽と言われてるか
シングルバイナリで行けるからだろ
ScalaやClojureはJavaVM、ElixirはErlangVMから実行時まで逃れられない
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原則のに従うようきっちり依存性逆転させるのは骨が折れる。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国とロシアの爆撃機、日本周辺で共同飛行 [少考さん★]
- 「中国側も日本機のレーダーを感知していた」 中国メディアが報道 [♪♪♪★]
- 【YouTuber】バイク事故で入院のゆたぼん、振込で「お見舞金」募る [muffin★]
- 高市早苗首相、消費税減税に後ろ向き 足かせはレジシステム? 「責任ある積極財政」期待高いが [蚤の市★]
- 堀江貴文、キャッシュレス非対応の店にモヤッ 『PayPay』立ち上げの人物にまさかの直談判「現金決済しかできないんだけど…」 [冬月記者★]
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★7 [七波羅探題★]
- 防衛省、中国を完全論破www 「事前通告があったのは海自であって空自ではない」 高市早苗勝利 [175344491]
- 【悲惨】中国軍が自衛隊に「事前通告」し自衛隊も返答した音声が公開されてしまうwwwこれは高市チェックアウトゕ★4 [597533159]
- 【悲報】JA「全然米が売れなくて倉庫を圧迫してる。助けて!」米卸売り業者「安売りしたら赤字になる…助けて!」 [802034645]
- 【朗報】カプコン「これからはロックマン・デビルメイクライ・逆転裁判を主力IPになれるように育てるわ」 [394133584]
- 気が狂いそう
- 無限大の世界の主 vs ヘリコプターのパイロット
