次世代言語18 V Julia 他 at TECH
[2ch|▼Menu]
[1からを表示]
50:デフォルトの名無しさん
19/10/01 21:06:49.32 CiDCnveB.net
RDBをオブジェクトにマップするようにモナドをオブジェクトにマップするのがJava系
オブジェクト無視してHaskellそのまま全部再現するのがAltJS

51:デフォルトの名無しさん
19/10/01 21:52:47.37 agQnbOhv.net
>>46
Scalaは高階カインド多相が使えるからファンクタやモナドが普通に作れるがTypeScriptなどの他の言語はそうではない

52:デフォルトの名無しさん
19/10/01 21:56:51.81 QsbEYgxP.net
高階カインド多層をTSに入れたら完全におもちゃにされるだろうね
今ですら型パズルがどうのっていってるし

53:デフォルトの名無しさん
19/10/01 22:07:51.02 /eYv5Uzy.net
難しそうな用語だと思ってググったけどC++のテンプレートと同じやつか
・・・入れない方が良い

54:デフォルトの名無しさん
19/10/01 22:10:03.12 PPi/zEKV.net
出たよモナダー
そりゃ嫌われるわ

55:デフォルトの名無しさん
19/10/01 22:17:19.36 DDGAg6Ab.net
モナドという概念はややこしくてもひとつひとつのモナドはそれ自体のコードも使い方も別にふつうだし
使いやすいライブラリ設計してたら自然にモナドになっていることもある

56:デフォルトの名無しさん
19/10/01 22:22:36.18 Ueonb/Q5.net
開けモナドよ

57:デフォルトの名無しさん
19/10/01 22:34:17.59 48dxyHpJ.net
モナド語ってる奴も別にマクレーンの圏論の基礎とか読んでるわけでもないし半端もんよ。

58:デフォルトの名無しさん
19/10/01 22:41:20.42 lajlXQ9x.net
本当にマクレーン読んだ?

59:デフォルトの名無しさん
19/10/01 22:49:10.23 mI1q1C/A.net
>>57
お前モナー
モナドだけに

60:デフォルトの名無しさん
19/10/01 23:08:36.80 tjeUEWM+.net
今どき圏論やるのにCWMから始める方が半端もん

61:デフォルトの名無しさん
19/10/01 23:40:18.89 TIX5+JVA.net
Zen言語なる言語がリリースされたらしい
URLリンク(zen-lang.org)

62:デフォルトの名無しさん
19/10/02 00:41:50.02 lSd6DR8l.net
より宗教色の強い言語です

63:デフォルトの名無しさん
19/10/02 00:44:33.40 1C18rZlK.net
>>61
rust から次世代的な機能を全部取り除いた一見次世代っぽいけど全然次世代じゃない言語に見えるけど
何か良い所があるのだろうか?

64:デフォルトの名無しさん
19/10/02 01:07:46.80 aAfkpJCR.net
もともとZigという言語があって、そこからforkした言語だからRustはあまり関係ない

65:デフォルトの名無しさん
19/10/02 08:10:11.73 zSuqy8mA.net
お前らが大好きなScala情報貼っとくぞ😊

Scala研修テキストが株式会社ドワンゴ様から寄贈されました
URLリンク(blog.scalamatsuri.org)

66:デフォルトの名無しさん
19/10/02 09:04:38.16 3iOlmx+u.net
ドワンゴがドヤって手を出す言語は地雷判定として結構機能する。

67:デフォルトの名無しさん
19/10/02 09:50:25.78 kI7+pieZ.net
単にドワンゴが傾いてるだけだと思う

68:デフォルトの名無しさん
19/10/02 12:34:38.11 55+aQRnY.net
>>61
キャッチャーミットわろす

69:デフォルトの名無しさん
19/10/02 13:42:18.26 bHxMNFNF.net
>>65
前から無料で読めたが?

70:デフォルトの名無しさん
19/10/02 13:49:59.88 HrDmJLF9.net
>>66
RustとScalaだな

71:デフォルトの名無しさん
19/10/02 15:08:40.46 v/QNJqIk.net
URLリンク(dwango.github.io)
>ドワンゴではniconicoの配信系サービスのバックエンドで利用するために、Frugalosという名前の分散オブジェクトストレージを開発しているのですが、この度OSSとして公開することとなりましたので、この場を借りて軽く紹介させて貰います。
>FrugalosはRustで実装されており、現時点では以下のリポジトリが公開されています

うおおおおおおお!!!!!!!!!

72:デフォルトの名無しさん
19/10/02 15:26:48.08 BQ6RkETu.net
ジャップのプロダクトって名前が壊滅的にダサいよなww
ガイジン失笑www

73:デフォルトの名無しさん
19/10/02 15:49:38.45 Yox8q/sg.net
質素os

74:デフォルトの名無しさん
19/10/02 15:50:51.02 nw6Z+N3a.net
ドワンゴに所属してたことがあるエンジニアってだけで
こいつ仕事できねえんだろうなって思うは

75:デフォルトの名無しさん
19/10/02 16:04:15.75 dOlpIXop.net
蟻さんのことか

76:デフォルトの名無しさん
19/10/02 16:33:15.50 z3826RzE.net
じゃあ逆にお前らが仕事できるって思う企業はなんなんだよ

77:デフォルトの名無しさん
19/10/02 16:55:18.20 v


78:j5/Swqi.net



79:デフォルトの名無しさん
19/10/02 17:10:30.99 UG1S3D8g.net
ドワンゴ一時期の大量退職の後に比較的優秀な人が入って立て直したかと思ったのに
また大量に辞めたんだな

80:デフォルトの名無しさん
19/10/02 18:29:37.09 qs4Bbmku.net
どこが使ってるからダメだとか言ってるだけで
こいつ仕事できねぇんなろうなって思うは

81:デフォルトの名無しさん
19/10/02 19:17:51.82 OBGjdXDw.net
>思うは
力抜けるからやめろwww

82:デフォルトの名無しさん
19/10/02 19:40:04.95 CsX5w8uS.net
Rustはモジラだからダメとか言ってる奴は前からいたな
GAFAに勝てるわけがないみたいな
順張り原理主義か

83:デフォルトの名無しさん
19/10/02 19:50:47.59 3iOlmx+u.net
まあ実際のところrustはインデックスオーバーのエラー出したりしてんだよね。
あそこまで安全言うててそういうバグ出すとかしょーもねーなと思うわw

84:デフォルトの名無しさん
19/10/02 20:00:15.99 h+E35lZ8.net
インデックスオーバーって何?

85:デフォルトの名無しさん
19/10/02 20:08:58.83 cS2kU91T.net
モジラには分散処理のノウハウが乏しいという意味なら批判は妥当
逆にそれがRustの差別化要因になったわけだが

86:デフォルトの名無しさん
19/10/02 20:34:03.31 GCoFXFAP.net
バカはオールオアナッシングでしかモノを考えられない

87:デフォルトの名無しさん
19/10/02 20:58:26.74 H7kjSDGT.net
Rustちゃんスタックに適度にでっかい構造体作るとオーバーフロー検出してくれるんだけど
それを越えたクッソでかい構造体だとオーバーフロー検出されずにsegfaultするのはしゃーないんやろか

88:デフォルトの名無しさん
19/10/02 21:08:04.33 ctc3w0LL.net
Rust言語のメリットと課題、「Azure IoT Edge」の事例から分かること
URLリンク(www.atmarkit.co.jp)
Microsoft Security Response Center(MSRC)は2019年9月30日(米国時間)、Microsoft社内におけるRust言語の採用事例を発表した。
ガベージコレクションのランタイムオーバーヘッドを避けたかったため、Go言語は選択肢から外れた。
加えて、デーモンに必要なセキュリティ関連の要件から、メモリや並行性(コンカレンシー)に由来するバグに対処する必要のない言語が必要だった。
こうした条件を踏まえ、Rustが最適だという結論に達した。
Azure IoT Edgeの一般提供を開始する前に外部のセキュリティベンダーと契約し、開発したソフトウェアに対するペネトレーションテストを実施した。その結果、コードベースのうち、Rustで作成した部分では、セキュリティ問題が見つからなかった。
開発時にはRustエコシステムが役立った。開発当初から、「rust-clippy」を使用し、Rustコンパイラがカバーしない範囲の細かい警告を出力させることにした。
加えて、継続的インテグレーション(CD)を実行する際、Rustコードの整形ツール「rustfmt」による処理を経ていないプルリクエストを却下する仕組みを採用したことで、コードベース全体で一貫したコードの整形が可能になった。
Rustコンパイラの更新プロセスとツール整備は順調に進んだ。コンパイラへのアップグレードは、ほぼ常にスムーズだった。

89:デフォルトの名無しさん
19/10/02 22:15:39.37 moUE+MGs.net
スレタイから却下されたエセ次世代言語の話をだらだらするのやめようぜ

90:デフォルトの名無しさん
19/10/02 22:23:35.74 GBuBTMR1.net
じゃあV言語の話でもするか

91:デフォルトの名無しさん
19/10/02 22:34:48.77 bHxMNFNF.net
V言語ってGoの人たちがやたらネガキャンしてたよな

92:デフォルトの名無しさん
19/10/02 22:51:59.69 9qRss58O.net
集金詐欺だからな。

93:デフォルトの名無しさん
19/10/02 22:57:27.47 h+E35lZ8.net
メモリリークしかしない言語なんて擁護しようがない

94:デフォルトの名無しさん
19/10/02 23:00:27.33 +qWRsZhw.net
CIではなくCDと略されるようになったのか?

95:デフォルトの名無しさん
19/10/02 23:04:59.04 +yvFYHag.net
いまどきCDて
DVDだろ

96:デフォルトの名無しさん
19/10/02 23:11:12.76 tA+LoOos.net
Scalaってなんで最近聞かないんだ?

97:デフォルトの名無しさん
19/10/02 23:18:21.13 9qRss58O.net
>>94
brulayだろおっさんwww

98:デフォルトの名無しさん
19/10/02 23:35:30.41 eo8nmuYy.net
メモリは1.5年ごとに倍になるし、

99:デフォルトの名無しさん
19/10/02 23:35:37.83 PwhcmkbT.net
Scalaスレってもうないのな

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がさっぱり早くないところを見ると疑問もある


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

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