次世代言語11[Rust Swift TypeScript Dart]at TECH
次世代言語11[Rust Swift TypeScript Dart] - 暇つぶし2ch633:デフォルトの名無しさん
18/06/20 13:04:18.23 pTH4tzak.net
>>620
ジェネリクスやインターフェース正しく使ってれば
DRY原則無視しなきゃ型安全守れないこととかほぼ無いだろ
どんなコード書いてるんだよ?

634:デフォルトの名無しさん
18/06/20 21:17:56.02 vXpw0FFs.net
型って建物に例えると水準器だろ
柱がまっすぐ立ってるか見るための補助具
補助具ばっか作って家が建つのか?

635:デフォルトの名無しさん
18/06/20 21:34:34.91 kjCaqS0j.net
一生水準器使ってろ
俺は家建てるからよ

636:デフォルトの名無しさん
18/06/20 21:39:33.95 pTH4tzak.net
そうか、じゃあ動的言語で作ったプログラムって例えるなら水準器なしで建てられた家なのか…
それは欠陥住宅というもので工期が遅れてる建物よりもっと害悪だと思うんだがそれは…

637:デフォルトの名無しさん
18/06/20 21:55:16.85 nu99cs2X.net
いや単なる犬小屋欲しいだけなのに設計書に一年くらい時間かけるようなもんだ。

638:デフォルトの名無しさん
18/06/20 22:31:25.72 R/RR2gVc.net
>>628
犬小屋ってどれくらいの規模のものを指してるの?
リソース3つくらいのweb apiサーバとか?

639:デフォルトの名無しさん
18/06/20 22:35:54.20 R/RR2gVc.net
>>625
それだけじゃないよ。メンテナンスという観点でも必要。
いわば動的言語なら釘で家を建てるけど、
型付きなら、簡単に取り替えられるようにボルトで止まってる。
ちゃんとネジに印がついていて交換ミスも起こりにくい

640:デフォルトの名無しさん
18/06/20 22:37:33.02 6Ldi6ZQ0.net
例え話をするエンジニアは無能の法則

641:デフォルトの名無しさん
18/06/20 22:45:13.44 pTH4tzak.net
>>629
犬小屋なんだから日曜大工、つまり個人の趣味レベルのものでしょ

642:デフォルトの名無しさん
18/06/20 23:03:24.49 kjCaqS0j.net
型は水準器というより物差しに近い

643:デフォルトの名無しさん
18/06/21 00:46:09.92 j3Jry11G.net
オプションでも型制約無い言語なんてもうJSとRubyくらいじやね?

644:デフォルトの名無しさん
18/06/21 01:00:00.42 9yZQgWTf.net
Lua忘れるとか

645:デフォルトの名無しさん
18/06/21 01:15:00.23 Xm+RspnJ.net
c++のstd::chornoみたいな設計は行き過ぎた型安全だと思う

646:デフォルトの名無しさん
18/06/21 01:16:19.88 tnwaIVRK.net
C++は存在そのものが行き過ぎている

647:デフォルトの名無しさん
18/06/21 02:30:14.21 lOkS/ogb.net
永遠の次世代言語

648:デフォルトの名無しさん
18/06/21 03:28:39.67 CmPcltgN.net
C++はやべーよ
でも誰も逃げ出せない

649:デフォルトの名無しさん
18/06/21 07:30:10.88 6ripmtAT.net
まさに魔王

650:デフォルトの名無しさん
18/06/21 12:02:43.31 NVNRBOaD.net
逃げ出したいけど環境がっつりだから無理だわ

651:デフォルトの名無しさん
18/06/21 12:22:25.31 f5p4gdbf.net
rubyは絶対に型を書きたくないから
コメントか外部ファイルに型を書くようにするらしいぞ

652:デフォルトの名無しさん
18/06/21 12:26:56.39 Ny0HAIKC.net
0から何か作ろうって時にC++だけは選びたくない

653:デフォルトの名無しさん
18/06/21 13:31:50.47 AvdUCmrX.net
俺はアプリ屋だからコアの部分は Windows、
Android、iOS、MacOS のどれでも使える c++
UI 側を書く各言語から呼び出して使う

654:デフォルトの名無しさん
18/06/21 13:35:39.24 uYxelfTA.net
あいかわらずRubyの人たちは何がしたいのかよくわからんな

655:デフォルトの名無しさん
18/06/21 13:52:08.71 /kaFS0dg.net
C/C++の型はアドレスやサイズの計算に使う
低級言語だから型が役に立つ
高級言語がC++の真似をする必要はないんだよ
型を書かない高級言語はたくさんある

656:デフォルトの名無しさん
18/06/21 13:55:42.09 Ij19PzUL.net
コードに型を書かないと後で分からなくなるから結局コメントで型を書くことになるゴミ

657:デフォルトの名無しさん
18/06/21 13:58:07.14 D8gwnbh9.net
メソッド名とか使われ方とかコメントとかプログラマのクセとかからAIが型推論してくれるんだろう

658:デフォルトの名無しさん
18/06/21 14:00:01.02 gnPepsUQ.net
AIは確率過程だからコードみたいな根幹部分には使いたくないな

659:デフォルトの名無しさん
18/06/21 14:11:21.05 0x6Lg0t3.net
AIを使ったエラー検出は今後のトレンドになるだろうね
技術進歩に伴って緩やかに型は不要になっていくだろう
IntelliCodeの発展形としてMSがやりそう

660:デフォルトの名無しさん
18/06/21 14:33:42.30 copqf+uW.net
そのAIをC++で作らされたりしてな

661:デフォルトの名無しさん
18/06/21 14:34:54.31 /kaFS0dg.net
AIの得意分野はどっちかが必ず勝つ対戦ゲームというブルーオーシャン
レッドオーシャンに飛び込んでも勝てると思うのは確率的に間違ってる

662:デフォルトの名無しさん
18/06/21 14:46:28.87 S4IxNo+1.net
>>646
とあるオブジェクトを扱うアルゴリズムが要求するのは型じゃなく
整数っぽいものを返すsize() メソッドは実装していること、
とかそういう制約だよな

663:デフォルトの名無しさん
18/06/21 20:54:11.38 bp0U88xF.net
>>642
python2の型ヒントみたいなやり方するってことかな。まあ実行時には必要ない情報だから
それもリーズナブルな解だと思うけどね。使えるものを早く出してくれさえすれば。

664:デフォルトの名無しさん
18/06/21 21:51:19.80 6ripmtAT.net
型推論とかAIで検出とかバカほど無駄なことに計算資源使おうとするのな。
そんなカスみたいな機能に資源使うくらいならコンパイル速度上げた方がよっぽどマシ。

665:デフォルトの名無しさん
18/06/21 23:52:49.86 c3YkgC6b.net
>>655
えぇ…
AIは知らんが型推論のほうはコンパイル速度重視のGoでさえ使ってる技術だぞ

666:デフォルトの名無しさん
18/06/22 00:03:19.61 7bl9EfTW.net
単純な右から左の型推論は余計な型名解決が減る分むしろコンパイル速くなるだろ

667:デフォルトの名無しさん
18/06/22 00:15:01.47 ecfXobDJ.net
おじいちゃんは自分がよく知らないものは全部無駄に見える生き物だから…

668:デフォルトの名無しさん
18/06/22 00:18:04.51 mjvSylV1.net
>>657
単純な場合はむしろ速くなるの?それは知らんかった
ただ、どっちにしろ型推論ってそんなに計算リソースを消費するイメージないんだけど…

669:デフォルトの名無しさん
18/06/22 00:42:37.48 fxQEanUA.net
速くなる訳ねーだろ。。
URLリンク(cocopon.me)
なんでこいつらこんな簡単に騙されるの?

670:デフォルトの名無しさん
18/06/22 00:43:40.93 H0orbnfz.net
型推論の計算コストは有効範囲と言語の持ってる型システムの表現力でけっこう変わるよ
関数内でのみ有効なのと関数宣言でも使えるのだと随分違う
既存の、コーディング中に型を書くのが苦にならないような言語だと後から型推論追加しても旨味が少ないと思う
Rustはコンパイル速度を気にしてかライフタイム関係の推論が面倒だったのか知らんけど、関数内でしか型推論有効にしなかったの


671:は個人的にマイナス



672:デフォルトの名無しさん
18/06/22 00:58:36.71 ZcpNHe71.net
>>660
せめてgoでの比較持ってこいよ

673:デフォルトの名無しさん
18/06/22 01:02:01.33 mjvSylV1.net
>>660
結局コンパイラがどうやって推論してるかはソース見てみない限り分からないからな
遅くなる場合もあれば、ほとんど変わらない場合もあるだろうし、何とも言えないな…
>>661
俺は逆に関数宣言の型の情報まで推論されるのは好きじゃないな
推論するのはローカル変数だけにしてほしい
まぁ、そこら辺は好みの問題だな

674:デフォルトの名無しさん
18/06/22 01:56:16.57 fZhhlNhQ.net
>>663
関数宣言の型の情報って何よ?

675:デフォルトの名無しさん
18/06/22 08:06:59.36 UUvhOuOE.net
constは推論されないとかのことかな

676:デフォルトの名無しさん
18/06/22 10:04:29.72 HgCip2r2.net
Nim IN ACTIONの1章と8章が無料公開されてるから1章読んでみてるけどなかなかセンスいい言語だな

677:デフォルトの名無しさん
18/06/22 11:15:38.68 HgCip2r2.net
しかしスネークケースキャメルケース同一視すんのどうなんだ
識別子に暗黙で余計な解釈しないでほしい
railsの自動変換思い出して嫌な感じ

678:デフォルトの名無しさん
18/06/22 13:59:02.57 yU7k9q5t.net
NimはDの後継って感じがする

679:デフォルトの名無しさん
18/06/22 17:58:23.96 cmFjayc5.net
最近D言語は低レベルのほう寄ってってるからなあ

680:デフォルトの名無しさん
18/06/22 18:08:28.35 oC8L9s8J.net
ベクトル化を使うための4要素配列とかヤバすぎ

681:デフォルトの名無しさん
18/06/22 18:49:57.22 y18AFRdV.net
Dとは一緒にしないでいただきたい!
ってのは冗談だけどDとは違うと信じたい
アホみたいに機能消したり追加したりしてないし

682:デフォルトの名無しさん
18/06/23 03:45:17.94 U3yty0jv.net
Facebookで使ってるってのはドワンゴとはまた違った種類の怖さがある

683:デフォルトの名無しさん
18/06/23 05:57:11.77 tcOUUI9f.net
なんだんだ理由付けて勉強したくないだけでしょ
わたしはrustで先にゆきますよ

684:デフォルトの名無しさん
18/06/23 07:38:19.54 0Hl7KNt9.net
rust自体はちょこちょこ迷走やまずい部分も見られるので、本当に使い物になるのは
rustの成果を引き継ぎだか横取りだかした次の言語だと思ってる

685:デフォルトの名無しさん
18/06/23 08:08:55.39 tcOUUI9f.net
はいはい次は本気出すパターンね

686:デフォルトの名無しさん
18/06/23 08:21:35.71 xKUV9tWt.net
個人的に勉強するだけならいいと思いますよ。
他人にクソコンパイラの使用を押し付けなければね。

687:デフォルトの名無しさん
18/06/23 08:33:57.94 XcMMhDbo.net
>>674
swiftかな。swiftはにんきあるよな。俺には理解できないけど。関数型に興味を持つきっかけとnull安全な言語仕様の有効性を教えてくれた

688:デフォルトの名無しさん
18/06/23 09:33:29.90 4aGgjPWw.net
QBの契約ですら押し付けではないと擁護する人はいるから
あれより酷いことをしない限り押し付けとの指摘は当たらない

689:デフォルトの名無しさん
18/06/23 09:38:21.33 tcOUUI9f.net
押し付けがましく感じる人がいても知ったことではないよ
そういう雑魚はずっとjava8の導入を検討していればよい、個人的にね

690:デフォルトの名無しさん
18/06/23 09:44:16.67 YVqCYnTI.net
みずほのピラミッドのJavaバージョンは?

691:デフォルトの名無しさん
18/06/23 10:29:14.93 euiJmXfR.net
ふぐじま?

692:デフォルトの名無しさん
18/06/23 11:30:28.12 4aGgjPWw.net
コメントは個人の感想
moveとかborrowとか宣言するのは事実を宣言している
後者の方が押し付けがましくないと考えられていた時期もあったのだ
個人の意見を排除し事実だけを述べれば押し付けがましくならないと思ってた

693:デフォルトの名無しさん
18/06/23 13:10:25.11 TEFAVffv.net
Go:


694:マスコットきもい Rust: C++と潰し合え Swift: Apple専用の域を出ず Kotlin: Javaの代わり Nim: v1.0を出せ、cpp, m, js へのトランスパイルいるか? D: 最先端を目指した化石



695:デフォルトの名無しさん
18/06/23 13:52:47.56 4aGgjPWw.net
最近の人類がC++を使いこなしているのは想定外だった
短期的に考えると進化するのは言語やAIであり生物は進化するはずがないと思ってた

696:デフォルトの名無しさん
18/06/23 15:36:02.48 /G4sVvHU.net
>>673
出た出たRust信者特有の選民思想

697:デフォルトの名無しさん
18/06/23 16:06:32.61 qtu2DFwK.net
最先端を目指した化石か
めっちゃしっくりくるな

698:デフォルトの名無しさん
18/06/23 16:07:05.54 0Hl7KNt9.net
特有じゃないんだよなあ……
Ruby、Delphi、Haskell、Scalaその他諸々みんな罹患してた
既に治った人は生暖かい目で見てるし、看取った側の人はまたかぐらいにしか思ってない
むしろ>>685の新鮮な反応が羨ましい

699:デフォルトの名無しさん
18/06/23 16:19:09.66 tcOUUI9f.net
>>685
出た出た自己肯定のためのレッテル貼り

700:デフォルトの名無しさん
18/06/23 16:28:28.71 XcMMhDbo.net
今のPM新しい物好きでTypeScript案件でサーバサイドとクライアント側を同時開発するような人だけど、その人でもrustはきついっていうとった。

701:デフォルトの名無しさん
18/06/23 17:07:58.65 hifg8OYP.net
そんなの流行るわけない

702:デフォルトの名無しさん
18/06/23 18:14:07.85 coHxpUCl.net
選民思想批判するなら対案を出せ
仏教?どこの宗派だよ

703:デフォルトの名無しさん
18/06/23 19:19:35.97 pQrlS0bu.net
>>688
そういうとこがまさに選民思想って言ってんだが
洗脳って怖いな

704:デフォルトの名無しさん
18/06/23 19:29:19.08 tcOUUI9f.net
>>692
プログラマーとは思えないポンコツ発言だな
笑えるけど君の洗脳を解く義務はないので一人でそこにいてくれ

705:デフォルトの名無しさん
18/06/23 19:37:07.37 xKUV9tWt.net
学習しがいのある機能が盛り込まれた言語の最大の欠点て
こういうバカが大量生産されるとこだよな。

706:デフォルトの名無しさん
18/06/23 20:14:12.75 coHxpUCl.net
そんな因果関係に縛られて予想通りバカになるのは嫌だな
予想を裏切って自由になれよ

707:デフォルトの名無しさん
18/06/23 20:58:39.18 TOisXc9o.net
そういうとこやぞ

708:
18/06/23 21:03:04.54 OlLfOCSW.net
>予想を裏切って自由になれ
すばらしい!
私も従来の枠にとらわれない、思い込みから離れた、全く新しい発想というものを求めています
嫌いなこともあえてやってみて自分の反応を観察する、とか、
今までやったことのないことを、あえてやってみる、とか
いろいろ試しているのです…
民法をやっていますが、これが全く予想外におもしろいのです

709:デフォルトの名無しさん
18/06/23 21:10:14.97 xKUV9tWt.net
予想を裏切るだけならバカでもできるわけだが。
自由にやるなら個人でやれって話がまるで通じないってのはすごいね。

710:デフォルトの名無しさん
18/06/23 21:46:46.64 tcOUUI9f.net
使う気がないならなぜこのスレにいるのか分からない
勉強しなくていい理由をみんなで出し合って安心するためか

711:デフォルトの名無しさん
18/06/23 21:49:34.28 mAwaom3d.net
次世代C++を使おう

712:デフォルトの名無しさん
18/06/23 22:14:12.79 rbpQhZkO.net
てかさ、押し付けられても無視すれば良いだけの話じゃん
仕事のプロジェクトに採用されそうになったら反対すれば良いだけの話
それでも採用された場合はお前の言葉が理論的でなく説得力が無いか
お前がよっぽど社内で信用されていないかのどちらか
その場合は押し付けられたと感じること自体が筋違い

713:デフォルトの名無しさん
18/06/23 23:09:22.74 mByRjV5X.net
殴り殺して黙らせればいいだろ
拳こそ次世代言語

714:デフォルトの名無しさん
18/06/23 23:14:29.49 U3yty0jv.net
肉体言語は拒否で

715:デフォルトの名無しさん
18/06/23 23:22:30.98 QEsd/0ZO.net
>>667
なんだそりゃ。理由でもあるのか

716:デフォルトの名無しさん
18/06/23 23:34:31.07 wpGrewH2.net
>>701
たしかに

717:デフォルトの名無しさん
18/06/24 01:44:09.68 E9ZuAUPV.net
swiftはまじでiOS以外の活躍場所増やしてほしい。それから本番

718:デフォルトの名無しさん
18/06/24 04:03:48.57 x8yGJsva.net
Objctive-CってiOS/Mac以外の現場あったの?

719:デフォルトの名無しさん
18/06/24 07:43:19.88 yrJGTcca.net
>>701
そうだよね

720:デフォルトの名無しさん
18/06/24 13:29:15.56 tiUGZk0g.net
swiftってゴチャゴチャ機能詰め込んだモダンなC++って印象しかないけど良い言語なのか

721:デフォルトの名無しさん
18/06/24 13:41:30.12 Wl9zttLU.net
全然c++要素ないだろ…

722:デフォルトの名無しさん
18/06/24 13:44:51.66 ytwtOhSm.net
iPadのアラートにキャンセルボタンでないんか?

723:デフォルトの名無しさん
18/06/24 13:50:51.28 VwV4wfVR.net
IntelliJがあるKotlinのほうがSwiftより強い

724:デフォルトの名無しさん
18/06/24 14:16:19.36 aS0z5WOn.net
なんでチェック例外なくしてしもうたん
みんなナチュラルに例外無視して例外が例外した時例外的な挙動になるじゃん
馬鹿?

725:デフォルトの名無しさん
18/06/24 14:20:18.05 4gJIHbwS.net
>>713
URLリンク(www.artima.com)
アンダース神の御言葉
あと当時にはなかった事情として、高階関数と相性最悪というのもある

726:デフォルトの名無しさん
18/06/24 14:22:38.49 aS0z5WOn.net
>>714
は?日本語でやりなおせこのカス
しょうもない神とかいってマウント取ってチンポおっ立ててるゴミは死なす

727:デフォルトの名無しさん
18/06/24 14:22:38.79 aS0z5WOn.net
>>714
は?日本語でやりなおせこのカス
しょうもない神とかいってマウント取ってチンポおっ立ててるゴミは死なす

728:デフォルトの名無しさん
18/06/24 14:26:16.08 afUW8/ml.net
> If the new version of foo is going to throw a new exception that clients should think about handling, isn't their code broken just by the fact that they didn't expect that exception when they wrote the code?
> Anders Hejlsberg: No, because in a lot of cases, people don't care. They're not going to handle any of these exceptions.
これを堂々と言えるのがヘルスバーグの凄さだよな
言語厨はこういうくだらない問題に固執して、その結果、使えないものを生み出す

729:デフォルトの名無しさん
18/06/24 15:08:00.23 zgy+o43M.net
1つの誤りを減らすために倍の工数をかけるのは意味がある
100万行に1つエラーがあるとき1つ減ったら品質2倍

730:デフォルトの名無しさん
18/06/24 15:23:54.41 I6qT+7Vz.net
チェック例外はステータスコードをリターンして呼び出し側に毎回チェックを要求するようなもの
例外を開発した根本的な理由を否定するおかしな機能だ

731:デフォルトの名無しさん
18/06/24 15:34:52.16 W9MJDxOG.net
>>715
英語も読めない奴がなんでこのスレにおるん?

732:デフォルトの名無しさん
18/06/24 15:37:10.47 zUb4/N1b.net
>>715
URLリンク(translate.google.co.jp)

733:デフォルトの名無しさん
18/06/24 15:57:11.31 zgy+o43M.net
>>719
ステータスコードとか黙殺されるじゃないか

734:デフォルトの名無しさん
18/06/24 16:08:53.37 NdKqGL5r.net
exitがあるならexitを使え
exitとは違うと言いたいだけのためにcatchするのはや�


735:゚ろ



736:デフォルトの名無しさん
18/06/24 17:10:33.48 5X6JCb05.net
>>701
まあ一理あるよ。
実際転職してこういうバカがいない環境で作業するようになったが
めちゃくちゃ楽になったというのはある。
バカと議論するくらいなら自分の環境を変える方が有効なのは事実だ。

737:デフォルトの名無しさん
18/06/24 18:21:51.58 7besbNmD.net
そういえば、Swiftってチェック例外しか無いけど
StackOverflowExceptionみたいなどうしようもないタイプのエラーはどう扱ってるんだ?

738:デフォルトの名無しさん
18/06/24 18:37:51.28 zUb4/N1b.net
いさぎよ死

739:デフォルトの名無しさん
18/06/24 19:10:21.85 rCnjXQm/.net
Swiftのthrowsは投げる例外の種類を特定できない
規模が大きくなればほぼ全てのメソッドにthrowsが付くので何の意味もなくなる
iOSアプリ専用言語ってことでスケーラビリティを捨てて簡潔さを取ったんだよ
全く検査例外の問題を解決していない

740:デフォルトの名無しさん
18/06/24 19:20:57.72 yrJGTcca.net
議論しなくて楽といいながら反論しないと我慢できないあたり、敗北に耐えられなくなったんだろうなあ

741:デフォルトの名無しさん
18/06/24 20:13:53.05 LdM/sNf2.net
はあ……はぁ…… 敗北者?

742:デフォルトの名無しさん
18/06/24 21:04:40.84 +NknEUst.net
Jカス死ね
外に持ち出すな

743:デフォルトの名無しさん
18/06/24 21:13:15.40 IMfFDE+Z.net
Goの例外機構は素晴らしい

744:デフォルトの名無しさん
18/06/24 22:53:08.23 aS0z5WOn.net
>>730
おいよせのるな立ち止まるな戻れ

745:デフォルトの名無しさん
18/06/24 23:42:03.20 454A8npo.net
Goに例外機構あったの??

746:デフォルトの名無しさん
18/06/24 23:54:12.95 n0+oKw/B.net
パニック パニック パニック みんなが あわててる

747:デフォルトの名無しさん
18/06/25 01:21:07.81 sauGlQNA.net
Nim vs Pony
URLリンク(www.slant.co)
Nimの圧勝www

748:デフォルトの名無しさん
18/06/25 01:43:43.51 MLyw+FoY.net
マイナーvsマイナーで圧勝とは

749:デフォルトの名無しさん
18/06/25 02:28:15.40 Emoxa88w.net
Java8基準で考えていく

750:デフォルトの名無しさん
18/06/25 02:39:47.18 sauGlQNA.net
日本じゃ全然話題にならないけどEveのトピックはいつも大論争になる。
果たしてEveは革新的なプロジェクトなのか、誤って定義した問題を解決しようとしているに過ぎないのか。
URLリンク(news.ycombinator.com)
URLリンク(news.ycombinator.com)
URLリンク(news.ycombinator.com)
URLリンク(news.ycombinator.com)

751:デフォルトの名無しさん
18/06/25 03:16:00.10 /4lQWXmM.net
Egisonのパターンマッチちょっと感動した

752:デフォルトの名無しさん
18/06/25 03:17:17.70 44m9rNA8.net
記号なしの数学はより分かりやすく役に立つか

753:デフォルトの名無しさん
18/06/25 09:16:08.84 5QtoeHUB.net
パトロン見つからなくてプロジェクト終了してたんだな。残念

754:デフォルトの名無しさん
18/06/25 14:24:03.82 KTJIIKxw.net
>>170
は?vscodeもtsも不安しかねえんだけど
シェア一強になるまでは低姿勢、なった瞬間に手のひら返し、が今までのMSのテンプレ
今回もまったく芸のないテンプレでむしろ呆れてるところ
お前みたいなバカが信者かわからんがMS持ち上げる阿呆が出てくるからタチ悪い

755:デフォルトの名無しさん
18/06/25 14:27:50.78 NzmJfW7/.net
マイナーvsマイナーだと、設計そのものの良し悪しよりも
どれだけ労力をかけて作り込まれているかの方が影響でかいからなあ……
作ってる側が「いやそこの最適化は後回し」とか思ってるところを測ってもしょうがないし
(いやメジャーvsメジャーでもそういうとこあるけど)

756:デフォルトの名無しさん
18/06/25 15:24:30.75 3bOE7bXX.net
一生疑って暮らすのは楽しいのかな


757:ぁ



758:デフォルトの名無しさん
18/06/25 15:50:06.67 d4UYbnp8.net
「疑う」の反対は「割る」
割れば楽しいのはわかった上で敢えて疑う方を選ぶんだろう

759:デフォルトの名無しさん
18/06/25 16:43:18.37 1uudit/q.net
>>738
なんかSmalltalk風味があるな・・・

760:デフォルトの名無しさん
18/06/25 19:42:46.10 Vbt8BrVm.net
MSのやり方について講釈垂れる前に
ライセンス見ろよとしか(VSCode,vscode)

761:デフォルトの名無しさん
18/06/25 23:28:09.79 RDIsdPp/.net
>>742
陰謀論者は生きづらそうで大変ですね。
もしMSが手のひら返したら、forkするだけですけど?

762:デフォルトの名無しさん
18/06/25 23:37:34.43 XbrJPmKw.net
forkするだけ(藁)
強がっちゃってまあ
いいのか?フォフォフォカヌポォしますぞ!!!(憤怒)←草www

763:デフォルトの名無しさん
18/06/25 23:47:42.02 d4UYbnp8.net
forkするより製品版を単純にコピーするだけの方が早い
MSの影響で民度が下がる
MSと無関係でいる方が安全

764:デフォルトの名無しさん
18/06/26 00:04:43.71 Si7josaM.net
永遠にvimかemacsしか使わなければよい

765:デフォルトの名無しさん
18/06/26 00:07:22.28 RrNymGzT.net
数年前の意識高い系達が「Web開発のスピードにIDEなど邪魔(キリッ」とか言ってたのが嘘みたいだよな
結局のところ彼等は電気を知らない原始人だったのだ

766:デフォルトの名無しさん
18/06/26 00:09:45.57 5qApnOMl.net
火に怯えてた猿、の間違いだろw

767:デフォルトの名無しさん
18/06/26 00:10:17.87 PwoRxl17.net
Vimは操作性や立ち上がりの速さが優れている
Guiのエディタはプラグイン導入の楽さが優れている
Emacsは間くらい

768:デフォルトの名無しさん
18/06/26 01:10:33.16 OhefK1bS.net
>>742
つーか誰もツッコんでないんだけど、なんでこんな遅レスなんだっていう

769:デフォルトの名無しさん
18/06/26 02:31:41.82 z7QfCwwb.net
>>742
不安を感じないものを上げてみて

770:デフォルトの名無しさん
18/06/26 07:48:27.74 8nfGtP67.net
アメリカ人「銃があれば原始人を倒せるのに」

771:デフォルトの名無しさん
18/06/26 10:23:19.59 /82hZ4jz.net
>>756
Gitlabは少なくとも信頼できる
Azureで動いてるとか言ってる奴いるけどもうやめるって話出てる
エディタはEmacsで十分だし、babelあればES2016でもまともに書けるからTSは不要

772:デフォルトの名無しさん
18/06/26 10:30:34.11 Uq9cj0Jx.net
>>758
DB消すようなとこが信頼できる?

773:デフォルトの名無しさん
18/06/26 10:39:38.33 /82hZ4jz.net
>>759
消したあとの対応は信頼できる
MSなら消しても揉み消してた

774:デフォルトの名無しさん
18/06/26 10:43:02.43 jiePcum7.net
>>760
MSそんな事したことあったっけ?
ただの妄想?

775:デフォルトの名無しさん
18/06/26 11:38:55.58 8nfGtP67.net
疑問を持つ人はいっぱいいるが疑問を解決する人は少ないのが現実で
すぐに解決すると思うのは非現実的

776:デフォルトの名無しさん
18/06/26 17:29:52.82 iZChSW1/.net
年食うと一度学んだ思考回路は変えられないんだろうな
多分死ぬまでMSは邪悪でEmacsは最高のエディタなんだろう

777:デフォルトの名無しさん
18/06/26 18:29:07.51 SLOKSalZ.net
>>677
URLリンク(benchmarksgame-team.pages.debian.net)
Swiftは遅い

778:デフォルトの名無しさん
18/06/26 19:30:48.24 Si7josaM.net
Goより速いじゃん

779:デフォルトの名無しさん
18/06/26 19:55:40.04 HsrbbpJS.net
>>763
それも偏った思考回路だな

780:デフォルトの名無しさん
18/06/26 19:56:14.90 SLOKSalZ.net
あとSwiftでパターンマッチ使うときさ「case let」の「let」ってなんの意味有るの?



781:そもそも「case」自体いらないよね。 Rustみたいに簡潔な構文にしない意味がわからん。



782:デフォルトの名無しさん
18/06/26 20:18:13.51 ouGSlrDx.net
簡潔って記号だらけにしろってこと?
perlでも使ってれば

783:デフォルトの名無しさん
18/06/26 20:22:26.08 wzcThIhT.net
Rustの構文が簡潔……??

784:デフォルトの名無しさん
18/06/26 20:23:51.43 SLOKSalZ.net
Scalaも構文ダメだけど、Dottyでかなり改善されてるみたいだね
URLリンク(dotty.epfl.ch)

785:デフォルトの名無しさん
18/06/26 20:32:08.64 SLOKSalZ.net
>>768
>>769
冗長な構文にするなってこと。
```Rust
match number {
1 => "one",
2 => "two",
_ => "else",
}
```
```swift
switch number {
case 1: return "one"
case 2: return "two"
default: return "else"
}
```

786:デフォルトの名無しさん
18/06/26 20:36:27.71 Rm57MuZK.net
msが嫌いならflow使っとけばいいよ。
俺はTypeScriptで行く

787:デフォルトの名無しさん
18/06/26 20:37:59.55 Rm57MuZK.net
>>771
rustをそんなに押すなら、
毎日ちょっとずつ使い方教えていけよ。
面白い内容ならそのまま覚えるから

788:デフォルトの名無しさん
18/06/26 20:40:42.88 wjruZlWa.net
>>767
case varがあるからでは

789:デフォルトの名無しさん
18/06/26 21:03:22.89 1/94qv1z.net
>>770
dottyは流石に見苦しいわ
今更互換性ブチ壊して誰がわざわざScalaなんか使い続けるんだよ
Lightbendは一度プラットフォーム主導者の味を覚えてしまってもう後に引けなくなってるんだろうな

790:デフォルトの名無しさん
18/06/26 21:08:47.59 SIV9Ebow.net
元が冗長だと、機能追加したときの新構文(大抵元と区別のために冗長になる)が
あまり違和感なくなるというメリット?もある
C++とか酷いだろ。rustも多分20年ぐらいしたら酷くなる

791:デフォルトの名無しさん
18/06/26 21:18:39.20 SLOKSalZ.net
>>774
Rust: URLリンク(play.rust-lang.org)
Swift: URLリンク(ideone.com)
この場合Rustのようにlet書く必要ないと思うんだけど?

792:デフォルトの名無しさん
18/06/26 21:33:59.71 uCVrG76/.net
>>776
Rustが20年も残ってるとか信者かよ

793:デフォルトの名無しさん
18/06/26 21:38:20.73 uCVrG76/.net
>>763
いつMSが邪悪じゃなくなったんだよ
エディタについてはVimとEmacs以上のものがいまだにないだけ

794:デフォルトの名無しさん
18/06/26 21:42:01.06 z7QfCwwb.net
>>779
老害おつ

795:デフォルトの名無しさん
18/06/26 21:43:00.71 SIV9Ebow.net
>>778
ObjectPascalは30年経ってるが、元が冗長と言われまくってたPascalだったおかげで
魔改造されまくった今でもあんまり浮いた構文は無いぞ
初期Macで採用されてたのは別格としても、その後は大したプロダクトもないDelphiぐらいでしか残ってないのに
一応生き残ってるんだから、FirefoxのあるRustも同じぐらいは残るだろ多分

796:デフォルトの名無しさん
18/06/26 21:46:10.71 uCVrG76/.net
>>780
どっちかっていうと、若者がMSの暴虐の歴史を学んでないから
今現在進んでる暴虐が暴虐と分からないだけだぞ

797:デフォルトの名無しさん
18/06/26 21:49:11.80 uCVrG76/.net
>>781
火狐に使われてるから残るとか
火狐の世界シェア見てから言おうぜ……
Rustごと自殺して消えるって自白したようなもん

798:デフォルトの名無しさん
18/06/26 21:49:29.84 1/94qv1z.net
完全に半島人

799:デフォルトの名無しさん
18/06/26 21:49:47.34 jiePcum7.net
>>777
だからletとvarがあるんだって
let: URLリンク(ideone.com)
var: URLリンク(ideone.com)

800:デフォルトの名無しさん
18/06/26 21:50:20.36 z7QfCwwb.net
>>782



801:体的に



802:デフォルトの名無しさん
18/06/26 21:50:49.04 K3KwuDCb.net
Delphiで残れたのなら火狐で残れるだろ

803:デフォルトの名無しさん
18/06/26 21:54:24.01 1lcgGYQy.net
この爺さんはこのスレに何しにきとるんだ
特養じゃないっつの

804:デフォルトの名無しさん
18/06/26 21:56:05.20 SIV9Ebow.net
>>787が書いてくれたが
俺も、どっちも細々としたもんだがFirefoxのほうがDelphi(製アプリ)よりはまだマシだろう、というつもりだった
その上で20年後の変更されまくったrustはDelphiやswiftより汚くなってそう、という予想

805:デフォルトの名無しさん
18/06/26 22:07:57.87 TI86xS9J.net
すでに汚いしな。

806:デフォルトの名無しさん
18/06/26 22:12:37.76 SLOKSalZ.net
>>785
varがあるのはわかるけど、そこでvarを使う場面てあるのかね?
URLリンク(ideone.com)
```swift
case let .B(n):
let t = n+1
return String(t)
```
だって変わらんし

807:デフォルトの名無しさん
18/06/26 22:24:29.16 SLOKSalZ.net
>>785
それにvarのときだけつければ良くないかね,Rustだと「mut」つけるだけだけど
URLリンク(play.rust-lang.org)
```rust
AB::B(mut n) => {
n+=1;
n.to_string().into()
}
```

808:デフォルトの名無しさん
18/06/26 22:33:54.59 wjruZlWa.net
>>791
変数束縛にletとvarがある言語において、switchのときだけ変数束縛を特別扱いしてletやvarを省略できるのは一貫性が無いという考え方もある

809:デフォルトの名無しさん
18/06/26 22:39:59.15 wjruZlWa.net
それに短ければ良いなら、rustのlet mulよりswiftのvarの方が短い
パターンマッチより変数宣言方が良く出て来るしね

810:デフォルトの名無しさん
18/06/26 22:47:02.38 b30is1tn.net
20年後に汚くなるってのはみんなわりと納得するんじゃね?
C++もJavaも、時間経過とともにきっちり汚くなった
言語仕様こねくり回すのが仕事の人が存在するからしゃーないっちゃあしゃーない

811:デフォルトの名無しさん
18/06/26 22:48:50.88 cumK515O.net
難しい・易しいではなく汚い・美しいという見方をするのはなんでだろう
数学を諦めた感が漂ってる

812:デフォルトの名無しさん
18/06/26 22:49:48.96 SLOKSalZ.net
>>793
そういう見方もあるけどね
でも
```
case let .B(x): return String(n)
```

```
case .B(let x): return String(n)
```
の違いってなんなのかね、違いがないなら「let」省略できたほうがいいように思うが

813:デフォルトの名無しさん
18/06/26 22:51:21.79 SLOKSalZ.net
>>797
訂正: xじゃなくてn

814:デフォルトの名無しさん
18/06/26 22:57:45.92 SLOKSalZ.net
>>794
短いことがいいんじゃないよ、理由なく冗長な構文がだめなだけ。
Rustはわざと「var」とかじゃなく「let mut」にしている理由は、通常イミュータブルを使うようにするため。
ミュータブルの構文が長いことでプログラマがイミュータブルをより一般的に使うよう促す効果がある。

815:デフォルトの名無しさん
18/06/26 23:00:40.71 HsrbbpJS.net
可読性の高い綺麗なPerlコードを書けるものだけが石を投げなさい

816:デフォルトの名無しさん
18/06/26 23:12:38.14 SIV9Ebow.net
>>799みたいなのは設計当初は綺麗なんだけど
後から、例えばD言語のconst/immutableみたいな選択肢を追加してしまうと罠に化けそうじゃない?(妄想だけど)
その点元が冗長ならある程度耐性がある、という話。後から省略可能にする方はできるしな

817:デフォルトの名無しさん
18/06/26 23:29:44.42 SLOKSalZ.net
>>801
Dは全然知らないけど、調べたらデフォルトがミュータブルで、immutableをつけるとイミュータブルになるのか。
```
int x = 3; // ミュータブル
immutable int x = 3; // イミュータブル
auto s = "hello"; // イミュータブル
```
これはひどいな

818:デフォルトの名無しさん
18/06/26 23:32:04.35 SIV9Ebow.net
>>802
そこはまあしょうがないとして、イミュータブルにも種類があるという点


819:に注目してくれ



820:デフォルトの名無しさん
18/06/26 23:40:45.19 cumK515O.net
コンパイル時に値がわかるのが定数
実行時に初期化するがその後は変更しないのがimmutableかな

821:デフォルトの名無しさん
18/06/26 23:56:28.51 SIV9Ebow.net
加えて、現在のスコープからは変更不可能だが実体はミュータブルかもしれないのがconst
更にそれぞれに推移のON/OFFがある
何も書かないのがイミュータブルだとその内の1つを適当に使ってるということで
選択肢が増えたときにどれか1つが不自然に短く書けてたことになるし
現状を突き詰め直したときにコンテキスト毎に別のだったなんてことになると目も当てられない

822:デフォルトの名無しさん
18/06/27 00:01:32.20 3Z0mJH5D.net
やっぱり言語仕様は頻繁に変えるべきということだな!w

823:デフォルトの名無しさん
18/06/27 00:50:40.19 jdISqR1B.net
>>802
ゲェジかな
ワイの方がよっぽどいい設計できるわ
この作者はワイのケツ穴でも舐めてた方が幾分有益な人生になったんじゃないかw

824:デフォルトの名無しさん
18/06/27 00:59:47.78 CkpNpuYk.net
>>805
GCが必須ではない言語の場合、ミュータブルならばメモリ解放もできる
現在のスコープからは変更不可能だが実体はメモリ解放するかも
というのは非常にまずい
現在のスコープから変更不可能ならば実体も変更不可能にしたい

825:デフォルトの名無しさん
18/06/27 01:19:45.86 9jxZxPuA.net
>>808
それだとイミュータブルなオブジェクトを貰って何かする関数に
ミュータブルなオブジェクトを渡せなくならない?
そうすると print とか toString とか hash とか compare とかありとあらゆるものが
immutable / mutable 2種類必要になる
引数に2つオブジェクトがあると4種
3つなら8種

826:デフォルトの名無しさん
18/06/27 20:24:28.42 GckfUNYK.net
ただの再代入不可な変数をイミュータブルって言い始めたのって何の言語からなの

827:デフォルトの名無しさん
18/06/27 21:06:16.07 7rLtDwhR.net
>>810
たぶん英語だと思う

828:デフォルトの名無しさん
18/06/28 08:21:12.64 1UW06GNd.net
>>795
pythonなんかも細かいところはど汚いわけだがあんまりそういう汚いところ
触らんでも仕事になるって違いはある。
てかシンタックスなんててきとうにチェックでもそんな問題にならんよ。
self書かされることなんて文法で規制されてるわけでもないが問題になることなんてない。

829:デフォルトの名無しさん
18/06/29 09:12:05.44 iOzvNZgV.net
>>810
変更可、不可という概念は別に変数に限った話じゃない

830:デフォルトの名無しさん
18/06/29 09:23:47.61 XwuS30Hh.net
Pythonの型アノテーション試してるけど正直苦痛
TypeScriptを使ってるときには全く感じなかった無駄なもの書かされてる感がすごい
というかTypeScriptの統合が完璧すぎるんだな
型書くことはノイズになるどころかコードをむしろ美しくするとすら思えるもんな

831:デフォルトの名無しさん
18/06/29 10:57:44.57 0VaRYdhC.net
少しでも欲を出せばそうなる
完璧な無欲か完璧な満足かの1bitしかない
HaskellやRustのようになるまで止まらないぞ

832:デフォルトの名無しさん
18/06/29 11:15:41.22 tgpXEKjE.net
>>814
Python 3.6の変数アノテーションはTypeScriptと大して変わらないのでは?
以前のコメント形式は糞だったけど

833:デフォルトの名無しさん
18/06/29 13:13:42.11 8rEU0m4z.net
>>814
全部の変数にアノテーション付けようとしてる?
基本、関数・メソッドの入出力だけでいいぞ
残りは大体推測してくれる

834:デフォルトの名無しさん
18/06/29 13:43:06.77 HOtQS3nQ.net
>>817
ライブラリなどの既存メソッドの戻り値はほとんど型なしだから結局オレオレ型宣言を左辺の変数に付けて回


835:ることになる



836:デフォルトの名無しさん
18/06/29 15:55:24.38 546QQsBD.net
>>818
あー、過渡期だからそれはあるかもね
対策としては、他モジュールを呼び出すところはなるべく集める、いきなり完璧を目指さないぐらいか

837:デフォルトの名無しさん
18/06/29 20:05:29.68 SWySBfmj.net
そんなに型に気を使って消耗する位ならもう生js使おう
適当にラッパーかけとけラッパー

838:デフォルトの名無しさん
18/06/29 21:06:52.59 M/T+ZgVo.net
>>820
TypeScriptユーザーがシコシコ型定義ファイル作ってるおかげで、vscodeでjsでも補完きくんやで。感謝せーや

839:デフォルトの名無しさん
18/06/29 21:09:19.97 0KEVr9Fm.net
せめて同梱の標準ライブラリくらいは網羅しておいてほしいよね。

840:デフォルトの名無しさん
18/06/29 21:11:52.89 M/T+ZgVo.net
>>814
typeScriptみたく型定義ファイルの共有する仕組み無いの?
いちいち書くのはしんどいな。

841:デフォルトの名無しさん
18/06/29 21:39:48.60 0VaRYdhC.net
>>823
しんどいのか
その作業がないということはライブラリの作者は楽をしている
だからライブラリが増やすのも楽
そういう仕組みなんだろう

842:デフォルトの名無しさん
18/06/29 22:21:57.95 5dIySMmw.net
>>824
TypeScriptの場合は型定義を提供することでTypeScriptユーザーに使ってもらいやすくなり、
ユーザーの増加がライブラリ製作者にとって一手間かけるモチベーションになる
Pythonの場合は型アノテーションを付けたらPython3.5以上でしか使えなくなるのでユーザーは確実に減る
結果、誰も対応しない
根本的に破綻してるんだよ

843:デフォルトの名無しさん
18/06/29 22:35:49.90 0VaRYdhC.net
>>825
破綻してるのはお前のマウンティングだよ
マウントが酷いのはHaskellで、TypeScriptは無関係みたいなイメージが根本的に壊れた

844:デフォルトの名無しさん
18/06/29 22:39:04.05 Yl8lnP6m.net
そんなんでイメージ変わるのかよ…

845:デフォルトの名無しさん
18/06/29 23:18:51.02 ifNvOhNj.net
おれ的にはこのまま型定義ファイルがすべてのライブラリに標準装備されて緩やかにjsがts化していくことを希望したい。
最初から型定義がライブラリに入っていること多くなってきたよな、

846:デフォルトの名無しさん
18/06/29 23:54:19.04 uRtJ4/dJ.net
>>828
それには同意

847:デフォルトの名無しさん
18/06/30 02:42:20.84 eHfkv0CB.net
このスレに来て初めてマウンティングって言葉を知ったわ。

848:デフォルトの名無しさん
18/06/30 03:36:46.79 +abKhVkF.net
>>823
あるよ。
typeshedてのがそれ
>>825
関数の引数、返値なら3.0から書けるし、コメント使うか別ファイルに書くやり方なら2.7にも対応可能ですが

849:デフォルトの名無しさん
18/06/30 08:02:10.37 tr0WXiW5.net
Haxe では型定義ファイルがあるから、型推論も入力補完もできる

850:デフォルトの名無しさん
18/06/30 09:44:21.50 4h701pQF.net
通常ならライブラリ本体丸ごと読んで型を調べるべきだ
本体に型がないなら別ファイルに書く

851:デフォルトの名無しさん
18/06/30 12:26:26.59 aZHCYAl9.net
>>831
なんだあるんだ。なら型付言語として使われるのも時間の問題だな。
rubyにもあるみたいだし、
ライブラリのインターフェースだけでも型付き当たり前の世界が来そうだね

852:デフォルトの名無しさん
18/06/30 14:15:03.20 BB0BPsjY.net
まーたruby信者のそ、そんなのる、るびぃでもできるし!か。呆れ
なんでもかんでも深く考えず流行りをそうやって後付けで増築してって奇形極まってるよね。二度と使わないよ。

853:デフォルトの名無しさん
18/06/30 15:58:28.61 9HearrjU.net
rubyの違法建築感は否定しない
が、なんかまとめ臭い書き方だなおい
5chエアプか?

854:デフォルトの名無しさん
18/06/30 16:41:24.65 oxrLiD+S.net
るびぃ


855:信者、Proc.new、ラムダ、ブロックにおけるreturn、break、nextの挙動の違いをまとめようとした模様 https://qiita.com/jnchito/items/83410c0cda446efea582 結果、ややこしすぎるためコーディングを工夫してreturnやbreakの使用を避けましょうというなんじゃそりゃな結論www 何か理由があってわざわざ挙動を変えたんだろうが(まさか行き当たりばったりってことはないよね笑)ややこしすぎで使用自体を避けられてちゃ本末転倒だよなwww



856:デフォルトの名無しさん
18/06/30 17:39:57.19 RHrrdh8p.net
>>836
その人はrustがコンパイルできないおじさんだからほっときなさい

857:デフォルトの名無しさん
18/06/30 18:00:17.99 Q/uEsP1n.net
rust
ruby
似てないこともないな

858:デフォルトの名無しさん
18/06/30 18:59:53.28 +abKhVkF.net
>>834,836
とはいえ、ruby にまともに使える型チェックの実装があるのかには興味あるな。
まえ調べた感じだと、教祖の型チェック周りの発言はフワッフワだし、実装してみたい個人が互換性のない「オレオレ型チェック」を作っては破棄してる感じで、万人が使えるものは何一つないようなんだが。

859:デフォルトの名無しさん
18/06/30 19:02:48.17 6fEIEQu0.net
どうせ
if type(...) != my_class:
とかのシュガーだろ。そんなもんに目くじら立てても意味あるのかね。

860:デフォルトの名無しさん
18/06/30 19:33:21.11 CMs/fWc6.net
Rubyはオモチャだから型付けなんて要りません
それより散らかったオモチャを片付けなさい

861:デフォルトの名無しさん
18/06/30 20:38:08.56 4h701pQF.net
自分のために違法建築したとは考えにくい
ユーザーを忖度して違法建築なら利己的ではないからOKという風潮があったんじゃないか
会ったこともないユーザーをモチベーションにするのはやめてほしい

862:デフォルトの名無しさん
18/06/30 23:16:50.81 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:デフォルトの名無しさん
18/06/30 23:39:42.18 xV+Shhkx.net
>Ruby のProc, block はクロージャだから、クロージャを囲む関数から戻る。
クロージャ「だから」、クロージャを囲む関数から戻る??
まるでクロージャだったら当然の挙動と言わんばかりの書き方だけど、クロージャってそんなんだっけ?

864:デフォルトの名無しさん
18/07/01 00:39:17.02 tX8JlSDC.net
そんなものちゃんと読んでる>>845に感心したw
ネットにはゴミが多いね

865:デフォルトの名無しさん
18/07/01 01:54:08.61 5prQoZWD.net
>>845
ヒント:Smalltalk

866:844
18/07/01 02:00:27.83 YZ+qvhoO.net
クロージャは、クロージャの外側の環境をつかんでいる。
つまり、クロージャを囲む関数内の変数をつかんでいる
だから、クロージャ内でreturn すれば、外側の関数も抜けて、
関数内の変数なども、解放した方が良いと考えた
Groovy の挙動とは違うかも

867:デフォルトの名無しさん
18/07/01 02:11:27.56 FQlsc9Xo.net
>>848
return だけだったら納得できるんだが、next や break の扱いがぐちゃぐちゃなのはどう説明するの?

868:デフォルトの名無しさん
18/07/01 02:52:24.35 QlwNZjji.net
>>847
関数型でもないウンコ言語がクロージャの話に入ってくんな
何の参考にもならんわ

869:デフォルトの名無しさん
18/07/01 03:04:39.74 3SrV2o5x.net
>>837
> まさか行き当たりばったりってことはないよね笑
その、まさかだぞ。
楽しくプログラミング()した結果が仕様だ文句あるか!w

870:844
18/07/01 08:32:31.95 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:デフォルトの名無しさん
18/07/01 08:58:20.58 mO0FHij0.net
すみませんがゴミの話は当該スレでお願いします

873:デフォルトの名無しさん
18/07/01 09:01:20.31 TobyyIDd.net
これ他の言語にも影響あるだろ
continueはバグの原因になるとか、gotoの方がマシとか言われる

874:デフォルトの名無しさん
18/07/01 09:18:30.80 5prQoZWD.net
>>850
えー?closureが関数型特有な概念だと思ってるわけー?
面白いね、それ。本当は純粋関数型ではclosureはさほど重要ではないのだけど。
どうしてclosureが関数型固有な概念だと思ったのか、説明してごらん?

875:デフォルトの名無しさん
18/07/01 09:22:52.78 TobyyIDd.net
>>855
おまえが自分で説明しないで人に説明させようとするからだよ
もし関数型の人が説明したら関数型の概念になるに決まってるだろ

876:デフォルトの名無しさん
18/07/01 09:23:49.76 FQlsc9Xo.net
>>852
あなたが closure だからと主張する、block は 952の挙動だが Proc では break は例外吐くらしいけど何で?
# 言っちゃ悪いが、closure は定義した時点での環境を基準に動作が普通だと思うんで、
# ループ外で定義されているならば next/break は一律例外吐くで無いと一貫性がないようにしか見えん。

877:デフォルトの名無しさん
18/07/01 09:24:49.31 FQlsc9Xo.net
>>857
すまん、「block は >>852の挙動」だな。

878:デフォルトの名無しさん
18/07/01 09:25:25.69 89p34iy1.net
このbreakとnextは並列コレクションで困る気はする

879:デフォルトの名無しさん
18/07/01 10:22:00.59 5prQoZWD.net
>>856
へー、技術のベースになる概念が、関数型の人が説明したら別物になるのかー
おもしろいねークスクス

880:デフォルトの名無しさん
18/07/01 10:23:24.47 5prQoZWD.net
>>856
で、関数型の人って誰?ばか?

881:デフォルトの名無しさん
18/07/01 10:45:16.40 QlwNZjji.net
Smalltalkの人たちはScalaやRustのtraitsに対して、オリジナルのSmalltalkと違うからダメだ!あれは別物!って批判するくせに
他の言語より後に実装したclosureについては独自仕様でも問題ない、技術ベースで語れっておかしくね?
ダブスタも甚だしいだろ

882:デフォルトの名無しさん
18/07/01 10:48:49.50 TobyyIDd.net
忖度とか伝言ゲームとかいう問題を織り込むまでがITです

883:デフォルトの名無しさん
18/07/01 10:59:11.30 uHA6sqOS.net
>>844はクロージャなら当然あるべき姿としてRubyのProcを語ってるからなぁ
それに対して>>847がヒント:Smalltalkって言ってるのは
要するにSmalltalkがクロージャのあるべき姿を体現してるって言ってるワケで、そりゃ傲慢すぎる
ただの一例としてSmalltalkのような仕様もあるって言うなら批判されないのに

884:デフォルトの名無しさん
18/07/01 11:00:03.93 7m3QggRW.net
クロージャの方が自身の関数スコープを持ってる印象だな
メジャーな中では Java, C#, C++, JavaScript, Obj-C, Swift などがそうだし
Rubyのラムダも上記と概ね同じに見える
ブロックは文字通りコードの塊と考えるとreturnやbreakについて妥当な動きに見える
Proc.newは挙動がキモい
↓によるとdo…endも挙動が違うらしいから >>837 のリンク先は4種で比較した方がいいかもな
URLリンク(qiita.com)

885:デフォルトの名無しさん
18/07/01 11:08:34.39 7m3QggRW.net
中身読んだら結合度の差だったので >>865 の最後2行は撤回する

886:デフォルトの名無しさん
18/07/01 11:16:48.58 5prQoZWD.net
>>864
妄想が激しいね。
ヒント:Smalltalkっていうのは、Rubyのそのヘンテコな仕様はSmalltalk由来だということなんだけど。
お大事にね

887:デフォルトの名無しさん
18/07/01 11:19:42.69 5prQoZWD.net
>>862
きみ、結局はSmalltalkでのクロージャからのreturnの仕様を調べることすらしないで
思い込みだけで騒いでるでしょ?
そういうのを「バカ」って言うんだよ

888:857
18/07/01 11:25:18.69 usR85dqh.net
>>867
smalltalkには break や continue (next) はないだろう?
ruby のは、closure に break や next を持ち込んでおかしくなっているように見えるよ。

889:デフォルトの名無しさん
18/07/01 11:43:42.24 fENDu7uP.net
Smalltalkの仕様がどうであれ、それがRubyの仕様を正当化すると思ってなされているレス(>>847だの>>867だの)は
結局Smalltalkの仕様に権威がある、またはRubyがSmalltalkを模倣するだけの理由があるのを前提にしているわけで
傲慢という批判は妥当に思うな

890:デフォルトの名無しさん
18/07/01 11:52:10.11 tX8JlSDC.net
気持ち悪い挙動だと言いがかりをつける気満々のレスに対して
smalltalk でもそうだった昔からある挙動ですよと指摘しているだけでは。
なにも知らなければ議論はできない
といって smalltalk の知識は前提にしていいのかは疑問
とはいえやはり共通の知識がないと議論は無理だし難しいわ

891:デフォルトの名無しさん
18/07/01 12:46:18.88 fENDu7uP.net
Smalltalkを前提にすることに意味はない(Rubyと周辺状況が違いすぎるのに何故真似た?)というのが
すぐ直前の議論では

892:デフォルトの名無しさん
18/07/01 12:59:23.83 gbNzWOju.net
俺を批判するのはSmalltalkを批判するのと同じだっていうことの意味は一応ある
自分自身を守るためではなく仲間を守るためという大義名分ができる

893:デフォルトの名無しさん
18/07/01 13:03:25.38 QlwNZjji.net
滅びた言語のヘンテコな機能を真似た言語が
やっぱりヘンテコになって滅びつつある
それだけの話ではある

894:デフォルトの名無しさん
18/07/01 13:04:20.30 yp7ufL3+.net
もうRubyの話はやめよう
次世代でも現世代でもないし

895:デフォルトの名無しさん
18/07/01 13:25:35.07 5wbqPO3N.net
なんで?
rubyは触ってないけど、rubykaigiとかで盛り上がってる様子見てると、楽しそうだし盛り上がってる感あるけど。未だ現役じゃないの?
スタートアップがrails採用するイメージって、まだ古くないよね?
最近だとrailsのボトルネック部分をgoで書く話が面白かった。

896:デフォルトの名無しさん
18/07/01 13:42:13.57 k6Y+DK56.net
perlの後継になりそこなったし
海外の人気がかなり落ちてるからね
rails用言語で終わってしまった感

897:デフォルトの名無しさん
18/07/01 13:43:43.18 3SrV2o5x.net
railsにincludedされてるバッテリーだろ?www

898:デフォルトの名無しさん
18/07/01 13:57:23.22 5wbqPO3N.net
つーかrails言語で別に良くないか?
言語なんて所詮はツールなんだから。
bashでwebサービス作るやつはいないだろ?

899:デフォルトの名無しさん
18/07/01 14:06:40.12 gbNzWOju.net
目的と結果を比較されるから
目的はこれだったのに結果はこれなのか?と
目的などどうでもいいと断言できる人は少ない

900:デフォルトの名無しさん
18/07/01 15:32:54.19 5prQoZWD.net
>>870
そこまで妄想が激しいようだと治療は困難だね。
でもあきらめないで、先生からもらった薬をちゃんと飲むようにね。
でないと他人様に迷惑かけることになるから。
やくそくだよ。

901:デフォルトの名無しさん
18/07/01 15:34:06.79 2efWQwxv.net
薬? お薬の幻覚でも見えてんのか?

902:デフォルトの名無しさん
18/07/01 15:40:22.85 QlwNZjji.net
Smalltalkという完全に終わった言語に執着してるんだから
まあフツーに頭がおかしいんでしょう
薬飲めも普段自分が言われてるんだろうね

903:デフォルトの名無しさん
18/07/01 15:55:04.17 2efWQwxv.net
自分が言われたら嫌なことを人に言うって奴かw

904:デフォルトの名無しさん
18/07/01 16:07:47.75 rXvfzJkI.net
ここでも見てとれるようにRubyは言語と言うより信者がクソ。
他言語のスレで聞いてもないのにルビーデワールビーデワー宣伝必死過ぎてウザい。
Ruby自体は悪くない。

905:デフォルトの名無しさん
18/07/01 16:15:05.64 lS5AQxvk.net
>>885
同感

906:デフォルトの名無しさん
18/07/01 16:33:48.43 gbNzWOju.net
陰謀論みたいに、お前が世界を支配してるんだろって言われるのは嫌じゃないが

907:デフォルトの名無しさん
18/07/01 17:13:50.39 fENDu7uP.net
>>873
今回のSmalltalkは道連れ的に名前出されただけでむしろ被害者
変なのが混ざってないSmalltalk内ではちゃんと一貫した挙動のはずだろ?知らんけど

908:デフォルトの名無しさん
18/07/01 17:30:42.04 009IG+wv.net
>>885
よくわからんのだけど
Rubyでは~って意見が出たらそんなに嫌なん?w
俺なら他の言語でどうって意見はむしろ感心があるが

909:デフォルトの名無しさん
18/07/01 17:32:52.47 i54g35bC.net
>>889
同感

910:デフォルトの名無しさん
18/07/01 17:49:59.60 5prQoZWD.net
>>883
Smalltalkを知っている != Smalltalk信者
ちゃんとお薬のんでる?
勝手にやめちゃいけないよ?

911:857
18/07/01 18:07:48.02 FQlsc9Xo.net
>>891
なあ、smalltalk と ruby に詳しいんだったら、意味の無い罵倒を止めて、 >>869 の答えてくれない?

912:デフォルトの名無しさん
18/07/01 18:22:04.92 IY9E+BQR.net
Perlさん何で死んでもうたん?

913:デフォルトの名無しさん
18/07/01 18:23:52.18 mbUvUy2m.net
Perlはワンライナーとして生き残ったのさ

914:デフォルトの名無しさん
18/07/01 19:07:07.35 QlwNZjji.net
>>891
まあお前がSmalltalk信者かどうかは見た人間が判断するから気にするな。病気が進行するぞ
ただ客観的な事実としてSmalltalkは完全なオワコンw
このスレでは場違いすぎて引くレベル

915:デフォルトの名無しさん
18/07/01 19:34:13.12 5wbqPO3N.net
>>894
わかる。awkよりも使い勝手はいい。正規表現処理ツールとして有り。ふとnode.jsでもいい気がしたけど

916:デフォルトの名無しさん
18/07/01 19:46:03.96 x/qhOfWF.net
スレタイ読まずに書き込んでる奴らなんなの?

917:デフォルトの名無しさん
18/07/01 19:51:05.54 e+fGbKAY.net
>>862
> Smalltalkの人たちはScalaやRustのtraitsに対して、オリジナルのSmalltalkと違うからダメだ!あれは別物!って批判する
それは「批判」ではなく、理解や運用の混乱を避けるための「区別」の必要性を訴えているのです。
「オブジェクト指向」もそうで、Smalltalkが重きを置く「決定の遅延のためのメッセージングのオブジェクト指向」と
C++以降の「抽象データ型をクラス(またはそれに準ずるエンティティ)で実現するオブジェクト指向」とは区別すべきと一緒です。
批判があるとすればそれは、本質的に違うものに後から同じ名前を付けて混乱を招いていることに対するものでしょうね。

918:デフォルトの名無しさん
18/07/01 20:00:26.61 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:デフォルトの名無しさん
18/07/01 20:01:01.72 gbNzWOju.net
>>897
pythonやrubyで型を宣言させる話だったな
型を宣言すれば次世代に行けるらしい

921:857
18/07/01 21:20:45.24 FQlsc9Xo.net
>>900
かといって、スレタイの TypeScript だって、 Python + 型チェック とあんまり変わらなくないか?
#まあ、TypeScript は次世代じゃないという主張はありだけど

922:デフォルトの名無しさん
18/07/01 21:23:13.47 mO0FHij0.net
掲示板の書き込みに#で補足コメントするスタイルはキモすぎる

923:デフォルトの名無しさん
18/07/01 21:23:34.86 8lWKFGMK.net
どんな言語も最初は簡単で使いやすいと言う。
しかし、注目されて実用レベルになると言語仕様が破綻してくる。
お前さんが使っている次世代言語もいつのまにか消えてなくなるさ

924:デフォルトの名無しさん
18/07/01 21:28:36.04 jMta/5/n.net
とりあえず動的言語嫌いだから次世代に遺さなくていいよ

925:デフォルトの名無しさん
18/07/01 22:10:15.50 iGjgOveK.net
せやな
// 型なし糞言語は死ね

926:デフォルトの名無しさん
18/07/01 22:47:05.58 IY9E+BQR.net
米は//より#のが好きです
//や’はスカスカし過ぎててなんか

927:デフォルトの名無しさん
18/07/01 23:13:47.55 CF9fODYJ.net
まーたsmalltalker来てんのか。草

928:デフォルトの名無しさん
18/07/01 23:27:37.29 eYdB7t9V.net
>>906
俺逆だ
#の目にうるさいこと極まりない
コメントですらバグったのかと思う

929:デフォルトの名無しさん
18/07/01 23:41:20.04 YPIrazbz.net


930:デフォルトの名無しさん
18/07/02 02:35:06.08 1yNW4Sj0.net
スクリプト言語はshebangあるから#じゃないとうれしくないな
コンパイル言語は好きにすればええ

931:デフォルトの名無しさん
18/07/02 03:45:57.45 sK89Ta1p.net
>>876
Rubykaigiは井の中の蛙の見本市だから
Ruby最強他言語バーカって精神異常者の集まり
そら宗教の本山みたいなもんだから盛り上がり自体はあるが
技術的にはもう終わってる

932:844
18/07/02 06:42:05.84 9wGdj7CA.net
>>857
Ruby のProc, block はクロージャで、
Procは、blockを変数に入れて、持ち運んで、後で呼べるようにしたもの
その際、block内でbreak を呼ぶと、ループ処理が完遂せず、失敗とみなしたのだろう
ラムダは後に作られたから、return で値を返すようにした
結局、Proc, block、ラムダ、クラス・モジュールも、
スコープチェーンという単一の概念から出来ている
自分の1つ外側のスコープを指す、ポインタを持っている

933:デフォルトの名無しさん
18/07/02 09:01:43.20 Ovw/GWMA.net
>>911
すげー思い込み強すぎ。中にはそういう人もいるかもだけど多数派じゃないだろ。
原理主義者怖すぎ。あんまり偏りすぎて人刺したりするなよ。

934:デフォルトの名無しさん
18/07/02 09:17:09.45 BcUDQh/y.net
> Procは、blockを変数に入れて、持ち運んで、後で呼べるようにしたもの
これしょうもない設計だよな。
jsとかだったらコールバック関数で統一的に扱えてるところだろ。
こんな本質じゃない言語機能


935:ムダに複雑にして何やってんだか。 わざとパズル難しくして解いて「楽しい」こんな言語かな?



936:857
18/07/02 09:49:51.97 OVGUyhuB.net
>>912
あなたがrubyを好きなのはよくわかる、が
>結局、Proc, block、ラムダ、クラス・モジュールも、
>スコープチェーンという単一の概念から出来ている
>
>自分の1つ外側のスコープを指す、ポインタを持っている
単一の概念にするのは失敗してるんだ
理由は簡単、blockにbreakがあるせい。breakの飛び先は、通常のlexcal scope では解決できない。飛び先は定義時と関係ない、後で呼び出される each などのblockを呼び出す関数内に有るからな
他の内部イテレータ使う言語は、諦めて例外やcall/ccなどの大域ジャンプでエミュすることにしてる。
rubyは頑張ってなんとかしようとして、結局統一出来ず、でも似てるから使用が困惑する結果に

937:デフォルトの名無しさん
18/07/02 10:18:33.33 nMhGW4st.net
>>913
このレスの方が怖い

938:デフォルトの名無しさん
18/07/02 10:41:05.97 XQH9Y7UX.net
連想配列[名前] = ラムダ
こうして連想配列と代入とラムダで統一すればclassは本質ではないのに
統一を阻止して、classを次世代に遺そうとするのはRubyもECMAScriptも同じ穴の狢

939:デフォルトの名無しさん
18/07/02 10:47:23.08 j4QNCpln.net
まだ80年代の技術に追いつけないのか、次世代言語wスレの住民は…ばか?

940:デフォルトの名無しさん
18/07/02 10:50:09.56 FaPINm7E.net
Smalltalkとか言うカビ臭いクソ言語について語ってるやつの頭の中だけ80年代で止まってるけど
他の人は普通に話ししてると思うけど

941:デフォルトの名無しさん
18/07/02 13:03:54.58 EdW/pwjk.net
>>913
原理主義者怖すぎ、については、
そっくりそのままRubyistにお返しするわ

942:デフォルトの名無しさん
18/07/02 19:19:13.27 NAI8Vih0.net
建て前上だけでもclassを消したら次世代感あると、思います

943:デフォルトの名無しさん
18/07/02 19:39:32.22 NyO7x8zO.net
>>921
ハスケルばかにしてる?

944:デフォルトの名無しさん
18/07/02 19:42:13.22 HeCnpISr.net
アンチMicrosoftを掲げる以上、Rubyを使うべきだろね。

945:デフォルトの名無しさん
18/07/02 20:33:18.53 9WbprnCr.net
クロージャの問題は結局変数の評価タイミングが分かりづらくなりやすいってところ。
common lispはその点わかりやすい。

946:デフォルトの名無しさん
18/07/02 20:47:10.91 HeCnpISr.net
あちらこちらに分身がいて、どれかを書き換えると他に影響してしまう。
そんな混とんとした世界で生き抜くにはいろいろなものが必要になる。
つまり、コピーとムーブが一番楽。

947:デフォルトの名無しさん
18/07/02 20:47:29.49 nj5wv8+r.net
>>920
goとかjsとかparser用意しないとast作れないところを見るとlispが次世代感あるように感じてきた

948:デフォルトの名無しさん
18/07/02 20:50:20.50 lajLSwSc.net
>>917>>921
やはりここはLuaの出番か

949:デフォルトの名無しさん
18/07/02 21:36:57.09 F0SAJ301.net
luaはnginxと組みわせて使う

950:デフォルトの名無しさん
18/07/02 21:49:01.21 TJD/4INa.net
>>926
astそのもの書いてるだけじゃん。
靴に足を合わせる理屈は御免です。

951:デフォルトの名無しさん
18/07/02 21:51:14.33 vpeKf2Dq.net
Lispはいいぞ

952:デフォルトの名無しさん
18/07/02 21:58:33.96 SHnfHk0h.net
>>920
社会に出ろよ。

953:デフォルトの名無しさん
18/07/02 21:59:57.72 JnEvidvy.net
>>920
ドカタの社会に出ろよ
ドカタの社会に出てないの丸わかりレベル低すぎ

954:デフォルトの名無しさん
18/07/02 22:00:32.20 9WbprnCr.net
algol系のシンタックスに合わせてる方が無理がある。

955:デフォルトの名無しさん
18/07/02 22:06:32.06 3279IT8S.net
久々に社会に出てみたら、
青春を捧げたRubyがすっかりオワコンになってて哀しいです(^q^)

956:デフォルトの名無しさん
18/07/02 22:27:57.20 sXgZmTLa.net
インターンってRubyばっかだな
素人学生にRuby書かせるとか頭おかしなるで
正気か?どうゆうロジックなんだ?

957:デフォルトの名無しさん
18/07/02 22:42:00.11 F0SAJ301.net
世代的にrubyで育ったリーダが多いからじゃない
外資ではgoとかpythonが多い
メガネのヒョロガリが写真に写っていてRoRエンジニアを募集してたらまずハズレだ

958:デフォルトの名無しさん
18/07/03 00:16:39.10 ulFfuTSn.net
何故breakにしたんだろねRuby。returnじゃ駄目だった理由が分からない

959:844
18/07/03 01:06:30.72 LtnxPY8P.net
Ruby では、break, return、例外も、単一の同じ仕組みを使っている。
コールスタックをさかのぼるポインタ。
つまり、どこから呼ばれて、どこへ戻るか
breakは、1つ外側のスコープへ戻る。
returnは、最も外側のスコープを抜ける
(レキシカル)スコープチェーンと、コールスタックの2大柱。
実装系・VM を作るには、この本がおすすめ
Rubyのしくみ、2014
Rubyの実装系、Ruby1.9のRuby仮想マシンの内部の仕組み

960:デフォルトの名無しさん
18/07/03 01:19:37.85 rBmEiF9u.net
いいえ、私は遠慮しておきます

961:デフォルトの名無しさん
18/07/03 01:55:27.47 gSJ8jPZs.net
旧世代言語のネタですっかり過疎ってしまった

962:デフォルトの名無しさん
18/07/03 03:04:30.31 V6NmESsv.net
RailsってC#でいう.Netみたいなもん?

963:デフォルトの名無しさん
18/07/03 03:29:58.10 LeNHWyDL.net
>>928
redisも便利

964:デフォルトの名無しさん
18/07/03 06:19:51.17 ZNPbo2Ku.net
相手が望んでいない解説をするときは、それがスレの内容として意味があるかを基準にするべき
単にこの言語ではこうなっている(中身はさして珍しくもない)というだけならやめとけ。余計嫌われる

965:デフォルトの名無しさん
18/07/03 06:53:27.01 MH5+eiAJ.net
スレタイに並んでいる言語だとtsは張り合う相手いないから語るようなことないよな
ネイティブアプリ向けも張り合う相手なし
領域が被るのはサーバサイドにおけるrust,swift,kotkin nativeくらい?

966:デフォルトの名無しさん
18/07/03 07:30:13.14 oQIvqi2O.net
>>925
だから次世代言語って何よ?
スレタイに沿って話せって言うけど、次世代言語がなにかも曖昧で

967:デフォルトの名無しさん
18/07/03 08:27:38.25 CN6nXbG2.net
旧世代の言語の(しがらみとかで)回避できなかった欠点を既存機能を損なうことなくうまく克服し
次世代を担うべく存在する言語だよ
C++のメモリリークを所有権で回避した「Rust」
Obj-Cのnil禍をオプショナル型で回避した「Swift」
JSの実行時エラーを静的型で回避した「TS」
Rubyはこの20年自らの欠点をちょこちょこ直す以外なにもやっていない

968:デフォルトの名無しさん
18/07/03 08:31:16.08 gQdpXUBz.net
TSは別格すぎる
さすがにもう現世代扱いでいいだろ

969:857
18/07/03 09:12:56.01 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:デフォルトの名無しさん
18/07/03 09:15:15.62 cg5PW7i9.net
swiftが次世代だってぷぷ
めちゃくちゃclassicなんだけど

972:デフォルトの名無しさん
18/07/03 09:26:00.07 N+3lR6RH.net
>>947
msが怒涛の開発力で一気に使いやすくしたよなぁ。
しかもEditorとセットで。
しかもlspを考えてどのEditorからでも補完が効くようにしたりとか。
まだ開発スピードが止まる気配がないけど、
他に何を開発する余地があるんだろ。

973:デフォルトの名無しさん
18/07/03 09:33:01.11 TTM9k7xe.net
世代の交代を駆動するのが枯れた技術であってもいいんだよ
まあ仕様の腐った言語しか眼中にない人間には理解できんだろうけどね

974:デフォルトの名無しさん
18/07/03 10:15:55.62 CZ1ZSS89.net
開発元が腐ってるRustとTypescript
これは次世代とは言えまい
これが覇権取ったらディストピア一直線

975:デフォルトの名無しさん
18/07/03 10:25:54.60 CZ1ZSS89.net
真に次世代の言語はNim
今までの言語の焼き直しに留まらない書きやすさと実行速度を両立した言語で
開発元もモジラとかMSみたいな邪悪な企業じゃない

976:デフォルトの名無しさん
18/07/03 10:44:28.82 pQbF/VH/.net
単なるCのソースコードジェネレータじゃん。
nimが速いんじゃなくてCが速いの。Cのソースコード吐いてCのソースコードコンパイルしてるんだから。
coffeescript()なんかのaltjsと同じようなもんだね笑

977:デフォルトの名無しさん
18/07/03 11:31:15.91 jh9a6Llj.net
高度なシンタックスシュガーだからね
でもCよりは確実に使いやすいしいいと思うよ

978:デフォルトの名無しさん
18/07/03 12:11:26.83 H2PJV6CA.net
>>941
c#で言うとasp.netみたいなもの。
c#ユーザだとしてもEFとビュー関数が無いと何もできない低レベルな人間。

979:デフォルトの名無しさん
18/07/03 12:13:14.64 H2PJV6CA.net
ついにMSだけじゃなくてMozillaも槍玉にあげ始めたのか。

980:デフォルトの名無しさん
18/07/03 12:43:16.36 4OdwMirb.net
Rubyがブロック引数を組み込みの制御構文のように見せたかったというのは旧世代の発想としてはよくわかるけど、
第一級関数や高階関数が十分に一般的なものになった現代においては組み込みのループのように見せるという発想自体がもう時代にあってないと思うわ
むしろ次世代言語は組み込みの制御構文なんか撤廃して関数に寄せればいいと思うんだが、
なかなか手続きベースの言語でforで捨てるものは現れないね

981:デフォルトの名無しさん
18/07/03 12:55:23.66 onhdh/0N.net
forとかを単なる関数として提供してる言語いくつかなかった?

982:デフォルトの名無しさん
18/07/03 13:05:27.52 TTM9k7xe.net
>>958
> 制御構文なんか撤廃して関数に寄せればいい
具体的には?

983:デフォルトの名無しさん
18/07/03 13:15:41.14 ZYDLmzQl.net
>>958
手続き型言語と呼んでいいのかわからんが、tclなら、制御構造は全て「コマンド」扱いで、BNFとか笑っちゃうぐらいシンプル

984:デフォルトの名無しさん
18/07/03 13:45:16.08 taCiD/Gz.net
>>958
条件分岐と繰り返しはプログラムの基本構造なわけだが
逆に関数とかサブルーチンとかは基本構造に入ってないわけだが
お前は、超天才かドアホかのどちらかだなw

985:デフォルトの名無しさん
18/07/03 13:58:16.98 ZNPbo2Ku.net
>>958
俺は味方だよヽ(´Д` )

986:デフォルトの名無しさん
18/07/03 14:53:19.41 78ysfJXf.net
俺は勝った方の味方するよ。
最初から味方だった、俺のおかげで勝てたみたいな感じで。

987:デフォルトの名無しさん
18/07/03 15:16:48.85 U5Zq1zkR.net
第一級関数というやつ
ほとんどの場合意味がわかってないか
勘違いしてるよな
クロージャーっぽく書けたら第一級ってわけじゃないから

988:デフォルトの名無しさん
18/07/03 16:26:35.93 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:デフォルトの名無しさん
18/07/03 18:34:43.36 iZrusKUj.net
戯言とわかりつつ書き込むのか……(困惑)

990:デフォルトの名無しさん
18/07/03 18:36:16.17 TTM9k7xe.net
>>966
空気読めない老人が上から目線でしゃしゃり出てくるのほんとやめてほしいわ
だいたいALGOL68を持ってこようがSmalltalk-80を持ってこようが場違いなのはさして変わらんよ
そもそも誰もクロージャーの本来も一般論も論じてないとか、すでにその話は終了しているとか読んでわからんのかね

991:デフォルトの名無しさん
18/07/03 18:53:34.68 kPEfeblV.net
ボクちゃんの大好きなrubyがディスられて怒り心頭のようだねw

992:デフォルトの名無しさん
18/07/03 18:55:02.78 A246qspJ.net
URLリンク(i.imgur.com)

993:デフォルトの名無しさん
18/07/03 19:00:25.45 lz4xpNmJ.net
>>953
NimはRustのような安全性がないからダメだわ
URLリンク(github.com)

994:デフォルトの名無しさん
18/07/03 19:10:03.39 Y44wiyUJ.net
>>970
自分の思いを述べてるんだから何もしていなくはない
そういう性格だから嫌われるんじゃない
こいつが嫌いな性格を一般化してるだけだ

995:デフォルトの名無しさん
18/07/03 19:11:22.15 iZrusKUj.net
RustはRustで安全のために犠牲を払いすぎ
そこまで犠牲を払わないNimという選択肢はダメではない

996:デフォルトの名無しさん
18/07/03 19:12:12.22 1eNrhjxU.net
>>972
うわあ……

997:デフォルトの名無しさん
18/07/03 19:15:29.04 Y44wiyUJ.net
>>974
うわぁってなんやねん
空気読むことばっか押し付けるからお前んとこのプロジェクト炎上してるんや

998:デフォルトの名無しさん
18/07/03 19:15:31.69 A246qspJ.net
犠牲にしてるかな?どうせやらなきゃいけないことを強制してるだけでわ

999:デフォルトの名無しさん
18/07/03 19:23:30.28 2atZvleV.net
>>972
スレに沿った議論をしない人は何もしてないと同じなんだよ
お仕事だってそうでしょう

1000:デフォルトの名無しさん
18/07/03 19:26:31.83 Y44wiyUJ.net
ようは後付けで人がついてくりゃリーダシップそのものじゃないか

1001:デフォルトの名無しさん
18/07/03 19:32:14.46 2DeV5pvZ.net
スレに沿った議論といっても誰も次世代言語の話なんてしてないしなw

1002:857
18/07/03 19:33:36.60 0xlHwX4q.net
Nim は書きやすさと速度、Rust は安全性と速度、
に注力したイメージなんだが、安全性と速度に比べて、書きやすさと速度って一つの言語でカバーする必要性が薄いように思うんだよな。
従来の「スクリプト言語+速度が必要なところだけC/C++」に比べて、どうしてもNimが良いっていう場面ある?

1003:デフォルトの名無しさん
18/07/03 19:43:18.67 MH5+eiAJ.net
>>978
えぇっ
>>979
途中までしてたじゃん
話につい来れなかったルビーィストとおじいちゃんたちが突然昔話を始めるまでは

1004:デフォルトの名無しさん
18/07/03 19:53:46.17 Y44wiyUJ.net
>>981
もうとっくに日本は移民国家だ
自分が雰囲気の中心にいるんだって顔してるだけで
さしたる理由もなく他人をDisれると思うなよ

昔の次世代言語の話したっていいじゃない

1005:デフォルトの名無しさん
18/07/03 20:01:32.10 dPHNxxkk.net
>>976
木ですら実装結構しんどいのは犠牲ではなかった……?
Nimならすぐよ

1006:デフォルトの名無しさん
18/07/03 20:14:55.16 T5T8ZL2Z.net
>>980
書きやすくて速いとか最強やろ
スクリプト+Cとかめんどくさいんじゃ

1007:デフォルトの名無しさん
18/07/03 20:38:32.57 zqxfY0jY.net
>>966
Smalltalkのブロックはselfと^の挙動がクロージャとして完全にウンコなので
こんなものを基本形として議論のベースにしたくないです
Schemeの方が1万倍マシです

1008:デフォルトの名無しさん
18/07/03 20:41:29.96 MH5+eiAJ.net
>>983
その木は安全なの?
個人的には木構造実装したりしないから別に困ってないけど

1009:デフォルトの名無しさん
18/07/03 21:17:11.31 4+jY1mlb.net
Nimは一体いつになったら1.0をリリースするんですかね?

1010:デフォルトの名無しさん
18/07/03 21:31:35.15 XAeheViZ.net
Nim製組み込み言語Min
URLリンク(min-lang.org)
いいんだけどさ、なんで文法Lisp風にしたし。
ホスト言語より書きにくい組み込み言語ってなんやねん

1011:デフォルトの名無しさん
18/07/03 22:03:10.71 ZNPbo2Ku.net
Lispに見えて実はForth風では
処理系のサイズを小さくまとめるのが目的みたいだしいいんじゃないかな。どうせ個人の試作言語だろうし

1012:デフォルトの名無しさん
18/07/03 22:16:17.34 T5T8ZL2Z.net
Lispが書きにくい……?
URLリンク(i.imgur.com)

1013:デフォルトの名無しさん
18/07/03 22:25:50.65 s9qpeMkn.net
Lispは脳がパーサになってる人向け

1014:デフォルトの名無しさん
18/07/03 22:27:10.82 2DeV5pvZ.net
いうてもc++の文法なら自分でパースした方がマシだろ。

1015:デフォルトの名無しさん
18/07/03 22:28:51.19 OApKU83S.net
factorなんか0.97から4年も音沙汰なしだぞ

1016:デフォルトの名無しさん
18/07/03 23:50:32.40 T5T8ZL2Z.net
安全だからRustは良い←わかる
安全でないからNimはいらない。書きやすさとかどうでも良い←それあなたの感想ですよね

1017:デフォルトの名無しさん
18/07/04 00:39:03.37 SVer28O9.net
>>993
音沙汰なしではないよ、最終更新は3日前
URLリンク(github.com)

1018:デフォルトの名無しさん
18/07/04 00:44:54.31 SVer28O9.net
書きやすくても保守性が高くなるわけじゃないからな、
自分で書いて自分一人だけで保守するならいいんじゃないかね

1019:デフォルトの名無しさん
18/07/04 00:55:14.74 M17EkYCN.net
そうそう、Rustは可読性が低く保守性も低い

1020:デフォルトの名無しさん
18/07/04 01:36:19.71 mmoPrDKP.net
>>997
いやいや、Rustは可読性も保守性も高いでしょ
書く前にある程度の考える必要があるだけ
むしろ思ったことすぐに書けちゃう言語の方が
可読性も保守性も低いでしょ

1021:デフォルトの名無しさん
18/07/04 05:38:29.74 XdTckET+.net
Rustって名前で損してる気がする。

1022:デフォルトの名無しさん
18/07/04 05:39:21.37 XdTckET+.net
錆って何よ、触ったらヤバそうじゃんww

1023:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 30日 5時間 45分 54秒

1024:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch