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


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

次世代言語15 Go Rust Swift Kotlin TypeScript



1 名前:デフォルトの名無しさん [2018/11/04(日) 20:30:10.42 ID:OF8fjEC1.net]
スレタイ以外の言語もok

前スレ
次世代言語14 Elixir Crystal Julia Rust Swift
https://itest.5ch.net/mevius/test/read.cgi/tech/1536668904

562 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 16:18:49.96 ID:Nexfdc7v.net]
しょせんパフォーマンスでない言語

563 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 16:34:58.29 ID:RF+VrP1U.net]
esにもクラスはなくても良かったけどデコレータは早く来てほしいね
デコレータ風に組めなくもないけど面倒だしな

564 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 18:01:12.81 ID:ZhSBqocX.net]
tsはjsの呪縛でガンガンに縛られてるから全然いい言語に見えない

共有型からの流れのせいでコードに無駄な型判定が入ってて全然スマートじゃない

565 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 19:00:10.91 ID: ]
[ここ壊れてます]

566 名前:3s1WkY0F.net mailto: >共有型からの流れのせいでコードに無駄な型判定が入ってて全然スマートじゃない

ちょっとピンとこないけど具体的にはどういう記述?
[]
[ここ壊れてます]

567 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 19:23:03.00 ID:YsBQPuQx.net]
js.studio-kingdom.com/typescript/handbook/advanced_types

型判定のifなどが邪魔すぎる
こういうのを見てスマートだと感じるなら毒されている

568 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 19:32:49.50 ID:3s1WkY0F.net]
それは無駄な判定とは思わないが、どう記述出来たらスマートだと言うんだろう。
パターンマッチとか?

569 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 19:37:55.56 ID:503powVA.net]
無駄っつーかanyって言ってるのに実際は2つの型しか認めないのは無責任やな

570 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 19:44:07.97 ID:LeGi1F7Y.net]
>>558
直和型をパターンマッチで処理切り分けるのは、関数型言語からの流れで最近の流行りだと思うんだけどね
if 文で書くのはダサいな

>>560
any がダメだから string | number と書くというのが共用体型じゃないの?おれもtsはよく知らないんだけど

パターンマッチで切り分けて、すべての可能性を記述してない場合にはエラーにしてほしいね



571 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 20:34:17.47 ID:3s1WkY0F.net]
まぁパターンマッチ構文で多少記述がシンプルになるならそれもいいけど、逆に専用の構文に頼らずに
ifやswitchを使っても同等のことができているというのがいいところだと思うがなぁ。
シンタックスシュガーとして入れるなら後からでもできるんじゃね?

>パターンマッチで切り分けて、すべての可能性を記述してない場合にはエラーにしてほしいね

それをエラーにするような記述は今でもできる。パターンマッチなんてなくても。

572 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 21:15:12.88 ID:YouWSmuh.net]
>>562
そんなのなくない?
String | Date | Number
だったとして、StringとNumberの処理しか書いてなくってそれがエラーにはならんやろ

やっぱScala最強やね
コンパイル速度ゴミで死んでしまったが

573 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 21:22:23.00 ID:dT6Xb8jy.net]
>>563
TypeScriptは Discriminated Union 使えるよ
メンバのリテラル値によって型をマッチさせるという中々面白い仕様

574 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 21:32:02.61 ID:503powVA.net]
sbt言うほど遅いか?
Scala2.13でまたちょっと速くなるみたいだし
それにScala3まであと一年と考えるとScala最強説が蘇る可能性もあるで

575 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 21:42:20.21 ID:hMqcesBf.net]
scala死んだ理由どう考えてもバージョン上がる度にコンパイル通らなくなる互換性のなさだろ
3なんかにしたら爆死以外見えない

576 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 22:02:19.88 ID:LeGi1F7Y.net]
>>564
ここら辺見て ts 勉強させてもらったよ https://qiita.com/kobanyan/items/ca56df27de50ec267995
Discriminated Union はすべての可能性を記述してない場合にエラーとするための仕組みになってないだろ
その下に書いてある Exhaustiveness checking っていうのが求めてるものだ

でも、
--strictNullChecks つけて戻り値の型のでチェックするのはswitchの下にreturn 文書いちゃったらスリ抜けちゃわない?
default: return assertNever(s) を記述することでチェックするのは、その記述が無くてもエラーにしてほしいんだけど?

577 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 22:17:38.55 ID:3s1WkY0F.net]
>default: return assertNever(s) を記述することでチェックするのは、その記述が無くてもエラーにしてほしいんだけど?

どのパターンにもマッチしない場合に何もしないという場合はあるわけだから、エラーにするのか
しないのかを示さなきゃならないのは仕方ないだろう。
strictNullChecks付けるのを忘れるからデフォルトでonにしてほしいとか言ってるようなもん。

578 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 22:46:49.41 ID:LeGi1F7Y.net]
>>568
case 文で全パターンを網羅できない場合には default 必須にして欲しい
どのパターンにもマッチしない場合に何もしないときは、その default の処理を空っぽにする
これを強制したい

579 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 22:52:15.99 ID:3s1WkY0F.net]
それはlintでやればいい。

580 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 23:24:23.33 ID:LeGi1F7Y.net]
みんなが Lint かけてくれるわけじゃないので、コンパイル時チェックが望ましい
特に新しい言語作るのならばそうすべき



581 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 23:25:57.15 ID:LeGi1F7Y.net]
あと、>>564は、言語の機能と、コーディングパターンの区別がついてないよね?

582 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 23:29:21.26 ID:dT6Xb8jy.net]
>>572
言語の機能として公式ドキュメントに記載されてるんだよ
https://www.typescriptlang.org/docs/handbook/advanced-types.html

583 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 23:54:07.40 ID:LeGi1F7Y.net]
>>573
Discriminated Union とか Exhaustiveness checking は、言語機能じゃなくて
いくつかの言語機能を組み合わせて実現可能なコーディングパターンの解説をしているように見えるよ?
そのドキュメントが Specification じゃなくて Hand book だし

584 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 00:04:21.99 ID:8zmAEr9n.net]
>>571
そういう腐った現場で強制してもコンパイル通すためだけのくそハックが横行するだけ。
事態をもっとややこしくする。

585 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 00:28:45.64 ID:PAua+1O7.net]
>>575
コンパイル通すためのハックしてることがコード見ただけで分かるのが重要

586 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 07:59:56.31 ID:W4SpLKRa.net]
>>571

lintすら不要と思っている人が>>561のようなチェックをしたいと思うシチュエーションが考えにくいが。
PLがメンバーに強制するならlintごと使わせればいいわけだしな。

587 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 09:18:04.90 ID:WuArxINc.net]
次世代言語を名乗るなら網羅性がチェックされたパターンマッチ構文は必須でしょ
TypeScriptのswitch文がJSからのしがらみで前時代的なのは仕方ない

588 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 13:08:18.82 ID:K4z2YXqu.net]
マイクロソフトの「TypeScript」など上昇--RedMonkプログラミング言語ランキング
Liam Tung (Special to ZDNet.com) 翻訳校正: 編集部 2019年03月25日 12時26分
https://japan.zdnet.com/article/35134639/

 Microsoftのプログラミング言語「TypeScipt」の人気が上昇しており、Appleの
「Swift」に続く順位についた。(中略)

 TypeScriptは2018年8月に発表された前回の調査から4つ順位を上げた。JavaScriptは
首位となっている。TypeScriptの最新の順位は、RedMonkが「これまでで最も成長の速い
プログラミング言語」とするSwiftの1つ下だ。

 RedMonkのStephen O'Grady氏は、「TypeScriptは確かにJavaScriptと近いことや、オプ
ションの静的型チェックなどの安全性を実現する機能からメリットを得ている。だが、機能
だけではこのペースで大きく前進できない。成長中の幅広いプロジェクトに活用されて
いるはずであり、これら全てが、TypeScriptの成長が目覚ましく、持続性のあるものと
なっている理由を示している」と説明している。(中略)

 TypeScriptよりも急速に成長している言語は「Kotlin」だ。Kotlinは前回から8ランク
アップし、今回の調査では20位となった。O'Grady氏によると、Kotlinの成長速度はSwiftに
次ぐレベルだという。

 KotlinはGitHubの「2018 Octoverse」レポートでも、GitHubで最もコントリビューター
人口が増えている言語となった。KotlinはGoogleが公式にサポートしているAndroidアプリ
開発言語であることからAndroidのアプリ開発者に人気で、Googleによると「Google
Play」で提供されているAndroidアプリのトップ1000のうち、27%でKotlinが使用されて
いるという。(後略)

589 名前:デフォルトの名無しさん [2019/03/25(月) 13:08:57.00 ID:8zI0ePtf.net]
purescript全然流行ってないぞw
やっぱts人気なのはjs互換だから。良くも悪くも。

590 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 13:17:36.44 ID:MfpTwt9Q.net]
npmがあってこそ



591 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 13:40:39.94 ID:NJTMQsjm.net]
tsといいkotlinといい、言語を流行らせるならまずは開発環境が大事というのがよくわかる結果だな

592 名前:デフォルトの名無しさん [2019/03/25(月) 13:43:55.66 ID:T0osdeZX.net]
Kotlin 万歳

593 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 13:45:37.65 ID:b0YsS78F.net]
JSは言語というより環境
つまりSmalltalkがやりたかったことをやってるのが大事なポイントだ
それとJavaがやりたかったこと (JNI禁止) もまあやってる

594 名前:デフォルトの名無しさん [2019/03/25(月) 13:46:17.07 ID:T0osdeZX.net]
>>582
開発環境と作ったプログラム動かす環境、更にそれで確実に金儲けが出来そうだと思わせる状況があるとよい。

595 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 14:07:09.12 ID:n9E0/aVP.net]
まぁRailsもそうだったけど「これ作るならこれ!」みたいな洗脳が上手くできるかどうかだよね

596 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 14:19:36.61 ID:b0YsS78F.net]
でも洗脳を解いてやったらC/C++をすらすら書けるようになるわけじゃないし
宗教があるのは難易度を下げるのがメインで洗脳は副産物

597 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 15:04:53.80 ID:+4I8CbY7.net]
Javaも部分的かつ牛歩だけど、モダン機能に追従していってる
https://qiita.com/nowokay/items/0e860819b6ffb1aca90a#switch%E5%BC%8F

言語でなく環境の方でもGraalVMを進めてるし一応止まってはいない感じ

598 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 15:17:23.11 ID:NJTMQsjm.net]
Javaは本質的な不便さから目を背けてミーハーな目立つ機能をつまみ食いしてる印象
いいかげん例外透過やクッソ使いづらい非同期APIをなんとかしろ

599 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 15:51:46.88 ID:gMgBFzz/.net]
javaは中間コンパイルしたあとのソースを見るとやる気なくなる

600 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 16:00:12.57 ID:n9E0/aVP.net]
Java「じゃあ互換性切り捨てて小鳥に寄せます」
ってならね?



601 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 17:45:18.30 ID:95AoY43y.net]
>>579
金で操作できるランキングに価値ねえよ
上位言語が企業のステマ言語って時点で疑問持てよ

602 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 18:34:27.56 ID:uGzTncPE.net]
そもそもnumberとstringをいれれる型が邪魔すぎる

603 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 18:51:00.60 ID:g4/jn9Nj.net]
javascriptの制限のせいでtypescriptには従来の言語のような関数オーバーロードがない
あるのは関数シグネチャーのエイリアスのようなもので中ではifなどで型の判定をして使い分けてる
非常に泥臭い

604 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 18:55:41.13 ID:g4/jn9Nj.net]
パターンマッチはクソださいので必要ない

605 名前:デフォルトの名無しさん [2019/03/25(月) 19:03:37.93 ID:8zI0ePtf.net]
javascript離れて独自拡張したら行く末はelmやpurescriptコースだからな。
そうなったtypescriptは誰も使わないし、
js互換の第二のtypescriptが登場してそっちに流れるだけ。
そうでないと言うのならelmやpurescriptが閑古鳥な理由を説明してほしい。

606 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 19:05:06.35 ID:PPwxmC3U.net]
ダサいとかいう非論理的な言葉で要不要を語るんじゃあない

607 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 19:06:59.78 ID:g4/jn9Nj.net]
>じゃあない

ださい

608 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 19:11:19.73 ID:6qJsOYPQ.net]
>>594
tsのunionは、関数の引数だけじゃなくて、戻り値とかオブジェクトのプロパティにも使える
関数オーバーロードの変わりに使うものだと考えるのは、少しズレてる

609 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 19:31:47.11 ID:g4/jn9Nj.net]
numとstringを入れられるプロパティの存在意義は?

610 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 20:32:23.9 ]
[ここ壊れてます]



611 名前:3 ID:6qJsOYPQ.net mailto: >>600
これは number と string とかだけじゃなくて、同じ interface を継承しないオブジェクトをひとつのプロパティに格納できたりする機能なんだよ
利点は intetface を用意して継承するよりも記述が減ることかな
普通の静的型付け言語だと any みたいな型を使う事になるけど、それよりもチェックを少し厳しくできるのが利点だね
[]
[ここ壊れてます]

612 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 20:42:39.81 ID:+4I8CbY7.net]
>>598
https://i.imgur.com/rQXUs9z.jpg

613 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 20:47:57.44 ID:+4I8CbY7.net]
正直オーバーロードは無くていいと思ってる
ジェネリクス等で処理出来ないなら名前変えた方がいい

多言語の境界でよく面倒事の原因になる

614 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 20:48:32.11 ID:g4/jn9Nj.net]
>>601
でもそれを参照する場所で型チェックなどが発生するだろ
A型とB型を格納していたプロパティにC型を格納するようになったら
それぞれの場所でまた変更が必要になる
無駄じゃないかなって思う

615 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 21:00:38.33 ID:/ev0NUx0.net]
関数のオーバロードは正直なくてもいいかなと思うけど(別の名前にすればいいだけ)
その言語はオブジェクトのコンストラクタのオーバロードも多分ないよね
それはどうするか、ちょっと困るな

616 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 21:00:47.68 ID:UtVBJg4o.net]
オーバーロードと、実装を上書きするタイプのオーバーライドは絶滅すべき

617 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 21:14:48.42 ID:+4I8CbY7.net]
>>605
Go Rustはオーバロードが無く、ただのstaticなファクトリメソッドでやってるよ

618 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 21:21:17.36 ID:g4/jn9Nj.net]
fabs()再び

619 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 21:24:14.16 ID:g4/jn9Nj.net]
オーバーロードがないとintのabsのほかにfloat用のfabsを用意しないといけない

620 名前:デフォルトの名無しさん [2019/03/25(月) 21:27:47.27 ID:1GKiPWph.net]
>>603
リーナスも似たようなこと言ってたな
記事探すの面倒だから貼らないが
(誰か探して貼ってくれないかなチラッ)



621 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 21:39:42.65 ID:/ev0NUx0.net]
>>609
そっちはジェネリクスで対応するのでは

622 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 22:26:27.11 ID:8zmAEr9n.net]
オーバーロードだったらマクロのが少しはマシ。

623 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 22:27:46.86 ID:xXsGZ5++.net]
>>604
ts のunion は interface 無しでダックタイピング効くから、参照する時必ず型チェックが必要なわけじゃない
型自体の定義も type alias しておけば一箇所で済むし
静的型付け言語でany使うよりは、遥かに手間はかからないよ

624 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 22:37:18.45 ID:g4/jn9Nj.net]
>>613
だったら余計にinterface付けろよと思うわ

625 名前:デフォルトの名無しさん [2019/03/25(月) 22:38:35.21 ID:9YEdKAJP.net]
Go、Swift、Kotlinの3つは、文法ぐらい一緒にしてくれたら良かったのにな

626 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 22:53:56.04 ID:wbp6GG9F.net]
なんかこだわりがあったんだろう

627 名前:デフォルトの名無しさん [2019/03/25(月) 22:55:21.22 ID:9YEdKAJP.net]
配列にしてもさあ、カッコの形とかにこだわりなんてあるんか?

628 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 22:55:47.18 ID:itUJX6EY.net]
どんな言語使おうが、糞バカ中世ジャップランドSIと、土人ベトコンオフショアが合体すれば
全部ゴミにできるんだけどなw

629 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 23:19:26.53 ID:4CvSxgZ7.net]
Kotlinはぱっと見Scalaかと思うくらい似てるよなー

630 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 09:15:45.15 ID:awRDKjDw.net]
えっ?(笑)



631 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 10:31:07.40 ID:F8U/TA3Z.net]
2019/03/06 15:42:58
2019年の愛され言語第1位、嫌われ言語第1位は?
https://news.mynavi.jp/article/20190306-784182/
「愛されプログラミング言語」
Python (51%)
Javascript (49%)
Java (37%)
HTML (34%)
C++ (23%)

嫌われプログラミング言語は以下
PHP (19%)
Objective-C (12%)
Java (11%)

対象となったプログラミング言語を愛している理由としては、その言語を学習するためのリソースや開発するためのリソースが充実していることが挙げられている。
逆に嫌っている理由としては、対象のプログラミング言語を使ったコーディングが楽しくないからという理由が多く挙げられている。

632 名前:デフォルトの名無しさん [2019/03/26(火) 11:13:59.02 ID:pnvMlsp3.net]
忘れ去られた言語
ruupy

633 名前:デフォルトの名無しさん [2019/03/26(火) 14:00:36.03 ID:PDyA3k9g.net]
>>622
俺は忘れてない。なぜならその名前を見たのは今が初めてだからだ。

634 名前:デフォルトの名無しさん [2019/03/26(火) 14:20:02.74 ID:pnvMlsp3.net]
ごめんごめんpoopyだっけ?w

635 名前:デフォルトの名無しさん [2019/03/26(火) 16:57:14.07 ID:PDyA3k9g.net]
>>624
それについても俺は忘れてない。なぜなら以下同文

636 名前:デフォルトの名無しさん [2019/03/26(火) 17:32:40.93 ID:pnvMlsp3.net]
rubooだったか?

637 名前:デフォルトの名無しさん [2019/03/26(火) 19:16:35.45 ID:PDyA3k9g.net]
以下同文

638 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 19:18:56.38 ID:NbUyZWCM.net]
誰でも頭が良くなる、プログラムが書けるようになる方法が発見される 99934
https://you-can-program.hatenablog.jp

639 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 17:04:40.79 ID:ioHKDgtI.net]
>>603
先にジェネリクスがあったらオーバーロードは不採用だったと思う

640 名前:デフォルトの名無しさん [2019/03/27(水) 17:15:00.98 ID:TdLaeqVz.net]
>>628
あと一回見かけたらはてブロに通報するわ



641 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 17:15:08.52 ID:SZ6CWUW7.net]
ジェネリックで必ず同じ操作になるならいいけど
そうでもないときはジェネリックではどうにもできない

642 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 17:18:22.78 ID:SZ6CWUW7.net]
オーバーロード否定派は動的型付け言語か形無し言語がメインの人なんだろうか?

643 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 18:22:56.09 ID:L8U/qf4n.net]
Cはユーザーが定義できない演算子だけオーバーロードする
ユーザーが定義してない型の情報だけコンパイル後に残る

このユーザー定義型の不当な制限をなくすというC++の理念のおかげで
オーバーロードや実行時型情報ができた
めでたしめでたし

644 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 19:26:19.13 ID:0edTBLWO.net]
ほとんどの言語が強制キャストできるのが原因で型安全でなくなっているのが
何とかならない

645 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 19:52:11.21 ID:DpIgan7F.net]
>>632
静的型付けメインにも普通に居るよ
RustやGoも関数オーバーロードを導入しなかったし

作為的な例にはなるけどむしろ型システムの阻害要因になることもある
https://ideone.com/uJ1lyb
https://ideone.com/P96nVa

646 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 19:59:52.56 ID:DpIgan7F.net]
後者の例で言うと、ライブラリの関数に気を利かせてオーバーロードを追加したところ
別のプロジェクトの既存コードがコンパイル出来なくなったとかもあり得る

647 名前:デフォルトの名無しさん [2019/03/27(水) 20:08:46.35 ID:kkhErUOi.net]
やはりリーナスは正しかった!
c最高!
c++はうんこ!

648 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 20:12:19.93 ID:KDFmmUkx.net]
暗黙の型変換を含めた場合のオーバーロードの地獄感は半端ない。

649 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 21:04:39.85 ID:ZMj2RB3N.net]
それにテンプレートとADLが絡んでカオス

650 名前:デフォルトの名無しさん mailto:sage [2019/03/30(土) 03:45:54.68 ID:x88rhneO.net]
クロスキャストはカスだから滅びろ
インターフェースの実装を鞍替えしたいんだったらFactoryとか使えや



651 名前:デフォルトの名無しさん mailto:sage [2019/03/30(土) 10:52:42.58 ID:PY6ZYblo.net]
型名を隠蔽すればキャストできないので
無名クラスとラムダの世界ランクが右肩上がり

652 名前:デフォルトの名無しさん mailto:sage [2019/03/30(土) 13:35:24.87 ID:wGFGqWwF.net]
本当に欲しいのは型ではなく制約

653 名前:デフォルトの名無しさん mailto:sage [2019/03/30(土) 19:28:46.42 ID:grSCIEfK.net]
ガイジみたいなコード書くガイジを殺していい法律を作ることだな
皆殺しにしてやるよ

654 名前:デフォルトの名無しさん [2019/03/31(日) 08:00:06.83 ID:S4Tb/ZFO.net]
次世代かは知らんけど、Haskell奥が深い。
プログラマーのための圏論っていうのをネットから落として読んでるが、
圏論的には変数や値そのものも関数足り得るとか、読んでて面白い(理解してるかは怪しいが)

int n = 1とint n(){ return 1 }が同じと言うのは言い得て妙だなと。
Haskellで関数にカッコ使わないのはこれを体現する為なんだなと。

n = 1 ― Haskell的には変数でもあり、引数無しの関数。

関数も値でもあるんだから

sum = foldl (+) 0は、sum xs = foldl (+) 0 xsの部分適用で変数を(見かけ上)減らした関数であると同時に、
部分適用した関数に束縛した変数でもある。。。と。

と言うことはHaskellのmain関数も、関数であり変数なんだなーと。
関数を呼んでプログラムが走り出すとも言えるし、変数を評価しようとして、結果として束縛されたプログラムが走り出すとも言える。

main = putStrLn "hello" ― main関数を呼ばれたとも言えるし、変数mainを評価して値(IO ())を得る過程でプログラムが走り出すとも言える。

655 名前:デフォルトの名無しさん mailto:sage [2019/03/31(日) 10:38:58.10 ID:UUJRkrO5.net]
概念は有用だし言語の進化に多大な影響を与えたけど
道具としてのHaskellは今の位置から上がってくることは無いだろうな

656 名前:デフォルトの名無しさん mailto:sage [2019/03/31(日) 10:43:21.70 ID:KUHIQC/W.net]
>>645 確かにその通り。 実用的な言語は、わかりやすくバグが出にくいことが重要。
他人のコードでも誰が見ても一目でわかるみたいな。

657 名前:デフォルトの名無しさん mailto:sage [2019/03/31(日) 11:07:42.57 ID:s7MuzANU.net]
実用なら副作用認めた方が絶対的に有利なわけでそういうのはOCamlなりF#が担えばいいよ
Haskellが勉強のための言語なのはこの先もかわらない

658 名前:デフォルトの名無しさん mailto:sage [2019/03/31(日) 13:08:06.82 ID:88fzeBO9.net]
xmonadとかあるし、実用的でないとは言い切れないが、いかんせん学習コストが高くてマンパワーに頼れんからな

659 名前:デフォルトの名無しさん mailto:sage [2019/03/31(日) 18:14:52.08 ID:hIxqKKME.net]
Haskellの再発明のようなアイデアを思いつくやつは必ず出てくるよ
これHaskellでやったやつだって教えてあげないと再発明を止められない
高い学習コストをもう一回課金される

660 名前:デフォルトの名無しさん mailto:sage [2019/03/31(日) 19:22:10.57 ID:m+UFTh7s.net]
Haskellは数学的な背景があるから一部だけパクってもうまくいかんでしょ



661 名前:デフォルトの名無しさん mailto:sage [2019/03/31(日) 20:26:01.36 ID:hIxqKKME.net]
一部だけ学ぶのはダメってのは見覚えがある
Perlでやったやつだ
一部だけでいいと作者が言ってるのに全部やろうとして挫折するやつだ

662 名前:デフォルトの名無しさん mailto:sage [2019/03/31(日) 20:40:52.20 ID:1YONhXIR.net]
https://speakerdeck.com/uzulla/gui-tutekita-ping-cheng-zui-hou-falseoreorehuremuwakufalsezuo-rifang

なんでペチパーって自作FW作りたがるん?
もうしばらく関わってないけど、糞SIerいたとき糞案件が軒並み自社製PHP FW(糞)だったの思い出したわ






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<235KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef