結局C++とRustってどっちが良いの? 2traitsat TECH
結局C++とRustってどっちが良いの? 2traits - 暇つぶし2ch998:デフォルトの名無しさん
23/05/04 09:18:33.73 4+acb+xt.net
1ファイルが1モジュール限定なら1960~80年代の古代の言語じゃん
ファイルの冒頭でモジュール名やプロシージャー名を指定するあれ

999:デフォルトの名無しさん
23/05/04 09:23:38.28 aSm9nQgp.net
>>979
ありがとう

1000:デフォルトの名無しさん
23/05/04 09:28:14.17 BOGxwae7.net
>>981
その後に説明しているのに
説明を読まずに一部を切り取りするとは性格歪んでる

>>982
Rustはそんなことはなく自由度が高い
自由にファイル分割やディレクトリ分けをして全体を一つのモジュールとして見せることも可能
逆にファイル一つに複数のモジュールを定義することも可能

1001:デフォルトの名無しさん
23/05/04 12:05:42.79 XE2Na1jR.net
自由度が高いからJavaのように何も考えなくてもファイル分割できる指針がなくて困ってるんでしょ

モジュール分割って疎結合高凝集になるようグルーピングしましょうという当たり前の話なんだけどたぶんやったことがないと難しいんだよ
だからどうモジュール分割すべきかなんて小難しいそうなことを考えなくてもファイルを分割できる指針を”ベストプラクティス”という名で求めてるんだと思う
モジュール分割が先にあってそれに合わせてファイル分割するのが本来の姿だから考え方が逆なんだけどね

1002:デフォルトの名無しさん
23/05/04 12:16:56.04 UA4lEoz+.net
>>985
「公開されるモジュール仕様」に対して
「実際にプログラミングする際のファイルやディレクトリ構成」の自由度がどの程度かが焦点だろ
前者の「公開されるモジュール仕様」はプログラミング言語やその機能とは直接関係ない話でありこのスレでも対象外
後者の「実際にプログラミングする際のファイルやディレクトリ構成」の自由度が言語により異なってくる部分
Rustは最大限の自由度がある言語の一つ

1003:デフォルトの名無しさん
23/05/04 12:27:57.50 BxJFarE7.net
Javaも
クラス大きすぎるとダメだから分けろとか
クラス多すぎるとダメだからまとめろとかパッケージ分けろとか
パッケージまたぐと絡まるから変な分け方するなとか
それなりに悩みはあったと思う

ただC++でも似たような悩みはあるはずだからファイル分割の仕組みの違いで戸惑いがあるのかもしれない
C/C++はソース単位でコンパイルして最後にリンカでくっつけるけど
Rustは全体を分割された1つのソースの塊とみなして一気にコンパイルする感じだから
とりあえず部品から考えるボトムアップ的なアプローチの人は引っ掛かりそう

1004:デフォルトの名無しさん
23/05/04 12:34:51.67 x0Q1J+Im.net
私の頭がわるいんだろうけどファイル分割は他よりわかりにくかったわ

1005:デフォルトの名無しさん
23/05/04 12:47:28.68 nFTKSuN5.net
>>987
どういう方針でモジュールを分けるかはプロジェクトの方針やライブラリの方針でしょう
その方針に対してプログラミング言語によってはモジュール分けやファイル分けやディレクトリ分けに何らかの制限があって方針が引き摺られてしまうかどうかが重要なところでしょう
Rustはそこに制限はないから方針が言語によって引き摺られることはないでしょう
仮にどんなにファイルを分けたとしてもRustではそれとは関係なく外に対して見せずに済みますから外向けと内部構造は互いに自由度があります

>>988
外に対してどう見せるかと内部をどう分けるかを別々に決められるようになっているからその区別する意識を持たないと迷う人が出るかもしれませんね

1006:デフォルトの名無しさん
23/05/04 13:05:47.30 Sq+gJjNT.net
>>986
Javaの1クラス/インターフェースで1ファイルという指針があれば自由度は低いけど考えなくて済むでしょ
Rustではstructの定義とimplをtraitの実装と同じモジュールに入れることもあればtraitを定義してるモジュールのほうにstructのtrait実装を含めることもある
そんなに自由だとどうしていいかわからないからもっとルール(ベストプラクティス)で縛って欲しいというのが最初の質問者の本音だと思うわけ
だとしたら君の返答は的外れじゃないかい?ってこと

1007:デフォルトの名無しさん
23/05/04 13:23:02.85 JNVfsZ/B.net
何でそんなつまらんことで議論してるのか分からんC/C++ユーザの俺

1008:デフォルトの名無しさん
23/05/04 13:27:53.50 Pbw0n2Gt.net
バカだから

1009:デフォルトの名無しさん
23/05/04 13:42:19.29 JNVfsZ/B.net
モジュールの分け方なんてC/C++で完成されてると思うんだけども
後発の言語は何が便利になったのかね?

1010:デフォルトの名無しさん
23/05/04 13:56:22.33 i7Oqolfe.net
Rustだと何かができなくて困る、ってことは何もない
Java方式でも他の方式でも何でも各自や所属先やプロジェクトの方針でやればいい
まともなプログラマーは標準ライブラリや有名クレートのソースを読むのでRustでの普通の流儀を分かっている
参考になるものが公開されているのに見ずに文句を言うバカは放置しとけ

1011:デフォルトの名無しさん
23/05/04 14:17:24.34 VOb3FI4m.net
rustだけで見ていてはダメだな。
CとRustが混在するprojectを考えないと本当の用途は分からない

1012:デフォルトの名無しさん
23/05/04 14:18:33.91 c9bfGq1+.net
リファレンス読む前に、概要を教わりたい派だから、ゆるい議論は役に立ってるよ
文句は言わないから

1013:デフォルトの名無しさん
23/05/04 14:43:36.62 Rp6nFyYP.net
>>993
完成してんのにC++20でも変更するのかよw

1014:デフォルトの名無しさん
23/05/04 14:46:43.50 7/I9T8P9.net
>>997
モジュール化に関わる変更あったっけ?

1015:デフォルトの名無しさん
23/05/04 14:48:32.70 K35qCUKZ.net
RustのmoduleはPythonと似てる
違うのは
Rustはmodule.rsと同じsubdirectory(./module)を造ってsubmodule.rsを入れる
module.rsにsubmoduleを描く人もいる
Pythonはsubdirectory(./module)を造って__init__.pyを描く
__init__.pyの中にsubmoduleを描く人もいるし./module/submodule.pyを描く人もいる

1016:デフォルトの名無しさん
23/05/04 14:49:18.87 K35qCUKZ.net
継ぎ
スレリンク(tech板)

1017:1001
Over 1000 Thread Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 32日 14時間 6分 22秒

1018:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch