X



次世代言語議論スレ[Go Rust Scala Haskell]第5世代 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0286デフォルトの名無しさん
垢版 |
2017/07/05(水) 22:42:05.37ID:+4iFZrIp
>>281
よく知らんけどleksahって言うHaskell製IDEが実在しているのでこのHaskellの人が言ってることが間違ってるのは間違いない
0288デフォルトの名無しさん
垢版 |
2017/07/05(水) 23:03:23.20ID:bh56GpK2
だいたいDBやGUIに持たせるといってもどこからそのコンテキストを持ってくるんだ?
結局呼び出し階層を遡って大修正だろう
暗黙的に環境の状態にアクセスするような関数があればいいとか思ってるなら、冗談抜きで怖いハスケラに夜道で襲われるレベルの邪悪な思想だぞそれ
0289デフォルトの名無しさん
垢版 |
2017/07/06(木) 00:04:57.61ID:CrSqEEHs
大きすぎて修正できないならさっさと諦めて逃げれば邪悪にはならないが
逃げるくらいなら邪悪な方がマシだと思うから邪悪になる
0290デフォルトの名無しさん
垢版 |
2017/07/06(木) 01:50:43.47ID:9Gxa3EmF
>>283
まーHaskell自体は決して使えん言語ではないのは知ってる

書くもんが大型化してくるとデフォ遅延評価のせいで副作用周りのデバッグが発狂難易度になるとか
ちょっと気を抜くと遅延サンクが膨れ上がって死ぬとか
色々あるからあんまりモノリシックにでかいものを複数人で書くのには向いてない言語だとも思うがね

そういう意味でHaskellはハードウェア記述言語に向いてると思うんだが、まだこれといったやつが出てきてないんだよな
0291デフォルトの名無しさん
垢版 |
2017/07/06(木) 02:15:34.43ID:pIo4ewrq
そもそも関数型が解決しようとした問題は、副作用の連鎖による想定外のトラブルだろ
大規模な構造をどう記述するかということであって、もうそれはOOPが解決してしまった
0292デフォルトの名無しさん
垢版 |
2017/07/06(木) 08:32:49.91ID:KLsItAo2
つまり純粋関数型は使えないと?
0293デフォルトの名無しさん
垢版 |
2017/07/06(木) 08:51:12.34ID:EB5tIDF+
その純粋ってのを保証してるのはコンパイル時の型チェックだな
それがなければ使える
0295デフォルトの名無しさん
垢版 |
2017/07/06(木) 09:24:44.24ID:4UTaW8nX
オブジェクト指向プログラムで副作用は解決してないだろ。どうみても。
0296デフォルトの名無しさん
垢版 |
2017/07/06(木) 09:46:24.49ID:EB5tIDF+
288の言う「呼び出し階層を遡って大修正」は
副作用有り・無しのチェックだけじゃない
ヌルを許容する・しないのチェックで破綻するケースもある
0297デフォルトの名無しさん
垢版 |
2017/07/06(木) 10:02:36.10ID:tNWdrmh7
>>296
あるある
汎用性を考え出すとモナドとMaybeにまみれて何のための静的関数型かよく分からなくなってくるんだよな
0298デフォルトの名無しさん
垢版 |
2017/07/06(木) 17:43:28.35ID:FO8iZdOb
>>290
うちのプロジェクトは遅延評価禁止ね全部先行評価で書け
oO(ソースが全然Haskellに見えないw)
0299デフォルトの名無しさん
垢版 |
2017/07/06(木) 19:15:58.18ID:NwSzXY2t
プログラムが現実と関係を持ちつつ社会の中で動いている以上副作用を無くすことはできない。
全体を停めることができず、部分単位でアップデートを繰り返すならなおさら。
そう言った意味で『関数型言語』は結局いつまでも実現することのない賽の河原の石積み。
0300デフォルトの名無しさん
垢版 |
2017/07/06(木) 20:11:21.34ID:lW8KZ3Ns
まあ言語の機能によって副作用のないコードエリアを明示するってアイディアは
良いと思うんだけどね。
haskell は変な極論を推し進めてどうしようもなくなってるという印象が強い。
0301デフォルトの名無しさん
垢版 |
2017/07/06(木) 20:13:21.99ID:dOY2yuiz
>>297
>>299
副作用が多くてMaybeモナドだらけになるって設計が悪いだけじゃない?
それって普通のプログラミング言語で書いても副作用だらけのプログラム書くってことでしょ?
どんなプログラミング言語でも副作用はなるべく少ない箇所に押し込むでしょ
0302デフォルトの名無しさん
垢版 |
2017/07/06(木) 20:29:36.80ID:XEsudacO
Haskellは副作用禁止の言語だと思ってる奴多いんか?
副作用と純粋関数に分けて書くってだけだぞ
0303デフォルトの名無しさん
垢版 |
2017/07/06(木) 20:35:22.98ID:td/2KdW6
>>301
Haskellは極論バカだから特にそこが問題になるんでしょ
オブジェクト指向では少々副作用があろうが汚かろうがクラスに閉じ込めて外からは「問題にならない」ようにすることができる
mfput(笑)みたいな小さな問題と違って、現実世界の問題を相手にすると常に最初から完璧な設計をするなんて不可能だしね
0304デフォルトの名無しさん
垢版 |
2017/07/06(木) 20:39:55.53ID:td/2KdW6
>>302
そんな勘違いをしてる奴は誰もいないと思うぞ
副作用の混入に対してセンシティブすぎるという話
0306デフォルトの名無しさん
垢版 |
2017/07/06(木) 23:11:16.25ID:4UTaW8nX
Javascriptのこのクイックソートは副作用なし


// QuickSort
QS=X=>X.length<=1?X:[
...QS(X.filter((x,i)=>i>0&&x<X[0])),X[0],
...QS(X.filter((x,i)=>i>0&&x>=X[0]))];

//main
var x=1, X=[...Array(20)].map(()=>x=(7+37*x)%100);
console.log("in: "+X + "\nout: "+QS(X));

http://ideone.com/wnQXXE
0307デフォルトの名無しさん
垢版 |
2017/07/07(金) 06:18:59.39ID:1OiH67XQ
>>290
ハードウェア記述言語向きってのは使った事ないけど、分かる気がする。

おいらもHaskellでGUIから何から書き下すのは出来なくはないけどそれOOPで良いよねって思ってて、
でもある意味CUIよりGUIの方がメッセージやイベントに答えるコード書けば良いだけなんだから、
むしろGUIをHTMLやXAMLで記述するようになった今だからこそHaskellは環境さえ整えばGUIも向いてると思うんだよね。
その環境が絶望的に揃ってないだけで。

なんつーかな。
あんたと思ってんのは基本同じだな。
全部Haskellで書こうとするから無理が出る。
上手に副作用部分を外部ツールなり、他の言語に任せて連携させればこれ程シンプルかつ堅牢に作れる言語もなかろうって思う。
0308デフォルトの名無しさん
垢版 |
2017/07/07(金) 09:21:04.24ID:Od+E3Jwj
つまりhaskellではなくOOPと関数とマルチパラダイムが答えということか
あ、Scalaやね
0309デフォルトの名無しさん
垢版 |
2017/07/07(金) 09:44:10.95ID:SZnapx63
今だとGoogleのお墨付きを貰ったKotlinだろう
mfput君のレベルだと全く不足ないことは上で実証済みだし
0311デフォルトの名無しさん
垢版 |
2017/07/07(金) 10:37:23.83ID:NO/da/cw
>>308
HTMLやXAMLでGUI部分書くようになった今、OOPの役割は終わったのに醜く延命してるって話。
でもコード資産があるから、ベストじゃ無いって分かっててもそうなるんだろうな。
0312デフォルトの名無しさん
垢版 |
2017/07/07(金) 12:01:01.33ID:GpMOtbcc
>>311
GUIの中で副作用のないところをhtmlに切り出せたなら
あとは副作用をどう上手く書くかだろ?
だったらHaskellみたいな純粋関数型は益々いらんって事にならんか?
0313デフォルトの名無しさん
垢版 |
2017/07/07(金) 12:31:39.94ID:qM4KnfoJ
GUIで書きたいのはただの副作用ではなく非同期な副作用
非同期とXMLを流行らせたJSの手柄をOOPの手柄にするのはアクロバティック過ぎる
0314デフォルトの名無しさん
垢版 |
2017/07/07(金) 12:34:56.69ID:xvg52mfm
え、逆だろ?
HTMLやXAMLは副作用の排出口。
だからそれらに書き込むような表層部分に副作用部分を集める。

むしろ今だからこそHaskellがGUIで活きる可能性が出て来た。
例えばエディタ作るとして、CUIだと文字入力監視用のループがある。
GUIだと文字入力されたってイベントに対応すれば良いから、HaskellだとGUIのがエディタ書きやすいと予想してる。
んで、そっからは文字列処理得意なHaskellの独壇場。
普通のアプリなら文字列処理をロジックと読み替えて良い。

まあ実はHaskellだけでGUI書いてもJavaやC#みたいにIDEが整備されてる言語には劣るけど、整備されてない言語とならどっこいどっこいで、特にGUI苦手ってわけでも無いんだけども。
Haskellっぽくなくていやんな見た目なだけで。
0316デフォルトの名無しさん
垢版 |
2017/07/07(金) 13:14:54.40ID:SZnapx63
>>314
そこまで構想(妄想?)ができたならもうそろそろいいだろ
続きはgithubで語れ
mfput(笑)みたいなサンプルじゃなく、ちゃんと実用性のあるGUI&DBアプリを作ってくれよ
期待してるぞ
0317デフォルトの名無しさん
垢版 |
2017/07/07(金) 13:39:25.73ID:kkdCXGBc
>>314
GUIアプリを画面を入力すると画面を出力するプロセスの集合体と見做すのはCOBOL時代には主流だった発想だよ(今でもWebには色濃く残っている)
自分でやってみりゃわかるけど、確かにスケールはさせやすいんだがくだらん単純作業とコピペを延々繰り返すような開発になるし
大きな手戻りが生じるともう悲惨
0318デフォルトの名無しさん
垢版 |
2017/07/07(金) 14:05:26.16ID:C9MPrnMO
うい。
作れたら出してみる。
0320
垢版 |
2017/07/07(金) 22:07:41.70ID:TSmGX11I
ダム端の画面エンジン面倒見たことあるわ。

文字入力監視のループと、GUIのイベントのdispatchループがどう違うかわからんな。
WinMainとGetMessageとか、XlibのXNextEventからGUIアプリ作ったこと無くて知らないだけじゃねえの?

副作用の出口ではないような。
WM_PAINTの処理中に描画以外やるべきで無いのと同じように、画面周りは出力に徹しないと話がまとまらん。

入力の処理なんか、フォーカス持ってるやつにメッセージ投げるだけだろ。
0321デフォルトの名無しさん
垢版 |
2017/07/09(日) 05:20:26.84ID:iVqKXTPM
昨今の話題にのせられてKotlinの入門編読んでみたけど、なんかイマイチだった・・・
関数の引数は型推論してくれんの?カリー化して部分適用とか力ずくでやらんといかんの?パイプライン演算子は・・・
今のところ不安しか感じてない、次世代言語の劣化版でバカチョン言語ってのがKotlinの実像かな?
0322デフォルトの名無しさん
垢版 |
2017/07/09(日) 07:39:05.73ID:nT4jFya6
>>321
関数引数の型推論もカリー化もパイプライン演算子も
全部持ってるHaskellがゴミクソだったから、
それらは言語の生産性にとって特に重要じゃないって事だよ
0323デフォルトの名無しさん
垢版 |
2017/07/09(日) 09:40:04.24ID:15PsL+fn
括弧を省略しないカリー化はゴミクソだし
中置演算子を使わないのと括弧を省略しないのはLispとJavaの伝統じゃないか
0324デフォルトの名無しさん
垢版 |
2017/07/09(日) 09:45:29.15ID:zwxu6ZoN
なんだかんだカリー化は微妙だと思うなあ
部分適用の文法はClojureとかMathematicaがいい感じ
パイプライン演算子はLL的に使うときは便利やね
0325デフォルトの名無しさん
垢版 |
2017/07/10(月) 01:34:13.11ID:VQ9sifwz
>>322
HaskellがクソなのはDynamicBindingが言語的に駄目扱いされてる点だぞ
あとstatic初期化にunsafePerformIOが必要な点もクソ
デフォルトで静的型なカリー化とかあったほうが明らかに使いやすいだろ知ったか野郎
0328デフォルトの名無しさん
垢版 |
2017/07/10(月) 17:50:59.58ID:LYSrTSKk
Rustが実用言語になったぞ
DockerをオラクルがRustで実装した
0330デフォルトの名無しさん
垢版 |
2017/07/10(月) 20:04:51.52ID:LYSrTSKk
実用言語になったらもう次世代言語じゃないからこのスレとはお別れだな
じゃあな
0332デフォルトの名無しさん
垢版 |
2017/07/10(月) 21:59:47.07ID:2kp3NGJ8
建物は完成した時点から崩壊が始まるのでわざと未完成の部分を残しておくとかいう話を思い出した。
0333デフォルトの名無しさん
垢版 |
2017/07/11(火) 11:36:48.66ID:5tKo2E+W
そもそもオラクルって時点でお察しだが、
業界ゴロのモジカスとOSSゴロのオラクルは相性が良かったんだろうな
0334デフォルトの名無しさん
垢版 |
2017/07/11(火) 15:49:53.62ID:Fwj1YTm5
>>332
誰がどう見ても未完成なら意見が対立しないからね
完成したら、一部の(自称)察しのいい奴が、まだ完成してないと主張し対立が始まる
0336デフォルトの名無しさん
垢版 |
2017/07/11(火) 18:53:45.21ID:dSS1j36W
[][Tebla][]

}

000-"Yob*RtStrike"[%Kil\]MO,fla>%$9999VLTS

001-GYORLith"0\R"/"ESUBA"%$%

HADO-"EM","L","O","NU"###END
0339デフォルトの名無しさん
垢版 |
2017/07/13(木) 00:48:32.99ID:ZEMYQbKR
一生実用言語にならないような言語は次世代とは呼ばねえだろ池沼かガイジ豆腐で撲殺するぞ
0341デフォルトの名無しさん
垢版 |
2017/07/13(木) 01:37:14.59ID:GmrDZ9ks
オブジェクト指向というだけで最低限の実用性はあるから純粋な世界に引きこもる
関数型は引きこもるとやばいから外に出る
0343デフォルトの名無しさん
垢版 |
2017/07/13(木) 07:22:43.74ID:ZgBNlC8f
Smalltalkの引きこもり方は物理的っていうかなんというか
imageの世界に引きこもってるせいで外の世界で新しいツールとか流行ってても使えないし
0344デフォルトの名無しさん
垢版 |
2017/07/13(木) 07:29:54.34ID:uexVWLm1
>>340
20世紀生まれとかバカにしてるけどな
Traitsなんて言語機能は10年とちょっと前
21世紀になってからSmalltalkで考案されたのを
新しい言語がこぞってありがたがって使ってんだぞ

