次世代言語Part8[Haskell Rust Kotlin TypeScript]at TECH
次世代言語Part8[Haskell Rust Kotlin TypeScript] - 暇つぶし2ch411:デフォルトの名無しさん
17/12/18 08:13:16.77 9GZmy5yv.net
>>401
強い型付けの動的型言語なら、値に対するテストを書けば型に対するテストは不要です
assert(x > 0) というテストを書いたのに、さらにxが文字列かどうかテストする必要ははありませんね
反論するなら反例を出してくださいね
クソくだらない長文はいらないので

412:デフォルトの名無しさん
17/12/18 08:13:41.10 UBkq3PS9.net
>>397
わからんならしたことがないって事だ。

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

414:デフォルトの名無しさん
17/12/18 09:01:45.44 yq3smURe.net
>>402
自演乙

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

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

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

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

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

420:デフォルトの名無しさん
17/12/19 02:4


421:5:28.87 ID:4MuASRxE.net



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

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

424:デフォルトの名無しさん
17/12/19 08:55:34.79 9wTQQ92p.net
>>410
反例じゃん?

425:デフォルトの名無しさん
17/12/19 09:24:51.77 ngbi4CU2.net
>>402「強い型付け言語である場合、値のテストをすれば型のテストはいらない」
>>407「弱い型付け言語でも型のテストがいらない場合がある。また、強い磁場中の利用であればa=170,b=85,a+b==255のようなキチガイじみたテストをする」
あガガイのガイ

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

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

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

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

430:デフォルトの名無しさん
17/12/19 13:31:22.89 xjqFNtfj.net
ガイ・スティール・ジュニア略してガイジ。

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

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

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

434:デフォルトの名無しさん
17/12/19 18:52:02.43 ngbi4CU2.net
>どうおかしいか理解させられない時点で同じ穴の狢
あDHDには何回か丁寧に説明してやったし、その度に「そういうことか。理解してなかった」って言われて来た
もううんざりだ。おまえであることがわかった以上もう説明せんよ

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

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

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

438:デフォルトの名無しさん
17/12/19 20:47:02.26 dep2iFkQ.net
現実もほったらかしにしてるわ。
だからまともにテストのない


439:コードがあちこちにある。。



440:デフォルトの名無しさん
17/12/19 21:09:05.12 +t5AZThl.net
>>424
ほら、理解させられないw

441:デフォルトの名無しさん
17/12/19 21:45:39.68 hKOvQSVX.net
次世代言語の話をしろよ…

442:デフォルトの名無しさん
17/12/19 22:19:39.18 IFsKBc84.net
次世代言語は静的型か動的型か?

443:デフォルトの名無しさん
17/12/19 22:22:03.65 VYW2hLxr.net
静的型に決まってるやろ…

444:デフォルトの名無しさん
17/12/19 22:42:35.74 ngbi4CU2.net
動的言語Clojureさん

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

446:デフォルトの名無しさん
17/12/19 23:52:06.32 LaOLTVhQ.net
型無し旧世代ガイジどもは死ね

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

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

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

450:デフォルトの名無しさん
17/12/20 01:40:49.86 RSIhrBYE.net
>>435
動的型付け言語の方が新しいんだよなあ

451:デフォルトの名無しさん
17/12/20 02:07:25.86 KBs5e3Jn.net
新しければ常にいいなら世の中楽だな

452:デフォルトの名無しさん
17/12/20 02:08:13.16 yTANvvcN.net
新しいものが良くないのは地獄すぎる

453:デフォルトの名無しさん
17/12/20 06:17:59.95 megjw+LT.net
2世議員とかな

454:デフォルトの名無しさん
17/12/20 07:55:10.76 YSR/eiRE.net
>>439
プッ 恥ずかしい子・・・

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

456:デフォルトの名無しさん
17/12/20 08:44:51.44 megjw+LT.net
人間万事塞翁が馬ということだな。

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

458:デフォルトの名無しさん
17/12/23 01:16:52.24 t3UiuX8x.net
多重ディスパッチ

459:デフォルトの名無しさん
17/12/24 00:50:02.64 g6gmcbUh.net
Lispは神の言語

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

461:デフォルトの名無しさん
17/12/24 03:09:03.29 zxcNg14q.net
LISPは神がかってるけどSmalltalkはゴミ

462:デフォルトの名無しさん
17/12/24 12:09:04.21 L0WbVZsM.net
神さまが話していたので神の言語です

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

464:デフォルトの名無しさん
17/12/24 14:10:43.44 g6gmcbUh.net
実は俺はsetqとか嫌い

465:デフォルトの名無しさん
17/12/24 15:59:57.85 On/fo7aB.net
アンアン
      o
    o_ /)
     /<<

12月24日の午後9時から翌25日の午前3時までの6時間は
1年間で最もセックスをする人の多い「性の6時間」です。
貴方の知り合いや友人ももれなくセックスをしています。
普段はあどけない顔して世間話してるあの娘もセックスをしています。
貴方が片想いしているあの綺麗な女性もセックスをしています。
貴方にもし年�


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



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

468:デフォルトの名無しさん
17/12/25 00:45:32.17 KmZOPanU.net
やっぱり括弧が辛かったのか

469:デフォルトの名無しさん
17/12/25 01:01:15.56 0H4Emls0.net
意識高そうに見えてしまったとか

