1 名前:デフォルトの名無しさん [2018/06/03(日) 23:53:27.92 ID:vrBh4O6u.net] スレタイ以外の言語もok 前スレ 次世代言語10[Rust Swift TypeScript Dart] https://mevius.5ch.net/test/read.cgi/tech/1524607347/
797 名前:デフォルトの名無しさん mailto:sage [2018/06/26(火) 21:49:11.80 ID:uCVrG76/.net] >>781 火狐に使われてるから残るとか 火狐の世界シェア見てから言おうぜ…… Rustごと自殺して消えるって自白したようなもん
798 名前:デフォルトの名無しさん mailto:sage [2018/06/26(火) 21:49:29.84 ID:1/94qv1z.net] 完全に半島人
799 名前:デフォルトの名無しさん [2018/06/26(火) 21:49:47.34 ID:jiePcum7.net] >>777 だからletとvarがあるんだって let: https://ideone.com/eB3UWN var: https://ideone.com/ae3qzC
800 名前:デフォルトの名無しさん mailto:sage [2018/06/26(火) 21:50:20.36 ID:z7QfCwwb.net] >>782 具
801 名前:体的に [] [ここ壊れてます]
802 名前:デフォルトの名無しさん mailto:sage [2018/06/26(火) 21:50:49.04 ID:K3KwuDCb.net] Delphiで残れたのなら火狐で残れるだろ
803 名前:デフォルトの名無しさん [2018/06/26(火) 21:54:24.01 ID:1lcgGYQy.net] この爺さんはこのスレに何しにきとるんだ 特養じゃないっつの
804 名前:デフォルトの名無しさん mailto:sage [2018/06/26(火) 21:56:05.20 ID:SIV9Ebow.net] >>787 が書いてくれたが 俺も、どっちも細々としたもんだがFirefoxのほうがDelphi(製アプリ)よりはまだマシだろう、というつもりだった その上で20年後の変更されまくったrustはDelphiやswiftより汚くなってそう、という予想
805 名前:デフォルトの名無しさん mailto:sage [2018/06/26(火) 22:07:57.87 ID:TI86xS9J.net] すでに汚いしな。
806 名前:デフォルトの名無しさん [2018/06/26(火) 22:12:37.76 ID:SLOKSalZ.net] >>785 varがあるのはわかるけど、そこでvarを使う場面てあるのかね? https://ideone.com/vMGLEg ```swift case let .B(n): let t = n+1 return String(t) ``` だって変わらんし
807 名前:デフォルトの名無しさん [2018/06/26(火) 22:24:29.16 ID:SLOKSalZ.net] >>785 それにvarのときだけつければ良くないかね,Rustだと「mut」つけるだけだけど https://play.rust-lang.org/?gist=f7bb032027fcdbc6db2f033c4874c27c&version=stable&mode=debug ```rust AB::B(mut n) => { n+=1; n.to_string().into() } ```
808 名前:デフォルトの名無しさん mailto:sage [2018/06/26(火) 22:33:54.59 ID:wjruZlWa.net] >>791 変数束縛にletとvarがある言語において、switchのときだけ変数束縛を特別扱いしてletやvarを省略できるのは一貫性が無いという考え方もある
809 名前:デフォルトの名無しさん mailto:sage [2018/06/26(火) 22:39:59.15 ID:wjruZlWa.net] それに短ければ良いなら、rustのlet mulよりswiftのvarの方が短い パターンマッチより変数宣言方が良く出て来るしね
810 名前:デフォルトの名無しさん mailto:sage [2018/06/26(火) 22:47:02.38 ID:b30is1tn.net] 20年後に汚くなるってのはみんなわりと納得するんじゃね? C++もJavaも、時間経過とともにきっちり汚くなった 言語仕様こねくり回すのが仕事の人が存在するからしゃーないっちゃあしゃーない
811 名前:デフォルトの名無しさん mailto:sage [2018/06/26(火) 22:48:50.88 ID:cumK515O.net] 難しい・易しいではなく汚い・美しいという見方をするのはなんでだろう 数学を諦めた感が漂ってる
812 名前:デフォルトの名無しさん [2018/06/26(火) 22:49:48.96 ID:SLOKSalZ.net] >>793 そういう見方もあるけどね でも ``` case let .B(x): return String(n) ``` と ``` case .B(let x): return String(n) ``` の違いってなんなのかね、違いがないなら「let」省略できたほうがいいように思うが
813 名前:デフォルトの名無しさん [2018/06/26(火) 22:51:21.79 ID:SLOKSalZ.net] >>797 訂正: xじゃなくてn
814 名前:デフォルトの名無しさん [2018/06/26(火) 22:57:45.92 ID:SLOKSalZ.net] >>794 短いことがいいんじゃないよ、理由なく冗長な構文がだめなだけ。 Rustはわざと「var」とかじゃなく「let mut」にしている理由は、通常イミュータブルを使うようにするため。 ミュータブルの構文が長いことでプログラマがイミュータブルをより一般的に使うよう促す効果がある。
815 名前:デフォルトの名無しさん mailto:sage [2018/06/26(火) 23:00:40.71 ID:HsrbbpJS.net] 可読性の高い綺麗なPerlコードを書けるものだけが石を投げなさい
816 名前:デフォルトの名無しさん mailto:sage [2018/06/26(火) 23:12:38.14 ID:SIV9Ebow.net] >>799 みたいなのは設計当初は綺麗なんだけど 後から、例えばD言語のconst/immutableみたいな選択肢を追加してしまうと罠に化けそうじゃない?(妄想だけど) その点元が冗長ならある程度耐性がある、という話。後から省略可能にする方はできるしな
817 名前:デフォルトの名無しさん [2018/06/26(火) 23:29:44.42 ID:SLOKSalZ.net] >>801 Dは全然知らないけど、調べたらデフォルトがミュータブルで、immutableをつけるとイミュータブルになるのか。 ``` int x = 3; // ミュータブル immutable int x = 3; // イミュータブル auto s = "hello"; // イミュータブル ``` これはひどいな
818 名前:デフォルトの名無しさん mailto:sage [2018/06/26(火) 23:32:04.35 ID:SIV9Ebow.net] >>802 そこはまあしょうがないとして、イミュータブルにも種類があるという点
819 名前:に注目してくれ [] [ここ壊れてます]
820 名前:デフォルトの名無しさん mailto:sage [2018/06/26(火) 23:40:45.19 ID:cumK515O.net] コンパイル時に値がわかるのが定数 実行時に初期化するがその後は変更しないのがimmutableかな
821 名前:デフォルトの名無しさん mailto:sage [2018/06/26(火) 23:56:28.51 ID:SIV9Ebow.net] 加えて、現在のスコープからは変更不可能だが実体はミュータブルかもしれないのがconst 更にそれぞれに推移のON/OFFがある 何も書かないのがイミュータブルだとその内の1つを適当に使ってるということで 選択肢が増えたときにどれか1つが不自然に短く書けてたことになるし 現状を突き詰め直したときにコンテキスト毎に別のだったなんてことになると目も当てられない
822 名前:デフォルトの名無しさん mailto:sage [2018/06/27(水) 00:01:32.20 ID:3Z0mJH5D.net] やっぱり言語仕様は頻繁に変えるべきということだな!w
823 名前:デフォルトの名無しさん mailto:sage [2018/06/27(水) 00:50:40.19 ID:jdISqR1B.net] >>802 ゲェジかな ワイの方がよっぽどいい設計できるわ この作者はワイのケツ穴でも舐めてた方が幾分有益な人生になったんじゃないかw
824 名前:デフォルトの名無しさん mailto:sage [2018/06/27(水) 00:59:47.78 ID:CkpNpuYk.net] >>805 GCが必須ではない言語の場合、ミュータブルならばメモリ解放もできる 現在のスコープからは変更不可能だが実体はメモリ解放するかも というのは非常にまずい 現在のスコープから変更不可能ならば実体も変更不可能にしたい
825 名前:デフォルトの名無しさん mailto:sage [2018/06/27(水) 01:19:45.86 ID:9jxZxPuA.net] >>808 それだとイミュータブルなオブジェクトを貰って何かする関数に ミュータブルなオブジェクトを渡せなくならない? そうすると print とか toString とか hash とか compare とかありとあらゆるものが immutable / mutable 2種類必要になる 引数に2つオブジェクトがあると4種 3つなら8種
826 名前:デフォルトの名無しさん mailto:sage [2018/06/27(水) 20:24:28.42 ID:GckfUNYK.net] ただの再代入不可な変数をイミュータブルって言い始めたのって何の言語からなの
827 名前:デフォルトの名無しさん mailto:sage [2018/06/27(水) 21:06:16.07 ID:7rLtDwhR.net] >>810 たぶん英語だと思う
828 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 08:21:12.64 ID:1UW06GNd.net] >>795 pythonなんかも細かいところはど汚いわけだがあんまりそういう汚いところ 触らんでも仕事になるって違いはある。 てかシンタックスなんててきとうにチェックでもそんな問題にならんよ。 self書かされることなんて文法で規制されてるわけでもないが問題になることなんてない。
829 名前:デフォルトの名無しさん mailto:sage [2018/06/29(金) 09:12:05.44 ID:iOzvNZgV.net] >>810 変更可、不可という概念は別に変数に限った話じゃない
830 名前:デフォルトの名無しさん mailto:sage [2018/06/29(金) 09:23:47.61 ID:XwuS30Hh.net] Pythonの型アノテーション試してるけど正直苦痛 TypeScriptを使ってるときには全く感じなかった無駄なもの書かされてる感がすごい というかTypeScriptの統合が完璧すぎるんだな 型書くことはノイズになるどころかコードをむしろ美しくするとすら思えるもんな
831 名前:デフォルトの名無しさん mailto:sage [2018/06/29(金) 10:57:44.57 ID:0VaRYdhC.net] 少しでも欲を出せばそうなる 完璧な無欲か完璧な満足かの1bitしかない HaskellやRustのようになるまで止まらないぞ
832 名前:デフォルトの名無しさん mailto:sage [2018/06/29(金) 11:15:41.22 ID:tgpXEKjE.net] >>814 Python 3.6の変数アノテーションはTypeScriptと大して変わらないのでは? 以前のコメント形式は糞だったけど
833 名前:デフォルトの名無しさん [2018/06/29(金) 13:13:42.11 ID:8rEU0m4z.net] >>814 全部の変数にアノテーション付けようとしてる? 基本、関数・メソッドの入出力だけでいいぞ 残りは大体推測してくれる
834 名前:デフォルトの名無しさん mailto:sage [2018/06/29(金) 13:43:06.77 ID:HOtQS3nQ.net] >>817 ライブラリなどの既存メソッドの戻り値はほとんど型なしだから結局オレオレ型宣言を左辺の変数に付けて回
835 名前:ることになる [] [ここ壊れてます]
836 名前:デフォルトの名無しさん [2018/06/29(金) 15:55:24.38 ID:546QQsBD.net] >>818 あー、過渡期だからそれはあるかもね 対策としては、他モジュールを呼び出すところはなるべく集める、いきなり完璧を目指さないぐらいか
837 名前:デフォルトの名無しさん mailto:sage [2018/06/29(金) 20:05:29.68 ID:SWySBfmj.net] そんなに型に気を使って消耗する位ならもう生js使おう 適当にラッパーかけとけラッパー
838 名前:デフォルトの名無しさん mailto:sage [2018/06/29(金) 21:06:52.59 ID:M/T+ZgVo.net] >>820 TypeScriptユーザーがシコシコ型定義ファイル作ってるおかげで、vscodeでjsでも補完きくんやで。感謝せーや
839 名前:デフォルトの名無しさん mailto:sage [2018/06/29(金) 21:09:19.97 ID:0KEVr9Fm.net] せめて同梱の標準ライブラリくらいは網羅しておいてほしいよね。
840 名前:デフォルトの名無しさん mailto:sage [2018/06/29(金) 21:11:52.89 ID:M/T+ZgVo.net] >>814 typeScriptみたく型定義ファイルの共有する仕組み無いの? いちいち書くのはしんどいな。
841 名前:デフォルトの名無しさん mailto:sage [2018/06/29(金) 21:39:48.60 ID:0VaRYdhC.net] >>823 しんどいのか その作業がないということはライブラリの作者は楽をしている だからライブラリが増やすのも楽 そういう仕組みなんだろう
842 名前:デフォルトの名無しさん mailto:sage [2018/06/29(金) 22:21:57.95 ID:5dIySMmw.net] >>824 TypeScriptの場合は型定義を提供することでTypeScriptユーザーに使ってもらいやすくなり、 ユーザーの増加がライブラリ製作者にとって一手間かけるモチベーションになる Pythonの場合は型アノテーションを付けたらPython3.5以上でしか使えなくなるのでユーザーは確実に減る 結果、誰も対応しない 根本的に破綻してるんだよ
843 名前:デフォルトの名無しさん mailto:sage [2018/06/29(金) 22:35:49.90 ID:0VaRYdhC.net] >>825 破綻してるのはお前のマウンティングだよ マウントが酷いのはHaskellで、TypeScriptは無関係みたいなイメージが根本的に壊れた
844 名前:デフォルトの名無しさん mailto:sage [2018/06/29(金) 22:39:04.05 ID:Yl8lnP6m.net] そんなんでイメージ変わるのかよ…
845 名前:デフォルトの名無しさん mailto:sage [2018/06/29(金) 23:18:51.02 ID:ifNvOhNj.net] おれ的にはこのまま型定義ファイルがすべてのライブラリに標準装備されて緩やかにjsがts化していくことを希望したい。 最初から型定義がライブラリに入っていること多くなってきたよな、
846 名前:デフォルトの名無しさん [2018/06/29(金) 23:54:19.04 ID:uRtJ4/dJ.net] >>828 それには同意
847 名前:デフォルトの名無しさん mailto:sage [2018/06/30(土) 02:42:20.84 ID:eHfkv0CB.net] このスレに来て初めてマウンティングって言葉を知ったわ。
848 名前:デフォルトの名無しさん [2018/06/30(土) 03:36:46.79 ID:+abKhVkF.net] >>823 あるよ。 typeshedてのがそれ >>825 関数の引数、返値なら3.0から書けるし、コメント使うか別ファイルに書くやり方なら2.7にも対応可能ですが
849 名前:デフォルトの名無しさん mailto:sage [2018/06/30(土) 08:02:10.37 ID:tr0WXiW5.net] Haxe では型定義ファイルがあるから、型推論も入力補完もできる
850 名前:デフォルトの名無しさん mailto:sage [2018/06/30(土) 09:44:21.50 ID:4h701pQF.net] 通常ならライブラリ本体丸ごと読んで型を調べるべきだ 本体に型がないなら別ファイルに書く
851 名前:デフォルトの名無しさん mailto:sage [2018/06/30(土) 12:26:26.59 ID:aZHCYAl9.net] >>831 なんだあるんだ。なら型付言語として使われるのも時間の問題だな。 rubyにもあるみたいだし、 ライブラリのインターフェースだけでも型付き当たり前の世界が来そうだね
852 名前:デフォルトの名無しさん mailto:sage [2018/06/30(土) 14:15:03.20 ID:BB0BPsjY.net] まーたruby信者のそ、そんなのる、るびぃでもできるし!か。呆れ なんでもかんでも深く考えず流行りをそうやって後付けで増築してって奇形極まってるよね。二度と使わないよ。
853 名前:デフォルトの名無しさん mailto:sage [2018/06/30(土) 15:58:28.61 ID:9HearrjU.net] rubyの違法建築感は否定しない が、なんかまとめ臭い書き方だなおい 5chエアプか?
854 名前:デフォルトの名無しさん mailto:sage [2018/06/30(土) 16:41:24.65 ID:oxrLiD+S.net] るびぃ
855 名前:信者、Proc.new、ラムダ、ブロックにおけるreturn、break、nextの挙動の違いをまとめようとした模様 https://qiita.com/jnchito/items/83410c0cda446efea582 結果、ややこしすぎるためコーディングを工夫してreturnやbreakの使用を避けましょうというなんじゃそりゃな結論www 何か理由があってわざわざ挙動を変えたんだろうが(まさか行き当たりばったりってことはないよね笑)ややこしすぎで使用自体を避けられてちゃ本末転倒だよなwww [] [ここ壊れてます]
856 名前:デフォルトの名無しさん [2018/06/30(土) 17:39:57.19 ID:RHrrdh8p.net] >>836 その人はrustがコンパイルできないおじさんだからほっときなさい
857 名前:デフォルトの名無しさん mailto:sage [2018/06/30(土) 18:00:17.99 ID:Q/uEsP1n.net] rust ruby 似てないこともないな
858 名前:デフォルトの名無しさん [2018/06/30(土) 18:59:53.28 ID:+abKhVkF.net] >>834 ,836 とはいえ、ruby にまともに使える型チェックの実装があるのかには興味あるな。 まえ調べた感じだと、教祖の型チェック周りの発言はフワッフワだし、実装してみたい個人が互換性のない「オレオレ型チェック」を作っては破棄してる感じで、万人が使えるものは何一つないようなんだが。
859 名前:デフォルトの名無しさん mailto:sage [2018/06/30(土) 19:02:48.17 ID:6fEIEQu0.net] どうせ if type(...) != my_class: とかのシュガーだろ。そんなもんに目くじら立てても意味あるのかね。
860 名前:デフォルトの名無しさん mailto:sage [2018/06/30(土) 19:33:21.11 ID:CMs/fWc6.net] Rubyはオモチャだから型付けなんて要りません それより散らかったオモチャを片付けなさい
861 名前:デフォルトの名無しさん mailto:sage [2018/06/30(土) 20:38:08.56 ID:4h701pQF.net] 自分のために違法建築したとは考えにくい ユーザーを忖度して違法建築なら利己的ではないからOKという風潮があったんじゃないか 会ったこともないユーザーをモチベーションにするのはやめてほしい
862 名前:デフォルトの名無しさん mailto:sage [2018/06/30(土) 23:16:50.81 ID:tr0WXiW5.net] >>837 Ruby のProc, block はクロージャだから、クロージャを囲む関数から戻る。 一方ラムダは、単にクロージャを抜けるだけ。 Groovy なども参照 def f (0..5).each do |i| puts i return if i == 3 end end f() #=> 0, 1, 2, 3
863 名前:デフォルトの名無しさん mailto:sage [2018/06/30(土) 23:39:42.18 ID:xV+Shhkx.net] >Ruby のProc, block はクロージャだから、クロージャを囲む関数から戻る。 クロージャ「だから」、クロージャを囲む関数から戻る?? まるでクロージャだったら当然の挙動と言わんばかりの書き方だけど、クロージャってそんなんだっけ?
864 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 00:39:17.02 ID:tX8JlSDC.net] そんなものちゃんと読んでる>>845 に感心したw ネットにはゴミが多いね
865 名前:デフォルトの名無しさん [2018/07/01(日) 01:54:08.61 ID:5prQoZWD.net] >>845 ヒント:Smalltalk
866 名前:844 mailto:sage [2018/07/01(日) 02:00:27.83 ID:YZ+qvhoO.net] クロージャは、クロージャの外側の環境をつかんでいる。 つまり、クロージャを囲む関数内の変数をつかんでいる だから、クロージャ内でreturn すれば、外側の関数も抜けて、 関数内の変数なども、解放した方が良いと考えた Groovy の挙動とは違うかも
867 名前:デフォルトの名無しさん [2018/07/01(日) 02:11:27.56 ID:FQlsc9Xo.net] >>848 return だけだったら納得できるんだが、next や break の扱いがぐちゃぐちゃなのはどう説明するの?
868 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 02:52:24.35 ID:QlwNZjji.net] >>847 関数型でもないウンコ言語がクロージャの話に入ってくんな 何の参考にもならんわ
869 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 03:04:39.74 ID:3SrV2o5x.net] >>837 > まさか行き当たりばったりってことはないよね笑 その、まさかだぞ。 楽しくプログラミング()した結果が仕様だ文句あるか!w
870 名前:844 mailto:sage [2018/07/01(日) 08:32:31.95 ID:YZ+qvhoO.net] クロージャ(block
871 名前:)内のbreak は、クロージャを抜けるだけで、外側の関数は抜けない。 関数の最後まで実行される クロージャ内のnext は、次の繰り返しに進むだけで、クロージャも抜けない。 クロージャの最後まで実行される def f num = 0 (0..5).each do |i| num = i break if i == 3 end puts num end f() #=> 3 [] [ここ壊れてます]
872 名前:デフォルトの名無しさん [2018/07/01(日) 08:58:20.58 ID:mO0FHij0.net] すみませんがゴミの話は当該スレでお願いします
873 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 09:01:20.31 ID:TobyyIDd.net] これ他の言語にも影響あるだろ continueはバグの原因になるとか、gotoの方がマシとか言われる
874 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 09:18:30.80 ID:5prQoZWD.net] >>850 えー?closureが関数型特有な概念だと思ってるわけー? 面白いね、それ。本当は純粋関数型ではclosureはさほど重要ではないのだけど。 どうしてclosureが関数型固有な概念だと思ったのか、説明してごらん?
875 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 09:22:52.78 ID:TobyyIDd.net] >>855 おまえが自分で説明しないで人に説明させようとするからだよ もし関数型の人が説明したら関数型の概念になるに決まってるだろ
876 名前:デフォルトの名無しさん [2018/07/01(日) 09:23:49.76 ID:FQlsc9Xo.net] >>852 あなたが closure だからと主張する、block は 952の挙動だが Proc では break は例外吐くらしいけど何で? # 言っちゃ悪いが、closure は定義した時点での環境を基準に動作が普通だと思うんで、 # ループ外で定義されているならば next/break は一律例外吐くで無いと一貫性がないようにしか見えん。
877 名前:デフォルトの名無しさん [2018/07/01(日) 09:24:49.31 ID:FQlsc9Xo.net] >>857 すまん、「block は >>852 の挙動」だな。
878 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 09:25:25.69 ID:89p34iy1.net] このbreakとnextは並列コレクションで困る気はする
879 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 10:22:00.59 ID:5prQoZWD.net] >>856 へー、技術のベースになる概念が、関数型の人が説明したら別物になるのかー おもしろいねークスクス
880 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 10:23:24.47 ID:5prQoZWD.net] >>856 で、関数型の人って誰?ばか?
881 名前:デフォルトの名無しさん [2018/07/01(日) 10:45:16.40 ID:QlwNZjji.net] Smalltalkの人たちはScalaやRustのtraitsに対して、オリジナルのSmalltalkと違うからダメだ!あれは別物!って批判するくせに 他の言語より後に実装したclosureについては独自仕様でも問題ない、技術ベースで語れっておかしくね? ダブスタも甚だしいだろ
882 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 10:48:49.50 ID:TobyyIDd.net] 忖度とか伝言ゲームとかいう問題を織り込むまでがITです
883 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 10:59:11.30 ID:uHA6sqOS.net] >>844 はクロージャなら当然あるべき姿としてRubyのProcを語ってるからなぁ それに対して>>847 がヒント:Smalltalkって言ってるのは 要するにSmalltalkがクロージャのあるべき姿を体現してるって言ってるワケで、そりゃ傲慢すぎる ただの一例としてSmalltalkのような仕様もあるって言うなら批判されないのに
884 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 11:00:03.93 ID:7m3QggRW.net] クロージャの方が自身の関数スコープを持ってる印象だな メジャーな中では Java, C#, C++, JavaScript, Obj-C, Swift などがそうだし Rubyのラムダも上記と概ね同じに見える ブロックは文字通りコードの塊と考えるとreturnやbreakについて妥当な動きに見える Proc.newは挙動がキモい ↓によるとdo…endも挙動が違うらしいから >>837 のリンク先は4種で比較した方がいいかもな https://qiita.com/riocampos/items/43e4431ddff93e01a18d
885 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 11:08:34.39 ID:7m3QggRW.net] 中身読んだら結合度の差だったので >>865 の最後2行は撤回する
886 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 11:16:48.58 ID:5prQoZWD.net] >>864 妄想が激しいね。 ヒント:Smalltalkっていうのは、Rubyのそのヘンテコな仕様はSmalltalk由来だということなんだけど。 お大事にね
887 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 11:19:42.69 ID:5prQoZWD.net] >>862 きみ、結局はSmalltalkでのクロージャからのreturnの仕様を調べることすらしないで 思い込みだけで騒いでるでしょ? そういうのを「バカ」って言うんだよ
888 名前:857 [2018/07/01(日) 11:25:18.69 ID:usR85dqh.net] >>867 smalltalkには break や continue (next) はないだろう? ruby のは、closure に break や next を持ち込んでおかしくなっているように見えるよ。
889 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 11:43:42.24 ID:fENDu7uP.net] Smalltalkの仕様がどうであれ、それがRubyの仕様を正当化すると思ってなされているレス(>>847 だの>>867 だの)は 結局Smalltalkの仕様に権威がある、またはRubyがSmalltalkを模倣するだけの理由があるのを前提にしているわけで 傲慢という批判は妥当に思うな
890 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 11:52:10.11 ID:tX8JlSDC.net] 気持ち悪い挙動だと言いがかりをつける気満々のレスに対して smalltalk でもそうだった昔からある挙動ですよと指摘しているだけでは。 なにも知らなければ議論はできない といって smalltalk の知識は前提にしていいのかは疑問 とはいえやはり共通の知識がないと議論は無理だし難しいわ
891 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 12:46:18.88 ID:fENDu7uP.net] Smalltalkを前提にすることに意味はない(Rubyと周辺状況が違いすぎるのに何故真似た?)というのが すぐ直前の議論では
892 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 12:59:23.83 ID:gbNzWOju.net] 俺を批判するのはSmalltalkを批判するのと同じだっていうことの意味は一応ある 自分自身を守るためではなく仲間を守るためという大義名分ができる
893 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 13:03:25.38 ID:QlwNZjji.net] 滅びた言語のヘンテコな機能を真似た言語が やっぱりヘンテコになって滅びつつある それだけの話ではある
894 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 13:04:20.30 ID:yp7ufL3+.net] もうRubyの話はやめよう 次世代でも現世代でもないし
895 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 13:25:35.07 ID:5wbqPO3N.net] なんで? rubyは触ってないけど、rubykaigiとかで盛り上がってる様子見てると、楽しそうだし盛り上がってる感あるけど。未だ現役じゃないの? スタートアップがrails採用するイメージって、まだ古くないよね? 最近だとrailsのボトルネック部分をgoで書く話が面白かった。
896 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 13:42:13.57 ID:k6Y+DK56.net] perlの後継になりそこなったし 海外の人気がかなり落ちてるからね rails用言語で終わってしまった感
897 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 13:43:43.18 ID:3SrV2o5x.net] railsにincludedされてるバッテリーだろ?www
898 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 13:57:23.22 ID:5wbqPO3N.net] つーかrails言語で別に良くないか? 言語なんて所詮はツールなんだから。 bashでwebサービス作るやつはいないだろ?
899 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 14:06:40.12 ID:gbNzWOju.net] 目的と結果を比較されるから 目的はこれだったのに結果はこれなのか?と 目的などどうでもいいと断言できる人は少ない
900 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 15:32:54.19 ID:5prQoZWD.net] >>870 そこまで妄想が激しいようだと治療は困難だね。 でもあきらめないで、先生からもらった薬をちゃんと飲むようにね。 でないと他人様に迷惑かけることになるから。 やくそくだよ。
901 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 15:34:06.79 ID:2efWQwxv.net] 薬? お薬の幻覚でも見えてんのか?
902 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 15:40:22.85 ID:QlwNZjji.net] Smalltalkという完全に終わった言語に執着してるんだから まあフツーに頭がおかしいんでしょう 薬飲めも普段自分が言われてるんだろうね
903 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 15:55:04.17 ID:2efWQwxv.net] 自分が言われたら嫌なことを人に言うって奴かw
904 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 16:07:47.75 ID:rXvfzJkI.net] ここでも見てとれるようにRubyは言語と言うより信者がクソ。 他言語のスレで聞いてもないのにルビーデワールビーデワー宣伝必死過ぎてウザい。 Ruby自体は悪くない。
905 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 16:15:05.64 ID:lS5AQxvk.net] >>885 同感
906 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 16:33:48.43 ID:gbNzWOju.net] 陰謀論みたいに、お前が世界を支配してるんだろって言われるのは嫌じゃないが
907 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 17:13:50.39 ID:fENDu7uP.net] >>873 今回のSmalltalkは道連れ的に名前出されただけでむしろ被害者 変なのが混ざってないSmalltalk内ではちゃんと一貫した挙動のはずだろ?知らんけど
908 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 17:30:42.04 ID:009IG+wv.net] >>885 よくわからんのだけど Rubyでは〜って意見が出たらそんなに嫌なん?w 俺なら他の言語でどうって意見はむしろ感心があるが
909 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 17:32:52.47 ID:i54g35bC.net] >>889 同感
910 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 17:49:59.60 ID:5prQoZWD.net] >>883 Smalltalkを知っている != Smalltalk信者 ちゃんとお薬のんでる? 勝手にやめちゃいけないよ?
911 名前:857 mailto:sage [2018/07/01(日) 18:07:48.02 ID:FQlsc9Xo.net] >>891 なあ、smalltalk と ruby に詳しいんだったら、意味の無い罵倒を止めて、 >>869 の答えてくれない?
912 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 18:22:04.92 ID:IY9E+BQR.net] Perlさん何で死んでもうたん?
913 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 18:23:52.18 ID:mbUvUy2m.net] Perlはワンライナーとして生き残ったのさ
914 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 19:07:07.35 ID:QlwNZjji.net] >>891 まあお前がSmalltalk信者かどうかは見た人間が判断するから気にするな。病気が進行するぞ ただ客観的な事実としてSmalltalkは完全なオワコンw このスレでは場違いすぎて引くレベル
915 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 19:34:13.12 ID:5wbqPO3N.net] >>894 わかる。awkよりも使い勝手はいい。正規表現処理ツールとして有り。ふとnode.jsでもいい気がしたけど
916 名前:デフォルトの名無しさん [2018/07/01(日) 19:46:03.96 ID:x/qhOfWF.net] スレタイ読まずに書き込んでる奴らなんなの?
917 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 19:51:05.54 ID:e+fGbKAY.net] >>862 > Smalltalkの人たちはScalaやRustのtraitsに対して、オリジナルのSmalltalkと違うからダメだ!あれは別物!って批判する それは「批判」ではなく、理解や運用の混乱を避けるための「区別」の必要性を訴えているのです。 「オブジェクト指向」もそうで、Smalltalkが重きを置く「決定の遅延のためのメッセージングのオブジェクト指向」と C++以降の「抽象データ型をクラス(またはそれに準ずるエンティティ)で実現するオブジェクト指向」とは区別すべきと一緒です。 批判があるとすればそれは、本質的に違うものに後から同じ名前を付けて混乱を招いていることに対するものでしょうね。
918 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 20:00:26.61 ID:e+fGbKAY.net] >>862 > 他の言語より後に実装したclosureについては独自仕様でも問題ない、技術ベースで語れ 私はSmalltalk信者wですが、この文脈での>>844 の「クロージャだから」もそれを受けた>>847 の「ヒント:Smalltalk」も 混乱を招きかねない説明やサジェスチョンだと思いまよ。 # 以下は比較的に古典的かつナイーブな実装の Squeak や Pharo を想定しています。為念。 Ruby の retrun に相当する Smalltalk の(唯一の)制御構造である「^戻り値」は、 Ruby の>>837 の例では prco_return や block_retrun と同じ挙動になります。 Object compile: 'rubyReturn | f ret | f := [:n | ^ n * 10. "以降に処理を書くとコンパイル時エラー"]. ret := #(1 2 3) collect: f. ^'
919 名前:'ret: '', ret printString'. self rubyReturn "=> 10 " 余談ですが、lambda_return の挙動も「thisContext retrun」(戻り値が欲しいときは「return: 戻り値」) という表現を使えばまあできなくはないです(が普通はやりません)。 Object compile: 'rubyLambdaReturn | f ret | f := [:n | thisContext return: n * 10. #以降の処理は無視]. ret := #(1 2 3) collect: f. ^''ret: '', ret printString'. self rubyLambdaReturn "=> 'ret: #(10 20 30)' " いずれにせよ、Smalltalk でクロージャ内のリターンがそのクロージャを実行中のメソッドコンテキストを抜けるという挙動をもって (継続渡しとかならともかく)Ruby の複雑な状況の説明を試みるのはあまりよい方法ではないのは確かですね。 [] [ここ壊れてます]
920 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 20:01:01.72 ID:gbNzWOju.net] >>897 pythonやrubyで型を宣言させる話だったな 型を宣言すれば次世代に行けるらしい
921 名前:857 mailto:sage [2018/07/01(日) 21:20:45.24 ID:FQlsc9Xo.net] >>900 かといって、スレタイの TypeScript だって、 Python + 型チェック とあんまり変わらなくないか? #まあ、TypeScript は次世代じゃないという主張はありだけど
922 名前:デフォルトの名無しさん [2018/07/01(日) 21:23:13.47 ID:mO0FHij0.net] 掲示板の書き込みに#で補足コメントするスタイルはキモすぎる
923 名前:デフォルトの名無しさん [2018/07/01(日) 21:23:34.86 ID:8lWKFGMK.net] どんな言語も最初は簡単で使いやすいと言う。 しかし、注目されて実用レベルになると言語仕様が破綻してくる。 お前さんが使っている次世代言語もいつのまにか消えてなくなるさ
924 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 21:28:36.04 ID:jMta/5/n.net] とりあえず動的言語嫌いだから次世代に遺さなくていいよ
925 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 22:10:15.50 ID:iGjgOveK.net] せやな // 型なし糞言語は死ね
926 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 22:47:05.58 ID:IY9E+BQR.net] 米は//より#のが好きです //や’はスカスカし過ぎててなんか
927 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 23:13:47.55 ID:CF9fODYJ.net] まーたsmalltalker来てんのか。草
928 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 23:27:37.29 ID:eYdB7t9V.net] >>906 俺逆だ #の目にうるさいこと極まりない コメントですらバグったのかと思う
929 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 23:41:20.04 ID:YPIrazbz.net] ‘
930 名前:デフォルトの名無しさん mailto:sage [2018/07/02(月) 02:35:06.08 ID:1yNW4Sj0.net] スクリプト言語はshebangあるから#じゃないとうれしくないな コンパイル言語は好きにすればええ
931 名前:デフォルトの名無しさん mailto:sage [2018/07/02(月) 03:45:57.45 ID:sK89Ta1p.net] >>876 Rubykaigiは井の中の蛙の見本市だから Ruby最強他言語バーカって精神異常者の集まり そら宗教の本山みたいなもんだから盛り上がり自体はあるが 技術的にはもう終わってる
932 名前:844 mailto:sage [2018/07/02(月) 06:42:05.84 ID:9wGdj7CA.net] >>857 Ruby のProc, block はクロージャで、 Procは、blockを変数に入れて、持ち運んで、後で呼べるようにしたもの その際、block内でbreak を呼ぶと、ループ処理が完遂せず、失敗とみなしたのだろう ラムダは後に作られたから、return で値を返すようにした 結局、Proc, block、ラムダ、クラス・モジュールも、 スコープチェーンという単一の概念から出来ている 自分の1つ外側のスコープを指す、ポインタを持っている
933 名前:デフォルトの名無しさん mailto:sage [2018/07/02(月) 09:01:43.20 ID:Ovw/GWMA.net] >>911 すげー思い込み強すぎ。中にはそういう人もいるかもだけど多数派じゃないだろ。 原理主義者怖すぎ。あんまり偏りすぎて人刺したりするなよ。
934 名前:デフォルトの名無しさん mailto:sage [2018/07/02(月) 09:17:09.45 ID:BcUDQh/y.net] > Procは、blockを変数に入れて、持ち運んで、後で呼べるようにしたもの これしょうもない設計だよな。 jsとかだったらコールバック関数で統一的に扱えてるところだろ。 こんな本質じゃない言語機能
935 名前:ムダに複雑にして何やってんだか。 わざとパズル難しくして解いて「楽しい」こんな言語かな? [] [ここ壊れてます]
936 名前:857 [2018/07/02(月) 09:49:51.97 ID:OVGUyhuB.net] >>912 あなたがrubyを好きなのはよくわかる、が >結局、Proc, block、ラムダ、クラス・モジュールも、 >スコープチェーンという単一の概念から出来ている > >自分の1つ外側のスコープを指す、ポインタを持っている 単一の概念にするのは失敗してるんだ 理由は簡単、blockにbreakがあるせい。breakの飛び先は、通常のlexcal scope では解決できない。飛び先は定義時と関係ない、後で呼び出される each などのblockを呼び出す関数内に有るからな 他の内部イテレータ使う言語は、諦めて例外やcall/ccなどの大域ジャンプでエミュすることにしてる。 rubyは頑張ってなんとかしようとして、結局統一出来ず、でも似てるから使用が困惑する結果に
937 名前:デフォルトの名無しさん mailto:sage [2018/07/02(月) 10:18:33.33 ID:nMhGW4st.net] >>913 このレスの方が怖い
938 名前:デフォルトの名無しさん mailto:sage [2018/07/02(月) 10:41:05.97 ID:XQH9Y7UX.net] 連想配列[名前] = ラムダ こうして連想配列と代入とラムダで統一すればclassは本質ではないのに 統一を阻止して、classを次世代に遺そうとするのはRubyもECMAScriptも同じ穴の狢
939 名前:デフォルトの名無しさん mailto:sage [2018/07/02(月) 10:47:23.08 ID:j4QNCpln.net] まだ80年代の技術に追いつけないのか、次世代言語wスレの住民は…ばか?
940 名前:デフォルトの名無しさん mailto:sage [2018/07/02(月) 10:50:09.56 ID:FaPINm7E.net] Smalltalkとか言うカビ臭いクソ言語について語ってるやつの頭の中だけ80年代で止まってるけど 他の人は普通に話ししてると思うけど
941 名前:デフォルトの名無しさん mailto:sage [2018/07/02(月) 13:03:54.58 ID:EdW/pwjk.net] >>913 原理主義者怖すぎ、については、 そっくりそのままRubyistにお返しするわ
942 名前:デフォルトの名無しさん mailto:sage [2018/07/02(月) 19:19:13.27 ID:NAI8Vih0.net] 建て前上だけでもclassを消したら次世代感あると、思います
943 名前:デフォルトの名無しさん mailto:sage [2018/07/02(月) 19:39:32.22 ID:NyO7x8zO.net] >>921 ハスケルばかにしてる?
944 名前:デフォルトの名無しさん [2018/07/02(月) 19:42:13.22 ID:HeCnpISr.net] アンチMicrosoftを掲げる以上、Rubyを使うべきだろね。
945 名前:デフォルトの名無しさん mailto:sage [2018/07/02(月) 20:33:18.53 ID:9WbprnCr.net] クロージャの問題は結局変数の評価タイミングが分かりづらくなりやすいってところ。 common lispはその点わかりやすい。
946 名前:デフォルトの名無しさん [2018/07/02(月) 20:47:10.91 ID:HeCnpISr.net] あちらこちらに分身がいて、どれかを書き換えると他に影響してしまう。 そんな混とんとした世界で生き抜くにはいろいろなものが必要になる。 つまり、コピーとムーブが一番楽。
947 名前:デフォルトの名無しさん mailto:sage [2018/07/02(月) 20:47:29.49 ID:nj5wv8+r.net] >>920 goとかjsとかparser用意しないとast作れないところを見るとlispが次世代感あるように感じてきた
948 名前:デフォルトの名無しさん mailto:sage [2018/07/02(月) 20:50:20.50 ID:lajLSwSc.net] >>917 >>921 やはりここはLuaの出番か
949 名前:デフォルトの名無しさん [2018/07/02(月) 21:36:57.09 ID:F0SAJ301.net] luaはnginxと組みわせて使う
950 名前:デフォルトの名無しさん mailto:sage [2018/07/02(月) 21:49:01.21 ID:TJD/4INa.net] >>926 astそのもの書いてるだけじゃん。 靴に足を合わせる理屈は御免です。
951 名前:デフォルトの名無しさん mailto:sage [2018/07/02(月) 21:51:14.33 ID:vpeKf2Dq.net] Lispはいいぞ
952 名前:デフォルトの名無しさん mailto:sage [2018/07/02(月) 21:58:33.96 ID:SHnfHk0h.net] >>920 社会に出ろよ。
953 名前:デフォルトの名無しさん mailto:sage [2018/07/02(月) 21:59:57.72 ID:JnEvidvy.net] >>920 ドカタの社会に出ろよ ドカタの社会に出てないの丸わかりレベル低すぎ
954 名前:デフォルトの名無しさん mailto:sage [2018/07/02(月) 22:00:32.20 ID:9WbprnCr.net] algol系のシンタックスに合わせてる方が無理がある。
955 名前:デフォルトの名無しさん mailto:sage [2018/07/02(月) 22:06:32.06 ID:3279IT8S.net] 久々に社会に出てみたら、 青春を捧げたRubyがすっかりオワコンになってて哀しいです(^q^)
956 名前:デフォルトの名無しさん mailto:sage [2018/07/02(月) 22:27:57.20 ID:sXgZmTLa.net] インターンってRubyばっかだな 素人学生にRuby書かせるとか頭おかしなるで 正気か?どうゆうロジックなんだ?
957 名前:デフォルトの名無しさん [2018/07/02(月) 22:42:00.11 ID:F0SAJ301.net] 世代的にrubyで育ったリーダが多いからじゃない 外資ではgoとかpythonが多い メガネのヒョロガリが写真に写っていてRoRエンジニアを募集してたらまずハズレだ
958 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 00:16:39.10 ID:ulFfuTSn.net] 何故breakにしたんだろねRuby。returnじゃ駄目だった理由が分からない
959 名前:844 mailto:sage [2018/07/03(火) 01:06:30.72 ID:LtnxPY8P.net] Ruby では、break, return、例外も、単一の同じ仕組みを使っている。 コールスタックをさかのぼるポインタ。 つまり、どこから呼ばれて、どこへ戻るか breakは、1つ外側のスコープへ戻る。 returnは、最も外側のスコープを抜ける (レキシカル)スコープチェーンと、コールスタックの2大柱。 実装系・VM を作るには、この本がおすすめ Rubyのしくみ、2014 Rubyの実装系、Ruby1.9のRuby仮想マシンの内部の仕組み
960 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 01:19:37.85 ID:rBmEiF9u.net] いいえ、私は遠慮しておきます
961 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 01:55:27.47 ID:gSJ8jPZs.net] 旧世代言語のネタですっかり過疎ってしまった
962 名前:デフォルトの名無しさん [2018/07/03(火) 03:04:30.31 ID:V6NmESsv.net] RailsってC#でいう.Netみたいなもん?
963 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 03:29:58.10 ID:LeNHWyDL.net] >>928 redisも便利
964 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 06:19:51.17 ID:ZNPbo2Ku.net] 相手が望んでいない解説をするときは、それがスレの内容として意味があるかを基準にするべき 単にこの言語ではこうなっている(中身はさして珍しくもない)というだけならやめとけ。余計嫌われる
965 名前:デフォルトの名無しさん [2018/07/03(火) 06:53:27.01 ID:MH5+eiAJ.net] スレタイに並んでいる言語だとtsは張り合う相手いないから語るようなことないよな ネイティブアプリ向けも張り合う相手なし 領域が被るのはサーバサイドにおけるrust,swift,kotkin nativeくらい?
966 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 07:30:13.14 ID:oQIvqi2O.net] >>925 だから次世代言語って何よ? スレタイに沿って話せって言うけど、次世代言語がなにかも曖昧で
967 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 08:27:38.25 ID:CN6nXbG2.net] 旧世代の言語の(しがらみとかで)回避できなかった欠点を既存機能を損なうことなくうまく克服し 次世代を担うべく存在する言語だよ C++のメモリリークを所有権で回避した「Rust」 Obj-Cのnil禍をオプショナル型で回避した「Swift」 JSの実行時エラーを静的型で回避した「TS」 Rubyはこの20年自らの欠点をちょこちょこ直す以外なにもやっていない
968 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 08:31:16.08 ID:gQdpXUBz.net] TSは別格すぎる さすがにもう現世代扱いでいいだろ
969 名前:857 mailto:sage [2018/07/03(火) 09:12:56.01 ID:0xlHwX4q.net] >>937 いや、next はともかく、 break は lexical scope の範囲内では実装出来ないんだよ。 break が for や while でキャッチされる特殊な例外扱いならば、こんなおかしな事にならず、Proc 内でも break 使える様に出来たのに。 >>938 ここでいっているスコープは、 dynamic scope であることに注意ね。 内部イテレータでは、本来 break は例外と同じ方法でしか実装出来ない事を理解いただいて何よりです。 でも、ruby では、 Proc で break 呼び出したときの例外が LocalJumpError になっていて、どういう扱いにした
970 名前:「かよく分からないんだよね。 for, while 内の break との整合も取れないし まあ、次世代言語の話じゃないんで、そろそろ突っ込みは止めときます。 [] [ここ壊れてます]
971 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 09:15:15.62 ID:cg5PW7i9.net] swiftが次世代だってぷぷ めちゃくちゃclassicなんだけど
972 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 09:26:00.07 ID:N+3lR6RH.net] >>947 msが怒涛の開発力で一気に使いやすくしたよなぁ。 しかもEditorとセットで。 しかもlspを考えてどのEditorからでも補完が効くようにしたりとか。 まだ開発スピードが止まる気配がないけど、 他に何を開発する余地があるんだろ。
973 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 09:33:01.11 ID:TTM9k7xe.net] 世代の交代を駆動するのが枯れた技術であってもいいんだよ まあ仕様の腐った言語しか眼中にない人間には理解できんだろうけどね
974 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 10:15:55.62 ID:CZ1ZSS89.net] 開発元が腐ってるRustとTypescript これは次世代とは言えまい これが覇権取ったらディストピア一直線
975 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 10:25:54.60 ID:CZ1ZSS89.net] 真に次世代の言語はNim 今までの言語の焼き直しに留まらない書きやすさと実行速度を両立した言語で 開発元もモジラとかMSみたいな邪悪な企業じゃない
976 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 10:44:28.82 ID:pQbF/VH/.net] 単なるCのソースコードジェネレータじゃん。 nimが速いんじゃなくてCが速いの。Cのソースコード吐いてCのソースコードコンパイルしてるんだから。 coffeescript()なんかのaltjsと同じようなもんだね笑
977 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 11:31:15.91 ID:jh9a6Llj.net] 高度なシンタックスシュガーだからね でもCよりは確実に使いやすいしいいと思うよ
978 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 12:11:26.83 ID:H2PJV6CA.net] >>941 c#で言うとasp.netみたいなもの。 c#ユーザだとしてもEFとビュー関数が無いと何もできない低レベルな人間。
979 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 12:13:14.64 ID:H2PJV6CA.net] ついにMSだけじゃなくてMozillaも槍玉にあげ始めたのか。
980 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 12:43:16.36 ID:4OdwMirb.net] Rubyがブロック引数を組み込みの制御構文のように見せたかったというのは旧世代の発想としてはよくわかるけど、 第一級関数や高階関数が十分に一般的なものになった現代においては組み込みのループのように見せるという発想自体がもう時代にあってないと思うわ むしろ次世代言語は組み込みの制御構文なんか撤廃して関数に寄せればいいと思うんだが、 なかなか手続きベースの言語でforで捨てるものは現れないね
981 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 12:55:23.66 ID:onhdh/0N.net] forとかを単なる関数として提供してる言語いくつかなかった?
982 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 13:05:27.52 ID:TTM9k7xe.net] >>958 > 制御構文なんか撤廃して関数に寄せればいい 具体的には?
983 名前:デフォルトの名無しさん [2018/07/03(火) 13:15:41.14 ID:ZYDLmzQl.net] >>958 手続き型言語と呼んでいいのかわからんが、tclなら、制御構造は全て「コマンド」扱いで、BNFとか笑っちゃうぐらいシンプル
984 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 13:45:16.08 ID:taCiD/Gz.net] >>958 条件分岐と繰り返しはプログラムの基本構造なわけだが 逆に関数とかサブルーチンとかは基本構造に入ってないわけだが お前は、超天才かドアホかのどちらかだなw
985 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 13:58:16.98 ID:ZNPbo2Ku.net] >>958 俺は味方だよヽ(´Д` )
986 名前:デフォルトの名無しさん [2018/07/03(火) 14:53:19.41 ID:78ysfJXf.net] 俺は勝った方の味方するよ。 最初から味方だった、俺のおかげで勝てたみたいな感じで。
987 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 15:16:48.85 ID:U5Zq1zkR.net] 第一級関数というやつ ほとんどの場合意味がわかってないか 勘違いしてるよな クロージャーっぽく書けたら第一級ってわけじゃないから
988 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 16:26:35.93 ID:dRr5lTkl.net] >>869 > smalltalkには break や continue (next) はないだろう? 横レスだが少なくともXEROXのグループが書籍として出版した初期のSmalltalk-80にはその類のものなかったね なお、closure本来の議論をする上ではSmalltalk-80のブロックを引き合いに出したのは悪くないと読んでいて思ったけどね というのはHaskellのような代入命令のない言語でなく代入命令を持つ言語でのclosureとしてはSmalltalk-80のブロックは最も基本形なので議論のベースとしては分かりやすい 本来ならAlgol 68のproc mode(modeは普通の言語での型に相当)の値がclosureなんだがAlgol 68は概念は良く整理されていても用語が変態過ぎて議論のベースとしては使いやすくない Smalltalk-80のブロックはAlgol 68のprocを素直に継いでいると考えて構わないので、要するにSmalltalk-80のブロックを議論での叩き台にするのは 命令的言語でのclosureとしてオリジナルであるAlgol 68のprocを叩き台としてclosureの議論をしようというものなのでclosureの一般論が目的ならば悪くない ただ特定の言語、特にrubyのような比較的新しい言語(後述のマイ言語化以降の時代に登場した言語)限定の議論には不適切かも > ruby のは、closure に break や next を持ち込んでおかしくなっているように見えるよ。 そりゃAlgol 60やAlgol 68やSchemeなどを作った人々とRubyの製作者とはプログラミング言語に対する基本的な見識においてレベルが違いすぎますからね かつてプログラミング言語の形式的意味論までか否かは別にして言語の基本概念は何かきちんと学び理解するのが常識だったが 簡単に言語を実装できるようになって=マイ言語化されて以降、スクリプト言語のような軽い言語が百花繚乱の如く咲き乱れる(と言えば聞こえは良いが要するに粗製乱造される)ようになって以降 基本概念をきちんと学び理解していない人でも新しい言語は簡単に作れ、上手くファンを掴めるとそれなりに流行ってしまうようになったので 実際にきちんと意味を考えるととても不自然で理解が困難になるような言語機能の組み合わせ方を単に「だって便利だもの」という理由で言語に組み入れられてしまうようになった 単なる便利さだけで深い考慮なく導入されたものを意味論などから合理的・体系的に説明・理解するのは困難、年寄りの戯言でした
989 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 18:34:43.36 ID:iZrusKUj.net] 戯言とわかりつつ書き込むのか……(困惑)
990 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 18:36:16.17 ID:TTM9k7xe.net] >>966 空気読めない老人が上から目線でしゃしゃり出てくるのほんとやめてほしいわ だいたいALGOL68を持ってこようがSmalltalk-80を持ってこようが場違いなのはさして変わらんよ そもそも誰もクロージャーの本来も一般論も論じてないとか、すでにその話は終了しているとか読んでわからんのかね
991 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 18:53:34.68 ID:kPEfeblV.net] ボクちゃんの大好きなrubyがディスられて怒り心頭のようだねw
992 名前:デフォルトの名無しさん [2018/07/03(火) 18:55:02.78 ID:A246qspJ.net] https://i.imgur.com/7zZXEEJ.jpg
993 名前:デフォルトの名無しさん [2018/07/03(火) 19:00:25.45 ID:lz4xpNmJ.net] >>953 NimはRustのような安全性がないからダメだわ https://github.com/nim-lang/Nim/issues/3531
994 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 19:10:03.39 ID:Y44wiyUJ.net] >>970 自分の思いを述べてるんだから何もしていなくはない そういう性格だから嫌われるんじゃない こいつが嫌いな性格を一般化してるだけだ
995 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 19:11:22.15 ID:iZrusKUj.net] RustはRustで安全のために犠牲を払いすぎ そこまで犠牲を払わないNimという選択肢はダメではない
996 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 19:12:12.22 ID:1eNrhjxU.net] >>972 うわあ……
997 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 19:15:29.04 ID:Y44wiyUJ.net] >>974 うわぁってなんやねん 空気読むことばっか押し付けるからお前んとこのプロジェクト炎上してるんや
998 名前:デフォルトの名無しさん [2018/07/03(火) 19:15:31.69 ID:A246qspJ.net] 犠牲にしてるかな?どうせやらなきゃいけないことを強制してるだけでわ
999 名前:デフォルトの名無しさん [2018/07/03(火) 19:23:30.28 ID:2atZvleV.net] >>972 スレに沿った議論をしない人は何もしてないと同じなんだよ お仕事だってそうでしょう
1000 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 19:26:31.83 ID:Y44wiyUJ.net] ようは後付けで人がついてくりゃリーダシップそのものじゃないか
1001 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 19:32:14.46 ID:2DeV5pvZ.net] スレに沿った議論といっても誰も次世代言語の話なんてしてないしなw
1002 名前:857 mailto:sage [2018/07/03(火) 19:33:36.60 ID:0xlHwX4q.net] Nim は書きやすさと速度、Rust は安全性と速度、 に注力したイメージなんだが、安全性と速度に比べて、書きやすさと速度って一つの言語でカバーする必要性が薄いように思うんだよな。 従来の「スクリプト言語+速度が必要なところだけC/C++」に比べて、どうしてもNimが良いっていう場面ある?
1003 名前:デフォルトの名無しさん [2018/07/03(火) 19:43:18.67 ID:MH5+eiAJ.net] >>978 えぇっ >>979 途中までしてたじゃん 話につい来れなかったルビーィストとおじいちゃんたちが突然昔話を始めるまでは
1004 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 19:53:46.17 ID:Y44wiyUJ.net] >>981 もうとっくに日本は移民国家だ 自分が雰囲気の中心にいるんだって顔してるだけで さしたる理由もなく他人をDisれると思うなよ 昔の次世代言語の話したっていいじゃない
1005 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 20:01:32.10 ID:dPHNxxkk.net] >>976 木ですら実装結構しんどいのは犠牲ではなかった……? Nimならすぐよ
1006 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 20:14:55.16 ID:T5T8ZL2Z.net] >>980 書きやすくて速いとか最強やろ スクリプト+Cとかめんどくさいんじゃ
1007 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 20:38:32.57 ID:zqxfY0jY.net] >>966 Smalltalkのブロックはselfと^の挙動がクロージャとして完全にウンコなので こんなものを基本形として議論のベースにしたくないです Schemeの方が1万倍マシです
1008 名前:デフォルトの名無しさん [2018/07/03(火) 20:41:29.96 ID:MH5+eiAJ.net] >>983 その木は安全なの? 個人的には木構造実装したりしないから別に困ってないけど
1009 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 21:17:11.31 ID:4+jY1mlb.net] Nimは一体いつになったら1.0をリリースするんですかね?
1010 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 21:31:35.15 ID:XAeheViZ.net] Nim製組み込み言語Min https://min-lang.org いいんだけどさ、なんで文法Lisp風にしたし。 ホスト言語より書きにくい組み込み言語ってなんやねん
1011 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 22:03:10.71 ID:ZNPbo2Ku.net] Lispに見えて実はForth風では 処理系のサイズを小さくまとめるのが目的みたいだしいいんじゃないかな。どうせ個人の試作言語だろうし
1012 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 22:16:17.34 ID:T5T8ZL2Z.net] Lispが書きにくい……? https://i.imgur.com/13vqxY0.jpg
1013 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 22:25:50.65 ID:s9qpeMkn.net] Lispは脳がパーサになってる人向け
1014 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 22:27:10.82 ID:2DeV5pvZ.net] いうてもc++の文法なら自分でパースした方がマシだろ。
1015 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 22:28:51.19 ID:OApKU83S.net] factorなんか0.97から4年も音沙汰なしだぞ
1016 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 23:50:32.40 ID:T5T8ZL2Z.net] 安全だからRustは良い←わかる 安全でないからNimはいらない。書きやすさとかどうでも良い←それあなたの感想ですよね
1017 名前:デフォルトの名無しさん [2018/07/04(水) 00:39:03.37 ID:SVer28O9.net] >>993 音沙汰なしではないよ、最終更新は3日前 https://github.com/factor/factor/commits/master
1018 名前:デフォルトの名無しさん [2018/07/04(水) 00:44:54.31 ID:SVer28O9.net] 書きやすくても保守性が高くなるわけじゃないからな、 自分で書いて自分一人だけで保守するならいいんじゃないかね
1019 名前:デフォルトの名無しさん mailto:sage [2018/07/04(水) 00:55:14.74 ID:M17EkYCN.net] そうそう、Rustは可読性が低く保守性も低い
1020 名前:デフォルトの名無しさん mailto:sage [2018/07/04(水) 01:36:19.71 ID:mmoPrDKP.net] >>997 いやいや、Rustは可読性も保守性も高いでしょ 書く前にある程度の考える必要があるだけ むしろ思ったことすぐに書けちゃう言語の方が 可読性も保守性も低いでしょ
1021 名前:デフォルトの名無しさん mailto:sage [2018/07/04(水) 05:38:29.74 ID:XdTckET+.net] Rustって名前で損してる気がする。
1022 名前:デフォルトの名無しさん mailto:sage [2018/07/04(水) 05:39:21.37 ID:XdTckET+.net] 錆って何よ、触ったらヤバそうじゃんww
1023 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 30日 5時間 45分 54秒
1024 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています