スレタイ以外の言語もok
前スレ
次世代言語Part8[Haskell Rust Kotlin TypeScript]
http://mevius.5ch.net/test/read.cgi/tech/1512137301/
探検
次世代言語9[Haskell Rust Kotlin TypeScript Dart]
■ このスレッドは過去ログ倉庫に格納されています
2018/03/06(火) 10:09:15.60ID:x/Au45rc
2デフォルトの名無しさん
2018/03/06(火) 10:30:06.56ID:nMdAiw1E Dartきてんね
2018/03/06(火) 11:03:49.49ID:05hne0v2
DartとDlangの違いを教えてください
2018/03/06(火) 11:43:03.15ID:DTiE8Uxw
Googleは言語選択保守的すぎるだろ
関数型言語採用しないどころかGolang作っちゃう時点で
関数型言語採用しないどころかGolang作っちゃう時点で
2018/03/06(火) 12:27:31.20ID:KV/wZ8PJ
Goと関数型は土俵が違わん?
2018/03/06(火) 14:53:26.90ID:+D30KD0L
関数型とは具体的に何のことやら
Rustが採用したenumとtraitは関数型か?
Rustが採用したenumとtraitは関数型か?
2018/03/06(火) 20:42:26.57ID:MoZw2NXu
>>4
別にそんなとこで冒険しても生産性上がらんよねって感覚なんだろ。
別にそんなとこで冒険しても生産性上がらんよねって感覚なんだろ。
8デフォルトの名無しさん
2018/03/06(火) 20:42:29.39ID:cU7JZ0/j >>6
enum・traitと関数型は関係ないだろ?どちらもHaskellの型システムをパクって来たってだけ
関数型言語の特徴として真っ先に思いつくのは関数を第一級オブジェクトとして扱えるか否かというところだろうな
ただその考え方だけだとC言語でさえ関数ポインタがあるから関数型言語に含まれてしまうことになる
そこからさらに副作用を出来る限り避ける文化があるか否かとかも判断基準になるのかな?
言語の文化とかふんわりした表現は具体性を伴わないから説得力に欠けるんだよな
改めて関数型を具体的に説明しろと言われると難しいな…
enum・traitと関数型は関係ないだろ?どちらもHaskellの型システムをパクって来たってだけ
関数型言語の特徴として真っ先に思いつくのは関数を第一級オブジェクトとして扱えるか否かというところだろうな
ただその考え方だけだとC言語でさえ関数ポインタがあるから関数型言語に含まれてしまうことになる
そこからさらに副作用を出来る限り避ける文化があるか否かとかも判断基準になるのかな?
言語の文化とかふんわりした表現は具体性を伴わないから説得力に欠けるんだよな
改めて関数型を具体的に説明しろと言われると難しいな…
2018/03/06(火) 20:57:45.92ID:xvhpcg6j
>>8
関数ポインタは確かにC/C++系独自だけれども(Javaにはなかった)第一級オブジェクトではない、とおもうよ
関数ポインタは確かにC/C++系独自だけれども(Javaにはなかった)第一級オブジェクトではない、とおもうよ
2018/03/06(火) 21:32:52.86ID:MoZw2NXu
もう少しだけ動的に関数定義を変えて返したりできるのが関数型ぽい。
2018/03/06(火) 21:34:37.20ID:qto5wiY+
Cの関数は実行時に生成挟めないから第一級オブジェクトではないよ
2018/03/06(火) 21:40:19.40ID:MoZw2NXu
c++ならクラスのメンバに情報持たせて、メソッド使うことでクロージャぽいものはできるけど。
2018/03/06(火) 21:45:38.71ID:DG7WbBnA
λ理論を念頭に置いて実装されたかどうかやぞ
2018/03/06(火) 22:00:19.48ID:qto5wiY+
c++なら素直にラムダ式使おうよ…
2018/03/06(火) 22:19:34.09ID:xvhpcg6j
C++ のラムダ式でYコンビネータを記述できるのですか?
できないのならラムダ式などと呼称していいのでしょうか?
できないのならラムダ式などと呼称していいのでしょうか?
2018/03/06(火) 22:36:28.04ID:qto5wiY+
2018/03/06(火) 22:44:51.87ID:DG7WbBnA
>>16
正論すぎて草
正論すぎて草
2018/03/07(水) 00:36:57.39ID:EDSn5kWw
2018/03/07(水) 00:55:59.65ID:487L5ZU0
>>18
保守的にするという意味で攻めてる言語だな
保守的にするという意味で攻めてる言語だな
2018/03/07(水) 00:59:12.93ID:JwI5qwvI
諦めと開き直りを全面に押し出してくる言語だな、確かに。
2018/03/07(水) 01:21:30.28ID:EDSn5kWw
goの攻めてるところ。
ライブラリのimportにuriを指定してできるようにしてgithubから直接importできるようにした。
例外を辞めた。
公開、非公開をメンバ名が大文字始まりかどうかで決めるように。
クラスをやめて、構造体だけにした。
インターフェース実装は該当メソッドの有無で決定
といった具合に他の言語の当たり前の部分を壊した。全然保守的とは思えないが。
ライブラリのimportにuriを指定してできるようにしてgithubから直接importできるようにした。
例外を辞めた。
公開、非公開をメンバ名が大文字始まりかどうかで決めるように。
クラスをやめて、構造体だけにした。
インターフェース実装は該当メソッドの有無で決定
といった具合に他の言語の当たり前の部分を壊した。全然保守的とは思えないが。
2018/03/07(水) 01:26:49.68ID:EDSn5kWw
後は未使用ライブラリのimportをコンパイルエラーにするというのも、他の言語であんまり見ない気がする。
これは、積み重なるとコンパイル時間に影響するから、言語設計にコンパイル時間の考慮を重きにおいている証拠の一つと言える
これは、積み重なるとコンパイル時間に影響するから、言語設計にコンパイル時間の考慮を重きにおいている証拠の一つと言える
2018/03/07(水) 01:27:38.81ID:487L5ZU0
>>21
例外とか構造体はC時代に逆戻りしてるだけだし、静的ダックタイピングは他の言語にもあるし、githubのurl指定は結局色々な問題起きてるし(この間のgo-bindata騒動とか)、公開/非公開の大文字小文字も気軽に変えられなくて不便だし何のメリットがあるんだ?
例外とか構造体はC時代に逆戻りしてるだけだし、静的ダックタイピングは他の言語にもあるし、githubのurl指定は結局色々な問題起きてるし(この間のgo-bindata騒動とか)、公開/非公開の大文字小文字も気軽に変えられなくて不便だし何のメリットがあるんだ?
2018/03/07(水) 01:28:30.13ID:487L5ZU0
2018/03/07(水) 01:41:57.73ID:EDSn5kWw
>>23
むしろ、今まで当たり前にあった言語仕様を振り返って本当に必要かどうかを再検討して
削りに削った仕様だと思うけどな。
c++とか触ってたとき、クラスと、構造体って、本当に両方必要か?どっちか要らないだろって思ってたりしたから、
すごくしっくりきた。
むしろ、今まで当たり前にあった言語仕様を振り返って本当に必要かどうかを再検討して
削りに削った仕様だと思うけどな。
c++とか触ってたとき、クラスと、構造体って、本当に両方必要か?どっちか要らないだろって思ってたりしたから、
すごくしっくりきた。
2018/03/07(水) 01:51:00.36ID:EDSn5kWw
2018/03/07(水) 01:54:34.87ID:487L5ZU0
>>25
構造体とクラスに関しては個人的に同意
ただ型パラメーターとか例外がないのはありえない
エラー処理は長すぎる。if分岐でチェックとかいつの時代だよ
型パラメーターないせいでDRY原則を破るか型安全を破るかしないといけない
構造体とクラスに関しては個人的に同意
ただ型パラメーターとか例外がないのはありえない
エラー処理は長すぎる。if分岐でチェックとかいつの時代だよ
型パラメーターないせいでDRY原則を破るか型安全を破るかしないといけない
2018/03/07(水) 01:56:06.25ID:EDSn5kWw
>>23
go-bindata騒動はgo固有の問題でもない。nodeだって似たようなことあっただろ。
go-bindata騒動はgo固有の問題でもない。nodeだって似たようなことあっただろ。
2018/03/07(水) 02:03:48.32ID:EDSn5kWw
>>27
例外いるかな?
tryで包まなきゃいけないメソッドや、関数ってドキュメント読むか、実際に実行するまでわかんなくないか?
言語によっては例外が飛ぶ可能性がある関数かどうかわかるんだっけ?
jsはわかんないから不便。
例外いるかな?
tryで包まなきゃいけないメソッドや、関数ってドキュメント読むか、実際に実行するまでわかんなくないか?
言語によっては例外が飛ぶ可能性がある関数かどうかわかるんだっけ?
jsはわかんないから不便。
2018/03/07(水) 02:08:04.97ID:EDSn5kWw
2018/03/07(水) 02:19:43.98ID:487L5ZU0
2018/03/07(水) 03:07:39.19ID:EDSn5kWw
>>31
コード生成はプリプロセスとしてコンパイルの度に毎回動かすわけじゃない。stringerとか使ったことない?
inportに関しては、
nodeがnpmの仕様を変えたら解決するならgoもそうすればいいのでは?
現状でも、vendor/もコミット対象にしてしまえば、依存ライブラリを管理対象にできるから
サードパーティライブラリに頼る以上はライブラリ作者の影響をどの言語だって受ける。
コード生成はプリプロセスとしてコンパイルの度に毎回動かすわけじゃない。stringerとか使ったことない?
inportに関しては、
nodeがnpmの仕様を変えたら解決するならgoもそうすればいいのでは?
現状でも、vendor/もコミット対象にしてしまえば、依存ライブラリを管理対象にできるから
サードパーティライブラリに頼る以上はライブラリ作者の影響をどの言語だって受ける。
2018/03/07(水) 03:12:09.66ID:rBtvNRXK
Yコンビネータ forall a. (a -> a) -> a のように
forallがつく関数は第一級オブジェクトにならないのが普通だ
総称型がある比較的新しい言語はもう第一級オブジェクトにこだわらない
forallがつく関数は第一級オブジェクトにならないのが普通だ
総称型がある比較的新しい言語はもう第一級オブジェクトにこだわらない
2018/03/07(水) 04:31:47.78ID:Fw456RXb
maybe/eitherが無い言語はあまり触りたくないな
35デフォルトの名無しさん
2018/03/07(水) 07:45:36.47ID:zWLX9kTq goってなんだかよく使われてる以外の理由で使う理由がないよ
同じことするならrustのがいいわ
同じことするならrustのがいいわ
2018/03/07(水) 08:21:04.51ID:JwI5qwvI
Goはマイクロスレッド得意なのはありがたいな。
あとチャンネルと。
そして静的リンクがデフォ。
これだけで、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が入る?
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++の後継を目指してるだけあってかなり万能な言語ではあるんだが
問題は普及するかどうか…
>>37以外にも組み込み、OS、ドライバ、デスクトップアプリ等どこにでも入ろうと思えば入れる
C++の後継を目指してるだけあってかなり万能な言語ではあるんだが
問題は普及するかどうか…
2018/03/07(水) 10:25:38.57ID:487L5ZU0
2018/03/07(水) 10:51:52.29ID:JwI5qwvI
>>39
githubが便利だからgithub使ってるけど、別にgithub以外でも公開出来るし、依存してると言うより多くの人間がgithub使ってるだけでは?
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
2018/03/07(水) 13:19:03.34ID:lIV1PIoV
Googleが採用しなかったDartよりはMozillaが採用したRustの方が将来性はあると思う
46デフォルトの名無しさん
2018/03/07(水) 13:45:40.70ID:MMWrPDHz2018/03/07(水) 13:53:35.83ID:L0uTy1l9
>>41-42
その辺の話は
https://talks.golang.org/2012/splash.article
に書いているけど、
Google社内の巨大なソースのコンパイル時間が45分とかかかるようになっちゃって
なんとかしないとという流れで始まったって書いてる。
つまりGoogle以外で恩恵を得る可能性は低いな。
その辺の話は
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とかいう先進的?なフレームワークも存在する
あのクレート発見したときは「こいつ天才かよ?」って思った
一応マジメに返しておくと現状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でいじるようなライブラリがでたら考えるかな
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
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操作ができるようになれば…
憶測でしがないが、それは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が無いから不便
ラムダ式とかジェネリクスとかGCがあればこそ手軽に使えるものなのに
GoはGC有るのにどちらも無くて
RustはどちらもあるけどGCが無いから不便
2018/03/07(水) 16:37:37.77ID:rBtvNRXK
RustにもARCはあるんだろ
まあでもARCはゴミのようだという意見には一理あるわな
まあでもARCはゴミのようだという意見には一理あるわな
55デフォルトの名無しさん
2018/03/07(水) 16:48:10.62ID:vL0QsqKL2018/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で書いたらどうなるか興味ある。
後railcarってdocker代替作ってたり。
どっちもあんまり魅力的じゃないないな。
ゲームエンジンがrustで書いたらどうなるか興味ある。
2018/03/07(水) 18:19:20.11ID:EDSn5kWw
2018/03/07(水) 18:50:32.83ID:8jwTNUb7
2018/03/07(水) 19:11:36.71ID:QbuNtZtf
>>59
ゲーム分野もUnityやUnrealでニーズ満たしてるし、それ以外のものは今さら流行らんでしょ
ゲーム分野も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
66デフォルトの名無しさん
2018/03/07(水) 20:42:19.89ID:vL0QsqKL2018/03/07(水) 20:57:01.38ID:L0uTy1l9
https://taiyaq.com/contents/VXd2aV04Gr1mLC8e3AbEg4XKly
Dartの言語ツアーみてるけど、結構言語仕様が辛い。
変数宣言がC由来の「型 変数名」なのがつらい。
GoとかTypeScriptみたいに変数宣言は「変数名 型」にして欲しいわ
あと内部コードがutf16というのが気になる。jsより後発なのにjsと同じ仕様って。
Flutterは良さげなのになぁ。
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
2018/03/07(水) 21:24:30.78ID:Fw456RXb
今rustで書いてるよ、勿論mozilla全く関係無い
映像系のバックエンドでは結構使ってる情報見るけどな
映像系のバックエンドでは結構使ってる情報見るけどな
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★10 [ぐれ★]
- トランプ氏「台湾侵攻すれば北京爆撃」“過激予告発言”報道がXで再燃「高市氏の1億倍やばい」 [七波羅探題★]
- 【維新国会議員が800万円超の公金を使用】藤田文武共同代表が印刷代569万円を維新市議の「身内企業に支出」していた! [ぐれ★]
- 【ペルソナ・ノン・グラータ】中国総領事の早期国外退去を首相に要請へ 自民・保守系グループ「日本の尊厳と国益を護(まも)る会」 [ぐれ★]
- 「母の部屋に安倍氏が表紙の機関誌が」「(安倍氏が被害者なのは)不思議に思いませんでした」山上被告の妹が証言 ★2 [おっさん友の会★]
- 【(・(ェ)・)】収穫前のリンゴ2トン!丸々と太ったクマがリンゴ畑に連日現れ…一晩中居座る「こんなに食べられたのは初めて」長野・上田 [ぐれ★]
- 安倍晋三さん、完全にチェックアウトしてしまう…「母の部屋に安倍元首相が表紙の旧統一教会の機関誌があった」 [405019576]
- 中国報道、高市首相を「毒苗」と中傷😡 [399259198]
- 【高市悲報】🇨🇳中国「日本への報復措置? 他にいくらでも方法はある。 まだまだやめないよ」 😨😱 [485983549]
- 【悲報】日本、パンダ0にwwwwwwwwwwww高市さんありがとう🐼 [271912485]
- 高市早苗、約1ヶ月でドル円・10円円安を達成 [256556981]
- 高市さん「自賠責を勝手に他の財源に充てるな、返せ」財務省さん、しぶしぶ5700億円を返還 [881878332]
