次世代言語18 V Julia 他 at TECH
[2ch|▼Menu]
[前50を表示]
100:デフォルトの名無しさん
19/10/02 23:36:48.12 +0jwjbHR.net
集金詐欺という意味なら最近出てる新しい言語は皆該当する

101:デフォルトの名無しさん
19/10/03 09:18:54.47 UVRnRWDJ.net
P++はどう?

102:デフォルトの名無しさん
19/10/03 09:41:25.91 UJPWBD3i.net
>>100
計画としてすら存在しない言語についてどうと言われても

103:デフォルトの名無しさん
19/10/03 11:06:26.15 edjgLSeC.net
ようこそここへ (クックブック)

104:デフォルトの名無しさん
19/10/03 11:20:52.04 k70uCiU6.net
Perl6はどう?

105:デフォルトの名無しさん
19/10/03 11:43:05.22 QW/GUpCE.net
TS界隈が燃えてるな
俺が予想した通りだ
型で遊びたいやつらがマウント取り始めた
もう終わりだ

106:デフォルトの名無しさん
19/10/03 11:52:52.78 HEopH3DP.net
URLリンク(www.npmjs.com)
もう終わりだ

107:デフォルトの名無しさん
19/10/03 12:14:21.23 KXJlaU6i.net
そういえば炎上して消滅したパッケージがあったな

108:デフォルトの名無しさん
19/10/03 12:21:08.52 dL16XEfi.net
次のスレタイは
次世代言語アンチスレ19 TypeScript Rust 他
に変更しないか?🤔

109:デフォルトの名無しさん
19/10/03 12:51:34.84 0St1gbfQ.net
>>107
イイネ

110:デフォルトの名無しさん
19/10/03 12:53:58.11 0St1gbfQ.net
>>104
URLリンク(speakerdeck.com)
any型は嘘ってやつか
いかにも型合わせパズルばっかやってて
実際にモノ作ることには興味ない奴が言いそうなことだ

111:デフォルトの名無しさん
19/10/03 13:20:34.90 LXtrLKPo.net
何が問題なんだ?
any型を使うことは型チェッカに嘘をつくことであるというのは完全に正しいが

112:デフォルトの名無しさん
19/10/03 13:26:52.90 0St1gbfQ.net
型システム様のご機嫌伺いのためにコーも書いてる訳じゃないんで
作るべきモノがあるからコード書いてるんで

113:デフォルトの名無しさん
19/10/03 13:27:17.34 0St1gbfQ.net
コードな。typo

114:デフォルトの名無しさん
19/10/03 14:38:35.18 IZT0jEbm.net
そもそも炎上してるってどこ情報よ

115:デフォルトの名無しさん
19/10/03 14:55:45.10 YE1vF2br.net
VSやVSCodeとかならJavaScriptでも型推論してくれるし
型を明示したいならJSDocを書けばいいだけだから無理してTypeScript使う必要もないかな

116:デフォルトの名無しさん
19/10/03 16:00:45.51 LjcEi/T6.net
>>104-105
始まってすらいない

117:デフォルトの名無しさん
19/10/03 16:24:21.32 hKJYGgWY.net
結局JSDocで型書くならTypeScriptで静的チェック強制した方がいいんだよなあ

118:デフォルトの名無しさん
19/10/03 16:25:51.66 kjukQEdu.net
型合わせパズル型合わせパズルって言ってるけどC#程度の強度でもDynamic使わずにまともにプロダクト作られて運用されてるのにanyが型システム的に嘘って言われた程度で騒ぐ人って…

119:デフォルトの名無しさん
19/10/03 16:54:32.05 HEopH3DP.net
typescriptは構造的部分型だからそのDynamicに型を付けていくようなものなんだよ

120:デフォルトの名無しさん
19/10/03 17:37:19.25 AmYqnV9Q.net
どの言語使おうと堅牢に作ろうと思えばその分コストかかるってだけの話なんだよな。

121:デフォルトの名無しさん
19/10/03 18:09:46.31 O76Q0qC9.net
>>119
メンテナンスコストを含めるとどうだろうね

122:デフォルトの名無しさん
19/10/03 18:17:34.75 fmdUi9Ln.net
メンテナンスコスト考えるならJava、PHP、jQueryだけ使うべき

123:デフォルトの名無しさん
19/10/03 18:19:08.06 L9fYtAg4.net
既存のJSプロジェクトからの移行ならともかく最初からTSで書くプロダクトならパズル言うほど複雑にならんぞ

124:デフォルトの名無しさん
19/10/03 19:48:39.53 n9RXubUB.net
旧世代言語、現世代言語の総合スレも欲しい

125:デフォルトの名無しさん
19/10/03 19:49:39.86 2xyzy1ot.net
>>118
C/C++だって生メモリに対して型を仮定してるだけだから似たようなもん

126:デフォルトの名無しさん
19/10/03 20:09:06.24 foN68M/V.net
C++は例外安全パズルだったな
「CのコードはそのままC++のコードとして使える」が嘘八百だと割り切れば解ける
嘘八百だは言い過ぎだろなんて擁護してたら解けないパズル

127:デフォルトの名無しさん
19/10/03 20:20:39.48 19Ht2GHN.net
>>118
前スレでは型がどうとか言ってたな
時間の経過とともにトーンダウンしてるのは気のせいか

128:デフォルトの名無しさん
19/10/03 20:22:34.58 kjukQEdu.net
>>118
漸進的型付けではなく構造的部分型なの?

129:デフォルトの名無しさん
19/10/03 20:37:15.91 GiS7EHuM.net
次世代言語スレがアホばっかりになったな

130:デフォルトの名無しさん
19/10/03 20:57:54.84 2xyzy1ot.net
>>127
構造的部分型を利用して漸進的型付けを実現している

131:デフォルトの名無しさん
19/10/03 21:07:54.91 0BLjzKt+.net
型を指定すると何も作ってないことになるんだからすごい

132:デフォルトの名無しさん
19/10/03 21:22:20.83 vZs/C8bk.net
プロダクトを作るって観点で言語を議論せず
やれ型パズルだのやれ安全パズルだのぐだぐだ言うバカばっかになった

133:デフォルトの名無しさん
19/10/03 21:37:23.32 SvQDlrFS.net
>プロダクトを作るって観点で言語を議論せず
どうせ「俺はこれで作れるんだ」の応酬で議論にならない

134:デフォルトの名無しさん
19/10/03 21:48:13.86 Hq7132pR.net
>>125
元々互換性は完全では無いけど、例外安全と何か関係あったっけ?

135:デフォルトの名無しさん
19/10/03 22:17:31.43 kjukQEdu.net
>>129
構造的部分型の名を出した方向性は分かったがそこからどうanyの議論に発展するのか分からないな

136:デフォルトの名無しさん
19/10/04 00:07:17.02 x/Qhqm9U.net
例外はcatchしなければexitに似ているが
catchしたら、Cなら既に終了しているプログラムがまだ動いているようなもの

137:デフォルトの名無しさん
19/10/04 01:16:49.91 VgJGDogT.net
例外はCで対比するなら戻り値かerrnoで処理するものだから普通に動いているだろ

138:デフォルトの名無しさん
19/10/04 04:05:19.24 AwInIEFA.net
>>64
zigとの違いはナンでしょう

139:デフォルトの名無しさん
19/10/04 05:08:00.22 +WjHEk6J.net
マネージャー「このままじゃ期限に間に合わないが……大丈夫か?」
型ガイさん「大丈夫です!!!メンテナンスのことを考えて型に拘っていますので、品質の良いものができるかと!!!!!」
マネージャー「型?そこは拘らなくていいから期限を……」
型ガイさん「僕に嘘つきになれって言うんですか!!?!!!!??????!!!!!!」ドンッ!!!!

140:デフォルトの名無しさん
19/10/04 05:44:54.38 SpMME+ew.net
型定義できるのにany使うのはただの手抜きでしょ
テスト書かない奴・ドキュメント書かない奴と同レベルの言い訳されてもね
程度が知れるわ

141:デフォルトの名無しさん
19/10/04 05:51:43.29 1uH22Nmi.net
>>139
ほんとそれ
俺達真実の探求者からするとanyは許せないよな。嘘つきの言葉を許すな!w

142:デフォルトの名無しさん
19/10/04 06:03:38.67 1ASrQa/c.net
>>138
マネージャ無能すぎるだろ
こわい現場だ

143:デフォルトの名無しさん
19/10/04 06:11:57.87 6+RXT+MW.net
型書いたぐらいで期限に間に合わなくなるってことは、当然テストもロクにしてないわけで……

144:デフォルトの名無しさん
19/10/04 06:21:51.96 1ASrQa/c.net
そりゃテストなんて書かないでしょ
作るべきもがあるからな!ドンッ

145:デフォルトの名無しさん
19/10/04 07:03:06.07 Yf9jmew1.net
「型合わせ終わったからバグはありません!」
「どれどれ」
「バグだらけじゃねーか!ふざけんな!」
「型合わせ終わったのにどうして....」

146:デフォルトの名無しさん
19/10/04 07:10:07.14 hD2IkxgL.net
型システムを過信し過ぎるのも型を軽視しすぎるのもよくないねという話なんだよな
型が合って出なくなるバグは型にエンコードした情報だけって事すら認識してない人間が型パズル型パズルって馬鹿にしてそう

147:デフォルトの名無しさん
19/10/04 07:16:14.13 8yIxxMU3.net
>>144の思考だとvoid*を使わないC/C++にはバグがないということになるが?

148:デフォルトの名無しさん
19/10/04 07:25:07.97 yNm14ygW.net
このスレJuliaと銘打ってるのにJuliaの話題出てこない。

149:デフォルトの名無しさん
19/10/04 07:42:49.57 fSgdSM//.net
「any」というのはですね、嘘吐きの言葉なんです。中途半端に型を使うからanyになるんですよ。

150:デフォルトの名無しさん
19/10/04 08:09:42.31 ameVRwo7.net
TS信者はany推しでどでかい墓穴を掘ったな

151:デフォルトの名無しさん
19/10/04 09:37:31.16 lnp3M0KY.net
最近の言語だとvar someClass = new SomeClass()みたいなnew演算子は排除するのがトレンドなのかな
C++だとnewのあるなしで確保先をスタックとヒープに分けるから意味あるけど
Java以降の言語でオブジェクト生成に毎回new打たせる意味は結局よく解らなかったな
特に意味もなくnew打たせる言語はもはやレガシー感漂う

152:デフォルトの名無しさん
19/10/04 10:18:13.78 hD2IkxgL.net
Goに至ってはnewはゼロ初期化明示に残ってこそいるけれどスタックかヒープかは自動でコンパイラが割り振るしな

153:デフォルトの名無しさん
19/10/04 10:50:08.23 x/Qhqm9U.net
ハンガリアンかな
接頭辞newを見て補完候補を絞り込む

154:デフォルトの名無しさん
19/10/04 11:52:27.87 VgJGDogT.net
JavaScriptのnewの有無による差(言語仕様)が嫌い

155:デフォルトの名無しさん
19/10/04 11:58:03.15 VgJGDogT.net
あとjsonなどで思うのが
 list: [
   aa
   bb
 ]
または
 list: [
   aa,
   bb,
 ]
のように書きたい
リストの中間か最後(または先頭)かでカンマの有無を調整したくない

156:デフォルトの名無しさん
19/10/04 12:53:10.74 CFemRolP.net
dartはそこらへん緩かったような
a = [3,3,if (hoge) 4,for () i]
とかもできるようなったし。

157:デフォルトの名無しさん
19/10/04 13:03:54.51 TIm5etC2.net
>>154
中間のカンマ省略可能だと式書きたいときに困るでしょ

158:デフォルトの名無しさん
19/10/04 14:38:10.03 JasulCXo.net
TSの型狂信者なんて関数型言語の狂信者に比べれば数も個体の狂暴性も大したことないじゃん

159:デフォルトの名無しさん
19/10/04 15:33:27.96 fSTucKVx.net
コードの書き方勉強するならもちろん外人が書いたコードを見た方が上達するんだろ?

160:デフォルトの名無しさん
19/10/04 16:24:52.16 e1FajTxb.net
そらネイティヴやからな

161:デフォルトの名無しさん
19/10/04 16:59:50.32 CbH6cc12.net
>>157
なにそのウンコよりゲロの方がマシ理論
これだから型パズル大好きマンは

162:デフォルトの名無しさん
19/10/04 19:06:33.35 x7KRb3pR.net
型パズルってフレーズここで聞きすぎてむしろ静的型チェックのない強い型付けの言語の方が型パズルだと思うようになってしまったけど…

163:デフォルトの名無しさん
19/10/04 19:35:11.93 fjkFfujs.net
とりあえずテストコード書こうぜカスども。

164:デフォルトの名無しさん
19/10/04 19:36:22.90 6+RXT+MW.net
部品の型を言えばオートでパズル解いてくれるのが静的型チェックで、
人間がこの部品がどこならちゃんとはめられるか考えないといけないのが動的型付けだから、
なるほど型パズルなのは動的付け型の方だな

165:デフォルトの名無しさん
19/10/04 19:36:50.56 6+RXT+MW.net
付け型ってなんやねん

166:デフォルトの名無しさん
19/10/04 19:52:05.34 vlmSJkRH.net
解いてはくれねえだろ
コンパイラが間違いだと思ったら指摘するだけでよ
コンパイラが仕様を理解して正解を提案してくれる訳でもあるまいし
結局人間がきっちり書くしかねえんだよ
型が合えば満足する奴はそこがわかってない

167:デフォルトの名無しさん
19/10/04 20:47:40.84 x7KRb3pR.net
実際問題型に過剰な信頼を寄せている人間はおれどもTypescriptの中でわちゃわちゃしてるくらいなら別に良くない?
PureScript使えって言い出してる訳じゃないし
あっちはReactが上手く使えなかったり生DOM上手く使えなかったりで、静的型付け好きな私でも本末転倒感を感じる

168:デフォルトの名無しさん
19/10/04 20:51:25.00 6+RXT+MW.net
逆なんだよなあ
最低限型が合ってるかどうかコンパイラがチェックしてくれる分だけ労力を他のことに割ける
動的型付け信者はまるで動的型付けだとロジックのバグが発生しないかのような物言いをする

169:デフォルトの名無しさん
19/10/04 21:00:50.51 a8m6fyZS.net
型だけは立派だなw

170:デフォルトの名無しさん
19/10/04 21:02:12.54 8yIxxMU3.net
動的型付けは不完全なコードも実行できるようにしてデプロイまでの工程を高速化するためのものであって、バグは当然増える

171:デフォルトの名無しさん
19/10/04 21:06:57.26 G1/ISgxb.net
>>167
ジェネリクス使いだすとだんだん手に終えなくなってくるよ
ようは単純な型使ってるだけの間は害はない
メタプログラミングやりだしたらどうでもいいところに時間かけるようになる

172:デフォルトの名無しさん
19/10/04 21:11:43.47 x7KRb3pR.net
OCamlは許された……?

173:デフォルトの名無しさん
19/10/04 21:30:24.60 Zf6it0qM.net
>>170
ジェネリクスすら使えないとかwww

174:デフォルトの名無しさん
19/10/04 21:39:33.05 cnXTizuT.net
本来動かないコードのエラー発生をランタイムまで
先送りするのがメリットなのか?

175:デフォルトの名無しさん
19/10/04 21:40:16.83 6+RXT+MW.net
ジェネリクス使っただけで手に負えなくなるプロジェクトって静的型がなかったら実行時バグで死ぬだけでは

176:デフォルトの名無しさん
19/10/04 21:41:27.58 EUw3Ota4.net
>>170
ジェネリクスとメタプログラミングは全然違うんだが
C++のテンプレートと勘違いしてる?

177:デフォルトの名無しさん
19/10/04 21:44:07.98 OLpRTMGU.net
>>175
型の制限を加えるプログラミングと言えるのでメタプログラミングのひとつだよ
出来合いのコンテナ使ってるだけの人は気にしなくていい

178:デフォルトの名無しさん
19/10/04 21:55:05.87 EUw3Ota4.net
>>176
型の制限を加えるとメタプログラミングになるというロジックが意味不明

179:デフォルトの名無しさん
19/10/04 22:01:57.54 D62UOEus.net
メタプログラミングって何なの?

180:デフォルトの名無しさん
19/10/04 22:31:52.18 8yIxxMU3.net
ggrks

181:デフォルトの名無しさん
19/10/04 22:44:18.75 5vrHCZSw.net
>>138
マネージャー「このままじゃ期限に間に合わないが……大丈夫か?」
型なしガイさん「大丈夫です!!!


182:期限を最優先に、JSDocも型も書かずに、コードだけを書いてます!!!!!」 ええんかおまいら・・・



183:デフォルトの名無しさん
19/10/04 23:04:10.46 Qy5oO/05.net
生JSはそもそもまともにドキュメントを書けるような構造化されたコードを書ける時点で結構ハイスキルな方だし、
そのレベルならドキュメント書かなくても十分に可読性や保守性の高いコードだと思うよ

184:デフォルトの名無しさん
19/10/04 23:15:40.89 HMIwQPk8.net
流石にドキュメントは書こうぜというか
最早型云々のレベルじゃない

185:デフォルトの名無しさん
19/10/04 23:22:38.10 f2ci0Glw.net
↓これマジ?ルーストってまともなエディタも作れないの??
686 デフォルトの名無しさん sage 2019/10/04(金) 22:07:43.17 ID:YLLg2aHe
AtomチームがやってたRust製エディタの実験プロジェクトも終了したんだからあきらめよう

186:デフォルトの名無しさん
19/10/04 23:29:38.96 A0q1MFV5.net
char **argv の時点で既にパズルになってたよ
型レベルの構文木があるなら構文解析もあるので型レベルプログラミング不可避

187:デフォルトの名無しさん
19/10/04 23:42:20.75 fwIXJdxR.net
>>183
Atom自体が死に体だから余裕が無くなったのだろ
まさかAtom用のフレームワークElectronを利用したVSCODEにシェア奪われるとは

188:デフォルトの名無しさん
19/10/05 00:19:16.44 PYJHTzmB.net
>>182
第1引数は数字です
第2引数は文字です
って書くんか?
それじゃ「メンテナンスのことを考えて型書いてますんで!!!」ガイジと同じレベルやないかい

189:デフォルトの名無しさん
19/10/05 00:43:26.48 Kv3wO+aL.net
その情報無かったら他人はどうやって使うのさ
命名でカバーするの?

190:デフォルトの名無しさん
19/10/05 01:03:03.48 PYJHTzmB.net
>>187
マネージャー「型?そこは拘らなくていいから期限を……」
型ガイさん「その情報無かったら他人はどうやって使うのさ命名でカバーするの?!!?!!!!??????!!!!!!」ドンッ!!!!

191:デフォルトの名無しさん
19/10/05 01:21:27.55 +P5r5Pn+.net
>>188
ほんでマネージャはなんで答えるのよ

192:デフォルトの名無しさん
19/10/05 01:27:16.32 PYJHTzmB.net
>>189
なんでっておまえらドキュメントガイジがコードも書かずに遊んでるからだろ
給料泥棒

193:デフォルトの名無しさん
19/10/05 01:30:54.69 PYJHTzmB.net
/**
* メソッドの盛り合わせでございます。
* データベースにお接続し、データを取得でございます。
* 第1引数は数字でございます。
* 第2引数は文字でございます。
* 第3引数はあるかもしれないしないかもしれないでございます。
* 返値はないかもしれないし数字かもしれないでございます。
*/
おまえら下請けのゴミどもはヨ?納品物は正しく敬語で書けよ

194:デフォルトの名無しさん
19/10/05 04:58:55.67 gUIOWgQJ.net
正直>>191はやりすぎだけど
型ガイさんみたいな意識高めの人ってコメント全く書かなそうだし>>191の方がメンテナンスしやすそう

195:デフォルトの名無しさん
19/10/05 05:02:28.81 YQ7Mz102.net
ジェネリクスとメタプログラミングについてはとりまRust Part7 260をチェケラ

196:デフォルトの名無しさん
19/10/05 06:06:07.64 xdqQKQ1c.net
もはや次世代言語関係なしに型もドキュメントもテストもロクに書けないペチパーが暴れるだけのスレになったな

197:デフォルトの名無しさん
19/10/05 06:09:42.41 GP9ct3ol.net
> 返値はないかもしれないし数字かもしれないでございます。
これが実際だったりしてもコメントにすら書かないでごまかす輩がいるんだよな。
型にこだわるやつに限って都合の悪いことはコメント書かん傾向にある。
逆にうまくいかんことをコメントにしろと思うのだが。

198:デフォルトの名無しさん
19/10/05 06:14:53.95 xdqQKQ1c.net
>>195
これもまったく逆だな
文字列か数値かnullが返る関数はそういう型を書かないとそもそもコンパイル通らないし、
そういう妙な型になってる関数はなんでそんな関数が出てくるのか、どんな用途なのかわからないようだとコードレビューに通らない

199:デフォルトの名無しさん
19/10/05 06:20:48.27 GP9ct3ol.net
>そういう妙な型になってる関数はなんでそんな関数が出てくるのか、どんな用途なのかわからないようだとコードレビューに通らない
そんなレベルでコードレビューやってるなら問題ないだろね。

200:デフォルトの名無しさん
19/10/05 08:03:17.63 /uRkHkBp.net
>>195
> 都合の悪いことは書かない
型に関しては全くそうは思わないが、話は変わるけどテストコードはまさに > 都合の悪いことは書かない が横行してるよね
ユーティリティ関数のようなテストしやすいところだけテスト書いて、本当にテストの必要なコア部分は誰もテストなんか書こうとしない
奇跡的に書かれたとしても頻繁に変更が入るからすぐに壊れて放棄される
この傾向は型の有無とは無関係だが、実際にはテストコードなんか無いのにその現実から目を背け
「テストがあれば型は不要」と抜かすのが動的型信者

201:デフォルトの名無しさん
19/10/05 08:06:08.67 GP9ct3ol.net
>「テストがあれば型は不要」と抜かすのが動的型信者
こんなこと言い出す輩はruby使ってる奴以外見たことないがな。
逆ならたくさん見てきた。

202:デフォルトの名無しさん
19/10/05 08:12:58.60 /uRkHkBp.net
>>199
まあそれはその通り
一方で、それなら静的型を使っているプロジェクトはそうでないプロジェクトに比べてテストが書かれないのかというと、
面白いことに実際にはたいてい逆なんだよなw
言語の性質とは無関係に、単に品質に対する意識の問題なんだよ

203:デフォルトの名無しさん
19/10/05 08:43:59.28 +P5r5Pn+.net
>>190
いや、命名でカバーすんの?

204:デフォルトの名無しさん
19/10/05 09:04:58.44 hwNO3Eb6.net
>>176
お前は何を言ってるんだ?

205:デフォルトの名無しさん
19/10/05 09:12:37.01 FrQq6pik.net
Haskellくらい型の表現力が豊かで状態を陽に扱う言語だと、コンパイルが通れば大体狙い通り動くってことが良くある
静的型付けでもオブジェクト!フィールド変数!ウオオオ!って副作用バリバリな言語だと、テストコード書かないと安心できないことの方が多い

206:デフォルトの名無しさん
19/10/05 09:18:43.77 VWTAP42j.net
テストを何だと思ってるんだ

207:デフォルトの名無しさん
19/10/05 09:44:48.66 j2LTRMYt.net
別に「型なんてなくてもいいものができる」なんて流石に言わんでな
「型キチがモナドだのFreeだのEffectだのでパズルおもちゃにしてマウントとってくるくらいなら型なんていらねえ」って言ってるだけ
これは個人の感想じゃなくて、Scalaの大失敗からの教訓な
これをいうとすぐペチパー連呼発狂マンが飛んでくるのほんと図星なんだなとしか思わん

208:デフォルトの名無しさん
19/10/05 09:52:11.84 Kv3wO+aL.net
ホントに型の話してるのか不安になってきた

