22/06/11 17:26:46.05 /CWj/UNa.net
テスト書くから必要ないって事だろ
文盲か(何故か変換できない)?
759:デフォルトの名無しさん
22/06/11 18:42:07 R6kVrTwR.net
wasmにコンパイルされる専用言語が待たれるという説
760:デフォルトの名無しさん
22/06/11 19:13:02.17 Lxou0O6d.net
TSにはインクリメンタルビルドの仕組みがなくてファイル変更のたび毎回フルビルドが必要なの?
761:デフォルトの名無しさん
22/06/11 19:29:52.04 s2pWM27P.net
本当に欲しいのは制約であって型ではないし
762:デフォルトの名無しさん
22/06/11 19:35:24.48 Lxou0O6d.net
>>748
制約を明示したり強制したりするのにリーズナブルだから型が使われているんだと思うが
何で代替しようとしているの?
763:デフォルトの名無しさん
22/06/11 19:46:54.60 DMnkzfH9.net
>>749
型は制約じゃないぞ
階層理論の産物さ
制約とはtrait systemのことさ
764:デフォルトの名無しさん
22/06/11 20:03:26.11 CaCwxZ5g.net
窓の杜: 「Rust」でOSの自作に挑戦! 低レイヤーシステム開発の解説書『Rustで始める自作組込みOS入門』が発売.
URLリンク(forest.watch.impress.co.jp)
765:デフォルトの名無しさん
22/06/11 20:15:54.30 Kh7p4488.net
>>742
コンパイル時間でGoに勝てる言語ってある?
766:デフォルトの名無しさん
22/06/11 20:18:17.35 gW5FFec0.net
>>752
出来上がったバイナリ(deno本体)の実効速度の話ね
767:デフォルトの名無しさん
22/06/11 20:38:23.65 vVSWS2tb.net
>>752
DとGoはどちらが速い?
768:デフォルトの名無しさん
22/06/11 20:38:55.36 Q3eIHQbE.net
>>745
例えばある関数がnumberだけ返すことをテストで網羅できんの?
769:デフォルトの名無しさん
22/06/11 20:55:28.16 gW5FFec0.net
D言語って今ちょうどver2.100.0なんだね
770:デフォルトの名無しさん
22/06/11 21:05:03.93 DMnkzfH9.net
正直言ってD言語とかの存在価値がわからないんだが使っている人いるの?
771:デフォルトの名無しさん
22/06/11 21:11:25.04 Kh7p4488.net
>>753
何言ってんだこいつ
Denoはコンパイル時間って言ってるんだが
772:デフォルトの名無しさん
22/06/11 21:14:34.94 Q3eIHQbE.net
これだからトーシロはダメ
773:デフォルトの名無しさん
22/06/11 21:26:17.06 gW5FFec0.net
>>758
Go→RustもTS→JS
どっちも一貫してDeno自体の実行速度を最優先してるわけよ
774:デフォルトの名無しさん
22/06/11 21:48:50.29 qsQNDkHz.net
tsで問題視してたのはコンパイル時間の方じゃね?
775:デフォルトの名無しさん
22/06/11 21:55:33.13 N9Pa64KK.net
Denoのjsってそんなに大規模か?
VSCodeなんかに比べたら全然大した量じゃないように見えるが
ビルドパイプラインがヘボいんじゃね
776:デフォルトの名無しさん
22/06/11 22:14:50 Kh7p4488.net
>>760
文盲乙
777:デフォルトの名無しさん
22/06/11 22:17:19 gW5FFec0.net
>>761
その時間ってもろホットリロードのタイムラグなわけじゃん
778:デフォルトの名無しさん
22/06/11 23:00:17.90 Q3eIHQbE.net
Denoチームの連中が低学歴なんだろ
バカばっか
779:デフォルトの名無しさん
22/06/11 23:13:10.68 SJ0jyJTM.net
Rustのようにかなり強力にコンパイル時エラーでほとんどの問題を排除してくれる堅さとは異なり
TypeScriptは型チェックしかしてくれず元のJavaScriptの緩さから本質的には変わっていない
本体はがっちりRustで作りあとはJavaScriptという方針は間違っていない
780:デフォルトの名無しさん
22/06/11 23:15:22.91 Nh4QsFq2.net
確かにRustのコンパイルが遅いのが嫌だという意見はわかる。”C++より早いだろ?”とか”嘘つき!Rust速い!”とかコメントしなくてあ、結構です
仕組み上トレイトの組み合わせで遅くなるのはわかるんだが、もう少しどうにかならんかの?
781:デフォルトの名無しさん
22/06/12 00:08:25.22 GJbjpRb8.net
>>765
学歴コンプのある人はすーぐ学歴の問題にする
782:デフォルトの名無しさん
22/06/12 00:22:54 WtY28DSr.net
>>768
ハーバードでMBA持ってるけどな
F欄は口くせーから喋んなゴミ
783:デフォルトの名無しさん
22/06/12 00:34:08.70 C1U3DU3t.net
掲示板ではなんとでも言える
784:デフォルトの名無しさん
22/06/12 01:47:05.21 mpYnOnxd.net
>>769
知性のかけらも感じさせないレスだわね
785:デフォルトの名無しさん
22/06/12 02:09:11.61 p7K2g0W9.net
プログラミングにも理解があって英語ぺらっぺらな海外トップ学歴の経営人材なのに
日本語の匿名掲示板という狭い世界で推し言語の擁護にムキになってるとはご乱心だな
786:デフォルトの名無しさん
22/06/12 06:32:40.30 V1ZBG4pG.net
>>755
当然
787:デフォルトの名無しさん
22/06/12 06:42:11.19 OtYNM0HI.net
Javascriptに対するTypescriptってCに対するC++みたいなもんだろ?
その気になればある程度まともな型システムは使うことができる程度
788:デフォルトの名無しさん
22/06/12 08:25:07.16 54GVQ0UL.net
結局地がjsな以上互換性を保ちながら完全に型で覆うのは難しいよねって
まぁPurescriptみたいになってもらっても困るんだが……
789:デフォルトの名無しさん
22/06/12 08:59:49.71 Znbho8o6.net
JVMバイトコードに対するScalaみたいなもん
Java書くより罠が多いけど圧倒的に便利
バイトコードを直接書く阿呆はいない
こんな感じ
790:デフォルトの名無しさん
22/06/12 09:50:18 6guykT66.net
さすがにそこまでじゃない
JSをそれなりの規模で使いたければTS使った方が楽なのは確か
791:デフォルトの名無しさん
22/06/12 10:29:55.16 UPLi/RM9.net
denoてどのくらいnodeからの移行が進んでるんだろ?
792:デフォルトの名無しさん
22/06/12 11:30:16.99 C1U3DU3t.net
serialportとかちゃんと使えるならラズパイとかで使ってみたいな
793:デフォルトの名無しさん
22/06/12 12:13:55.79 TLk1B+cK.net
>>778
進まないから今現在必死に最適化してるんだろう
794:デフォルトの名無しさん
22/06/12 13:11:27.34 eghQJQYK.net
少なくともそのQiitaには、Denoの実行速度が遅いからJavaScriptに移行した、とまでは書いてないと思うんだけど、なんか誤読してる人多い?
Denoの実行速度が遅いからじゃなくて、Deno自体のビルド速度が遅くてDenoを開発する人にとって辛いから移行したんでしょ?
795:デフォルトの名無しさん
22/06/12 13:21:32.88 Znbho8o6.net
いやそこ誤読してる文盲はおらんやろ・・・おらんやら?
796:デフォルトの名無しさん
22/06/12 15:26:48.02 QJCkSZm+.net
typescriptのコンパイラはtypescriptで書かれてJavascriptにして実行されてるから遅いんだろう
言語としてはセルフコンパイルしたいし、いろんな環境で動かすためでもあるし
でもrustとかで書いてもいいのでは
797:デフォルトの名無しさん
22/06/12 15:28:48.97 QJCkSZm+.net
マシン語にしてるわけでもないし、処理としてはコンパイラとしては軽い方だから
rustにしたら爆速になるのでは
798:デフォルトの名無しさん
22/06/12 15:49:11.35 kUS96AVF.net
Kotlinとか確か開発者がロシアじゃなかったっけ?もうオープンソースだから米国的にはOKなの?
799:デフォルトの名無しさん
22/06/12 20:58:25.55 +vN+62Vi.net
いち早くロシアの侵攻を批難する声明を出したから許されてるんだろう
800:デフォルトの名無しさん
22/06/12 22:01:47.21 L2pGDO9p.net
>>786
いち早く出してねーよ
ロシア政府なみの嘘つくな
最初のツイートはロシアのプロパガンダと同じ巧妙な内容で反感買いまくってから追加で声明出したんだろ
801:デフォルトの名無しさん
22/06/12 22:19:05.57 e/a7Unpq.net
JetBrainsのサンクトペテルブルクのオフィスとブラハのオフィス(本社)の写真みたけどすげぇ格差だったわ
ああいうの見ると建前上の本社を東京に置いてる中華企業と体質が同じに感じてもう一つ信用できない
802:デフォルトの名無しさん
22/06/13 02:53:25.83 asZan2yI.net
tsの変換や型チェック処理する機能はgoやrustで書き直すプロジェクト進行中だから
そこは欠点じゃないよね
803:デフォルトの名無しさん
22/06/13 03:23:11.66 aNdPD0Bj.net
PHP+味付け程度にJSでシステム作ってる化石野郎でも応用効く言語教えやがれください
804:デフォルトの名無しさん
22/06/13 03:50:52.66 dm71PatD.net
またPHPの話してる
805:デフォルトの名無しさん
22/06/13 05:19:59.34 eNTeJ/va.net
PHPに勝ったところで次世代PHPにしかならないのに?
806:デフォルトの名無しさん
22/06/13 07:43:09.16 fjH64UU8.net
PHPってマジで話聞かなくなったよな
使ってるのって2010年代の旧システム?
807:デフォルトの名無しさん
22/06/13 09:29:29.62 dm71PatD.net
ワードプレスはもうPHPじゃなくなったのか?
808:デフォルトの名無しさん
22/06/13 09:30:42.95 eNTeJ/va.net
次世代言語すげー
809:デフォルトの名無しさん
22/06/13 19:42:18.44 FiSspViM.net
Goにオプショナル型とスプレッド構文とmap,reduce,filterのコネクション系操作が入ったら最高なんだけど
Go 2だとかで機能増やしてくれないかな
810:デフォルトの名無しさん
22/06/13 19:52:35.02 FiSspViM.net
Typescriptの糞なところ
標準ライブラリがゴミ、ゆえに依存が爆発的に増える
巨大node_modules、プロジェクトごとに作られるのが最高に糞
commonjsやらesmodulesやら統一されていないモジュール形式
prettierやらtsconfigやら大量の面倒な設定
サードパーティーのライブラリに向かってコードジャンプしても型定義ファイルに飛ぶせいでコードが読めない、ゆえにGithubを見に行く必要がある
例外の型定義がないので静的検査ができない、どこでエラーをどうハンドリングするべきかの判断が全くつかない、ゆえに全体をtry catchで囲むことになる
この辺がすべてGoでは問題ないから、あとは少し機能増やしてくれたら文句ないんだよなー
811:デフォルトの名無しさん
22/06/13 21:04:41.26 fjH64UU8.net
GoのMap糞過ぎて全く読めない
JSONをそのまま使えっておまけに型までつくTSさいつよってことなんよ
812:デフォルトの名無しさん
22/06/13 21:39:05.94 G3CRt2bF.net
構造体作ってマッピングするのじゃ何がダメなの?必要なのだけ定義すればいいんだが?
Typescriptだと型ガードしっかり書かないとただのなんちゃって状態になる雑魚
813:デフォルトの名無しさん
22/06/13 21:47:26.95 SDmJj53H.net
>>797
>サードパーティーのライブラリに向かってコードジャンプしても型定義ファイルに飛ぶせいでコードが読めない、ゆえにGithubを見に行く必要がある
「Atom」を開発終了に追いやった「Visual Studio Code」、月例更新でさらに強力に
URLリンク(forest.watch.impress.co.jp)
TypeScript開発では「TypeScript 4.7」が導入されたほか、待望の[ソース定義への移動]がサポートされた。100%の確度ではないが、型定義ファイル(*.d.ts)ではなく、JavaScriptによる実装部分へ直接ジャンプできる。
URLリンク(twitter.com)
(deleted an unsolicited ad)
814:デフォルトの名無しさん
22/06/13 22:06:28.03 FiSspViM.net
>>800
おーこんなのあったんだ、ありがとー
適当に試してみたけどできないのも結構あるね
815:デフォルトの名無しさん
22/06/13 22:32:02.90 GDAgVCx4.net
標準ライブラリ大きいのと小さいのどっちが良いのかね
816:デフォルトの名無しさん
22/06/13 22:36:53.23 q8SxO5f8.net
大きくて、APIが安定していて、ゴミが少ないやつが良い
スレタイの中だとGoだろうな
817:デフォルトの名無しさん
22/06/14 00:15:44.86 FCklzJDr.net
goはpackageの命名が糞杉
_すら許さないからどいつもこいつも呪文みたいになって可読性最悪
818:デフォルトの名無しさん
22/06/14 11:26:15.39 Rf4XfD/C.net
Dも_を変な扱い�
819:オてたな
820:デフォルトの名無しさん
22/06/14 11:32:38.45 8A+wXs8O.net
Effective Goでは、パッケージ名は1単語にしよう、って書かれてるけど、アンダースコアや大文字小文字が使えないわけではないよ
どうせ1単語とかいう命名規約はあまり守られてないだろうし、つらいならそのへんの規約も破っちゃえば?
821:デフォルトの名無しさん
22/06/14 12:24:42.88 yie2XOKe.net
アンダスコアはPythonが悪い
822:デフォルトの名無しさん
22/06/14 14:45:46.33 Hct9Q+tn.net
いまだにgenrandom, gen_raondom, genRandom, GenRandomのどれがいいかわからん
PythonやってるとgenrandomだがJavaScriptもやるからgenRandomも使う
GoもやるとなったらGenRandomまで使わんといかん
いったいどれがいいんだ?
誰か俺に教えてくれ
823:デフォルトの名無しさん
22/06/14 14:49:34.72 0h5AdYzJ.net
言語の推奨に従ってください
824:デフォルトの名無しさん
22/06/14 17:17:08.52 zltAtr9K.net
CSSならlong-name-propertyだし、JSONならLong_Name_Property、SQLならLONG_NAME_PROPERTYまたは
long_name_property、JSなど言語ならlongNamePropery、でも定数ならLONG_NAME_PROPERTY、CSVなどなら
Long Name Propertyだ。
そして、JavaやC#、C/C++、PythonやGoでもRustでも命名規則(多くは悪魔でも推奨)のようなものがあり、歴史的な経緯と
作者の今日子な意思、プログラミングのしずらさ、あるいはシヤスサ、あるいはコードレビューマウントのために脈々と受け継がれる。
つまり、人類はいまだに命名の正解を得ていない・・・
モジュール snake_case
型 CamelCase
トレイト CamelCase
Enumのバリアント CamelCase
関数 snake_case
825:デフォルトの名無しさん
22/06/14 17:26:35.25 OVbm/pyy.net
言語内で閉じるなら慣習に従うだけだけど言語またがる時は迷うよね
826:デフォルトの名無しさん
22/06/14 17:49:20.30 8A+wXs8O.net
標準ライブラリは名前が綺麗なのに、自分で命名しようとすると難しくて悲しい
827:デフォルトの名無しさん
22/06/14 17:55:42.15 jATTslXV.net
そうでもないぞ
RustのThe Bookに出てくる乱数のほぼ標準ライブラリは非常に名前が汚い
馬鹿が考えたような名前と構造
828:デフォルトの名無しさん
22/06/14 17:58:02.15 jATTslXV.net
Goも標準ライブラリが汚い
仕組みも複雑
829:デフォルトの名無しさん
22/06/14 17:58:54.42 yie2XOKe.net
C++とJavaも大概だわ
830:デフォルトの名無しさん
22/06/14 18:01:35.42 FCklzJDr.net
>>810
なおGoはlongnameproperty
ガイジか?
831:デフォルトの名無しさん
22/06/14 18:02:29.74 FCklzJDr.net
>>815
Goは後発の分際であの体たらく
どんな頭弱が作ったのか顔が見てみてーわ
832:デフォルトの名無しさん
22/06/14 18:08:01.45 jATTslXV.net
Goのstrconv::atoi()って
悲しくなるわ
833:デフォルトの名無しさん
22/06/14 18:13:47.77 Ypv3OCUB.net
>>804
_ "github.com/mattn/go-sqlite3"
>>806
だね、触ったこともない人が騒いでるだけ。とんでもねえアホ
834:デフォルトの名無しさん
22/06/14 18:18:15.24 wSQCOwvw.net
>>818
std::num::strconv::float_to_str_bytes_common
(´;ω;`)w
835:デフォルトの名無しさん
22/06/14 18:20:27.99 jATTslXV.net
golang入門したころにファイルの読み書きや文字の扱いのライブラリを見て愕然としたな
こういう世界がまだあるんだなって
836:デフォルトの名無しさん
22/06/14 18:31:08.14 OVbm/pyy.net
>>817
goの作者知らんのか...
837:デフォルトの名無しさん
22/06/14 18:32:45.87 FCklzJDr.net
>>819
golintでエラーだぞ
おまえこそエアプだろカス
PHPでも書いてろ
838:デフォルトの名無しさん
22/06/14 18:35:13.31 jATTslXV.net
goの作者の一人は有名人過ぎるけどもう後進に道を譲れよよ思う
839:デフォルトの名無しさん
22/06/14 18:40:13.93 xmR5ySSw.net
>>821
file, err := os.OpenFile("foo.txt", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0777)
これがキレイだとは決して思わんが....
let mut file = File::options().read(true).write(true).open("foo.txt")?;
これもどうかと思うぞ?何故、直感的ではないoptionsでopenに繋げるチェーンなのか..確かにオプションの設定はpanicが起こらないから
言語的な理由(言い訳)は分かる。でもRustってオプション扱いを第二引数にしない思想があるんだろうか...
>>822
デニス・リッチーとかC言語の作者とかだからC言語のライブラリと似た名前になるはある意味当たり前だよなあ
840:デフォルトの名無しさん
22/06/14 18:46:33.92 jATTslXV.net
>>825
Rustの標準ライブラリが汚い理由はオーバーロードがない、デフォルト引数がないから
841:デフォルトの名無しさん
22/06/14 18:47:21.55 8A+wXs8O.net
デニス・リッチーが直接に関わったという話は聞いたことないけど、ケン・トンプソンと勘違いしているのだろうか
親しい人物たちではある
842:デフォルトの名無しさん
22/06/14 18:47:26.18 jATTslXV.net
そして弱点を補うためにマクロを使ってるから汚い
843:デフォルトの名無しさん
22/06/14 18:50:32.39 FCklzJDr.net
>>822
有名と有能は違うぞ
どこぞの通貨危機衰退先進国のゲリ首相は有名だが有能か?
844:デフォルトの名無しさん
22/06/14 18:54:01.24 jATTslXV.net
幼稚園児がいる模様
845:デフォルトの名無しさん
22/06/14 18:56:01.59 jATTslXV.net
>>829
画像あるから普通に顔見てみたいなら見ればいいでちゅよ?
846:デフォルトの名無しさん
22/06/14 19:02:21.29 OVbm/pyy.net
>>829
有名人だから顔なんてネットに溢れてるんだからとっとと見て好きなだけ罵倒してきなよ
847:デフォルトの名無しさん
22/06/14 19:15:33 eqeTk7gF.net
Goのモジュールシステムシンプルでわかりやすいと思うけどな
フォルダでパッケージ表すだけだし
名前で困るってのがよくわからないけど必要以上に作ってるんじゃないの?
Rustのほうが複雑で意味不明だと思うんだが
848:デフォルトの名無しさん
22/06/14 19:21:23.05 bI70PJIL.net
Don't you know you know?
849:デフォルトの名無しさん
22/06/14 19:37:19.54 nghM89d8.net
>>825
メソッドチェーンでオプション書くの大嫌い
単なるデータは普通にデータとして書かせてくれ
850:デフォルトの名無しさん
22/06/14 19:52:21.06 0h5AdYzJ.net
>>825
君その話前にもRustスレでしてなかった?
851:デフォルトの名無しさん
22/06/14 19:54:38.26 GHB3UZAZ.net
ケン・トンプソンなんかおまえ
この業界に居たらまさに神様みたいな存在で
それより上がおらんくらいのハッカーなんだから
こんなクソスレで軽々しく名前出すのすら憚られるやろフツーに
852:デフォルトの名無しさん
22/06/14 20:00:51.53 GHB3UZAZ.net
> ile, err := os.OpenFile( os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0777)
> let mut file = File::options().read(true).write(true).open("foo.txt")?;
File.open('foo.txt', 'w'){|f| ... }
やっぱrubyがスッキリやね
853:デフォルトの名無しさん
22/06/14 20:30:21.52 FCklzJDr.net
>>837
The 老害やな
長いものに巻かれろ、年長者は無条件に敬え、右に倣え、出る杭は打て、死なば諸共
これが衰退先進国糞バカ中世ジャップランド土人村の末路
854:デフォルトの名無しさん
22/06/14 20:46:16.55 8A+wXs8O.net
異次元すぎて逆にかわいい
855:デフォルトの名無しさん
22/06/14 21:16:23.17 GHB3UZAZ.net
滑稽を通り越した何かだな
856:デフォルトの名無しさん
22/06/14 21:39:51.47 yie2XOKe.net
老害ロールプレイ楽しいか
857:デフォルトの名無しさん
22/06/14 23:27:33.27 jATTslXV.net
Rustは通常の言語仕様で欠落してる部分がある
それをマクロで補っている
858:デフォルトの名無しさん
22/06/15 00:03:02.45 clxQJqr6.net
>>826
デフォルト引数やキーワード引数が欲しいのは分かるけどオーバーロードが欲しいのはなぜ?
859:デフォルトの名無しさん
22/06/15 00:09:27.56 a3eoLX8e.net
>>844
JAVA出身だから
860:デフォルトの名無しさん
22/06/15 00:50:48.06 pzXtsAzL.net
オーバーロードは直感的だから
861:デフォルトの名無しさん
22/06/15 00:56:03.07 pzXtsAzL.net
デフォルト引数が必要だと思うならそれはもう関数オーバーロードが必要だとおもっていることと同義だろ
862:デフォルトの名無しさん
22/06/15 01:27:19.31 SBK/Y+J6.net
>>825
C:f= open(out, O_WRONLY|O_CREAT|O_TRUNC, 0777);
D:auto to = File("output.txt", "wb");
Erlang:{ok, Contents} = file:read_file( "input.txt" ),
Fortran(2003):open(in, file="input.txt", status="old", action="read", access="stream", iostat=err)
Basic(Free Basic/VB):Open "input.txt" For Input As #1
Nim:var f = open "output.txt", fmWrite
Objective-C:NSData *data = [NSData dataWithContentsOfFile:@"input.txt"];
Perl:open my $fh_in, '<', 'input.txt' or die "$!";
Python:infile = open('input.txt', 'r')
Tcl:set infile [open "input.txt" r]
Rustは異質、ド変態はFortranとObjective-C。Swiftは知らん
863:デフォルトの名無しさん
22/06/15 03:18:03.71 x0I/jK+a.net
>>848
こう見るとPythonが一番美しいな
例外あるからエラー処理省略できるし
これが良いかどうかはまた別の話として
864:デフォルトの名無しさん
22/06/15 03:22:52.73 tT/4QRGb.net
一般的にデータを初期化する際にいくつもの数のオプション値指定が存在するものが多い
デフォルト引数にしても1つ目と2つ目はデフォルト値でいいけど3つ目は指定したいなど歯抜けでわかりにくくなる
そこで一般的にその問題を解決するオプション指定方法としてビルダー方式がある
ビルダー方式では指定したいオプション値のみをビルダーに対してオプション指定メソッド(の必要ならチェーン)で指定していくものである
あるオプション指定は同時に2つのデータを与えなければならない場合でもこのビルダー方式ではメソッド引数2個で矛盾なくシンプルに表せる
さらに型チェックの厳しい言語ともこのビルダー方式は相性が良く各オプション指定メソッド別に曖昧なく厳格に型宣言できる
ちなみにRustではこのビルダー方式の有用性&利便性が広まり後からこのビルダー方式に移行したものもあるほどである
865:デフォルトの名無しさん
22/06/15 03:32:06.02 tT/4QRGb.net
>>849
Rustは例外機構がないからもっとエラー処理がシンプル
「?」一文字付加するだけで(必要ならエラー自動変換しつつ)上位関数にエラー処理委任できる
そのため例外機構がなくても記述がシンプルかつ同様のことが出来るだけでなくエラー処理忘れなどもコンパイル時に指摘してくれて安全
866:デフォルトの名無しさん
22/06/15 06:09:36.05 sEZPBRlz.net
こんだけ色々な言語が乱立するってコンピュータの世界はバベルの塔だわ
867:デフォルトの名無しさん
22/06/15 15:47:16.86 IEWflW3G.net
コンピューターはバビルの塔
868:デフォルトの名無しさん
22/06/15 18:32:44.57 oaz3/shQ.net
賽の河原での石積みに
昔から例えられている
869:デフォルトの名無しさん
22/06/15 19:56:50.2
870:2 ID:IqYclFLA.net
871:デフォルトの名無しさん
22/06/15 23:05:23 a3eoLX8e.net
なおそのQiita記事に助けられてるもよう
872:デフォルトの名無しさん
22/06/15 23:58:49.93 NtuuvbZ6.net
大したことないって書いてあるだろ…
873:デフォルトの名無しさん
22/06/16 00:21:07.28 N0TE7UEH.net
その大したことない記事に助けられてるからバカにされてるんだろアスペw
874:デフォルトの名無しさん
22/06/16 10:40:11.20 oOjZlu3s.net
コピペしてすぐ使えるコードが出ている
Qiita記事は役に立つよ
具体的な手順が書いてない記事はゴミ
875:デフォルトの名無しさん
22/06/16 10:47:19.76 OyMwP3lE.net
qiitaもワイもアカウント持ってて投稿したりしてるぐらいだから別に否定しているわけではないんだが
qiitaがクソだと言っている分けではなくてただこいつがqiitaに載せている記事すべてが糞だっていう意味を言っている
気になるんなら見とけよ内容もtwitter上を跋扈するいわゆる情報商材系サイトのそれに近くて技術的な要素を一切含んでいない
URLリンク(qiita.com)
876:デフォルトの名無しさん
22/06/16 11:28:53.21 jHsLwKQ/.net
ここはお前の日記帳かよ
というか「スタバでMacを開くエンジニア」って固有名詞かよ
877:デフォルトの名無しさん
22/06/16 11:55:25.21 4wdIdA1r.net
>>858
助けられてるって書いてるか?
878:デフォルトの名無しさん
22/06/16 13:02:40.58 uKxWv5Aj.net
Qiitaはごみ
879:デフォルトの名無しさん
22/06/16 16:40:13.18 N0TE7UEH.net
>>862
Twitter一生懸命見て彼の成長に嫉妬してる時点で、君の”負け”やで
880:デフォルトの名無しさん
22/06/16 18:30:34.70 OyMwP3lE.net
>>864
「エンジニア1年生必見おすすめ入門書!」「【20XY年度最新】無料プログラミング学習サービス」「基本情報技術者試験のための戦略的方法」みたいなしょうもない記事しか書いていない奴のどこに技術的成長を感じればいいのか疑問なんやけど
お前はまさかこういった記事を見て勉強してんのか?(笑)
お前が勝ち負け判断すんの?(笑)
少なくともSNSで頻繁に目障りな投稿をしている人が他の媒体でどのような活動をしているのか確認する行為自体を一生懸命にならないとするの達成できない時点でお前がこの一連の流れのどんな登場人物よりも劣ってること明白じゃんwwwwwwwww
きっと自分の電話にかかってきた電話番号を迷惑電話だったのかどうかネットで調べて確認すると言った最低限な行為すらも日常生活の中でするのには精一杯になってるんやろなwこの低脳(笑)wwwwwwwwwww
881:デフォルトの名無しさん
22/06/16 19:21:05.39 hEUIHdUO.net
どうみても本人の自作自演
URLリンク(www.youtube.com)
882:デフォルトの名無しさん
22/06/16 20:03:31.12 r+hk7hk0.net
>>864
成長…?
883:デフォルトの名無しさん
22/06/16 20:50:21.92 N0TE7UEH.net
うわぁ、必死杉内
884:デフォルトの名無しさん
22/06/16 20:53:08.58 arzDgCAq.net
なにこいつ
煽りアフィカス?
885:デフォルトの名無しさん
22/06/16 20:58:13.91 VGxDlt+C.net
デジタル人材の副業・複業採用決定数をプログラミング言語・スキル別で分析
~副業・複業人材の登録が、前年度比3倍に。 調査レポートを公開~
URLリンク(prtimes.jp)
886:デフォルトの名無しさん
22/06/16 22:42:24.28 R+xkwjLU.net
>>869
スタバマックくんかも
887:デフォルトの名無しさん
22/06/17 14:55:42.76 Ld/FFEEi.net
>>868
レスバ判定員です
言い返せなくなってる時点でお前の負けやでwwwwww
888:デフォルトの名無しさん
22/06/17 15:04:06.85 jyuIrjdj.net
非常にしつこい
889:デフォルトの名無しさん
22/06/17 15:10:54.32 2abskYGH.net
なんでワッチョイ無いんだよ
890:デフォルトの名無しさん
22/06/17 17:27:59.16 G79h5Zer.net
わざと曲解して話を盛るのが5chクオリティ
891:デフォルトの名無しさん
22/06/17 17:48:44.96 q4amRkHc.net
>>872
Qiitaの若者の成長に難癖付けて2ch陰口で悦に浸ってるオッサンとか
キモすぎにもほどがあるでんで
もうちょっと客観的に自分を見つめ直した方がええで
892:デフォルトの名無しさん
22/06/17 17:52:34.99 douM25C/.net
ええでんで
893:デフォルトの名無しさん
22/06/17 19:51:03.63 6H4dK9M3.net
>>825
rustが汚く感じるのはビルダーパターンが気持ち悪いのか、ファイルのopenにビルダーパターン使うのが気持ち悪いのか、どちら?
894:デフォルトの名無しさん
22/06/17 21:08:38.74 ueszn7cF.net
>>878
どちらでもない
optionをopenするのが気持ち悪いだけ
895:デフォルトの名無しさん
22/06/17 21:38:00.10 8YmvneAf.net
let mut stream = FileStream::builder().read(true).write(true).build("foo.txt")?;
これならいいのか
896:デフォルトの名無しさん
22/06/17 21:48:55.86 G5rhOs4/.net
Rustにはなんでデフォルト引数ないの?
Kotlinみたいに名前付き引数もデフォルト引数も欲しい
897:デフォルトの名無しさん
22/06/17 21:49:12.87 8YmvneAf.net
でもパス名が最後に来るの確かに思考の順序と一致しなくてウザいな
どのファイルを開くかより先にモードを考えたことなんかなかった
898:デフォルトの名無しさん
22/06/17 22:02:17.99 flaMOIXW.net
>>878
ソフトエンジニアはビルダーパターンは気持ちよすぎになるが
一方、ドカタは気持ち悪いになるってだけだろ
言語としては主ターゲットユーザーがソフトエンジニアかドカタって重要だからな
Rustはソフトエンジニアがターゲットで、そうじゃない奴はRustじゃなくドカタ用言語使え
ってこと。
899:デフォルトの名無しさん
22/06/17 22:12:15.35 1Z6irghS.net
そうでなくて最後にopen()でビルダーが終了して実行そしてエラーが返る
あと横に書くのではなく縦に書くほうが見やすいので推奨される
ビルダー方式にしているのは複雑になりがちな
様々なオプション指定をわかりやすくするため
例えば
書き込み用を新規作成だが既にファイルが存在しているならばエラーとなるオープンならば
let file = File::options()
.create_new(true)
.write(true)
.open("output.txt")?;
Windowsで全てクローズされたら自動削除される書き込みファイルを作成ならば
use std::os::windows::fs::OpenOptionsExt;
let file = File::options()
.create(true)
.write(true)
.custom_flags(FILE_FLAG_DELETE_ON_CLOSE)
.open("tmp.txt")?;
Unix(Linux)でシンボリックファイルならFOLLOWしない(つまりオープン失敗となる)読み込みオープンならば
use std::os::unix::fs::OpenOptionsExt
let file = File::options()
.read(true)
.custom_flags(O_NOFOLLOW)
.open("input.txt")?;
それぞれ他のプログラミング言語で書くとどうなるかを考えてみよう
900:デフォルトの名無しさん
22/06/17 23:24:36.27 1Z6irghS.net
あと余談だが
>>884のO_NOFOLLOW指定はUNIXのC言語プログラマーなら馴染みでも一般的にわかりくいという時
Rustではメソッド拡張が可能なことから
以下のように no_follow_symbolic_link() とわかりやすい指定ができるようにすることも可能
let file = File::options()
.read(true)
.no_follow_symbolic_link()
.open("input.txt")?;
この実現方法はRustの一般的なメソッド拡張と同じで
拡張用のトレイトを用意してその実装を与えればよい
trait OpenOptionsUnixCustomExt {
fn no_follow_symbolic_link(&mut self) -> &mut Self;
}
impl OpenOptionsUnixCustomExt for std::fs::OpenOptions {
fn no_follow_symbolic_link(&mut self) -> &mut Self {
self.custom_flags(O_NOFOLLOW)
}
}
もちろんこの拡張用traitをuseした時のみ有効となる
つまり既にある仕様を壊さずに拡張が可能
いずれにせよビルダー方式でのメソッドチェーン指定は
全てを引数で複雑もしくは長々と指定するよりもよっぽど好ましい方式
901:デフォルトの名無しさん
22/06/18 01:48:38.80 ElTVdqXo.net
ビルダーパターンはオプション引数のある言語でも簡単に実現できるんだが
逆は一般的にハードルが高い(Rustならproc macroとかになる)
ビルダーとオプション引数は本来はユースケースによって使い分けるものなので
使い分けられないようならその言語は機能的に劣っているということ
902:デフォルトの名無しさん
22/06/18 03:34:01.13 qRZqKkc3.net
Rustは代数的データ型のOption型があるから特に困らないんじゃない?
むしろOption型がないプログラミング言語はundefinedやnullやnilなどの排除すべき危険なものが存在していて安全じゃない
903:デフォルトの名無しさん
22/06/18 03:46:11.38 1ZLmOyHM.net
欲しいのはオプション引数というかキーワード引数?
Noneなりnullなりが連続する関数呼び出しはつらいよね
904:デフォルトの名無しさん
22/06/18 03:49:38.33 qRZqKkc3.net
デフォルト引数のことか
C、Java、Go、Rust、Haskell、…とサポートしていないプログラミング言語は多いけど
それらの言語が劣っている欠陥言語と言われることはないよ
905:デフォルトの名無しさん
22/06/18 07:13:04.48 bAwBngwg.net
やっぱりカリー化が欲しいのよ
906:デフォルトの名無しさん
22/06/18 10:59:53.21 W1b6m0i9.net
デフォルト引数はあったほうがいい
究極的にはPythonみたいに書けるC言語が欲しい
それを目指したのがおそらくGoだと思うが
907:デフォルトの名無しさん
22/06/18 11:19:30.38 56BPbiHd.net
cpythonでええやん
908:デフォルトの名無しさん
22/06/18 11:24:27.43 ZQWHh7s0.net
>>891
あのゴミみたいなsyntaxで目指してるとか鼻で笑うで
909:デフォルトの名無しさん
22/06/18 12:11:06.20 i5hxcodT.net
>>891
Goには当然デフォルト引数は無い
あと、GoはPythonとは真逆の思想
910:デフォルトの名無しさん
22/06/18 12:28:29.18 1P56+GFt.net
Kotlinみたいにサポートしてほしい
911:デフォルトの名無しさん
22/06/18 12:37:40.53 n5ZvcUIJ.net
RustもGoも標準ライブラリが良くない
気持ち悪い
912:デフォルトの名無しさん
22/06/18 12:41:20.81 n5ZvcUIJ.net
>>889
欠陥言語なんてものはそもそもほとんどない
デフォルト引数は新言語に人気が出てくると確実に要望が出てくる
いつかは実装される
実装できる余地がある言語はいいけど言語仕様上実装不可な場合はどうしようもない
913:デフォルトの名無しさん
22/06/18 12:46:26.67 pOm9NLXW.net
>>889
ある言語が他の言語に比べて劣っている部分があるということと
その言語が欠陥言語かどうかは全く別の問題
もう少し論理的に物事を考えよう
914:デフォルトの名無しさん
22/06/18 12:52:00.37 n5ZvcUIJ.net
Rsutは意味不明なんだよな
struct初期化で名前指定して初期値入れてるのにデフォルト実装や名前付き引数がない
不思議
915:デフォルトの名無しさん
22/06/18 13:00:28.27 7x85yRDf.net
Rustはソースコード上の情報多くしたい感じだからデフォルト引数は入らなさそう
ソースコードの見た目をすっきりさせたいなら素直にPythonとか使うのがいいかと
916:デフォルトの名無しさん
22/06/18 13:08:33.19 n5ZvcUIJ.net
デフォルト引数もなく関数オーバーロードがないから謎の関数がぼこぼこ増えるんだろうな
○○
○○_with_XX
○○_by_YY
みたいに
917:デフォルトの名無しさん
22/06/18 13:15:01.13 n5ZvcUIJ.net
言語を作った人間がデフォルト引数絶対に入れない!って言ってても
その人が一線から引いて他の開発メンバーに任されたら速攻で入る
918:デフォルトの名無しさん
22/06/18 13:42:57.17 7x85yRDf.net
Rustはすでに作った人は居なくなってるし
仕様決めるのも多数決とかじゃなく意見が割れるようなのは入らないからな
コミュニティ全体が入れる空気にならない限り無理
919:デフォルトの名無しさん
22/06/18 13:44:38.50 n5ZvcUIJ.net
新しい元老院の出来上がりか
920:デフォルトの名無しさん
22/06/18 13:57:51.20 0HZmI7WS.net
Rustは複雑な引数はstructで渡しなさいという考えだから
その方法の一つがビルダーパターンだけど、structとDefaultを組み合わせたほうが個人的には好き
921:デフォルトの名無しさん
22/06/18 14:03:46.44 1P56+GFt.net
..Default::default() にシンタックスシュガーあって短く書ければいいんだけど
922:デフォルトの名無しさん
22/06/18 14:46:02.16 W1b6m0i9.net
引数爆発の解決のアプローチはいろいろあるわな
だがキーワード引数があったほうが爆発したときに楽なんだがな
GoやRust的には構造体使えってことか
923:デフォルトの名無しさん
22/06/18 14:55:32.45 vtBUlFGw.net
>>899
デフォルトは作ればあるよ
オプション引数の代替策の一つとしても使える
924:デフォルトの名無しさん
22/06/18 14:56:30.79 vtBUlFGw.net
あ、ガイシュツだった
925:デフォルトの名無しさん
22/06/18 17:55:33.35 +lle12+G.net
>>903 >>902
Rustでは不可欠な機能が着実に次々と実現されていっており
それら全て状況も議論も全てオープンに行われている
互換性、安全性、関連する影響がないことなど全て満たす必要があるためどの案件も時間がかかるが信頼できて安心できる
関数の引数の諸々の件も長くオープンに議論され続けているが様々な諸問題がでておりそれらを解決しうる仕様がまだ出来上がらずかなり先になるだろう
そして色々な代替手段があるためこれを必須として現実に困っている人がいない問題でもある
926:デフォルトの名無しさん
22/06/18 18:43:27.93 ZQWHh7s0.net
>>903
なんや、既に崩壊してる言語なのか
ざまあねえな
927:デフォルトの名無しさん
22/06/18 19:21:21.77 W1b6m0i9.net
Rustって創始者いないのなんでなの?
928:デフォルトの名無しさん
22/06/18 19:27:03.11 1ZLmOyHM.net
>>912
創始者が抜けたのはバーンアウトしたかららしい
929:デフォルトの名無しさん
22/06/18 19:56:43.48 ZQWHh7s0.net
>>912
修復不可能なデザインバグを見つけてしまったから逃げたんだろう
930:デフォルトの名無しさん
22/06/18 20:01:24.70 9K3tt+Ez.net
Mozilla関係の組織っておんも歩けないような人が多いよね
まともな人から辞めていくんだろうか
931:デフォルトの名無しさん
22/06/18 20:14:49.20 ApP/hHwA.net
燃え尽きて去ったRustの創造者はいまはどこで何をしているんだ?
まさか、googleでGoしているってことないよな
932:デフォルトの名無しさん
22/06/18 20:18:43.54 1P56+GFt.net
AppleでSwiftの開発をしてるらしいぞ
933:デフォルトの名無しさん
22/06/18 20:30:46.91 aTjkq+5e.net
>>910
Rustコミュニティがオープンだとは全然思えない。async-stdとtokioなんか正にそう
934:デフォルトの名無しさん
22/06/18 20:40:14.11 ZQWHh7s0.net
>>917
やっぱゴミはゴミに惹かれるんやね
XウンコードとかいうゴミゴミのゴミIDEバンドルのゴミに惹かれるなんて
やっぱゴミ
935:デフォルトの名無しさん
22/06/18 20:40:52.91 n5ZvcUIJ.net
c++の規格団体がクソだったのと大して変わらない
936:デフォルトの名無しさん
22/06/18 20:46:04.24 n5ZvcUIJ.net
>>910
apple信者の人たちと大して変わらんなw
androidにしかない機能があっても必要ない、問題ない、困ってないと言い放つが実装されると大騒ぎして喜び
誇らしげに自慢する
何週遅れてんだよと
937:デフォルトの名無しさん
22/06/18 21:07:12.04 G0PSkUdv.net
全て状況も議論も全てオープンに行われていればまあこんな事になる�
938:墲ッがないよなww 「The entire moderation team resigns, effective immediately. This resignation is done in protest of the Core Team placing themselves unaccountable to anyone but themselves.」 https://github.com/rust-lang/team/pull/671
939:デフォルトの名無しさん
22/06/18 21:10:24.45 FdDF61RI.net
>>921
気持ち悪いRust信者はこの板に1人いるだけだぞ
通称複オジこと、はちみつオジ
940:デフォルトの名無しさん
22/06/18 21:20:50.21 ApP/hHwA.net
>>917
おいおい、ほんとなのか。
優秀な奴だろうからどっかが雇っているだろうと思っていたが。
appleならMozillaより激好待遇だろうな
941:デフォルトの名無しさん
22/06/18 21:36:02.59 ZQWHh7s0.net
>>923
Qiitaで若者に嫉妬したりエアプRust信者したり大変だな
942:デフォルトの名無しさん
22/06/18 22:53:12 WzwwMm2M.net
コミュニティの意見に向き合うのは難しい問題で、どの言語でも同じ
Rust Foundationとか、Kotlin Foundationとか、コミュニティ向けに組織体制をちゃんとする努力があるだけマシだといつも思う
943:デフォルトの名無しさん
22/06/18 22:56:08 eg6b2Ems.net
スタバマックくんw
944:デフォルトの名無しさん
22/06/18 23:36:58.06 WzwwMm2M.net
そして批判の声が見当たらないコミュニティは逆に危険
ユーザーは意見を述べるモチベーションがなかったり、意見を聞き届ける環境すら整えられていない
言い換えるとカルト。
945:デフォルトの名無しさん
22/06/19 00:20:26.22 Mk9KDawR.net
>>926
なんちゃらファウンデーションなんてそれはコミュニティに向き合うとか組織体制がちゃんとする努力をしているとは違う。後ろにスポンサーがいるかどうかが違うだけ
得てしてプラス面もあるが多くは大企業の意見がよく通る
946:デフォルトの名無しさん
22/06/19 00:58:59.69 61bWOpc5.net
>>929
どの言語のコミュニティが理想だと思う?
947:デフォルトの名無しさん
22/06/19 02:05:01.40 kfPGjv4I.net
なんだその質問ww
948:デフォルトの名無しさん
22/06/19 02:09:16.77 6XdwO9QI.net
ジャップは10年遅れでPython受け入れだしたからな
Juliaも10年は遅れるよ
バカなジャップだから
949:デフォルトの名無しさん
22/06/19 05:40:31.85 SdXdUMni.net
Julia流行の隆盛とともに死すナムー(-人-)
今はJuliaとか言って、もう少し経ったらの言語マンセーするくせにさ
950:デフォルトの名無しさん
22/06/19 07:28:14.73 YnIsF6Qk.net
10年後にジャップランド土人村が残ってるかも疑わしい
951:デフォルトの名無しさん
22/06/19 09:42:08.66 +2WAsQm8.net
何で突然ジャップとか言い出した?選挙が近いから?
952:デフォルトの名無しさん
22/06/19 09:57:40.03 KAsrUTco.net
>>934ってどこの国の人なんやろな
なんかウンコのにおいしてるけどw
953:デフォルトの名無しさん
22/06/19 10:15:25.21 YnIsF6Qk.net
今の日本の体たらくはジャップランド土人村と呼ぶにふさわしいよ
未だに「日本サイコー!」とか言ってる奴らの方がどうかしてる
954:デフォルトの名無しさん
22/06/19 10:30:27.88 2cctUuao.net
声の大きいクソユーザーのせいで言語がどんどん変わっていくC#
955:デフォルトの名無しさん
22/06/19 10:55:12.05 KAsrUTco.net
>>938
具体的にはどういうとこ?
俺は最初からC#ダサいと思ってたけど
956:デフォルトの名無しさん
22/06/19 11:04:07.37 PZvlYDex.net
>>939
具体的にダサいところあげてくれ
ついでにダサくない言語も教えてくれ
957:デフォルトの名無しさん
22/06/19 11:07:05.21 C4wP3ian.net
単純にMicrosoftのソフトウェア開発能力がめちゃくちゃ高いからどんどん変わっていけてるだけだぞ
昔から巨大ソフトウェアをずっとたくさん作り続けてるだけあるよ
他の言語だってリソースさえあればあれもこれもやりたい、って言ってるのたくさんあるじゃん
958:デフォルトの名無しさん
22/06/19 11:11:04.94 2cctUuao.net
言語仕様が使いもしないパターンマッチよりにどんどん変わってる
学習コストが上がるだけなのに
if (x is { Name.Length: 1 })
{
Console.WriteLine("single-char Name");
}
959:デフォルトの名無しさん
22/06/19 11:13:34.22 KAsrUTco.net
>>942
へーそうなん
サンクスコ
960:デフォルトの名無しさん
22/06/19 11:15:07.77 2cctUuao.net
x is { Name.Length: 1 }
これが何を指しているか直観的にわかるように思えて実際は違っている
961:デフォルトの名無しさん
22/06/19 13:07:02.40 Mk9KDawR.net
MicrosoftはTeamsのアップデートしすぎ、ほぼ毎日バージョンが変わる。マジで勘弁してほしい
962:デフォルトの名無しさん
22/06/19 13:32:37.74 YdsUdLcR.net
C#は場当たり的に糖衣構文追加するもんだから
BNFがとんでもない長さになってるな
ここまで言語仕様汚くなった言語他に無いんじゃね?
963:デフォルトの名無しさん
22/06/19 13:39:49.73 MGBoiv+i.net
さすがに C++ Perl Ruby には敵わないだろ
964:デフォルトの名無しさん
22/06/19 14:13:50.73 vUT9u2r3.net
>>944
具体的に他の言語で書くとどういう記述に相当するもの?
965:デフォルトの名無しさん
22/06/19 14:16:23.55 61bWOpc5.net
BNFで構文表現できてる時点で綺麗だよね
966:デフォルトの名無しさん
22/06/19 14:21:29.08 Db+21BxG.net
BNFで表現できない文法はやめてくれ
967:デフォルトの名無しさん
22/06/19 14:37:30.12 XPOA14Ne.net
>>947
Rubyは意外にシンプル
968:デフォルトの名無しさん
22/06/19 15:16:16.80 YnIsF6Qk.net
>>951
シンプルでなくイージー
型無し糞言語代表だろ
969:デフォルトの名無しさん
22/06/19 15:23:17.11 T+HLe5Kk.net
rubyに型がないとかw
恥を知れ恥を
970:デフォルトの名無しさん
22/06/19 17:07:15.35 SjAidwyp.net
恥を知れ恥をって一番恥ずかしい煽りだよな
971:デフォルトの名無しさん
22/06/19 17:08:50.63 2cctUuao.net
他の言語の定型文をそのまま日本語に持ってくるからそうなる
富士山は日本で一番高い山の一つですは誤訳
972:デフォルトの名無しさん
22/06/19 22:06:45.19 VFAsiM2X.net
Rubyはスクリプト言語にしてはPythonに比べ型は厳格だが、なんにでもなれるメソッドなかったっけ?
973:デフォルトの名無しさん
22/06/19 22:28:00.46 8/kH/R2d.net
#method_missing
974:デフォルトの名無しさん
22/06/20 12:03:09.79 7+wjkIp4.net
>>952
型無し言語って何?
975:デフォルトの名無しさん
22/06/20 12:17:32.20 G0GSIi1k.net
シェルスクリプトやアセンブリのことです
976:デフォルトの名無しさん
22/06/20 12:59:21.71 EbOcYieG.net
シェルスクリプトにも変数の型はあるしアセンブリもレジストリの種類は意識しないといけない
977:デフォルトの名無しさん
22/06/20 13:09:02.41 rr2OcjMu.net
型なし言語って、誤用でしか用例を聞いた覚えがないけど、型なし言語とかいう用語はあるの?
文脈からして何を言いたいかはわかるんだけど
978:デフォルトの名無しさん
22/06/20 13:09:53.23 rr2OcjMu.net
値に型がない言語のことを型なし言語、って呼ぶのは正しいの?
979:デフォルトの名無しさん
22/06/20 13:52:48.64 6L0FdSjR.net
型無し言語じゃない
型無し糞言語だ
間違えるな痴れ者が
型無し糞言語3兄弟といえばRuby、PHP、Perl
業界の常識
未だこれ使ってる時代遅れのバカ老害どもは首吊って死んでええぞ
980:デフォルトの名無しさん
22/06/20 13:55:02.11 4VWLMq9p.net
>>961
URLリンク(ja.wikipedia.org)
型付けを更に厳密に定義した区分として型なし(英: untyped)という区分が存在する。
代表的な言語としてはSmalltalk[7]、BCPL、B言語、アセンブリ言語などがある。
Smalltalkでは高速化のため処理系依存で実行時に型検査することがあるものの言語的には型検査がなく、
動的型付け言語のように文字列に割り算をするといった不正な操作をしても処理系が型検査して停止する事は無い。
BCPL、B言語、アセンブリ言語などオブジェクト指向とは関係なく型を持たない言語では、
ハードウェアのワード長に依存した1種類の型のみを持つか、
言語を使う側でデータを参照するときにデータ幅や種類の解釈を決定することとなる。
981:デフォルトの名無しさん
22/06/20 14:10:59.58 G0GSIi1k.net
>>960
bashのdeclareについては一旦忘れていただく方向でお願いします
982:デフォルトの名無しさん
22/06/20 14:23:54.46 rr2OcjMu.net
>>964
ほんまや
Brainfuckとかみたいな難解言語もだいたいuntypedかな
983:デフォルトの名無しさん
22/06/20 14:32:59.17 njNeMAGl.net
>>963が言っている型無し言語とは、一つの変数がいろいろな型の値を束縛できるってこと?
984:デフォルトの名無しさん
22/06/20 15:16:39.40 gnE/PDYV.net
untypedは基本的にdynamically typedのこと
アカデミック用語で実務者用語ではない
実務者が型なし言語と呼ぶのはtypeless languagesのこと
現代において動的型付け言語を型なし言語と呼ぶのは明らかな間違い
985:デフォルトの名無しさん
22/06/20 15:39:41.45 rr2OcjMu.net
>>968
> untypedは基本的にdynamically typedのこと
出典がまったく示されていないか不十分です。内容に関する文献や情報源が必要です。
986:デフォルトの名無しさん
22/06/20 15:54:46.01 4VWLMq9p.net
型付けなんてプログラマにとっては基本の基本で
おろそかにしていいものではないから
> 型無し糞言語3兄弟といえばRuby、PHP、Perl
これがいかにド素人で無教養で恥知らずな発言かは
お分かりいただけてると思う
987:デフォルトの名無しさん
22/06/20 16:28:03.20 G0GSIi1k.net
複おじ怒りのマジレス
988:デフォルトの名無しさん
22/06/20 18:29:27.28 1agQsnkM.net
>>901
これがちょっと辛いんだよな。
989:デフォルトの名無しさん
22/06/20 18:53:41.48 BnXOM/sm.net
型無し言語と言えば型無しラムダ計算だろ。
990:デフォルトの名無しさん
22/06/20 19:04:42.99 hXDnNrPc.net
次スレ(リニューアル)
Era 26
コンセプトは、現状の漠然とした実質未来最強言語決定戦という誰も得しない未来トレンドの断定を避けて、
次世代言語はまだ存在しない仮説を使って建設的な言語仕様の検討を促すことです。
991:デフォルトの名無しさん
22/06/20 19:05:46.77 hXDnNrPc.net
スレリンク(tech板)
↑次スレのリンクです。もし興味があればどうぞ。
(一定数いる最強言語決定戦を続けたい層には不向きかもしれないので、
棲み分けなどに、もし良いアイデアがあればどうぞご自由になさいませ。)
992:デフォルトの名無しさん
22/06/20 19:24:15.90 cgMFd80D.net
そういうのGitHubでやったほうがいいよ
993:デフォルトの名無しさん
22/06/20 19:52:16.37 E2oosySA.net
>>972
今どきの言語ならそんなことは起きないんじゃないかな
例えばRustの標準ライブラリには同名のreplace()という関数が10個もあるけど
(1) まず名前空間が分かれている
例えば str::replace() や Option::replace() など
(2) 次にメソッドの場合は名前空間を明示する必要がない
例えば let s = "価格: 123円"; という文字列に対してはstr::を付けずに
s.replace("価格", "値段"); // → "値段: 123円"
(3) 更にジェネリックな引数も取れる
例えば文字列""ではなく文字''も指定可能
s.replace('円', "万円"); // → "価格: 123万円",
文字判定関数を指定することも可能
s.replace(char::is_numeric, "*"); // → "価格: ***円"
このように様々な対象に対して様々な引数で用いられていても
同名のreplace()で曖昧になることもなくそれぞれを使うことができる
昔のように長い関数名を付けずに済むようになっている
994:デフォルトの名無しさん
22/06/20 20:07:59.34 8GsqMDfw.net
次スレ立てるのはもうそろそろかな
995:デフォルトの名無しさん
22/06/20 20:46:13.10 6L0FdSjR.net
>>975
アスペっぽい ガイジ
996:デフォルトの名無しさん
22/06/20 21:02:14.54 Hg6hQLhP.net
>>963
ガイジ乙!
997:デフォルトの名無しさん
22/06/20 21:08:22.86 mSfgS0Wr.net
>>977
3つともオーバーロードやデフォルト引数はほぼ関係ない話じゃん
3つめがかろうじてオーバーロードに引っかかってはいるが論点が違う
998:デフォルトの名無しさん
22/06/20 21:24:31.48 j7veV6LL.net
シャドーイングがOKで関数オーバーロードがNGって普通は逆じゃね?
999:デフォルトの名無しさん
22/06/20 21:29:29.90 ofPdKV5n.net
>>982
その2つがどう関係あるのか説明してくれ
1000:デフォルトの名無しさん
22/06/20 21:39:32.57 j7veV6LL.net
シャドーイング 同じ変数名で実際は完全に別物
関数オーバーロード 同じ関数名で引数が違う でも普通は同じ働き
1001:デフォルトの名無しさん
22/06/20 21:50:35.85 lr2wAV+c.net
引数の型が違うだけならジェネリクスでいいし、ジェネリクスで表現できないような
引数の違いがあるような場合はそもそも同じ関数名にすべきじゃないような気がする。
オーバーロードいらないよな。
1002:デフォルトの名無しさん
22/06/20 22:04:20.07 j7veV6LL.net
せいぜい意味不明なワードがくっついた似たり寄ったりの関数を大量に作ってくれよ
1003:デフォルトの名無しさん
22/06/20 22:09:55.02 xRbFgwNB.net
>>984
なるほどそういう意味か
イミュータブルとムーブがデフォルトだとシャドーイングNGだと命名負荷が高くなりすぎるのよ
オーバーロードやデフォルト引数/オプション引数ないとメソッドの命名負荷が高くなるのと似てる
1004:デフォルトの名無しさん
22/06/20 22:17:07.52 G0GSIi1k.net
>>982
C++/Java/C#書いてる脳だとまあすんなり同意するけど
OCamlだのHaskellだの書いてる脳で読むと「お前の普通なんか知らねーよ」って感じだな
1005:デフォルトの名無しさん
22/06/20 22:26:34.16 GOjINbNj.net
>>982
効果が真逆という結論のようです
> シャドーイングは同時に存在できるのが一つだけで曖昧さがなくプログラミングにおいてプラス効果
> オーバーロードは同時に異なるものが存在できるため可読性を下げたりミスを起こす機会を生じさせてマイナス効果
確かにシャドーイングが出来ない言語では例えば
price_str = "398"
price_int = int(price_str)
とするかミスを生みやすい動的型付けで同じ変数名priceに入れるようです
シャドーイングがいかに優れているかよくわかりますね
1006:デフォルトの名無しさん
22/06/20 22:30:15.50 j7veV6LL.net
書き込みする前に読み返したか?
ふわっふわしてるぞ
1007:デフォルトの名無しさん
22/06/20 22:36:51.94 j7veV6LL.net
Rsutは関数オーバーロードがないから
int(price_str)できない
1008:デフォルトの名無しさん
22/06/20 22:44:52.02 d/VymnYf.net
>>991
そういう時にメソッドではない不要なグローバル関数を設けるプログラミング言語は時代遅れ
もしstrに対してintに変換する関数int()を用意するならばstrのメソッドとして用意する
君には>>977を読み直すことを勧める
1009:デフォルトの名無しさん
22/06/20 22:52:38.23 j7veV6LL.net
Rustは同様に abs(x)ができない
他の言語ではmath.abs()とかにある
x.abs()と言う不思議な感じになる
-1_i32.abs()
は -1になる変な言語
1010:デフォルトの名無しさん
22/06/20 22:54:18.35 GOjINbNj.net
>>991
Rustではintが多数あるため
let s = "98765";
let a: i32 = s.parse()?;
let b: u64 = s.parse()?;
となります
どちらも同じメソッドparse()で大丈夫です
あなたが使っている言語では多数のint毎に別々の変換用の関数があるのですか?
1011:デフォルトの名無しさん
22/06/20 22:55:48.87 j7veV6LL.net
>>994
出た
愚者の?
1012:デフォルトの名無しさん
22/06/20 22:59:31.50 bmv2finQ.net
>>993
>int(price_str)できない
>Rustは同様に abs(x)ができない
それはどっちもできるよ
1013:デフォルトの名無しさん
22/06/20 22:59:45.45 4VWLMq9p.net
>>993
i32::abs(-1)
1014:デフォルトの名無しさん
22/06/20 23:01:03.11 j7veV6LL.net
parseは多分ジェネリック実装されてて戻り値の推定からジェネリック型決めてるんだろ?
そっちのほうが不気味
そのparseだってどうせトレイトで実装してんだろ?
1015:デフォルトの名無しさん
22/06/20 23:02:42.38 MklghZCY.net
>>985
ジェネリクスはまた別物だろ。
ライブラリ無いからシステムコール利用する機能を提供しようとする。
例えば socket(2)でいいわ。
第3引数なんて使うことないからと第2引数までを取るAPIとして公開、後になって第3引数必要になった(例えばSCTP利用)ってなった場合、オーバーロードできないとAPI変える必要あるじゃん。
1016:デフォルトの名無しさん
22/06/20 23:03:17.12 j7veV6LL.net
>>996-997
それは実質fabs()と変わらない
1017:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 64日 5時間 10分 42秒
1018:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています