[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 04/22 19:38 / Filesize : 234 KB / Number-of Response : 1025
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

次世代言語11[Rust Swift TypeScript Dart]



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/

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 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています








[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<234KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef