次世代言語18 V Julia 他 at TECH
[2ch|▼Menu]
[前50を表示]
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

293:デフォルトの名無しさん
19/10/05 22:48:19.61 jHn/y5Ac.net
型ガイさんって正直Javaしか使ったことかいんでしょ?
怒らないから言ってみ?

294:デフォルトの名無しさん
19/10/05 22:58:09.58 HsbLVS7B.net
型無しガイジはPHPスレに帰れ

295:デフォルトの名無しさん
19/10/05 23:06:51.84 +P5r5Pn+.net
型があれば処理が正しいなんて言ってるやついないじゃん
そんな神話聞いたことないわ
存在しない脅威について怯えるのは出来ないエンジニアにありがち

296:デフォルトの名無しさん
19/10/05 23:08:33.06 xdqQKQ1c.net
マジで無能はオールオアナッシングでしかものを考えられない

297:デフォルトの名無しさん
19/10/05 23:10:04.39 D0zXpfE2.net
>強い型付けをしても想定通りに動かないコードが出来上がってしまうのは
>すなわち型だけで安全性を高めることはできない証左とも言える
JavaScriptは強い型付け言語ですけど
動的型付け/静的型付けと強い型付け弱い型付けの区別もついてないレベルで
こんなご高説垂れてたのか

298:デフォルトの名無しさん
19/10/05 23:11:42.96 N1TCJDW/.net
型ガイさんって正直Java(8未満)しか使ったことかいんでしょ?
怒らないから言ってみ?

299:デフォルトの名無しさん
19/10/05 23:18:15.71 FrQq6pik.net
静的型付けネガる人って何でもStringとか何でもMapとか、あるいは配列の1番目はx座標で2番目はy座標を返すメソッド!
とかやっちゃう人なのでは?型が簡単に作れて使える世界を知らないだけでは?

300:デフォルトの名無しさん
19/10/05 23:21:21.08 +P5r5Pn+.net
>>293
ベターを知らないんだよな
ベストとワーストでしか話しが出来ない
能力があって責任ある立場にいればそんな発想にはならない

301:デフォルトの名無しさん
19/10/05 23:47:46.68 GA2Bx1T0.net
>>294
JavaScript は一般的には弱い型付け言語じゃないの?
今も "1" + 1 とかできるんだよね?

302:デフォルトの名無しさん
19/10/06 01:56:56.91 Jx24UgF2.net
Scalaが次世代言語になれなかったのは事実
成功して現世代と言えるくらいになった次世代言語が型がゆるいGoくらいっていうのも事実
でもScalaが自滅したのは強い静的型付けだった「から」じゃないし
Goが流行ったのは型がゆるい「から」じゃないはずなんだけど
なんでそういう関係ないところで型の有用性について議論したがるかね

303:デフォルトの名無しさん
19/10/06 03:17:49.98 +G1RWlUz.net
>>248
んで?今でもあんたはそのobjectworks使った仕事してるの?

304:デフォルトの名無しさん
19/10/06 03:28:03.73 +G1RWlUz.net
>>283
誰一人として型だけで安全なコードができるなんて言ってないのにお前は誰に向かって書いてるんだ?

305:デフォルトの名無しさん
19/10/06 03:55:19.89 qGnSK/oz.net
>>272
少なくともpythonに関しては、JetBrainsのIDEといえどtype hintingが無いと結構失敗する

306:デフォルトの名無しさん
19/10/06 04:39:46.87 qGnSK/oz.net
>>298
それは暗黙の型変換が行われるだけで、その結果は言語仕様で定義されてるから、型システムとしては型安全性があると言える
型安全性があるのが強い型付けで、無いのが弱い型付け、とされる
でもそう定義する界隈があるってだけで、それが絶対的な定義ではないとは思うけどな

307:デフォルトの名無しさん
19/10/06 05:02:55.75 Wdhy4bzT.net
型キチってScala関連の書き込みには全くレスつけてくれないけど
そういうことなんだなって察してしまうわ

308:デフォルトの名無しさん
19/10/06 06:23:26.43 fUZ1yjK2.net
型の話が出るといつもコンプレックス丸出しの奴がギャーギャー騒ぎ始めるねえ
scalazで落ちこぼれたのは分かったけどもw

309:デフォルトの名無しさん
19/10/06 08:25:41.74 NwgqgfWG.net
自分の脳内で作り上げた想像上の人間がScalaスレに書き込んでないことから何かを察するの、すげえな

310:デフォルトの名無しさん
19/10/06 08:49:16.02 +7lGQsyI.net
型についてそこまでこだわっても品質なんてそこまで変わらんとも思うが、
しかし言語選択で今一番影響あるのは型の強さとかあるなしかもな。
まあperlとかphpレベルで暗黙変換しなけりゃ俺はいいかなと思うけど。
動的静的よりも暗黙変換をどれくらい許すかのが個人的には重要かな。

311:デフォルトの名無しさん
19/10/06 08:51:44.92 /3sFCHyh.net
一般的型キチさんの開発環境
Java6、SVN、Eclipse、Windows、WinMe


312:rge、秀丸エディタ、オンプレミス、エクセル、社内Wiki、Outlook 一般的動的マンの開発環境 Ruby・Python・PHP、Git、IntelliJ、Mac、Docker、AWS・GCP、スプレッドシート、esa、Slack 悲しいなぁ……😭😭😭



313:デフォルトの名無しさん
19/10/06 09:03:37.01 IHuQntPK.net
本業C#だがMacがWindowsになる程度だしクソ企業と普通の企業の差では
あと表計算ソフトはスプレッドシートと名を変えようがダメ

314:デフォルトの名無しさん
19/10/06 09:13:51.42 +azYdc8M.net
>>308
そんなにMacが好きならSwiftやiWork使えよww

315:デフォルトの名無しさん
19/10/06 09:19:36.17 51w7DHEq.net
「俺Mac取ったー!おまえWindowsな!」
小学生かw

316:デフォルトの名無しさん
19/10/06 09:22:55.98 nC6Pexaw.net
>>308
スレタイに出てるJuliaは空気だな?

317:デフォルトの名無しさん
19/10/06 09:30:18.52 hi3gsQkB.net
Pythonのデータ系やJuliaはWindowsも多いよ
Rubyなんか挙げちゃった子には無縁の世界

318:デフォルトの名無しさん
19/10/06 09:31:36.02 +7lGQsyI.net
v 更新しとるんだな。今ならてきとうにコミットするのはありかも。
URLリンク(github.com)

319:デフォルトの名無しさん
19/10/06 09:37:27.30 fnVCfpY/.net
このスレマジでMacにコンプ持ってるやつ多すぎて笑うわ
未だにWindows使ってるレガシー企業のくせに次世代言語てw

320:デフォルトの名無しさん
19/10/06 09:41:56.34 SGtLALDv.net
精神勝利法すげえな

321:デフォルトの名無しさん
19/10/06 09:42:12.32 K5A1Az6A.net
型付しないと精神を保てない例だなw

322:デフォルトの名無しさん
19/10/06 09:46:03.28 NwgqgfWG.net
むしろ未だにMacにこだわってる方が加齢臭すごい
LinuxとWindowsがあれば十分で、Macとかいう中途半端なゴミはいらない

323:デフォルトの名無しさん
19/10/06 09:48:22.92 IHuQntPK.net
TS, Go, Rustを使いたがるスタートアップ界隈はWSL2次第でWindowsに戻ってくる動きもあるんだがな
>>313
副業でRubyもたまにやっているがDockerが普及してWindowsユーザーも増えているぞ
Rubyの会社で今時Docker環境じゃないのは余裕がない証だと思って避けているわ

324:デフォルトの名無しさん
19/10/06 09:55:23.81 DbrcOQgy.net
>>308
でたキチガイ

325:デフォルトの名無しさん
19/10/06 09:57:22.70 h6EyR+l0.net
>>308
型キチだが
TypeScript・Python(Type HintingなしはNO)、VSCode、Ubuntu Desktop(Core i9) + Mac、AWS、Slack
モダーンで、すまんなすまんなw

326:デフォルトの名無しさん
19/10/06 09:58:45.37 SGtLALDv.net
自分の一存でScalazを採用させるだけの発言力があるのに
Java6 SVN Eclipse 使わされてるSIerって型キチの設定ガバガバすぎない?

327:デフォルトの名無しさん
19/10/06 10:01:09.93 +7lGQsyI.net
>>319
rubyなんかはそこまで低レイヤーさわらんし、バージョン管理ツール使ってりゃいいんでないの?
docker だとやりすぎ感があるんでは?
c/c++系統の奴使ってるとか、kubernetes使うとかでもない限りそんなに必要と思わんのだけど。

328:デフォルトの名無しさん
19/10/06 10:04:41.68 HMANkRPq.net
>>314
サンプルやコンパイラがメモリリークするのは直ったんだろうかね
Goのように簡単に書けてRustのようにGC無しで自動解放すると言っていた
Go/Rustを超える詳細不明のメモリ管理が実装された話は聞かなかったが

329:デフォルトの名無しさん
19/10/06 10:22:41.97 0s7o/lL0.net
✕ Windowsの方が良い。Macはいらない
○ Windowsしか使っていないレガシー企業に所属しているからMacに触れる機会が無い

330:デフォルトの名無しさん
19/10/06 10:33:38.32 afQhNNe0.net
AppleなんてMSが資金援助しなかったら潰れてたんだから
Apple信者はジョブズじゃなくてゲイツを崇めるべき

331:デフォルトの名無しさん
19/10/06 10:43:20.42 DCi/8LQP.net
型付コンプマンとOSコンプマンは同一人物か
どうでもいいから言語の話をしろよ?

332:デフォルトの名無しさん
19/10/06 10:48:54.49 b5CNBoqv.net
いい加減に型議論スレ立てれば?

333:デフォルトの名無しさん
19/10/06 11:13:06.45 kfMA+lDl.net
PythonがRubyを倒した時にはこんな問題はなかっただろう
C#とTypeScriptあたりが潰し合えば問題ないのに
論点をそこに設定できない理由があるならそいつが元凶だ

334:デフォルトの名無しさん
19/10/06 11:13:39.74 nfPmVfn/.net
>>329
何と戦ってるんだお前は


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

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