Scalaに至ってはただのMixinをかっこいいからってTraitって名前つけちゃったくらいなんだぞ
0345デフォルトの名無しさん
垢版 |
2017/07/13(木) 07:40:18.24ID:m3hQX1bI
>>343
いつの時代のSmalltalkの知識で止まっているんだよ
Pharo作ってる and/or 使っている人たちの話でも聞いて錆び付いたイメージをアップデートしてみたら?
0346デフォルトの名無しさん
垢版 |
2017/07/13(木) 11:47:59.75ID:LjH88DBT
intはオブジェクトにしない方がいい
他にもプロセスidとかファイルディスクリプタとかURI
オブジェクトの本体ではないものが必要
副作用が必要なのと同じ
0347デフォルトの名無しさん
垢版 |
2017/07/13(木) 13:19:58.91ID:equsxY/V
>>344
バカにしてないけど、次世代言語スレとしては21世紀生まれの子たちに絞ってええやろ
起源がなんであれそれを子どもたちが引き継いでるわけなんやし
0351デフォルトの名無しさん
垢版 |
2017/07/13(木) 15:05:49.91ID:0lD2vgRh
haskellというゴミが消えてくれるならなんでもいい
0352デフォルトの名無しさん
垢版 |
2017/07/13(木) 15:14:48.65ID:/C8bZ6+r
そういえばOcamlになったのって案外新しく(1996)てびっくりした
もちろんCamlさらにMLからの流れだけど
0353デフォルトの名無しさん
垢版 |
2017/07/13(木) 19:08:43.36ID:1nRnB/qa
昔2chのこの手のスレで、Smalltalkerがgitについて全くトンチンカンなコメントを連発してたので
Smalltalkは錆びついてなくてもSmalltalkerは錆びついてると思う
0355デフォルトの名無しさん
垢版 |
2017/07/13(木) 19:53:58.91ID:0/kHeJlt
それ文脈ぜんぜん違う話だしねつ造やめれっていうか錆び付いているのはアンチの脳ミソと記憶力
百歩譲ってそういう話だったとしても最近出没してる「おいら」がHaskellの典型的ユーザーちゃうのと同レベルの話だがや
0356デフォルトの名無しさん
垢版 |
2017/07/13(木) 20:21:10.35ID:LjH88DBT
オブジェクトっぽくないものの語尾にerをつけて無理やりオブジェクトにする現象
0357デフォルトの名無しさん
垢版 |
2017/07/13(木) 20:57:33.19ID:10yx+996
>>354
なんかsmalltalkにある独自vcsもどきがsvn程度の機能しかないのか知らんが
発想が完全にsvnだったよな
0358デフォルトの名無しさん
垢版 |
2017/07/13(木) 21:26:25.99ID:uexVWLm1
>>357
そのvcsもどきっていうのは80年代から組み込みの古典的ChaneSetのことか?
Gitと同時期に開発されたMonticelloがsvn程度ってことはさすがにないと思うんだが
0361デフォルトの名無しさん
垢版 |
2017/07/14(金) 01:48:02.98ID:07oaelZE
>>344
有り難がるどころか、まともにtraitsなんて採用してるのphpとperlくらいだぞ
smalltalkerだけが凄いと思ってるどうでも良い機能だぞ
0362デフォルトの名無しさん
垢版 |
2017/07/14(金) 05:30:08.87ID:vxW3z/6K
>>360
へー、すごいねー。
普通の言語では、その言語で作ったアプリケーションの実行中にgitの複数のレポジトリから自己更新してきたり、実行時に構成を動的に変更したりが、とっくの昔からフツーにできているんだー?
さすが普通の言語ってすごいね。そこにシビレルね。
0363デフォルトの名無しさん
垢版 |
2017/07/14(金) 06:42:12.81ID:4JOJgkL6
そういうことをやりたいならJavaScriptに乗っかるのが普通だ
SmalltalkやJVMは普通になれなかった
0365デフォルトの名無しさん
垢版 |
2017/07/14(金) 07:44:52.22ID:Rnz3lE+5
>>361
perlのtraitはtraitじゃない
roleがそうだけど中途半端
実質phpだけじゃねーの?
rubyもmixとして実装試みたけど致命的欠陥があって諦めたし
0367デフォルトの名無しさん
垢版 |
2017/07/14(金) 08:27:52.66ID:Wh3H5+5v
Traitsを名乗るかどうかは別として
継承によらない(つまりフラット化による)合成が可能で
実装も持てるインターフェース様エンティティは
次世代以前に現世代の言語には欠かせないよね
0368デフォルトの名無しさん
垢版 |
2017/07/14(金) 09:03:14.28ID:HDhZQX71
実装を持った複数のインターフェースが衝突したら
(可能なら静的に)検知してエラーになるのが良い
だからフラット化も正直どうでも良いんだよね
0369デフォルトの名無しさん
垢版 |
2017/07/14(金) 09:30:19.13ID:Wh3H5+5v
継承パスなんかを持ち込んだ日にゃメソッド毎のオーバーライドの管理が面倒だろ?
それゆえにTraitsはフラット化がミソなわけよ
つーかフラット化どーでもいいとか言ってる前世代脳はミックスインで十分なんだからこっちくんな
未来永劫リニア化で疲弊してろ
0370デフォルトの名無しさん
垢版 |
2017/07/14(金) 09:41:35.70ID:16rSDABT
>>369
衝突したらエラーって言ってるのが読めないのかね文盲は
ユニークなんだからフラットだろーがリニアだろーが関係ないのが理解できない?
0371デフォルトの名無しさん
垢版 |
2017/07/14(金) 09:54:31.91ID:Wh3H5+5v
衝突→エラーは当たり前だボケ
その後の対処の話してんのわかんない前世代脳はあっちいってろよ
0373デフォルトの名無しさん
垢版 |
2017/07/14(金) 10:19:56.39ID:Rnz3lE+5
そういうトンチンカンな攻撃しないようにアンチもちゃんと学ぶべきと思うが
そもそもアンチはSmalltalkの閉じた世界の利便性なんてクソの役にも立たんと決めつけているから
永久に話が噛み合うことはなさそうだな
0374デフォルトの名無しさん
垢版 |
2017/07/14(金) 10:33:01.95ID:yYuDtDCJ
世の中の0.001%でしか使われてないマイナー言語側が外を学ぶべきなのは自明だと思うが
ていうか、学ばないから永遠にマイナー言語なんだよ
0375デフォルトの名無しさん
垢版 |
2017/07/14(金) 10:46:19.81ID:P4+8bNWB
前このスレにSmalltalk のコード書き散らしてた奴いたけどあのコード汚かったなあ
Smalltalk が汚いのかあのSmalltalkerが汚かったのか知らんけど
0376デフォルトの名無しさん
垢版 |
2017/07/14(金) 11:04:48.92ID:Rnz3lE+5
世の中の0.001%でしか使われてないって情報自体が不勉強なアンチ発の情報なんで定かでないんだけど
少なくとも本人はそういう認識でいる言語に丁寧にアンチ対応するのはつくづくヒマな御仁だなとは思う
0377デフォルトの名無しさん
垢版 |
2017/07/14(金) 11:19:42.57ID:Rnz3lE+5
いずれにしてもtraitはともかくsmalltalkの話はどうでもいいよ
アンチ情報が古くて役に立たないししつこくてウザイだけだよ
0382デフォルトの名無しさん
垢版 |
2017/07/14(金) 14:20:15.48ID:ZjhjVc89
実行時にクラス定義の式に到達したときにエラーが出るのを「静的に検査してる」というのは頭悪過ぎない?
■ このスレッドは過去ログ倉庫に格納されています

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