次世代言語9[Haskell Rust Kotlin TypeScript Dart]

■ このスレッドは過去ログ倉庫に格納されています
2018/03/06(火) 10:09:15.60ID:x/Au45rc
スレタイ以外の言語もok

前スレ
次世代言語Part8[Haskell Rust Kotlin TypeScript]
http://mevius.5ch.net/test/read.cgi/tech/1512137301/
2018/03/07(水) 02:03:48.32ID:EDSn5kWw
>>27
例外いるかな?
tryで包まなきゃいけないメソッドや、関数ってドキュメント読むか、実際に実行するまでわかんなくないか?
言語によっては例外が飛ぶ可能性がある関数かどうかわかるんだっけ?
jsはわかんないから不便。
2018/03/07(水) 02:08:04.97ID:EDSn5kWw
>>27
結局interface{}使うのかよ的なね。わかる。
俺はコード生成に可能性を見出してる。
goはコード生成フレンドリーな言語仕様だし標準ライブラリに、AST系が揃ってるから
2018/03/07(水) 02:19:43.98ID:487L5ZU0
>>28
nodeもあったけどnodeの場合はnpmの仕様変えれば解決出来るやん
でもGoはgithubに依存してるから解決不可能じゃん

>>29
それならEither型作ってメソッドチェーンで書けるようにして欲しい
Goのエラー処理は関数呼び出し毎にしないといけないからだるすぎ

>>30
型パラメーターが複雑だから、コンパイル速度に影響出るからって入れなかったのにコード生成しろって矛盾してない?
どっちが複雑だよ。どっちがコンパイル速度に影響出るよ?
2018/03/07(水) 03:07:39.19ID:EDSn5kWw
>>31
コード生成はプリプロセスとしてコンパイルの度に毎回動かすわけじゃない。stringerとか使ったことない?

inportに関しては、
nodeがnpmの仕様を変えたら解決するならgoもそうすればいいのでは?

現状でも、vendor/もコミット対象にしてしまえば、依存ライブラリを管理対象にできるから

サードパーティライブラリに頼る以上はライブラリ作者の影響をどの言語だって受ける。
2018/03/07(水) 03:12:09.66ID:rBtvNRXK
Yコンビネータ forall a. (a -> a) -> a のように
forallがつく関数は第一級オブジェクトにならないのが普通だ
総称型がある比較的新しい言語はもう第一級オブジェクトにこだわらない
2018/03/07(水) 04:31:47.78ID:Fw456RXb
maybe/eitherが無い言語はあまり触りたくないな
35デフォルトの名無しさん
垢版 |
2018/03/07(水) 07:45:36.47ID:zWLX9kTq
goってなんだかよく使われてる以外の理由で使う理由がないよ
同じことするならrustのがいいわ
2018/03/07(水) 08:21:04.51ID:JwI5qwvI
Goはマイクロスレッド得意なのはありがたいな。
あとチャンネルと。
そして静的リンクがデフォ。
これだけで、Go使う価値あると思ってる。
2018/03/07(水) 09:16:51.01ID:L0uTy1l9
>>35
WEBサーバ: go,php,ruby,java,Elixir
IOSアプリ:swift,dart
Androidアプリ:java,kotlin,dart
WEBクライアント:JavaScript,elm,TypeScript
cliツール:go

どこにrustが入る?
2018/03/07(水) 09:50:59.47ID:vL0QsqKL
Rustは生ポインタが使えるし、C ffiが比較的容易に可能、そのうえwebassemblyにまで対応してる
>>37以外にも組み込み、OS、ドライバ、デスクトップアプリ等どこにでも入ろうと思えば入れる
C++の後継を目指してるだけあってかなり万能な言語ではあるんだが
問題は普及するかどうか…
2018/03/07(水) 10:25:38.57ID:487L5ZU0
>>32
goはgithubに依存してるからgithubの仕様変えないと駄目じゃん
具体的にはリポジトリやユーザーの削除禁止。でもそれは無理だろ?

>>32
毎回動かすわけじゃないけど、変更あったら動かすだろ?
しかもそれは他の言語でも差分コンパイルで出来る
2018/03/07(水) 10:51:52.29ID:JwI5qwvI
>>39
githubが便利だからgithub使ってるけど、別にgithub以外でも公開出来るし、依存してると言うより多くの人間がgithub使ってるだけでは?
41デフォルトの名無しさん
垢版 |
2018/03/07(水) 13:02:44.71ID:s6OLNjGp
プログラマの労力よりコンパイル速度を優先してるのが謎
2018/03/07(水) 13:09:33.87ID:4hpZk16v
コンパイル速度が短いとデバッグしやすいからじゃね?
2018/03/07(水) 13:13:30.69ID:4hpZk16v
cliツールgoってマジ?
2018/03/07(水) 13:14:29.36ID:upKMxxIv
>>38
Rust嫌いじゃないけど普及しないと思う
今年のロードマップもwasmとCLIとNetwork頑張る、っておとなしすぎだろ
いろいろできるならもっとぶっ込んで来いやゴルア ってね
2018/03/07(水) 13:19:03.34ID:lIV1PIoV
Googleが採用しなかったDartよりはMozillaが採用したRustの方が将来性はあると思う
46デフォルトの名無しさん
垢版 |
2018/03/07(水) 13:45:40.70ID:MMWrPDHz
>>37
ウエッブサーバ: rust
他のサーバ: rust
ウエッブクライアント: rust
CLI: rust
2018/03/07(水) 13:53:35.83ID:L0uTy1l9
>>41-42
その辺の話は
https://talks.golang.org/2012/splash.article
に書いているけど、
Google社内の巨大なソースのコンパイル時間が45分とかかかるようになっちゃって
なんとかしないとという流れで始まったって書いてる。
つまりGoogle以外で恩恵を得る可能性は低いな。
48デフォルトの名無しさん
垢版 |
2018/03/07(水) 14:07:05.01ID:vL0QsqKL
>>46
一応マジメに返しておくと現状webクライアントはrustだけじゃダメだよ
現状ではまだwebassemblyでDOM操作はできないし他にも出来ないことは沢山ある
webクライアントにはRust+JSの組み合わせが必須になる

ただし、Rustのマクロ使ってRustの中にJS書いてビルド時にwasmとJSを両方吐きだして
無理やりRust onlyを実現してるstdwebとかいう先進的?なフレームワークも存在する
あのクレート発見したときは「こいつ天才かよ?」って思った
2018/03/07(水) 14:22:34.19ID:L0uTy1l9
Rustは気になるけど、さわるモチベーションとなるキッカケがないんだよな。
FirefoxベースのElectronとかでて直接レンダリング部分をrustでいじるようなライブラリがでたら考えるかな
2018/03/07(水) 14:54:16.32ID:2wkQZK0N
人気が下降しプログラマの求人も少ないプログラミング言語ワースト10は? 一方で仕事の多い言語は? CodementorXとCoding Dojoの調査結果
http://www.publickey1.jp/blog/18/5_codementorxcoding_dojo.html
2018/03/07(水) 15:25:36.37ID:n65ilySP
jsのファミコンエミュを苦労してrust(→webassembly)に書き直してもぜんぜん速くならないという悲しい現実。
ハマるユースケース少なそう。
52デフォルトの名無しさん
垢版 |
2018/03/07(水) 16:03:24.12ID:vL0QsqKL
>>51
憶測でしがないが、それはRustやwasmが遅いというわけではなくて
ファミコン程度の演算ならJSだろうがwasmだろうがパフォーマンス的には大差なくて
それよりもwasmとJSでデータをやり取りする際のコピーのコストが高くついてるんじゃない?
3Dゲームの演算とかもっと重い処理じゃない限りwasmのメリットが活きてこないんじゃ…
もしくは、将来的にwasmから直接DOM操作ができるようになれば…
2018/03/07(水) 16:26:53.26ID:lIV1PIoV
GoとRustはバランスが悪いんだよな
ラムダ式とかジェネリクスとかGCがあればこそ手軽に使えるものなのに
GoはGC有るのにどちらも無くて
RustはどちらもあるけどGCが無いから不便
2018/03/07(水) 16:37:37.77ID:rBtvNRXK
RustにもARCはあるんだろ
まあでもARCはゴミのようだという意見には一理あるわな
55デフォルトの名無しさん
垢版 |
2018/03/07(水) 16:48:10.62ID:vL0QsqKL
>>55
RustにARCがあるってのは誤解を招く恐れがあるので補足
RustではARCは標準ライブラリとして用意されてる
SwiftみたいにARCでメモリ管理してるわけじゃないよ
2018/03/07(水) 17:13:59.44ID:8jwTNUb7
Rustなんてmozillaに金掴まされた奴しか見向きもしてない何にも使えない言語が
次世代言語とか笑わせんでくれ
2018/03/07(水) 17:19:05.18ID:mYeM/2on
まだ言ってんのかよw
2018/03/07(水) 17:35:57.09ID:8jwTNUb7
実際誰がどこで使ってるのか教えてくれ
モジラの金掴まされた企業以外で
2018/03/07(水) 18:15:46.78ID:EDSn5kWw
googleがxi-editor作ってたり、
後railcarってdocker代替作ってたり。
どっちもあんまり魅力的じゃないないな。
ゲームエンジンがrustで書いたらどうなるか興味ある。
2018/03/07(水) 18:19:20.11ID:EDSn5kWw
dartを知らない人間がdartに触る例。

https://youtu.be/uDKCK8BBPJU

エンジニアのプログラミング実況動画面白いかも。これのrust版ってある?
2018/03/07(水) 18:50:32.83ID:8jwTNUb7
>>59
1.0出て何年も経ってるのに
その体たらくって時点でお察し
2018/03/07(水) 19:11:36.71ID:QbuNtZtf
>>59
ゲーム分野もUnityやUnrealでニーズ満たしてるし、それ以外のものは今さら流行らんでしょ
2018/03/07(水) 19:14:43.72ID:AePhkh+C
>>41
コンパイル速度が早ければスループットが上がるんだから、労力の定義次第だろ。
2018/03/07(水) 19:15:35.75ID:487L5ZU0
>>59
こいつ反応楽しみたいだけの荒らしだから触れるな
2018/03/07(水) 19:17:10.88ID:487L5ZU0
>>53
本当これだよな
両方バランスが悪い
ネイティブでバランスの良いKotlinみたいな言語欲しい
Kotlin Nativeはどうなんだろうね
66デフォルトの名無しさん
垢版 |
2018/03/07(水) 20:42:19.89ID:vL0QsqKL
>>53
ラムダ式とジェネリクスはGCとはあまり関係ない機能だと思うが…
特にジェネリクスとGCには全く何の関係も無いような…
2018/03/07(水) 20:57:01.38ID:L0uTy1l9
https://taiyaq.com/contents/VXd2aV04Gr1mLC8e3AbEg4XKly
Dartの言語ツアーみてるけど、結構言語仕様が辛い。

変数宣言がC由来の「型 変数名」なのがつらい。
GoとかTypeScriptみたいに変数宣言は「変数名 型」にして欲しいわ
あと内部コードがutf16というのが気になる。jsより後発なのにjsと同じ仕様って。

Flutterは良さげなのになぁ。
2018/03/07(水) 21:02:27.65ID:ZH5MFU7m
RustがC++の代替って枠だと先にも出てる大規模ゲームなんだが、個人やインディーズなら大手エンジンでいいし社内独自エンジンだとこれまでの資産的にツールもゲーム本体も言語変える必要なくない?みたいな所がなぁ
69デフォルトの名無しさん
垢版 |
2018/03/07(水) 21:13:00.74ID:xaPv5Ark
気軽に書くならswiftを使うかな
2018/03/07(水) 21:18:56.44ID:L0uTy1l9
>>68
rustってc++に絶対勝てないのかね?
メモリ管理を静的に解決できるって不思議なんだけど、もしかしてメモリ節約プログラミングが得意だったらスマホとかIOTでワンチャンあるかもしれん。
2018/03/07(水) 21:24:30.78ID:Fw456RXb
今rustで書いてるよ、勿論mozilla全く関係無い
映像系のバックエンドでは結構使ってる情報見るけどな
2018/03/07(水) 21:51:29.88ID:hDt5Kv7q
rustは理論好きで実際はコードほとんど書かないような連中に人気あるだけだろ。
ゼロコスト抽象化カッケーとかそういう層。
2018/03/07(水) 21:58:39.87ID:ZH5MFU7m
>>70
ヒープ周りは言う程魔法みたいな事をしてる訳ではないよ
どこまでいってもコンパイル時の制限をカッツカツにして開放を保証するって話だし

iotもスマホも(もちろんゲームも)クロスプラットフォームしたくて大変なのにそれぞれc++向けに書かれてるsdkラップする?っていう
オープン規格やらそういうsdkがrust向けを公式で出すようになれば採用も出てくるとは思うけどね
2018/03/07(水) 22:05:41.69ID:hDt5Kv7q
メモリ解放のタイミングが分からなくなるっつーのは基本的に
インスタンスを共有してる変数がいくつもあるから
ってのがrustの主張の根幹でしょ。
75デフォルトの名無しさん
垢版 |
2018/03/07(水) 22:21:07.09ID:zWLX9kTq
わたすもrustで書いてるよ
webだけど
メインブラウザがファイヤーフォックスだからモジラの手先かもしれん
2018/03/07(水) 22:26:35.72ID:4hpZk16v
まあrust使ってる時点でモジラの手先だしな
2018/03/07(水) 22:26:48.78ID:rBtvNRXK
実行時に参照カウントを増減するのは、実行しないとわからない場合だけにしろ
コンパイル時にわかることを実行時にチェックするな
これはRustだけでなく静的型がさんざん主張していたこと
2018/03/07(水) 23:11:58.32ID:LhUqstRW
>>1
Dartとかいう完全死産のゴミ言語をスレタイに入れるな
おまえほんっとセンスねーなバーカ
2018/03/07(水) 23:22:26.51ID:TWVUeb1Y
Dart2で再始動って言ってるからDart4くらいで良くなるんじゃねw
Flutterはちょっと気になってる
2018/03/08(木) 00:02:08.17ID:XFDvKJyj
>>47
これでコード書く時間が逆に増えたらウケるな
2018/03/08(木) 00:11:20.59ID:XFDvKJyj
>>79
死んでしまったAngularちゃんの悪口はやめろ
2018/03/08(木) 02:29:26.18ID:to5KOUcv
>>79
内部文字コードがutf16とか変数宣言がいまいちとか結構辛い。
flutterとdartを分離してTypeScriptから使えるようにしてくんないかな
2018/03/08(木) 12:46:52.68ID:XQ95i3sC
>>72
あーわかる超わかる
トイプログラムだけ書いて満足する奴のための言語みたいな
2018/03/08(木) 12:54:28.13ID:XQ95i3sC
>>71
結構使ってる情報見る(ソースなし)
85デフォルトの名無しさん
垢版 |
2018/03/08(木) 13:26:45.90ID:f+gZIHDW
>>83
個人が趣味でやってるプログラムなんてどんな言語だろうが大体そういうものだろ
別にRustで書いてる奴に限った話じゃない
86デフォルトの名無しさん
垢版 |
2018/03/08(木) 13:27:26.60ID:f+gZIHDW
本格的なものを作ろうとすれば企業が関わらざるを得なくて現状ではどの企業もまだ様子見状態ってだけ
むしろGoogleがRustで実験的にエディタを作ってるってことは
Googleも採用を検討するくらいには注目してる言語ということ
2018/03/08(木) 13:36:32.00ID:XQ95i3sC
>>86
残念ながらxi-editorは20%ルールの産物で完全に個人のトイプログラムなんですよね