209:デフォルトの名無しさん
19/10/05 10:02:24.47 6NInSiPP.net
>>191
こういうコメントに謎の型書くくらいなら
普通に言語機能の型書いた方がよくない・・・?
> 第1引数は数字でございます。
が平気で null | string (ただし暗黙キャストで数字になる) とか使われてたりするのが、型無し言語の世界だぞ
お前らこれ読んでも、型よりコメントの方がいい、型はなくていいとか、本気で言ってるの?

210:デフォルトの名無しさん
19/10/05 10:23:24.96 rY1OpV0v.net
おもちゃにするまではなんとなくわかるが個人の勝手だし、マウントとってくるってのはなんなのかわからんな。

211:デフォルトの名無しさん
19/10/05 11:30:14.04 8R/2cy4I.net
個人の勝手で共同プロジェクトのソースコードぐちゃぐちゃにされたらたまらんわ
結局メンテできるのそいつ一人になって
仕事が集中したらケツまくって逃げるんだもんな
型にこだわるやつは地雷だし、そんな奴をホイホイする言語が地雷

212:デフォルトの名無しさん
19/10/05 11:34:07.41 ZxO1UIOF.net
Cのマクロをほぼほぼ封印できた成功体験が大きいと思うぜ
マクロをどう使おうが個人の自由、などという結論にはならなかった
ちなみにマクロを否定するなら代案が必要だったから俺達はtemplateで再帰とかしている

213:デフォルトの名無しさん
19/10/05 12:12:59.41 GyCr6Yqs.net



214:塔eナンスが〜!って言われるけど作って最初の数ヶ月だけメンテされて その後APIの仕様変更とかがない限りずっと放置されるんだよね……w



215:デフォルトの名無しさん
19/10/05 12:54:38.51 +P5r5Pn+.net
個人の勝手でコードぐちゃぐちゃになるってどういう組織なのよ
どんな体験からそんな保守的になったのか興味あるわ

216:デフォルトの名無しさん
19/10/05 12:57:47.72 6NInSiPP.net
個人の勝手うんぬんって、完全にマネジメントの問題じゃん
それが型のせいで〜とか、思考回路ショート寸前すぎない?

217:デフォルトの名無しさん
19/10/05 13:00:54.85 e/Rh94Kn.net
>>211
新規で作るよりあるものに機能足そうって思想で魔改造されるパターンで
放置どころかメンテが続くパターン知らないんだな

218:デフォルトの名無しさん
19/10/05 13:01:24.64 Kv3wO+aL.net
TSってaltJSの中じゃ保守的な方ってイメージだったんだが
言語機能としてはC#やJavaと大差ない程度なのに1人抜けたらメンテ出来ないってヤバいでしょ

219:デフォルトの名無しさん
19/10/05 13:09:22.15 bTVdb/1I.net
型キチが大暴れしてコードしっちゃかめっちゃかにするのを
型キチ本人のせいじゃなくてマネジメントのせいにするとか
まじで自分は悪くない正義なんだ思想でゲボ吐きそう
ScalaでScalaz使い倒した上にimplicit地獄で複雑怪奇に絡み合った製品コードを
「これがきれいでシンプルでバグもない!」って強弁した挙げ句
誰も触れないからメンテお前が一人でやれって言われた途端退職したキチと同類なんだろうなお前ら
今のScalaの惨状みてると、日本中といわず世界中で似たようなことあったんだろうなって思うは

220:デフォルトの名無しさん
19/10/05 13:13:28.85 BGs0A1AU.net
そりゃちょっと勉強すれば誰でもメンテはできるだろうけど型ガイさんのために学習コストを払うのが前提だよね……😅

221:デフォルトの名無しさん
19/10/05 13:14:23.42 Kg0A79VG.net
ここの人たちGAFAとかに勤めてなさそう

222:デフォルトの名無しさん
19/10/05 13:17:59.64 tTcT8bvF.net
>>216
そいつがキチなのは本当なんだろうけど
それじゃそのキチにすら見限られるよ・・・

223:デフォルトの名無しさん
19/10/05 13:20:34.36 xQy0rF4i.net
型アンチが型を嫌う理由が型に1ミリも関係ない私怨で草
動的型ならしっちゃかめっちゃかにならなかったわけじゃあるまいし
そいつ本人とコードレビューが機能してないのがダメなだけ
そいつがRubyやら生JS使ってても同じことが起こっただろう

224:デフォルトの名無しさん
19/10/05 13:20:47.37 bTVdb/1I.net
キチに見限られるとか本望ど真ん中で草

225:デフォルトの名無しさん
19/10/05 13:22:53.78 rY1OpV0v.net
とりあえず「コードしっちゃかめっちゃか」の例を見てみたい

226:デフォルトの名無しさん
19/10/05 13:23:19.56 +HXFD6yk.net
型キチ推しがType Scriptでanyを推奨

227:デフォルトの名無しさん
19/10/05 13:23:25.13 bTVdb/1I.net
だから型そのものが嫌いなんじゃなくて
型キチのおもちゃになるくらいならそんなもんいらないとしか言ってねえっての
型そのものの有用性くらいわかっとるわ
型キチの藁人形論法寒気するわ

228:デフォルトの名無しさん
19/10/05 13:24:23.29 K6vy6GrL.net
まぁまぁ落ち着きなさい
型パズルでもして遊んできなさい(^_^)

229:デフォルトの名無しさん
19/10/05 13:26:06.48 Kv3wO+aL.net
そんなん勝手にしろとしか
私怨をこのスレで発散されても困るんだが

230:デフォルトの名無しさん
19/10/05 13:26:35.49 xQy0rF4i.net
その理論ならコードレビューが機能してなかったらRubyやJSでもメタプロ厨のオモチャになって解読不能なコードが出てくるだけだろ
キチガイを排除できない態勢がクソなだけ

231:デフォルトの名無しさん
19/10/05 13:31:40.03 6NInSiPP.net
>>227
これでしかない
何が彼を憎悪に駆り立てるのか本当にわからない・・・
型が理解できてないだけなのかな?

232:デフォルトの名無しさん
19/10/05 13:36:24.02 bTVdb/1I.net
レビュワー「こんな複雑怪奇なコード通せるかバカ。分かるように書け」
型キチ「これが一番シンプルで分かりやすい!!分からないお前らがバカ!!」
上「リリース日決まってるし作り直す時間ないしちゃんと動きはするんでしょ?通してやって」
型キチ擁護さんには画期的な腹案を持ちはっとるんどすなあ

233:デフォルトの名無しさん
19/10/05 13:38:01.64 xQy0rF4i.net
完全にマネジメントの問題で草
そのロクに読めない複雑怪奇なコード出してくるヤツをプロジェクトの中心に据えたのは誰なんですかね

234:デフォルトの名無しさん
19/10/05 13:40:42.55 tTcT8bvF.net
>>221
その結果、まともに引き継ぎも出来ず
誰も触れない製品コードが残っちゃったんでしょ?
問題が起きる前に排除も出来ず
問題が起きてからの対処にも利用出来なかった最悪の事例じゃん

235:デフォルトの名無しさん
19/10/05 13:42:13.27 JSHhtZtD.net
キチガイが型無し言語で書いたコードより、型キチが静的型付け言語で書いたコードの方がマシだからな
静的型付けが理解出来ないから前者の方がいいというのはただの勉強不足

236:デフォルトの名無しさん
19/10/05 13:43:25.00 oMST/mlK.net
スクリプトとかいうゴミの話はやめてちゃんと機械語吐き出すまともな言語の話しようぜ

237:デフォルトの名無しさん
19/10/05 13:53:52.42 6NInSiPP.net
>>232
1000000000%そのとおり

238:デフォルトの名無しさん
19/10/05 13:57:21.34 d7bLgDqu.net
TypeScriptを使うメリットを具体的に上げられる人いるの?

239:デフォルトの名無しさん
19/10/05 14:08:51.86 VWTAP42j.net
あまり語られないが、interfaceで設計できるのが最大のメリットだと思う
地味な使い道としては、JSON Schemaへの変換ツールとして非常に実用的。

240:デフォルトの名無しさん
19/10/05 14:20:09.12 xdqQKQ1c.net
最低限型の合ったコードを書くことを
プロジェクトの開発者全員に
強制できてレビュアーの負担が減ること

241:デフォルトの名無しさん
19/10/05 14:36:59.56 D63M/WEV.net
Go言語とか見ても分かるように、型ガチガチにやらないことが次世代のトレンドってことだな

242:デフォルトの名無しさん
19/10/05 14:53:55.44 6syy3iPc.net
必要ならTypeScriptでanyを使うしC#でdynamicを使う

243:デフォルトの名無しさん
19/10/05 14:56:45.32 mM4GDxRu.net
それな
おまけに型推論で、自分で型書かなくても良い感じにしてくれるし
TS叩いてるやつって、PHPくらいしか触ったことないゴミだろ

244:デフォルトの名無しさん
19/10/05 15:04:57.76 mtV0hE5K.net
>>235
なんだかんだ型は皆無よりはあった方がいいのは確か
ただし「anyは嘘吐きの言葉」とか言い始めるやつがプロジェクトに紛れ込むのがそれ以上の欠点

245:デフォルトの名無しさん
19/10/05 15:24:15.40 1kVSHcIG.net
型は強制されない方が便利とかVB6の時代にタイムスリップしてきたみたい

246:デフォルトの名無しさん
19/10/05 15:27:16.50 mM4GDxRu.net
旧Javaの冗長な型の反動で型無し言語が持て囃され、やっぱり型無し言語は糞、型推論でやってこうがトレンドだというのに
ここのおじいちゃんたちは「型は冗長!型はない方がいい!」
四半世紀前くらいからタイムスリップしてきたのかな?

247:デフォルトの名無しさん
19/10/05 15:28:19.62 mM4GDxRu.net
極論で喚くだけのゴミ
booleanでしか物事を理解できず、バランスというものを知らないらしい

248:デフォルトの名無しさん
19/10/05 15:45:19.95 dIxkfe+5.net
本当に型がそんなに大事ならGoは覇権を取れなかっただろうな
Scalaが死んでGoが覇権を取ったのは、>>243の過程からさらに揺り戻しで
「厳しすぎたり表現力ありすぎたりする、型ガイホイホイの言語じゃダメだ」って流れが来てるってことだろ

249:デフォルトの名無しさん
19/10/05 15:48:21.15 KxOnTWto.net
そのGoもGo2でジェネリクス入るけどな

250:デフォルトの名無しさん
19/10/05 15:59:31.66 ZxO1UIOF.net
char **argv の時点で既に難易度のバランス崩壊してるようなことは言われてた

251:デフォルトの名無しさん
19/10/05 18:11:40.37 b9+wkgN8.net
>>207
Cはキャストでどうにでもなるけどそれが全ての型がない言語を代表してるとでも
旧ObjectWorksだと何も困ることはなかったな
任意のインスタンスに存在しないメッセージ投げようとしても警告が出てセーブできないし
無理やりevalで実行時解釈させようとしてもエラートラップするだけで原因はすぐわかるようになってる
引数はいわゆるanyだがどのクラスに限定するのか記述することもできる(そうしたいのなら)
型で縛ってる言語は労力かかるわりに仕上がり悪いことが多いね

252:デフォルトの名無しさん
19/10/05 18:18:15.93 b9+wkgN8.net
そもそも型推論はコードの安全性を高めるのが目的というよりも
型が定まることにより最適化の恩恵を受けられるというのが本来の筋だと思うんだよな

253:デフォルトの名無しさん
19/10/05 18:35:30.31 /whshWN1.net
型ガイとか型キチって表現は嫌いだけど、今は一般的なプロダクトでは型に持たせる表現力は控え目にしながらジェネリクスくらいは入るかって感じかなぁと思ってるよ
金融で型に持たせた機能で処理の妥当性をできる限り保証していきますって分野にだけ関数型言語でリッチな型を使うとか、Rustみたいに低レイヤーの捕捉しにくいバグ要因に対してだけある程度の機械的検査性だけ持たせるって使い分けの方針でさ
動的で強い型付けの言語も漸進的型付けやアノテーションの形で使えるものは使うって感じじゃん?

