次世代言語12 Go Rust Swift Kotlin TypeScript

■ このスレッドは過去ログ倉庫に格納されています
2018/07/04(水) 09:38:15.76ID:qg2ggPtj
スレタイ以外の言語もok

前スレ
次世代言語11[Rust Swift TypeScript Dart]
https://mevius.5ch.net/test/read.cgi/tech/1528037607/
2018/07/08(日) 18:30:37.28ID:rCN4avQt
あっ・・・フーン(察し)
2018/07/08(日) 19:47:45.35ID:QJH116yy
Jを憎みし者共
8175
垢版 |
2018/07/08(日) 21:11:56.23ID:NBiUl0PE
こういう風に聞くと大抵は黙るのなんなの?
こっちは純粋な興味で聞いてるのに
2018/07/08(日) 21:48:46.34ID:nVv0ZYUu
とうふさんはすこか?��‍♀
2018/07/08(日) 22:06:17.36ID:0enAxBm5
75に悪意があるとは思わないけれども
煽りとも取られかねない質問文で、後から「純粋な興味で聞いてるのに」ってのは
下手な物の尋ね方のテンプレにしてもいいのではってぐらいよく見る気がする
2018/07/08(日) 22:07:26.20ID:s5OgNQRX
煽ってから純粋な質問と言いなおす。記憶回路にバグがあるのだろう
85デフォルトの名無しさん
垢版 |
2018/07/08(日) 22:15:40.47ID:hHjcEx8J
君たち、私のチンポをしゃぶってみないかね
2018/07/08(日) 22:17:51.75ID:A+oeHsIU
技術板なんだから重要なのは内容
2018/07/08(日) 22:49:41.47ID:s5OgNQRX
内容が大事だと思っているなら煽らずに本当に純粋に聞けば良い。煽っておいて「大事なのは内容」などと言うのはダブルスタンダード
2018/07/08(日) 22:57:24.92ID:A+oeHsIU
>>87
勘違いしてるようだけど俺は75じゃないぞ
2018/07/08(日) 23:00:38.58ID:s5OgNQRX
>>88
何!? 勘違いさせおって。許せん
2018/07/08(日) 23:08:01.07ID:0enAxBm5
おまいらなんでこんな事には食いつきがいいんだよ
こっちは純粋な好意で気を遣って書いたつもりなのに
2018/07/08(日) 23:08:42.63ID:rCN4avQt
純粋ガイジ
2018/07/08(日) 23:10:36.63ID:s5OgNQRX
こんなことにはっていうけど、逆に何に食いつきが悪いと思ってるわけ?
2018/07/08(日) 23:10:58.63ID:eqhX0y9a
実際>>69>>72にとって古くさくない言語って何だったんだろうな
2018/07/09(月) 00:07:30.03ID:M/GPMU7W
純粋に言ってればなんでも答えてもらえると思うなよ。
2018/07/09(月) 00:15:55.56ID:uCPaSCaV
純粋に考えて、未だに型無し糞言語を崇めてる連中って馬鹿だと思うんだけどどう思う?
2018/07/09(月) 00:18:50.10ID:QE5s+I3Z
馬鹿だよ
2018/07/09(月) 01:31:19.58ID:t2m7hyzb
>>95
Smalltalkバカにしてんの?
2018/07/09(月) 08:07:15.29ID:lKdQESUF
>>97
バカにされているのはSmalltalkerだろ?
Smalktalkそれ自体には罪はないよ
99デフォルトの名無しさん
垢版 |
2018/07/09(月) 08:22:18.46ID:DDmVMIt1
rubyistとrubyの関係みたいなもんか
2018/07/09(月) 09:10:36.88ID:wsFssMnI
動的静的問わず型が弱くて扱い切れる人間は殆ど居ないからなぁ
話題の依存型も個人的には好きなんだけど対極的だし汎用プログラミングだと扱い切れなそう
2018/07/09(月) 11:15:38.26ID:m7D4XdEw
rubyにはなんであんなクズみたいなのばかり集まっちゃったんだろうな。ruby自信に詰みはないというのに
2018/07/09(月) 11:25:12.75ID:rKnQV5/G
当時のRailsの流行は頭の悪い人達のコンプレックスに支えられていたからだよ
英語わからない難しい要件わからない複雑なコーディングできない、でも俺はペチパーとは違う、という層に夢を見せた
2018/07/09(月) 11:44:42.26ID:KFrfmR/A
依存型がある言語はML族もしくはF#の軽量構文みたいなのが多いのはなんでなの?
C系のシンタックスだと何か不都合でもあるの?
2018/07/09(月) 11:48:21.62ID:a+N+/6A7
わざわざC系のシンタックスにする意味ある?
2018/07/09(月) 11:52:20.80ID:b/biyW6c
>>103
後の引数のpredicateが前の引数を参照するためにはカリー化されてると都合がいい
2018/07/09(月) 12:46:40.19ID:KFrfmR/A
>>104
C系の方が慣れてる人が多いでしょ?それだけである程度意味があると思うけど

>>105
正直何言ってるかよくわからないんだけど、依存型とカリー化って別に関係ないんじゃないの?
だって、依存型のあるATS2では関数宣言↓だけは何故かC(Golangっぽい?)シンタックスだよ
fn test(x: double, y: double): double
だから、ATS2はML族なのにカリー化しづらいよ
2018/07/09(月) 13:29:20.22ID:wsFssMnI
>>106
型について研究してる畑の人ではML系の方が多数派だからね
それは論理学数学から醸成されたのがML系だからってのもあるし、型についても扱いやすいシンタックスが既にあるML系とわざわざ型を扱うシンタックスを設計しなければいけないC系ベースどっちをまず採用するかってなったんじゃない?
知らんけど
2018/07/09(月) 13:40:36.06ID:XHrPXSC2
>>103
> 依存型がある言語はML族もしくはF#の軽量構文みたいなのが多いのはなんでなの?
> C系のシンタックスだと何か不都合でもあるの?

依存型や本来の多相型(polymorphism)[†]などは型理論の体系つまり高階の型付λ計算に関する論理体系に基づくので
プログラミング言語の型システムとして組み込む場合には同じくλ計算に基づくと関数プログラミング言語の枠組みとは親和性が良いが
Cなどのように変数の値を書き換える代入文や代入演算を有する命令的プログラミング言語とは馴染まない。[‡]

だからそれらの型システムを導入した言語は既存の関数プログラミング言語の構文を流用するケースが多いのだろう。
なおStandard ML/CAML/OCaml/F#などeager evaluationを評価ルールとするいわゆるML系の関数プログラミング言語の一群は
ref型のように代入可能な変数を許すが、本格的な型理論に基づく型システムを組み込む場合はref型の類は除いたsublanguageに対して
行うのが普通。


[†]:本来の多相型とはGirardが竹内の基本予想に関する学位論文で最初に発見(あるいは発明)し
Reynoldsが独立に再発見した型の全称化・抽象化やMilnerが発見したlet-polymorphismなどを指す。
オブジェクト指向での継承に伴って使われるようになった“polymorphism”は
定義が不明確で勝手な拡大解釈が多いので「本来の」という修飾句の対象範囲からは除く。

[‡]:代入操作(代入文と代入演算の総称)を含む命令的プログラミング言語
(Cなどの手続き的プログラミング言語やオブジェクト指向プログラミング言語を纏めてこう呼ぶ)に
例えば多相型が馴染まない理由は代入操作可能な変数の型として多相型を許すことは
その変数について動的な型付けを許すことに他ならなくなる。

例で少し説明するが既知なら許してくれ。最も基本的な多相型 ∀t.t (どんな型でもOK)と宣言された変数 x を考える、つまり
  ∀t.t x;
この変数はどんな型の変数としても使えるので、これにint型の値 1 は代入できる、
  x = 1;
この後で式の中でこの変数の値を参照すると int型の値 1 が許される文脈以外ではエラーになる。

即ち、型理論における本来の多相型つまり静的な型付けでの多相型の概念は代入可能な変数では失われるということだ。
2018/07/09(月) 15:02:11.35ID:wwylxN3+
Cは関数()をカリー化しなかったが配列[]をカリー化した
2次元配列を1次元のように扱い、逆にスカラー (0次元) を1次元のように扱う

Cには共用体もあるからML系に似ている部分は多かった
2018/07/09(月) 16:22:10.83ID:wwylxN3+
オリジナルのC/C++はもう実質的に依存型と同じものを既に使いこなしてるな
依存型がまだないという自称C系ってのは本当はJava系と名乗るべきだな
2018/07/09(月) 16:59:58.68ID:a+N+/6A7
>>106
こいつCのシンタックスじゃないって理由でPython嫌ってそうw
2018/07/09(月) 17:03:28.03ID:b/biyW6c
>>106
カリー化されてると全部1引数の fun a -> aを使う(かもしれない)型 の形で済むだろ
ATS2がどうしてるかは知らん
2018/07/09(月) 18:16:53.67ID:KFrfmR/A
別にC以外のシンタックスを嫌ってる訳じゃないよ(てか、なんでそういう風に受けとる…?)
普及を考えれば新規ユーザーのハードルを下げるためにも少しくらい相性が悪かろうが
C系のシンタックスを採用した方が良いんじゃない?って思っただけ

どれだけ理論が優れていようが結局のところ広く普及した言語の大半
(C/C++, Java, C#, JavaScript, PHP...etc.)はC系のシンタックス
勿論C系以外で普及した言語もある(Python, Ruby...etc.)けど…数はそれほど多くない
Cのシンタックスを採用することに致命的な不都合があれば話は別だけど
そうでなければ1つくらい依存型ありの言語でC系の言語があったって良いんじゃない?

優れた理論が使われてる言語がそんなしようもない理由で普及しなかったら勿体ないじゃん
普及させるためにはそういう些細な部分は妥協したらどうだ?と思ったわけ
2018/07/09(月) 18:21:37.55ID:xuxQDn++
ALGOL舐めてるわけ?
2018/07/09(月) 18:22:24.25ID:IyYxWzMk
COBOL舐めてるわけ?
Fortran舐めてるわけ?
2018/07/09(月) 18:40:59.88ID:EEzdGAQJ
>>109
> Cは関数()をカリー化しなかったが配列[]をカリー化した

配列をカリー化の意味が分からんのだが
2018/07/09(月) 18:41:02.84ID:b/biyW6c
まともな推論を入れようとしたら>>108みたいな理由で式ベースになるんだから
C系に似せようとしたところで不格好で無駄に記述量も多いキメラができるだけだろ

ところでBASIC舐めてるわけ?
2018/07/09(月) 20:41:12.79ID:wwylxN3+
>>116
C系は分かりにくいという証拠だ
2018/07/09(月) 20:54:48.10ID:XHrPXSC2
>>114
> ALGOL舐めてるわけ?

AlgolとくにAlgol 60は実用性はともかく言語設計の観点からは非常に優れた言語だったが、命令的言語であるがゆえに型理論には馴染まない部分がある
今回の君のような内容ゼロの一言レスしてる暇があったら、ReynoldsやTennentの教科書・論文ぐらいは読んで勉強したらどうよ
2018/07/09(月) 21:22:54.54ID:KFrfmR/A
>>117
そうか?式指向でC系のシンタックスっていったら真っ先にRustが頭に浮かんだが
別に不格好とも無駄に記述量が多いとも感じないが…
そもそもC系の時点で何指向だろうが関数型と比べると記述量は少し多くなるものだし…
C系を式指向にしたところでそんなに変になるところは無いと思うんだが

別に全部C系にしろって言ってる訳じゃないんだ
依存型ありの言語にも1, 2個くらいC系があっても良いのにっ思ってるだけで…
2018/07/09(月) 21:40:53.57ID:wwylxN3+
現実は正しい
格付けの方が間違ってるんじゃねえか
リーマンショックみたいに
2018/07/09(月) 21:46:37.16ID:U1rzq4XN
あってもいいということはなくてもおかしくないという事だよ
言語設計者が依存型を普及させたいにしてもC系シンタックスを蛇蝎の如く嫌っている可能性だってある訳だ

そうでない君が依存型+C系シンタックスが普及に必要だと思うならそれは正しく良い意味で言い出しっぺの法則だね
2018/07/09(月) 21:56:18.25ID:b/biyW6c
>>120
rustは根っこのところは手続き型だからな
もっと式ベースを徹底していったらC系文法なんてどんどん余計なものになってくよ
2018/07/09(月) 22:16:18.81ID:wwylxN3+
式指向にしてブロックが値を返す
ブロックの中でreturnなどと書いたらブロックだけではなくメソッド全体が終了する

これSmalltalkとRubyでやったやつだ
2018/07/10(火) 02:09:51.97ID:PeZ34IEg
>>124
>ブロックの中でreturnなどと書いたらブロックだけではなくメソッド全体が終了する

他のほぼ全ての言語もそうじゃね?
2018/07/10(火) 06:52:59.20ID:TRoApVCG
やっとラムダが当たり前になったところだぞ
型理論の成果がプロダクト利用に広まるには時間がかかるんだよ
2018/07/10(火) 08:08:34.60ID:Iy+fy/d3
なんでJavaだけバージョンアップしなきゃだのセキュリティアップデートがどうの、大騒ぎしてんの?
JavaScriptなんて毎日のように新しいsyntaxぶち込まれてるし、
Kotlinがここまでアプデに振り回されてるのはあまり聞いたことない気がする

他でここまでセキュホがギャースカ言われてるのって、ポンコツペチプァとWordPressくらいじゃね?
Javaってそんな糞脆いの?
2018/07/10(火) 08:21:31.28ID:eM8UKooB
>>108
詳しい人から見てF*ってどうなん?良さそう?
2018/07/10(火) 08:36:07.00ID:zIs1qZZm
Fuck
2018/07/10(火) 09:24:02.51ID:xdf1qrhG
BrainF*ck
略してF*
2018/07/10(火) 09:24:32.49ID:yvVWnyin
>>127
エンプラで使われまくってるからわずかな変更にも大騒ぎするというだけ
履歴書がフォーマット通りじゃないとか、書類に印鑑がないとか、工場作業員の歩く幅が守られてないとか、そういうので騒ぐと同じ
132デフォルトの名無しさん
垢版 |
2018/07/10(火) 10:15:33.87ID:kqKjfHzH
javaというのは汲み取り式の便所みたいなもので、それに下水と近代的な便座を取り付けたのがkotlinだが、結局大便か小便かあるいはその両方をひり出す装置だということに気づかず、エレガントなクソの仕方について議論しているのが奴らだからな
いきなり外に出ろと言われても、オラクルにオツムを履かせてもらわないと不安で仕方ないんだよ
2018/07/10(火) 11:53:00.58ID:xdf1qrhG
オツムを履かせるとかいう新表現
2018/07/10(火) 12:01:54.29ID:zIs1qZZm
それだ!それが次世代言語だ!
2018/07/10(火) 12:37:24.33ID:63cSMW+s
意味が通ってて草
136デフォルトの名無しさん
垢版 |
2018/07/10(火) 15:09:37.59ID:3uxGmvBi
クソ。。
2018/07/10(火) 22:39:39.50ID:Iy+fy/d3
omutu {
 ブリッ()
} catch(unko) {
 throw unko
}
2018/07/10(火) 22:41:56.44ID:jmi6ebfp
>>133
人の頭をオムツ代わりにするとは、家畜人ヤプー的な変態だろう
139デフォルトの名無しさん
垢版 |
2018/07/11(水) 04:26:30.97ID:0IxMzPaq
まーた例外とnullの話してらあ
140デフォルトの名無しさん
垢版 |
2018/07/11(水) 08:37:33.70ID:dzRS/LEU
語るに足る次世代言語がrustしかないんだもの
2018/07/11(水) 08:40:25.65ID:6vT5O41L
そのRustを語るとコンパイル通せないアンチが沸くしな
2018/07/11(水) 13:10:48.44ID:VvjizHyD
GC以前の時代に戻る「次世代」言語ね
わらえる
2018/07/11(水) 13:22:55.58ID:IxirR2JR
GO言語は車輪の再発明ってやつじゃないですか?
2018/07/11(水) 13:39:57.82ID:6vT5O41L
GCが在るか無いかが判断基準なのね
わらえる
2018/07/11(水) 15:08:11.76ID:VhhHV/FL
GCがあるのが良い言語!GCが無いのは古い言語!
2018/07/11(水) 15:56:04.73ID:hs+tHtH9
メモリ制御しなきゃいけない世界が無くなることはよしんばあっても当分先なのでメモリ制御できる言語の更新はあった方が皆幸せになると思うんだけどな
147デフォルトの名無しさん
垢版 |
2018/07/11(水) 20:07:05.04ID:gDwkScTK
>>143
機能の整理って感じかなぁ。
148デフォルトの名無しさん
垢版 |
2018/07/11(水) 20:48:11.63ID:v5sVc8KX
車輪に怒られるだろ
せいぜい定年後の手作りログハウスだな
2018/07/11(水) 21:20:11.21ID:5vCD+XSP
GCはメモリには効くけどリソースの速やかな解放には効かないから
using文とかtry-with-resources文とか必要になってくる

SwiftやRustとかはメモリはGCほどお手軽では無いけど
リソースがメモリ管理と同じ流れに乗るからカメラとかのAPI扱うときはむしろ楽になる

一長一短なところはある
2018/07/11(水) 21:33:18.06ID:cyuAyH9j
実際問題ログハウスで十分なところを最近の言語はウインチェスターハウスにしちゃってる感じ。
151デフォルトの名無しさん
垢版 |
2018/07/11(水) 21:57:59.72ID:v5sVc8KX
ログハウスはお手軽という意味で例に出したんじゃないんですけど
2018/07/11(水) 22:05:01.91ID:vUSWO0TO
ログハウスで充分な仕事しかしてないのにウィンチェスターハウス作れる言語に目が向いてこんなスレに迷い込んでしまったの間違いでは
2018/07/11(水) 22:08:04.55ID:JQcRgwrO
ほんまに計算科学の次世代言語欲しいわ
Fortranさん仕様は悪く無いのにprint文書くだけで周りの計算結果変わったりしてコンパイラがガバガバすぎる
2018/07/11(水) 22:16:20.84ID:WXXvptbG
>>153
それはバグっているだけだと思いますが
2018/07/11(水) 22:22:20.98ID:JQcRgwrO
>>154
すぐバグるんだよな
gfortranで通ったし大丈夫だろって思ってたらifortでは通らなかったり、C++よりはるかにプログラマの責任が重いと思うわ
2018/07/12(木) 08:59:38.99ID:cbg7+Pwy
fortranは仕様より処理系依存の独自拡張が蔓延ってるイメージ
haskellも処理系拡張が基本みたいな所あるしそういうの好きになれない
2018/07/12(木) 09:20:58.29ID:xhh6gkTO
処理系が実質ひとつしかない言語だと処理系拡張が基本でも困らないけどね
2018/07/16(月) 12:21:20.76ID:plGwUTF3
次にはやる言語はどれ?
2018/07/16(月) 12:28:43.44ID:0TUA3bfL
       ____
     /⌒  ⌒\
   /( ●)  (●)\
  /::::::⌒(__人__)⌒::::: \   次世代言語でやるお!
  |     |r┬-|     |
  \      `ー'´     /
2018/07/16(月) 13:21:42.19ID:ON2hpD7+
MSも使ってるRustに決まってるだろ
ttp://jump.5ch.net/?https://www.reddit.com/r/rust/comments/8ub964/microsoft_announces_using_rust_to_build_some_of
2018/07/16(月) 14:19:28.91ID:yOmS9IaY
Rustはよい言語だ
2018/07/16(月) 17:26:19.10ID:sSti604i
rustはダメだな。
信者のウザさがhaskellと一緒だわ。
ああいう1機能を理解するのがめちゃくちゃ嬉しくなっちゃうような言語はダメだわ。
2018/07/16(月) 17:28:11.41ID:jXFFV3ML
信者のウザさとか言う概念なんなん? 何を見て判断してんの?
2018/07/16(月) 17:38:21.47ID:fgL4HgKC
リアルの知り合いじゃね
Rust信者には会ったことないが、Haskell信者のウザさは割とガチだな
2018/07/16(月) 17:45:32.85ID:qv224ovN
rustお手軽に勉強する方法知りたい。
2018/07/16(月) 17:46:58.94ID:jXFFV3ML
>>164
逆に言うとウザい知り合いが使ってる言語はダメってことか……
生き辛そうな人だな
2018/07/16(月) 19:11:15.57ID:AYwAzz0o
> 信者のウザさ
自分では到底習得出来ない言語を
楽しげに使いこなしてる事に対する嫉妬でしょ?
2018/07/16(月) 19:16:33.22ID:LulkQD8r
なんで所有権の移動という一度しか起こらない元値を破壊するものが印なしで
参照の借用渡しが&にしたんだろう
2018/07/16(月) 19:17:08.68ID:PkmPgg8A
リアルうざい知り合いはモチベーションに影響するからなあ
いくら物が良くても距離を置くのはそれはそれで賢い処世術
2018/07/16(月) 21:33:53.76ID:ytVIGIE1
またUXの話してる
親がUX 社会がUX 信者がUX
2018/07/16(月) 22:02:29.79ID:0TUA3bfL
あぁ、わからんでもない
言語じゃなくライブラリの話だが
仕事で使ってるライブラリを大して覚えようともせずVue.jsを猛プッシュしてくる中国人が、同僚に居て大嫌いになったわw
日本で流行ってる!ていうのもペチパーのCakePHP臭がして近寄りたくない
2018/07/16(月) 23:18:16.92ID:sSti604i
楽しげに使ってるというよりかは
楽しいと思い込もうと必死になってるといった印象だから嫌なんだよ。。
それ絶対楽じゃないよね、もっと簡単なやり方あるよねって話が一切通じなくなるっていう。。
2018/07/16(月) 23:20:24.75ID:avvA3sQt
なんてこった。このスレは昔からリアルの友人報告スレだったのか……
174デフォルトの名無しさん
垢版 |
2018/07/17(火) 00:27:27.23ID:hR326+dd
rustの狂信者なんて5chですら見たことないけど
2018/07/17(火) 00:31:27.59ID:c2JpqyiJ
>>168
C/C++の&演算子と仕様を合わせただけだろ
仮に借用に&を使わない場合はどうするのが良いと思うわけ?

あと「元値を破壊」ってどう言うこと?
「移動」と「破壊」を同義として使ってるの?
176デフォルトの名無しさん
垢版 |
2018/07/17(火) 00:39:08.48ID:A75xOI8y
rust使うくらいなら何を使用しますか?
2018/07/17(火) 00:52:31.91ID:+XvdRidc
ワールドスタンダードシイプラスプラス
2018/07/17(火) 00:59:45.92ID:c2JpqyiJ
>>172
Haskellに対してならある程度は同意する
でも、Rustに対しては同意できないな
メモリ管理を自力でするのではなくコンパイラに任せる
メモリリークは自力でデバッグして解決するのではなく
コンパイラに詳細なエラー情報を表示して解決を手伝ってもらう
コンパイルが通ればメモリリークが無いことが保証される
きちんと楽で簡単になってるじゃん
GCの無い言語であれより楽で簡単にメモリ管理を行う方法を俺は知らない
知ってたら教えてほしい
2018/07/17(火) 01:07:36.30ID:+XvdRidc
>>178
半ば本気で言うが c++ で生ポインタ使わなければ概ね実現できるんじゃないか
「〜すれば」は(しないこともできちゃうから)ダメとか、
その場合の効率はどうなんだとか議論の余地はあるだろうけど
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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