次世代言語Part7[Go Rust Swift Kotlin TypeScript]

レス数が900を超えています。1000を超えると表示できなくなるよ。
1デフォルトの名無しさん
垢版 |
2017/10/19(木) 17:51:38.66ID:EPSDvC75
文字数制限きついので改題
スレタイ以外の言語もok

前スレ
次世代言語議論スレ[Rust Kotlin Haskell]第6世代
http://mevius.5ch.net/test/read.cgi/tech/1503924817/
2017/11/27(月) 08:00:20.85ID:lA4+sBYi
(一般的な)静的型が本領発揮するのは運用開始後に手を入れるときだろ
依存関係が完璧に把握できるからな
2017/11/27(月) 08:06:57.76ID:BLxyIU7+
GGG言語は熱い
2017/11/27(月) 08:17:35.26ID:Q9OySQec
MLまでいかなくてもPascalでも使ったことあれば>>837のような幼い感想は出てこないと思うので
なんだか微笑ましい
2017/11/27(月) 08:59:52.64ID:4bHQN/8n
静的型とちゃんとしたIDEならカーソル箇所のメンバを使ってる元とメンバが依存してる先が自動的に一瞬で全部表示される
grep(笑)
作りっぱなしで逃げられる開発なら型なんかいらないと思うよ
2017/11/27(月) 09:00:19.33ID:oelMhkLH
Rustでコード書けない低脳勢の嫉妬が心地よいわ
2017/11/27(月) 09:53:28.95ID:AnhEBxtH
>>835 「遅くて実用に耐えないが明快で仕様を満たしていることが分かる関数」と
「速いけど複雑で仕様を満たしているか分からない関数」が数学的に等価であることを示せる
あるいは求められている仕様を型として表現することで、その型を返す関数は仕様通りであることを示せる

証明駆動開発は依存型じゃないとできない
2017/11/27(月) 10:24:46.55ID:yqPvbQsf
>>842
RustをHaskellで置き換えたら数スレ前によく見たやつになる
2017/11/27(月) 10:27:49.38ID:yqPvbQsf
やっぱRustもHaskellも、強烈な選民思想を産み出すという点で、
この世に存在したらいけない言語だなほんと
2017/11/27(月) 10:33:41.71ID:Q9OySQec
他を使ったこともないやつがいきなり先進的なのを使うと
全てがそのひとつの手柄みたいに思えてしまうんだよな
C#のときもD言語のときもよく見た
2017/11/27(月) 10:46:19.87ID:kgsU8O53
そういえばhaskellの主張してた奴消えたな
2017/11/27(月) 11:17:42.08ID:qLynQL2e
話は聞かせてもらったぞ
静的型と動的型のうち選民思想が強い方が滅亡する
849
垢版 |
2017/11/27(月) 11:30:52.56ID:gxJYhWYL
>>830
酒飲んでないぞ。
>>836
レンジチェックとか静的解析で割となんとでもなるでしょ。安物の解析ツール使ってるならアレだけど。
850
垢版 |
2017/11/27(月) 11:31:28.76ID:gxJYhWYL
>>837
あれぐらい縛るなら俺は両手を上げて賛成する。
2017/11/27(月) 11:58:44.95ID:Q9OySQec
配列の境界チェックぐらいなら気の利いた処理系ならなんとでもなるが、
そういう類のをユーザー定義できると想像するといい
2017/11/27(月) 13:08:54.03ID:nLFkP6Tp
静的型づけと動的型づけのほかにも強い型づけと弱い型づけがあるぞ。
両方を合わせると4パターンあることを考えたほうがいいぞ。
853デフォルトの名無しさん
垢版 |
2017/11/27(月) 14:31:06.76ID:VTdrxhpK
>>852
弱い動的型付けは存在しないから3パターンだぞ
2017/11/27(月) 14:33:43.01ID:Q9OySQec
動的型付けでも、異なる型を混ぜた時に自動で変換されるのとエラーになるのがある
そういうやつのことじゃないの?
いや>>852に訊かないとわからないけど
855デフォルトの名無しさん
垢版 |
2017/11/27(月) 14:52:39.00ID:VTdrxhpK
>>854
弱い型付けってのはキャストはエラーはかずに出来るけどメモリぶっ壊して全く違う所でエラー起きたりするCとかC++みたいな奴の事だぞ
2017/11/27(月) 15:04:23.55ID:Q9OySQec
>>855
その定義だとreinterpret_castができるやつは全部弱型になるだろ
んで、その定義でもObjCのid型やOO風拡張付きアセンブラやForthなんかは動的弱型じゃね
まあ>>825にry
857デフォルトの名無しさん
垢版 |
2017/11/27(月) 15:06:30.80ID:VTdrxhpK
>>856
ObjCは分からんが
unsafeブロックとかで限定的に弱い型付け許してる言語もあるけどそういうのは基本的に弱い型付けとは言わないね
2017/11/27(月) 15:12:29.84ID:Q9OySQec
一般的にはnominalで暗黙の型変換を許さないやつがstring typeだと思うぜ
2017/11/27(月) 15:13:04.01ID:Q9OySQec
/string/strong/ (苦笑
2017/11/27(月) 15:19:26.38ID:RuMmCyGV
情弱言語
情強言語
861
垢版 |
2017/11/27(月) 17:59:38.96ID:gxJYhWYL
選民思想ってどういう意味なんだろう?
862デフォルトの名無しさん
垢版 |
2017/11/27(月) 20:05:56.25ID:ioN0hnnU
>>861
神に選ばれたとか生まれながらの血筋とか、
とにかく一部の選ばれた人間のみを良しとする思想。
白人至上主義みたいになのが代表的なものだろうな。
そのぐらいググれば出ると思うけど。
863
垢版 |
2017/11/27(月) 20:15:59.53ID:YD13FB3m
>>862
選民思想自体の意味はわかるよ。
言語に対して選民思想がある、ってのがわからん。
知れば選民なの?って感じ。
一見さんお断り、紹介制ね、セミナー・講習・試験受けてねー(笑)
でもあるまいし、なんか知ろうとする努力を放棄して便利な言葉でごまかしてるように見えるって事。
2017/11/27(月) 20:20:31.71ID:AFwfxdAR
くっさ
2017/11/27(月) 20:27:37.84ID:Q9OySQec
>>845のことなら強烈な自己肯定感と言い換えてもいいんじゃね
たかが2chの言葉遣いに厳密に意味を当てはめてもしょうがない
866
垢版 |
2017/11/27(月) 20:40:26.85ID:YD13FB3m
なるほど。自己肯定感を他者への否定で裏打ちしてるような人たち、か。
いるな。Ruby使いが全体的にそんな印象。
867デフォルトの名無しさん
垢版 |
2017/11/27(月) 21:24:06.34ID:HF1f2kGW
おまえらみんなそんな感じじゃんw
2017/11/27(月) 21:30:42.30ID:zgUQvI9i
自分が使ってる言語以外は覚えるの面倒だから滅べっていう奴だな。
わかりやすいし、正直だとは思うが恥ずかしい言い分だということも理解しておいた方がいい。
2017/11/27(月) 21:32:45.76ID:zgUQvI9i
>>818
go はそもそもシンタックスがパースしやすいようになってるから
実装が楽だって話だろ。
2017/11/27(月) 22:33:25.18ID:pxmyvyPz
そもそもgccのgoってメンテされてないのでは?1.2くらいで止まってなかったっけ?
2017/11/27(月) 22:35:11.55ID:pxmyvyPz
>>868
言語を2つくらい学ぶとそれ以降はソンナ手間でもなくなってくけどな?
最近は学習しやすいべ。
それよりエコシステムの使い勝手が大事。
nodejsは最近やっとまともになってきた
2017/11/27(月) 22:42:59.78ID:zgUQvI9i
>>871
まあ個人的な見解になるんだが
そういう奴のいうところの「覚える」ってのは機能だったりシンタックスについて
すみずみまで覚えるってことだったりするわけよ。
なんか周りにも自分にもハードル上げちゃって原理主義に走ってしまうって感じ。

言語を覚えるっつっても人によってとらえ方はだいぶ差はあるかもね。
2017/11/27(月) 23:03:54.83ID:BLxyIU7+
頭にウンポコピーのプェチピがつまった動的池沼型なしウンコマンがまた喚いてるようだね
うるさいゴミ虫だな!つぶれちゃえ、プチッw
2017/11/27(月) 23:17:01.33ID:b0u4s5jJ
>>872
>機能だったりシンタックスについてすみずみまで覚えるってこと
最近になって、当方主力のC/C++についても、これを諦めることにしました、楽になりました…
2017/11/27(月) 23:36:34.04ID:kgsU8O53
C++を「覚えて」いるやつなんて数えられる程度だろう
2017/11/28(火) 00:19:59.65ID:j/VePoOF
>>872
それこそ忘れたらググればいいし、
IDE連携でfixも出来る。
機能の存在を知ってることが重要だよね。
あと大概の概念は言語間で共有してる。
2017/11/28(火) 01:13:03.69ID:oL6iYiK7
共有してるが細かい違いがストレスになったりしない?特に「ぼくのかんがえたさいきょうのOO」は辛い
2017/11/28(火) 01:57:11.51ID:5aM4mai7
>>877
おいPHPの悪口はやめろ
2017/11/28(火) 09:52:26.16ID:LMrici0y
例のオライリーのrust本やっと出たようだな
2017/11/28(火) 10:47:18.80ID:oqWjNxDa
型システムの概念はC++とHaskellですら共有してる
一方、オブジェクト指向の概念は共有してないのでストレスになる
2017/11/28(火) 21:52:49.31ID:+Ls9Kpqr
昔はこの手のスレだと、補完が効くのは静的型だけだから動的型はダメだ!的な
無知丸出しのカキコミしてたJavaドカタを良く見たけど、
最近は流石に学習したのか、そういうの減ったね
2017/11/28(火) 22:32:58.71ID:XwHAt9fz
とはいえpythonの補完はpycharmでさえたまにしょっぱい結果になるがな
883デフォルトの名無しさん
垢版 |
2017/11/28(火) 23:57:11.98ID:S3oF2yyz
つうか補完って個人的にはうざいからいらない。
補完ってそんな有難いかねぇ。
2017/11/29(水) 00:01:06.36ID:Ro7m+vSG
>>883
ガイジかな?
2017/11/29(水) 00:28:23.95ID:LyP2QHxX
どのみちJavaScriptはクソなのは事実
886デフォルトの名無しさん
垢版 |
2017/11/29(水) 01:08:31.46ID:ZTL4r6Le
jsが糞だなんて世界の共通認識やろ
887デフォルトの名無しさん
垢版 |
2017/11/29(水) 01:32:48.31ID:/BpqyHHR
何でやjsは最高やろ
javascriptはうんこだけど
2017/11/29(水) 01:34:30.49ID:wq9Dycsx
jsはブラウザ標準だから広まってるけど実際かなりの変態言語だよね
大分マシになってきてるけど
889
垢版 |
2017/11/29(水) 08:18:33.62ID:fb/gmNyy
phpは、protectedとか何だかんだ大先生が要るって言うものはつけたけど、正直必要性がわからんね、みたいな事を作者が言ってるぐらいだからな。

JSはあの変態具合がじつに良い。
2017/11/29(水) 10:31:45.07ID:/xS4M0rU
>>881
ダメだろ。動的言語の言語仕様として正確な補完は不可能。
PHPとかPHPDocで追跡できるようにもできるけど、結局ドキュメント部分だから
信用できるとは限らないし
2017/11/29(水) 10:35:30.46ID:/xS4M0rU
>>889
ポリシーがない作者の言語は大体そう。
投票制で機能の実装を決めるって結局糞になる一方だと思うんだけど。
swiftも最近はそうだっけ?
2017/11/29(水) 11:19:53.91ID:ags1OwXJ
ハンバーガーとコーラとWindowsが多数派になったおかげで、少数派の自己肯定感が強い
893
垢版 |
2017/11/29(水) 12:52:13.36ID:fb/gmNyy
>>891
作者は、ポリシーがないのがポリシーみたいな人だしな。
たまに引数の順序とか違うけど、仕方ねえじゃん。積み重ねってあるんだから。それに便利さって尺度あるじゃん?とか、
自然言語だって言語学者が整理して作ったら英語なんかと全然違う整然としたもの出来るけど、それってホントに実用になるかはわからんよね。
って開き直ってるからな。
goto実装したときのやり取りとか滅茶苦茶面白かった。

譲れない部分以外は適当に決めろよ、俺使わねえし、みたいな方向性もアリだとは思う。
894
垢版 |
2017/11/29(水) 12:55:46.19ID:fb/gmNyy
>>890
補完が無いからダメ、を否定してるんでは?
「補完なんか無くても書ける」レベルのやつが書けばいいんだよ、っていう主張かと。
そんで、俺はそれでいいと思う。
補完が無くても大体間違いようがない、っていう使い方はあるもんだし。システムハンガリアンじゃない、本当の意味の方のハンガリアンとか。
2017/11/29(水) 13:46:28.77ID:N4X6syzD
>>894
その読解力でよく人に訂正できるな
間違ってるのはお前だよ
896
垢版 |
2017/11/29(水) 16:23:39.89ID:fb/gmNyy
>>895
是非説明して欲しい
2017/11/29(水) 17:20:07.57ID:0SzzSOSo
>>896
是非も糞もお前以外正しく解釈してるんだからかき混ぜんな
2017/11/29(水) 17:33:20.21ID:jE6TKqng
最近の言語なんて全部ポリシーないじゃん。
他の言語で流行ってる機能だからうちも入れよう
みたいな話ばっか。
899
垢版 |
2017/11/29(水) 18:31:36.52ID:fb/gmNyy
>>897
見えないすべての他人の代弁者ご苦労様。
2017/11/29(水) 18:51:31.66ID:/xS4M0rU
>>898
Go言語はポリシーあるけどね。と言うかGoogle社内で使うための言語として
進化してきたって感じ?
結局C++コードベースで作ってきたシステムがコンパイルするたびに40分とかかかるようになってきたから、Go言語でそこを改善した。
具体的には継承を使わないようにしたり
パッケージ間の依存関係を極力抑えるために敢えてDRY原則無視したり。
後プリプロセッサを削除してパッケージシステムをしっかりしたもの(未使用なパッケージをimportしたらコンパイルエラー)
にしたり。
2017/11/29(水) 22:33:45.37ID:0SzzSOSo
Goとか見るに、googleって意外と線形代数使わないのかなあ?
2017/11/29(水) 22:55:35.66ID:xEIA2DIf
tensorflowを作ってるんだぞ?使ってるに決まってるだろw
2017/11/29(水) 23:01:31.92ID:v9jZdRV7
そういうのはpython使ってんじゃないの?
2017/11/29(水) 23:38:03.94ID:0SzzSOSo
goは線形代数使わない用途向けか?
TensorFlow for goで全部やってるってわけでもなかろうし>>903の言う通りだろうか?
905
垢版 |
2017/11/30(木) 00:01:53.15ID:5c50KJX1
Grumpyも単純に書くと遅いしな。
速度を出したいならcとインラインアセンブラで書くだろうし、大規模に走らせるならHPC系に載せやすいfortranとかベンダのCだろうし、
気楽に書きたいならpythonで良いし、
その為に何か言語を、って手段と目的が入れ替わってる気がする。

既存の道具で目的が果たせるならそれで良い分野だろ、それ。
2017/11/30(木) 00:15:23.93ID:ZeZezy1g
Cとインラインアセンブラで書いた数学コードなんて今時見たことねえよ
2017/11/30(木) 00:21:22.97ID:ZeZezy1g
Cで数学コード書く奴いるけどあいつら凄いわ
俺なんかFortanの形状引き継ぎ配列使わない縛りでも発狂しそうになるのに、さらにサポート少ないCでよくやるわ
2017/11/30(木) 00:25:37.10ID:ZeZezy1g
いや、Cとインラインアセンブラって、もしかしてあれか。よく知らんけど、CPUベンダーが実装してるような何かか
2017/11/30(木) 00:25:51.08ID:6I05rtBK
>>907
ゲーム目的とかならCでやるんじゃないの。
と言っても今は優秀なゲームエンジンが無料の時代だから意味ないかもだけど。
2017/11/30(木) 00:27:36.54ID:4oSM3dIJ
Numerical Recipes in C にはお世話になりました
2017/11/30(木) 00:30:03.93ID:ZeZezy1g
>>909
しれっとC++にしてEigenかublasかなんか混ぜたりしない?そうでもない?
あれCで書いてる奴本当に凄いと思うわ
2017/11/30(木) 00:48:55.61ID:RJLQhcO3
いいニンクの日は過ごせましたか
2017/11/30(木) 02:40:07.39ID:3Jq96VTV
アドベントカレンダー見てたら地味にelmユーザ増えてる?
reduxきっかけで流れてきたユーザー居るのかね
2017/11/30(木) 02:43:19.27ID:3Jq96VTV
>>911
すげーかもしれんがそういう低レベルのコードを書くプログラマーっていま日本にどれだけいるんだろうな。もはや大手ゲームベンダーも他社のゲームエンジンに頼る時代だし
2017/11/30(木) 04:01:07.03ID:aR0OMF8n
みんなC言語が分ってるのが当たり前だと思ってたけど、
最近はC言語は知らないのが前提らしい
低レベルプログラミングという本が殆どC言語の解説書なのは驚いた。
2017/11/30(木) 06:58:09.24ID:DHC1c6S+
elmのアドベントカレンダー
2つめ全然埋まらなくてブチ凹む
2017/11/30(木) 08:03:32.96ID:uu2PxLG/
Cについて知っててもらわんと色々説明しづらい部分があると思うんだが
大丈夫なんかね。
918
垢版 |
2017/11/30(木) 08:34:13.82ID:pYUAd/ci
>>909
流体のシミュレーション書いたことある。
多分同業は同じように内製してるか、か今は外注するかしてるけど、ガチの方のシミュレーションでは結構使う。
2017/11/30(木) 09:05:16.03ID:6I05rtBK
>>916
ここで宣伝してよ。elmのメリット何?
使ってて気持ちいい?開発環境って使いやすい?
2017/11/30(木) 09:09:00.14ID:TiHNvA1L
>>914
あんなもんCで書いてて嫌にならないのは怠惰さの足りない奴でしょ
そういうのをやらされる/やる人が減るのは健全なことだと思う
921
垢版 |
2017/11/30(木) 11:03:50.95ID:pYUAd/ci
新しい言語を作ってそしてメンテしていくほうが面倒だと知ってるからな。
トランスパイラに近い闇マクロがCにはあるので、その辺で逃げるが勝ちの部分もある。
2017/11/30(木) 11:23:43.51ID:6I05rtBK
>>921
C11ってジェネリクスがあるの?
正直プリプロセッサで頑張れば何でもありな気もする。
ライナスがあんだけCだけ大好きっ子なのは何かあるんだろうね。
923
垢版 |
2017/11/30(木) 12:55:43.51ID:pYUAd/ci
>>922
思ってるようなジェネリクスとは多分違うけど型ジェネリクスで型から、呼び出される関数と引数を列挙してswitchみたいな事は出来る。それをマクロに書いたら型ごとに呼び出される関数が切り替わるように書ける。
けど使わん。ポインタなんかであっさり意図してない呼び出しになったりする事がままある。
ただの文字置換として展開出来るように書くほうが無難だと未だに思ってる。
2017/11/30(木) 13:26:07.53ID:aR0OMF8n
違うジェネリックスが出来る前は
関数の名前の後ろに_intとかつけなければ同じことはマクロでも出来なかったんだよ
2017/11/30(木) 13:37:31.49ID:SJCWnhNZ
標準機能だけでtgmath.hを実現できなかったから補うように追加したものではあるけど
そもそもサンプル以外でtgmath.hを実際に使っているところを見たことない
2017/11/30(木) 13:57:00.88ID:6I05rtBK
>>925
>tgmath.h
そんなのあるんか、正直Cは10年以上書いてないから知らんかった。
http://www.c-lang.org/detail/tgmath_h.html
型総称マクロかー。linuxとかでもそう言うの駆使して進化した書き方してんのかな。
Cって二段構えなんだよね。マクロでプリプロセスするから結構、動的な処理もかける。obj-cも初期の頃はマクロで出来てるって聞いた。
それが現在でもiOSで健在だし、結構良く出来てる。

例えば、obj-cのコンテキストとcのコンテキストが明確に分離できてる。

正直c++よりobj-cのほうが好き
cの資産を利用できるし。なによりc++より言語仕様が理解しやすい。
2017/11/30(木) 14:34:01.14ID:uu2PxLG/
まじめに20年以上c++追ってればこれほどコンパイラ毎に動作の異なる言語もないことはわかるよ。
残念ながらlinuxコードにあるプリプロセスマクロのがよっぽど安定してる。
928デフォルトの名無しさん
垢版 |
2017/11/30(木) 15:30:31.34ID:xynddTwh
Cもattribute((cleanup))が標準ならなぁ
2017/11/30(木) 15:38:19.11ID:TiHNvA1L
LispならともかくCのマクロはちょっと……
2017/11/30(木) 15:44:49.65ID:SJCWnhNZ
今更Cプリプロセッサが派手に変わることなんて無いもんな、そりゃド安定よ
しかしそろそろローカル変数名はマクロで置換されない程度の改良は欲しい
931
垢版 |
2017/11/30(木) 16:06:05.26ID:pYUAd/ci
>>924
ヘッダごと切り替えて、typedef自体も定義してたんじゃねえの?そういう時は。
932
垢版 |
2017/11/30(木) 16:09:24.35ID:pYUAd/ci
>>929
ハイジェニックでない事が予想もつかない活用()を生み出せる原点では?
bashかなにかのソースでびっくりしたことがある。十年以上前かな。
2017/11/30(木) 17:58:05.82ID:TiHNvA1L
>>932
なんだ?Cの悪口か?
そもそも文章下手くそなくせに「活用()」とか独特な用語使ったり、突然bashの話始まったりして何が言いたいのかわからん
2017/11/30(木) 18:04:13.66ID:6I05rtBK
TypeScriptでジェネリクス使っててちょっと複雑なことをしようとすると
とたんにしんどくなるのを体験して、型がない世界が羨ましいと思ったことはある。
(本末転倒感)

メタプログラミング部分を動的言語に任せてハイブリットにするというのが
ありかもしれない。

メタプログラミングツールの例
http://moapp.hateblo.jp/entry/2017/06/30/210636
935
垢版 |
2017/11/30(木) 18:14:08.53ID:pYUAd/ci
>>933
悪口じゃなくて、良くも悪くも無茶苦茶書けるのが良い所だって言ってるんだが。
今回はちゃんと会話できてる相手が居る以上、最低限、読もうと思ったら読めると思うが、なんか特別な説明要るの?怠惰な人には。

あとごめん、shのソースだった。見たらわかる。
http://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/usr/src/cmd/sh
2017/11/30(木) 18:17:01.73ID:7wApdvUL
>>934
TSやJavaのような型消去のジェネリックはいわば単なるLintの一種
メタプログラミングに使えるようなものじゃないよ
テンプレート方式じゃないなら.NETみたいにリフレクションでジェネリック型をnewできたりするような実行時サポートがないと
ジェネリックを活かしたメタプログラミングは無理
2017/11/30(木) 19:06:08.45ID:JKXpXDoa
>>792
>>793
Scala をdisってんのかよ?
大人気動画サイトのドワンゴで使われてるって知らないのか?

Scalaにおける最適なDependency Injectionの方法を考察する
?なぜドワンゴアカウントシステムの生産性は高いのか?
https://qiita.com/pab_tech/items/1c0bdbc8a61949891f1f
レス数が900を超えています。1000を超えると表示できなくなるよ。