- 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/
- 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 名前:過去ログ ★ [[過去ログ]]
- ■ このスレッドは過去ログ倉庫に格納されています
|

|