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

レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん
垢版 |
2018/06/03(日) 23:53:27.92ID:vrBh4O6u
スレタイ以外の言語もok

前スレ
次世代言語10[Rust Swift TypeScript Dart]
https://mevius.5ch.net/test/read.cgi/tech/1524607347/
2018/07/02(月) 19:39:32.22ID:NyO7x8zO
>>921
ハスケルばかにしてる?
923デフォルトの名無しさん
垢版 |
2018/07/02(月) 19:42:13.22ID:HeCnpISr
アンチMicrosoftを掲げる以上、Rubyを使うべきだろね。
2018/07/02(月) 20:33:18.53ID:9WbprnCr
クロージャの問題は結局変数の評価タイミングが分かりづらくなりやすいってところ。
common lispはその点わかりやすい。
925デフォルトの名無しさん
垢版 |
2018/07/02(月) 20:47:10.91ID:HeCnpISr
あちらこちらに分身がいて、どれかを書き換えると他に影響してしまう。
そんな混とんとした世界で生き抜くにはいろいろなものが必要になる。
つまり、コピーとムーブが一番楽。
2018/07/02(月) 20:47:29.49ID:nj5wv8+r
>>920
goとかjsとかparser用意しないとast作れないところを見るとlispが次世代感あるように感じてきた
2018/07/02(月) 20:50:20.50ID:lajLSwSc
>>917>>921
やはりここはLuaの出番か
928デフォルトの名無しさん
垢版 |
2018/07/02(月) 21:36:57.09ID:F0SAJ301
luaはnginxと組みわせて使う
2018/07/02(月) 21:49:01.21ID:TJD/4INa
>>926
astそのもの書いてるだけじゃん。
靴に足を合わせる理屈は御免です。
2018/07/02(月) 21:51:14.33ID:vpeKf2Dq
Lispはいいぞ
2018/07/02(月) 21:58:33.96ID:SHnfHk0h
>>920
社会に出ろよ。
2018/07/02(月) 21:59:57.72ID:JnEvidvy
>>920
ドカタの社会に出ろよ
ドカタの社会に出てないの丸わかりレベル低すぎ
2018/07/02(月) 22:00:32.20ID:9WbprnCr
algol系のシンタックスに合わせてる方が無理がある。
2018/07/02(月) 22:06:32.06ID:3279IT8S
久々に社会に出てみたら、
青春を捧げたRubyがすっかりオワコンになってて哀しいです(^q^)
2018/07/02(月) 22:27:57.20ID:sXgZmTLa
インターンってRubyばっかだな
素人学生にRuby書かせるとか頭おかしなるで
正気か?どうゆうロジックなんだ?
936デフォルトの名無しさん
垢版 |
2018/07/02(月) 22:42:00.11ID:F0SAJ301
世代的にrubyで育ったリーダが多いからじゃない
外資ではgoとかpythonが多い
メガネのヒョロガリが写真に写っていてRoRエンジニアを募集してたらまずハズレだ
2018/07/03(火) 00:16:39.10ID:ulFfuTSn
何故breakにしたんだろねRuby。returnじゃ駄目だった理由が分からない
938844
垢版 |
2018/07/03(火) 01:06:30.72ID:LtnxPY8P
Ruby では、break, return、例外も、単一の同じ仕組みを使っている。
コールスタックをさかのぼるポインタ。
つまり、どこから呼ばれて、どこへ戻るか

breakは、1つ外側のスコープへ戻る。
returnは、最も外側のスコープを抜ける

(レキシカル)スコープチェーンと、コールスタックの2大柱。
実装系・VM を作るには、この本がおすすめ

Rubyのしくみ、2014
Rubyの実装系、Ruby1.9のRuby仮想マシンの内部の仕組み
2018/07/03(火) 01:19:37.85ID:rBmEiF9u
いいえ、私は遠慮しておきます
2018/07/03(火) 01:55:27.47ID:gSJ8jPZs
旧世代言語のネタですっかり過疎ってしまった
941デフォルトの名無しさん
垢版 |
2018/07/03(火) 03:04:30.31ID:V6NmESsv
RailsってC#でいう.Netみたいなもん?
2018/07/03(火) 03:29:58.10ID:LeNHWyDL
>>928
redisも便利
2018/07/03(火) 06:19:51.17ID:ZNPbo2Ku
相手が望んでいない解説をするときは、それがスレの内容として意味があるかを基準にするべき
単にこの言語ではこうなっている(中身はさして珍しくもない)というだけならやめとけ。余計嫌われる
944デフォルトの名無しさん
垢版 |
2018/07/03(火) 06:53:27.01ID:MH5+eiAJ
スレタイに並んでいる言語だとtsは張り合う相手いないから語るようなことないよな
ネイティブアプリ向けも張り合う相手なし
領域が被るのはサーバサイドにおけるrust,swift,kotkin nativeくらい?
2018/07/03(火) 07:30:13.14ID:oQIvqi2O
>>925
だから次世代言語って何よ?
スレタイに沿って話せって言うけど、次世代言語がなにかも曖昧で
2018/07/03(火) 08:27:38.25ID:CN6nXbG2
旧世代の言語の(しがらみとかで)回避できなかった欠点を既存機能を損なうことなくうまく克服し
次世代を担うべく存在する言語だよ

C++のメモリリークを所有権で回避した「Rust」
Obj-Cのnil禍をオプショナル型で回避した「Swift」
JSの実行時エラーを静的型で回避した「TS」

Rubyはこの20年自らの欠点をちょこちょこ直す以外なにもやっていない
2018/07/03(火) 08:31:16.08ID:gQdpXUBz
TSは別格すぎる
さすがにもう現世代扱いでいいだろ
948857
垢版 |
2018/07/03(火) 09:12:56.01ID:0xlHwX4q
>>937
いや、next はともかく、 break は lexical scope の範囲内では実装出来ないんだよ。
break が for や while でキャッチされる特殊な例外扱いならば、こんなおかしな事にならず、Proc 内でも break 使える様に出来たのに。

>>938
ここでいっているスコープは、 dynamic scope であることに注意ね。
内部イテレータでは、本来 break は例外と同じ方法でしか実装出来ない事を理解いただいて何よりです。
でも、ruby では、 Proc で break 呼び出したときの例外が LocalJumpError になっていて、どういう扱いにしたいかよく分からないんだよね。
for, while 内の break との整合も取れないし

まあ、次世代言語の話じゃないんで、そろそろ突っ込みは止めときます。
2018/07/03(火) 09:15:15.62ID:cg5PW7i9
swiftが次世代だってぷぷ
めちゃくちゃclassicなんだけど
2018/07/03(火) 09:26:00.07ID:N+3lR6RH
>>947
msが怒涛の開発力で一気に使いやすくしたよなぁ。
しかもEditorとセットで。
しかもlspを考えてどのEditorからでも補完が効くようにしたりとか。

まだ開発スピードが止まる気配がないけど、
他に何を開発する余地があるんだろ。
2018/07/03(火) 09:33:01.11ID:TTM9k7xe
世代の交代を駆動するのが枯れた技術であってもいいんだよ
まあ仕様の腐った言語しか眼中にない人間には理解できんだろうけどね
2018/07/03(火) 10:15:55.62ID:CZ1ZSS89
開発元が腐ってるRustとTypescript
これは次世代とは言えまい
これが覇権取ったらディストピア一直線
2018/07/03(火) 10:25:54.60ID:CZ1ZSS89
真に次世代の言語はNim
今までの言語の焼き直しに留まらない書きやすさと実行速度を両立した言語で
開発元もモジラとかMSみたいな邪悪な企業じゃない
2018/07/03(火) 10:44:28.82ID:pQbF/VH/
単なるCのソースコードジェネレータじゃん。
nimが速いんじゃなくてCが速いの。Cのソースコード吐いてCのソースコードコンパイルしてるんだから。
coffeescript()なんかのaltjsと同じようなもんだね笑
2018/07/03(火) 11:31:15.91ID:jh9a6Llj
高度なシンタックスシュガーだからね
でもCよりは確実に使いやすいしいいと思うよ
2018/07/03(火) 12:11:26.83ID:H2PJV6CA
>>941
c#で言うとasp.netみたいなもの。
c#ユーザだとしてもEFとビュー関数が無いと何もできない低レベルな人間。
2018/07/03(火) 12:13:14.64ID:H2PJV6CA
ついにMSだけじゃなくてMozillaも槍玉にあげ始めたのか。
2018/07/03(火) 12:43:16.36ID:4OdwMirb
Rubyがブロック引数を組み込みの制御構文のように見せたかったというのは旧世代の発想としてはよくわかるけど、
第一級関数や高階関数が十分に一般的なものになった現代においては組み込みのループのように見せるという発想自体がもう時代にあってないと思うわ
むしろ次世代言語は組み込みの制御構文なんか撤廃して関数に寄せればいいと思うんだが、
なかなか手続きベースの言語でforで捨てるものは現れないね
2018/07/03(火) 12:55:23.66ID:onhdh/0N
forとかを単なる関数として提供してる言語いくつかなかった?
2018/07/03(火) 13:05:27.52ID:TTM9k7xe
>>958
> 制御構文なんか撤廃して関数に寄せればいい

具体的には?
961デフォルトの名無しさん
垢版 |
2018/07/03(火) 13:15:41.14ID:ZYDLmzQl
>>958
手続き型言語と呼んでいいのかわからんが、tclなら、制御構造は全て「コマンド」扱いで、BNFとか笑っちゃうぐらいシンプル
2018/07/03(火) 13:45:16.08ID:taCiD/Gz
>>958
条件分岐と繰り返しはプログラムの基本構造なわけだが
逆に関数とかサブルーチンとかは基本構造に入ってないわけだが

お前は、超天才かドアホかのどちらかだなw
2018/07/03(火) 13:58:16.98ID:ZNPbo2Ku
>>958
俺は味方だよヽ(´Д` )
964デフォルトの名無しさん
垢版 |
2018/07/03(火) 14:53:19.41ID:78ysfJXf
俺は勝った方の味方するよ。
最初から味方だった、俺のおかげで勝てたみたいな感じで。
2018/07/03(火) 15:16:48.85ID:U5Zq1zkR
第一級関数というやつ
ほとんどの場合意味がわかってないか
勘違いしてるよな
クロージャーっぽく書けたら第一級ってわけじゃないから
2018/07/03(火) 16:26:35.93ID:dRr5lTkl
>>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の製作者とはプログラミング言語に対する基本的な見識においてレベルが違いすぎますからね

かつてプログラミング言語の形式的意味論までか否かは別にして言語の基本概念は何かきちんと学び理解するのが常識だったが
簡単に言語を実装できるようになって=マイ言語化されて以降、スクリプト言語のような軽い言語が百花繚乱の如く咲き乱れる(と言えば聞こえは良いが要するに粗製乱造される)ようになって以降
基本概念をきちんと学び理解していない人でも新しい言語は簡単に作れ、上手くファンを掴めるとそれなりに流行ってしまうようになったので
実際にきちんと意味を考えるととても不自然で理解が困難になるような言語機能の組み合わせ方を単に「だって便利だもの」という理由で言語に組み入れられてしまうようになった
単なる便利さだけで深い考慮なく導入されたものを意味論などから合理的・体系的に説明・理解するのは困難、年寄りの戯言でした
2018/07/03(火) 18:34:43.36ID:iZrusKUj
戯言とわかりつつ書き込むのか……(困惑)
2018/07/03(火) 18:36:16.17ID:TTM9k7xe
>>966
空気読めない老人が上から目線でしゃしゃり出てくるのほんとやめてほしいわ
だいたいALGOL68を持ってこようがSmalltalk-80を持ってこようが場違いなのはさして変わらんよ
そもそも誰もクロージャーの本来も一般論も論じてないとか、すでにその話は終了しているとか読んでわからんのかね
2018/07/03(火) 18:53:34.68ID:kPEfeblV
ボクちゃんの大好きなrubyがディスられて怒り心頭のようだねw
970デフォルトの名無しさん
垢版 |
2018/07/03(火) 18:55:02.78ID:A246qspJ
https://i.imgur.com/7zZXEEJ.jpg
971デフォルトの名無しさん
垢版 |
2018/07/03(火) 19:00:25.45ID:lz4xpNmJ
>>953
NimはRustのような安全性がないからダメだわ

https://github.com/nim-lang/Nim/issues/3531
2018/07/03(火) 19:10:03.39ID:Y44wiyUJ
>>970
自分の思いを述べてるんだから何もしていなくはない

そういう性格だから嫌われるんじゃない
こいつが嫌いな性格を一般化してるだけだ
2018/07/03(火) 19:11:22.15ID:iZrusKUj
RustはRustで安全のために犠牲を払いすぎ
そこまで犠牲を払わないNimという選択肢はダメではない
2018/07/03(火) 19:12:12.22ID:1eNrhjxU
>>972
うわあ……
2018/07/03(火) 19:15:29.04ID:Y44wiyUJ
>>974
うわぁってなんやねん

空気読むことばっか押し付けるからお前んとこのプロジェクト炎上してるんや
976デフォルトの名無しさん
垢版 |
2018/07/03(火) 19:15:31.69ID:A246qspJ
犠牲にしてるかな?どうせやらなきゃいけないことを強制してるだけでわ
977デフォルトの名無しさん
垢版 |
2018/07/03(火) 19:23:30.28ID:2atZvleV
>>972
スレに沿った議論をしない人は何もしてないと同じなんだよ
お仕事だってそうでしょう
2018/07/03(火) 19:26:31.83ID:Y44wiyUJ
ようは後付けで人がついてくりゃリーダシップそのものじゃないか
2018/07/03(火) 19:32:14.46ID:2DeV5pvZ
スレに沿った議論といっても誰も次世代言語の話なんてしてないしなw
980857
垢版 |
2018/07/03(火) 19:33:36.60ID:0xlHwX4q
Nim は書きやすさと速度、Rust は安全性と速度、
に注力したイメージなんだが、安全性と速度に比べて、書きやすさと速度って一つの言語でカバーする必要性が薄いように思うんだよな。

従来の「スクリプト言語+速度が必要なところだけC/C++」に比べて、どうしてもNimが良いっていう場面ある?
981デフォルトの名無しさん
垢版 |
2018/07/03(火) 19:43:18.67ID:MH5+eiAJ
>>978
えぇっ

>>979
途中までしてたじゃん
話につい来れなかったルビーィストとおじいちゃんたちが突然昔話を始めるまでは
2018/07/03(火) 19:53:46.17ID:Y44wiyUJ
>>981
もうとっくに日本は移民国家だ
自分が雰囲気の中心にいるんだって顔してるだけで
さしたる理由もなく他人をDisれると思うなよ


昔の次世代言語の話したっていいじゃない
2018/07/03(火) 20:01:32.10ID:dPHNxxkk
>>976
木ですら実装結構しんどいのは犠牲ではなかった……?
Nimならすぐよ
2018/07/03(火) 20:14:55.16ID:T5T8ZL2Z
>>980
書きやすくて速いとか最強やろ
スクリプト+Cとかめんどくさいんじゃ
2018/07/03(火) 20:38:32.57ID:zqxfY0jY
>>966
Smalltalkのブロックはselfと^の挙動がクロージャとして完全にウンコなので
こんなものを基本形として議論のベースにしたくないです
Schemeの方が1万倍マシです
986デフォルトの名無しさん
垢版 |
2018/07/03(火) 20:41:29.96ID:MH5+eiAJ
>>983
その木は安全なの?
個人的には木構造実装したりしないから別に困ってないけど
2018/07/03(火) 21:17:11.31ID:4+jY1mlb
Nimは一体いつになったら1.0をリリースするんですかね?
2018/07/03(火) 21:31:35.15ID:XAeheViZ
Nim製組み込み言語Min
https://min-lang.org

いいんだけどさ、なんで文法Lisp風にしたし。
ホスト言語より書きにくい組み込み言語ってなんやねん
2018/07/03(火) 22:03:10.71ID:ZNPbo2Ku
Lispに見えて実はForth風では
処理系のサイズを小さくまとめるのが目的みたいだしいいんじゃないかな。どうせ個人の試作言語だろうし
2018/07/03(火) 22:16:17.34ID:T5T8ZL2Z
Lispが書きにくい……?
https://i.imgur.com/13vqxY0.jpg
2018/07/03(火) 22:25:50.65ID:s9qpeMkn
Lispは脳がパーサになってる人向け
2018/07/03(火) 22:27:10.82ID:2DeV5pvZ
いうてもc++の文法なら自分でパースした方がマシだろ。
2018/07/03(火) 22:28:51.19ID:OApKU83S
factorなんか0.97から4年も音沙汰なしだぞ
2018/07/03(火) 23:50:32.40ID:T5T8ZL2Z
安全だからRustは良い←わかる
安全でないからNimはいらない。書きやすさとかどうでも良い←それあなたの感想ですよね
995デフォルトの名無しさん
垢版 |
2018/07/04(水) 00:39:03.37ID:SVer28O9
>>993
音沙汰なしではないよ、最終更新は3日前

https://github.com/factor/factor/commits/master
996デフォルトの名無しさん
垢版 |
2018/07/04(水) 00:44:54.31ID:SVer28O9
書きやすくても保守性が高くなるわけじゃないからな、
自分で書いて自分一人だけで保守するならいいんじゃないかね
2018/07/04(水) 00:55:14.74ID:M17EkYCN
そうそう、Rustは可読性が低く保守性も低い
2018/07/04(水) 01:36:19.71ID:mmoPrDKP
>>997
いやいや、Rustは可読性も保守性も高いでしょ
書く前にある程度の考える必要があるだけ

むしろ思ったことすぐに書けちゃう言語の方が
可読性も保守性も低いでしょ
2018/07/04(水) 05:38:29.74ID:XdTckET+
Rustって名前で損してる気がする。
2018/07/04(水) 05:39:21.37ID:XdTckET+
錆って何よ、触ったらヤバそうじゃんww
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 30日 5時間 45分 54秒
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。