470:デフォルトの名無しさん
17/12/25 01:22:46.82 LEWwY/wL.net
彼らは意識高い系じゃない、自意識高い系だ

471:デフォルトの名無しさん
17/12/25 01:59:00.89 qFggHRB9.net
かっこつけすぎなんだよ

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

473:デフォルトの名無しさん
17/12/25 07:03:51.04 0H4Emls0.net
実際最古のPythonと言っても過言ではない

474:デフォルトの名無しさん
17/12/25 12:03:25.79 kkhOzk4j.net
Lispの系譜にあるPythonが生き残って
Smalltalkの系譜にあるRubyが死んだのは
必然だったな

475:デフォルトの名無しさん
17/12/25 13:04:23.59 kMbU4vvz.net
今時(2017)のSmalltalkの始めかた
URLリンク(medium.com)

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

477:デフォルトの名無しさん
17/12/25 20:02:13.61 P1YyQnZH.net
Rubyの元はPerlだろ。

478:デフォルトの名無しさん
17/12/25 22:50:10.19 Z5v7fEWF.net
多重継承やぞ

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

480:デフォルトの名無しさん
17/12/26 00:51:10.57 Qxp4eKO0.net
松本さんはlisp の影響がでかいと言ってはいる
URLリンク(gihyo.jp)

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

482:デフォルトの名無しさん
17/12/26 10:35:41.47 Hd2qVaf/.net
サービスやどのくらい急ぐかにもよるけど「動作する仕様書」としてそのまま本番投入って荒技も使えるしね
スタートアップ界の異端児!産業機器 x IT x SmalltalkのSORABITO株式会社
URLリンク(thepedia.co)

483:デフォルトの名無しさん
17/12/26 12:42:11.47 9JscEoEu.net
そして負の遺産になるわけですね

484:デフォルトの名無しさん
17/12/27 00:30:29.97 AqtANtDH.net
>>471
コレメンサスンゴなんだよなぁンゴ

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

486:デフォルトの名無しさん
17/12/27 11:00:24.41 gUZ1SoEG.net
次世代言語スレで旧時代の死体蹴りは感心しない

487:デフォルトの名無しさん
17/12/27 12:07:11.37 V4t27acZ.net
>>473
Haskellのほうがひどいぞ

488:デフォルトの名無しさん
17/12/27 12:36:42.15 P2OckTcS.net
こんな話題にまでHa


489:kellぶち込んで来て どんだけHaskell嫌いなんだ……



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

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

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

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

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

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

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

497:デフォルトの名無しさん
17/12/28 09:27:42.05 wX0EFIYP.net
画像でやってるからそういうのは起こりにくいのかも。

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

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

500:デフォルトの名無しさん
17/12/29 15:51:08.69 qAknRtUW.net
>>480
写真のオッサンどものザ・無能・SI感がヤバみ

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

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

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

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


505:目でインデントをいじくって試行錯誤する姿が目に浮かぶわ



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

507:デフォルトの名無しさん
17/12/29 19:02:44.12 NmAcZsuY.net
アメリカに尻尾ふる日本人

508:デフォルトの名無しさん
17/12/29 19:27:10.69 EmauInAe.net
>>489
確かに定量化のツールは腐るほどあるが、
「本当の意味での見た目」を定量化したのは割と初めてじゃない?
面白いと思うけど。
無視する輩ってどこから来たのかわからんが、たいがいそういう奴は決まってしまえば無視はしない。
無視する事は出来ないから導入自体を見送らせる。
そこで、ルールベースじゃなくて「雰囲気」を一つの指標にするってのはアリだと思うけど。
機械の指摘ももちろんだが、機械の指摘をもって人間が指摘するんだから、あんまかわらん。
それに、そもそも人間の指摘も無視するわけじゃないだろ。
人間の指摘を無視するやつはそもそもプロジェクトでは長生き出来んだろ。社会人なんだから。
二元論じゃなくて、新しい尺度じゃね?
受け入れ側の問題と断ずるのは簡単だが、何故受け入れさせる事が出来ないか、ってのはそれを推す側の問題だと思う。

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

510:デフォルトの名無しさん
17/12/29 22:23:50.72 cw3UbRdF.net
>>494
才クロマティック数とかさ、普通に気にしてりゃそこまでひどいことにはならんわけよ。
ツールの数はおれは十分だと思ってるけれど、結局そういう地道な数値なんてのはむしするわけだ。
ただただ新しい指標作りましたっていうアリバイ発明のためだけってのは
この業界では昔からいっくらでもあるわけで警戒するのが普通なんだよ。
URLリンク(msdn.microsoft.com)
受け入れられない理由はそいつの能力と与えられる時間の割合の話にしかならん。
地道に受け入れる体制をつくるかそういう奴を切るかの二つしかないのに
糞みたいな幻想にしがみついてるだけだわ。

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

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

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

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

515:デフォルトの名無しさん
17/12/30 12:37:56.63 sz1BobDC.net
>>496
無視するんじゃなくて、理解出来ない人間も居るんだし、そいつらを黙らせるのにも便利だと。
アリバイじゃないよ。わかったふりをさせて承認印を押させるような行為がアリバイだろ。
大体、営業や経営がシステムの事を深く理解する必要は無いし、大本営直下の人間ってのはそのどちらか寄り。
それは戦略上の必要悪なんだから、切る切らないの議論としては話にならん。
そいつらが見る時に、今までは言っちゃえば騙して盲判を押させてただけだろ。
地道なツールを無視するんじゃない。それは今までどおり開発


516:部で使えばいいじゃない。



517:デフォルトの名無しさん
17/12/30 13:01:46.50 KDbqwYpR.net
マ板でやれ

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

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

520:デフォルトの名無しさん
17/12/30 18:01:18.34 WOZO0R3V.net
違うよ

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

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

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

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

525:デフォルトの名無しさん
17/12/31 10:22:03.98 rHg6Qc+M.net
Lisp系はどうなる

526:デフォルトの名無しさん
17/12/31 10:22:23.79 rHg6Qc+M.net
>>508
そうだけどなにか

527:デフォルトの名無しさん
17/12/31 11:09:20.17 OUK6bPn9.net
>>508
優劣の基準によるだろ。

528:デフォルトの名無しさん
17/12/31 13:25:14.78 G5F8BPZR.net
いろんな言語の悪口言ってるw
Debunking Myths About Programming Languages (and More)
URLリンク(www.youtube.com)

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

530:デフォルトの名無しさん
18/01/01 12:39:18.50 /aa2tlFp.net
Haskellのバイナリはイメージ出来んな
でも出来る必要あるか?

531:デフォルトの名無しさん
18/01/01 12:49:38.56 UOCN9gps.net
する必要がない人が使うんだろ。
良いじゃん、バイナリサイズが大きかったり、メモリ消費が多かったり、動作が遅ければ計測すれば。
大きくなるだろうな、メモリたくさん使うだろうな、これじゃ遅いだろうな、なんて気づきは無駄らしい。計測が全てらしいわ。
また半狂乱になって必要性の無さを説くのを眺めるのもめんどくさいし、そういう言語だって理解でいいんじゃねえの?

532:デフォルトの名無しさん
18/01/01 12:55:17.85 /aa2tlFp.net
どうせPythonとかでもバイナリイメージ描かんじゃろ?

533:デフォルトの名無しさん
18/01/01 13:07:46.20 /aa2tlFp.net
Haskellは動的言語以上にそっちの方向いっとる
そっちの極みやね

534:デフォルトの名無しさん
18/01/01 14:34:14.61 aCS5pbMF.net
くすくす

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

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

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

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

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

540:デフォルトの名無しさん
18/01/01 19:46:21.62 /faDXLzU.net
実行できない仕様記述言語の方が初心者に優しい
バイナリとかメモリとか気にする必要がないことが明確になる
実行できる機能を追加したら言語の評価が下がる
もちろん実質的な価値は上がるが、評価と実質が乖離するのは初心者には難しい

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

542:デフォルトの名無しさん
18/01/01 21:49:32.98 /aa2tlFp.net
Haskell最大の謎仕様は「Num」だと思う

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

544:デフォルトの名無しさん
18/01/01 22:59:07.73 yhABuCD4.net
それもそうか。たしかに妙なところで妙な泥臭さが顔を出すな

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

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

547:デフォルトの名無しさん
18/01/02 12:30:30.49 oC5uWYs9.net
>>517
動的言語じゃん。
まあそれでもどう解釈されるかとか、これじゃinline展開されんな、とかはJavascriptでも考えるが。
>>520みたいにしない人はしなくても良いようなプログラム書いてるんだろうし、無駄だよ、この議論は。

548:デフォルトの名無しさん
18/01/02 14:12:57.96 AAYv0JXv.net
>>530
古いけどこれとか参考にならないかな?
「分析・設計ツールとしてのSmalltalk」
URLリンク(web.archive.org)

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

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

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

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

553:デフォルトの名無しさん
18/01/03 07:32:07.83 jID8SJMc.net
>>535
あまりに動的性を追求しすぎててインタープリタ言語と勘違いされがちだけど
Smalltalkも(VMで動くJavaがそうであると言える程度には)コンパイラ言語なので
「動く」以上はコンパイルは「通っている」んだな、一応w
もちろん533が言いたいのはそういうことじゃないことは分かっているんで、マジレスすると
型システムのチェック(のことだよね?)を通すのにコスト(主に人員や時間)をかけられる程度に
急ぎでない(つまり「仕様が固まっている」)のならSORABITOとかで求められる
「必要なら本番投入も可能な動く仕様書」的側面はきっとあまり役には�


554:ァたないだろうね



555:デフォルトの名無しさん
18/01/03 08:02:43.84 jID8SJMc.net
>>535,536
こっちにもマジレスすると、実際そのとおりで
Smalltalkの設計者ら(アラン・ケイだけど)は
ひどいと「地獄」とまで形容されるそれ、つまり本番投入後の要求変更を必要不可避なものとして捉え
天国とまでいかずとも他言語には難しい後からの大胆な仕様変更をも支援できる動的性を
この処理系(環境を含む)に付与することに腐心し、それはある程度奏功している
「ソフトウェア工学」は矛盾語法か? -- アラン・ケイ
URLリンク(metatoys.org)
Smalltalkの底を流れる設計思想 -- ダン・インガルス
URLリンク(web.archive.org)
TDDの「ひどい仮実装でもとりあえずグリーンにするのを優先し、そこから重複を除去(リファクタリング)」
というとんでもない発想が生まれ得たのもSmalltalkのこの大胆な変更への追随力があったから

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