そもそもGoogle社内の公認言語にRustなどという腐ったものは存在しない
2018/03/08(木) 13:55:25.73ID:sd0Mz8U9
Goも元々は20%ルールの産物じゃなかったっけ?
2018/03/08(木) 13:56:46.22ID:UjKWiNad
そだよ
てか、GoはRuby同様ガチ勢に嫌われすぎてて、なかなかカチッとしないね
2018/03/08(木) 14:07:05.39ID:XQ95i3sC
まじで。Go自体が20%ルールの産物なのは知らんかったわ

Goは初期のJava見てるような時代逆行感あるし、それが嫌われる原因だろうね
初期のJavaよりははるかにマシだけど
2018/03/08(木) 15:53:31.02ID:39/jgBm7
>>84
Rustアンチ面倒臭い

http://gihyo.jp/dev/serial/01/dwango-engineersoul/0002?page=2
https://speakerdeck.com/yaminoma/bitutoretogai-shan-dezhuan-song-liang-wojian-rasitaohanasi
2018/03/08(木) 16:57:24.84ID:XQ95i3sC
ドワンゴや渋みたいな画質最悪回線ptptのプラットフォームの技術()なんて参考にならん

Youtubeとか嗶哩嗶哩とかネトフリくらいのプラットフォームが全く採用してない時点でお察しだろ
2018/03/08(木) 17:38:09.62ID:3H4xAb5h
アンチのいない言語ってあるんかな?
それって誰が見ても引っかかることがなくて無難で分かりやすい言語ってことだよね。
、、、、C言語かな?
いやーないか。Pythonかな?
2018/03/08(木) 18:00:05.39ID:gkfiSzw4
>>93
C 言語は基本だよね…
2018/03/08(木) 18:05:00.88ID:cve6DJMj
マクロ中途半端じゃん
2018/03/08(木) 18:06:09.58ID:My+VxY9/
Goが嫌われるのは、意識高い系の人間が欲しがる機能をオミットしたからだろ。
欲しがるやつはバカぐらいの事言ってるし。
学者と機械屋が仲悪いのと同じようなもんで。
2018/03/08(木) 20:42:30.56ID:Qr0iRnUQ
機能をオミットする方向を示しただけでもgoは価値あるよ。
他の言語はバカみたいに機能を追加する方向しかみてなかったし。
98デフォルトの名無しさん
垢版 |
2018/03/08(木) 20:50:41.00ID:OEgQLKAy
採用例提示しろって言われたから東証一部上場企業の採用例をいったらいったでまた難癖つけるね
グダグダ言ってないで自分が使わなきゃいいだけじゃん



それでもニコニコがRustでオリジナルファイルシステムまで作ってあのクソさってのはいろいろ思うところはある
よくもまあ10年近くも金をオフパコ会議に突っ込んでろくに鯖の整備もせずに来れたもんだ
2018/03/08(木) 20:53:13.13ID:39/jgBm7
FacebookのMononokeとかも除外なのかな
有名所が軒並み使わないと認めないんだろうな、いやそれでも否定するか
2018/03/08(木) 21:19:24.31ID:3H4xAb5h
>>96
オミット大事だよね。バージョンを重ねていくと機能追加しかできないから
最初の機能は絞ったほうがいい。
Goにはきっと既存にはない独自発想のジェネリクス的な物が搭載されるであろう。
賛否両論なやつが。
2018/03/08(木) 21:38:40.38ID:EsrBfKCX
>>100
「例外を無くした。あれは大域ジャンプだ。行き先の見えないgotoだ。
 フローが無茶苦茶になる、複数の戻り値返すから各自チェックするように。
 複数の戻り値返せるからマジックナンバーとか返すなよ」
なんて、割り切りというより考え抜いたであろう仕様も、結構叩く人は叩くしな。

ジェネリクス的なものはどうなるんだろう。
正直型でのswitchでだいたい事足りてるし。
2018/03/08(木) 21:46:19.70ID:to5KOUcv
>>101
関数の引数にinterface{}型が入るのは良くない。これだけは是非とも改善したい
2018/03/08(木) 21:52:55.87ID:EsrBfKCX
>>102
何で?
コンパイルする時に誤りに気づかないとかそういう話?
void*が渡せるよりも、interface{}は実際には型持ってるからよほどマシな気が。
ジェネリクスしたらすごい数の関数が作られうるし、使い方の問題な気がするけどな。
そもそも継承という概念が希薄だから、ジェネリクスにしても幸せになれないと言うか、明示的に何らかのinterfaceを渡す方がマシだと思う。
Writer受ける関数みたいに。
2018/03/08(木) 22:31:36.69ID:to5KOUcv
>>103
実行時に解決するのは極力避けたい。
防衛的プログラミングをしたい。
AST系ライブラリを使いこなせるようになってコード生成でもいいけど。
2018/03/08(木) 22:35:27.75ID:Qr0iRnUQ
テストコード書くのは嫌だってだけだろどうせ。
2018/03/08(木) 22:37:10.68ID:bpZjqWPW
例えば今、任意のオブジェクトを格納できるコンテナ
(二分木でもハッシュマップでもブルームフィルタでも)
のライブラリを作りたいとしよう

このライブラリに、初期化時に任意の型しか格納できないようにする
まあつまりJavaのList<T>みたいなことをしたいと考えたときに
Goでは型ごとにラッパをつくって実行時に動的にチェックする以外に実現方法がない

これをコンパイル時にチェックしたいという要望は自然と思うが?
2018/03/08(木) 22:46:42.29ID:bpZjqWPW
つか自分で言ってて思ったがこれinterface{}が悪いとかじゃなくて
単純に高階型が欲しいってだけの話だわ
2018/03/08(木) 22:51:14.55ID:to5KOUcv
>>105
それもあるけどライブラリを提供するときに引数がinterface{}だとドキュメントに説明がいるでしょ。そういうのが嫌。
109デフォルトの名無しさん
垢版 |
2018/03/08(木) 23:04:06.14ID:y3Zn8R8X
コンパイルが遅くなるので人間が出来る事は人間がやってください
2018/03/08(木) 23:05:42.03ID:Qr0iRnUQ
>>108
どっちにしろ実行時に起こる現象は説明が必要だろ。
確かに動的だったりテンプレートみたいなもんだと読むのきついなと思うことがあるけど
型で述べられる記述力なんてコード量の割にそんなに豊かなもんでもない。
俺は優良なドキュメトとテストコードのが上回ると思ってる。
goのinterfaceと比べて継承の方が入力の範囲を特定する能力は高まるけど、
同時に型情報をどっさりコンパイラと人間に読ませることになるわけだ。
割にあってると思わない。
2018/03/08(木) 23:10:55.43ID:yZMqeuJA
やっぱり型クラスって神だわ
2018/03/08(木) 23:12:19.99ID:bpZjqWPW
>>110
Scalaとか見てると気持ちはすごくわかる
しかしせめてコンテナ型くらいは型制約欲しいという気持ちもわかってくれ
2018/03/08(木) 23:39:44.92ID:EsrBfKCX
>>106
型に階層があるという事が前提になってる時点で、goに向いてないんじゃない?
2018/03/09(金) 00:31:33.39ID:IWA+PY9Z
"is a" の機能をomitして "has a" とかmixinとかtraitを使う方向
2018/03/09(金) 00:49:56.76ID:cqMSJuy/
>>110
ちょっと具体例が浮かばなくて適当な説明になるけど
ある引数に io.Reader もしくは io.Writer だけが来て欲しいって場合に
interface{}で一旦受け入れてどっちかじゃなかったらエラーって書くのがしんどいの。
引数にio.Reader | io.Writerって書けるようになれば
どっちかしか来ないことが保証されるからエラーハンドリングのコードが減る。

別に型システムがほしいとかじゃなくて
なんでも受け入れるinterface{}にしてしまう状況を避けたい。
2018/03/09(金) 04:10:38.55ID:4sIM9IpC
R | W より Or<R, W> が良い
記号を使うと記号アンチがうるさいし、継承と総称型を混同するやつもうるさい
2018/03/09(金) 07:28:22.67ID:zhxSKG5B
その場合 `Or<A, Or<B, C>>` と `Or<Or<A, B>, C>` の等価性どうする?って話しになるけどね
2018/03/09(金) 08:17:11.21ID:kL3iaTSl
>>115
そんな気持ち悪い関数嫌だな…。
分けられないの?
2018/03/09(金) 08:18:50.78ID:kL3iaTSl
>>114
それはもう、今の定義されたinterfaceで充分だとなってしまうのでは?
120デフォルトの名無しさん
垢版 |
2018/03/09(金) 09:19:07.89ID:Nb7UaI4p
せめてパターンマッチくらいは入らんかなあ
型判定のためにifをダラダラ並べるようなコードなんて誰も嬉しく無いよ
:=もあるんだし構文糖衣まで全て拒否してる訳でも無いだろうに
2018/03/09(金) 10:34:44.49ID:cqMSJuy/
>>118
まぁ例えばだから。もっとぴったり来る例を示せればよかったんだけどね。
関数のオーバーロードも合わせて欲しいな。関数名考えるのがしんどい
2018/03/09(金) 10:59:00.45ID:kL3iaTSl
>>120
switchは?
2018/03/09(金) 10:59:28.74ID:FTtEfiG6
>>105
静的型システム全否定だなお前のレス
2018/03/09(金) 12:12:54.21ID:sqnwGWQK
>>110
ドキュメントが常に最新の状態であることを静的に
保証する方法がない限りは静的型付けの型情報の方が信頼できる
腐ったドキュメントほど有害なものはない

腐らせるヤツが悪いとか言われそうだが
腐らせるのは自分ではなく同じチーム内の誰かだ
他人よりコンパイラの方が信頼できる
2018/03/09(金) 12:43:31.33ID:kL3iaTSl
interface{}を他の言語のobjectみたいなほんとに雑な受け方と一緒にしないでくれよ…。
実際に書いたら、結構使う場面が限られて来ることもわかるだろ…。

>>121
オーバーロードの禁止ははまあ必要悪だと思う。
型同士に階層が無いので、2種類のinterfaceを受ける関数があったとき、その2つともを実装している型に対して関数が定まらんのでは?
2018/03/09(金) 12:56:29.64ID:7FF0Q/q6
>>125
してねえよ
コンパイル時の型制約を足したいって話で、機能的にinterface{}への switch t.(type) で十分なのは承知の上

ifが並ぶっていってる奴はたぶんswitchで型判定できるの知らない気がする
2018/03/09(金) 13:27:20.95ID:RwDfRr6t
仮にGoにジェネリクスを実装するとしたらどこまで必要になるんだろ
共変性と反変性は必要?
部分適用は必要?
C++のメンバ型みたいなのは必要?
2018/03/09(金) 13:32:11.39ID:FTtEfiG6
>>127
そんな難しいのはいらねーから宣言的に書かせろ
2018/03/09(金) 15:24:58.40ID:hv4D8Q9B
>>125
object型と同じだと思ってたわ。具体的な違いとメリットを頼む。_φ(・_・
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況