X



次世代言語29 TypeScript Swift Go Kotlin Rust Nim

■ このスレッドは過去ログ倉庫に格納されています
0612デフォルトの名無しさん
垢版 |
2022/10/01(土) 23:39:41.67ID:sINRWAWi
殊更に型の重要性を連呼する人間は、本人が有能か無能かはともかく、自分含めて人間の技能と精度を信用していないというのは確かだと思うよ
0613デフォルトの名無しさん
垢版 |
2022/10/02(日) 05:56:42.85ID:ieoagAHy
>>611
では質問するがなぜMicrosoftはJavascriptは不十分だと認識してTypescriptを開発したの?そして普及したの?
なぜPythonなどのスクリプト言語はしきりに型ヒント機能を追加してるの?

無能は型の重要性を理解できないお前、エンタープライズでは必須
0615デフォルトの名無しさん
垢版 |
2022/10/02(日) 08:25:14.53ID:kfWfVuRd
>>611
みんな無能だよ。

たまに型無しで完璧にやれるやつはいるけど、そういう奴は他の人と一緒に仕事しても自分の高い能力を盾にルールに従ってもらえないから面倒だわ。

一人でR&Dとか調査主体の部署でやってもらうのが無難。
0616デフォルトの名無しさん
垢版 |
2022/10/02(日) 09:29:20.44ID:nK3zLFOq
無能向けのルールに従っていたらせっかくの高い能力を発揮できないじゃん
妥当じゃないの
0617デフォルトの名無しさん
垢版 |
2022/10/02(日) 10:19:17.56ID:/RWx79y8
>>616
ところが >>611 みたいのは能力が高いわけで無いという。
0618デフォルトの名無しさん
垢版 |
2022/10/02(日) 11:45:56.93ID:HCH0ui8L
>>594
>あらゆるノイズを排除してここまで差が出る
全然ノイズ排除できてないじゃんww
意味のないベンチだよ
0619デフォルトの名無しさん
垢版 |
2022/10/02(日) 11:49:28.21ID:nGDo4Vej
>>613
型パズルで開発者にできた感を与えられるから
で実際、型を合わせるだけで正常系は大体うまく動くからね
0623デフォルトの名無しさん
垢版 |
2022/10/02(日) 12:04:09.63ID:37W/LuFO
まあ実際動的型付け言語でやるプロジェクトは
少数精鋭のチーム編成ができないと厳しいわな

メンバーが多くてコミュニケーションコストが高かったり入れ替わりが頻繁だったり下請け孫請けから最低ラインを下回るメンツが入ってくるようなら静的型付け言語のほうが楽
0624デフォルトの名無しさん
垢版 |
2022/10/02(日) 12:30:18.64ID:Bnxz+VO6
>>618
どこができてない?ヘッダに多少差があるとはいえ明確な差が出てるよね
Nodeはhttpモジュール使っても遅いし言語自体がゴミとしか言いようがない
0625デフォルトの名無しさん
垢版 |
2022/10/02(日) 12:34:37.19ID:Bnxz+VO6
APIに存在しうるCPU処理、IO処理を排除してミニマムな状態でもGoやRustと比べるとここまで差が出る

だからISUCONで誰もNodeなんか使わないんだよ
Goは手軽でスピードが出るから人気なのは自明だな
0626デフォルトの名無しさん
垢版 |
2022/10/02(日) 18:32:39.72ID:95XqQzPR
>>622
このスレに居てその質問は流石に不勉強じゃないかな……

静的型付け言語での実装においてもテストはもちろん書かれるよ
当然テストに網羅性は無いわけだけど、型はそれを補ってくれて、テストで調べるべき範囲を絞ってくれる訳だ
スイスチーズモデルにしても型は理論的に一定の範囲に穴がないことを保証してくれるのでテストの良き友だよ

ランタイムやコンパイラの型の実装が間違ってるかもしれないとかいう意見は、構文解析が間違ってるとか最適化が間違ってる並の、有り得はするけど議論するレイヤーが異なる難癖なので無視するよ
0631デフォルトの名無しさん
垢版 |
2022/10/02(日) 20:37:15.64ID:X4ijFCuF
>>630
Rustはプログラムを書き始めるためのcargo new --lib した時にテスト用mod testsの雛形が自動的に生成用意されるくらいテスト重視主義の言語
もちろん強力な型システムによりRustコンパイラがコンパイル時点でデータ競合を含む多くのバグを実行する前に指摘してくれるのも事実
その分だけテスト記述は本来のロジックに関するテストに対して専念できる
0632デフォルトの名無しさん
垢版 |
2022/10/02(日) 20:38:45.06ID:zjrrEOrw
>>630
それって
コンパイラが教えないバグが一部存在してもコンパイラにペナルティがないこと
を問題視しているんだよね

全部教えると断言すればきっと罰を受けるのになあってことだよね
0633デフォルトの名無しさん
垢版 |
2022/10/02(日) 20:47:01.74ID:Vwpwuo9W
>>627
バカにされてる、というか煽られている部分を感じなかった訳じゃないけど、そうだとしても煽ってくる人間は、型とテストが複合的にエラーを減らす手段であって排他なものではないということを、理解していないか少なくとも認識していないので、レスの内容は変わらないよ

大体実装が早くできて楽だよね、っていう動的型付け言語の特性を私は否定するつもりはないし
技術というのはメリット・デメリットを認識した上で選定するものであって、単に煽るだけとか無能呼ばわりするような人間がそれらを認識できてるとは思わないし、もし不勉強と言われたくないならテストを書くという単一の手段がエラーを防ぐという点でどういう十分さがあるのか説明しなきゃ

あと
>>630
Rustだって基本のツールチェーンでテストが実行できるように作られてるんだからテストが必要ないなんで事は少なくとも言語開発チームは思っちゃいないよ
テキトー言わんでくれるかな
0634デフォルトの名無しさん
垢版 |
2022/10/02(日) 21:05:46.88ID:2u4kRfur
>>633
かつての静的型付け言語は型宣言が面倒だったため動的型付け言語は型宣言が必要ない僅かな分だけ有利だった
今の静的型付け言語は自動的に型推論が行われるため動的型付け言語が有利なことはない
実行時デバッグの手間が増える動的型付け言語は劣ったプログラミング言語
0635デフォルトの名無しさん
垢版 |
2022/10/02(日) 21:25:54.32ID:zjrrEOrw
現実は違う
まるで不殺主人公みたいに動的型を殺さないし、コンパイルが通らなかった人を殺さない
検査しかしないくせに結構役に立つのが現実
0636デフォルトの名無しさん
垢版 |
2022/10/02(日) 22:58:21.35ID:5dFyg2Cc
FacebookがRust使ってると自慢レスがあったけど。
それでFacebookは使いにくいのかと納得してしまった。
0637デフォルトの名無しさん
垢版 |
2022/10/02(日) 23:20:02.90ID:/RWx79y8
c++は拡張子が規格で決まってない糞だ
0640デフォルトの名無しさん
垢版 |
2022/10/02(日) 23:57:50.44ID:5dFyg2Cc
>>638
アマゾンが倒産する日も近いな。
0641デフォルトの名無しさん
垢版 |
2022/10/03(月) 00:04:13.05ID:FlGgn4CT
Rust Foundationを共同設立したGoogle, Microsoft, Amazonなど各社は負け組になる可能性ありうる
0642デフォルトの名無しさん
垢版 |
2022/10/03(月) 00:06:35.78ID:U6ww4YhW
型の話はRDBとNoSQLの比較で
schema on writeがいいかschema on readがいいかという話と同じ
どちらか一方がが常に言い訳ではなくそれぞれ良し悪しがある
0644デフォルトの名無しさん
垢版 |
2022/10/03(月) 01:01:23.35ID:8GQ2M+OR
>>642
NoSQLデータベースの多くはschema on readではなく、単に入れたものをそのまま出すだけだ
多くのNoSQLはオンライン性能が重要なため、Elasticsearchのようにschema on writeを使用するものもある
schema on readはむしろデータ分析用途でリレーショナルモデルとSQLで使用される場合が多い
0645デフォルトの名無しさん
垢版 |
2022/10/03(月) 01:23:30.99ID:8DSCRzId
OLTP用かつschema on readなNoSQL DBってあるっけ?
MongoやDynamoDBみたいなKVS+α系はキースキーマとインデックスの併用だから典型的なschema on writeだよな
インデックスなしのスキャン操作はschema on readと言えなくもないけどオンラインでは普通使わないよね
0646デフォルトの名無しさん
垢版 |
2022/10/03(月) 05:58:59.43ID:j+ZBVQFg
>>643
原始的なアセンブラはアドレスに型が無く、アドレスに何が入っているかによって人間が命令を使い分ける。
その状態より型があるほうが便利なのでC言語は支持された。
0647デフォルトの名無しさん
垢版 |
2022/10/03(月) 06:14:28.71ID:g/IsZXX1
a[i]の順序を逆にi[a]と書くのが何故マナー違反かって質問が存在することは誰も否定しなかったので
質問が存在するゆえに型が存在する
0648デフォルトの名無しさん
垢版 |
2022/10/03(月) 10:12:35.74ID:BGisZcin
>>640
判ります
0649デフォルトの名無しさん
垢版 |
2022/10/03(月) 10:14:07.92ID:BGisZcin
>>646
アドレッシング用レジスタとデータ用レジスタの区別も無い罠
プログラムカウンタでさえただのレジスタと区別しないの好き
0650デフォルトの名無しさん
垢版 |
2022/10/03(月) 10:16:41.11ID:BGisZcin
>>637
OSが存在しないファイルシステムも存在しない環境でどうやって拡張子を定義するんだって話
0651デフォルトの名無しさん
垢版 |
2022/10/03(月) 10:19:27.04ID:BGisZcin
>>633
>型とテストが複合的にエラーを減らす手段であって排他なものではないということを、理解していないか少なくとも認識していない