557:デフォルトの名無しさん
18/01/03 13:41:42.24 0ljbskXf.net
Pythonよりすっきり書ける言語がないという事実

558:デフォルトの名無しさん
18/01/03 15:29:23.56 BD5Fg5Uh.net
>>541
lamdaが糞
finalがない
privateがない
はい完全究極ロンパリオン・ギガアタックEx

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

560:デフォルトの名無しさん
18/01/03 16:16:41.94 1ORngv96.net
>>542
×lamda
○lambda
>>542
Y コンビネータをすら記述できない lambda 仕様が特にコンパイル言語にも氾濫しているが、いったい何の役に立つんだ?老害避けのつもりか?

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

562:デフォルトの名無しさん
18/01/03 16:44:08.47 CJ7nUX51.net
Zコンビネータじゃ駄目なんか?

563:デフォルトの名無しさん
18/01/03 17:44:23.37 BD5Fg5Uh.net
俺なんかXenoExtraUltraGigaJetHyperUltraMiracleSuperコンピータだが文句あるか?

564:デフォルトの名無しさん
18/01/03 18:27:49.94 1ORngv96.net
>>547
君の芸風とても好きだ!
>UltraGigaJetHyper**Ultra**

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

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

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

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

569:デフォルトの名無しさん
18/01/03 20:25:39.92 ykBugU3C.net
>>552
弄ることは無いが、あるべき姿になるようにTS側で書き分ける事はあるかな。
くっそ遅い関数がなんで遅いのかを調べにかかった時に、モヤモヤした覚えがある。
genericsとか、型ごとの関数をちゃんと作ってほしいけど、一つだったり。今違うかったらすまん。
その時は、これでJIT結果捨てる事になってる…って気づいて、素直に沢山関数を作った。
コンパイラと言うならもう少しVMの仕様を鑑みても良いと思う。

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

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

572:デフォルトの名無しさん
18/01/04 01:19:26.61 j8WFIzPh.net
wasmが吐き出すjavascript気になるマンが出てくるに100000000000000ジンバブエドル

573:デフォルトの名無しさん
18/01/04 02:20:20.25 Gm3YPo14.net
気にしないでいいって保証が欲しいのはよくわかるよ。

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

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

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

577:デフォルトの名無しさん
18/01/04 13:22:41.64 h9oQFOEG.net
>>560
そんなもんJITがやるべきことでしょ

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

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

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

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

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

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

584:デフォルトの名無しさん
18/01/04 19:52:37.93 c10UOky1.net
>>566
ブラウザだけで動かしたい訳でもないし、起動時のパースのフットプリントをどうこう言うのであれば、今のNodeのnode_modules自体、既に無茶苦茶でしょ。
それも、最初に一発パースするからそうなるんであって、bootstrapとその後に分ければいいんでないの?
>>567
ペチプァ言いたいだけだろうが、ペチプァ連呼して悦に入って問題を理解できないやつにゴタゴタ言われたくはない。

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

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

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

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

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

590:デフォルトの名無しさん
18/01/04 21:23:18.84 typzK5sH.net
ちょっと笑った

591:デフォルトの名無しさん
18/01/04 22:58:20.94 ZFKdQPiM.net
ペチPoorは良いな。俺も使わせてもらおう

592:デフォルトの名無しさん
18/01/04 23:59:42.42 /Un6+mBC.net
ペチPoohでもいいぞ

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

594:デフォルトの名無しさん
18/01/05 07:47:15.22 QF8nYsKX.net
>>577


595:デフォルトの名無しさん
18/01/05 10:36:04.85 OSZVMsU9.net
>>577
おっ 頭がPoorのペチPoorか?

596:デフォルトの名無しさん
18/01/05 12:08:39.39 2QFGEILP.net
ペチPoorはおつむもおちんぎんもPoorでかわいそうね

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

598:デフォルトの名無しさん
18/01/05 13:38:22.06 rGChZwpO.net
>>580
やめたれw

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

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

601:デフォルトの名無しさん
18/01/05 18:22:04.71 rGChZwpO.net
推測するな 計測せよ
って言葉知らんのか?

602:デフォルトの名無しさん
18/01/05 18:43:32.98 /3vfwTze.net
知らん

603:デフォルトの名無しさん
18/01/05 18:44:03.04 /3vfwTze.net
考えるな、感じろ。なら知ってる。

604:デフォルトの名無しさん
18/01/05 18:47:50.38 2QFGEILP.net
それ知らんのはガイジ

605:デフォルトの名無しさん
18/01/05 20:49:35


606:.32 ID:WQychI9E.net



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

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

609:デフォルトの名無しさん
18/01/05 21:25:02.92 5kzCv3dH.net
TypeScriptをlint扱いは流石に草

610:デフォルトの名無しさん
18/01/05 22:31:21.64 EMt1frzJ.net
推測も測定も両方しろよ。

611:デフォルトの名無しさん
18/01/05 23:22:56.45 iSZmj121.net
もうPooHPでも書いてろよ

612:デフォルトの名無しさん
18/01/06 14:22:11.98 pmlj07ym.net
>>590
違うらしいよ、信者様によると。

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

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

615:デフォルトの名無しさん
18/01/06 15:18:49.96 Zbelr2Bx.net
臭い奴がおるな

