次世代言語18 V Julia 他 at TECH
[2ch|▼Menu]
[前50を表示]
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
何と戦ってるんだお前は

335:デフォルトの名無しさん
19/10/06 11:15:58.64 +7lGQsyI.net
>>324
個人的には無理だろと思ってるけど、実際コミットしてみるのは面白そうかなと思う。
どっかでそれなりの妥協するか崩壊するかだろうけれど言語勉強にはいいんでないかな。

336:デフォルトの名無しさん
19/10/06 11:22:47.12 nC6Pexaw.net
>>328
Juliaの話題が出ないから次スレからスレタイから外したら。

337:デフォルトの名無しさん
19/10/06 11:31:23.46 IHuQntPK.net
>>323
バージョン管理ツールがGitとかのVCSを指しているなら意味が分からんのだがどういう意味だ?
Docker DesktopとGitを入れて `docker-compose up` で開発ができ、CIから何からを半自動でやるのがインフラを整えるということでは

338:デフォルトの名無しさん
19/10/06 11:37:21.54 +7lGQsyI.net
>>333
rubyで閉じるならrvm, rbenv使うなりしてりゃ環境合うだろって話。
それ以上低レイヤー依存が激しいならdockerもありだろうが、
使わんでもcloudでインスタンス利用するならdockerは無駄な冗長化だなと思う。
docker compose とかすげー半端感しか感じないんだが。
大してスケールするわけでもないし。

339:デフォルトの名無しさん
19/10/06 12:05:19.67 IHuQntPK.net
>>334
あー、xenv系の話か。すまん、俺がボケてた
言っていることは一理あるしそういう派閥がいるのも知っているが俺は完全に同一の環境で開発するのを是としている
ただ開発環境がDockerでデプロイ先はVPS直という現場はアホだと思うよ

340:デフォルトの名無しさん
19/10/06 12:25:38.33 HMANkRPq.net
>>332
出ないからこそだゾ >>3-6

341:デフォルトの名無しさん
19/10/06 12:29:34.95 +7MXB6fE.net
>>332
そして誰もいなくなった

342:デフォルトの名無しさん
19/10/06 14:50:44.99 CllAfLEo.net
URLリンク(japan.zdnet.com)
MIT、「Julia」上で動作する初心者向け汎用AIプログラミングシステム「Gen」を発表
Liam Tung (ZDNet.com) 翻訳校正: 編集部 2019年07月01日 10時55
 マサチューセッツ工科大学(MIT)は米国時間6月26日、確率的プログラミングシステム「Gen」を開発したと発表した。
Genにより、初心者でもコンピュータービジョンやロボティクス、統計に関する処理を容易に手がけられるようになるという。
 Genは、「Julia」に組み込まれるかたちで実装されている。なお、JuliaはMITの研究者らによって2012年に公開された
動的プログラミング言語であり、世界的に高い人気を集めている。
 Genの開発者らは「カスタム化した複数のモデリング言語をJuliaに組み込む」ことで、ユーザーが「数式と格闘したり、
高効率なコードを手作業で記述したりせずとも」人工知能(AI)のモデルやアルゴリズムを開発できる
新たなAIプログラミングシステムを生み出したとMITは述べる。
 このシステムは予測などの複雑なタスクにも使用できるため、技術に造詣の深い研究者にも役立つだろう。
 MITの論文によると「Gen」という名称は、従来の確率的プログラミングでは考慮されていなかった、
「汎用目的」(General purpose)での使用を可能にすることを念頭に置いて付けられた。
 論文には「既存のシステムは汎用目的としては実用的ではない」と記されている。
 また、「特定の問題領域にのみ適した、制約の大きいモデリング言語を提供しているシステムがある。
その一方で、どのようなモデルでも表現できる『汎用の』モデリング言語を提供しているシステムもあるが、
そういったシステムは使いものにならないほど収束の遅い推論アルゴリズムしかサポートしていない」とも記されている。

343:デフォルトの名無しさん
19/10/06 14:51:51.44 CllAfLEo.net
 今回のシステムにより、例えば、人の姿勢といった立体的な形状の状態を推論し、
自動運転車やジェスチャーベースのコンピューティング、
拡張現実(AR)に用いられるコンピュータービジョンのタスクを簡素化するようなプログラムを作成できるようになる。
 Genは、MITが2013年に「DARPA AI」プログラムから獲得した資金によって2015年に開発した
確率的プログラミングシステムを強化するかたちで、グラフィックス描画やディープラーニング(DL)、
さまざまな確率シミュレーションを組み合わせている。
 MITで電子工学及びコンピューターサイエンスの博士課程を専攻しており、
この論文の主執筆者であるMarco Cusumano-Towner氏は、「自動化されたAIを、
コンピューターサイエンスや数学の専門知識をさほど必要とせずとも、
容易に扱えるようにするというのがこの研究の目的の1つとなっている」と述べている。
 「われわれはまた、生産性を向上させることで、専門家によるAIシステム開発時の試行錯誤や
プロトタイプ作成の迅速化を容易にしたいと考えている」(Cusumano-Towner氏)
 Microsoftが「AIの民主化」を旗印に掲げているように、
MITの研究者らもデータサイエンスをあらゆる人々のもとに送り届けようとしている。
 また、MITによるとこれは、Googleの「TensorFlow」の1歩先を行くものだという。
 MITは、TensorFlowが「DLモデルに的を絞っている」という点で、
AIの持っている潜在的能力を完全に解放していない可能性を指摘している。

344:デフォルトの名無しさん
19/10/06 15:03:50.67 GCn9yAhL.net
また生産性を向上させてしまった・・・これは言ってみたい

345:デフォルトの名無しさん
19/10/06 15:27:51.67 kfMA+lDl.net
生産or消費でしかものを考えられないんだな
これを言ってやろう

346:デフォルトの名無しさん
19/10/06 19:07:55.48 Ypd704zl.net
型キチや型無し不能者は正直どうでもいいから置いとくと、実際のところ俺の周り(当然狭い)で仕事で関わる可能性のありそうな次世代言語はある程度の静的型付け可能な言語かな(具体的にはGo, Rust)。
みんなの周りでは動的言語で仕事に関わりそうな次世代言語ってどんなのある?(純粋な興味)

347:デフォルトの名無しさん
19/10/06 19:14:22.92 0rwYuW6O.net
型に関してはうまい落とし所のがあればいいな
ガチガチでもなくゆるゆりでもないみたいなの

348:デフォルトの名無しさん
19/10/06 19:18:13.38 51w7DHEq.net
そのひとつが漸進的型付けで、TypeScriptはかなりいいセンいってると思う。

349:デフォルトの名無しさん
19/10/06 19:41:24.32 4DnPW2me.net
>>342
そもそも次世代言語に動的型のやつあったっけか?

350:デフォルトの名無しさん
19/10/06 20:07:17.64 kfMA+lDl.net
過ちを犯した者が仕様変更しなさい
仕様変更しているのは静的型だけになった

351:デフォルトの名無しさん
19/10/06 21:34:54.69 XnVfcxYj.net
Haskellは安全性では一番だけど
モナドと遅延評価が難し過ぎて普通の人がコードを書くのは難しくて失敗
Cの型は単なるメモリレイアウトで実質型なしで
スタックオーバーフローなどの脆弱性を大量に生み出し失敗
Javaは割と堅牢な型システムだがnullを放置したせいで
ヌルポの山を築いて失敗
RustはCにまともな型システムを導入しようとしたが
所有権に誰もついていけず見事失敗
Goは動的言語と静的言語のいいとこどりをしようとして中途半端になって失敗
TypeScriptは漸進的型付けというありそうでなかった型システムだが
型定義が面倒すぎる上anyは嘘派と頑張らない派で対立して失敗

352:デフォルトの名無しさん
19/10/06 21:44:57.93 51w7DHEq.net
>型定義が面倒すぎる
面倒と思うのは既存のjsコードに型定義を付けるときくらいで、最初からtsで書いている分には
面倒と感じたことはないがなぁ。
他の静的型付け言語とかと比べてどういうところが面倒なんだろうか。

353:デフォルトの名無しさん
19/10/06 22:00:20.65 jWeq+Bvn.net
所有権はC++の頃からあるよ
Rustで新しく導入されたと言えるのは借用規則とライフタイム