254:デフォルトの名無しさん
19/10/05 18:51:46.65 +P5r5Pn+.net
うーん何言ってるかわかんない

255:デフォルトの名無しさん
19/10/05 19:35:19.59 mtV0hE5K.net
ScalaやRustみたいな型ガチガチにやる言語は今日日流行らないってことよ

256:デフォルトの名無しさん
19/10/05 19:40:25.62 T+9tzQZ1.net
理想のエンジニア「こういう機能があればユーザーは喜ぶだろうか?UXとかも考慮しないとな……」
現実のエンジニア「型が〜!!モナドが〜!!!動的wwwww」
俺悲しいよ……😭

257:デフォルトの名無しさん
19/10/05 20:00:15.91 ZxO1UIOF.net
コンテナ
スマポ
モナド
こいつらの目的は、ライブラリでできることを言語本体から分離すること
分離できなかった原因の一つがたまたま型システムだったから型の話をしてるだけ

258:デフォルトの名無しさん
19/10/05 20:08:36.34 b9+wkgN8.net
コンパイラにできることは型が正しいか検査することだけであって
正しい処理をしたかどうかなんて担保できないんだよね
型の辻褄は合わせました、ロジックは間違ってて要求仕様を満たしてません
こういうのを何度も見てると本末転倒とさえ思える
型に振り回されすぎて実際のコードがゴミになってる
これはいかんね

259:デフォルトの名無しさん
19/10/05 20:10:26.40 GA2Bx1T0.net
新規に少人数でゴチャっと作るなら型無し言語が早いと思うが、
その後軌道に載って人数増やして機能追加を加速して行くとなったら、静的型付け言語の方に圧倒的なアドバンテージがあるぞ
そのへん疎かにしてるからバグだらけで機能追加もままならないとか糞サービスになる

260:デフォルトの名無しさん
19/10/05 20:11:40.34 WaZRqS3Y.net
>>253 みたいな下側の話をするためのしょーもない場所にわざわざやってきてまで煽りたいだけの人間が居る事の方が俺は悲しいよ

261:デフォルトの名無しさん
19/10/05 20:19:05.31 b9+wkgN8.net
>>256
少人数でも大人数でも動的なほうが問題起こしにくいよ
コード量も少なくて労力がかからないというのは利点しかない
機能追加にしても動的だと合わせやすいけれども静的型付けだと
どうしても綿密にやらないといけない割に不具合起こしやすくなる
強い型付けは想定されていなかったことに対して非常に弱い側面あるね

262:デフォルトの名無しさん
19/10/05 20:31:02.07 xdqQKQ1c.net
それはさすがに嘘つきすぎ
人数や規模が増えるとバグは動的型付けの方が圧倒的に増える、加速度的に増える
動的型付けならバグってても実際にそこ通るまで検出されないだけ
今時の言語は型推論が強いから静的型付けでもそこまでコード量は増えない

263:デフォルトの名無しさん
19/10/05 20:32:05.04 b9+wkgN8.net
個人的におかしいと思うのは
強い型付け言語の利点としてなぜかコードの安全性なるものが神話化してしまったことなんだね
それは全く担保できないことなんだけれども。
大きな利点があるとすればコンパイラがより最適化しやすくなる、ということだけだけど
HaskellなんかのUnboxed Valueがさっぱり早くないところを見ると疑問もある

264:デフォルトの名無しさん
19/10/05 20:34:18.71 b9+wkgN8.net
>>259
通らないコードはテストもされていないってことなんだよ
そこを心配するのはそもそもおかしいのだ
動的なエラートラップはすぐに原因がわかるのと対処も早いので進捗は早めになる

265:デフォルトの名無しさん
19/10/05 20:39:16.96 xdqQKQ1c.net
>>261
無根拠に断言してるだけ、論点先手、詭弁の典型
静的だと動的型付けよりエラーの原因がわからないという根拠、データなし
なお現実は型レベルで整合性の取れないおかしなコードを書くゴミの方が多い

266:デフォルトの名無しさん
19/10/05 20:42:37.53 D0zXpfE2.net
>>261
動的型付けで実引数に与えられる可能性のある型すべてに対してどうやってテストするの?

267:デフォルトの名無しさん
19/10/05 21:10:09.93 GA2Bx1T0.net
>>258
機能追加で動的だと合わせやすいとか全く異次元で信じられないよ
俺は今機能追加するときには、自分が作ったコードだろうが他人が作ったコードだろうが、まずは型を頼りに仕様を把握して、既にある型に沿って追加コードを書いていくよ
必要なら既存のコードの変更もするわけだけどその時も型を頼りにIDEの機能を使ってリファクタリングとか頻繁にする
自分の作った数年前のコードなんて、型無しで保守するとか恐怖だよ

268:デフォルトの名無しさん
19/10/05 21:12:33.20 5LWIufpy.net
HaskellとかScalaとかでそこそこの規模以上の開発したことあるなら
「静的で強い型付けしてるから開発とテストサイクルが速い」なんて口が裂けても言えないと思うが

269:デフォルトの名無しさん
19/10/05 21:15:46.21 5LWIufpy.net
一ヶ所変えるだけであらゆる関数の引数や返り値の型を全部変える必要が出てきて
それに伴って既存テストコードも全部動かなくなって
何が正しいのかから全部決め直しになるみたいな地獄を経験したことない奴が
「静的型の方が開発サイクル速い」とかフカしてるの見るのおぞましいわ

270:デフォルトの名無しさん
19/10/05 21:20:06.05 GA2Bx1T0.net
>>266
JetBrains の IDE とか使ったこと無さそう
そういう地獄は IDE でさくっと回避する時代だよ

271:デフォルトの名無しさん
19/10/05 21:20:41.96 mM4GDxRu.net
ID:b9+wkgN8
動的型がどれだけ頭の悪い似非エンジニアに汚染されてるか、よくわかるレスですね

272:デフォルトの名無しさん
19/10/05 21:21:55.40 mM4GDxRu.net
>>266
一ヶ所変えるだけであらゆる関数の引数や返り値の型を全部変える必要が出てきて
それに伴って既存テストコードも全部動かなくなって
何が正しいのかから全部人力Grepになるみたいな地獄を経験したことない奴が
「動的型の方が開発サイクル速い」とかフカしてるの見るのおぞましいわ

