次世代言語Part7[Go Rust Swift Kotlin TypeScript]

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2017/10/19(木) 17:51:38.66ID:EPSDvC75
文字数制限きついので改題
スレタイ以外の言語もok

前スレ
次世代言語議論スレ[Rust Kotlin Haskell]第6世代
http://mevius.5ch.net/test/read.cgi/tech/1503924817/
2017/11/09(木) 15:25:39.37ID:EdyTgEfO
C++のラムダは文法、型付けともに最悪だろ
第一templateもautoもないCでどうやって持ち運ぶんだよ

それにBlocksもそうだけど
気軽に他言語からのFFIができなくなるんじゃないか
基本的なAPIにこういうのが使われだしたら他が困る……
2017/11/09(木) 15:40:59.87ID:EdyTgEfO
あとC++ラムダもBlocksもローカル変数をキャプチャーする糞仕様だし
そんなのがABIとして定まってしまうと、例えばD言語が関数ポインタとスタックポインタのペアだけでやってるみたいな
シンプルかつより優れた実装を取ってる組が迷惑するだろ
2017/11/09(木) 16:51:04.80ID:Ks0zwITf
Cの戻り値が一つしか出来ないというのも意味わからないよな。
2つのレジスターに値をセットして戻せばできるのにな。
2017/11/09(木) 17:23:41.36ID:RK6L6tnV
評価した結果,値を2つ持つって方が意味わからん気がする
複数の戻り値を表すならタプルみたいなもので1つの値にしてしまうのが一般的だと思うけどCでそれは流石に…という感じ
2017/11/09(木) 17:53:57.52ID:EdyTgEfO
x86_64のSysVみたいに環境によっては
レジスタ2つ分程度なら構造体で返してもrax, rdx使ってくれるぞ
それに10個とかになると結局構造体返しと同じになるだろうから区別する理由がない
2017/11/09(木) 18:05:25.89ID:Ks0zwITf
引数は複数なのに戻り値は一つって対称性が乱れてるからな。
引数が一つってきまってるなら戻り値が一つでもいいんだけどな。
432
垢版 |
2017/11/09(木) 18:32:55.15ID:RgVZiOIN
まー、今更呼び出し規約変更するのも虚しい結果に至るだろ。
2017/11/09(木) 18:40:38.48ID:xkkUp3yc
俺は今の言語が解析しにくいのが不満
xmlみたいにシリアライズ容易であって欲しい
プログラムからコードを作成したり
ビジュアル的にコードを表現したり出来ていいと思う

これが出来てやっと次のステージにすすめると思う
2017/11/09(木) 18:56:04.11ID:aP107Usi
それ lisp やんけ
2017/11/09(木) 19:02:43.09ID:xkkUp3yc
>>434
全然駄目だ
俺には読めないw
xmlとかcsvとか形式が決まってた方がいいな
2017/11/09(木) 19:09:29.48ID:xkkUp3yc
htmlみたいにxmlでフローの書けるプログラムが組めるような言語とか次の覇権を握る
次世代はプログラムの自動生成がメインに来ると思うな
モジュールのビジュアル化
それらを組み合わせるAIとか10年後のスタンダードになると思う
2017/11/09(木) 19:49:14.84ID:7aPgmrKc
>>431
カリー化祭
2017/11/09(木) 21:03:11.32ID:rakEZX+F
Apache Jellyは全然流行らなかったな。
2017/11/09(木) 21:08:41.44ID:F+Mngyv/
ID:aP107Usiじゃないけど、俺も言いたい

それLispやんけ
2017/11/09(木) 21:17:49.45ID:PlmGILRr
確かに人間の能力で解析できるのはLisp程度かもしれないが
次世代AIだったらLispは甘え
2017/11/09(木) 22:00:27.03ID:xkkUp3yc
c#は構文解析やるのも字句解析やるのも
結構疲れる
こんなんじゃビジュアル開発できないじゃん
IDEなんてリソースエディタまわり強化するぐらいしか進化する先ねーのに
言語複雑にしてっと自分のクビしめっぞ
2017/11/09(木) 22:18:45.81ID:6LULX4BS
C#はRoslyn使えば一発でAST取れるぞ
MSのコンパイラというのは開発ツールのための言語サービスなんだよ
443デフォルトの名無しさん
垢版 |
2017/11/09(木) 22:47:28.93ID:6+7/preV
CもABI変えない範囲で新機能は追加してほしい
2017/11/09(木) 22:53:10.61ID:Hmz/S4uV
常にデ/シリアライズ可能って良さげだな
ある時点のスタックトレースを丸ごとダンプして、丸ごと状態を復元できる
445
垢版 |
2017/11/10(金) 00:01:05.74ID:QEw38nat
>>436
なんかxmlを通すと形が変わる処理系なかったっけ?
SGML通した覚えがある。

ビジュアルなフローを繋いでいくとなると、LabVIEWとか色々あるじゃん。流行らなかったやつだと.netのワークフローとかあったし、
最近だとnode-redとか、Amazonのフローとか。

>>444
仮想マシンを一時停止にするほうが気が楽。
2017/11/10(金) 00:51:01.42ID:D7HJ1e1B
みんなー、Nimでにむにむしよっ
2017/11/10(金) 01:42:31.25ID:z2GdfpnL
むにゃ
2017/11/10(金) 08:03:25.78ID:ZxotU10g
>>445
そうじゃないニム
例えばニムね、Reduxのある時点のStoreを丸ごとjsonにニムしたら
バグとかニムとかの再現に便利だと思ったニムンゴよ
449
垢版 |
2017/11/10(金) 12:48:28.65ID:ryCkgWWn
>>448
仮想マシン一時停止にしてスナップショット撮って、再開するのは不便だって事かな。
まぁ確かに不便か。

まあ、普通WPF書いてればモデルクラスにMVVMしてるだろうし、そいつをシリアライズしとけば良いと思うけどね。Reduxみたいに、となると。
2017/11/10(金) 13:30:04.92ID:K9cBfZ0u
みんなー、Nimでにむにむしよっ
2017/11/10(金) 13:55:44.53ID:nhsl7iAw
>>444
Smalltalk?
2017/11/10(金) 16:56:43.44ID:MvZMhhNL
フォンノイマンマシーンではデータとプログラムの区別とかレジスターとかはないから
メモリーをコピーするだけで実行時と同じになるんだよな。
2017/11/10(金) 17:35:03.38ID:JCZVtJuy
fortranって学生の頃に触ったけどなんか独自性あったっけ?basicと変わんないような気がしたけど
2017/11/10(金) 18:41:24.13ID:QuLzQogR
>>453
numpyに匹敵する強力な配列アクセスと、明示的なfunctionとsubroutineの区別、引数の入力専用や出力専用を明示するintent機能、moduleなどの便利な機能がfortran90あたりから加わった

学生の頃に触るfortranは77が多いのでfortanはゴミという認識の人は多い
455
垢版 |
2017/11/10(金) 18:41:29.45ID:ryCkgWWn
>>452
ところが、メモリを完全に再現する方法がどんどんめんどくさくなってきて、逆にコンピュータ自体はどんどん高速になって、仮想マシンごと取るのが一番楽になってきてしまった。
データとプログラムの区別もつけ始めたしね。

>>453
pureな関数に対して、forallとかつけるだけでバラして実行にしてくれるとか、十年くらい前から、do concurrent で同時実行してくれるとか、でかい計算機使わないとあんまりメリット見えない便利機能とかが独自機能とかかな。
2017/11/10(金) 20:31:42.80ID:pbDFhipo
>>453
C99のrestrictや複素数、VLA等の「C++に無いのにどこから出てきた」みたいなのは
Fortran対抗だったりするんだぜ
その後も改定は続いて今のFortranは驚くほど色んなことができるし速度面は依然最強格

実装があればね(´・ω・`)
2017/11/10(金) 20:36:22.60ID:Qc9ud9aj
Juliaを持ち上げる奴は大抵Fortranを古そうというだけで食わず嫌いしてるよね
Fortranをちゃんと触ったことがあれば、今更Juliaなんか全く必要ないことがわかる
2017/11/10(金) 20:45:03.48ID:pbDFhipo
ま、Fortranは構文がきもいからね……
あと実装(
2017/11/10(金) 21:03:32.57ID:TE3zp5kQ
Juliaは関数を返す関数があるから……
2017/11/10(金) 22:39:10.79ID:XT30o+c8
Fortran触ったことないゆとりの自分に、Fortranで3rd packageの導入・管理する方法を教えてくださらんか……
2017/11/11(土) 00:15:52.24ID:TutobSU6
スクリプト言語ならソースを置くだけか、Cに丸投げだもんな
スクリプトとCを笑う者はパッケージ管理に泣く
2017/11/11(土) 01:12:49.38ID:w1UaSNW0
>>460
良いように言えばFortranはC言語と同じく下層で使われる言語なので
管理はOSのパッケージマネージャでやらないといけない

悪いように言えば、管理するほどライブラリがない
463
垢版 |
2017/11/11(土) 01:39:43.40ID:X8lWnCzG
そもそも、ベンダが出すライブラリが一番速い。
その話は残念ながらできん、といったところかな。
2017/11/11(土) 09:56:56.01ID:nIHGEsH/
>>461
そう考えるとcargoやgoはよくやってるって気分になるな
2017/11/11(土) 10:05:48.57ID:SE28YWv1
他の言語だとあんまり思わないんだけど、 CやFortranの話になると何故か
「LD_LIBRARY_PATHの通っている領域に置くだけじゃん……」
って思う
2017/11/11(土) 10:45:06.02ID:nIHGEsH/
>>465
例えばプロジェクトAではlibevent2.0を、プロジェクトBでは2.1を使ってる場合どうすんの?
1. LD_LIBRARY_PATHをプロジェクト毎にdirenvかなんかで切り替える
2. -Lオプションで切り替える
3. RustでいうcargoやRubyでいうBundleを手動で頑張る

どれがベストプラクティス?
2017/11/11(土) 11:34:57.45ID:SE28YWv1
>>466
静的ライブラリなら-Lでいいんじゃね?
ベストプラクティスかは知らんけど
2017/11/11(土) 11:35:47.08ID:yM7WeBzy
>>466
マシン二台用意しろよ
2017/11/11(土) 11:37:39.35ID:SGA9z9gD
>>466
プロジェクト違うとライブラリだけじゃなく設定ファイルとかリソースファイルとかも変わるんじゃない?
そのための環境「変数」なんだと思うがね
2017/11/11(土) 12:37:04.44ID:oec9ZFSW
dockerみたいなのでやるってこと?
2017/11/11(土) 13:41:00.49ID:w1UaSNW0
んな大げさな、切り替えたいだけならpkgconfigでいい
2017/11/11(土) 14:37:05.82ID:p8tTAq8V
てかそこまで動的に切り替えが必要かまず考えた方がいいのでは?
2017/11/11(土) 14:44:58.04ID:6gUapX1N
プロジェクトのディレクトリ内に適当に置いとけばいいじゃんあほらし
474
垢版 |
2017/11/11(土) 14:46:30.00ID:X8lWnCzG
ちゃんとmakefile書け、じゃない?
2017/11/11(土) 19:13:47.36ID:GuHfXsWY
>>405
好きの反対は嫌い
無関心の反対は有関心
好きも嫌いも有関心
476
垢版 |
2017/11/11(土) 19:29:47.46ID:X8lWnCzG
>>475
なるほどまとまってる。
2017/11/11(土) 21:31:25.39ID:okinluKI
抽象度が低すぎる単語はポリコレ違反なんだな
だから性別や宗教等を特定できないレベルまで抽象化する
478
垢版 |
2017/11/11(土) 21:45:47.01ID:X8lWnCzG
好きも嫌いも、言葉は同じでも指すものが違うからな。
可愛さ余ってなんとやら。
2017/11/11(土) 21:51:19.82ID:APGqgm8b
Goみたくメッセージパッシングう方式での並行性に非常に優れていて、そこそこ速いML言語とか誰か作らないかな…
480デフォルトの名無しさん
垢版 |
2017/11/11(土) 21:57:29.82ID:rbpvu0L2
>>479 何に使う?
2017/11/11(土) 22:02:28.22ID:APGqgm8b
>>480
Webのサーバーサイドでのプログラミングとか?
2017/11/11(土) 22:34:13.35ID:w1UaSNW0
F#がもうそうなってるんじゃね
2017/11/12(日) 02:51:49.32ID:oBq+ACHI
あれ?かつて次代の大物言語とかいわれてたelixirは入ってないの?
484デフォルトの名無しさん
垢版 |
2017/11/12(日) 04:47:18.74ID:QTXr6k0W
そもそも関心があるかどうか関心を持った時点で関心があるから
関心が無いものは思いつかないものでないと関心が無いと言えない。
485デフォルトの名無しさん
垢版 |
2017/11/12(日) 05:23:32.70ID:VleGsMX6
>484
心理学の話はもういいよ。言語の話しようぜ。
2017/11/12(日) 10:22:15.49ID:uKLz7AXa
俺の哲学的考察ドヤァ
487デフォルトの名無しさん
垢版 |
2017/11/12(日) 11:35:37.08ID:oQrEnmVF
次世代言語の話をしろ
2017/11/12(日) 13:19:42.48ID:kuWG9Wn6
日常会話にもプログラミングにも使える言語とか誰か作れよ
厳密に文法定義するだけだからできるやろ
2017/11/12(日) 13:39:49.42ID:K3cKPiCK
需要、なし!w
490デフォルトの名無しさん
垢版 |
2017/11/12(日) 13:47:57.09ID:VleGsMX6
>>488
ここ数年で広辞苑に「うざい」が載るようになったように日常会話は時代によって変容する。
つまり、日常会話に使う言語は「厳密に文法定義する」こと自体が不可能に近い。
だから厳密に文法定義できるプログラミング専用の言語が必要になった。
そして日常会話に使う言語を「時代によって変容できない」ようにすることも不可能だ。
2017/11/12(日) 14:11:37.87ID:fZbwcKqG
プログラミング言語も時代によって変わる
逆に変化しないプログラミング言語は取り残されていく
2017/11/12(日) 14:35:52.57ID:0gPm23+K
lojban使えば?PEGで構文解析できる人工言語で新しい単語も導入できる
プログラミング言語を覚えるより遥かに大変だけど
2017/11/12(日) 15:35:12.54ID:kuWG9Wn6
>>492
ざっと見たけど糞やん
読み方あいまいやん
bridi
ブリヂか?
バリディか?
頭がブリブリなのか?
2017/11/12(日) 16:32:04.38ID:QTXr6k0W
PEGは一文字ごとにメモリーを消費する。
2017/11/12(日) 21:31:44.94ID:vqK3o1OI
そんなことよりponyの話をしようぜ
2017/11/12(日) 21:59:29.66ID:enOCqUCD
>>495
初耳だったのでちょっと調べてみたけど面白そう。是非とも良さを語ってほしい
2017/11/12(日) 23:54:49.92ID:7OkSLCD0
>>491
その進化論っぽい思想ももう聞き飽きた
2017/11/13(月) 00:08:48.90ID:lPXXv2fZ
変わらないでいいじゃんもう
2017/11/13(月) 04:56:24.27ID:bOYgOiq+
変わり続けることとは変わらない法則である。
したがって変わらないことこそ変わることなのだ。
2017/11/13(月) 10:15:23.68ID:3/3Obauk
Pony Julia Crystal Nim
いいからv1.0になって出直してこい系言語
2017/11/13(月) 12:34:31.66ID:QzWBzm7Q
次世代言語議論スレなのでセーフ
2017/11/13(月) 13:05:38.64ID:TpgUuavl
本当に並列化で速度を稼ぎたい場合は
オーソドックスな手法で並列化するので・・・
というか割と稀

それとは別に、UIを固めないためだけの並列化が鬱陶しくて
async/awaitがあればかなり楽になるから、それでいいやって
2017/11/13(月) 13:39:53.23ID:VLsI+U4t
>>501
コロコロ言語仕様が変わるのは次世代言語じゃなくてお遊び言語だろ
言語仕様が固まってから、さて次世代的にどういう用途が向いてるだろうかって議論するべきじゃないのか?
2017/11/13(月) 13:47:15.36ID:TUCXx069
>>502
結局、モジュラリティー高くなるように書けや
って話でどんなツール、言語が出てきても関係ないっていう気はする。

ツール、言語を強要するよりかは
アンチパターンとして急いでる時にはどうしても依存しまくったコード
書いちゃうよねってなことを教えた方がなんぼかまともな気がしてる。
2017/11/13(月) 13:58:49.36ID:QzWBzm7Q
>>503
「言語仕様が固まってない」って「前のバージョンのコードが動かない」って意味か?
「推奨される、もしくは書きやすいコードの書き方が変わる」って意味ならC++でさえC++11以前と以降では全然違うし、「言語仕様が固まっている」言語なんてCくらいしか思いつかないんだけど。
2017/11/13(月) 14:09:32.75ID:VLsI+U4t
前者の意味だが、文法自体に変更なくとも、標準ライブラリのAPIが変わってしまうのも含むな
Scalaとかマイナーバージョン変わるだけで文法変わってなくてもコンパイル失敗するとかあったろ
2017/11/13(月) 14:27:30.98ID:QzWBzm7Q
前のバージョンのコードが動くことって、今職場で使える言語を語るのには大切だと思うけど、未来を語るのにそんなに大切だろうか?
むしろ試行錯誤して、ダメな所はダメな所として直して文法を綺麗に整理してくれている分、C++みたいなキメラ感溢れる追加機能よりも期待が持てると思うんだけど

まあ俺はScala知らんし、Juliaなんかはdeprecatedになった機能はちゃんと警告してくれるし、いきなり機能削除で困ったことがないから出て来る感想かも知らんけど
2017/11/13(月) 15:57:56.72ID:bOYgOiq+
CPUみたいに特殊な命令をコードの最初の行に書けば
上位のモードに移行するみたいな仕様にすればいいのにな。
2017/11/13(月) 16:18:40.93ID:wtJ6F+YY
それ旧仕様もメンテし続けないといけなくなるやつ
2017/11/13(月) 16:30:03.90ID:htvgMwwk
DockerのコンテナとかGoで書いてるらしいね
これからどんどんコンテナってつかわれるみたいだからその関係でGoって人気でてきたの?
もしかしたらこれから一気に流行るの?
2017/11/13(月) 17:21:04.18ID:Uh06NB8u
いろいろ突っ込みたいがキリがないので、
Docker使う分にはGoを意識する機会は全く無いから関係ないとだけ言っておこう
2017/11/13(月) 20:45:40.38ID:loSXLH9Q
>>503
それswiftにも同じこと言えんの?
正直swiftの先進性には感謝する。関数型言語に興味を持つきっかけになった。
だがGo並に仕様を固めてから公開してほしかった。もうswift4? swift0.4だろボケ
2017/11/13(月) 22:22:24.83ID:IfkrQMwx
Swift Xへようこそ。

世界一ピュアなキス

ここから未来が始まります。
2017/11/14(火) 06:53:56.25ID:l1fCT6kS
Elixirのプロダクトらしい
https://masto.news/2017/11/12/pleroma/
2017/11/14(火) 07:58:21.96ID:7LtHkkfv
マス丼が来てないのに何言ってだこつい
2017/11/14(火) 10:55:56.21ID:/ce101S1
>>512
林檎信者に刺されたくないからあえて名前出さなかったんだが、まさにswiftは念頭にあった
あれが言語になれてる理由は他ならぬ林檎がごり押ししてプラットフォームを囲い込んでるだけなんだよな
2017/11/14(火) 12:29:50.19ID:RmEPBl/7
作った人退職しちゃったけどどうなの?
2017/11/14(火) 13:16:41.60ID:9gqQQ/8Y
数ヶ月転職先で働いてまたやめたよ
2017/11/14(火) 14:18:27.95ID:MOxq3KBn
言語開発者って企業戦士としては碌なのいないな
ヘルスバーグくらいか
2017/11/14(火) 14:35:21.01ID:/4y+2Kom
まつもとさん
2017/11/14(火) 16:29:24.82ID:MOxq3KBn
Matzはエンタープライズ系ITからの典型的なドロップアウト勢じゃなかったっけ?
522
垢版 |
2017/11/14(火) 18:20:56.55ID:j+l8jijk
ケントンプソンとかは?ベル研。
ジョンバッカスもずっとIBMだったような。
Wolframもずっとアカデミックな人で、途中で会社立ち上げてずっとmathmaticaを責任持って作ってるイメージ。
2017/11/14(火) 22:33:33.05ID:XnMPPPKZ
>>516
swiftが登場したばっかのときは良かったんだよ。その後
何度も下位互換性がない仕様変更が繰り返されて開発者が疲弊していった。
正直言語仕様も複雑化の一途を取っているrustのメモリオーナーシップモデルも取り入れるって話も聞いたし、正直つらみがます一方。
androidのkotlinが羨ましくみえる。
2017/11/14(火) 22:56:58.69ID:r3vvhD4+
ビャーネはずっとモルスタいるだろ
2017/11/14(火) 23:28:52.46ID:bj4U4qLx
確かRustの主要開発者の一人が林檎行ってswiftやってんだっけか?

Rustもまあ言語仕様お世辞にも簡単とは言えんが、1.0以降下位互換性崩してないところは評価できるわな
2017/11/15(水) 09:17:27.90ID:IgzwHXKJ
Rust は所有権とかボローイングとか、そもそもパーサーの方もまともに
理解できてねーじゃんとか思ってしまう。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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