めっちゃ判ります
っていうか煽るためにわざと知らない気付かないフリしてるのかと思える
0652デフォルトの名無しさん
垢版 |
2022/10/03(月) 10:23:00.71ID:TB48Z0Cc
・動的型付け言語 ←動的動作のためメモリ上に型情報が必要となる
・GCあり言語 ←GCのためにメモリ上に一部型情報が必要となる
・GCなし言語 ←基本的にはメモリ上に型情報は必要ない
 (ただし敢えて動的に型を扱いたい時は型情報をメモリ上に持たせる)
0653デフォルトの名無しさん
垢版 |
2022/10/03(月) 11:43:54.89ID:+b5G+0cY
>>644
>NoSQLデータベースの多くはschema on readではなく、単に入れたものをそのまま出すだけだ

schema on readの意味くらいは理解してからレスしろ
0655デフォルトの名無しさん
垢版 |
2022/10/03(月) 12:09:23.06ID:iqvSOKEH
恥ずかしいから>>654こそ調べたほうがいいぞ
schema on readというのはデータ分析や大規模バッチ処理の文脈で出てくる言葉で、Hadoopのように検索時に生に近い形式のデータを力業でフルスキャンする方式だ
データ分析においてはデータの取り込みは柔軟にしつつ読むときに工夫しろというベストプラクティスがあって、それを端的に表している
対してschema on writeってのは普通のRDBやMongoDB、Elasticsearchのような、書き込み時にスキーマ情報を使ってインデックスを作る方式を指す
0656デフォルトの名無しさん
垢版 |
2022/10/03(月) 12:15:37.58ID:FME7tQvo
>>650
それは実行環境であって、開発ビルド環境のソースファイルは関係ねーだろ?
それともお前はOSも無いファイルシステムもない環境で開発ビルドしたことあんのかよ?あ?
0658デフォルトの名無しさん
垢版 |
2022/10/04(火) 00:52:19.50ID:0X2CPyYg
>>657
ム板で、ソースがファイルじゃないなら何?
0659デフォルトの名無しさん
垢版 |
2022/10/04(火) 06:00:39.30ID:/0MiP4cL
>>658
ストリームとかじゃね
あるかどうかは知らんけどワンパスコンパイラなら標準入力からソースもらうとか可能なはず
0660デフォルトの名無しさん
垢版 |
2022/10/04(火) 09:09:48.35ID:k8Tx7LNR
こういうとき絶対>>657本人じゃなくて
横から「○○じゃね?」っていうやつがやってくるの面白いよね
0661デフォルトの名無しさん
垢版 |
2022/10/04(火) 11:43:33.67ID:tBDpfoR6
>>660
知らんけど がついてたらモアベターだったよね。
0662デフォルトの名無しさん
垢版 |
2022/10/04(火) 12:54:23.68ID:b5efofhH
ファイル以外のソースがあるとしてそれがファイルの拡張子が決まってないこととなんか関係あるのか?

知らんけどw
0664デフォルトの名無しさん
垢版 |
2022/10/04(火) 13:44:57.74ID:r+s1ZTqA
そんな話じゃないでしょ…
C++の規格はフリースタンディングも想定してるから、ファイルシステムなんかそもそも規約に入れようが無く、結果、ソースファイルについても何の規約も無い、みたいな話ではないの?
規約が無いかは調べてないけど。
0665デフォルトの名無しさん
垢版 |
2022/10/04(火) 13:59:03.52ID:fLWYqVho
C言語のソースファイルは*.c
そしてヘッダファイルは*.h
決まっていて困ることはない
ファイルシステムがどうこう言い訳してるやつは屁理屈
0666デフォルトの名無しさん
垢版 |
2022/10/04(火) 14:14:34.11ID:ye813FXw
>>662
ストリームに名前なんて無いんだから拡張子なんてつけようがないだろ

>>664
そもそも開発環境とかを規定してる言語の方が珍しいだろ
0668デフォルトの名無しさん
垢版 |
2022/10/04(火) 18:44:15.47ID:OYHWMS0e
>>658
ソースは俺。
0670デフォルトの名無しさん
垢版 |
2022/10/04(火) 19:21:43.31ID:r+s1ZTqA
知ってる範囲ではc#が規格内に拡張子が書かれてるけど、確かに規定では無いな。
0672デフォルトの名無しさん
垢版 |
2022/10/04(火) 21:35:32.21ID:3BE5Mov4
汎用機とかでファイル名の最大長が短くて拡張子使わないケースとかはあるわな
0673デフォルトの名無しさん
垢版 |
2022/10/04(火) 21:49:54.68ID:AC9so0xb
>>671
javaは拡張子やフォルダー構成も決まってたような気がするけど言語仕様なのか単なる開発環境の決め事なのかはよく知らん
0679デフォルトの名無しさん
垢版 |
2022/10/05(水) 17:51:07.30ID:DUWBs0va
c++は
.cpp
.cc
.cxx
.c++
.C
.hpp
.hh
.H
とか節操無さすぎ。
0681デフォルトの名無しさん
垢版 |
2022/10/06(木) 02:02:14.61ID:fggEPvCQ
c言語は UNIX という OSを実装するために作られたものだから
ファイルシステムとは表裏一体だったという歴史は捨てようがない
派生した言語や OS も色々引きずっている
0684デフォルトの名無しさん
垢版 |
2022/10/06(木) 05:57:55.23ID:fggEPvCQ
拡張子の文化が広まったのは、
8ビットマイコン時代にCP/Mが普及したのがキッカケで
CP/M→MS-DOS→windows の系譜で定着したのだろう
当初は、アセンブリ言語のソースや実行ファイルを拡張子で区別したが
高水準言語(高級言語)が次第に移植された
0685デフォルトの名無しさん
垢版 |
2022/10/06(木) 08:26:06.13ID:1S4CXjHy
拡張子の由来
https://ja.wikipedia.org/wiki/%E6%8B%A1%E5%BC%B5%E5%AD%90#%E6%8B%A1%E5%BC%B5%E5%AD%90%E3%81%AE%E7%94%B1%E6%9D%A5

拡張子は、もともとはDECのオペレーティングシステム (OS) 、たとえば、TOPS-10、OS/8やRT-11に利用されていた。
その後、CP/Mでも採用された。CP/Mのファイル名は8+3バイトの構成になっており、後ろの3バイトが拡張子と呼ばれた。
さらにCP/Mと互換性を取るため、MS-DOSやOS/2、Windowsなどに受け継がれた。現在のWindowsでは3バイトの制限はない。
0687デフォルトの名無しさん
垢版 |
2022/10/06(木) 08:44:08.07ID:fggEPvCQ
そりゃ、K&Rの時代から .c .hが有ったにしても
DECのミニコンを庶民はそうそう導入できない
0688デフォルトの名無しさん
垢版 |
2022/10/06(木) 09:13:49.27ID:MAWAKzq8
そりゃ当然、コンピュータを使っている人への普及の話だろ。使ってもいない人に普及するわけはないが。
0690デフォルトの名無しさん
垢版 |
2022/10/06(木) 09:59:11.55ID:fggEPvCQ
>>689
UNIXとCの話は先に書いたから、
次にマイコン時代の浸透と拡散の話に進めたけど、早かったか
それらの前、BCPL等の時代に拡張子やファイルの概念があったのかは調査中だ
0691デフォルトの名無しさん
垢版 |
2022/10/06(木) 10:07:30.39ID:ojVJdV1x
簡単過ぎるから未解決のまま放置される問題というのがある
アクセルとブレーキどうやって区別するのかとか
拡張子を何にするかとか
0693デフォルトの名無しさん
垢版 |
2022/10/06(木) 14:56:07.85ID:HrpdOifl
>>691
優先度低いためにいつまでたっても解決されない問題とかあるわ。
本来なら時間経過とともに優先度は上げるべきなんだよな。
0694デフォルトの名無しさん
垢版 |
2022/10/06(木) 15:37:24.75ID:HCQdlFdq
ホントに困ってたら優先順位上げるだろ
ずっと低いままと言う事はたいして困ってないってこと
0695デフォルトの名無しさん
垢版 |
2022/10/06(木) 19:23:24.18ID:vU5+2GOh
>>694
追加機能とか便利になる機能とかは困ってるわけじゃないからなぁ。
0697デフォルトの名無しさん
垢版 |
2022/10/06(木) 22:34:31.24ID:Ok1z/xEn
やっぱりヘッダーファイルができた
C言語あたりから拡張子が必要になったんじゃないか
それまではソースファイル一つとオブジェクトファイル一つで
データは外から読んで、外に書き出すものだったから
0698デフォルトの名無しさん
垢版 |
2022/10/07(金) 12:11:11.36ID:d4ub3t4L
そもそもwikipediaをソースにしちゃうひとってω
0699デフォルトの名無しさん
垢版 |
2022/10/07(金) 12:12:35.68ID:d4ub3t4L
>>683
.inc とか .m とかたまに観る
0700デフォルトの名無しさん
垢版 |
2022/10/07(金) 12:14:03.56ID:d4ub3t4L
>>675
.N88 とか .BAS より古いのか
0703デフォルトの名無しさん
垢版 |
2022/10/08(土) 00:54:36.30ID:lWG3uN0c
>>700
Csave命令に拡張子はなかった
何冊か確認した
80年代のキッズ向けゲームプログラミングの本だ
0704デフォルトの名無しさん
垢版 |
2022/10/15(土) 13:35:22.93ID:7x3tyssR
Siv3DやDXライブラリ等のゲーム制作用のフレームワークを使用したくてC++に初めて手を出そうと思うのですが
世の中の風潮がC++での新規開発はナンセンスでありC++を代替する言語(主にRust?)を選択すべきとあるようです
正直C++もRustも構文が複雑ですぐに忘れそうなので、NimかZigが良さそうと感じました
Zigは安定版がまだまだ先なので採用できませんがNimが流行っていないのは何か致命的な欠点があるからでしょうか
0705デフォルトの名無しさん
垢版 |
2022/10/15(土) 13:37:39.38ID:ZvCbuaRx
ゲーム作りたいならunityかc++じゃないの?rustはいずれ台頭するかも知れないけど今はまだ成熟してない気がする。
0706デフォルトの名無しさん
垢版 |
2022/10/15(土) 13:48:06.01ID:7x3tyssR
>>705
Unity等のゲームエンジンは使用せずプログラミング言語(GCは無しか軽めのやつ)でいきたいです
C++のフレームワークは最悪DLL化すればよいので、読みやすくコンパイルや実行速度が速い言語が良いです
総合するとNimが最有力かなと思いました
Nimがなぜこんなにも流行っていないのか不思議でなりません
0707デフォルトの名無しさん
垢版 |
2022/10/15(土) 14:06:33.72ID:F6SpEMOp
C++が嫌、Unityも嫌って趣味でするなら何でもいいけど
もし仕事ならそれは無理があるw
0708デフォルトの名無しさん
垢版 |
2022/10/15(土) 14:14:29.81ID:VwzLwjKk
普通にフレームワーク使えば良くないか?
こだわりがあるわけでもないみたいだし
0710デフォルトの名無しさん
垢版 |
2022/10/15(土) 14:40:37.67ID:nv6vkvQj
Nimは別に致命的な欠陥があるとかではないんだろうけど
わざわざ使う理由もないんだよな
構文が好きな人はいるだろうけど結局個人の好みなので
みんなで移行するほどの動機にはならない
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況