273:デフォルトの名無しさん
19/10/05 21:25:50.02 GA2Bx1T0.net
おまえらが馬鹿にしてる Java だって IntelljIDEA や AndroidStudio のリファクタリング機能でテストコードも含めて何の苦もなく引数の型変更とかできる
逆に型無かったらこれをサクッとやるのは難しい

274:デフォルトの名無しさん
19/10/05 21:28:01.46 47UJflGv.net
マネージャーとの面談にて
マネージャー「最近の調子はどんな感じなんだ?」
型キチ「概ね大丈夫です……ただ、動的型付け言語が一部のプロダクトで使われてるのだけが不満で……」
マネージャー「か、型?それだけが問題なのか?」
型キチ「それだけ!?!????????!?型があるかないかだけでメンテナンス性と可読性が全然違うんですよ!???ギャオオオン!!!」
悲しいね

275:デフォルトの名無しさん
19/10/05 21:28:01.60 GA2Bx1T0.net
ああ型無し言語は引数の型は無いんだったなwメソッド名の変更をさくっとできるとかに読み替えてくれ

276:デフォルトの名無しさん
19/10/05 21:28:29.00 rY1OpV0v.net
>一ヶ所変えるだけであらゆる関数の引数や返り値の型を全部変える必要が出てきて
これはわからんでもないが
>それに伴って既存テストコードも全部動かなくなって
なんでそうなるのか意味不明

277:デフォルトの名無しさん
19/10/05 21:37:33.45 b9+wkgN8.net
>>269
それは現実離れした極論だね
修正が必要になるのはどの言語でも変わらないよ
テストコードが動かない場合、あるいはtest protocolが失敗するケースでは問題が起きてるから修正にはなるがそれだけだ
引数に全く違うオブジェクトが入ってきた場合の振る舞いはすぐにトラップするからわかるよ
全体修正なんてことにはならないしなったこともない

278:デフォルトの名無しさん
19/10/05 21:39:22.95 b9+wkgN8.net
>>272
メソッド名の変更は全体に適用できるので問題ないね
命名変更程度なら用意されてる
呼び出す方も全て変わる

279:デフォルトの名無しさん
19/10/05 21:42:13.51 b9+wkgN8.net
>>264
旧仕様のクラスのままで新仕様のクラスをテストする、ということが動的の場合はできるのだ
こう言ったことに限らずあらゆる局面で柔軟性が高いのは利点だよ
開発サイクルの速さはこういうことにもつながっている

280:デフォルトの名無しさん
19/10/05 21:46:35.13 oarnWrY2.net
モナドが難し過ぎてHaskellでmain関数書けないんだが
こんなもん普通の言語に導入するのは無理がある

281:デフォルトの名無しさん
19/10/05 21:50:21.79 b9+wkgN8.net
>>264
重要なことを書くのを忘れた
「型を追わなくていい」んだな
そこに注力する必要がなく、適切なprotocolと定義があるかを見ることが重要になる
型付け言語と動的の場合それぞれアプローチが変わってくる

282:デフォルトの名無しさん
19/10/05 21:51:05.52 rjAFvvxm.net
関数型言語は関数型を使ってる自分に酔ってシコるためだけに存在する言語だからね
シコScalaやシコHaskellは勉強しなくていいよ

283:デフォルトの名無しさん
19/10/05 21:58:36.88 oMST/mlK.net
F#のことも思い出してあげて

284:デフォルトの名無しさん
19/10/05 21:59:25.58 mjKpzDld.net
座標を扱う時に直交座標も極座標も数値型の組に過ぎないから型があってるだけでは不十分
みたいな話ならまだ分かるんだが

285:デフォルトの名無しさん
19/10/05 22:03:01.36 kmFdI7ZB.net
>>281
それは設計が悪いだろ
まともな頭してたら直交座標と極座標は別の型にする

286:デフォルトの名無しさん
19/10/05 22:08:26.33 b9+wkgN8.net
CLOSなんかでも総称関数で想定外のオブジェクトが渡されたら大変なことになるなんて言う人いないと思うが
最終的に呼ばれるはずだったslotが存在しないオブジェクトを扱おうとしていたら直ちにトラップか
コンパイルする処理系だと事前に警告だから
どこをどうやっても全体修正なんてことにはならない
強い型付けをしても想定通りに動かないコードが出来上がってしまうのは
すなわち型だけで安全性を高めることはできない証左とも言える
その理由の一つに一般的に型とは振る舞いを定義しているものではないからだ
型が合わなければ通さない、合っていれば通す、ただそれだけのことであって
通した後の処理まで面倒見ているわけじゃあない
本末転倒になっているのはこの部分だね

287:デフォルトの名無しさん
19/10/05 22:35:01.34 mM4GDxRu.net
こんなお花畑野郎とは絶対に一緒にコード書きたくねえな
型以前の問題だったわ

288:デフォルトの名無しさん
19/10/05 22:35:41.62 Sq/oJs63.net
こいつの言ってる安全性ってなんなんだ
勝手に神話を作って勝手に信じたのか

289:デフォルトの名無しさん
19/10/05 22:41:21.63 mM4GDxRu.net
マネージャーとの面談にて
マネージャー「最近の調子はどんな感じなんだ?」
型キチ「概ね大丈夫です……ただ、静的型付け言語が一部のプロダクトで使われてるのだけが不満で……」
マネージャー「か、型?それだけが問題なのか?」
型キチ「それだけ!?!????????!?型が理解できないし勉強できないメンテナンスできない人がいるんですよ!???ギャオオオン!!!」
悲しいね

290:デフォルトの名無しさん
19/10/05 22:42:02.16 oMST/mlK.net
ここ型議論しかしてねーな

291:デフォルトの名無しさん
19/10/05 22:42:41.02 qlkFezQz.net
次スレは動的型付けvs静的型付けで

292:デフォルトの名無しさん
19/10/05 22:46:40.57 q6Mq9TVB.net
>>286
型キチさん、型チェック忘れてますよw


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

542日前に更新/214 KB
担当:undef