616:デフォルトの名無しさん
18/01/06 16:25:24.67 vE17HoYT.net
wasmにGCが搭載された暁には
いくらでも頑張って欲しい

617:デフォルトの名無しさん
18/01/06 16:48:12.08 pmlj07ym.net
>>597
いや違うだろ。
なんでTSのコンパイル結果がクソなのをV8が面倒見るべきかわからんが。
普通にコンパイラとして真面目にコンパイルすりゃいいのに、って話で、
トランスパイラならトランスパイラと名乗れば良いのに。
よくもまぁこういう擁護ができるなぁと思うわ。
V8や他のJSエンジンは、JavaScriptの処理系であって、TypeScriptの処理系じゃねえんだから。
それこそ、TypeScriptが吐き出した中途半端なJSに対するチューニングなんか必要ないだろ。
V8側のスタンスは「最初からJSで書きゃ良いだろ、asyncが欲しい?考えてやるよ」と機能の面では歩み寄ってきたじゃん。
そういう意味で、wasmに振って、ちゃんとコンパイルするAssemblyScriptはいい方向だと思うが、
tscの方向性は微妙としか言い切れんと思う。
TS自体がなんで未だにJSに引きずられる必要があるのかわからんが、皆がそれで良しとする理由は「中途半端で良いから」なの?

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

619:デフォルトの名無しさん
18/01/06 17:16:11.92 vE17HoYT.net
名前の通りbetterJS以上の認識は無いな
少なくともtscだろうとtstだろうと単なる名前に拘る奴は居ないと思う
>いかんのか?
いいと思うよ

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


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



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

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

624:デフォルトの名無しさん
18/01/06 20:51:20.91 jSg6g7bL.net
>>605
PooHPoorさん・・・w

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

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

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

628:デフォルトの名無しさん
18/01/07 13:26:29.62 WSf4F++k.net
>>608
あ、そうなんだ。それは良い風に変わってるんだな。
俺が見たときはほとんど整数、たまにエラーを表すオブジェクトのときに、毎回オブジェクトの時にJIT捨ててたけど、古いといえば古い話だし。
まぁプロファイル次第なんだろうな。
>>609
どっちが馬鹿とかじゃなかろうが。
そういう発想がマウンティングとかいう発言に繋がってんの?

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

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

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

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

633:デフォルトの名無しさん
18/01/07 14:37:44.54 8Eqg8PLM.net
2 >= 1

634:デフォルトの名無しさん
18/01/07 15:41:02.61 WSf4F++k.net
変な荒れかたするもんだな。

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

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

637:デフォルトの名無しさん
18/01/07 21:51:35.49 tEoGaVYL.net
HaskellとKotlinとTypeScriptのサンプルが出なかった時の話だろうか

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

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

640:デフォルトの名無しさん
18/01/07 22:26:14.15 WFi36oCb.net
5chは初めてか

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

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

643:デフォルトの名無しさん
18/01/07 23:22:37.67 +RrxdpdM.net
PooHPoorの話はおいといて、好きな言語の話をするのは良いな

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

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

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

647:デフォルトの名無しさん
18/01/08 10:50:08.35 si2lRCsu.net
現実でニコニコ
ネットで陰口
美しい国ジャップランド土人村

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

649:デフォルトの名無しさん
18/01/08 14:51:35.25 isNCSjM0.net
>>629
おま環だろ?

650:デフォルトの名無しさん
18/01/08 18:13:08.29 e0/LavPD.net
おま国だろ

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

652:デフォルトの名無しさん
18/01/08 22:54:56.01 e0/LavPD.net
全てのJSプロジェクトはTypeScriptにしろ
棒案件で立ち上げ時にクソバカの老害オッサンがJSでコード書き始めたせいで
どんだけ苦労したか

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

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

655:デフォルトの名無しさん
18/01/09 00:53:34.69 mcq0XcNK.net
下痢便が軟便になる程度だろ

656:デフォルトの名無しさん
18/01/09 17:04:26.38 vMJYxq5i.net
TypeScriptもいずれノーマルjsに吸収される

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

658:デフォルトの名無しさん
18/01/09 18:53:23.55 dlYDsmgP.net
>>623
もう叩いてないぞ。
割と興味出てきたのに、誰も、ここが良い!を言わないからつまんねえのって思ってるだけだよ。
スレタイに入れたいだけじゃねえの?って。
正直、使ってみた感じは悪くないけど、この便利な言語でこういう事すると楽かな?みたいなのがあんまり思いつかんので、良いサンプルは見たいな。
GoのGoroutineやchanの気軽さとか、erlangのプロセスの考え方みたいなのとか。

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

660:デフォルトの名無しさん
18/01/09 19:50:56.76 MVMyukKY.net
Haskell使った有名なアプリってなんかあるの?

661:デフォルトの名無しさん
18/01/09 19:55:51.91 WTFA4htZ.net
xmonad

662:デフォルトの名無しさん
18/01/09 20:14:49.53 EVhg342m.net
monadius

663:デフォルトの名無しさん
18/01/09 21:09:47.45 Dcv/I53t.net
これとか?
URLリンク(code.facebook.com)

664:デフォルトの名無しさん
18/01/09 21:25:06.32 p1Q0x2y+.net
データフィルタ的に使うのなら確かにいいかもな。

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

666:デフォルトの名無しさん
18/01/13 21:15:44.50 c6t40eQY.net
>>6


667:42 Pandoc



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

669:デフォルトの名無しさん
18/01/15 21:19:36.73 +I1W8YzH.net
さいなー

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

671:デフォルトの名無しさん
18/01/16 13:33:12.35 9RwiafIQ.net
せやな

672:デフォルトの名無しさん
18/01/16 22:37:54.03 rkvgxjqz.net
ビットコインの流行「奴は流行の中で最弱」

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

674:デフォルトの名無しさん
18/01/17 10:07:53.77 9HqucL9D.net
pythyonって関数型書きやすい?

675:デフォルトの名無しさん
18/01/17 10:31:26.77 I48MtSJA.net
書きにくい

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

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

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

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

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

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

682:デフォルトの名無しさん
18/01/17 13:35:55.43 dt2TzLE6.net
そうやって悪態をつくのも会話ができない人の典型

683:デフォルトの名無しさん
18/01/17 13:57:51.64 PYB4eJ3B.net
rubyのfirst classですらないlambdaだって書きやすくはねーだろ

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

685:デフォルトの名無しさん
18/01/17 20:11:35.06 ZAXr3Ump.net
PythonicとかPythonistaとか、改めて見るとすごい呼称だ。

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

687:デフォルトの名無しさん
18/01/17 21:34:21.77 zdlnY+SA.net
>>658
あれれ、日本国内ではそういう認識が浸透してるの?
世界的には Python の lambda が欠陥であることは広く知られていて、
改善に向けた議論も重ねられたけど、結局、作者のGuido氏が
「解けないパズル(unsolvable puzzle)」と匙を投げたという残念な
結論のまま現在に至っているという共通認識があります
スレリンク(tech板:197番)/
やっぱり日本在住の Pythonista がガラパゴスなのは昔から同じですね
スレリンク(tech板:70-71番)

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

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


690:ヨのリンクで困惑している



691:デフォルトの名無しさん
18/01/18 05:27:53.26 zo82h2qj.net
Pythonあまり知らんけど、上のリンク見てて思ったのは、
1. 自分で高階関数を作れない(ラムダ式が利用できる関数が少ないと書いてある)
2. where節みたいなスコープの限定されたローカルな書き捨ての関数を用意する文法がない(読みにくいでしょ?とか書いてある)
この辺の縛りがあるからでないかい?

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

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

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

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

696:デフォルトの名無しさん
18/01/20 15:07:10.20 TIRmwaq4.net
イムータムルのない言語は全て糞

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

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

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

700:デフォルトの名無しさん
18/01/20 18:18:48.11 JZVVUERo.net
もしかして、あ氏?
だとしたら、お久しぶりです。

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

702:デフォルトの名無しさん
18/01/20 20:52:07.08 4frS9VE4.net
>>681
単なる場合分けだから裏付けもクソもない

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

704:デフォルトの名無しさん
18/01/20 21:09:03.16 zaN+pP6E.net
学術的なことは分からないけども、静的型のパターンマッチは網羅性を
コンパイル時にチェックしてくれることが多くて
それが凄くありがたい
動的型言語にパターンマッチを持って来ても上手くいかないのは、
上のメリットが得られないからでは?

705:デフォルトの名無しさん
18/01/20 21:28:06.72 L/NwSAXQ.net
>>681
上の人が書いてるように、ただの場合分けだと思う。ただ、>>684の人も書いてますが、本当に網羅しているか、を考えると理論が出てくる気がする。
定義域の型が、型コンストラクタで定義されてれば、そいつら全てについて場合分けする、
で、そいつらも型コンストラクタが入ってれば、、てのを続けていけば、全てについて網羅的な場合分けが出来る。
言葉だとわかりにくいですが、Agdaの動画を見るといいと思います。
定理を証明するのに、上の場合分けを考慮する必要があって(漏れたら困りますよね?)、
実際EmacsのAgdaモードだとそういうのを勝手に展開してくれるコマンドがあり、
ゲーム感覚で証明してく感じ。
で、カリーハワード対応を考えると、関数の定義も結局は同じで、実際同じコマンドを使って進めてくことになる。その流れでやれば、後で漏れてる云々は問題にならない。
こんな感じですかね?

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

707:デフォルトの名無しさん
18/01/20 23:10:12.11 fmAc02d6.net
>>680
俺は最近書いてないぞ。
つまらんからな。

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

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

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

711:デフォルトの名無しさん
18/01/21 01:37:10.13 kGWmn81W.net
つまり・・・どういうことだってばよ?

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

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

714:デフォルトの名無しさん
18/01/21 11:06:54.37 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:デフォルトの名無しさん
18/01/21 11:22:08.22 1jbGMztY.net
こういうときオブジェクト指向ってアホの自慰っぽいなと思う

716:デフォルトの名無しさん
18/01/21 12:05:31.75 kGWmn81W.net
全てのif文を消し去るのです

717:デフォルトの名無しさん
18/01/21 13:37:58.84 I3ORKf0i.net
その次の世代はtemplateを使いvirtualを消し去る
だからifが復活

718:デフォルトの名無しさん
18/01/21 14:30:35.35 kGWmn81W.net
>>697
はいサイクリングマチカル複雑度増加

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

720:デフォルトの名無しさん
18/01/22 00:18:19.80 WYTiMnwL.net
C#

721:デフォルトの名無しさん
18/01/22 00:18:46.23 7qCCLtD1.net
サポートするの定義が曖昧すぎる。

722:デフォルトの名無しさん
18/01/22 00:28:37.30 +fzK3Dih.net
そうかC#があったか。ありがとナス��

723:デフォルトの名無しさん
18/01/24 05:54:32.12 V1qhcEkf.net
>>699
それサポートしてない言語って何があるの?

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

725:デフォルトの名無しさん
18/01/24 10:13:41.67 apJvYiuW.net
>>704
多次元配列サポートすると何の役に立つの?

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

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

728:702
18/01/24 10:59:06.24 J/V7RjN6.net
>>706
Racket挙げてるし中置演算子は重要度低いけど、よく使う関数はチューニングされたものを置いておいて欲しいな
Numpyだって標準ライブラリじゃないし、最悪標準ライブラリじゃなくてもいいけど、「数値計算するなら常識的に考えてこれ」という一つに定まっていてほしいな。
あるライブラリはEigenに依存しているが他のあるライブラリはublasに依存してるみたいなのはやめて欲しい

729:702
18/01/24 10:59:37.34 J/V7RjN6.net
間違えた。
安価は>>707

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

731:デフォルトの名無しさん
18/01/24 11:09:12.83 J/V7RjN6.net
第一級関数のことかな?
多次元配列はレアだよ

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

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

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

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

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

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

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

739:
18/01/24 20:39:13.05 m3QL6muE.net
>>714
やはり再帰的思考が勘所かと考えていますので、scheme をお勧めしようかと思っています

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

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

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

743:デフォルトの名無しさん
18/01/25 14:09:07.50 ArcwQAgj.net
Excelはビ�


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



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

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

747:デフォルトの名無しさん
18/01/25 14:41:15.02 NsBjyJ7C.net
>>725
再帰なんか同じ表の行番号を持たせるだけだろ

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

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

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

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

752:デフォルトの名無しさん
18/01/25 22:42:04.62 uaT/xfzY.net
flake8を使えば

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

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

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

756:デフォルトの名無しさん
18/01/27 13:04:44.52 7uBpZq93.net
レベル下がったなぁ

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

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

759:デフォルトの名無しさん
18/01/27 22:13:06.80 RNgYnDaT.net
>>736
天井Lみたいなこと言うな

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

761:デフォルトの名無しさん
18/01/28 23:40:40.83 ZERk9zo5.net
保守受注独占するために汚くするんやぞ

762:デフォルトの名無しさん
18/01/29 22:16:09.55 4480+Jxl.net
そういう足を引っ張る人には�


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



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

765:デフォルトの名無しさん
18/01/30 01:47:45.52 ZcZnTiUX.net
ソースがきれい → オタクの自己満足
ソースがきたない → 工数取れて残業代も出る、みんなニッコリ
これが現実やで

766:デフォルトの名無しさん
18/01/30 10:52:36.78 2Eamtv1n.net
そんなことしてるから他国の技術に駆逐されるんだよ。。

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

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

769:デフォルトの名無しさん
18/02/01 08:43:21.74 AVafL46K.net
故意にその言語で書いてる以上、もう偶然でもなんでもないだろ。
ちゃんとその言語のメリット、デメリット含めて布教してから使うべきだと思うが。

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

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

772:デフォルトの名無しさん
18/02/01 15:37:35.21 suqSmKNo.net
Elm はどう?
ここ見てたら興味出てきた
URLリンク(nulab-inc.com)

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

774:デフォルトの名無しさん
18/02/12 17:15:27.49 NkUQn5xe.net
URLリンク(arison.jp)

775:デフォルトの名無しさん
18/02/12 17:16:33.56 NkUQn5xe.net
URLリンク(i.imgur.com)

776:デフォルトの名無しさん
18/02/14 20:27:03.68 SwEfqZxS.net
ASM.net

777:デフォルトの名無しさん
18/02/15 23:40:47.93 yLr3787F.net
clojure やれよ?

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

URLリンク(youtu.be)

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

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

781:デフォルトの名無しさん
18/02/18 15:51:20.83 AYB00j0e.net
>>758
欲求は際限なく広がって、そしてゴミの塊みたいな仕様になるもんだ。
ずっと前からTypeScriptは手段と目的をどっかで履き違えたと言ってたが、最近シャレになってない。
Goの割り切りは納得に値するよ。あったら便利なのは認めるけど。
Cppのtemplateみたいに、それだけでチューリング完全になってしまう前に、最初から入れない、やるならgenerateで別立てで勝手にやれと言う割り切りしたのは英断だと思う。

782:デフォルトの名無しさん
18/02/18 17:25:12.30


783: ID:CW1UlThv.net



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

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

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

787:デフォルトの名無しさん
18/02/18 22:15:41.08 +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:デフォルトの名無しさん
18/02/18 22:19:58.51 +Qsqi9wm.net
あと詳しい人に聞きたいんだけどやっぱりジェネリクス一つとっても
言語によって全然仕様が違うのかね?
だとしたらGoはコードジェネレートと組み合わせも考慮したちょうどいい便利さの
ジェネリクスというのも考えていて実装を見送ってるのかも。
でもGoにはそれ以前にnull安全を実装してほしい気がするが。
レシーバがnullの可能性があったりnull周りに罠があるんだよねGoは

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

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

791:デフォルトの名無しさん
18/02/18 23:45:12.91 LabDqOSD.net
むしろJavaScriptさんが悔い改めるべきではないか?

792:デフォルトの名無しさん
18/02/18 23:52:24.01 AYB00j0e.net
Goでレシーバがnilになれるのは案外便利だぞ。
あれは罠ではない。
型や型クラスに階層構造持つのはいつでも便利なわけではないと言うか、結局コンパイラ都合を押し付けられてるだけな気がするけどな。
その辺、後出しジャンケンできるGoのinterfaceの方が楽な事が多い。

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

794:デフォルトの名無しさん
18/02/19 01:32:35.15 1YgzgKOj.net
「型が同一である」の定義がわからない
犬型と猫型は異なるともいえるし同じ動物型ともいえる
この辺の仕様を捨ててからジェネリクスを追加するのが基本
もし両方入れてゴミ言語ができたら
捨てられないのが原因ともいえるし追加したのが原因ともいえる

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

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

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

798:デフォルトの名無しさん
18/02/19 09:53:32.16 isUwiiOH.net
>>769
便利さを教えてほしいな。
純粋なnilと型があるけど中味はnilって正直わかりづらくないかな。
reflectionのお勉強をしないと理解できない。
Goのインターフェースは後出しジャンケンってのは面白いな。パクらせてもらおう

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

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

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

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

803:デフォルトの名無しさん
18/02/19 15:23:40.87 FUvFB9Jm.net
ハスケルのメイビーみたいなことだろうな。

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

805:デフォルトの名無しさん
18/02/19 18:59:46.08 esiJbF27.net
>>781
error情報を最初から諦めるってことね。
とにかく最終結果がnilだからメソッドチェーンのどっかで失敗してんだろーなー。くらいの感じなのか。
標準ライブラリでそういう実装してるのあるかな?reflect.Valueとかかな。
あれメソッドチェーンできる代わりに不正なメソッド操作するとpanicしててなかなかしんどい。

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

807:デフォルトの名無しさん
18/02/19 19:14:13.94 esiJbF27.net
流れをぶった切って悪いけどTypeScriptはさすがMS。開発リソースたっぷり。という余裕を感じる。vscodeと一緒に毎週くらいの勢いでアップデート繰り返してる。
ジェネリクスの気持ち悪さもエラーメッセージがわかりやすく進化する感じで直してくれれば全然良いので頑張ってもらいたい。

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

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

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

810:デフォルトの名無しさん
18/02/19 23:02:26.53 cDVYUoQ2.net
やはりメソッドチェーンは何回も値 (nil) を返すのが気になる
Haskellでは
((Nothing >>= f) >>= g) >>= h
こうするとNothingのパターンマッチを3回するのに対し
Nothing >>= (\ y -> f y >>= (\ z -> g z >>= h))
これなら1回だけ

811:デフォルトの名無しさん
18/02/19 23:09:11.19 g9K5jJLr.net
>>787
記号がキモい
見てて痒くなる

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

813:デフォルトの名無しさん
18/02/20 00:33:09.75 uyRcVPMC.net
こんなのをありがたがるくらいならCommonLisp書くわ。

814:デフォルトの名無しさん
18/02/20 01:53:25.83 IMJo1v/e.net
その気持ちは分からんでもない

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

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

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

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

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

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

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

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

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

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

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

826:デフォルトの名無しさん
18/02/22 12:53:25.00 +RpZ2cWG.net
>>799
すまん。番号ズレてるな。以下訂正
> 俺も>>798と同意
> >>797の言ってることはいまいちよく分からん
スマホアプリ使ってると時々ズレるんだよな クソが
そのせいで自分で自分に同意するというアホな文章になってやがる

827:デフォルトの名無しさん
18/02/22 13:11:15.71 0cZDh8Nv.net
修理しない自由 vs. 修理する権利

828:デフォルトの名無しさん
18/02/22 14:54:41.89 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:デフォルトの名無しさん
18/02/22 16:43:44.83 ePT/3hrM.net
>>805
しょぼ!
その例はnull安全の中でも一番弱いやつ。
書き方を気をつければnullを避けられるってだけ。
本物のnull安全はスコープ単位ではなく、型検査が通ればプログラムにnullによる誤りを完全に排除されるんだよ。Haskellのように。

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

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

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

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

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

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

836:デフォルトの名無しさん
18/02/23 10:45:07.36 HJaUFAvs.net
>>811
ラテン語は良い喩えだね。印欧語ヒエラルキーの上の方にいるし。
俗ラテン語を見て、どこが欠落してるかの見通しが良くなる。
Haskellも足りてないけどさ、型理論的に。そういう点でもラテン語あたりなのは妥当。

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

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

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

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

841:デフォルトの名無しさん
18/02/24 00:32:37.74 LvxjVVyK.net
お、型付λアンチか?

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

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

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

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

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

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

848:デフォルトの名無しさん
18/02/24 07:57:18.04 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:デフォルトの名無しさん
18/02/24 11:17:45.72 LvxjVVyK.net
>>819
だっさw

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

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

852:デフォルトの名無しさん
18/02/24 14:17:08.41 4YJEYBsv.net
実はDelphiにはジェネリクスあるんだぜw

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

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


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