次世代言語議論スレ[Go Rust Scala Haskell]第5世代 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
いざ、語ろうぞ。
スレタイ超過のため、一部省略。
その他もウェルカム。
前スレ
次世代言語議論スレ[Go Rust Kotlin Scala]第4世代
http://mevius.2ch.net/test/read.cgi/tech/1492631007/ mlが黄泉から還って左目を洗ったときにsmlが産まれ、右目を洗ったときにOCamlが産まれ、
鼻を洗ったときに産まれたのがF#であるらしい elmの話題が無いみたいだけど触ってる人いないの?
elmの影響を受けたというreduxをtyprscriptから使ってるけど、
reducerを書くのにimmutable.jsを導入してみたらtypescriptと相性があまり良くなくて悲しい。
どうせならelm触ったほうが幸せになれんのかしら。 低レベル記述は出来なくてもいいから、短く書けて速いバイナリを吐く言語ってなんだろ? あまりにもマイナーな言語だと誰も行列計算を実装してくれてなくて面倒臭い >>535
俺にはちょっと冗長かなあ……
内包表記もmapもないのは俺には辛い 本当内包表記もmapもないのは謎だわ
おまけに三項演算子もif式もmatch文もないし
うんこ オブジェクト指向言語で作るときよくOMT(オブジェクトモデリングテクニックとかなんとか)をよく使って設計してたんだけど、
関数型言語で作るときは何使えばいいの? 今思いついたんだが
数学は公理を使えばいいというより、公理以外の何も使わない方がいいな
特に言語に依存するテクニックを使ってはいけない
言語を変えた途端に使えなくなるので 三項演算子は構文がまるで違うからね
式中にもif書けるようにするからそれ使えの方向
(逆にif廃止全部三項演算子使えな言語があったらおもしろいけどw) >>541
関数型の重要な設計指針として、トップダウンで考えるというのがある
1. 問題全体の結果を求める関数のスタブを作る
2. スタブを一つ選ぶ
3. 2で選んだ関数を実装するために必要なものを考え、それぞれを求める関数のスタブを作る
4. 2へ戻る
これを、すべての関数が十分(容易に実装できるレベル)に細分化されるまで繰り返す
こうやっていくと非常に明快で平易なコードになる
逆に入力から出力を導くという考え方で作ろうとすると、俺スゲェに陥って意味不明なコードになりやすい >>544
構造化手法ですか
業務系はオブジェクト指向のが良さそうだ 「おまえはこういうコマンドを与えるとこれをやるクラス」って
トップダウンで構造決めてくオブジェクト指向の基本手法の
単語入れ替えたコピペかと思ったw
そしてそれならコマンドに対するふるまい変えられるオブジェクト指向の方がいいや トップダウンの細分化をどこで止めるかを考えないと意味がない
CPUの種類までトップが決めるのか?
CPUを変えたり仮想関数のふるまいを変えたいならトップダウンを止める必要がある >>537
この需要ならrustがベストかいなー
何をするにも面倒な言語というイメージがあって避けて来たけどやってみるか
ありがと もし関数型で大規模な業務アプリを作るなら、大まかなところは伝統的なIPOベースのDFDで描いて
各プロセスを>>544のようなスタイルで実装していくことになるんじゃないかな
データ指向の設計ってCOBOL時代に既に完成してて、あとは莫大なコピペコードの問題を関数型の高度な宣言的記述によって回避できるなら
設計手法としてはわざわざ意識高そうな複雑な手法を持ち出すまでもなく十分に完成と言えると思う 俺が若い頃(90年頃)はC言語の事を
関数型言語と呼んでたのに。 関数型が注目されてるのってマルチコア時代の並列処理を効率良く動かすための
手法として注目されてるわけで
更に次の世代というと、量子コンピュータってことになるけど
今の実用化している量子コンピュータは機械学習に最適化されてるんで
つまり機械学習専用言語ってことになるのかな >>553
飽きてきたから次のおもちゃってことだろ 機械学習のハードが実現してなくても、ソフトで実現すれば数世代先取りできるだろ
現にソフトで機械学習やってるし
ソフトでやるのに飽きた頃にハードが出てくる 機械学習専用ハード(ASIC)もうあるよグーグルTPUとか ハードの実験っていうかオープンソースじゃない実験は再現性が怪しい >>559
どういう理由でアツイの?
またその「学問分野」って具体的にはどの分野? >>559
Googleは君の興味関心を学習して君の見たい世界を見せているということを念頭に置いておいたほうがいいよ >>560
東大辺りの奴らで、機械学習をわざわざOCamlで書いてる輩が増えているらしい 。ライブラリも整備されてきたってよ
>>561
知ってる。ちなみにOCamlの情報はGoogleじゃなくてリアルの交友経由の情報 まああくまで微妙にアツイだからな
ScalaとかHaskellもあったかな?
他はもうC++FortranPythonMatlabMathematicaしか知らんなあ
ケムインフォマティックスなんかはHaskell Scalaはやってる人いるけど Ocamlは聞かないし、やっぱりHaskell Scalaのが上かな? haskell とか scala とかってもはや学習した時間を無駄だと思いたくない人たちが
無理やり盛り上げてるようにしか思えないんだが。 OCamlはマルチコア対応になったらまた始めたい
Jocamlとか折角面白いのにシングルコアなんで魅力半減 HaskellもScalaも関数型言語の考え方だけ学んだら用済みで、
取り入れるだけ取り入れたJava8や、Kotlinが正義
このスレでは叩かれたが、今となっては俺の言った通りになったじゃないか 正直kotlinが優勢だよね。感覚的には
golangは早めに安定したから今はやってるけど、
また状況は変わりそう。
rustはメモリオーナーシップモデルをswiftにパクられたらいらない子になりそう。 >>565
たし蟹
Scalaはそこそこ良い言語だったけど
尖りすぎてKotlinにあっさり置いて枯れてしまった kotlinはscalaの知識使えるし別に
webならplayあるscalaの方が有利だし使い分けじゃね >>571
Playは絶賛失速中だろう
コミュニティは機能してないし勉強会もイベントもなく、QiitaやTwitterにももう何もない
Scalaで使ってた人はRailsやDjangoを使い始め、Javaやってる人はSpringに戻っていった やっぱりGroovyやってた人たちが一番先見性あったな
次はどの言語だろう… >>572
今さらRailsとかどんだけセンスないのおまえ(暗黒藁半紙)
型無し能無しセンスなしの糞ゴミ言語は全員死ね
マツボックリだかなんだか知らんヒゲ爺は
さっさとこのゴミ言語を潰せボケ >>562
レスと御教示ありがとう
機械学習のコードをOCamlでですか むやみやたらと大量のソースコードを量産して、ディスクの肥やしにする最近の風潮になじめない。
元凶はJavaあたりか。
価値のあるコードってのは、定義が難しそうだけど、
たとえば実行可能コードとそのソースコードのボリューム比較を考えてみると、
ソースが理不尽にふくらんでいる気がする。
hello,worldに数十行ってのは本末転倒。
なんでもかんでもオブジェクト指向しなくても、昔も別に困ったわけじゃないんだから、OOが必然ではないはず。
どんどん全体を見渡せる、いわゆる、神の目を持つものが少なくなっている。
まあ、仕事を増やすって意味で業界に貢献してるんだろうけど、ばかばかしいほどにまで非効率になっている
気がするね。 記憶力が落ちただけだと思うよ
自分で気付いてないだけ どこの世界の話だ
ここ最近の風潮では、短いコードが正義だと関数型を採用しひたすら抽象化に邁進する流れじゃないのか 少なくとも日本ではなさそうだな
ジャップランド土人は屁臭いペチプゥで
型無し能無しセンス無しの糞コードウンコモリモリ大将軍してる
基地害低脳ゴミカスしかおらんからな Petit peu な Codeaux un commois liais mois liais? Ceylon は消えるだろうな。キラーアプリが出てくれば別だけど。
(Ruby がRailsで一発当てたみたいに、すごいソフトが出てくればの話だけど) 最近のKotolin 推しって何なの?
一時期Scala を押していた人たちがKotolin に移っているのかな? Androidもしらないサーバーサイドお爺ちゃん
組み込み曾お爺ちゃんの後を継ぐのは君だ きっかけはAndroidの件だけど、Kotlinを話題にしてるのはサーバーサイドの連中が中心だろう
Android開発なんて金にならない三流分野で、プログラミングのメインストリームを変えるような影響力なんて無いよ 今はなんとなくSwiftやTypeScriptのような言語が流行っている雰囲気があるから。
Java/Android界隈の人も var 変数 : 型 って書きたいんだろう。 >>590
プログラミングのメインストリーム変えるような連中は、Android開発だろうとサーバサイドだろうとなんでもできるフルスタックが多いんじゃない? var 変数 で型推論してくれるのが前提の書き方のはずで
関数型言語だと「型注釈は(コンパイラが失敗するまで)書くな」だけど
: 型 つけないとコンパイラに怒られまくるなら最初から書いとくのも仕方ないね >>592
フルスタックな人ならクライアントに置くコードは最小限にするはずだから、
Androidアプリを何で書くかなんて深く議論するに値しない些細な問題だよ >>593
>関数型言語だと「型注釈は(コンパイラが失敗するまで)書くな」だけど
誰がそんなデマを言いふらしてるんだ? 天才プログラマが一人で全部作りましたって時代ではないからな。。 >>595
逆に積極的に書くのがベストプラクティスなんてのがどこにあるんだよ? まぁ書かないのが良いとはされてるが、プロダクションコードはコード規約とかで、全てに型注釈入れろとしてるとこが多いね >>598
>>599
意味不明すぎ
型注釈は入れるのが当たり前だろ
単なるジェネリックプログラミングと勘違いしてない? ScalaでもHaakellでも書くのが当たり前だぞ OCamlとか死んだ老害言語の話はしてないから
耄碌お爺ちゃんはあっち行ってて もしかして式一つずつに型注釈入れるとでも思ってるのかね
そんなのJavaですらやらんよ?
HaskellやScalaは少なくとも各モジュールのトップレベルの関数には型注釈つけるし、つけないと効率悪くなる
コンパイル遅くなりやすいし、推論に頼りすぎるとエラー時に問題箇所が曖昧になるから 書いても書かなくてもよいというのが客観的事実だから
理系なら話はそれで終わり
それ以上踏み込むのは文系の仕事 >>609
なら最初からそう書けよ
> ScalaでもHaakellでも書くのが当たり前だぞ
エアプガイジ Ocaml自体は良い言語なの?
あんまり使ってるって人は聞かないけど >>613
よく知らないけど金融で使ってる人がいるらしいのと、最近機械学習で使ってる輩がいるらしい >>612
またお前か
ガイジガイジうるさいだけでなくただの知ったかぶりか ocaml, haskell の比較
ttp://d.hatena.ne.jp/camlspotter/20101212/1292165692
まあ極論抜きにして普通に考えればこういうことだろうなという印象。 >>618
この人は良く分かってるなあ
純粋言いながらunsafePerformIO使うって件はまさにその通り
結局このIO書くときの面倒さがあるから、ScalaやOCamlのが使いやすい印象になってしまう 割り切れば楽なのにと思ったりもするw
純粋とは副作用有りと無しを分けて書くことで
try-catchで正常処理とエラー処理を分けて書くようなものだ >>620
ちょっと脇道にそれるけど
try-catchって言うほど正常処理とエラー処理をきれいに分けられる?
goのようにその構文を捨ててる言語があるとこも考えると
いうほど価値あるのかなって思う。
あと関数型だとEither型とかもあるよね。 >>621
返り値が一つしかない言語では有能機能だった。多値返却が当たり前になりつつある今はもう…… >>622
まぁ。それでもリストなりタプルで返せば一緒だけどね。
前の会社の上司がphpの関数の返却値を必ず配列で返してたの思い出した。
言語としての基本方針がそうなっているかどうかだよなー。
結局誰かがそういう実装にしてもメンテする過程で混在しちゃったら地獄と化す elixirの言語仕様の中に、結構何これかっこいいって仕様がたくさんあった気がする。
例えばパイプ演算子とか、
バイト配列に対するパターンマッチとか。 OCamlでは常備薬だったよ>パイプ演算子
haskellの$や.より読みやすくて好きなんだけど、関数型も取り入れててオブジェクト指向もサポートしている言語だと、
メソッドチェーンでええやん勢がいるのが難点
自由度はパイプの方が高い気がするんだがな お前らだれもF#話題にしないからマイクロソフトP#作っちゃったじゃん へー、FORTRANの次はPascalの.NET版か。 ■ このスレッドは過去ログ倉庫に格納されています