354:デフォルトの名無しさん
19/10/06 22:22:11.31 51w7DHEq.net
「所有権」と呼ばれる概念は昔からあるけどそれが何を表しているかは結構バラバラなわけで、
そこは「rustの所有権システム」と解釈すべきなんだろう。

355:デフォルトの名無しさん
19/10/06 23:00:04.89 5dqrI3Cy.net
どうでもいいけど、今の40代って軒並み役に立たないな
オンプレのLinux操作は早いけど、それだけ
保守歴長すぎて、新規でコード書くことが一切できない
まさかRDBの設計すらろくにできないくせに、俺は35定年を乗り越えられたエンジニア、みたいにしてるのマジで笑えるわ
死んで欲しい
転職してえ

356:デフォルトの名無しさん
19/10/06 23:12:49.99 g9L650mi.net
人には得意不得意があるのだから「出来ないことがある」で評価すべきではありませんよ。「出来ることがない」なら無能なので切りましょう

357:デフォルトの名無しさん
19/10/06 23:21:31.83 5dqrI3Cy.net
>>352
わかってるよ、保守で役に立つんだから、保守やっててくれりゃいい
オンプレマシンのお守りも重要な仕事だ
だけど「設計はベテランに任せておけ」とか40代のゴミ同士で乳繰りあって盛り上がってるの見ると
ホント寒気がするんだわ
試しにDBの論理設計やらせたら、正規化もまともにやってない、型は適当、NotNullも定義してないExcel出してきやがる
20件くらい指摘上げたら、「君こだわり強いねw」とか「業務は趣味じゃないんだから」とか言い出すんだぜ
目眩がしたわ
絶対ああはなりたくない

358:デフォルトの名無しさん
19/10/06 23:25:04.83 AIMC8rVU.net
この手のやからは単に自分の得意分野でドヤってるだけ

359:デフォルトの名無しさん
19/10/06 23:25:43.60 DCi/8LQP.net
で?お前には何ができるの?

360:デフォルトの名無しさん
19/10/06 23:29:49.20 5dqrI3Cy.net
>>355
バックエンドもフロントエンドもできるが
少なくともあの爺どもよりは

361:デフォルトの名無しさん
19/10/06 23:32:44.69 0rwYuW6O.net
そのおじさんもミドルならできるんだろ

362:デフォルトの名無しさん
19/10/06 23:46:29.22 4kPPzyZv.net
次世代言語に全く関係無い話は余所でやってくれ。

363:デフォルトの名無しさん
19/10/06 23:57:06.69 5dqrI3Cy.net
俺もおまえらも薄汚い無能オッサンになるんだよ
次世代言語どころか、現世代言語すら理解できないような悲しいオッサンにな
だから、有意義に過ごせよ、この何でもない毎日をよ

364:デフォルトの名無しさん
19/10/07 00:06:28.20 CF5Z0+Ep.net
青春だねぇ

365:デフォルトの名無しさん
19/10/07 00:30:11.62 UKE8g9+n.net
すでに完全にオッサンから初老に一歩足いれてるワシの観察によると
若い時分に「老害は新しいモノがわかってない!これからはこういう
新しい概念を理解してないとダメだ!」みたいなこと言って意固地に
なってたタイプほど、歳食ってから老害になるパターンが多い印象
逆に仕事で金もらえるならなんでもやりますよ、みたいなやつは
歳くっても頭が柔らかい。

366:デフォルトの名無しさん
19/10/07 01:25:08.70 lrWqKXHs.net
>>348
とにかく型定義ファイルがだるいし
それがあってるのかという型そのものへの疑心暗鬼が生まれてしまいメンドクセとなる
あと結局型の設計がJSっぽさ満開のライブラリだと
頑張れば型付けできるがそもそもの型設計が
クソ過ぎるため型パズルを解くことになるのもだるい
TSそのものというよりそれ含めた環境が地獄なので
相当難しい

367:デフォルトの名無しさん
19/10/07 03:45:48.89 DgIv4nW8.net
周りのレベルが今の自分のレベルだ
転職でもしてろ


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

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