次世代言語27 TypeScript Swift Go Kotlin Rust Nim

レス数が900を超えています。1000を超えると表示できなくなるよ。
2022/08/05(金) 08:26:38.87ID:TpiqaUBm
スレタイ以外の言語もok

前スレ
https://mevius.5ch.net/test/read.cgi/tech/1655771266/
2022/08/26(金) 11:09:48.80ID:bqHPcqBD
>>842
それは機械語という言語だな
844デフォルトの名無しさん
垢版 |
2022/08/26(金) 11:11:30.63ID:+QfZXmYy
>>843
何もできなくて草
2022/08/26(金) 11:12:24.53ID:bqHPcqBD
>>841
アセンブリ言語と機械語は違うよ
アセンブリ言語は機械語に厳密に変換できるがループや条件分岐などをマクロ定義できる
ニーモニックは機械語と言っていい
2022/08/26(金) 11:14:37.08ID:bqHPcqBD
>>844
何を言ってるんだ
フローチャートを書いてそれを頭の中で直接バイナリに変換して打ち込むくらい昔は珍しくなかったぞ
2022/08/26(金) 12:29:43.43ID:GQPfjH41
一度でいいからパンチカードでFizzBuzzみたいな簡単なプログラムを作って動かしてみたいな
2022/08/26(金) 13:56:53.79ID:3b+WTPGR
>>837
言語じゃなくて"プログラミング言語"ね
コメントからコード生成する技術も出てきているし、将来的にはプログラミング専用言語が必要な場面がより少なくなるのではと思った
画像生成AIに食わせる文章に工夫が必要なように、コード生成AI向けに自然言語をうまく書くような工夫が必要で、それがプログラミング言語と呼ばれるのかもしれないけど
2022/08/26(金) 14:02:54.19ID:okIuNp+m
>>835
仮に不要だとしてもどうせ
清濁併せ呑むべきという話になって必要な物と不要な物が混ざり合う
2022/08/26(金) 14:03:10.59ID:qa0S1e+W
>>848
さすがにそれは無理
プログラミングしたことないやつにはわからんだろうけど
2022/08/26(金) 14:57:53.05ID:3b+WTPGR
>>850
無理というのは、特定用途でプログラミング言語を代替するものすら現れることはないということ?
なんでそう言い切れるのかが分からない
2022/08/26(金) 15:00:23.56ID:PzjtNrBy
>>851
プログラミング言語が必要かどうかの話をしてる時に特定場面でプログラミングを代替できるものが生まれるかどうかの話にすり替えてたのか
2022/08/26(金) 15:17:47.21ID:3b+WTPGR
>>852
最初の投稿が言葉足らずというか大げさな表現だったね。申し訳ない

どんなケースでもプログラミング言語が必要ということはなくて、新たな何かで置き換えられる領域はある
その新たな何かこそが次世代言語なんじゃないか、という話をしたかった
2022/08/26(金) 15:27:12.00ID:lGuTpQOP
ローコ−ドやらノーコードやらは定期的にブームになるけど
結局は定着しないんだよね
2022/08/26(金) 15:27:17.81ID:PzjtNrBy
そんなん昔は全部ユーザーが自分でプログラムしてやってたのが今では完成済みが売られてるんだから今さらだろ
2022/08/26(金) 15:55:55.10ID:CBlt+itq
コードより正確に情報残す方法なんてほぼないわ。
2022/08/26(金) 15:56:16.83ID:oTK8NYWm
4GLとかあったなあ
使ったことないけど
2022/08/26(金) 15:57:51.53ID:9rbmdHVu
ノーコード/ローコードはもっとUIだけにフォーカスしたツールが欲しいわ
マウスポチポチでWebUI作ったらAPIにデータ投げてくれるだけでいいのに、今時のSaaSはだいたい余計な中途半端なDB機能がついてきやがる
まあ一気通貫で提供しないとユーザー企業に直接売れずSIerに主導権握られることになるから、SaaSビジネスとしては面白くないんだろうな
2022/08/26(金) 17:49:09.03ID:okIuNp+m
PCのUIはスマホ大勝利により失脚してるし
UIにも言語と同様の権力闘争があるのは自明の理
860デフォルトの名無しさん
垢版 |
2022/08/26(金) 18:29:11.38ID:fCaJRqVr
>>847
https://www.masswerk.at/keypunch/
http://www.kloth.net/services/cardpunch.php
https://www.youtube.com/watch?v=vBSVIJsSux4
861デフォルトの名無しさん
垢版 |
2022/08/26(金) 18:59:38.20ID:fCaJRqVr
>>853
そんなもの既にある
2022/08/26(金) 21:28:02.57ID:3b+WTPGR
>>861
じゃあこれ以上の発展は見込めないわけ?
2022/08/26(金) 21:34:15.25ID:6BD/kEhJ
現代だとどの言語も言語仕様の更新をしているわけだし新しい言語じゃなくても言語の新しいバージョンを使うってのでもいい気もするけどね
2022/08/26(金) 22:21:54.13ID:ol+btYtb
言語の仕組みなんてLISP、Java、Haskellらへんでほぼ出揃ってて、目新しいものなんてほとんどない
使いやすくこうしてみましたー、とか、いいとこ取りしてみましたー、みたいなのばっり
2022/08/27(土) 00:11:23.77ID:N+6DqfIs
新しいものなんて何もないといいつつ、新たなものを求めて次世代言語スレへやってきてしまう人々
若い頃に出会ったものは相対的にキラキラして見えるだけで、そんな出会いは二度とないので諦めましょう
866デフォルトの名無しさん
垢版 |
2022/08/27(土) 00:58:29.99ID:Qpr8Hymf
今の時代はコアの理論や機能だけじゃ広まらない。
ライブラリやビルド・パッケージ等のエコシステムも揃ってさらにはGAMAあたりのサポートもないと中々広まらない時代になってる気がする。
2022/08/27(土) 04:05:38.65ID:LpZt/R8y
>>864
21世紀になってからも唯一Rustが画期的な言語として登場したくらいかな

差異は所有権の借用とライフタイムという概念の導入だけだがその効果が革命的で
GCなくても常に安全な即時の自動メモリ解放とC言語並の速度の両立を実現したことに加えて
データ競合(シングルスレッド時のmutual aliasingを含む)が全く無いことも実現

高速と安全という従来相容れない二者を静的にコンパイル時点で保証したインパクトは大きく
世界のIT大手たちが揃って共同でRust Foundation設立するまでに到った
2022/08/27(土) 08:35:20.66ID:Wed6O2vP
>>864 程度で新しい仕組みと言えちゃうなら実行中に一時停止しないことに命かけてるponyの方が余程新しい仕組みになっちゃう
標準入力をそのまま返すだけで新しいクラスを作成させられるからな
2022/08/27(土) 09:26:47.49ID:/L4u6rBy
>>865
>新たなものを求めて次世代言語スレへやってきてしまう人々

新たなものを求めてるんじゃなく
自分がマウント取れるネタを探しにやってきてるだけ
隔離スレと呼ばれる所以
2022/08/27(土) 11:11:47.40ID:PlsxVQrZ
心理学や行動経済学は新たなものを作らない
マウントに限定しなくても心理学全体がそういうものだ
2022/08/27(土) 11:51:54.64ID:APSkyxtl
>>867
rust-analyzerがバカスカメモリ食うのなんとかして
2022/08/27(土) 12:19:45.38ID:rW3XYjqW
所有権もC++のムーブが元なんだけどな
あれをデフォルトにしたらRustになったと言うだけ
2022/08/27(土) 13:34:38.00ID:PlsxVQrZ
ITの新しいところは二つある
低級言語からボトムアップで作るところ
無意識にバグを作ってしまうところ
2022/08/27(土) 14:02:19.73ID:APSkyxtl
所有権とlifetimeは元ネタがあったとはいえ、そこからshared xor mutableへと発展させたのは大きな発明だと思うよ
2022/08/27(土) 14:25:45.41ID:L6zf9p1Z
>>874
shared xor mutableも元ネタあるよ
トランザクションを使った同時実行制御の常識
それを所有権やライフタイムの考えと融合させて実用可能なものを作ったところが新しい
2022/08/27(土) 19:24:10.69ID:4NYTelSG
研究用プロトタイプとか言語の一部で適用可能にしたレベルで終わりそうなものを基盤にした処理系をいちから作り上げてメインストリームに持ってきたのはホントすごいと思うわ。
2022/08/27(土) 19:57:46.81ID:cdahKvQA
組み込みとか低水準で使えるようなシステムプログラミング向けの言語って、候補と呼べるものすら新しい言語はなかなか登場してなかったと思うんだけどなんでだろな

C/C++の存在感がでかすぎて言語開発者の興味が失われてたんかね、GCを贅沢に使った言語はめちゃくちゃたくさん登場してるのに
今となってはRustが成功しつつあるけど、Rustが登場しなかったらずーっとC/C++の天下だったんかな、いやだな
2022/08/27(土) 20:29:15.90ID:XaCH/Kga
>>872
C++はライフタイムを言語(コンパイラ)が把握管理できないため
ダングリングの発生を検知してコンパイルエラーとできず
セキュリティ含む深刻なバグを未だに量産し続けていることに問題がある
2022/08/27(土) 22:12:41.90ID:PlsxVQrZ
>>877
C++の時点で難易度がもう非常識なレベルになってるから
それ以上先に進むのは常識的にはできなかった

だが偶然その時にC++と関係ない人々の日常会話も非常識で過激になって行った
その結果、難解過ぎることの何が悪いのかと開き直るのを誰も止められなくなった
2022/08/27(土) 23:03:56.45ID:rW3XYjqW
>>878
いやだからC++にムーブができたんでしょ
std::moveとムーブコンストラクタとムーブ代入演算子を勉強しな?
2022/08/27(土) 23:22:25.52ID:0oprUFWN
>>880
それは所有権
Rustは借用とそのライフタイムを言語の制御下に置いたことで初めて安全なメモリ自動解放を実現した
C++がいかにダメな言語なのかをもう少し勉強したほうがいい
2022/08/27(土) 23:38:25.67ID:WqKrPeWc
安全なメモリ管理ってw
単に関数でnewしたものを保存してスコープが切れたら解放するだけでしょw
それC++でFile file;のように宣言したのと概ね同じなんじゃね?w
2022/08/27(土) 23:43:33.94ID:sUJYl6Ez
Rustはオワコンだからあんま使いたくないな
2022/08/27(土) 23:45:55.57ID:UglcSwzZ
>>882
まずC++がメモリ管理バグを生産し続けている仕組みを学習すべきだな
それまでこのスレに出入り禁止
2022/08/28(日) 00:56:35.98ID:7IFudYOE
C++にはtemplate反対派もいるから
バッファ<T>の代わりにtemplateを使わないやつを再発明することで
オーバーランも再発し続ける
2022/08/28(日) 05:26:11.72ID:qfec6UU9
>>881
Rustの解説にもある通りRAIIがベースで、自動変数の応用例だけどな。

C++は元々cをコンパイルできるという大原則があって、その原則からスマートポインタ強制とかは行っていない。Rustはそのあたりのしがらみを捨てているんだからああなるだろ。
RustもC++の複雑さに加えてHaskellの難しさも取り込んでいるから、絶壁の学習曲線問題は悪化している。置き換えが進むのはc/c++の一部の領域のみで、Javaの領域とか食えないと思うわ。
2022/08/28(日) 06:06:08.65ID:yYM00GDu
>>886
その件でRAIIや自動変数と言い出してる時点で把握不足
それは以下の非常に大雑把に分けた3段階のうちの最初の(1)の部分でしかない

(1) RAIIとデストラクタ
(2) 所有権とその移動
(3) 借用とライフタイム

>>882も(1)止まり
>>880は(2)止まり
(1)と(2)だけではダングリングポインタの発生を防げない
2022/08/28(日) 07:28:26.48ID:/BN7SwZG
>>886
Rustの難しさがC++の難しさを引き継いでいるのかは疑問に少し疑問だし、Haskellの難しさに至っては全く受け継いでないと思うぞ
型に対する要求は小さいし、関数が純粋であることも求めてないし、遅延評価をベースにしてもいない
2022/08/28(日) 10:48:45.36ID:7IFudYOE
サブスクやリボ払いじゃないんだから
よく似た難しさに10回出くわしたら1回あたりのコストは1/10になるんだよ

まあそうなると「コスト」とは何かを定義するのが極めて困難になるんだけど
2022/08/28(日) 12:11:47.01ID:kDu69pxs
RustやC++やHaskellの難しいポイントってそれぞれ具体的にどういうところを指してるの?
単に難しさと言われても人によってイメージするもの違うのでは
2022/08/28(日) 12:52:57.69ID:XrBOFvee
Haskellの難しさは対象ドメインの一般的理解よりも一段二段高い抽象度を意識したプログラミングが必要なところ
2022/08/28(日) 13:12:40.64ID:7IFudYOE
Lisp世代とErlang世代の間に暗黒時代がある
モナドと型推論のプロトタイプもその時代にある
検索しても多分辿り着けないのは検索エンジンが原因でしょ
2022/08/28(日) 13:38:45.23ID:eQVF2PFY
トレイトとライフタイムが難しい
2022/08/28(日) 14:28:30.61ID:5fPmE595
>>893
トレイトはシンプルで分かりやすいけど
クラスが非常に難しい

例えば複数の型に共通する機能性質とメソッド群を用意したいことはプログラミングでよく発生する場合
トレイトだと複数の型々に関係なく独立してそのまま用意して各型に実装するだけだけでいいけど

クラスだと継承でやるにはその型自身に継承しなきゃいけなくて多重継承になったり継承ピラミッドが複雑化
あるいは継承は破綻するからメソッドを増やす別の方法を拡張して使い何のためにクラスを使っているのか本末転倒になる
結局クラスと型が分離できていないことにも問題が多い

Rustでは型とトレイトという二つの直交した概念だけで全てが済むからシンプルで分かりやすい
クラスも継承もないのはRustだけでなくGoでもそうだけど今までクラスと継承で遠回りしてきたプログラミング言語の到達点かなと思う
2022/08/28(日) 15:06:53.82ID:17VtAmCD
>>894
インターフェースも知らんのか?
2022/08/28(日) 15:17:26.17ID:WHMHQcXx
トレイトも型なのに何言ってんだこいつw
2022/08/28(日) 15:26:53.46ID:7IFudYOE
>>895
Linusを怒らせたのはそういう所だな
C++を知っていても使わない自由があると言いながら
実際に使わない者が現れれば「知らんのか?」とミスリードしてくる
2022/08/28(日) 15:34:27.90ID:MtWOn5Ys
>>897
C++にはインターフェースが無いことも知らんのか?
そりゃリーナスも怒るわw
2022/08/28(日) 15:39:21.95ID:ntsn5RH7
C++も素のままならまだいいのだが
やっぱり癌はSTLなどのライブラリや例外だな
内部で勝手に動的にメモリ確保したりとかするなよってw
2022/08/28(日) 15:57:21.77ID:5fPmE595
>>895
そのインターフェース等を批判してることを読み取れないのか?
クラスとインターフェースの2種類が必要となってしまっている
トレイトだけで済むRustがシンプルで分かりやすいことを認めたわけだな
2022/08/28(日) 16:07:51.94ID:uFtLPU6J
分かってなさそう
2022/08/28(日) 16:15:35.13ID:5fPmE595
>>896
トレイトは型ではない
例えばCopyトレイトやDisplayトレイトなどの既存のものから自作のものまで自由にトレイトを作れるが
それらトレイトはもちろん型ではなく機能や性質を示すだけである
ある型を作ったときにそれら任意のトレイトを実装するか否かは自由であり
あるトレイトを作ったときにどの型に対して実装するか否かも自由である
2022/08/28(日) 16:21:02.87ID:eCF2zYYC
スパゲティーは苦手だからCarbonに期待
2022/08/28(日) 16:22:01.22ID:0b1WGCJ7
Rustでは型とトレイトという二つの直交した概念だけで全てが済むからシンプルで分かりやすい

クラスとインターフェースの2種類が必要となってしまっている

ほーん
2022/08/28(日) 16:33:32.30ID:Lrz1i+MR
つまりクラスとか継承とかそんな複雑なものは要らないよな
型とインターフェースだけがあればいい
Goは実際にそうなっている
2022/08/28(日) 16:33:43.64ID:kDu69pxs
>>893
ライフタイム以前よりはかなり簡単になったけどまだ引っかかりどころは残ってる感じ?
2022/08/28(日) 16:44:44.59ID:UslCRvMa
>>900
Rustの公式リファレンスにもトレイトはインターフェースって書いてあるんですがww
2022/08/28(日) 16:48:30.90ID:5qFsJjmO
>>900
Rustはstructとimplとtraitの3種類が必要としまってますねwww
2022/08/28(日) 16:52:01.49ID:5fPmE595
>>907
そうだよ
インターフェース自体を問題にはしていない
クラスに加えて結局インターフェース等も必要としている状態を批判している
それならばGoやRustのように最初からクラスは無い方がシンプル
2022/08/28(日) 17:01:29.35ID:5JaYE9jd
C++20でconceptというのがあるんだな
これは知らんかったわ
C++も大変だねー
911デフォルトの名無しさん
垢版 |
2022/08/28(日) 17:27:57.92ID:VCib2hQJ
rust は使ったことないがエラーメッセージが c++ より親切と聞いておる。
2022/08/28(日) 17:42:22.67ID:eCF2zYYC
ここに書き込んでるヤツのせいで本当にrustが嫌いになったわ
913デフォルトの名無しさん
垢版 |
2022/08/28(日) 17:47:23.10ID:ARvglkbX
>>912
他人の意見ばかり気にしてないで、自分で判断したらいいのに
2022/08/28(日) 18:01:38.50ID:9BfrdysB
>>897
別にリーナス怒ってはないやろ
mallocで失敗したくらいで強制終了するしかないポンコツは流石に使えんわって言っただけで
2022/08/28(日) 18:04:31.62ID:e6Sjxbuq
>>911
C++と言うより原理的にテンプレート絡みのエラーメッセージはわかりにくいわな
まあそこは言語組込のrustに軍配上げるしかない
2022/08/28(日) 18:12:18.75ID:ZW7HH5qp
> クラスとインターフェースの2種類が必要となってしまっている

class に加えて interface があるのは救いなんだがw
実装ではなくてインタフェースに対してプログラミングせよ
ってのを実践するのに丁度いい潔い言語機能なんだが
2022/08/28(日) 18:24:29.65ID:7IFudYOE
interfaceでできることは (多重継承禁止しなければ) classでもできる
この客観的事実を、鬼滅棒みたいに振り回す人
と仲良くなるところまでがC++の難易度です
2022/08/28(日) 18:31:25.88ID:ZW7HH5qp
個人的にはC++でIFooとか涙ぐましいことやってんのも受け入れられるよ
問題は、言語ユーザが実装とインタフェースを分離したいという発想を持ってるかどうかだから

もちろんそうなったとき、よりスッキリすんのは言語として interface があるほうだよねって話
919デフォルトの名無しさん
垢版 |
2022/08/28(日) 18:34:20.72ID:RvFPV5Qc
そもそもC++はオブジェクト指向言語ではないのでインターフェースは必要ない。
2022/08/28(日) 18:36:05.49ID:ii1XaHH8
>>903
Rustを使えば避けられるよ

>>908
implは単なる接着剤だよ
Goのように接着剤なしで書く方式もあるように
接着剤であるimplはそこで言う種類じゃないよ
921デフォルトの名無しさん
垢版 |
2022/08/28(日) 18:39:21.55ID:RvFPV5Qc
そもそもRustは仕事がないのでimplは必要ない。
2022/08/28(日) 18:40:17.57ID:ii1XaHH8
>>918
うん
インタフェースは必要でむしろクラスが要らないよね
そのわかりやすい道を選んだのがGoとRust
923デフォルトの名無しさん
垢版 |
2022/08/28(日) 18:44:55.39ID:RvFPV5Qc
Rustは仕事がない。
Goは仕事がある。
この差は大きい。
2022/08/28(日) 18:45:28.11ID:iJSRjwGP
雇われ仕事はな
2022/08/28(日) 18:46:02.45ID:eCF2zYYC
>>913
自分の判断ではrustはスパゲッティだから
2022/08/28(日) 18:47:05.71ID:eCF2zYYC
ていうか、Rustって使ってる人少なすぎじゃね?
2022/08/28(日) 18:48:13.72ID:TZ0QCmjM
メソッドが無いってんならともかく、クラスが無いと言っても明示的なクラス定義に比べてソースコードの物理的レイアウトの自由度が高いというくらいの話でしかないでしょ
そんなドヤ顔で語るほどのことでもない
2022/08/28(日) 19:04:58.89ID:ii1XaHH8
>>925
少なくとも他の言語と比べたらスパゲティになりにくいね

>>927
メソッド自体はクラスと関係なくてクラスベースのプログラミング言語でなくても存在するものだよ
クラスを特徴付けるものはクラスの親子関係を示す継承だね
GoとRustに継承はないからクラスとは明確に異なるよ
2022/08/28(日) 19:06:04.35ID:TZ0QCmjM
クラスに継承は必須ではないよ
VBAのクラスに継承は無いぞ?
930デフォルトの名無しさん
垢版 |
2022/08/28(日) 19:06:48.27ID:RvFPV5Qc
Rust、Haskellは仕事がない。
2022/08/28(日) 19:07:23.94ID:L4K2SyLA
>>920
implは操作の定義
structはデータの定義

この2つを分けたことの意味が分からないようならRust辞めたほうがいいよ
932デフォルトの名無しさん
垢版 |
2022/08/28(日) 19:08:15.18ID:RvFPV5Qc
始めても居ないだろ。
2022/08/28(日) 19:16:42.43ID:p0vNwv3L
Goのimplicitなインターフェース実装よりも
Rustのexplicitなトレイト実装のほうが断然いい

ただJavaと違ってC#やSwiftならExtensionで後からクラスにインターフェース実装追加できるからGoやRustの方式が特に優れてるわけでも無いと思うけどね
2022/08/28(日) 19:25:12.79ID:ii1XaHH8
>>929
VBAは他にもできないことや制限されることが色々とあるから置いときましょ

>>931
違うよ
implは『実装』の定義だよ
structは(構造体の)『型』の定義だよ
2022/08/28(日) 19:32:34.36ID:Lrz1i+MR
>>933
優れてるかどうかは誰も言っていなくて
元々の話はRustはトレイトがあるから複雑で難しいとかいう批判に対して始まった議論やろ
実際にはクラスとそれに纏わる諸々がないからGoもRustもクラスのある言語より簡単でわかりやすくなってる
2022/08/28(日) 19:39:33.75ID:jYJ6rDEN
importしないと使えないメソッドがあるのが理解できない
2022/08/28(日) 19:45:44.96ID:BvDaIb58
問題はクラスではなく副作用だよ
勘違いするなよ
クラスのメンバーが途中で書き換えられたりしなければ問題はないのよ
2022/08/28(日) 19:49:05.31ID:lJnoAt2m
rustはstructのフィールドごとにmut設定できないので欠陥言語
2022/08/28(日) 19:53:38.21ID:fprIa6qZ
次スレのタイトルは

次世代言語28 Rust

にしとこうか?
940デフォルトの名無しさん
垢版 |
2022/08/28(日) 19:55:42.04ID:RvFPV5Qc
仕事がない言語に未来はない。
2022/08/28(日) 20:11:14.04ID:iJSRjwGP
仕事があっても未来がない言語の方が多い件
942デフォルトの名無しさん
垢版 |
2022/08/28(日) 20:17:59.03ID:RvFPV5Qc
RustはPHPより優れているんだ!!といくら主張しようとも。
Rustは仕事が無くてPHPは仕事があるんだから仕方がない。
レス数が900を超えています。1000を超えると表示できなくなるよ。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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