[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 03/21 20:29 / Filesize : 251 KB / Number-of Response : 1035
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

次世代言語Part8[Haskell Rust Kotlin TypeScript]



1 名前:デフォルトの名無しさん mailto:sage [2017/12/01(金) 23:08:21.45 ID:FxdZTiuZ.net]
スレタイ以外の言語もok

前スレ
次世代言語Part7[Go Rust Swift Kotlin TypeScript]
mevius.5ch.net/test/read.cgi/tech/1508403098/

331 名前:デフォルトの名無しさん [2017/12/15(金) 16:17:12.00 ID:85mmUd/p.net]
動的型付け言語でメソッド先頭に引数型チェックをずらずら書いてるコードを見た時は心底アホだなと思いました

332 名前:デフォルトの名無しさん [2017/12/15(金) 16:19:20.03 ID:6UtRgQBN.net]
>>324
その言い方は「手を抜く」ことに関して批判しているのように聞こえるな。
プログラマなら手を抜くことに積極的なのはむしろ褒められるべきことだと思うが。
手を抜かないことを美徳とするなら伝統工芸の職人さんにでもなれば。
少なくともそんな考え方をするような人間はプログラマには向いていないよ。

333 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 16:28:14.91 ID:Tb7zQwK9.net]
>>326
そんなに自分のバカさを自慢しなくても…皆よくわかっているから

334 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 17:07:38.29 ID:WQPs5rl9.net]
>>302
javaの場合はクラス間のキャストと整数、小数間のキャストが同じ構文だから分かりにくいけどあれ全くの別物だから
後者はどちらかというと関数に近い

例えばStringをObjectにキャストしても変数の値(=メモリアドレス)は変わらない
でもlongをdoubleに変換したら変数の値自体が変わる
これは大きな違い

335 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 17:10:15.06 ID:WQPs5rl9.net]
静的型付けでもテストはいるけど数を減らせる
わざわざ機械がチェック出来る事を人がやる意味は?
あとオーバーヘッドどうのこうのって動的型付けの方がオーバーヘッドでかいやん

336 名前: mailto:sage [2017/12/15(金) 18:14:48.74 ID:kyib3K1A.net]
>>326
いや、それが、Java の本番コードでは執拗な null チェックはかかせないようですよ、はじめてみたときは目をうたがったな…

337 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 19:17:26.70 ID:Tb7zQwK9.net]
>>330
静的型はより少ないテストデータで同等の品質を確保できるという実証データはある?

338 名前: mailto:sage [2017/12/15(金) 19:24:35.38 ID:kyib3K1A.net]
>>332
https://developers.srad.jp/story/14/11/08/081210/
あまり参考にならないかもしれない

339 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 19:39:38.59 ID:57xWWF8w.net]
>>331
今時NotNullアノテーションで対応するけどな



340 名前:デフォルトの名無しさん [2017/12/15(金) 19:42:37.27 ID:Q6E9xMBX.net]
スレタイの言語はどれも静的型付けやなw

341 名前:デフォルトの名無しさん [2017/12/15(金) 20:07:05.04 ID:6UtRgQBN.net]
>>332
説得力のある実証データはたぶんないだろうな。


342 名前:だが逆説的に、動的型でも静的型と同等のテスト量で同等の品質を確保できる
という実証データがないだろうこともやはり同じだ。
「型付け」と「テスト量と品質」に関係性は「あるかもしれない」し、「ないかもしれない」。
そのことについて議論する価値はあるかもしれないが、
説得力のある実証データがないことが静的型付けを批判する理由にはなり得ない。
[]
[ここ壊れてます]

343 名前:デフォルトの名無しさん [2017/12/15(金) 20:17:29.09 ID:6UtRgQBN.net]
ちなみにあまり説得力のない実証データなら腐るほどある。
何故それらに説得力ないかというと、
テストの品質というものを正確に数値化できないからだろうな。
つまり、品質を正確に数値化する方法がない限りはそのことについては誰も実証はできない。
まずは品質の数値化について誰もが納得できるような方法を考えることからだ。
そして、それが簡単にできれば苦労はしていない。

344 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 21:49:32.08 ID:HGhk3PLi.net]
静的型と動的型の言語で、同程度の品質を担保するために必要なテストの量が変わらないと仮定するなら、
メタプログラミングのしやすさとコードリーディングの難易度を天秤にかけるだけの話になりそうだ

キャストについては、さすがにGoのinterfaceやらJavaのObjectは別として、それが本当に「本質的でない」場面があるとはどうしてもピンと来ない
上で例に出されてるOCamlの浮動小数点数と整数の演算だって、本来この2つを四則演算した結果が
浮動小数点数になるか整数になるかは本来非自明だから、どっちかに明示的に型を揃えろっていうのは
静的型動的型関係ない問題だと自分は思う

メタプログラミングについてはこれももう出てるけど、本当にそれが必要かって言われるとなあ
確かに記述量自体は短くなるけど、間違いなく可読性とトレードオフになる

345 名前:デフォルトの名無しさん [2017/12/15(金) 22:40:22.38 ID:19GjPIYk.net]
「ノコギリと刺し身包丁の優劣」みたいな無意味な話はつまらん。

346 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 23:34:56.14 ID:WQPs5rl9.net]
メタプログラミングみたいなのは型システム関係なくunsafeみたいな感じで一部分に閉じ込めて使うのが普通だからな

347 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 23:53:14.51 ID:/50W1d3E.net]
最近は、Pythonでも型アノテーション書くようにしてるよ。
見返した時に、コメントで型情報を書くよりは
楽なんで(;´∀`)

348 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 00:22:41.60 ID:ocig5iu9.net]
>>335
TypeScriptは動的だよ。

349 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 00:39:35.88 ID:TWnq2dTt.net]
>>342
静的型でもあり動的型でもある不思議な言語



350 名前:デフォルトの名無しさん [2017/12/16(土) 00:56:52.03 ID:puMNteBt.net]
TypeScriptは静的な型検査をしたいから作ったんじゃないんか?

351 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 01:22:56.08 ID:TZZbndKv.net]
新しい言語の新しい議論でもあるのかと思って開いてみたら
20年前くらいの動的vs静的の罵り合いしかなかった
5ch死んでるな

352 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 01:34:19.93 ID:fQ+nYBte.net]
そう思うなら貴方にはこのスレは向いていなかったのでしょう。どうぞ卒業なさいませ

353 名前:デフォルトの名無しさん [2017/12/16(土) 07:38:33.30 ID:g6YeJGmB.net]
20年は言いすぎだが確かに今更な話題だな

354 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 07:39:24.99 ID:0YcySKum.net]
>>336
>説得力のある実証データがないことが静的型付けを批判する理由にはなり得ない。

完全に同意するし、同様に、
説得力のある実証データがない以上は動的型付けを批判する理由にはなり得ない。
と思うね。

355 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 10:07:20.76 ID:pj2GdbCH.net]
説得力のある実証データが無いとは限らない得ない。
発見されてない可能性のあるものを存在しないと断定し得ない。

356 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 11:54:08.21 ID:0YcySKum.net]
>>349
信頼できる具体的なデータを出してから出直してきな、ばーか!

357 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 12:02:59.86 ID:pj2GdbCH.net]
信頼できる具体的なデータがないことはなり得ない。
完全に同意するし、同様に、
信頼できる具体的なデータがない理由にはなり得ない。

358 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 14:57:13.50 ID:GPVNoJ1v.net]
そういう白いカラスを探すような真似をせんでも。
動的静的、どちらも良いものだし、どちらにも反対側に寄せるような機能も

359 名前:今時はある。
そういう意味では「静的型付け言語だから間違いが少ない」と言う発想は明後日というか「間違うなと言うだけの話」として扱われても仕方ないっちゃ仕方ない。

今まで一回もキャストやポインタデリファレンスを使ったコードを書いたことがない奴だけがギリギリ石を投げても良いと思うが、そんなやつはごく少数だろ。
チェックが厳しくなるのは良い事だが、それがないと物が作れない(はず)なんて言うのは補助輪付きの自転車を指して「これが至高の自転車だ、なぜなら倒れないからだ!」って言うのと同じくらい暴論。
[]
[ここ壊れてます]



360 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 14:58:31.90 ID:GPVNoJ1v.net]
そういう奴がRustのコンパイラにバタバタと倒れていくのは至極愉快だけどな。
最初からそれぐらい考えて作っとけよ、と。

361 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 15:18:00.92 ID:4mgESDS3.net]
数値を引数にとる関数作ったら
境界値やゼロ値をテストするのが静的型
数値文字列オブジェクト思い付く限り全てテストしないと発狂するガイジが型無し池沼

こういうことでしょ?

362 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 15:28:08.68 ID:Dp1B/626.net]
>>354
境界値やゼロ値をテストするコード書けば、文字列オブジェクトが入ってきたらエラーになるから
動的型でもそんなテストは必要ありません。
そんな当たり前の事も分からないなんて、君は本当に低脳だな。

363 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 15:32:04.21 ID:GPVNoJ1v.net]
逆の発想でしょ。
数値以外で呼んでなけりゃいいんだから、呼び出し箇所で引数が数値と推論できなければエラーにしときゃいいじゃん。解析上で。
仕様として数値しか取らないなら、数値に対するテストで十分でしょ。
静的言語でも数値以外を渡す方法が無いわけでも無い。程度論。
静的言語でもヒステリックなチェックが必要な案件もやっただけに、ホントに夢見てるんだろうなって思うわ。

引数を手当り次第にチェックする、という解法しか出て来ないのがそもそもキチガイじみてる。

364 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 15:34:15.25 ID:GPVNoJ1v.net]
スタックもメモリも疑え、みたいなプログラム書いたこと無いんだろうな。

365 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 15:41:18.50 ID:4mgESDS3.net]
お前も頭がパーエッチパーなのか?

366 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 15:47:08.12 ID:0YcySKum.net]
>>358
おまえはまず自分がバカであることを自覚しろ
話はそれからだ

367 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 17:20:40.73 ID:4mgESDS3.net]
型無し能無し糞バカパーエッチパーのバカがなんだって?
早く10年熟成のウリジナル社内フレームワーク保守する作業に戻れよ

368 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 20:13:15.10 ID:GPVNoJ1v.net]
どーやっても無関係のPHPをけなしたいんです!
というある種の精神的ハンディキャップを持ってるみたいだから仕方あるまい。

369 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 20:18:13.50 ID:GPVNoJ1v.net]
考えてみたけど、むしろPHPの問題は型があったとしても多分変わり無く問題としてあり続けると思うな。



370 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 20:50:00.94 ID:GPVNoJ1v.net]
QCやると>>337は痛感するがな。
品質保証しなかった物が万一起こす損害と、品質保証したから避けられた損害はイコールじゃないし、
品質保証してしまった時点で、避けた損害の計上は机上の空論になってしまう。
避けるも何も起こらなかったんじゃないの?と過剰な心配とみなされがち。
起こっていたに違いない、と言うのは確かに空論だからな。
「改善できている品質」自体を点数化(そしてある程度これは王道もある)しても、「改善しなかった場合の品質」が見積値のままなので、恣意的と言われても仕方が無い。

同様の問題にコストカットもあるが、これも最初から織り込んで当初目的を果たしてしまうと話がややこしくなる。対費用効果が品証と同様に、実績値と見積値の比較になる。正しい

371 名前:比較じゃないのは確か。

一番、営業部や企画部や、ことによると開発部とも喧嘩になる数字。

なので、これに関して実証値を出せと言うのは、同じ事を、2つの方法で、全く同じ能力の人間が、二の轍を避けるというバアイスをかけないために初見で行った場合、の数値を出せと言う、無茶苦茶な要求になる。
パラレルワールドが発生してそれが一つの状態として観察出来る神が存在しない限りイチャモンのつけ放題。

要は無意味。
[]
[ここ壊れてます]

372 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 20:53:09.27 ID:GPVNoJ1v.net]
バイアスがどう間違ったかバアイスになってるわ。以外に読めるもんだな。ごめん。

373 名前:デフォルトの名無しさん [2017/12/16(土) 22:08:20.37 ID:/LKsQL98.net]
>>355
phpでも?

374 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 22:37:18.69 ID:ocig5iu9.net]
>境界値やゼロ値をテストするコード書けば、文字列オブジェクトが入ってきたらエラーになるから

それをテストで確かめるんだろうが

375 名前:デフォルトの名無しさん [2017/12/16(土) 23:57:56.53 ID:g6YeJGmB.net]
間違えない前提ならテストもいらんなw

376 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 00:07:22.96 ID:lzYKowQo.net]
>>362
当たり前やン
PHP7になって型サポートが入った!!とか嬉ション漏らしてるペチパー見て
心底あの界隈のレベルの低さに辟易した

377 名前:デフォルトの名無しさん [2017/12/17(日) 00:17:16.85 ID:w0yPK3Np.net]
>>366
そこなんだよなぁ。
>>355は、動的静的どちらでも同じようにテストを書くことになるんだから
「結果、テストを書く手間(量)は一緒だろ」と言いたいんだろうが、
型については「テスト時に確かめるのが動的」、「コンパイル時に確かめてくれるのが静的」という違いがある。
「テスト時だろうがコンパイル時だろうがきちんと確かめることには変わりないんだからいいだろ」
という意見が動的派の主張のような気がするんだが(俺の勘違いだったら指摘してくれ)、
個人的にはテスト自体にバグが含まれる可能性があるという点で違うので、静的のほうが好ましいと思う。
コンパイラにバグがない保証はないがその可能性はかなり低いし、
まして、どこの誰が書いたかも分からないテストと比べればどちらが信用できるかは明らか。
静的でもテスト自体にバグが紛れることはもちろんあるが、型についてはコンパイル時にチェックされるので、
型チェックだけに焦点を絞ってみれば、やはり静的言語の方が信頼性は上だろう。

378 名前:デフォルトの名無しさん [2017/12/17(日) 00:30:03.31 ID:w0yPK3Np.net]
>>367
すごく良い意見だと思う。

そもそもテストがあるのは人間は間違えるからというのが前提だからで、
そしてそのテストを書くのも人間なのでテスト自体も間違えている可能性がある。
それでもテストを書くのはチェックによって間違いを完全になくすことはできなくても
ある程度まで減らすことはできるという考えがあるからだろう。
そして、その考え方でいくとテストを重ねれば重ねるほど信頼性は上がるということになる。
つまり、テストのテストを行えば2重チェックとなりさらに信頼性が上がることになるが、
テストのテストを書くというのはあまりにもアホらしいので普通そんなことはしない。
つまり、通常のテストでのチェックは1重のチェックまでが限界となる。
それに対してコンパイラはコンパイラ自体がしっかりとテストされている。
つまり、コンパイラによる型チェックは言い換えればコンパイラ自体によるチェックと
コンパイラのテストによるチェックの2重チェックを同時に受けていることになる。
この考え方でいけば、ただのテストは1重のチェックだが、コンパイラによるチェックはそれだけで2重チェックとみなせる。
つまり、コンパイラによるチェックのほうが信頼性が高いということになるはずだ。

一応理論はしっかりと通っているはず。
自分で書いといてこんなこと言うのもなんだが「なんだかこじつけな気がして、あまり気に入らない」。
誰か論破してくれ。

379 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 01:33:04.30 ID:DD3iPSz/.net]
コンパイラにバグはないとかさ。。
とりあえずvcを一通り使ってみてから言ってほしいな。
浅はかすぎる。
まあしかし静的チェックと動的チェックを両方やるならいいと思うよ。
これは結局、仕様と実際の動作のどっちもしっかりチェックする必要があるってこと。



380 名前:デフォルトの名無しさん [2017/12/17(日) 02:06:25.44 ID:an2T/Jmb.net]
一般的な話をvc固有の問題で批判する方が浅はかと言わざるを得ない

381 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 02:24:22.59 ID:lzYKowQo.net]
型も書けないような奴が
正しいテストを書けるだろうか?(irony)

382 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 08:41:58.60 ID:cjnEvY5x.net]
それ以前に、めんどくさいからって型書きたがらないような奴は現実にはほとんどテストなんか書いてないんだよ
動的型でテスト書けば問題ないだの必要なテストが増えるだのテストの正しさだのというのははっきり言って机上の空論
そもそも彼等はテストを書かない

383 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 08:51:42.24 ID:ROemoGKg.net]
そんなこというと、動的型付け言語を使っているから型を書いていないって人より
auto/varを使って意識的に型を書かない人の方がテストを書かない傾向があるって
言っているように聞こえるけど。

384 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 09:04:39.97 ID:cjnEvY5x.net]
>>375
そりゃ静的型でも型書かない奴は山ほどいるだろ
テストを書いているということを議論の前提にしていることが全くもって非現実的だと言ってるんだよ

385 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 09:06:12.54 ID:qBUEKR93.net]
テストの目的は実装のバグを探すことだけか?
むしろ仕様をチェックすることが最も重要だよ

バグは直せばいいだけだが、仕様はうっかり変更されたら直せない
死んだ人が帰ってこないのと同じ
動的型の言語仕様を捨てて静的型に移行するのが難しい理由もその辺にありそうだ

386 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 09:14:23.72 ID:i+M+l/V2.net]
テストすら正しく書ける気がしないドカタにはメタプログラミングなんて無理

387 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 09:48:44.61 ID:G+5q9UaX.net]
>>377
テストの目的は変化を検出することだよ
作って運用開始して終わりならテストなんか手動で十分

388 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 11:35:01.56 ID:v3Bx338J.net]
>>368
それもまぁ程度論だろ。
一部の人間があったら良いなと思ってたものが出来たから嬉しいってだけの話で、
全体に対してどうと思うほうがちょっとおかしいよ。

389 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 11:41:57.99 ID:v3Bx338J.net]
テストのテストを馬鹿にしてるが、書くからな。
何重まで上に上がる?というのは論点がずれてて、要件定義書でテスト仕様書をテストする。(詳細設計なんかは無視する)
紙の上でかもしれんし、直交表書くかもしれんし、色々あるが、
要件定義や詳細設計からテストだけ書いて、その妥当性も判断せずにオールグリーンこれでオッケー、ならそれは間違ってると思う。

間違えない前提ならテストは要らない、はその通りで、どの開発レイヤにも「この場ではこれは間違っていないとみなす」というブラックボックスがある程度発生していく。
単体試験なんかで担保して、レイヤがあがるにつれてブラックボックスは増えていく。

そこにワザワザ、ヒステリックテストをする必要は無い。
ブラックボックス側から数値しか出さないなら、数値以外をチェックするのは過品質に近い。



390 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 12:06:03.05 ID:pDfY69my.net]
>>369
細かくいうと「結局製品として必要な質を担保するのに必要なテストコードは変わらない」っていう主張な。少なくとも自分はこう思ってる
あくまで主観だし定量的に示せないんで上で上がってる通り空論といってもいいがな

少なくともコンパイルとLinter通った時点での品質は静的型が上なのは否定しない
が、自分の経験上、型チェック程度は他のテストのついででチェック進むから、そのせいでテストコードがかさむとかそういうケースはそうそうないはずなんだよな

391 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 12:11:02.52 ID:pDfY69my.net]
もちろん「テストコードと、一種の証明である型チェックの性質は違う」とかそういう理屈も理解してるが、
結局「製品としての質担保」という観点で見るなら、その程度の手段の差は全くもって関係なくなる、というのが自分の考え
この辺はテストに求める役割に対する考え方の違いかもしれん

392 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 12:14:39.63 ID:pDfY69my.net]
あとPHPディスに絡めようとしてるやつ

393 名前:ェいるが、PHPは静的型動的型の以前の部分に問題があるし、
この議論で少なくとも自分が動的型言語の念頭においてるのはPythonやRubyだからな?
[]
[ここ壊れてます]

394 名前:デフォルトの名無しさん [2017/12/17(日) 12:18:57.69 ID:028c4ua0.net]
>>370
論破じゃなく、補足になるが、特に業務でプログラミングするならコスパ考慮して選んでるからねえ。
現実の工数は、要件変動も含めその時点でのコンパイラ・インタープリタで拾えない部分の不整合によるものが大きい(まだ合理化されてないとも言えるが)。
プログラミング言語の歴史見ると判るが、静的・動的とも互いに相手のいいところを取り入れて進化してきてる。
同時に、世の中のニーズ(個人が計算リソースを持つようになった、など)に対応した形でも変わってきている。
これは適用可能な領域を広げようとした結果。
オレ個人の例で言えば、業務要件==>計算モデル==>候補言語を複数選択。
その後、プロジェクト要件(期間、要求品質、メンバースキル、関係者が蓄積しているプログラミング資産など)との組み合わせが適しているものを勧めている。
なので言語仕様やライブラリ含めた挙動だけ比較しても、それはツールとしての現在の瞬間の姿を見てるだけなので、その評価が未来にも、業務にも適用できると考えるなら早計。

395 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 12:57:26.41 ID:v3Bx338J.net]
>>382
静的型が上というか、帳尻があっている、と言うことはわかるから、一つの方向としては正しいと思う。
ただ、本当にあっているか?小数は桁落ちしてないか?まで考えると、静的型でも、どの道ピアレビューなんかで担保するしかない。

これは言うとおり、ついでに型が充分かも見る、という動的言語のピアレビューと工数としては変わらん。

396 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 13:01:33.13 ID:2YAiyrnb.net]
静的型のメリットで最も大きいのは依存関係が静的にほぼ完全に把握できることでしょ
自社事業の開発で常に動いているものを弄るなら、これ以上に心強いものはない

397 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 13:10:12.04 ID:v3Bx338J.net]
依存関係はどっちでも同じ程度じゃないの?
RoRみたいに、そのディレクトリに置いたら勝手に使用される、を想像してたら違うのかもしれんけど。

動的型も静的型も、リテラルでのimportやrequire、参照設定とusingでそれなりに決まる部分もあれば、
Node.jsだと変数でのrequireや、CなんかでのLoadLibraryなんかでも動的ロードなんかで全く決まらん事もあるんだし。

依存関係の解決はちゃんとそれ用に何か用意した方が良いと思うけど。

398 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 13:23:12.52 ID:qBUEKR93.net]
モジュールの依存関係は型と関係ないね
「モジュール=型」とかいう超怪しい等式に依存するのは嫌だね

399 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 14:46:20.78 ID:x6mh3PiV.net]
テストコードはテスト対象のコードより明快なものが一般的で、明快であれば人の目で判別しやすいってのも考慮すべきよ
テストを重ねるほど品質が上がるってのは空論だし、1重しかテストしないのは妥協してるからというわけでもないよ



400 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 15:54:09.19 ID:F+iLZcQ1.net]
>>388
IDEのメソッド呼出元の検索とか使ったことないのか?
規模が大きくなるとあれがないとやってられなくなるぞ

401 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 16:41:56.81 ID:PjBbAu1N.net]
>>370
形式手法でコード自動生成しててもやっぱり高信頼性のためにはテストは必須だぜ?

402 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 17:52:05.86 ID:v3Bx338J.net]
>>391
なんだ、そんな事か。長々書いて損した。
動的言語のIDE使ったことある?
いや、IDEじゃなくてもいいや。VSCodeと適当なNode.jsのプロジェクトでさえ、それなりに効くだろ。

>>390
テスト自体は1重でも良いとして、何らかの方法でテストの正当性は担保しないの?
それじゃただ書いたコードが書いた意図どおり動いてる確認で、意図が正しいかのテストにはなってない気がする。
意図が正しいかの証明は要件定義と設計書の間でのみ行われる、ってのが普通なのかな。

403 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 19:31:01.08 ID:AwDJJh6p.net]
要件に寄らず、テストは最低8重ないとダメ
スレのレベルが低すぎる……��‍♂

404 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 23:06:04.33 ID:lzYKowQo.net]
>>391
良く訓練されたPHPerは超力Grepを使いこなすから問題ないんだよなぁ

405 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 23:23:38.60 ID:qBUEKR93.net]
メソッド呼出元検索、、今回ほど仕様バグが沸き起こる思いをしたことが無い…

406 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 23:39:30.09 ID:LyzNAsst.net]
>>393
> 意図が正しいかのテスト

って何だよ意味不明。
必要なテストがされているかが重要だろ。
数だけ多くたってダメなんだよ。

407 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 23:57:38.71 ID:lzYKowQo.net]
つまり、動的型言語は山ほどテスト書かないとダメって言いたいんだろw

408 名前:デフォルトの名無しさん [2017/12/18(月) 00:07:07.45 ID:oET30lFX.net]
一応確認なんだけど動的言語じゃなく動的型付け言語の話なんだよね?

409 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 00:58:28.12 ID:9GZmy5yv.net]
>>398
テスト書く量は同じだよ



410 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 04:30:42.74 ID:p9HDlb+0.net]
>>400
ねーよ

411 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 08:13:16.77 ID:9GZmy5yv.net]
>>401
強い型付けの動的型言語なら、値に対するテストを書けば型に対するテストは不要です
assert(x > 0) というテストを書いたのに、さらにxが文字列かどうかテストする必要ははありませんね

反論するなら反例を出してくださいね
クソくだらない長文はいらないので

412 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 08:13:41.10 ID:UBkq3PS9.net]
>>397
わからんならしたことがないって事だ。

413 名前:デフォルトの名無しさん [2017/12/18(月) 08:28:29.94 ID:9Kb0ajxH.net]
>>402
型ってのを、CPUのプリミティブでしか考えなくて良い業務プログラムならそうだな。
問題は、今時そんなトイプロジェクトが少ないって事。

414 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 09:01:45.44 ID:yq3smURe.net]
>>402
自演乙

415 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 10:20:33.66 ID:/BfrEM8a.net]
>>404
つまり、幽霊型とか依存型あたりを使い倒さないと今時のプロジェクトはまわらない、という認識でいいのか?
そりゃその辺りを使い倒さないと回らないプロジェクト前提なら、動的型付けでは無理な話になるが
それが必須な状況が、動的型付け言語のメタプログラミング並みに思い付かないぞ

416 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 12:43:07.93 ID:h27G1UNw.net]
>>402
用途による。
弱い型付け言語でも、型無言語でも値に対するテストで充分な場合もあるし(要は、不正値が渡されてる時点で異常であって、その場合の動作は不定として構わないという要件の場合。よくある)
逆に強い型付け言語でも、強い磁界やノイズ源の間際で使われるようなものを書くときにはキチガイじみたテストもする。
a=170,b=85,a+b==255みたいなアサーションすら稼働コードにも並ぶし、それが成立しなかったらリセットかかるようにする。

417 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 12:54:00.44 ID:mr3x/gYU.net]
ちなみにvscodeでnode.jsのコード補完が効くのはtypescriptの型情報の恩恵を得てるから

418 名前:デフォルトの名無しさん [2017/12/18(月) 21:36:27.12 ID:9Kb0ajxH.net]
>>406
むしろ動的型付けの出番が増えるけどな。
昔ながらの単純なOAアプリには不要だが。

419 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:10:12.61 ID:lENhGj5D.net]
>>407
長文書かずに反例を出せ、って書き込みにアンカーつけてまで
反例無しの長文書いててワロタ



420 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 02:4 ]
[ここ壊れてます]

421 名前:5:28.87 ID:4MuASRxE.net mailto: 具体例がなくても、長文を書けば何か言った気になれるからなwwwwww []
[ここ壊れてます]

422 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 04:16:57.53 ID:6mJgSo5a.net]
>>406
幽霊型や依存型って動的型付けなら普通にコードでやっていることを
静的な型で表現しようとしてがんばってる例のあれのこと?

423 名前:デフォルトの名無しさん [2017/12/19(火) 07:49:40.76 ID:yvsoeKM9.net]
>>412
>静的な型で表現しようとしてがんばってる例

まあそういう事になるよね。
もともと計算モデルが違う(=問題解決へのアプローチが違う)
プログラミング言語同士を比較すれば、「一方は率直に実装できる」
フィーチャーが有るのは当たり前だしね。
理想はプロジェクト毎に最適の計算モデル、言語、スキルを揃える事だが
現実には、そういう要素が有ることを知らなかったり、教育投資を捨てたく
ないって理由で、合っていないモデルで無理やり進めてるのが現実。

424 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 08:55:34.79 ID:9wTQQ92p.net]
>>410
反例じゃん?

425 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 09:24:51.77 ID:ngbi4CU2.net]
>>402「強い型付け言語である場合、値のテストをすれば型のテストはいらない」

>>407「弱い型付け言語でも型のテストがいらない場合がある。また、強い磁場中の利用であればa=170,b=85,a+b==255のようなキチガイじみたテストをする」

あガガイのガイ

426 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 13:04:54.40 ID:lG4ryEsW.net]
>>412
動的型で項書き換え最適化や実行前の証明が普通になされているというなら、まあそうだね

427 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 13:08:42.98 ID:9wTQQ92p.net]
うん、反例の一つかと。
〜あるし、〜する(こともある)。
前者は言う通りにそれ以下のテストだけど、後者は型テストももちろんするし、その周辺のメモリの値すらテストする、って事なんだが。
カナリア知らんとかはやめてくれよ。

428 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 13:20:03.85 ID:/xuMeQeJ.net]
次世代で証明されると期待される定理を今使う
クレジットカードみたいなやつ
動的型付けってそういう仕組みなんだね

429 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 13:22:38.78 ID:ngbi4CU2.net]
ID:9wTQQ92p
こいつくせえな話が通じてねえ
例のガイジか



430 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 13:31:22.89 ID:xjqFNtfj.net]
ガイ・スティール・ジュニア略してガイジ。

431 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 14:57:09.50 ID:9wTQQ92p.net]
通じてないのはそっちだと思うけど。
理解できければ全部レッテル貼って理解を放棄するクセはいかがかと思うが。

432 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 15:34:54.93 ID:xjqFNtfj.net]
人に理解してもらえることが当たり前だと思ってるようでは人生経験浅すぎるな。
現実とはそういうものだよ。

433 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 18:04:10.11 ID:9wTQQ92p.net]
そこまでは言ってないがな。
まぁ、どうおかしいか理解させられない時点で同じ穴の狢かそれ以下なんだろ。
理解させる、という側の能力だけを評価するなら。
そこまで卑下しなくても良いのに。

434 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 18:52:02.43 ID:ngbi4CU2.net]
>どうおかしいか理解させられない時点で同じ穴の狢

あDHDには何回か丁寧に説明してやったし、その度に「そういうことか。理解してなかった」って言われて来た
もううんざりだ。おまえであることがわかった以上もう説明せんよ

435 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 19:28:03.33 ID:cqTye8WP.net]
「AならばB」に対して「Aでないときには〜」って話をして
反例になってると思う>>417ってプログラマとしてヤバない?

436 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 19:54:56.57 ID:/xuMeQeJ.net]
ヤバい人がいても最近は誰も批判しない
批判は建設的じゃないと考えられているから

437 名前:デフォルトの名無しさん [2017/12/19(火) 20:05:56.79 ID:XSrelQ4n.net]
>>426
それが実現すれば理想的なんだが現実はそう上手くはいかない。
こんな会話が発生している時点で建設的じゃない批判が起こっているという悲しい事実。

438 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 20:47:02.26 ID:dep2iFkQ.net]
現実もほったらかしにしてるわ。
だからまともにテストのない

439 名前:コードがあちこちにある。。 []
[ここ壊れてます]



440 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 21:09:05.12 ID:+t5AZThl.net]
>>424
ほら、理解させられないw

441 名前:デフォルトの名無しさん [2017/12/19(火) 21:45:39.68 ID:hKOvQSVX.net]
次世代言語の話をしろよ…

442 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 22:19:39.18 ID:IFsKBc84.net]
次世代言語は静的型か動的型か?

443 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 22:22:03.65 ID:VYW2hLxr.net]
静的型に決まってるやろ…

444 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 22:42:35.74 ID:ngbi4CU2.net]
動的言語Clojureさん

445 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 22:47:01.55 ID:Vp6Wk3js.net]
暗黙的な静的型付けが主流になると思う
頭の良い人間が多相を明示的に駆使して必死に辻褄合わせするんじゃなく、
コンパイラがフロー解析を頑張ることで人間に負担をかけずに厳密な静的型付けを実現する
メジャーどころだとTypeScriptはそういう方向へ向かいつつあるね

446 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 23:52:06.32 ID:LaOLTVhQ.net]
型無し旧世代ガイジどもは死ね

447 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 23:55:12.83 ID:IFsKBc84.net]
ドカタ部門やハッカー部門など、部門ごとに次世代言語を決めた方が良さげ

448 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 01:24:03.63 ID:fcm+RWAl.net]
HaskellのIOモナドみたいのが主流になってきたら
実行時型付けも局所的に使えるけど
全体としては静的型付け、みたいな感じになりそう

449 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 01:28:01.05 ID:HrNa8kdY.net]
コードのどの部分で静的型チェックするのかってのが争点になるかもね。



450 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 01:40:49.86 ID:RSIhrBYE.net]
>>435
動的型付け言語の方が新しいんだよなあ

451 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 02:07:25.86 ID:KBs5e3Jn.net]
新しければ常にいいなら世の中楽だな

452 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 02:08:13.16 ID:yTANvvcN.net]
新しいものが良くないのは地獄すぎる

453 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 06:17:59.95 ID:megjw+LT.net]
2世議員とかな

454 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 07:55:10.76 ID:YSR/eiRE.net]
>>439
プッ 恥ずかしい子・・・

455 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 08:39:38.13 ID:ODk3G9Dt.net]
>>441
単に新しいものでは地獄がまだ見えてないかもしれないだけかもしれんぞ。

456 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 08:44:51.44 ID:megjw+LT.net]
人間万事塞翁が馬ということだな。

457 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 22:58:07.90 ID:HrNa8kdY.net]
とりあえず言っとくが
cobol だって perl だって vba だって php だって当時は新しかったんだよ。

458 名前:デフォルトの名無しさん mailto:sage [2017/12/23(土) 01:16:52.24 ID:t3UiuX8x.net]
多重ディスパッチ

459 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 00:50:02.64 ID:g6gmcbUh.net]
Lispは神の言語



460 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 01:04:50.15 ID:WikwUycQ.net]
>>448
lisp のどのような特徴が、あなたをして神の言語と判断させるのか?

461 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 03:09:03.29 ID:zxcNg14q.net]
LISPは神がかってるけどSmalltalkはゴミ

462 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 12:09:04.21 ID:L0WbVZsM.net]
神さまが話していたので神の言語です

463 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 14:00:03.00 ID:Em2lfTvP.net]
もう30年くらい前なのか、むかし16M位のメモリーのワークステーションで
LISPやってた連中は、メモリが足りないからLISPは流行らないんだみたいな言い訳言ってたけど、
個人用PCに32Gのメモリーが詰める時代になっても同じこと言ってるんだろうな。

464 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 14:10:43.44 ID:g6gmcbUh.net]
実は俺はsetqとか嫌い

465 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 15:59:57.85 ID:On/fo7aB.net]
アンアン
      o
    o_ /)
     /<<


12月24日の午後9時から翌25日の午前3時までの6時間は
1年間で最もセックスをする人の多い「性の6時間」です。

貴方の知り合いや友人ももれなくセックスをしています。
普段はあどけない顔して世間話してるあの娘もセックスをしています。
貴方が片想いしているあの綺麗な女性もセックスをしています。
貴方にもし年

466 名前:の娘さんや姉・妹がいて、いま家にいないのでしたら間違いなくセックスしてます。
貴方と別れたあの娘も貴方がその娘にやってきたことを別の男にやられています。
貴方の将来の恋人や結婚する相手は、いま違う男のいちもつでヒィヒィ言っています。
すべてを諦めましょう。そして、ともに戦いましょう。
[]
[ここ壊れてます]

467 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 20:13:00.27 ID:cn7uv5Fd.net]
lisp が流行らんことから導ける唯一のことは結局algol系のシンタックスじゃないと
流行らんということ。

468 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 00:45:32.17 ID:KmZOPanU.net]
やっぱり括弧が辛かったのか

469 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 01:01:15.56 ID:0H4Emls0.net]
意識高そうに見えてしまったとか



470 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 01:22:46.82 ID:LEWwY/wL.net]
彼らは意識高い系じゃない、自意識高い系だ

471 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 01:59:00.89 ID:qFggHRB9.net]
かっこつけすぎなんだよ

472 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 03:56:16.62 ID:lJA7pJsS.net]
括弧がわかりにくいからインデントで分かりやすくする。
だから括弧にはほとんど意味は無い。
それパイソンやん。

473 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 07:03:51.04 ID:0H4Emls0.net]
実際最古のPythonと言っても過言ではない

474 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 12:03:25.79 ID:kkhOzk4j.net]
Lispの系譜にあるPythonが生き残って
Smalltalkの系譜にあるRubyが死んだのは
必然だったな

475 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 13:04:23.59 ID:kMbU4vvz.net]
今時(2017)のSmalltalkの始めかた
https://medium.com/@newapplesho/%E4%BB%8A%E6%99%82-2017-%E3%81%AEsmalltalk%E3%81%AE%E5%A7%8B%E3%82%81%E3%81%8B%E3%81%9F-93c044820e1b

476 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 19:46:02.89 ID:eOxdg9cU.net]
rubyって「お前はもう死んでいる」状態なのに、
それは言わない御約束なのかな?

477 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 20:02:13.61 ID:P1YyQnZH.net]
Rubyの元はPerlだろ。

478 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 22:50:10.19 ID:Z5v7fEWF.net]
多重継承やぞ

479 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 23:39:38.77 ID:qFggHRB9.net]
インデントもまともにつけられないクズペチパー以下のゴミ屑は論外として、
括弧は多少あった方が見やすい
pythonはちょっとクセがある



480 名前:デフォルトの名無しさん mailto:sage [2017/12/26(火) 00:51:10.57 ID:Qxp4eKO0.net]
松本さんはlisp の影響がでかいと言ってはいる
gihyo.jp/news/report/01/rubykaigi2013/0001

481 名前:デフォルトの名無しさん [2017/12/26(火) 01:50:36.25 ID:sagFdw2O.net]
smalltalkは実開発前における分析設計用ツールとしていいんでないかと個人的には思う。

482 名前:デフォルトの名無しさん mailto:sage [2017/12/26(火) 10:35:41.47 ID:Hd2qVaf/.net]
サービスやどのくらい急ぐかにもよるけど「動作する仕様書」としてそのまま本番投入って荒技も使えるしね

スタートアップ界の異端児!産業機器 x IT x SmalltalkのSORABITO株式会社
https://thepedia.co/article/1068/

483 名前:デフォルトの名無しさん mailto:sage [2017/12/26(火) 12:42:11.47 ID:9JscEoEu.net]
そして負の遺産になるわけですね

484 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 00:30:29.97 ID:AqtANtDH.net]
>>471
コレメンサスンゴなんだよなぁンゴ

485 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 09:48:57.79 ID:X35AiWNh.net]
Smalltalkのコードって死ぬほど読みにくいよね。
やっぱり古臭い言語はダメだな。処理系もなんかモッサリしてて古臭いし

486 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 11:00:24.41 ID:gUZ1SoEG.net]
次世代言語スレで旧時代の死体蹴りは感心しない

487 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 12:07:11.37 ID:V4t27acZ.net]
>>473
Haskellのほうがひどいぞ

488 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 12:36:42.15 ID:P2OckTcS.net]
こんな話題にまでHa

489 名前:kellぶち込んで来て
どんだけHaskell嫌いなんだ……
[]
[ここ壊れてます]



490 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 16:45:18.19 ID:bNHoEe3v.net]
嫌いってのは対等な関係だから割とうまくいってる
もっと差別的な感じになったらやばい

491 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 16:49:33.78 ID:TP7XdM/O.net]
Haskellの今は知らないがfull importしまくってたり色んな演算子を作って使いまくって変数名も省略しまくりで
お世辞にも読みやすいとは言えなかったぞ

492 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 17:06:39.65 ID:bNHoEe3v.net]
変数名というか型名がaとかbとかcとか
だがジェネリクスの可読性が低くてもジェネリクスが淘汰されることはない

493 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 20:16:36.09 ID:+xQq+KE3.net]
ソースコードの不備をAIで見つける富士通
itpro.nikkeibp.co.jp/atcl/column/14/346926/122501258/
英数字や記号といった文字列の固まりであるソースコードを、
テキストデータとしてではなく、画像として分析するという。

494 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 20:18:47.38 ID:hw44w6Qj.net]
>>480
面白そうな技術だけど、ビジュアルがヤバいw

495 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 22:15:48.54 ID:nTLYpIDf.net]
どうせlintでもかければ良い話なんだろうなって気がするわ。

496 名前:デフォルトの名無しさん [2017/12/28(木) 07:34:29.86 ID:Vjf7k8ZG.net]
画像ベースだと
教師データで使用頻度の高い変数名を使うと高得点
みたいな奇妙なテクニックが生まれないんかね

497 名前:デフォルトの名無しさん mailto:sage [2017/12/28(木) 09:27:42.05 ID:wX0EFIYP.net]
画像でやってるからそういうのは起こりにくいのかも。

498 名前:デフォルトの名無しさん mailto:sage [2017/12/28(木) 16:46:02.76 ID:jPNGBgQQ.net]
インデントが無駄に深くなってて、無駄な空白が広くとられてるとかは
結構簡単に診断できるかもね。
でもそれって人間が見てもわかることだよな。。

499 名前:デフォルトの名無しさん mailto:sage [2017/12/28(木) 21:23:58.74 ID:uNABt/+g.net]
美しいコードがあったら1回しか書かないのはもったいないからコピペする



500 名前:デフォルトの名無しさん mailto:sage [2017/12/29(金) 15:51:08.69 ID:qAknRtUW.net]
>>480
写真のオッサンどものザ・無能・SI感がヤバみ

501 名前:デフォルトの名無しさん mailto:sage [2017/12/29(金) 16:46:08.27 ID:EmauInAe.net]
>>485
人間が見てもわかること、って気軽に言うけど、それ「普通の彼氏がほしい」くらいの無茶振りだと思うぞ。
定量化してくれるんなら便利じゃん。
あと、画像を解析してるから、内容の是非じゃなくてバグを生みやすいような姿を検知してる、ってのは
古株のおっさん連中への強烈なエクスキューズになると思うわ。
内容の是非を判定するモノに関しては、どうしても静的解析と仲良くできなかったような連中が狂ったようにアンチする。
Rustスレみたいになる。

502 名前:デフォルトの名無しさん mailto:sage [2017/12/29(金) 17:37:53.13 ID:cw3UbRdF.net]
>>488
いやだから定量化のツールなんて今まで腐る程作られてるわけだけれど
結局、それを無視する輩に何言っても無駄だってことなんだがな。
人間の指摘は無視して機械の指摘は受け入れるとかどこか歪んでると思わんのかね?
ルールベースだろうと機械学習だろうと結局は受け入れ側の問題なんだが。

503 名前:デフォルトの名無しさん mailto:sage [2017/12/29(金) 18:16:14.48 ID:FHAe2y9o.net]
>>489
富士通が作ったとなるとおじさんたちには説明しやすそうだけどな

504 名前:デフォルトの名無しさん mailto:sage [2017/12/29(金) 18:43:36.76 ID:JTMw5+UW.net]
筋が悪いと思う
目的は定量評価そのものではなく、悪いところを改善することだろ?
ディープラーニングでスコアを付けられたところで、どうやったら良くなるのか分からんだろ
決められた最低スコアを満たすために深夜にPG達が死んだ魚のような

505 名前:目でインデントをいじくって試行錯誤する姿が目に浮かぶわ []
[ここ壊れてます]

506 名前:デフォルトの名無しさん mailto:sage [2017/12/29(金) 18:47:44.63 ID:cw3UbRdF.net]
>>490
いや富士通がやったことだからやばげなんだろw
googleがやったとかならおじさん受けはいいかもしれんが。

507 名前:デフォルトの名無しさん mailto:sage [2017/12/29(金) 19:02:44.12 ID:NmAcZsuY.net]
アメリカに尻尾ふる日本人

508 名前:デフォルトの名無しさん mailto:sage [2017/12/29(金) 19:27:10.69 ID:EmauInAe.net]
>>489
確かに定量化のツールは腐るほどあるが、
「本当の意味での見た目」を定量化したのは割と初めてじゃない?
面白いと思うけど。

無視する輩ってどこから来たのかわからんが、たいがいそういう奴は決まってしまえば無視はしない。
無視する事は出来ないから導入自体を見送らせる。

そこで、ルールベースじゃなくて「雰囲気」を一つの指標にするってのはアリだと思うけど。
機械の指摘ももちろんだが、機械の指摘をもって人間が指摘するんだから、あんまかわらん。
それに、そもそも人間の指摘も無視するわけじゃないだろ。
人間の指摘を無視するやつはそもそもプロジェクトでは長生き出来んだろ。社会人なんだから。
二元論じゃなくて、新しい尺度じゃね?

受け入れ側の問題と断ずるのは簡単だが、何故受け入れさせる事が出来ないか、ってのはそれを推す側の問題だと思う。

509 名前:デフォルトの名無しさん mailto:sage [2017/12/29(金) 20:10:55.59 ID:JTMw5+UW.net]
教師データをどう用意したのかは激しく疑問だな
Apache Foundationとかの定評アルOSSのソースを○、
富士通のSIのソースを×として学習させて、与えられた画像が○の方である確率をスコアとするんだろうかw



510 名前:デフォルトの名無しさん mailto:sage [2017/12/29(金) 22:23:50.72 ID:cw3UbRdF.net]
>>494
才クロマティック数とかさ、普通に気にしてりゃそこまでひどいことにはならんわけよ。
ツールの数はおれは十分だと思ってるけれど、結局そういう地道な数値なんてのはむしするわけだ。
ただただ新しい指標作りましたっていうアリバイ発明のためだけってのは
この業界では昔からいっくらでもあるわけで警戒するのが普通なんだよ。
https://msdn.microsoft.com/ja-jp/library/bb385914.aspx

受け入れられない理由はそいつの能力と与えられる時間の割合の話にしかならん。
地道に受け入れる体制をつくるかそういう奴を切るかの二つしかないのに
糞みたいな幻想にしがみついてるだけだわ。

511 名前:デフォルトの名無しさん [2017/12/29(金) 23:18:07.67 ID:aTe03Y1I.net]
>>496
お前さんの書き込み見ると、アンチを装った信者って評価になるけどな。

512 名前:デフォルトの名無しさん mailto:sage [2017/12/30(土) 09:00:14.39 ID:HRZmB+5I.net]
>>492
お前がプロパーエアプなことはよくわかった。

513 名前:デフォルトの名無しさん mailto:sage [2017/12/30(土) 12:24:14.46 ID:YiXNzhkf.net]
ワインゴ大将軍、循環的複雑度でコードのヤバみ検知してる最先端エンジンでその富士山・・?のなんとかよりずっと前から最先端だけど話する?

514 名前:デフォルトの名無しさん mailto:sage [2017/12/30(土) 12:37:15.29 ID:IKvN98q1.net]
>>499
技術的には全くどうでもいいけど、
それを客にどう売り込んでるかとか導入後実際に成果出てるのかとかとかは気になる

515 名前:デフォルトの名無しさん mailto:sage [2017/12/30(土) 12:37:56.63 ID:sz1BobDC.net]
>>496
無視するんじゃなくて、理解出来ない人間も居るんだし、そいつらを黙らせるのにも便利だと。
アリバイじゃないよ。わかったふりをさせて承認印を押させるような行為がアリバイだろ。

大体、営業や経営がシステムの事を深く理解する必要は無いし、大本営直下の人間ってのはそのどちらか寄り。
それは戦略上の必要悪なんだから、切る切らないの議論としては話にならん。

そいつらが見る時に、今までは言っちゃえば騙して盲判を押させてただけだろ。

地道なツールを無視するんじゃない。それは今までどおり開発

516 名前:部で使えばいいじゃない。 []
[ここ壊れてます]

517 名前:デフォルトの名無しさん mailto:sage [2017/12/30(土) 13:01:46.50 ID:KDbqwYpR.net]
マ板でやれ

518 名前:デフォルトの名無しさん mailto:sage [2017/12/30(土) 13:04:53.13 ID:mW/VKMch.net]
perlやhaskellをやったら、コードはやっぱり短い方が良いなって思うよ
でもコードの長さという指標はほとんど無視されているのが悲しい

519 名前:デフォルトの名無しさん [2017/12/30(土) 17:37:07.61 ID:9QvS1nQQ.net]
haskellってそういうジャンルなのかよ
受け入れられないわけだ



520 名前:デフォルトの名無しさん mailto:sage [2017/12/30(土) 18:01:18.34 ID:WOZO0R3V.net]
違うよ

521 名前:デフォルトの名無しさん mailto:sage [2017/12/30(土) 22:23:23.78 ID:mW/VKMch.net]
短くするつもりは全然ないのになぜか短い
これなら受け入れられるか?
やばい全然勉強してないとか言いながら高得点を取る現象と同じ

522 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 04:59:15.58 ID:BxCzRdag.net]
やりたいことが全部標準ライブラリーに入ってるからじゃね?

523 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 06:58:35.57 ID:pbtZtK9w.net]
ちょっと聞きたいんだけど
便利なライブラリが揃っているって
事と
その言語が優れているって事は
全く別の事だよな?

524 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 10:00:35.36 ID:mQmAaKpB.net]
Haskellで1年前のコードをデバッグするの本当に地獄。

525 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 10:22:03.98 ID:rHg6Qc+M.net]
Lisp系はどうなる

526 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 10:22:23.79 ID:rHg6Qc+M.net]
>>508
そうだけどなにか

527 名前:デフォルトの名無しさん [2017/12/31(日) 11:09:20.17 ID:OUK6bPn9.net]
>>508
優劣の基準によるだろ。

528 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 13:25:14.78 ID:G5F8BPZR.net]
いろんな言語の悪口言ってるw

Debunking Myths About Programming Languages (and More)
https://www.youtube.com/watch?v=rZeTdi7en6A

529 名前:デフォルトの名無しさん mailto:sage [2018/01/01(月) 12:19:03.55 ID:bFOlOWpA.net]
>>510
マクロを追ってくのは面倒ではあるが
一つ一つ展開してけばそこまで無理ゲーではない。
しかしhaskellみたいに正格評価でない言語はバイナリイメージが描きにくいし
やっぱり辛いんじゃないかな。



530 名前:デフォルトの名無しさん mailto:sage [2018/01/01(月) 12:39:18.50 ID:/aa2tlFp.net]
Haskellのバイナリはイメージ出来んな
でも出来る必要あるか?

531 名前:デフォルトの名無しさん mailto:sage [2018/01/01(月) 12:49:38.56 ID:UOCN9gps.net]
する必要がない人が使うんだろ。
良いじゃん、バイナリサイズが大きかったり、メモリ消費が多かったり、動作が遅ければ計測すれば。

大きくなるだろうな、メモリたくさん使うだろうな、これじゃ遅いだろうな、なんて気づきは無駄らしい。計測が全てらしいわ。
また半狂乱になって必要性の無さを説くのを眺めるのもめんどくさいし、そういう言語だって理解でいいんじゃねえの?

532 名前:デフォルトの名無しさん mailto:sage [2018/01/01(月) 12:55:17.85 ID:/aa2tlFp.net]
どうせPythonとかでもバイナリイメージ描かんじゃろ?

533 名前:デフォルトの名無しさん mailto:sage [2018/01/01(月) 13:07:46.20 ID:/aa2tlFp.net]
Haskellは動的言語以上にそっちの方向いっとる
そっちの極みやね

534 名前:デフォルトの名無しさん mailto:sage [2018/01/01(月) 14:34:14.61 ID:aCS5pbMF.net]
くすくす

535 名前:デフォルトの名無しさん mailto:sage [2018/01/01(月) 15:17:11.09 ID:2Vcmk2Ln.net]
おまえら、いつも「これはどんなバイナリ」とか考えながらコーディングしてんの?
バカじゃないの?

536 名前:デフォルトの名無しさん mailto:sage [2018/01/01(月) 15:18:05.17 ID:ry7dOet7.net]
俺も数学科出身なんだけど、層の理論ってプログラムと関係ないと思う。
だけど、↓みたいに数学的基礎付けが欲しい人はいるのもわかるが。

Haskellと層
https://qiita.com/makoraru/items/ab891a60d4dfe4bbf649

537 名前:デフォルトの名無しさん mailto:sage [2018/01/01(月) 16:45:32.23 ID:bFOlOWpA.net]
バイナリイメージっつーか
結局デバッグってどの時点かで想定の値と違ってるところを探るってことになるわけで、
その評価のタイミングとか考える必要があるじゃん。
そういう評価のタイミングがわかりにくい言語だとデバッグがきついんだよ。

538 名前:デフォルトの名無しさん mailto:sage [2018/01/01(月) 18:17:03.86 ID:/aa2tlFp.net]
一応、タイミングという概念から解放されるための参照透過性なのでは?

539 名前:デフォルトの名無しさん mailto:sage [2018/01/01(月) 19:33:22.97 ID:bFOlOWpA.net]
解放されたいのはわかるが実際は違うんだから仕方ない。
言語でいくら定義しようが、ノイマンマシーンはそんな風には動かないんだから。



540 名前:デフォルトの名無しさん mailto:sage [2018/01/01(月) 19:46:21.62 ID:/faDXLzU.net]
実行できない仕様記述言語の方が初心者に優しい
バイナリとかメモリとか気にする必要がないことが明確になる

実行できる機能を追加したら言語の評価が下がる
もちろん実質的な価値は上がるが、評価と実質が乖離するのは初心者には難しい

541 名前:デフォルトの名無しさん mailto:sage [2018/01/01(月) 20:16:05.10 ID:yhABuCD4.net]
実際Haskell 使ってて、タイミング気にしないといけない状況って何よ?

542 名前:デフォルトの名無しさん mailto:sage [2018/01/01(月) 21:49:32.98 ID:/aa2tlFp.net]
Haskell最大の謎仕様は「Num」だと思う

543 名前:デフォルトの名無しさん mailto:sage [2018/01/01(月) 22:38:37.64 ID:sFrCkJSv.net]
>>526
メモリが無限にあるならサンクがどれだけ作られても気にならないけど
実際は違うから適当なタイミングでサンクを潰す必要がある

544 名前:デフォルトの名無しさん mailto:sage [2018/01/01(月) 22:59:07.73 ID:yhABuCD4.net]
それもそうか。たしかに妙なところで妙な泥臭さが顔を出すな

545 名前:デフォルトの名無しさん [2018/01/02(火) 10:01:13.65 ID:EAVq+O5u.net]
>>470
読んでみて面白いと思ったけど、「動作する仕様書」ってのがいまいちイメージ出来ない。
参考になるURLとか知ってる人居ますか?

546 名前:デフォルトの名無しさん mailto:sage [2018/01/02(火) 11:37:28.22 ID:rfQ6c9kP.net]
>>527
同時にそれはオブジェクト指向の謎でもある
実数と整数の間に "is a" 関係は存在しないのか?

547 名前:デフォルトの名無しさん mailto:sage [2018/01/02(火) 12:30:30.49 ID:oC5uWYs9.net]
>>517
動的言語じゃん。
まあそれでもどう解釈されるかとか、これじゃinline展開されんな、とかはJavascriptでも考えるが。

>>520みたいにしない人はしなくても良いようなプログラム書いてるんだろうし、無駄だよ、この議論は。

548 名前:デフォルトの名無しさん mailto:sage [2018/01/02(火) 14:12:57.96 ID:AAYv0JXv.net]
>>530
古いけどこれとか参考にならないかな?

「分析・設計ツールとしてのSmalltalk」
web.archive.org/web/20131025032224/http://www.sra.co.jp/public/doc/GSletter/vol.26/smalltalk/smalltalk.pdf

549 名前:デフォルトの名無しさん [2018/01/02(火) 22:00:37.83 ID:EAVq+O5u.net]
>>533
サンクス、読んでみる。



550 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 00:13:36.77 ID:BD5Fg5Uh.net]
本当に必要なのは、コンパイルの通る仕様書じゃないか?
動作する仕様書です!なんて出して、「それで動くんだからいいじゃん、はい保守」
なんて言われた日にゃ地獄の始まりだろ

551 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 00:23:34.96 ID:36t783to.net]
Smalltalkerにはソレで十分なんですよ
なんとなく動けばok。エラー?握り潰せば?の世界だから

552 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 00:35:45.41 ID:BQWr3hBa.net]
動作はするけどなんだか速度が遅いから最新機種の方がいいじゃん、はい購入
これがマネタイズだ

553 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 07:32:07.83 ID:jID8SJMc.net]
>>535
あまりに動的性を追求しすぎててインタープリタ言語と勘違いされがちだけど
Smalltalkも(VMで動くJavaがそうであると言える程度には)コンパイラ言語なので
「動く」以上はコンパイルは「通っている」んだな、一応w

もちろん533が言いたいのはそういうことじゃないことは分かっているんで、マジレスすると
型システムのチェック(のことだよね?)を通すのにコスト(主に人員や時間)をかけられる程度に
急ぎでない(つまり「仕様が固まっている」)のならSORABITOとかで求められる
「必要なら本番投入も可能な動く仕様書」的側面はきっとあまり役には

554 名前:ァたないだろうね []
[ここ壊れてます]

555 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 08:02:43.84 ID:jID8SJMc.net]
>>535,536
こっちにもマジレスすると、実際そのとおりで
Smalltalkの設計者ら(アラン・ケイだけど)は
ひどいと「地獄」とまで形容されるそれ、つまり本番投入後の要求変更を必要不可避なものとして捉え
天国とまでいかずとも他言語には難しい後からの大胆な仕様変更をも支援できる動的性を
この処理系(環境を含む)に付与することに腐心し、それはある程度奏功している

「ソフトウェア工学」は矛盾語法か? -- アラン・ケイ
metatoys.org/oxymoron/oxymoron.html

Smalltalkの底を流れる設計思想 -- ダン・インガルス
web.archive.org/web/20041016084842/http:/marimpod.homeip.net/chomswiki/24

TDDの「ひどい仮実装でもとりあえずグリーンにするのを優先し、そこから重複を除去(リファクタリング)」
というとんでもない発想が生まれ得たのもSmalltalkのこの大胆な変更への追随力があったから

556 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 10:49:31.30 ID:JTHdffOK.net]
>>535
きみには孫請けSIer根性が染み付いているようだねッ 彡⭐

557 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 13:41:42.24 ID:0ljbskXf.net]
Pythonよりすっきり書ける言語がないという事実

558 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 15:29:23.56 ID:BD5Fg5Uh.net]
>>541
lamdaが糞
finalがない
privateがない

はい完全究極ロンパリオン・ギガアタックEx

559 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 15:36:20.12 ID:0ljbskXf.net]
>>542
そんなゴミクソ仕様の塊よりすっきり書ける言語がないという事実



560 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 16:16:41.94 ID:1ORngv96.net]
>>542
×lamda
○lambda

>>542
Y コンビネータをすら記述できない lambda 仕様が特にコンパイル言語にも氾濫しているが、いったい何の役に立つんだ?老害避けのつもりか?

561 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 16:25:14.58 ID:BD5Fg5Uh.net]
>>543
おまえのいうすっきりって何だよ
俺はTypeScriptですっきり書けてるが?

562 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 16:44:08.47 ID:CJ7nUX51.net]
Zコンビネータじゃ駄目なんか?

563 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 17:44:23.37 ID:BD5Fg5Uh.net]
俺なんかXenoExtraUltraGigaJetHyperUltraMiracleSuperコンピータだが文句あるか?

564 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 18:27:49.94 ID:1ORngv96.net]
>>547
君の芸風とても好きだ!
>UltraGigaJetHyper**Ultra**

565 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 18:51:02.03 ID:ykBugU3C.net]
またTypeScriptか。
いい加減ちょっと落ち着いてほしいな、推しの人は。
言語仕様はごった煮、出来上がるのは微妙に汚いJavaScript。
async awaitをネイティブのasyncじゃなくてトランスパイルした結果なんて変数のライフタイム無茶苦茶長くなるし。
言語としてのTypeScriptはいろんな意味で何でもできて良いと思うけど、今の実装としてのTypeScriptって微妙だと思うんだが。
単に書く時にスッキリかけても、ちょっと違う気がする。

566 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 18:56:17.97 ID:Dz+CQN9J.net]
>>549
普通にコンパイルオプションの問題だし。
outputをes2017に指定すればいいよ

567 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 19:05:06.06 ID:ykBugU3C.net]
>>550
そうじゃなくて。だからネイティブのじゃなくてトランスパイルさせたらって前提付けたんだけどな。
なんかあそこまでやるなら、JSとの相互運用諦めてもっと汚いコード出せば良いのに、と思ってしまうんよ。

568 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 19:38:05.02 ID:Dz+CQN9J.net]
>>551
TypeScriptのトランスパイルコードを直接いじることは無いからなぁ。
なんでそんな状況になったの?

569 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 20:25:39.92 ID:ykBugU3C.net]
>>552
弄ることは無いが、あるべき姿になるようにTS側で書き分ける事はあるかな。

くっそ遅い関数がなんで遅いのかを調べにかかった時に、モヤモヤした覚えがある。
genericsとか、型ごとの関数をちゃんと作ってほしいけど、一つだったり。今違うかったらすまん。
その時は、これでJIT結果捨てる事になってる…って気づいて、素直に沢山関数を作った。

コンパイラと言うならもう少しVMの仕様を鑑みても良いと思う。



570 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 20:47:23.87 ID:ojwn4PN+.net]
特定のブラウザの現在のバージョンに最適化しろってこと?
お前それ自分がコンパイラ作る立場ならやろうと思うか?
やろうと思うならお前がコード書いてプルリク出してやればいい
確実にリジェクトされるだろうけどな

571 名前:デフォルトの名無しさん [2018/01/04(木) 00:44:42.33 ID:nu/rOVYa.net]
wasmが普通になったら状況変わるかね?

572 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 01:19:26.61 ID:j8WFIzPh.net]
wasmが吐き出すjavascript気になるマンが出てくるに100000000000000ジンバブエドル

573 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 02:20:20.25 ID:Gm3YPo14.net]
気にしないでいいって保証が欲しいのはよくわかるよ。

574 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 10:28:15.71 ID:eEA4RdWc.net]
確かにTypeScriptは実際に書いてるとめちゃくちゃ次世代感あるが、
それはReactとかReduxとかのメジャーを作ってる奴らが関数型厨だからで、
次世代なのは、言語というよりはライブラリという感じがする。

575 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 11:33:00.27 ID:j8WFIzPh.net]
PHP書かされてたときは辺境の島国で首輪に繋がれて石器で木の実取ってる気分になったわ

576 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 11:37:57.37 ID:dTmScpvt.net]
>>554
特定のブラウザじゃなくて。そういう発想がセンス無いの。
複数の型で同じ関数を呼ぶとかストールするのはほとんど当たり前と言っても過言じゃなかったりするけど、それを「特定のブラウザの問題でしょ?それよりこんな新しい機能ついたよ」って毎回押し切ってくるのがTypeScript。
AssemblyScriptなんかは好きだけどね。
TS使うプロジェクトにはたまにプルリク送ってるけど、最終的にはTSっぽくないTSのコードになるよ。

577 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 13:22:41.64 ID:h9oQFOEG.net]
>>560
そんなもんJITがやるべきことでしょ

578 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 13:34:10.72 ID:dTmScpvt.net]
>>561
だから、特定のどうの、ではなくて、概ね大半の処理系でJITに乗るようなコンパイル結果出せって言ってるんだけど?
無理した小奇麗なJSっぽいコード出さなくても良いじゃん、って。
V8だと何バイト以下なら関数はインライン化される、とか細かい癖も確かにあるけど、だからこそ小奇麗で無くていいと思うんだが。

579 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 13:38:00.17 ID:dTmScpvt.net]
もしかして、今TypeScriptでジェネリクス使っても、JITは結果破棄しないのかな?
そうならごめん。



580 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 13:55:58.71 ID:lDvme0sw.net]
要はTypeScriptの実装が良くないということなんだろうけど、使う側からしたら
パフォーマンスやフットプリントが許容範囲を超えない限りは気にしないかな。

581 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 15:47:07.60 ID:dTmScpvt.net]
実装が中途半端、かな。JSに引きずられすぎだと思う。
Cで言うとexternしない関数が関数としての形を保たなくても良いのと同じ様に、exportしてないものを似たようなJSのコードにする必要は(もはや)無いと思うんよね。
許容範囲次第なのは確かだけど。
言語としては新しくて良いと思うが、処理系として微妙ってのはそういう所。

582 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 19:02:23.91 ID:h9oQFOEG.net]
>>564
ジェネリックをソースレベルで展開なんかしたらフットプリントが増えて
JavaScriptで一般的に言われるパフォーマンス(つまりロード時間)は落ちるよ

583 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 19:07:31.76 ID:a9q0dcb4.net]
おまえらなんかよりずっと賢い連中が作ってるんだから
問題なんかあるわけねえだろ
バカか?オレオレFW作りたがり坊やのペチプァなのか?

584 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 19:52:37.93 ID:c10UOky1.net]
>>566
ブラウザだけで動かしたい訳でもないし、起動時のパースのフットプリントをどうこう言うのであれば、今のNodeのnode_modules自体、既に無茶苦茶でしょ。
それも、最初に一発パースするからそうなるんであって、bootstrapとその後に分ければいいんでないの?

>>567
ペチプァ言いたいだけだろうが、ペチプァ連呼して悦に入って問題を理解できないやつにゴタゴタ言われたくはない。

585 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 20:16:17.73 ID:nTAtbfT4.net]
ID:dTmScpvt言ってる事そんなにわけわからんくもないのになんでこんな事になってんだ?

586 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 20:29:50.34 ID:UC9+Q2Sj.net]
正義を徹底するより中途半端の方がいいと思ってる奴はいっぱいいるから

587 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 20:47:32.62 ID:lDvme0sw.net]
>>566
トランスパイラである以上多かれ少なかれそういうオーバーヘッドは避けられるものじゃないと
思うけど、問題はそこでTypeScriptがBabel等と比較して出来が良くないのかどうかだね。

588 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 20:49:37.08 ID:h9oQFOEG.net]
過剰な最適化は開発のスピードを落とすしバグも増やすからな

589 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 21:19:25.60 ID:SwPhpZjo.net]
いいか、喚くだけなら頭がPoorのペチPoorでもできるんだよ
わかるか?わからんやつはペチプァだけだが



590 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 21:23:18.84 ID:typzK5sH.net]
ちょっと笑った

591 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 22:58:20.94 ID:ZFKdQPiM.net]
ペチPoorは良いな。俺も使わせてもらおう

592 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 23:59:42.42 ID:/Un6+mBC.net]
ペチPoohでもいいぞ

593 名前:デフォルトの名無しさん mailto:sage [2018/01/05(金) 04:33:36.96 ID:Lhuo9IQi.net]
>>573
おまえは気が狂っている。
一刻も早く病院へ行け。

594 名前:デフォルトの名無しさん mailto:sage [2018/01/05(金) 07:47:15.22 ID:QF8nYsKX.net]
>>577


595 名前:デフォルトの名無しさん mailto:sage [2018/01/05(金) 10:36:04.85 ID:OSZVMsU9.net]
>>577
おっ 頭がPoorのペチPoorか?

596 名前:デフォルトの名無しさん mailto:sage [2018/01/05(金) 12:08:39.39 ID:2QFGEILP.net]
ペチPoorはおつむもおちんぎんもPoorでかわいそうね

597 名前:デフォルトの名無しさん mailto:sage [2018/01/05(金) 12:50:08.59 ID:WQychI9E.net]
>>572
そろそろコンパイラと言うなら、最適化フェーズに入って欲しいわ。
ずーっと(確かに欲しいのはわかるが今でなくて良いだろうと言いたくなる)新機能つけ続けてるじゃん、

598 名前:デフォルトの名無しさん mailto:sage [2018/01/05(金) 13:38:22.06 ID:rGChZwpO.net]
>>580
やめたれw

599 名前:デフォルトの名無しさん mailto:sage [2018/01/05(金) 13:40:21.34 ID:9YdInhdK.net]
>>581
そろそろ課金するフェーズだろ
お金を払ったら悪口言っていいし、悪口言われたくないならお金稼ぐのをやめればいい



600 名前:デフォルトの名無しさん mailto:sage [2018/01/05(金) 14:12:44.72 ID:WQychI9E.net]
>>583
課金するフェーズはまあ別に妥当な値段なら買うよ、マジで。課金して良くなるならね。
VSより高いとなるとちょっと考えるけど。
自分でプルリクせえとなっても、suggestionの段階で同じ様なパフォーマンスのためにJSの形変える系の話は、みんな却下されてたはず。
要は皆>>570の様な形で、中途半端で良いと思ってて、どん詰まりはもっと先だろと楽観視してる。

もはや単なるリンタ。

601 名前:デフォルトの名無しさん mailto:sage [2018/01/05(金) 18:22:04.71 ID:rGChZwpO.net]
推測するな 計測せよ
って言葉知らんのか?

602 名前:デフォルトの名無しさん mailto:sage [2018/01/05(金) 18:43:32.98 ID:/3vfwTze.net]
知らん

603 名前:デフォルトの名無しさん mailto:sage [2018/01/05(金) 18:44:03.04 ID:/3vfwTze.net]
考えるな、感じろ。なら知ってる。

604 名前:デフォルトの名無しさん mailto:sage [2018/01/05(金) 18:47:50.38 ID:2QFGEILP.net]
それ知らんのはガイジ

605 名前:デフォルトの名無しさん mailto:sage [2018/01/05(金) 20:49:35 ]
[ここ壊れてます]

606 名前:.32 ID:WQychI9E.net mailto: 無意味に計測だけしても無駄でしょ。
推論からの計測で計測からの推論かと。
どこを計測するか考えてる時点で推測しとるって事だからね。
[]
[ここ壊れてます]

607 名前:デフォルトの名無しさん mailto:sage [2018/01/05(金) 21:06:34.87 ID:Z2M9SnI/.net]
>>584
そもそもTypeScriptは単なるリンタだろ
お前がプルリクを出すべきなのはTypeScriptではなくV8

608 名前:デフォルトの名無しさん mailto:sage [2018/01/05(金) 21:20:50.22 ID:2QFGEILP.net]
「推測するな 測定せよ」みたいないわゆる格言に対してそんなガキみたいな屁理屈捏ねられてもね……

609 名前:デフォルトの名無しさん mailto:sage [2018/01/05(金) 21:25:02.92 ID:5kzCv3dH.net]
TypeScriptをlint扱いは流石に草



610 名前:デフォルトの名無しさん mailto:sage [2018/01/05(金) 22:31:21.64 ID:EMt1frzJ.net]
推測も測定も両方しろよ。

611 名前:デフォルトの名無しさん mailto:sage [2018/01/05(金) 23:22:56.45 ID:iSZmj121.net]
もうPooHPでも書いてろよ

612 名前:デフォルトの名無しさん mailto:sage [2018/01/06(土) 14:22:11.98 ID:pmlj07ym.net]
>>590
違うらしいよ、信者様によると。

613 名前:デフォルトの名無しさん mailto:sage [2018/01/06(土) 14:24:10.80 ID:pmlj07ym.net]
>>591
意味を理解しない格言や誤謬を招かんとする格言の使い方には一言言いたくなるじゃん。
そう信じて計測だけする奴が可哀想だ。

614 名前:デフォルトの名無しさん mailto:sage [2018/01/06(土) 14:27:48.16 ID:ul9KuZX2.net]
どう考えてもV8にコミットするのが筋だわな
別にTS批判君が全ブラウザをやらなくても、効果的な改良なら他もすぐに追従するだろう
まさかJIT結果だのVMの仕様だのキリッが付きそうなレスしてるのにC++やネイティブコンパイル分からないとか言わないよね

615 名前:デフォルトの名無しさん mailto:sage [2018/01/06(土) 15:18:49.96 ID:Zbelr2Bx.net]
臭い奴がおるな

616 名前:デフォルトの名無しさん mailto:sage [2018/01/06(土) 16:25:24.67 ID:vE17HoYT.net]
wasmにGCが搭載された暁には
いくらでも頑張って欲しい

617 名前:デフォルトの名無しさん mailto:sage [2018/01/06(土) 16:48:12.08 ID:pmlj07ym.net]
>>597
いや違うだろ。
なんでTSのコンパイル結果がクソなのをV8が面倒見るべきかわからんが。
普通にコンパイラとして真面目にコンパイルすりゃいいのに、って話で、
トランスパイラならトランスパイラと名乗れば良いのに。
よくもまぁこういう擁護ができるなぁと思うわ。

V8や他のJSエンジンは、JavaScriptの処理系であって、TypeScriptの処理系じゃねえんだから。
それこそ、TypeScriptが吐き出した中途半端なJSに対するチューニングなんか必要ないだろ。
V8側のスタンスは「最初からJSで書きゃ良いだろ、asyncが欲しい?考えてやるよ」と機能の面では歩み寄ってきたじゃん。
そういう意味で、wasmに振って、ちゃんとコンパイルするAssemblyScriptはいい方向だと思うが、
tscの方向性は微妙としか言い切れんと思う。

TS自体がなんで未だにJSに引きずられる必要があるのかわからんが、皆がそれで良しとする理由は「中途半端で良いから」なの?

618 名前:デフォルトの名無しさん mailto:sage [2018/01/06(土) 16:51:40.90 ID:pmlj07ym.net]
コンパイルした時点で型が消えるのに、JITに引数の型に対して何種類か載せ続けるべき関数(ジェネリクスだった関数)なのか、それともany受けてるただの関数なんか、それこそプロファイル取ること自体無駄じゃん。
最初から型ごとに吐きゃ良いのにって思っちゃいかんのか?

619 名前:デフォルトの名無しさん mailto:sage [2018/01/06(土) 17:16:11.92 ID:vE17HoYT.net]
名前の通りbetterJS以上の認識は無いな
少なくともtscだろうとtstだろうと単なる名前に拘る奴は居ないと思う

>いかんのか?
いいと思うよ



620 名前:デフォルトの名無しさん mailto:sage [2018/01/06(土) 18:35:08.26 ID:bW7JkyTC.net]
>>600
実行時に型ごとにJITを分けるのって割と一般的な最適化手法だろ
型ごとにjsを生成すると言っても結局それらはみんな同じコードであって型情報なんて残らないんだから、

621 名前:
それが適切に最適化されるかどうかなんて処理系次第だろ
jsに型アノテーションを導入しろというなら理解できるが、あんたの主張は無茶な言いがかりにしか見えないな
[]
[ここ壊れてます]

622 名前:デフォルトの名無しさん mailto:sage [2018/01/06(土) 18:41:14.50 ID:bW7JkyTC.net]
補足
最適化されるかは処理系次第、といったのは、結局、型ごとにjs生成しようが
JITは実行時の型を利用して最適化することには変わりないんだから、本質的には大した違いはないという意図だぞ
ヘボいと言うなら複数の型に適切に対応できないJITがヘボいんだよ

623 名前:デフォルトの名無しさん mailto:sage [2018/01/06(土) 18:58:45.67 ID:wyffhFco.net]
>>580
主治医の先生にもそう言ったのか?
ちゃんと薬のめよ。

624 名前:デフォルトの名無しさん mailto:sage [2018/01/06(土) 20:51:20.91 ID:jSg6g7bL.net]
>>605
PooHPoorさん・・・w

625 名前:デフォルトの名無しさん mailto:sage [2018/01/07(日) 09:04:05.50 ID:WSf4F++k.net]
>>603
型ごとに生成すりゃJIT破棄しないだろ。
ちょっとは挙動わかって言いがかりつけてんの?

626 名前:デフォルトの名無しさん mailto:sage [2018/01/07(日) 09:48:25.87 ID:X58Odkk6.net]
>>607
まともな実装なら型が数種類あるくらいならJIT破棄しないよ

627 名前:デフォルトの名無しさん [2018/01/07(日) 12:37:05.15 ID:3N9WbZKm.net]
妄想でごちゃごちゃ言ってないで検証コード載せなさいよ
どっちが馬鹿かはっきりするでしょ

628 名前:デフォルトの名無しさん mailto:sage [2018/01/07(日) 13:26:29.62 ID:WSf4F++k.net]
>>608
あ、そうなんだ。それは良い風に変わってるんだな。
俺が見たときはほとんど整数、たまにエラーを表すオブジェクトのときに、毎回オブジェクトの時にJIT捨ててたけど、古いといえば古い話だし。
まぁプロファイル次第なんだろうな。

>>609
どっちが馬鹿とかじゃなかろうが。
そういう発想がマウンティングとかいう発言に繋がってんの?

629 名前:デフォルトの名無しさん mailto:sage [2018/01/07(日) 13:30:35.11 ID:+RrxdpdM.net]
マウンティングで検索したら誰も言ってなくてワロタ



630 名前:デフォルトの名無しさん mailto:sage [2018/01/07(日) 13:47:09.28 ID:WSf4F++k.net]
>>611
ホントだな。
過去スレの印象で言ってるもんだと思ってたわ。

631 名前:デフォルトの名無しさん mailto:sage [2018/01/07(日) 13:59:18.12 ID:vkdahwds.net]
まあ新しい言語やるやつの動機の7割はマウント取りたいで合ってるよ。

632 名前:デフォルトの名無しさん mailto:sage [2018/01/07(日) 14:07:56.16 ID:tEoGaVYL.net]
x >= y または x < y などと変数でごちゃごちゃ書いてないで定数にすればわかる
変数は妄想だ
妄想するな計測せよ

633 名前:デフォルトの名無しさん mailto:sage [2018/01/07(日) 14:37:44.54 ID:8Eqg8PLM.net]
2 >= 1

634 名前:デフォルトの名無しさん mailto:sage [2018/01/07(日) 15:41:02.61 ID:WSf4F++k.net]
変な荒れかたするもんだな。

635 名前:デフォルトの名無しさん [2018/01/07(日) 19:02:21.52 ID:KS5M1w7d.net]
まあ個人の体験談みたいなものを根拠に主張したって賛同はされんわな
コードが出てこないと改善の有用性も見えないし抽象的な話で止まってしまうよ

636 名前:デフォルトの名無しさん mailto:sage [2018/01/07(日) 21:38:26.68 ID:BUQO0mIV.net]
そーだな、ぜひともHaskellで書いた次世代言語らしいサンプルが見たいもんだ。
他の言語は出たのにな。

637 名前:デフォルトの名無しさん mailto:sage [2018/01/07(日) 21:51:35.49 ID:tEoGaVYL.net]
HaskellとKotlinとTypeScriptのサンプルが出なかった時の話だろうか

638 名前:デフォルトの名無しさん mailto:sage [2018/01/07(日) 21:58:24.02 ID:Oi0ICvXY.net]
サンプルコードが出るとダメな言語は一目瞭然だったりするからな
Sから始まる言語とか

639 名前:デフォルトの名無しさん mailto:sage [2018/01/07(日) 22:23:27.72 ID:tEoGaVYL.net]
ダメな言語の批判ばかりだよな
よかった言語の名前は出せない空気になってる



640 名前:デフォルトの名無しさん mailto:sage [2018/01/07(日) 22:26:14.15 ID:WFi36oCb.net]
5chは初めてか

641 名前:デフォルトの名無しさん mailto:sage [2018/01/07(日) 22:52:11.69 ID:+RrxdpdM.net]
そいつは例のあDHDだろう。Haskellユーザーがいないこのスレで触ったこともないHaskellを叩き続けるガイジだから触れない方が良い

642 名前:デフォルトの名無しさん mailto:sage [2018/01/07(日) 22:59:52.18 ID:L6/hrCeD.net]
文句なしの打っ千切り糞言語賞ナンバーワンはPから始まるあの言語だよなぁ

643 名前:デフォルトの名無しさん mailto:sage [2018/01/07(日) 23:22:37.67 ID:+RrxdpdM.net]
PooHPoorの話はおいといて、好きな言語の話をするのは良いな

644 名前:デフォルトの名無しさん mailto:sage [2018/01/07(日) 23:53:28.58 ID:L6/hrCeD.net]
ブレストの「批判をするな」がいかに大切かわかる空気感だね

645 名前:デフォルトの名無しさん mailto:sage [2018/01/08(月) 00:10:42.98 ID:vJNmJMtg.net]
ブレストは頭の中だけで行動が伴わないので批判しなくていい
厳しく批判されるのは実行に移そうとした時

646 名前:デフォルトの名無しさん mailto:sage [2018/01/08(月) 02:24:37.62 ID:+UJAnfcM.net]
マンセーしたきゃ勝手にすりゃいいじゃん。
現実で文句言われるよりここで言われる方がマシだろ。

647 名前:デフォルトの名無しさん mailto:sage [2018/01/08(月) 10:50:08.35 ID:si2lRCsu.net]
現実でニコニコ
ネットで陰口

美しい国ジャップランド土人村

648 名前:デフォルトの名無しさん mailto:sage [2018/01/08(月) 13:31:41.59 ID:ojmRQEAO.net]
ネットは筆記試験のようなものだよ
筆記試験もネットと同じような批判をされて面接重視になった

649 名前:デフォルトの名無しさん [2018/01/08(月) 14:51:35.25 ID:isNCSjM0.net]
>>629
おま環だろ?



650 名前:デフォルトの名無しさん mailto:sage [2018/01/08(月) 18:13:08.29 ID:e0/LavPD.net]
おま国だろ

651 名前:デフォルトの名無しさん mailto:sage [2018/01/08(月) 20:27:12.48 ID:TtlW0DEg.net]
Elmってどうなんだろ。インスパイアされたhyperappとかいうのがあるけど。
新しいjsライブラリは結構TypeScriptサポートしていて嬉しい

652 名前:デフォルトの名無しさん mailto:sage [2018/01/08(月) 22:54:56.01 ID:e0/LavPD.net]
全てのJSプロジェクトはTypeScriptにしろ

棒案件で立ち上げ時にクソバカの老害オッサンがJSでコード書き始めたせいで
どんだけ苦労したか

653 名前:デフォルトの名無しさん mailto:sage [2018/01/08(月) 23:52:24.85 ID:KF2MtXIW.net]
TypeScriptは認めるがBabelはほんとやめてほしい
わざわざビルドを面倒にするだけの見返りはどう考えても無い

654 名前:デフォルトの名無しさん mailto:sage [2018/01/09(火) 00:49:10.43 ID:Eu2F6gCU.net]
Babelないとjsxも書けないし新しい文法も使えないぞ
糞まみれの生JSに戻る気か?

655 名前:デフォルトの名無しさん mailto:sage [2018/01/09(火) 00:53:34.69 ID:mcq0XcNK.net]
下痢便が軟便になる程度だろ

656 名前:デフォルトの名無しさん mailto:sage [2018/01/09(火) 17:04:26.38 ID:vMJYxq5i.net]
TypeScriptもいずれノーマルjsに吸収される

657 名前:デフォルトの名無しさん mailto:sage [2018/01/09(火) 17:11:58.74 ID:MVMyukKY.net]
>>638
それ理想的だね。型を最初からサポートしたほうが良い。
typescriptを中心に据えてオプションで型無しをサポートする方針にしたほうが処理性能向上に寄与する気がする。
あとnumber型を廃止して

658 名前:デフォルトの名無しさん mailto:sage [2018/01/09(火) 18:53:23.55 ID:dlYDsmgP.net]
>>623
もう叩いてないぞ。
割と興味出てきたのに、誰も、ここが良い!を言わないからつまんねえのって思ってるだけだよ。
スレタイに入れたいだけじゃねえの?って。

正直、使ってみた感じは悪くないけど、この便利な言語でこういう事すると楽かな?みたいなのがあんまり思いつかんので、良いサンプルは見たいな。
GoのGoroutineやchanの気軽さとか、erlangのプロセスの考え方みたいなのとか。

659 名前:デフォルトの名無しさん mailto:sage [2018/01/09(火) 18:54:28.23 ID:5zS3VIoD.net]
>>623
スレタイに入れた奴が居るはずだろw



660 名前:デフォルトの名無しさん mailto:sage [2018/01/09(火) 19:50:56.76 ID:MVMyukKY.net]
Haskell使った有名なアプリってなんかあるの?

661 名前:デフォルトの名無しさん mailto:sage [2018/01/09(火) 19:55:51.91 ID:WTFA4htZ.net]
xmonad

662 名前:デフォルトの名無しさん mailto:sage [2018/01/09(火) 20:14:49.53 ID:EVhg342m.net]
monadius

663 名前:デフォルトの名無しさん mailto:sage [2018/01/09(火) 21:09:47.45 ID:Dcv/I53t.net]
これとか?
https://code.facebook.com/posts/745068642270222/fighting-spam-with-haskell/

664 名前:デフォルトの名無しさん mailto:sage [2018/01/09(火) 21:25:06.32 ID:p1Q0x2y+.net]
データフィルタ的に使うのなら確かにいいかもな。

665 名前:デフォルトの名無しさん mailto:sage [2018/01/09(火) 23:27:20.37 ID:MVMyukKY.net]
>>643
linuxを、デスクトップ用途で使うならいいけどなぁ。
wafとかで革新的なやつとか無いのかね?

666 名前:デフォルトの名無しさん mailto:sage [2018/01/13(土) 21:15:44.50 ID:c6t40eQY.net]
>>6

667 名前:42
Pandoc
[]
[ここ壊れてます]

668 名前:デフォルトの名無しさん mailto:sage [2018/01/15(月) 20:41:07.18 ID:MfcsBHji.net]
関数型プログラミングの流行も落ち着いた感じかね?

669 名前:デフォルトの名無しさん mailto:sage [2018/01/15(月) 21:19:36.73 ID:+I1W8YzH.net]
さいなー



670 名前:デフォルトの名無しさん mailto:sage [2018/01/15(月) 23:18:02.53 ID:GwTCehVf.net]
落ち着いたも何も、みんな身につけ終わっただけだろ

671 名前:デフォルトの名無しさん mailto:sage [2018/01/16(火) 13:33:12.35 ID:9RwiafIQ.net]
せやな

672 名前:デフォルトの名無しさん mailto:sage [2018/01/16(火) 22:37:54.03 ID:rkvgxjqz.net]
ビットコインの流行「奴は流行の中で最弱」

673 名前:デフォルトの名無しさん mailto:sage [2018/01/16(火) 23:05:29.36 ID:VmDdoWU7.net]
関数型の後Pythonに戻ったら、それまでとも違うけど関数型でもないコードになった

674 名前:デフォルトの名無しさん mailto:sage [2018/01/17(水) 10:07:53.77 ID:9HqucL9D.net]
pythyonって関数型書きやすい?

675 名前:デフォルトの名無しさん mailto:sage [2018/01/17(水) 10:31:26.77 ID:I48MtSJA.net]
書きにくい

676 名前:デフォルトの名無しさん mailto:sage [2018/01/17(水) 10:57:56.45 ID:9HqucL9D.net]
lambdaが書きづらいからとか?
やっぱ関数型プログラミングはRubyのほうが強いのか

677 名前:デフォルトの名無しさん mailto:sage [2018/01/17(水) 11:09:34.12 ID:I48MtSJA.net]
Rubyと比べてどうかは知らんけど、Pythonのデータ構造や文法ならいわゆるPythonicな書き方が書きやすく読みやすいので関数型特化する必要がないので、関数型には書きにくい

678 名前:デフォルトの名無しさん mailto:sage [2018/01/17(水) 11:22:30.71 ID:dt2TzLE6.net]
なぜ関数型とRubyが、目的と手段なんですか
理想主義と現実主義ではだめなんですか

679 名前:デフォルトの名無しさん mailto:sage [2018/01/17(水) 11:24:00.75 ID:VP9/FI9R.net]
関数型って何をさすのか
よくそれだけで会話が通じるなと思うわ



680 名前:デフォルトの名無しさん mailto:sage [2018/01/17(水) 11:51:37.31 ID:dt2TzLE6.net]
言語の標本集合をさすんじゃないですか
現実の言語にはばらつきがありますが、平均すれば理論値に収束する筈だとか

681 名前:デフォルトの名無しさん mailto:sage [2018/01/17(水) 13:21:41.39 ID:VP9/FI9R.net]
標本がどうのこうのじゃなくて
会話噛み合ってないだろってことだよ
頭でっかちさん

682 名前:デフォルトの名無しさん mailto:sage [2018/01/17(水) 13:35:55.43 ID:dt2TzLE6.net]
そうやって悪態をつくのも会話ができない人の典型

683 名前:デフォルトの名無しさん mailto:sage [2018/01/17(水) 13:57:51.64 ID:PYB4eJ3B.net]
rubyのfirst classですらないlambdaだって書きやすくはねーだろ

684 名前:デフォルトの名無しさん mailto:sage [2018/01/17(水) 18:38:24.63 ID:XaYj/w5S.net]
>>660
ほんとにな。
ラムダ一つとったって型なし、型あり
型にしたって、型に依存する型、型に依存する項(関数など)、項に依存する型とか色々あるのに。

685 名前:デフォルトの名無しさん mailto:sage [2018/01/17(水) 20:11:35.06 ID:ZAXr3Ump.net]
PythonicとかPythonistaとか、改めて見るとすごい呼称だ。

686 名前:デフォルトの名無しさん [2018/01/17(水) 21:11:15.44 ID:zdlnY+SA.net]
>>655
書きにくいから、Python の公式文書では lambda で書いたコードを
手続き型の for ループへ書き換えることを推奨している

https://docs.python.jp/3/howto/functional.html

687 名前:デフォルトの名無しさん [2018/01/17(水) 21:34:21.77 ID:zdlnY+SA.net]
>>658
あれれ、日本国内ではそういう認識が浸透してるの?

世界的には Python の lambda が欠陥であることは広く知られていて、
改善に向けた議論も重ねられたけど、結局、作者のGuido氏が
「解けないパズル(unsolvable puzzle)」と匙を投げたという残念な
結論のまま現在に至っているという共通認識があります

https://mevius.5ch.net/test/read.cgi/tech/1415419907/197/

やっぱり日本在住の Pythonista がガラパゴスなのは昔から同じですね

mevius.2ch.net/test/read.cgi/tech/1345123070/70-71/

688 名前:デフォルトの名無しさん mailto:sage [2018/01/17(水) 22:01:34.45 ID:jFkmgXk5.net]
python のラムダの使い道ってほとんどがソートに渡す比較関数くらいだと思う。

689 名前:デフォルトの名無しさん mailto:sage [2018/01/17(水) 22:47:35.07 ID:I48MtSJA.net]
世界的な認識のソースでも貼ってそうな場所にあるリンクが2chの別スレ



690 名前:ヨのリンクで困惑している []
[ここ壊れてます]

691 名前:デフォルトの名無しさん mailto:sage [2018/01/18(木) 05:27:53.26 ID:zo82h2qj.net]
Pythonあまり知らんけど、上のリンク見てて思ったのは、

1. 自分で高階関数を作れない(ラムダ式が利用できる関数が少ないと書いてある)
2. where節みたいなスコープの限定されたローカルな書き捨ての関数を用意する文法がない(読みにくいでしょ?とか書いてある)

この辺の縛りがあるからでないかい?

692 名前:デフォルトの名無しさん mailto:sage [2018/01/18(木) 09:22:04.51 ID:AIUmpkCu.net]
ごめん、>>671は寝ぼけて適当なこと書いたぽいから、無視しといて。

693 名前:デフォルトの名無しさん mailto:sage [2018/01/18(木) 21:25:08.77 ID:oG29giIx.net]
関数型っのがどういう定義かは分からないけれど、
HaskellとPythonを比べると、パターンマッチが
なくて再帰が書きにくいと感じたり、
基本破壊的だから、わざわざ非破壊で書くのが
めんどくさいと感じる。

内包表記は似ていて良いかな。

694 名前:デフォルトの名無しさん mailto:sage [2018/01/19(金) 19:12:49.43 ID:ih0w0grk.net]
Schemeのマクロ定義でパターンマッチを使えるがすごい不人気だったよ
おそらくパターンマッチのアルゴリズムが透けて見えないと人気出ないよ

695 名前:デフォルトの名無しさん [2018/01/20(土) 08:12:20.84 ID:hxs4OOGh.net]
うちのプログラマは大半がコトリンに移ったのでわしらラストを使うことにした

696 名前:デフォルトの名無しさん mailto:sage [2018/01/20(土) 15:07:10.20 ID:TIRmwaq4.net]
イムータムルのない言語は全て糞

697 名前:デフォルトの名無しさん mailto:sage [2018/01/20(土) 16:54:37.17 ID:TgcSeHcI.net]
関数型言語のパターンマッチって理論的な裏付けってあるんだろうか

698 名前:デフォルトの名無しさん mailto:sage [2018/01/20(土) 17:28:38.29 ID:JZVVUERo.net]
理論的てのが分からんけど、例えばリストを引数にとる関数なら、
空リストとSuccの場合を定義しとけば、帰納的に任意のリストについての適用結果が求められる、
とかそういうの?

699 名前:デフォルトの名無しさん mailto:sage [2018/01/20(土) 18:09:55.87 ID:grrE5KFF.net]
評価順序とかモチっと低いレイヤーでの動作規定ってことでないの?
ABIレベルでのさ。



700 名前:デフォルトの名無しさん mailto:sage [2018/01/20(土) 18:18:48.11 ID:JZVVUERo.net]
もしかして、あ氏?
だとしたら、お久しぶりです。

701 名前:デフォルトの名無しさん mailto:sage [2018/01/20(土) 20:48:41.14 ID:I76mD3dR.net]
>>678
そうそうそういうの
関数型ってって原理的にはあらゆるものが原始的な計算原理に還元できるものって理解してんだけど
パターンマッチはそういう裏付けあるのかなって疑問

702 名前:デフォルトの名無しさん mailto:sage [2018/01/20(土) 20:52:07.08 ID:4frS9VE4.net]
>>681
単なる場合分けだから裏付けもクソもない

703 名前:デフォルトの名無しさん mailto:sage [2018/01/20(土) 21:02:06.68 ID:4frS9VE4.net]
補足
パターンマッチは場合分け、つまり条件分岐そのものであり、
通常はそれ自体が原始的な計算原理の一つとして定義されるってことだぞ
だから裏付けなんぞ必要ない

704 名前:デフォルトの名無しさん mailto:sage [2018/01/20(土) 21:09:03.16 ID:zaN+pP6E.net]
学術的なことは分からないけども、静的型のパターンマッチは網羅性を
コンパイル時にチェックしてくれることが多くて
それが凄くありがたい

動的型言語にパターンマッチを持って来ても上手くいかないのは、
上のメリットが得られないからでは?

705 名前:デフォルトの名無しさん mailto:sage [2018/01/20(土) 21:28:06.72 ID:L/NwSAXQ.net]
>>681
上の人が書いてるように、ただの場合分けだと思う。ただ、>>684の人も書いてますが、本当に網羅しているか、を考えると理論が出てくる気がする。

定義域の型が、型コンストラクタで定義されてれば、そいつら全てについて場合分けする、
で、そいつらも型コンストラクタが入ってれば、、てのを続けていけば、全てについて網羅的な場合分けが出来る。

言葉だとわかりにくいですが、Agdaの動画を見るといいと思います。

定理を証明するのに、上の場合分けを考慮する必要があって(漏れたら困りますよね?)、
実際EmacsのAgdaモードだとそういうのを勝手に展開してくれるコマンドがあり、
ゲーム感覚で証明してく感じ。

で、カリーハワード対応を考えると、関数の定義も結局は同じで、実際同じコマンドを使って進めてくことになる。その流れでやれば、後で漏れてる云々は問題にならない。

こんな感じですかね?

706 名前:デフォルトの名無しさん mailto:sage [2018/01/20(土) 22:20:04.44 ID:4frS9VE4.net]
>>684
動的言語はデータクラスをほとんど使わず、辞書や配列を生で扱うことが多いからじゃないかな
型で分岐するケースがそもそも少ないし、when Some a みたいにパターンマッチと同時に要素を抽出したくても抽出の仕方が定義されていない

707 名前:デフォルトの名無しさん mailto:sage [2018/01/20(土) 23:10:12.11 ID:fmAc02d6.net]
>>680
俺は最近書いてないぞ。
つまらんからな。

708 名前:デフォルトの名無しさん mailto:sage [2018/01/21(日) 00:17:54.03 ID:DgAEmkFM.net]
パターンマッチで変数にバインドするところとかあれってどう還元できんですかね?

709 名前:デフォルトの名無しさん mailto:sage [2018/01/21(日) 01:01:46.61 ID:PzzAcO+j.net]
・頭文字が大文字ならコンストラクタ (引数0個以上)
・そうでなければ変数 (引数なし)
少なくともこの仕様を守れば動的言語でもパターンマッチできるよ



710 名前:デフォルトの名無しさん mailto:sage [2018/01/21(日) 01:02:49.35 ID:2R9CDqfY.net]
難しく考える必要はない
タプルは関連する複数の値をまとめて扱ってるだけ
レコードはタプルに型名というラベル値が付いただけ
型によるパターンマッチはその型名で条件分岐してるだけ
変数へのバインドはタプルの特定の要素の値にに別名を付けただけ

711 名前:デフォルトの名無しさん mailto:sage [2018/01/21(日) 01:37:10.13 ID:kGWmn81W.net]
つまり・・・どういうことだってばよ?

712 名前:デフォルトの名無しさん mailto:sage [2018/01/21(日) 06:13:50.88 ID:pnNTWTyQ.net]
>>684
動的言語どうこうではなく、オブジェクト指向の情報隠蔽とパターンマッチの相性が悪い。
アクセス制御をかいくぐってデータ構造にマッチさせるぐらいなら
オブジェクトを受け取ってからメソッド叩いたり条件分岐したほうがマシ。

713 名前:デフォルトの名無しさん mailto:sage [2018/01/21(日) 10:42:33.20 ID:kGWmn81W.net]
>>692
SuccessとFailをパターンマイッチングするんじゃなくて
class Success implements Resultと
class Fail implements Resultみたいにしろ
ってこと?

714 名前:デフォルトの名無しさん mailto:sage [2018/01/21(日) 11:06:54.37 ID:I3ORKf0i.net]
本物のオブジェクト指向はTrueクラスとFalseクラスを使う
Bool &True::ifTrue(Block f) {f(); return this;}
Bool &True::ifFalse(Block f) {return this;}
Bool &False::ifTrue(Block f) {return this;}
Bool &False::ifFalse(Block f) {f(); return this;}

715 名前:デフォルトの名無しさん mailto:sage [2018/01/21(日) 11:22:08.22 ID:1jbGMztY.net]
こういうときオブジェクト指向ってアホの自慰っぽいなと思う

716 名前:デフォルトの名無しさん mailto:sage [2018/01/21(日) 12:05:31.75 ID:kGWmn81W.net]
全てのif文を消し去るのです

717 名前:デフォルトの名無しさん mailto:sage [2018/01/21(日) 13:37:58.84 ID:I3ORKf0i.net]
その次の世代はtemplateを使いvirtualを消し去る
だからifが復活

718 名前:デフォルトの名無しさん mailto:sage [2018/01/21(日) 14:30:35.35 ID:kGWmn81W.net]
>>697
はいサイクリングマチカル複雑度増加

719 名前:デフォルトの名無しさん mailto:sage [2018/01/21(日) 23:54:04.18 ID:U0xKcFDq.net]
多次元配列と第一級関数をサポートしている静的言語ってなんかあったっけ?



720 名前:デフォルトの名無しさん mailto:sage [2018/01/22(月) 00:18:19.80 ID:WYTiMnwL.net]
C#

721 名前:デフォルトの名無しさん mailto:sage [2018/01/22(月) 00:18:46.23 ID:7qCCLtD1.net]
サポートするの定義が曖昧すぎる。

722 名前:デフォルトの名無しさん mailto:sage [2018/01/22(月) 00:28:37.30 ID:+fzK3Dih.net]
そうかC#があったか。ありがとナス��

723 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 05:54:32.12 ID:V1qhcEkf.net]
>>699
それサポートしてない言語って何があるの?

724 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 10:06:55.58 ID:Gs9CrZMb.net]
>>703
多次元配列サポートしてる言語なんて他にはFortran, R, Python, Julia, Racketくらいしか思いつかない
第一級関数は最近増えて来てるけどFortranみたいな古い言語はだいたいサポートしてない

725 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 10:13:41.67 ID:apJvYiuW.net]
>>704
多次元配列サポートすると何の役に立つの?

726 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 10:30:59.45 ID:Gs9CrZMb.net]
>>705
行列計算とか、その他数値的な解析がめちゃくちゃ書きやすくなる。
いわゆる数値解析や流行りの機械学習からゲーム開発まで、くまなくアルゴリズムが書きやすくなるぜ

727 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 10:44:28.83 ID:tYoa+WgF.net]
サポートてのは、数値計算でよく使う引数が2の関数と、そういう関数とと中置演算子との間の糖衣構文が標準でオーバーロード気味に存在するってことですかね?

728 名前:702 mailto:sage [2018/01/24(水) 10:59:06.24 ID:J/V7RjN6.net]
>>706
Racket挙げてるし中置演算子は重要度低いけど、よく使う関数はチューニングされたものを置いておいて欲しいな

Numpyだって標準ライブラリじゃないし、最悪標準ライブラリじゃなくてもいいけど、「数値計算するなら常識的に考えてこれ」という一つに定まっていてほしいな。
あるライブラリはEigenに依存しているが他のあるライブラリはublasに依存してるみたいなのはやめて欲しい

729 名前:702 mailto:sage [2018/01/24(水) 10:59:37.34 ID:J/V7RjN6.net]
間違えた。
安価は>>707



730 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 11:04:32.91 ID:RrrJ1nlK.net]
>>704
良かった。言語として普通にあるもんだと思ってたから
無いことを想像したこともなかった。

731 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 11:09:12.83 ID:J/V7RjN6.net]
第一級関数のことかな?
多次元配列はレアだよ

732 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 11:24:52.80 ID:veFPPCA3.net]
Pythonは多次元インデックスをオーバーロードできるけど組み込みの多次元配列は無い
PythonレベルのサポートでいいならKotlinも同等だね

733 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 11:58:57.43 ID:apJvYiuW.net]
そういえばExcel方眼紙もある意味二次元をサポートしてるな
Excelの異常な人気の原因はそこか

734 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 19:16:29.18 ID:CULWU8L2.net]
義務教育に向けて親もプログラミングやっときたい、どれが良い?
Pythonとかよく目にするけど、と聞かれた。

どう答える?

735 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 19:30:37.89 ID:D4W5cGwF.net]
相手が挙げて来た言語のメリットを適当に言ってそのまま勧めれば良い
親が教えるためにやる言語なんて何でも良いし、違いがわかる頃には子供は卒業してる
選ぶのも面倒くさい

736 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 19:50:08.15 ID:N2tfbGLJ.net]
>>714
まずはExcelのVLOOKUPを使いこなせるようになれ
次はVBAをやれ
でいいよ
教える側が何の役に立つのか分からないまま人に教えるなんて全く何の意味もない

737 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 20:27:01.77 ID:0VEJNLN9.net]
>>714
教育ママに特定の言語やらせて認識を固定させんな、むしろ子供に害悪だろ
数学パズルでもやらせとけ

738 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 20:29:15.40 ID:c9tmIiAF.net]
子供にはScratchをやらせることになるらしいから、親もScratchをやればいいじゃん

739 名前: mailto:sage [2018/01/24(水) 20:39:13.05 ID:m3QL6muE.net]
>>714
やはり再帰的思考が勘所かと考えていますので、scheme をお勧めしようかと思っています



740 名前:デフォルトの名無しさん mailto:sage [2018/01/25(木) 01:24:29.68 ID:mR4+Kf/H.net]
>>714
Haskel
関数型を理解できないバカはプログラミングする資格も意味もなし
保守困難なウンコをひり出すだけのゴミは消えろ

と伝えてくれ

741 名前:デフォルトの名無しさん mailto:sage [2018/01/25(木) 02:32:13.16 ID:uqKgsWDy.net]
>>720
Haskellの綴りも正しく書けない池沼は文章を書く資格も意味もなし
無意味なウンコをひり出すだけのゴミは消えろ

742 名前:デフォルトの名無しさん mailto:sage [2018/01/25(木) 12:45:10.82 ID:R+9hEl/X.net]
>>713
excelは関数型言語だ、と言う人々も居るくらいだからな(笑)

743 名前:デフォルトの名無しさん mailto:sage [2018/01/25(木) 14:09:07.50 ID:ArcwQAgj.net]
Excelはビ

744 名前:Wュアルリアクティブプログラミング環境と言えばまあ間違ってはないんだけど
二次元配列以外の構造の扱いが難しすぎて、学習用にしてしまうと
他のデータ構造を学ぶ機会がないまま何でも二次元配列に落としこむ悪癖がついてしまいそうで
[]
[ここ壊れてます]

745 名前:デフォルトの名無しさん mailto:sage [2018/01/25(木) 14:31:25.81 ID:NsBjyJ7C.net]
>>723
人間が無理なく扱えるデータは二次元の表が限界なんだよ
考えてみろ
お前がよく使う構造体やクラスのリストや辞書は実質二次元の表だろ
オブジェクト指向では直接深く階層掘ったアクセスは嫌われるだろ?
なんだかんだ格好いい理屈を付けても、結局人間にはExcelのデータ構造が馴染むんだよ

746 名前:デフォルトの名無しさん mailto:sage [2018/01/25(木) 14:38:39.64 ID:ArcwQAgj.net]
>>724
再帰的 or 多相な構造どうすんのよ、ってのはまあExcelの用途では滅多にないとしても
単純に三次元配列が欲しい時もあるし
Sheet増やしだすと急に面倒くさくなるんだよなあ

747 名前:デフォルトの名無しさん mailto:sage [2018/01/25(木) 14:41:15.02 ID:NsBjyJ7C.net]
>>725
再帰なんか同じ表の行番号を持たせるだけだろ

748 名前:デフォルトの名無しさん mailto:sage [2018/01/25(木) 17:16:48.70 ID:sWzOL5fe.net]
3次元以上を汎用に使おうとするとSQLみたいだったり tensor flow だったり
かなりめんどくさいインターフェイスになるのはしゃーない。

749 名前:デフォルトの名無しさん mailto:sage [2018/01/25(木) 17:55:47.33 ID:R+9hEl/X.net]
まぁ、Haskellで作られたものより、Excelで作られたモノのほうが多いしな(笑)
純関数型(笑)



750 名前:デフォルトの名無しさん mailto:sage [2018/01/25(木) 20:01:29.48 ID:0RuyxExF.net]
>>721
このようなtypoを防ぐためにも強い型付けが必要なんだよ

751 名前: mailto:sage [2018/01/25(木) 22:05:59.50 ID:LX8HI+AO.net]
>>729
変数宣言(型宣言ではない)だけでいいと思うが、それだけでもいいから、事前チェックを可能にしてほしいなあ
python のバイトコンパイル機能は変数名をチェックしてくれるのでしょうか?

752 名前:デフォルトの名無しさん mailto:sage [2018/01/25(木) 22:42:04.62 ID:uaT/xfzY.net]
flake8を使えば

753 名前:デフォルトの名無しさん mailto:sage [2018/01/26(金) 01:29:50.06 ID:2fuI1BST.net]
headerをincludeしてチェックする言語は簡単だけど
コンパイル済みのライブラリの中身を見て名前をチェックする言語は大変そうだ
コンパイル後も情報を全部残しておかないといけない

754 名前:デフォルトの名無しさん mailto:sage [2018/01/26(金) 16:21:27.98 ID:Zz9xFin2.net]
変数宣言を省略できる機能(スペルミスが検出できない)と、型付けは別だよね?
昔のFortranやBASICは変数はいきなり使っていいけど名前で型が決まる静的型だったし

755 名前:デフォルトの名無しさん mailto:sage [2018/01/26(金) 16:36:58.42 ID:G7ZCkEjP.net]
宣言がない変数は、省略ではなく他のファイルで宣言している可能性がある
そのファイルをincludeするか、全てのファイルを検索する必要がある

756 名前:デフォルトの名無しさん mailto:sage [2018/01/27(土) 13:04:44.52 ID:7uBpZq93.net]
レベル下がったなぁ

757 名前:デフォルトの名無しさん mailto:sage [2018/01/27(土) 14:31:34.34 ID:fjEoblON.net]
下がってから言っても遅いな
レベル高かった頃に、なにこれ高いって評価できる奴が勝つ

758 名前:デフォルトの名無しさん mailto:sage [2018/01/27(土) 14:40:54.49 ID:7K+kXdeY.net]
まぁ、その時から無駄なつっかかりしかできない奴ばっかだったし仕方ないんだろうな。
今更option explicitじみた話に戻るとは。

759 名前:デフォルトの名無しさん mailto:sage [2018/01/27(土) 22:13:06.80 ID:RNgYnDaT.net]
>>736
天井Lみたいなこと言うな



760 名前:デフォルトの名無しさん mailto:sage [2018/01/28(日) 15:51:11.09 ID:CWAHXL7y.net]
自分で書いたコードが三ヵ月後に読めないっていうやつは素人
プロは三ヵ月後の記憶喪失を織り込んでる

761 名前:デフォルトの名無しさん mailto:sage [2018/01/28(日) 23:40:40.83 ID:ZERk9zo5.net]
保守受注独占するために汚くするんやぞ

762 名前:デフォルトの名無しさん mailto:sage [2018/01/29(月) 22:16:09.55 ID:4480+Jxl.net]
そういう足を引っ張る人には

763 名前:ロ守受注の代わりに
ベーシックインカムをあげたらいいんじゃないかと言われている
足を引っ張る悪人より善良な怠け者の方がいい
[]
[ここ壊れてます]

764 名前:デフォルトの名無しさん mailto:sage [2018/01/30(火) 01:45:49.07 ID:ZcZnTiUX.net]
しょーもない理想論はいらんねん
こっちはきっちり世間様に仕事回してんねんで
頭の悪いガキは黙っとき

765 名前:デフォルトの名無しさん mailto:sage [2018/01/30(火) 01:47:45.52 ID:ZcZnTiUX.net]
ソースがきれい → オタクの自己満足
ソースがきたない → 工数取れて残業代も出る、みんなニッコリ

これが現実やで

766 名前:デフォルトの名無しさん mailto:sage [2018/01/30(火) 10:52:36.78 ID:2Eamtv1n.net]
そんなことしてるから他国の技術に駆逐されるんだよ。。

767 名前:デフォルトの名無しさん mailto:sage [2018/01/30(火) 14:43:26.40 ID:xaKIrtPB.net]
その理屈だと、まるで必要もない次世代言語で書くやつみたいだな。
汚いソース書くやつは。

768 名前:デフォルトの名無しさん mailto:sage [2018/01/31(水) 23:31:38.87 ID:Rp2Mauf0.net]
次世代言語で書くだけならいいんだよ
故意に汚くするとはいってないから、改善する可能性がある
故意とただの偶然とでは罪の重さが違う

769 名前:デフォルトの名無しさん mailto:sage [2018/02/01(木) 08:43:21.74 ID:AVafL46K.net]
故意にその言語で書いてる以上、もう偶然でもなんでもないだろ。

ちゃんとその言語のメリット、デメリット含めて布教してから使うべきだと思うが。



770 名前:デフォルトの名無しさん mailto:sage [2018/02/01(木) 11:05:23.20 ID:niJJgdbA.net]
ちゃんとする可能性があるならいい
その可能性をわざと排除するなら悪質
最初からそう言ってるんだろ

771 名前:デフォルトの名無しさん mailto:sage [2018/02/01(木) 13:10:20.37 ID:Bj9uVLC2.net]
まあ大体がカスな開発体制に問題があるところに
新しい言語なら問題解決できる!
とかめちゃくちゃな広告が出回って導入、失敗っつークソパターンがここ20,30年の間繰り返されてるわけだからな。

772 名前:デフォルトの名無しさん mailto:sage [2018/02/01(木) 15:37:35.21 ID:suqSmKNo.net]
Elm はどう?
ここ見てたら興味出てきた
https://nulab-inc.com/ja/blog/typetalk/elm-introduction-tutorial/

773 名前:デフォルトの名無しさん mailto:sage [2018/02/03(土) 02:04:53.95 ID:VC8JN1NA.net]
JSに依存するのはいいがGHCがな
もしもF#がGHCに依存していたら面倒臭いじゃないか

774 名前:デフォルトの名無しさん mailto:sage [2018/02/12(月) 17:15:27.49 ID:NkUQn5xe.net]
arison.jp/wordpress/wp-content/project_comedy_l.gif

775 名前:デフォルトの名無しさん mailto:sage [2018/02/12(月) 17:16:33.56 ID:NkUQn5xe.net]
i.imgur.com/WlyRTkz.jpg

776 名前:デフォルトの名無しさん [2018/02/14(水) 20:27:03.68 ID:SwEfqZxS.net]
ASM.net

777 名前:デフォルトの名無しさん [2018/02/15(木) 23:40:47.93 ID:yLr3787F.net]
clojure やれよ?

778 名前:デフォルトの名無しさん [2018/02/16(金) 00:35:29.80 ID:JK/MGoqE.net]
気の科学 ★朝は気合いで起きる★ 雑学


https://youtu.be/E6lvPide0JA

779 名前:デフォルトの名無しさん [2018/02/18(日) 01:30:59.56 ID:5P/pcqvC.net]
>753
これ初めて見た



780 名前:デフォルトの名無しさん mailto:sage [2018/02/18(日) 15:38:35.68 ID:CW1UlThv.net]
なんかTypeScriptのジェネリクスがどんどん変態じみてきたんだけど、ジェネリクスってこういうもんなの?
これならgoに乗んなくていいなぁ

781 名前:デフォルトの名無しさん mailto:sage [2018/02/18(日) 15:51:20.83 ID:AYB00j0e.net]
>>758
欲求は際限なく広がって、そしてゴミの塊みたいな仕様になるもんだ。
ずっと前からTypeScriptは手段と目的をどっかで履き違えたと言ってたが、最近シャレになってない。

Goの割り切りは納得に値するよ。あったら便利なのは認めるけど。
Cppのtemplateみたいに、それだけでチューリング完全になってしまう前に、最初から入れない、やるならgenerateで別立てで勝手にやれと言う割り切りしたのは英断だと思う。

782 名前:デフォルトの名無しさん mailto:sage [2018/02/18(日) 17:25:12.30 ]
[ここ壊れてます]

783 名前: ID:CW1UlThv.net mailto: >>759
ジェネリクス関連のエラーメッセージは本当に意味がわかんないよね。
ユーザー視点ではimmutable.jsとかでも補完が効くのは便利になっていいんだけど、
いざ型関連エラーが出た時にエラーメッセージから原因を予測するのが困難なんだよね。

rustもあんな感じなの?
正直TypeScriptはエラーメッセージをわかりやすくする方向に軌道修正頼んます。
[]
[ここ壊れてます]

784 名前:デフォルトの名無しさん mailto:sage [2018/02/18(日) 18:16:19.28 ID:WV1p31YW.net]
>>760
変性注釈とか、やりたいことはわかるし、なぜ必要かもわかるが、一方でjsとどんどん乖離していって、jsのプロジェクトと繋げるときに結局any使うことになったり、グダグダも良いところだと思う。
TSだけでもの作るんなら、良いと思うが、そうなるとJavaScriptにコンパイルできる必要もなく、逆に早くwasmなんかに対応しろとか、ネイティブにTSの良いところを保ったまま実行できる環境出せとか、色々文句が言いたいけど、
全部ほったらかしにされてるからな。
ずーっと言語の改良してる。

785 名前:デフォルトの名無しさん mailto:sage [2018/02/18(日) 18:37:05.69 ID:Ct2k6iqr.net]
一方的にjsのライブラリを使用する分には問題ないだろうし、その資産にただ乗りできることこそ
jsとの相互運用性を維持する理由だろう。
言語仕様としては奇麗だけどライブラリが揃わなくて実用性がいまいち、みたいになるよりは。

786 名前:デフォルトの名無しさん mailto:sage [2018/02/18(日) 19:25:55.39 ID:WV1p31YW.net]
>>762
jsのライブラリ側が自由な感じのライブラリだと定義ファイルが無茶苦茶ややこしいものになったりするし、なかなか微妙だけどな。
ライブラリが揃わなくてイマイチ、は確かに無いか。ほとんどタダ乗り出来るからなぁ。

787 名前:デフォルトの名無しさん mailto:sage [2018/02/18(日) 22:15:41.08 ID:+Qsqi9wm.net]
>>763
せめて関数のオーバーロード定義みたいなことが出来ればコードが整理しやすくなると思うんだよね。

つまり
export function h(name, attributes /*, ...rest*/) {
// 省略
return typeof name === "function"
? name(attributes || {}, children)
: {
nodeName: name,
attributes: attributes || {},
children: children,
key: attributes && attributes.key
}
}
ってあった時に
export function h(name: string, attributes:obj /*, ...rest*/) {}
export function h(nextFunc: (attributes:obj)=>void, attributes:obj /*, ...rest*/) {}
みたく出来れば型定義自体も綺麗にできる気がする。
でも今のTypeScriptってこれできんよね。

788 名前:デフォルトの名無しさん mailto:sage [2018/02/18(日) 22:19:58.51 ID:+Qsqi9wm.net]
あと詳しい人に聞きたいんだけどやっぱりジェネリクス一つとっても
言語によって全然仕様が違うのかね?

だとしたらGoはコードジェネレートと組み合わせも考慮したちょうどいい便利さの
ジェネリクスというのも考えていて実装を見送ってるのかも。

でもGoにはそれ以前にnull安全を実装してほしい気がするが。
レシーバがnullの可能性があったりnull周りに罠があるんだよねGoは

789 名前:デフォルトの名無しさん mailto:sage [2018/02/18(日) 22:47:38.32 ID:Ct2k6iqr.net]
>>764
オーバーロードってまさにそんな感じでできた気がするが。



790 名前:デフォルトの名無しさん mailto:sage [2018/02/18(日) 23:30:02.62 ID:/vdt0GUK.net]
ジェネリクスは途中から入れるようなもんじゃないと思うがね
型自体はフラットな構造で、階層構造はHaskellみたいに型の境界(型クラス)として作ると綺麗にまとまりやすい
型≒クラスで、型自体に階層構造を作ってるような言語だと、ジェネリクスの使い方が面倒よ
Javaの<T extends ClassFoo>とかC#のin/outとかは元の型システムに合わせて入れないといけない面倒な部分

TSの元々の型システムはよく知らないけど、ダックタイピングできるならジェネリクス入れる必要がないし、
クラスがあったり型に階層構造があるなら面倒なのはしょうがない

791 名前:デフォルトの名無しさん mailto:sage [2018/02/18(日) 23:45:12.91 ID:LabDqOSD.net]
むしろJavaScriptさんが悔い改めるべきではないか?

792 名前:デフォルトの名無しさん mailto:sage [2018/02/18(日) 23:52:24.01 ID:AYB00j0e.net]
Goでレシーバがnilになれるのは案外便利だぞ。
あれは罠ではない。

型や型クラスに階層構造持つのはいつでも便利なわけではないと言うか、結局コンパイラ都合を押し付けられてるだけな気がするけどな。
その辺、後出しジャンケンできるGoのinterfaceの方が楽な事が多い。

793 名前:デフォルトの名無しさん mailto:sage [2018/02/19(月) 00:07:59.55 ID:B+b1Q4Nq.net]
ジェネリクスは、コード上別の箇所に出現する型Aと型Bが同一であることを明示することにより、型情報の損失を避けるために使うんだよ
ダックタイピングは関係ない
C++やHaskellをやってる人は>>767みたいに混同しがちだけど、JavaやC#だと多態とGenericsをわりとはっきり区別する文化がある
TypeScriptのGenericsも同様に、型の同一性を示すマーカーとしての性格が強いね

794 名前:デフォルトの名無しさん mailto:sage [2018/02/19(月) 01:32:35.15 ID:1YgzgKOj.net]
「型が同一である」の定義がわからない
犬型と猫型は異なるともいえるし同じ動物型ともいえる
この辺の仕様を捨ててからジェネリクスを追加するのが基本

もし両方入れてゴミ言語ができたら
捨てられないのが原因ともいえるし追加したのが原因ともいえる

795 名前:デフォルトの名無しさん mailto:sage [2018/02/19(月) 01:40:02.40 ID:U+qaWnxw.net]
それに対して型の制限を型でなくしたのがHaskellの型クラスやRustのtraitだし、型を分解する事で非同一性を示すのが多くの言語にあるパターンマッチじゃないの

796 名前:デフォルトの名無しさん mailto:sage [2018/02/19(月) 07:49:12.96 ID:HJ1z9rHd.net]
型階層のある言語でアドホックに型クラスをやりたいなら別途Comparableみたいなインスタンスを受け取るようにするだけだろ
ジェネリクスと区別するっていうのは端的にはそういうことで、実際に引数として明確に分かれることになる
JavaやC#, TSだと型引数に制約を付けることで中途半端に似たことができてしまうのが微妙に直行してなくてダサいけど、それは基本的にあまり使われない機能

797 名前:771 mailto:sage [2018/02/19(月) 07:54:42.45 ID:HJ1z9rHd.net]
すまんComparatorの間違いだ
補足しとくと、直行してないというのは例えば具体的には <T extends Comparable> と (T obj, Comparator<T> comparator) みたいなののことな

798 名前:デフォルトの名無しさん mailto:sage [2018/02/19(月) 09:53:32.16 ID:isUwiiOH.net]
>>769
便利さを教えてほしいな。
純粋なnilと型があるけど中味はnilって正直わかりづらくないかな。
reflectionのお勉強をしないと理解できない。

Goのインターフェースは後出しジャンケンってのは面白いな。パクらせてもらおう

799 名前:デフォルトの名無しさん mailto:sage [2018/02/19(月) 09:58:27.89 ID:isUwiiOH.net]
>>770
このへん詳しく知りたいな。
C++とかHaskellのジェネリクスってTypeScriptとかと違うの?



800 名前:デフォルトの名無しさん mailto:sage [2018/02/19(月) 12:10:56.39 ID:BdVjRyEG.net]
>>775
それがnilでも、メソッドチェーンできる。
だから、errを伝搬するのに便利。
末尾のDoなんかで、本当の結果,errorとして取り出せば良いよ。
いちいち失敗構造体なんぞ書かんでも良い。
Nullable的に使える。

どっちかというと下回り書いてるときに便利かも。

801 名前:デフォルトの名無しさん mailto:sage [2018/02/19(月) 12:44:49.19 ID:g9K5jJLr.net]
>>776
C++はテンプレートを使ってダックタイピングができる
Haskellはアドホック多相を使って>>774でいうcomparator引数に相当する要求をTの型制約に含められる

802 名前:デフォルトの名無しさん mailto:sage [2018/02/19(月) 14:19:03.08 ID:x9oxab6h.net]
>>777
なんかサンプルある?とょっとイメージがつかめない。nilでメソッドチェーンができるのはわかるけど、それがメリットになるかな?
結局nilを、返してるメソッドがエラー状態な訳で、そいつが暫定的な値を返せばメソッドチェーンはできるよね。

803 名前:デフォルトの名無しさん mailto:sage [2018/02/19(月) 15:23:40.87 ID:FUvFB9Jm.net]
ハスケルのメイビーみたいなことだろうな。

804 名前:デフォルトの名無しさん mailto:sage [2018/02/19(月) 16:10:57.83 ID:BdVjRyEG.net]
>>779
暫定的なオブジェクトに、レシーバ書いてくの?
Hoge().Get().ReadAll().AsString()
で、毎度nilチェックとか暫定レスポンスのオブジェクト置いてたら非効率じゃん。
ToXXX以外の関数が、Hoge()の返す型やinterfaceを返せば楽じゃない?
Getに失敗したかReadAllに失敗したかが必要ならまた別だろうけど、だいたいひとからげにして問題ない事の方が多い。

805 名前:デフォルトの名無しさん mailto:sage [2018/02/19(月) 18:59:46.08 ID:esiJbF27.net]
>>781
error情報を最初から諦めるってことね。
とにかく最終結果がnilだからメソッドチェーンのどっかで失敗してんだろーなー。くらいの感じなのか。

標準ライブラリでそういう実装してるのあるかな?reflect.Valueとかかな。
あれメソッドチェーンできる代わりに不正なメソッド操作するとpanicしててなかなかしんどい。

806 名前:デフォルトの名無しさん mailto:sage [2018/02/19(月) 19:03:08.21 ID:BdVjRyEG.net]
>>782
ちょっと違うけど、protobufあたりはもう少し有意義に使ってたな。

807 名前:デフォルトの名無しさん mailto:sage [2018/02/19(月) 19:14:13.94 ID:esiJbF27.net]
流れをぶった切って悪いけどTypeScriptはさすがMS。開発リソースたっぷり。という余裕を感じる。vscodeと一緒に毎週くらいの勢いでアップデート繰り返してる。

ジェネリクスの気持ち悪さもエラーメッセージがわかりやすく進化する感じで直してくれれば全然良いので頑張ってもらいたい。

808 名前:デフォルトの名無しさん mailto:sage [2018/02/19(月) 19:17:59.63 ID:u7QgBPEb.net]
goのことは全然知らないんだが、型付きnilとやらは実行時ディスパッチしてくれて
その型のメソッドにnil引数付けてやってくるという理解でOK?

809 名前:デフォルトの名無しさん mailto:sage [2018/02/19(月) 20:22:12.51 ID:BwjO59+V.net]
まずメソッドではなくて、ちょっと変わった構文のの関数ぐらいに受け取ったほうが良いかも。
Foo.Bar()は
Bar(Foo)と、
Foo.Bar(a,b)

Bar(Foo,a,b)と同じぐらいの意味。
だからFooがnilでも(ポインタに対してのレシーバであれば)呼べる。



810 名前:デフォルトの名無しさん mailto:sage [2018/02/19(月) 23:02:26.53 ID:cDVYUoQ2.net]
やはりメソッドチェーンは何回も値 (nil) を返すのが気になる

Haskellでは
((Nothing >>= f) >>= g) >>= h
こうするとNothingのパターンマッチを3回するのに対し
Nothing >>= (\ y -> f y >>= (\ z -> g z >>= h))
これなら1回だけ

811 名前:デフォルトの名無しさん mailto:sage [2018/02/19(月) 23:09:11.19 ID:g9K5jJLr.net]
>>787
記号がキモい
見てて痒くなる

812 名前:デフォルトの名無しさん mailto:sage [2018/02/19(月) 23:41:51.38 ID:cDVYUoQ2.net]
記号がなくても右結合がきもい
h(g(f(x))は右結合
x.f().g().h()は左結合

813 名前:デフォルトの名無しさん mailto:sage [2018/02/20(火) 00:33:09.75 ID:uyRcVPMC.net]
こんなのをありがたがるくらいならCommonLisp書くわ。

814 名前:デフォルトの名無しさん mailto:sage [2018/02/20(火) 01:53:25.83 ID:IMJo1v/e.net]
その気持ちは分からんでもない

815 名前:デフォルトの名無しさん mailto:sage [2018/02/20(火) 05:20:12.69 ID:o3fs2Zzy.net]
goの場合nilの場合分けを関数の中でしなくちゃいけないわけだろ。
それが嫌だからモナドができたわけだからな。
メソッドチェーンも嫌だからasyn/awaitとかdo構文が出来たわけで
全部が劣っているな。

816 名前:デフォルトの名無しさん mailto:sage [2018/02/20(火) 17:49:07.93 ID:uyRcVPMC.net]
秀でるのと、こねくりまわすのは違うからな。
原理上、変態構文と純でも何でもないモナドで出来るとか抜かすぐらいなら、nilチェックするほうがマシ。

817 名前:デフォルトの名無しさん mailto:sage [2018/02/20(火) 18:26:18.82 ID:SK024iMW.net]
コンパイラはモナドをコンパイルエラーにしない
一部の人間は忖度してモナドを自主規制する
コンパイラと人間はどっちが正しいかというだけの話

818 名前:デフォルトの名無しさん mailto:sage [2018/02/21(水) 18:12:35.61 ID:WKR1veUF.net]
機械と人間の両方に指図されるのは不自由過ぎる
両方採用するのは過激派
どっちか一つだけにした方が中道という可能性がある

819 名前:デフォルトの名無しさん mailto:sage [2018/02/21(水) 19:30:26.52 ID:BxLkRHyS.net]
goにいまさらnil安全は無理かな?
python3並の断絶が起きちゃう?



820 名前:デフォルトの名無しさん mailto:sage [2018/02/21(水) 20:32:34.11 ID:qR5uNCei.net]
そもそもnil安全にする必要もない。
その変数に型的にnilが入ることが無かろうがあろうが、
他の言語のnullとはちと違うレベルでnilを取り扱える。
タプルで返す前提だと大した問題には無いと言うか。
他の言語は、nullに本来のその型が持つ意味以上の意味を与えてしまうからわざわざnull安全にしないといかんのでは?

821 名前:デフォルトの名無しさん mailto:sage [2018/02/22(木) 02:26:39.63 ID:zGB/N5H/.net]
タプルで値が返せるから必要ないってただの理屈の上の話で、エラーチェック漏れをおこしたり、エラーチェックしててもnilの入った変数を次の処理に引き継ぐミスは起こり得るだろ。それを防ぐのがnil安全なわけで。

822 名前:デフォルトの名無しさん mailto:sage [2018/02/22(木) 04:32:43.91 ID:+RpZ2cWG.net]
俺も>>799と同意
>>798の言ってることはいまいちよく分からん
nilに余計な意味を与えるからダメとか言ってるがnil自体がそもそも余計だと思う
nilは便利すぎるがゆえにチェック忘れ系の地雷がある
ポインタ演算みたいに強力な機能は同時に危険も引っ付いてまわる
そういった機能は出来うる限りは排除・制限していくべきだと思う

823 名前:デフォルトの名無しさん mailto:sage [2018/02/22(木) 05:41:36.72 ID:ePT/3hrM.net]
nilに余計な意味を与えないための基準がnil安全なのでは?

824 名前:デフォルトの名無しさん [2018/02/22(木) 08:14:10.74 ID:p8NiYEqx.net]
同僚のコトリンのコードがビックリマークだらけで、こりゃだめだと思った

825 名前:デフォルトの名無しさん mailto:sage [2018/02/22(木) 08:54:55.92 ID:MB1I4+Gh.net]
だから、便利に使わなければ良いと思うんだが。
参照にしない限りnilにはなれないし。

826 名前:デフォルトの名無しさん [2018/02/22(木) 12:53:25.00 ID:+RpZ2cWG.net]
>>799
すまん。番号ズレてるな。以下訂正
> 俺も>>798と同意
> >>797の言ってることはいまいちよく分からん

スマホアプリ使ってると時々ズレるんだよな クソが
そのせいで自分で自分に同意するというアホな文章になってやがる

827 名前:デフォルトの名無しさん mailto:sage [2018/02/22(木) 13:11:15.71 ID:0cZDh8Nv.net]
修理しない自由 vs. 修理する権利

828 名前:デフォルトの名無しさん mailto:sage [2018/02/22(木) 14:54:41.89 ID:ei88pKkZ.net]
>>800
基準がどうこうってnil安全な言語ってのがわかっていないのかな?
設計思想とかの話じゃなく言語仕様の話をしてんだけど。
つまり変数に明示しない限りnilを代入不可能な変数が作れるってのか
nil安全な言語ってこと。
TypeScriptなら

let some?:number = null; // OK
let some:number = null; // NG
ってこと someにnullが入っている可能性をコンパイル時点で排除できる。

Goだって

func hoge(s *Some) {
// sが絶対nullじゃないことが保証されるスコープ
}
func (s? *Some) SomeFunc() {
if (s != null) {
hoge(s)
}
hoge(s) // NG コンパイルエラー sがnullである可能性が残っている
}
みたいな感じで書ける。?が使えると仮定

829 名前:デフォルトの名無しさん mailto:sage [2018/02/22(木) 16:43:44.83 ID:ePT/3hrM.net]
>>805
しょぼ!
その例はnull安全の中でも一番弱いやつ。
書き方を気をつければnullを避けられるってだけ。
本物のnull安全はスコープ単位ではなく、型検査が通ればプログラムにnullによる誤りを完全に排除されるんだよ。Haskellのように。



830 名前:デフォルトの名無しさん mailto:sage [2018/02/22(木) 17:06:16.89 ID:zGB/N5H/.net]
>>806
elmも実行時エラーを完全排除できるというのを売りにしてたね。
しょぼくても学習コスト最小でメリットは十分享受できる。
とりあえずelm触ってみようかな

831 名前:デフォルトの名無しさん mailto:sage [2018/02/22(木) 18:59:35.60 ID:MB1I4+Gh.net]
>>806
haskellはそんな事の前にもっと解決すべき問題を解決できる言語になってくれ。

832 名前:デフォルトの名無しさん mailto:sage [2018/02/23(金) 01:19:34.60 ID:i8nFKqus.net]
動的型で解決できる問題はすべて静的型で解決できるし
もしこれが嘘八百だと証明されたとしてもそれはそれで大きな成果だし
いずれにせよHaskellは静的型の歴史に貢献している

833 名前:デフォルトの名無しさん mailto:sage [2018/02/23(金) 01:23:42.56 ID:KFd5WK6x.net]
でも需要はハケスル(笑)<<<<<PHPで圧倒的な件w

834 名前:デフォルトの名無しさん mailto:sage [2018/02/23(金) 08:46:52.58 ID:LZyM23a9.net]
歴史に貢献するって、ラテン語でもあるまいし。
実用言語にしてよ。

835 名前:デフォルトの名無しさん mailto:sage [2018/02/23(金) 10:35:29.52 ID:fGTUWBf8.net]
実在するだけでは不満か
実在すら怪しいものがあったらもっと不満だろ
実用よりも実在の方がモチベーションが強い

836 名前:デフォルトの名無しさん mailto:sage [2018/02/23(金) 10:45:07.36 ID:HJaUFAvs.net]
>>811
ラテン語は良い喩えだね。印欧語ヒエラルキーの上の方にいるし。
俗ラテン語を見て、どこが欠落してるかの見通しが良くなる。

Haskellも足りてないけどさ、型理論的に。そういう点でもラテン語あたりなのは妥当。

837 名前:デフォルトの名無しさん mailto:sage [2018/02/23(金) 11:35:44.21 ID:2M6dxKUJ.net]
コンパイル時に解決できるならそれに越したことは無いが
そのための学習コストは増大する傾向にあるよね。
Elmはブラウザのviewに特化したDSLとして学習コストを抑えてる。
Rustもメモリリークを静的に解決しようとするけどそのためのコストはかなり高め。
何事もバランスだよね。

838 名前:デフォルトの名無しさん mailto:sage [2018/02/23(金) 21:27:40.00 ID:LZyM23a9.net]
>>813
そう。
そんなに格いるか?確かにあれば便利だけど前置詞のほうが実質簡潔じゃねえの?とか、
今更ラテン語使う必要無いだろ。足りない語彙を現代語から借用するの?とか、
ヒエラルキーの上位と言うより、広がる枝の根本にほうっておかれた存在だろ。
全く次世代で無い。

839 名前:デフォルトの名無しさん mailto:sage [2018/02/23(金) 22:03:17.49 ID:GuloKGfV.net]
Haskellの熱心なアンチが全くのエアプだった事件があるので、そういう意見はHaskellに精通していることを示さないとなかなか受け入れられないと思うよ



840 名前:デフォルトの名無しさん mailto:sage [2018/02/23(金) 23:44:14.84 ID:NePmI3sA.net]
まあカス仕様を必死に守るのにコストかけるくらいなら
goみたいにコンパイラの性能上げてもらった方がよっぽど有益だったりはする。

841 名前:デフォルトの名無しさん mailto:sage [2018/02/24(土) 00:32:37.74 ID:LvxjVVyK.net]
お、型付λアンチか?

842 名前:デフォルトの名無しさん mailto:sage [2018/02/24(土) 01:03:27.04 ID:67+llEBF.net]
>>816
エアプって言葉好きだなぁ。
正直触ってダメ出ししたぐらいだけど、精通せんでも文句は言える。
ラーメン食いに行って「まずいわこれ」って言って、店主に「じゃあお前はこれ以上のラーメン作れんのかよ」「それだけラーメン食って言ってるのか?」ってキレられても困るだろ。
客観的にまずいもんはまずい。まずいと誤解されるものもその次にまずい。

843 名前:デフォルトの名無しさん mailto:sage [2018/02/24(土) 01:06:09.79 ID:67+llEBF.net]
意識高い系のおもちゃとして使うんじゃなくて、なんか使えるプロダクト出してから言ってくれよな。
古代言語を次世代言語スレで出すんなら。

844 名前:デフォルトの名無しさん mailto:sage [2018/02/24(土) 01:21:53.07 ID:ZueQv0Xl.net]
>>817
https://taiyaq.com/contents/YgxOd3YjadMa5c793O1j1d9VX
goの設計思想自体が依存関係解決の高速化だったりコンパイル速度優先の実装みたいだね。
ジェネリクスみたいなコンパイル時の計算速度に大きく影響を与える仕様はなさそうだ。
(あっても限定的な機能になりそう)

845 名前:デフォルトの名無しさん mailto:sage [2018/02/24(土) 02:01:52.41 ID:9192Hwvs.net]
goにはクラス階層も無いんでしょ?ジェネリクス以外の多態が無いならまだ綺麗に導入できる可能性がある
swiftはバージョンアップで型推論を入れるようなスジの悪い進化を進めてるから好きになれんよ

846 名前:デフォルトの名無しさん mailto:sage [2018/02/24(土) 06:02:14.88 ID:VvbK4X3N.net]
コンパイル速度優先の上で云々ということであれば
goがDelphi/FreePascalを超えてるかというのは正直疑問

847 名前:デフォルトの名無しさん mailto:sage [2018/02/24(土) 07:01:37.55 ID:VvbK4X3N.net]
>>822
goはinterfaceによる多態が既にあるから、そこにジェネリクス入れるとJava同様になるぞ

848 名前:デフォルトの名無しさん mailto:sage [2018/02/24(土) 07:57:18.04 ID:ZueQv0Xl.net]
>>823
現在も絶賛コンパイル速度更新中だからいいんじゃないの。
そもそもdelphiって古すぎて早く見えるってだけでは、、、?

>>824
interfaceを進化させるイメージでジェネリクスぽいものを作るんだろうね
現状複数のinterfaceを受け入れる可能性のある変数は空インターフェース(interface{})
(javaでいうところの何でもありのObject型みたいなの)
にするしかないのがツラミになってる。
ここを改善する方向に進化させるでしょう。
直積型をつくるのはできてるから直和型(union)をサポートして
someFunc(o interface{}) error {}
みたいなのを
someFunc(o A & B) error {}
someFunc(o A | B) error {}
みたいにできればいい。TypeScript好きだからこうなったら感動する

849 名前:デフォルトの名無しさん mailto:sage [2018/02/24(土) 11:17:45.72 ID:LvxjVVyK.net]
>>819
だっさw



850 名前:デフォルトの名無しさん mailto:sage [2018/02/24(土) 11:20:37.36 ID:pBIylWjV.net]
古すぎて速いってのは正しい
あとはジェネリクスがない言語は古いと認識できたらもっと正しい

851 名前:デフォルトの名無しさん mailto:sage [2018/02/24(土) 13:37:19.37 ID:67+llEBF.net]
>>826
俺がダサいだけでhaskellが良くなって実プロダクト出てくるならいくらでもダサくなるわw

852 名前:デフォルトの名無しさん mailto:sage [2018/02/24(土) 14:17:08.41 ID:4YJEYBsv.net]
実はDelphiにはジェネリクスあるんだぜw

853 名前:デフォルトの名無しさん mailto:sage [2018/02/24(土) 14:17:22.06 ID:WPlCcRak.net]
>>827
TypeScriptの最近のジェネリクス変態進化ぶりを見ていると
ジェネリクスが正しいという意見も
なんとも言えないかも。

854 名前:デフォルトの名無しさん mailto:sage [2018/02/24(土) 14:39:08.92 ID:ozvKRveg.net]
言うほど変態か?
JSによるOOPの実装方法や、即値を型として扱うTypeScriptの特性を十分に理解してないと
new () => Tとかkeyofなんかは分かりにくいかもしれないけど、それはGenerics以前の問題だろ
基本的には必要以上の驚きのない自然な仕様だと思うよ

855 名前:デフォルトの名無しさん mailto:sage [2018/02/24(土) 15:23:35.50 ID:ZueQv0Xl.net]
>>831
それくらいならいいけどさ
https://qiita.com/Quramy/items/b45711789605ef9f96de
とか見てみると分かる。
辛いのはユーザ側だとしてもエラーメッセージで巻き込まれることないだよね。
ジェネリクス関連のエラーで一発で問題がわかったことが殆ど無い。

856 名前:デフォルトの名無しさん mailto:sage [2018/02/24(土) 15:44:01.13 ID:ozvKRveg.net]
>>832
これくらい何とも思わないな
所詮は型アノテーションを正しく引き継ぐためだけの仕組みだぞ?
生成されたコードをデバッグしなきゃいけないテンプレートとは訳が違う

857 名前:デフォルトの名無しさん mailto:sage [2018/02/24(土) 16:50:37.88 ID:ZueQv0Xl.net]
>>833
こういうエラーメッセージを吐き出すジェネリクスが分かりやすいだって?
https://i.imgur.com/CTJXwJr.png

858 名前:デフォルトの名無しさん mailto:sage [2018/02/24(土) 17:03:15.17 ID:ZueQv0Xl.net]
>>834
こういうエラーメッセージと戦うのが辛いのって結局途中経過を追えないってことなんだよね。
goはコードジェネレート前提だったりする。
そっちだと分かりやすいコードを吐いてくれれば追いやすい。

859 名前:デフォルトの名無しさん mailto:sage [2018/02/24(土) 17:08:20.40 ID:yL1hQTQw.net]
>>835
つまり言語仕様の問題じゃなくてコンパイラが途中結果を出力しないのか問題なんだろ?
MSが改善すれば済む話
完全に論理が破綻してるね



860 名前:デフォルトの名無しさん mailto:sage [2018/02/24(土) 17:08:38.51 ID:cWB/7seJ.net]
>>834
これは酷いTypeScriptは糞

861 名前: mailto:sage [2018/02/24(土) 17:14:56.38 ID:yWQ45jBy.net]
>>834
C++ とて似たようなものだ、ジェネリクスのエラーメッセージは総じて汚らしい

862 名前:デフォルトの名無しさん mailto:sage [2018/02/24(土) 17:15:40.58 ID:NYPMK72i.net]
>>836はコンパイルがクソ遅い言語に対しても
問題は言語仕様じゃなくてコンパイラの所為だと思ってそう

863 名前:デフォルトの名無しさん mailto:sage [2018/02/24(土) 17:26:03.56 ID:WPlCcRak.net]
>>836
論理がはたんしてるか?
というかコンパイラの挙動と言語仕様を分けて考える意味がわからない。

言語としての素晴らしさはそれを囲むエコシステム全体を含めて語っていいと思うが。

864 名前:デフォルトの名無しさん mailto:sage [2018/02/24(土) 17:29:02.21 ID:WPlCcRak.net]
>>838
これ。ジェネリクスは人間に牙を向くのが辛い。ライブラリ開発者でうまくエラーをラップできたりすれば良いんだけどね。 

865 名前:デフォルトの名無しさん mailto:sage [2018/02/24(土) 17:43:47.02 ID:yL1hQTQw.net]
>>834が分かりにくいのって、structual-subtypingで特定のメンバの型に互換性がないのを
「型同士の互換性」の単位で出力してしまってるからじゃないか?
TypeScriptならVSCodeに代入元と代入先の型を展開した状態で比較するビューが付けば解決だと思う

866 名前:デフォルトの名無しさん mailto:sage [2018/02/24(土) 17:51:04.11 ID:ZueQv0Xl.net]
>>842
あと、もしかしてこう書きたかったんじゃなりませんか? みたいにannotationをコンパイラが出してくれるとかね。
rustってそういう感じだっけ?

867 名前:デフォルトの名無しさん mailto:sage [2018/02/24(土) 17:54:41.90 ID:ZueQv0Xl.net]
ちなみに >>834 のエラーはTypeScript2.5.3では出ない。2.6以降にすると出るようになる。
コードとしては何の問題もなく動くんだよね。
バージョン上げるたびに修正するのしんどくて放置してる。

868 名前:デフォルトの名無しさん mailto:sage [2018/02/24(土) 18:11:51.54 ID:67+llEBF.net]
そのうちまた型システムだけでチューリング完全になるんじゃねえの?

869 名前:デフォルトの名無しさん mailto:sage [2018/02/24(土) 19:33:38.61 ID:OJHwttVu.net]
チュリ完だと何の不都合ですか?



870 名前:デフォルトの名無しさん mailto:sage [2018/02/24(土) 20:27:10.88 ID:67+llEBF.net]
する必要の無いものをチューリング完全にしてしまったが故にえらいことになったプロジェクト見てきたし、
そもそもコンパイルの時点で無限ループしかねないとかどんな闇言語だよって話になってくるじゃん。
Scalaも型システムだけでコンパイラ止めれたっけ。

871 名前:デフォルトの名無しさん mailto:sage [2018/02/24(土) 21:39:56.69 ID:Wx4opHQO.net]
c/c++ のヘッダ処理なんかもデバッグしやすくするのとコンパイル効率は
かなりトレードオフがあるってのが一般的。
だから visual studio が内部で変なことガツガツやってるわけで。
そんなもん2、3年本気で仕事すりゃわかることだろうと思うんだが
なぜか理論よりの人間は事実を認めない傾向にある。

872 名前:デフォルトの名無しさん mailto:sage [2018/02/24(土) 22:16:50.94 ID:8UiUrtqZ.net]
チュリ完であることそれ自体が問題なのではなく、デバッグ回りが弱すぎるのが問題なのだ

873 名前:デフォルトの名無しさん mailto:sage [2018/02/24(土) 22:36:20.17 ID:CuRF79s8.net]
>する必要の無いものをチューリング完全にしてしまったが故にえらいことになったプロジェクト見てきたし、

それ、「えらいことになった」原因が本当にチューリング完全のせいだったのかね。

874 名前:デフォルトの名無しさん mailto:sage [2018/02/24(土) 22:55:49.93 ID:WPlCcRak.net]
少なくともc,c++の依存関係解決の遅さの解決のためにgoが生まれたってのがgoogleの言い分なわけだし、遅いは遅いんじゃないの。
goにプリプロセッサが無いのも意味があるわけで。

875 名前:デフォルトの名無しさん mailto:sage [2018/02/24(土) 23:31:49.65 ID:8UiUrtqZ.net]
まあ遅いは遅いな。それはそうだ

876 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 00:02:11.41 ID:/LdYt4iz.net]
ちなみにredoxというrustで書かれたosはコンパイルは早いんだろうか。lunuxと単純比較はできないだろうけども

877 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 01:39:43.29 ID:i5g4VWIk.net]
>>850
そうだよ。何を想像してるかわからんけど。

878 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 07:45:46.39 ID:Pn1I1KPs.net]
そりゃチューリング完全であることが問題なんじゃなくてそのチームに問題があったんだろ。
世の中にチューリング完全なシステム(言語)は腐るほどあるわけだし。

879 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 08:04:15.51 ID:MHQfhChM.net]
なんでも「チームが悪い」と言えばいいのだから簡単だな。ばーか



880 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 09:34:28.35 ID:5I/H3HR9.net]
できちゃうことが問題なんじゃないの
c++の型システムがチューリング完全だと自分たちだけがコンパイル速度に気をつけても
依存しているサードパーティライブラリまでは保証できないでしょ。
だったら言語側で制限がかかっておいてほしいって話。

Cの依存性解決も#ifdefを駆使してプリプロセッサの自由度を持って後付で解決していた。
プリプロセッサ自体便利なものだけど、それが原因でコンパイル速度の低下を招いた。
というのが >>821 に書いてる。

汎用性がある機能はなんでもできるからこそ、コンパイル速度を落としたり迷惑を書けることも可能。
swiftもGoも後発言語だけどプリプロセッサのってないもの
rustのマクロの自由度は知らんけども。

881 名前:デフォルトの名無しさん [2018/02/25(日) 10:45:11.82 ID:AkGT52Is.net]
テンプレートやマクロで無茶をする奴が
コードジェネレータで無茶するようになるだけ

882 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 11:03:44.36 ID:5I/H3HR9.net]
>>858
少なくともGoのgenereateはコンパイル時毎回動くわけじゃないから。

883 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 11:41:56.21 ID:oFPVlXbE.net]
あるC++のファイルを変更したら
そのファイルがincludeした全てのコードを再コンパイルする
型情報のみをincludeすればいいのに型ではない値とコードが大量に入ってる
この値とコードが原因だよね
チューリング完全はそこから生じた結果の一つ

884 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 12:11:15.59 ID:hhzTCNKn.net]
>>851
すまん、プリプリセッサって何ンゴ?

885 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 12:35:19.43 ID:SIGvHUUj.net]
プリケツセッサ

886 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 12:38:14.47 ID:XjF3qDop.net]
prepresessor

887 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 14:15:34.84 ID:dV634vWG.net]
>>861
rustでいうマクロみたいなもの
コンパイル前に文字列操作を行ってコードを改変する。
結構なんでもできるから重たい操作を行うとコンパイル時間に影響する。
https://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AA%E3%83%97%E3%83%AD%E3%82%BB%E3%83%83%E3%82%B5

888 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 15:09:03.97 ID:SIGvHUUj.net]
それはプリプロセッサや〜〜!!!

889 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 15:13:14.53 ID:iLEoqX9J.net]
>>855
まあバカな奴をチームに入れないためにc++を採用しないって主張をするリーナスは
ある意味正しいな。



890 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 16:03:19.53 ID:jkdNIq8n.net]
>>860
それはちょっと違う
そもそも今時フルコンパイルなんてそんなに重いものではない
C++がまずいのは、includeしたヘッダのコンパイル結果をコンパイル単位(.cpp)を跨って共有できないことだ
プリプロセッサのせいで毎回変わる可能性があるからな

891 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 16:17:08.31 ID:UX7CM2uT.net]
>>866
リーナスはc++がクソだって言ったんだよ。
その次に使う人間もクソが多いって言ったの。、間違えんな

892 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 16:45:30.82 ID:u3kGuI4S.net]
間違ってはない

893 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 17:25:46.72 ID:eL53m5ic.net]
リーナスはもともとアセンブラーやからのうwww
Cは複数のCPUのアーキテクチャーに適応するためにどうにゅうしたわけやしのうww

894 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 17:45:40.47 ID:ZzND0YhV.net]
c++はいつになったら#importを導入するんだ……

895 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 18:22:22.98 ID:iLEoqX9J.net]
linux もだいぶヘッダマクロでテンプレみたいなことはやってる。
もちろん型安全ではないがそれでもc++のテンプレート使うよりマシという判断をしてるわけだよ。

896 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 20:57:01.90 ID:Sac3cGbb.net]
>>867
それやったらODR違反

897 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 22:23:17.24 ID:hhzTCNKn.net]
>>864
メメタァプロプロミングってやつンゴか?

898 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 01:07:52.73 ID:NUAGFWAP.net]
jsのhyperappみたいに300行くらいでreact + reduxなライブラリを作ったように

haskellでも小さなコードですごいことをしてみせる実用ライブラリってあるかな?

899 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 01:08:12.13 ID:NUAGFWAP.net]
jsのhyperappみたいに300行くらいでreact + reduxなライブラリを作ったように

haskellでも小さなコードですごいことをしてみせる実用ライブラリってあるかな?



900 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 01:59:20.48 ID:RBbBnG6R.net]
すごいことってなんだか感情的だな
実用というのも感情かもしれない

901 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 05:56:26.51 ID:KYXdLiJx.net]
コードから改行をスペースに変換して一行にするライブラリーを作ればいい。

902 名前:デフォルトの名無しさん [2018/02/26(月) 11:09:00.46 ID:AYoEpEU8.net]
プリプロセッサは遅くないぞ
C++のテンプレートやコンパイル時処理のほうがよっぽど遅い
RustもSwiftもプリプロセッサを排除する代わりにC++と同じようなことをやってる

903 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 11:28:37.86 ID:OBKUk/zi.net]
>>879
プリプロセッサが遅いんじゃなくてプリプロセッサに依存したビルドが遅いんだろ
コンパイル単位という時代遅れな概念さえなければ話はずっとシンプルになる

904 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 11:57:47.68 ID:LqmnPPXl.net]
コンパイル単位ってコンパイル高速化するためのものと思ってたんだけど、今は無い方が速いのか?

905 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 11:58:09.67 ID:tiI6jRqU.net]
文字列処理は結果をファイルに保存して再利用しやすい
クラスやオブジェクトの処理はファイルシステムと連携が難しい
かといってファイルシステムがない環境でも動くコンパイラを作る意欲もなさそう

906 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 13:46:15.14 ID:IYGVTnOb.net]
>>879
プリプロセッサが、遅いかどうかはどう作るかによるのでは?
何でもできる分、遅く作り込むことも可能。
だからgoとかは組み込みのimport機能を作ったわけで。

907 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 13:50:29.38 ID:IYGVTnOb.net]
>>877
jsのhyperappに感動してしまったから
感情的になってしまった。
300行でしかも比較的読みやすいコードで
react+reduxなライブラリが作れたことにびっくりしたんす。
勉強用の教材としてもうってつけ。

こういうのが他の言語のライブラリでもないかなと思って。

908 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 16:02:15.05 ID:CBNL7amJ.net]
>>881
✕高速化
○メモリ節約
今の1/1000のメモリでデカいウンコを無理矢理出すための手法で、今となっては百害あって一理なし

909 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 20:55:59.83 ID:2he6fwHk.net]
じゃあお前だけ並列コンパイル禁止な



910 名前: mailto:sage [2018/02/26(月) 21:02:06.28 ID:5mZ9QExD.net]
>>885
make -j での高速コンパイルに感動することしきりです、いつか 32thread な CPU を買おうと思っています

911 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 22:24:02.68 ID:FUm7ZUuj.net]
なぜかプログラマー板に立って放置されてる
nimのスレ立てるか

912 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 22:29:16.70 ID:eKoH1eQ3.net]
頼む

913 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 22:43:29.59 ID:+1zKWNLy.net]
boost 大好きな奴がビルドのベストプラクティスとして
1ファイルに全て書く言うてたな。
バカとしか言いようがないが面倒だから黙ってた。

914 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 23:37:01.37 ID:hKYTqf2f.net]
小規模なら1ファイルに全て書いても問題ない
普通に書いたら数百とか数千ファイルになるようなものなら馬鹿で間違いない

915 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 23:38:45.60 ID:vKciEg6e.net]
インターフェースとその実装とかは、小規模なら同じファイルに書いてるのもよく見かける

916 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 03:24:43.50 ID:Rnz77xQ6.net]
世の中にはhaskell使い結構居るっぽいのになんでここには全く居ないんだ
githubやstackoverflowまで行かないと出会えんのか

917 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 05:49:52.64 ID:5KO97NM4.net]
一つのファイルに書かなくても
複数のファイルをつなげて一つにするプログラム書けばいいだろ
そのやつ馬鹿やんなwww

918 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 05:53:33.06 ID:5KO97NM4.net]
昔の偉い人はトップのファイルに

919 名前:だけインクルードを書く手法をつかったらしいからな。
これは複数のファイルを一つにつなげるプログラムとおなじことやんな。
[]
[ここ壊れてます]



920 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 11:03:33.84 ID:P8RgwK6u.net]
今の偉い人はLTOに任せます

921 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 11:58:06.25 ID:hiD/gfTg.net]
分割できないのはC++のtemplateだけ
Cは問題ないからほとんどの言語はCのライブラリに依存する
他言語から利用するならさすがにファイル分割せざるをえない

922 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 12:49:23.86 ID:cuAUxW5W.net]
templateって分割できないの?分割してる俺は異端だったか

923 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 13:02:26.29 ID:osJwhRBM.net]
優秀なコンパイラ使ってるんだな
そのためのexport構文は実装が難しすぎて廃止されたんだ

924 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 14:30:07.64 ID:hiD/gfTg.net]
Vector<T>の内部で無引数のVectorを利用するだけみたいなパターンがある
このパターンに従ってなければ異端視されるリスクはあるだろう

925 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 16:21:26.72 ID:ZLoGDkNB.net]
Railsってなんだかんだいって未だに人気があるみたいだけど、
なんでなん? Rubyって動的言語だよね? PHPを使ったフレームワークとどこが違うの?
なんであんなに1強状態で人気があるの?
Rubyの魅力とセットで教えてください。

926 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 16:31:55.21 ID:hlxRjRwD.net]
優れているわけではなく、バカチョンで作れるから安易に選ばれやすいのだろう
Railsで始めてみることより、仕様が固まったら次のまともな言語やフレームワークに移行できるかの方が重要
実際、それに失敗(あるいはその必要性すら見越せず)して炎上する案件も後を絶たない
小さくは産めるが大きく育てることはできないのがRails

927 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 16:57:52.59 ID:NW0j8e0V.net]
バカチョンなのはphpじゃなくて?
なんか意識高い系が使ってるイメージなんだけどRoR

928 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 17:42:22.46 ID:5KO97NM4.net]
絶対MAC使ってそう

929 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 22:14:44.71 ID:D4/jn9Oj.net]
ザッカーバーグはphpでボコボコ作ってたんだから作れる奴は作れるんだろ。



930 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 00:50:59.60 ID:BRgV9W3l.net]
>>905
でも言語ごと見直してるよね つ hack

931 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 01:21:37.82 ID:twfZQuBm.net]
型が定義域を成すような言語ってあったっけ?

932 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 06:23:34.25 ID:sJxURYwy.net]
高階型の事か?
ルービーとか?

933 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 10:14:44.58 ID:BRgV9W3l.net]
>>901
これに誰もコメントできないということは意識高い系エンジニアはもう2chにはいないってことかな

934 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 10:54:54.72 ID:pZIdeYdH.net]
煽られたのでレスする

>>901
エコシステムが優れているの一点に尽きる
日本語のユーザーが多いので大抵の問題は検索で解決する
とりあえずgem入れれば大抵のことができる
Rubyであることは恐らく関係がない(Rubyの魅力ってなんだろ?ないんじゃね)

このような特長によりラピッドプロトタイピングでは他の追随を許さないため、
早急に成果物が必要なWeb系スタートアップなどでとても重宝される

ユーザーが多くて問題が検索で解決するということは学習コストが低いので、
プログラミングが全くわからないという初心者にも人気

誤解を恐れずに言えば、PHPなどの他の言語のRoRライクなフレームワークは、
Rubyを新たに学習

935 名前:するのを嫌がった既存言語のユーザーのためのパチモンである []
[ここ壊れてます]

936 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 17:01:05.36 ID:dNU7bBqW.net]
人気がどうとか言い出したら未だに8割はphpだし

937 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 18:04:09.73 ID:51qUbh2+.net]
次世代言語スレで枯れたスクリプト言語の流行り廃りなんて話題にしたくないって人が多いんだろ

938 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 18:07:45.89 ID:0QofQq2Z.net]
結局javascirptが古いようで最新の技術なんだよね。

939 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 20:24:05.75 ID:BRgV9W3l.net]
>>910
Rubyが嫌いって結局ガッツリハマった人の意見じゃないなぁ。
結局外から観測してる人の意見じゃん。
やっぱりいないんだな。2chには。

ちなみにRubyの良いところって多分プリミティブ型が存在しないことなんかなと
完全に純粋なオブジェクト指向言語を目指したって作者の人も言ってるし。
数字にメソッドが生えているのはたしかにすごいと思った。



940 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 20:29:48.68 ID:BRgV9W3l.net]
>>914
あとElixirはかなりRubyに影響を受けてると聞いた。
だからRubyには魅力があると考えている人は確実にいる。

941 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 21:14:49.16 ID:sIMYGGyy.net]
数字にメソッドといえば Kotlin もそうだな。

942 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 23:56:12.70 ID:DmvhFr4C.net]
>ちなみにRubyの良いところって多分プリミティブ型が存在しないことなんかなと
心の底からどうでもいいわ。

943 名前:デフォルトの名無しさん mailto:sage [2018/03/01(木) 00:14:26.84 ID:mwB1G/ka.net]
>>917
まぁそうよね。俺もRubyを外野から見てるから、正直それがどうプログラミングに役に立つかわからない。

でも、今もiOS開発でcocoapodsが使われてるなら
あれは設定ファイルがrubyで出来てるはず。(DSLを作りやすい言語だとも聞いた。)

944 名前:デフォルトの名無しさん mailto:sage [2018/03/01(木) 01:01:03.87 ID:PEqveR2A.net]
>>911
捨てられない、壊せない、低学歴のゴミ捨て場
池沼保守が更なる池沼保守を招き、公共事業になる

COBOLですか?いいえ、ペチプァです

945 名前:デフォルトの名無しさん mailto:sage [2018/03/01(木) 01:49:49.40 ID:jbpZZhCj.net]
>>913
https://anond.hatelabo.jp/20170501085956

>JavaScriptはDOMを書き換えるためだけに存在している書捨てのクソ言語であって、サーバーサイドを書くために存在している言語でも、100万行からなるバベルの塔の建設に耐えうる言語でもない。

946 名前:デフォルトの名無しさん mailto:sage [2018/03/01(木) 02:34:21.42 ID:mwB1G/ka.net]
>>920
JSも毎年進化してるしasync-await周りの進化を楽しみにしてます。
array系メソッドのasync-await対応入れて欲しい。

TypeScript全然今現役だし。むしろこれからじゃないの。
結構型定義ファイルを最初から提供してくれるライブラリも増えてきたし。

947 名前:デフォルトの名無しさん mailto:sage [2018/03/01(木) 02:51:20.00 ID:3GQv6gfc.net]
動的言語の良いところは連想配列と無名関数だぜ
オブジェクトとか参照透明とかいう思想を無視して使うと良い

948 名前:デフォルトの名無しさん mailto:sage [2018/03/01(木) 07:56:42.84 ID:PEqveR2A.net]
参照透明w
ガイジすぎますよペチプァさん

949 名前:デフォルトの名無しさん mailto:sage [2018/03/01(木) 08:06:33.61 ID:hFyb911L.net]
透明でも透過でも意味はおなじやろ



950 名前:デフォルトの名無しさん mailto:sage [2018/03/01(木) 08:47:20.76 ID:KaHAqFPd.net]
日本語ですらこうだからな
英語でこれをやられると日本人は詰む

951 名前:デフォルトの名無しさん mailto:sage [2018/03/01(木) 09:14:47.72 ID:QH9XRV0O.net]
rubyで作ったものといえばhomebrewとかchef、vagrantとか環境構築系統の奴が多い気がする。

952 名前:デフォルトの名無しさん mailto:sage [2018/03/01(木) 11:41:14.60 ID:mwB1G/ka.net]
でもPHPってなにげに関数型っぽい性質を思ってるよね。
requestを入力にresponseを出力するだけの機能しか作れないわけだし。
ただ

953 名前:言語自体が副作用を許容するのが残念なだけで。 []
[ここ壊れてます]

954 名前:デフォルトの名無しさん mailto:sage [2018/03/02(金) 07:56:21.08 ID:WI55jJOz.net]
いや関西型でしょ
細かいことはどうでもええねんやで〜 って感じ

955 名前:デフォルトの名無しさん mailto:sage [2018/03/02(金) 11:26:26.47 ID:swkM6DDi.net]
>>928
新しいーー

956 名前:デフォルトの名無しさん mailto:sage [2018/03/02(金) 16:36:06.39 ID:cw2CU0bm.net]
細かい組み込み関数は暗記しなくていいとPerlの作者は言ってる
でもみんな人の話を細かいところまで聞いてない

そして、組み込み型が存在しない言語があれば完璧に覚えられるんじゃないか
完璧に覚えられないPerlは欠陥品じゃないかと誰かが思いついた

957 名前:デフォルトの名無しさん mailto:sage [2018/03/02(金) 23:32:55.91 ID:yLzcLNAA.net]
perlやっぱキチーわ。。
perldoc.jp/docs/perl/5.6.1/perlvar.pod

958 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 01:42:16.88 ID:6xQIfmrF.net]
詳細を暗記しなくていいって言い方は何か違うな
全容を理解しなくても使えるみたいな言い方だった

959 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 10:52:51.13 ID:v4FkTK4+.net]
誰も全容を理解できないほどグチャグチャなだけじゃないか?



960 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 10:55:41.97 ID:duFkg5Z7.net]
ゴミの中から使えるものを探し出すマイニング言語だな

961 名前:デフォルトの名無しさん mailto:sage [2018/03/03(土) 14:24:12.16 ID:xVbk5YBO.net]
機能を詰め込んだ言語はどれも同じようなこと言うが、
あればどっかのバカがドヤ顔で使うもんなんだよ。人が分からないこと機能を使うことがそいつの生きがいだったりするし。

962 名前:デフォルトの名無しさん [2018/03/04(日) 04:04:02.15 ID:H2uta8yU.net]
結局次世代覇権はどれなの

963 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 04:24:53.92 ID:LENvqUUV.net]
そんなものはない

964 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 08:27:34.15 ID:ZzYgGHv3.net]
覇権とはつまり無料で伝わってくる評判や情報
たしかにソースコード自体はただでもらえることが多いが
全ての情報が無料になるとは限らない

965 名前:デフォルトの名無しさん [2018/03/04(日) 08:43:02.11 ID:jVv2tvmI.net]
Dartまだ生きてたんだな
flutterで久々に名前聞いたわ

966 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 09:06:46.22 ID:wkppZr3e.net]
死産だろ
AltJSはTypeScriptだけでいい
Flowのある今、TSですら要らなくなりかけてるしな

コヒースクリプトとかいう究極の糞ゴミもあったなそういえば

967 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 09:27:49.51 ID:JhMcbRX8.net]
javascriptのpython的な感じのnode.jsが
サーバ側javascriptとかいってわけのわからない何をするものかわからない
説明しかないウェブ上にないから選択肢にならないのが駄目なんだよな。

968 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 09:58:27.75 ID:ok4FvQ1Q.net]
Dartの戦略はosから全部google製に置き換えるという壮大なものっぽい。
flutterはUI部分はビデオゲームみたいに0から作り直してるからAndroidの断片化問題を回避してる。
結論はdart死んでなかったんや

969 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 10:16:59.43 ID:nKesZExL.net]
Dartはまだワンチャンある



970 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 12:11:02.48 ID:wkppZr3e.net]
自社で使ってねえ、いつ投げ出すかもわかんねえプロダクト使えるわけねえだろ
Angularなんて全く自社で使ってないから、案の定グダグダでReact対抗なんか遙か遠く、Vueにすら劣るゴミやン

971 名前:デフォルトの名無しさん [2018/03/04(日) 12:37:54.80 ID:vieJ9/i2.net]
>>944
わかる
自社で作ったフレームワークを自社が使わないってどうなのよ?って思う
まだベータ版だからとかそれなりの理由があるならともかく、そうでなければ
自分の作ったフレームワークは使うに値しないって言ってるも同然だよな
そんなフレームワークを使う気になれないし趣味以外で使う奴の気が知れない

972 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 12:39:21.59 ID:DG ]
[ここ壊れてます]

973 名前:FKECqx.net mailto: さすがに手を出しかねるよなあ
flutterに関してはアーリーアダプターさんに頑張っていただいて、僕はレイトマジョリティになるでござる
[]
[ここ壊れてます]

974 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 13:04:30.62 ID:PM/22zQa.net]
angularみたいに色々ごった煮するよりか
reactみたいに単なるviewライブラリって割り切ってもらった方が個人的には好みかな。

975 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 13:14:01.97 ID:8KjE9Kl8.net]
そだねー

976 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 16:54:18.25 ID:esyJJEGF.net]
Googleって社内の開発に関しては保守的な印象
Googleともなると、新しい玩具に飛びつくことが長期的にどれだけの利益または不利益を生むかが定量的に分かってしまうんだろうね

977 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 17:12:34.27 ID:fkgoPQSR.net]
あんだけコード資産あったらそらそうだろ

978 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 17:17:55.41 ID:P0TPEWFs.net]
逆に、つかえねえ自社開発ツールを>>945みたいな理屈で開発環境として現場に押し付けるのもどうかと思うが
公開しないんじゃなくて、できないレベルで使えない、公開したら株価下がるレベルのやつ

ある程度は公開してフィードバック貰わないと腐るよ

979 名前:デフォルトの名無しさん [2018/03/04(日) 18:24:47.56 ID:vieJ9/i2.net]
>>951
いや、自社開発のクソみたいなツールを使えと言っているわけじゃないんだが…
例えばReactはFacebookが作っていて、Facebookは自社でReactを積極的に利用してるわけだから
そういう開発者自身が積極的に利用してるツールじゃないと魅力を感じないってだけで

あと、公開するなとも言ってないんだが…
自社では利用してないツールなら正式版としては公開するのはどうかと思うってだけで
ベータ版としてならむしろ積極的に公開してほしい

Googleはコード資産が膨大だから全てをAngularに置き換えるのは到底無理な話だが
一部のツール(例えばGmailだけ)を実験的にAngularに置き換えることは可能だろ
でも、それさえ行われてないわけでそんなものを正式版と言われても魅力を感じないと言いたかった



980 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 18:53:56.69 ID:ok4FvQ1Q.net]
Flutterをとょっと触った感じすごくReactぽい。なんというか今のトレンドはReactに皆寄せるんかな

981 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 20:14:57.99 ID:8pLLmBBd.net]
Google Wave の匂いがする…

982 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 20:20:02.27 ID:p/eHcB/Q.net]
Closure Library「社内で使ってたら使ってくれるんですか?」

983 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 20:32:08.26 ID:7+LmoBkc.net]
Flutterのチュートリアルを翻訳し始めてみた
https://taiyaq.com/contents/Q2PmOvB1p2yMdH9xxe1JpKL6Jx

手軽に触れる。開発ツールとして悪くない。
vscodeに最初から対応しているのがいい。

984 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 23:16:03.90 ID:wkppZr3e.net]
>>952
ワイ大将軍の代弁、ご苦労だぞ

985 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 23:17:13.31 ID:wkppZr3e.net]
>>956
React Nativeの寡占のケツ叩く材料にはいいかもしれんな
それしか価値がないが

986 名前:デフォルトの名無しさん mailto:sage [2018/03/04(日) 23:26:12.39 ID:24V4/Iiw.net]
覇権言語TypeScriptで作られたVSCodeを使ってDart書いてたら死にたくならない?

987 名前:デフォルトの名無しさん mailto:sage [2018/03/05(月) 00:09:59.08 ID:YrcFxfr2.net]
AltJS界で覇権
プログラミングエディタで覇権
クラウドプラットフォームでGoogleに圧勝して2番手
.NET Coreもまさかの成功
MSは一時期調子に乗ってMSを馬鹿にしてたWeb系連中を完全に黙らせたよな
結局、所詮Web系は極めて狭い技術領域における開発プロセスの過剰な最適化を競ってるだけで、大した技術はないんだよ

988 名前: []
[ここ壊れてます]

989 名前:デフォルトの名無しさん mailto:sage [2018/03/05(月) 00:19:04.86 ID:DPv3+ffH.net]
そのWeb系連中のケツ穴舐めて媚びへつらってアヘ顔晒してるM$さんが何だって?



990 名前:デフォルトの名無しさん [2018/03/05(月) 00:32:25.07 ID:YuCY3xrf.net]
実際、言語設計やシステム設計に関してはMSは群を抜いてると思う
対して、需要を先読みするセンスはGoogleとAppleの方が一枚上手って感じ
まぁ、今のAppleはブランド力だけで需要を強引に上書きしてる感あるが

991 名前:デフォルトの名無しさん mailto:sage [2018/03/05(月) 00:37:15.68 ID:XKEuRD67.net]
おい林檎豚、M字ハゲベゼルが見えてるぞ

992 名前:デフォルトの名無しさん mailto:sage [2018/03/05(月) 07:49:09.52 ID:LJ6W+mLO.net]
林檎は、かつてのMSみたいな老害と化してるだろ…

993 名前:デフォルトの名無しさん mailto:sage [2018/03/05(月) 09:46:28.71 ID:mBYt1wWZ.net]
TypeScriptは確かに覇権ではあるけど
自らにES201X + 型 である。という強い制約を課している。
だからいろいろできたらいいのになって思うけどできない制約が多い。

例えば関数のオーバーロードはできない(宣言はできるけど)。
https://docs.solab.jp/typescript/function/overload/
がっばって実装を工夫しないと読みづらそう。

994 名前:デフォルトの名無しさん mailto:sage [2018/03/05(月) 09:56:41.48 ID:mBYt1wWZ.net]
>>963
今のApple上層部は技術に興味がない感がすごい。
rootパスワードを無視できるバグができたって完全にテストプロセスが旧態依然ってことだろ。

995 名前:デフォルトの名無しさん mailto:sage [2018/03/05(月) 10:36:05.64 ID:CUJxqnH7.net]
C言語はほとんど良いんだけどマクロだけは糞すぎ

996 名前: mailto:sage [2018/03/05(月) 10:41:43.46 ID:NU3s1WzP.net]
>>967
あのマクロが万能なんでもあり感満載でいいのではないか?

997 名前:デフォルトの名無しさん mailto:sage [2018/03/05(月) 10:45:51.07 ID:9If1UATd.net]
副作用も含めて良い感じ

関数の中に書いたりしたときにスコープ効いてくれると嬉しかったんだが

998 名前:デフォルトの名無しさん mailto:sage [2018/03/05(月) 11:33:55.06 ID:VSqqwJ69.net]
Cのプリプロセッサはマクロと呼ぶには貧弱で置換表現と呼ぶには強力過ぎるのがなぁ

999 名前:デフォルトの名無しさん mailto:sage [2018/03/05(月) 12:26:34.17 ID:hapGaUvz.net]
>>965
普通に関数のオーバーロードできてるやん…
もしかして、オーバーロードが何か理解してない??



1000 名前:デフォルトの名無しさん mailto:sage [2018/03/05(月) 12:41:42.16 ID:mBYt1wWZ.net]
>>971
よく読めよ宣言はできるって言ってるだろ。
エントリーポイントは一箇所に纏める必要があるのが問題だって言ってるの

1001 名前:デフォルトの名無しさん mailto:sage [2018/03/05(月) 12:42:27.17 ID:rvkcJo3P.net]
>>971の理解している「普通の関数のオーバーロード」を説明してもらった方が面白いと思う

1002 名前:デフォルトの名無しさん mailto:sage [2018/03/05(月) 13:27:13.44 ID:cuduWH2+.net]
>>972
エントリポイントが1箇所にまとまってるとオーバーロードじゃないの?

>>973
ポリモフィズムのバリエーションで、ユーザーコードから、別シグニチャに同じメッセージタグで呼び出せるものだと思ってるが



実装が大変かどうかと、オーバーロードが実現できるかどうかを同じにしてることに違和感があっただけだよ
ID:mBYt1wWZが大変だと思ってる事実を否定するものではない

1003 名前:デフォルトの名無しさん mailto:sage [2018/03/05(月) 13:27:48.97 ID:gV5hE2lT.net]
マクロはDOM操作かPHPに似ている
ただしweb系が戦国時代だとしたらcppは覇権江戸幕府

1004 名前:デフォルトの名無しさん mailto:sage [2018/03/05(月) 14:45:14.98 ID:FSU+NZg/.net]
オーバーロードの宣言を一箇所にまとめないといけないというのは改造ocamlのG'Caml等もそうだったな
その方がコンパイラは楽なのもわかるけど、実用しようと思ったら別々の場所で宣言できないと
用を為さないというのもわかる

1005 名前:デフォルトの名無しさん mailto:sage [2018/03/05(月) 17:35:50.57 ID:0z7zpsA6.net]
>ポリモフィズムのバリエーションで、ユーザーコードから、別シグニチャに同じメッセージタグで呼び出せるものだと思ってるが

特段反論というわけでもないけど:
シグネチャというのはそもそもメッセージタグが同一でも型や引数の個数で別になる
つまり

1006 名前:それはシグネチャの定義に過ぎない

シグネチャが別になった結果同じ名前で別のもの(関数定義など)が参照されるのがオーバーロード。
TypeScriptは型情報についてはオーバーロードが行われるが、
実装の参照については(ECMAScriptとの互換性のため)オーバーロードが行われない、
みたいに理解している。
[]
[ここ壊れてます]

1007 名前:デフォルトの名無しさん mailto:sage [2018/03/05(月) 17:57:02.33 ID:dFIp3KoW.net]
次スレからPart表記なくせば、もっと詰め込める
この形ならElmかNimがはまるな

次世代言語9[Go *** Rust Swift Kotlin TypeScript]

でも文字数ギリだから、次次スレからまた変えることになる
括弧をなくせば使えるが

次世代言語10 Go *** Rust Swift Kotlin TypeScript

1008 名前:デフォルトの名無しさん mailto:sage [2018/03/05(月) 19:57:21.53 ID:D1Vi1BjH.net]
>>978
そもそも言語をスレタイに入れなければ良いのでは?

1009 名前:デフォルトの名無しさん mailto:sage [2018/03/05(月) 20:31:22.82 ID:D61iv0lz.net]
>>979
それだと検索に引っかからなくなる



1010 名前:デフォルトの名無しさん mailto:sage [2018/03/05(月) 20:38:24.63 ID:1R0ciaNQ.net]
別に引っかからなくていいよ。
誰がそこまでこのスレを重視してんの?

1011 名前:デフォルトの名無しさん mailto:sage [2018/03/05(月) 20:41:16.04 ID:03r0WsXs.net]
オレだよ、オレオレ!

1012 名前:デフォルトの名無しさん mailto:sage [2018/03/05(月) 20:41:22.54 ID:r5YruRsJ.net]
>>980
引っかかったところで大してその言語の話してねえようなスレなんだぜ。
Kotlinなんて十レスもない。
引っかかること自体詐欺的。

1013 名前:デフォルトの名無しさん mailto:sage [2018/03/05(月) 20:56:53.56 ID:cQ8T6f3a.net]
たし蟹
もう次スレいらんでしょ

1014 名前:デフォルトの名無しさん mailto:sage [2018/03/05(月) 21:22:28.56 ID:+lEhhk6x.net]
次世代言語と言えばsmalltalkだろ
もっとsmalltalkの話しようぜ!

1015 名前:デフォルトの名無しさん mailto:sage [2018/03/05(月) 21:27:08.39 ID:CUJxqnH7.net]
申し訳ないがジョブズに自慢していいとこ取られて死んだ言語はNG

1016 名前:デフォルトの名無しさん mailto:sage [2018/03/05(月) 21:35:44.64 ID:kL27V13J.net]
あえて言おう
パクられることなくSmalltalkに残った機能なぞカスであると
イメージベース然り、become:然り

1017 名前:デフォルトの名無しさん mailto:sage [2018/03/05(月) 23:30:43.29 ID:XKEuRD67.net]
なんでDart2なんか出しちゃったんだろな
ひょっとしてグーグルって俺よりバカなんじゃないか?
俺だったらGo使うわ

1018 名前:デフォルトの名無しさん mailto:sage [2018/03/05(月) 23:39:33.13 ID:XKEuRD67.net]
いやホント、俺がプロジェクトマスターやってあげたほうがいいんじゃないか?って。
心配になってくるよな、最近のグーグルは、困ったもんだよ

1019 名前:デフォルトの名無しさん mailto:sage [2018/03/06(火) 01:37:43.48 ID:tYgPxfOY.net]
>>988
goはなんか違う気がする。
今のgoでGUIフレームワーク作ったらinterface{}だらけになる予感しかない。



1020 名前:デフォルトの名無しさん mailto:sage [2018/03/06(火) 01:41:33.41 ID:vxZYoA9J.net]
GoにGUIは明らかに不得手。
俺画面周りはHTMLとCSSで書いてるわ。
gopherjs使うと思ったよりブラウザ側でも色々させられるし。
あれ面白いぞ。

1021 名前:デフォルトの名無しさん mailto:sage [2018/03/06(火) 01:43:22.53 ID:tYgPxfOY.net]
どっちかというと比較対象はTypeScriptなんじゃないかな。null安全だったりasync awaitあったり共通点は多い。
でも、jsの仕様を引きづる言語仕様だから、そういう後方互換性を考慮しなくてもいいDartってことなんじゃないか。
google社内でも使われてるみたいだし。
flutterもreactユーザーにはしっくりきやすい。俺はTypeScript+React大好き派だから
かなりいい感じ。
チュートリアルもdartを知らんでも触れるようにできてて分かりやすい。

1022 名前:デフォルトの名無しさん mailto:sage [2018/03/06(火) 07:20:22.85 ID:kXsiMblM.net]
>>983
笑えたわww。

対照的に何度も出てくるみんなのアイドル某ボケ担当言語を外してるあたりも、
個人的怨嗟が垣間見える。

1023 名前:デフォルトの名無しさん mailto:sage [2018/03/06(火) 08:33:44.80 ID:E3ObYs9n.net]
>>993
単純に一番少ないやつ挙げたんだけどね

1024 名前:デフォルトの名無しさん mailto:sage [2018/03/06(火) 10:09:42.47 ID:x/Au45rc.net]
次世代言語9[Haskell Rust Kotlin TypeScript Dart]
me

1025 名前:vius.5ch.net/test/read.cgi/tech/1520298555/ []
[ここ壊れてます]

1026 名前:デフォルトの名無しさん mailto:sage [2018/03/06(火) 17:55:36.25 ID:+o/JM6Eu.net]
flutterってどんなアーキ使えばいいの?
reactと同じだからflux?

1027 名前:デフォルトの名無しさん mailto:sage [2018/03/06(火) 20:24:51.38 ID:aemwhbpR.net]
>>996
flux自体がReactの延長上の思考法なわけだから。
基本は極力Stateの管理をするコンポーネントを一箇所に集めろって話。
flutterもおんなじだろうね。
詳しくはReactの考え方でググってみ。

1028 名前:デフォルトの名無しさん mailto:sage [2018/03/06(火) 23:57:19.92 ID:osOtByTq.net]


1029 名前:デフォルトの名無しさん mailto:sage [2018/03/06(火) 23:57:52.53 ID:osOtByTq.net]




1030 名前:デフォルトの名無しさん mailto:sage [2018/03/06(火) 23:58:24.93 ID:osOtByTq.net]


1031 名前:デフォルトの名無しさん mailto:sage [2018/03/06(火) 23:58:49.26 ID:osOtByTq.net]


1032 名前:デフォルトの名無しさん mailto:sage [2018/03/06(火) 23:59:19.76 ID:osOtByTq.net]
1000

1033 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 95日 0時間 50分 58秒

1034 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<251KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef