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

■ このスレッドは過去ログ倉庫に格納されています
2020/04/19(日) 15:06:02.92ID:jAOW5aqE
スレタイ以外の言語もok

前スレ
次世代言語18 Go Rust Elixir Kotlin TypeScript (実質20)
https://mevius.5ch.net/test/read.cgi/tech/1569866283/
2021/04/17(土) 17:29:58.69ID:GZ3nvsuU
>>751
C#で言うInnerException的な?
まあ、業務ロジックでハンドリングするならアプリケーションで定義した例外に包むわな、確かに。
2021/04/17(土) 22:12:19.57ID:IisFsCzs
Javaの検査例外は直上でのハンドリングを強制したのが失敗
Goみたいに一種類だけならまだしも、全種類はさすがにノイズになりすぎた
コンパイル時にチェックしたいだけならthrowsは暗黙的にコンパイラが生成し、最終的にキャッチされないままの例外があったら警告出すくらいで十分だったんだよ
結局Javaはmulti catch導入して、型を緩める方向に舵を切っちゃった
2021/04/17(土) 22:53:24.71ID:/69X/cno
throwsを暗黙的に生成するのはそんなに簡単じゃない気がする
2021/04/17(土) 22:59:40.59ID:WqZ6rzHC
検査例外がというより、そこは例外に多彩な型を持たせること自体が失敗だったと言うべきだろうな。
例外というものは呼び出し階層の複数の階層を越えて上位層が下位層に依存してしまうんで
それをSOLID原則のに従うようきっちり依存性逆転させるのは骨が折れる。
2021/04/17(土) 23:31:17.79ID:dnL36O9R
例外の型って大抵デバッグ目的で持たせるエラー情報の種別に応じて作られるわけだけど、
それってプログラムでのエラーハンドリングの制御とは異なる関心事なんだよな
それをごっちゃにしてしまったのがJava系の例外の失敗だと思う
プログラムの制御にとっては、成功、リトライ可能な失敗、リトライ不可な失敗、くらいの分類があれば十分で、それ以上細かくしてもノイズになるだけ
2021/04/18(日) 00:47:22.61ID:z4d4288G
プロセスやスレッドを起動するならexitでいいのに
シングルタスクでイベントループを終了しないで続けるためにthrowとcatchがある

上位層が下位層に依存するのはシングルタスクの欠点だが
それは旧世代言語の欠点だというのがなぜか定説になってしまった
2021/04/24(土) 08:05:00.86ID:8O98k7om
> 例外というものは呼び出し階層の複数の階層を越えて上位層が下位層に依存してしまう

これどういうこと?
上位下位というのは継承関係?コンポジションの関係?
いずれにせよピンと来ないんだが
759デフォルトの名無しさん
垢版 |
2021/04/24(土) 08:18:28.13ID:8O98k7om
https://ideone.com/gvbImJ
class A {
void foo(int value) {
if (value != 42) throw new IllegalArgumentException();
}
}
class B {
void bar(int value) {
new A().foo(value);
}
}
class Ideone {
public static void main(String[] args) {
try {
new B().bar(0);
} catch (IllegalArgumentException e) {
e.printStackTrace();
}
}
}
たとえばこう↑したとき
どこに「上位層が下位層に依存してしまう」部分があるの?
2021/04/24(土) 09:21:13.32ID:PpOY6z/o
呼び出し海藻だろ
2021/04/24(土) 10:02:36.99ID:K4uxnQki
>>759
A が IllegalArgumentException を投げるかもしれないという事実に Ideone が依存している。
2021/04/24(土) 12:02:10.01ID:X9M/vDl3
>>761
そのことをもって「上位層が下位層に」と表現しているってことでおk?
2021/04/24(土) 12:15:38.69ID:h2P4AVL3
だいたいその認識だったな、俺も。
2021/04/24(土) 15:59:57.86ID:tHtLe+wG
IllegalArgumentExceptionならまああまり依存してる感はないかもしれない
特に問題になるのは、FooException のように、barがfooに依存しているという事実を晒してしまうような例外を投げるケースだな
2021/04/24(土) 20:23:23.95ID:UtBZJqS8
やっぱJavaってオワコンなのか書店のJavaコーナーどんどん縮小してるし
以前はJavaコーナー一番広かったのに最近は大概他の言語(Python,JavaScriptなど)に負けてるな
何はともあれ業務上必要で売れるならある程度の面積は占めるはずなんだが
766デフォルトの名無しさん
垢版 |
2021/04/24(土) 21:19:03.86ID:pIwkRpva
俺がインターンの子にジャバをやらされる企業には絶対いくなといってるからだろうな
2021/04/24(土) 21:44:59.76ID:tDy/GOTv
新卒奴隷送り込む商売がやりづらくなっただけなのと
六ヶ月リリースになって書籍が追いつけなくなっただけでしょ。

「やさしいjava完全に理解した!」が減っていいことだ。
2021/04/25(日) 04:27:20.08ID:HtPKTQ5q
リリースに出版が追いつかないだけの理由なら別に書籍のコーナースペースが縮小したりしないと思う
スペースが狭くなってるって事は需要の絶対数が減ってるからでJavaをやる新人ってのが減ったのは確実なんだろうな
2021/04/25(日) 05:12:25.49ID:fxJVYt9g
ただ単にkotlin使うようになっただけでしょ
まだまだjvm使ってるとこは多いと思う
今後はわからんけどね
2021/04/25(日) 06:29:37.85ID:NMiXqa1m
Javaが採用されてきた大きな理由の一つとして、実行環境としてUNIXをターゲットとする場合に、工員の開発PCがWindowsでも比較的支障が少ないってのがある
ただ最近では業務系でも開発にMac使うところは増えてきたし、
.NETもLinuxに対応したりNode.jsやPythonも主にUNIXで運用される主要なスクリプトの中では比較的Windowsの相性が悪くない方だったりして、ライバルも増えた
そもそもクラウドやコンテナの普及のせいで、直接Windows上で開発するということ自体がこれまでよりも困難になってきているし、Windows自体もWSLにより完全なUNIXを備えてしまったためこれまたJavaに拘る理由がなくなってしまった
2021/04/25(日) 06:56:54.09ID:wIbtFVmU
売り場面積が根拠ならjava云々でなく単に棚分類コードの関係で書店の扱いがいいジャンルに業界がシフトしてるだけの話よ。
鉄板はEXCEL本、python本、後は今ならディープラーニング関連かな。
オライリー・ジャパンですらwebもプログラミングも関係ない分野の本出してんの知らない?
javaならむしろ去年の六月にswingの新刊出てる。

>>769
kotlin使うようになったらからが理由ならscala使うようになった頃に取って代わってるだろうね。
2021/04/25(日) 13:13:44.43ID:oFpMkyEJ
Java は、GitHub に銀行のソースコードを上げた人とか、
20年やっても年収200万円とか、IT 土方の多重請負構造で、
客には1人月100万円を請求しているはずが、80万円抜かれる

プログラマーに還元されない。
というか、関数内だけを作っている、
システムを作っていない単純コーダーだから

工事現場の見習いみたいな感じ

そのIT業界の多重請負構造を、
YouTube で有名な、雑食系エンジニア・KENTA が、
ばらしてしまったので、日本中に広まった

IT土方Java vs 自社開発系Ruby
SES のモロー vs KENTA
2021/04/25(日) 13:18:37.83ID:KtTIhOup
推奨NGワード: 土方
推奨NGワード: 請負
推奨NGワード: 雑食
推奨NGワード: KENTA
推奨NGワード: 自社開発
推奨NGワード: Ruby
推奨NGワード: SES
推奨NGワード: モロー
2021/04/25(日) 15:27:32.41ID:HtPKTQ5q
ちなみに言語じゃないけどDenoってこれから伸びる可能性あるんかね?
2021/04/25(日) 15:38:35.22ID:8jr05iQT
もしかしてDartって若干伸びてきてる?
2021/04/26(月) 08:02:24.55ID:xaTdJ+wC
Youtubeよりも5chで荒らしとして有名になってる件
2021/04/26(月) 10:52:47.24ID:vu3N8V9m
denoというかwasmがくるよ
2021/04/27(火) 01:13:44.64ID:ybAp8EWh
ということはRustが来るのか
2021/04/28(水) 11:37:01.99ID:3EuQZ3Ew
実際にプロジェクトで使ったことない人には定評あるね
2021/04/28(水) 12:18:47.51ID:Gm/vyyE5
インフラとか組込とかミスの許されない/修正リリースできない現場は
形式証明機能のある言語を実際に使うとか聞いたで
F*だかidrisだか忘れたけど
ググったらRustでもCHCソルバでプログラム検証しまーすとか普通にでてくるし
クリティカルなとこではちゃんと使われてんじゃないかい
2021/04/28(水) 13:26:23.31ID:GFgIUmSe
大規模開発で使うっていう都市伝説が検証されるだけで一歩前進か
2021/04/28(水) 16:26:28.05ID:3EuQZ3Ew
そんなとこで使われてるわけねーだろ。。
その手の証明ツールを使ったことあればわかるがテストコード書く方がまだまともなアプローチだわ。
実際に使われてるのは不確定性をうまく論理化してプロトコル検証をするって使い道はある。
そう言う使われ方は分散アルゴリズム周りでは少しやってるとこもあるがほんの一部だわな。
2021/04/28(水) 16:31:19.72ID:yDqZolk/
組込みRustという本がちょうどこの前出たぞ
784デフォルトの名無しさん
垢版 |
2021/04/28(水) 21:17:46.00ID:85tuN82O
意図もわからずなんとなく動くからそのメソッドを使い、借用をつければなんとなく動くから 借用し、
変更する予定はないけどmutし、ここはエラーだからとpanic!し、補足するなと言われているのに
catch_unwind/recoverして、血の涙で泣きながら渡されたソースをシコシコ直すおまいら・・・
rustのどこが良いか全然わからない
2021/04/28(水) 23:38:51.58ID:2VQTxO/e
マルチするな
2021/04/29(木) 07:18:17.94ID:KLHt34b8
ちょっと改変すればどの言語にも適用できそう
というかそういう元ネタあんのかな?
2021/04/29(木) 10:33:36.01ID:tR6uAqfq
補足?足なんて飾りです!偉い人にはそれがわからんのです!

早くモデル検査が当たり前になぁれ!
2021/04/29(木) 12:41:21.56ID:JBnzphH4
>>781
大規模開発ってプロジェクト人数が多そうだし精鋭にはならんだろうから寧ろ不向きだろうって直観的に思う
2021/04/29(木) 12:43:37.33ID:JBnzphH4
>>783
この前それ立ち読みしたけど去年秀和から出た実践〜の8章理解しとけば十分な気がした
2021/04/29(木) 14:27:34.72ID:earX3YoR
>>786
>ちょっと改変すればどの言語にも適用できそう
ほぼこれが主張だぞ。
2021/04/29(木) 15:23:01.97ID:bEP8m5yM
落ちないからヨシ!
2021/04/29(木) 22:26:54.16ID:3tiS91aO
検査で「偽陰性」になったソースを渡されたら血の涙で泣く
ということは
血の涙が出たら陽性、という検査を追加すればいいんだろ
793デフォルトの名無しさん
垢版 |
2021/04/30(金) 16:54:11.94ID:U7XnfxJa
個人的には
どの次世代言語がいいかじゃなくて
次世代言語にはどんな言語機能を備えていてほしいかで語ってほしい
2021/04/30(金) 17:05:12.65ID:8uDUVNfy
いうほど必要な機能なんてない。
ここ50年の結論はバカは何使ってもバカということだろう。
2021/04/30(金) 17:34:44.55ID:8aEpEI3N
用途によって欲しい機能が違うんだからすべてを満たす言語が出来るはずがない。
796デフォルトの名無しさん
垢版 |
2021/04/30(金) 18:12:44.65ID:U7XnfxJa
macroとか型クラスとかあるやろ具体的には
2021/04/30(金) 18:16:43.42ID:TuBhqj3T
ようとに応じた欲しい機能すべて実装すりゃいいだけだろw
2021/04/30(金) 20:12:42.07ID:19g7m0Bn
「二刀流はズル」という価値観を捨てれば矛盾する機能でも両方実装できる
2021/05/01(土) 19:29:31.85ID:wiEZYnrW
結局必要なところはcで書いてバインディングできるような言語設計をほとんどの言語が行なっている。
それが答えだろ
2021/05/01(土) 21:16:05.18ID:0VFft9ft
いや、違うと思う
2021/05/02(日) 16:15:43.74ID:F4olHNfs
レガシーコードとの連携のためとかいいわけしながら
結局ユーザー2層構造が暗黙の仕様になってるような
2021/05/03(月) 23:13:29.51ID:AyvebyYK
ちなみにおまいら具体的にはどの言語に手を出した事あるの?
803デフォルトの名無しさん
垢版 |
2021/05/03(月) 23:22:14.10ID:N/p1rn3A
Java,C,VB.NET,C#,F#,Haskell,Elm,Rust,Idris2

F#とIdrisがすこ
2021/05/05(水) 04:20:34.48ID:roWASgUj
どっちも流行ってないね
お前の逆を行くと良さそう
2021/05/05(水) 11:02:40.08ID:1EwqoC8k
最近あんまGoって聞かなくなったけど使われてるとこでは使われてるの?
2021/05/05(水) 12:40:27.37ID:A+0MNUzo
5月生まれって約12人に1人しかいないので
逆を行くと良さそう
2021/05/05(水) 12:53:07.09ID:UNdhfIGe
>>805
kubernetes, dockerなんかはgoだよ。普通にメジャーどこのツールで使われてる。
2021/05/05(水) 15:42:00.03ID:wt31bFvh
>>805
GitHubもGoで書き直しを続けてる
2021/05/06(木) 20:12:11.27ID:zqd1xc9I
>>170
結局次世代言語の将来性を格付けしてもこの順位と同じような感じなんだろうか?
2021/05/06(木) 20:44:53.95ID:3RkG7Oy1
次世代のThe 4強って感じだな
2021/05/06(木) 20:45:30.10ID:3RkG7Oy1
順位は入れ替わるとしても4枠だとそれになるよねって感じ
2021/05/06(木) 22:41:04.82ID:pupGSg3O
俺的にはその中のKotlinだけは無いような気がする
2021/05/06(木) 22:54:04.28ID:pZ3qKppe
GoとTSはもはや現世代言語では
2021/05/06(木) 23:22:17.53ID:7m15cXg/
確かにGo,TS,Swiftあたりは現世代っぽい。Kotlin,Rustが次世代になるかどうかって感じかな。それ以外は今のところそんなに見込みはなさそうなイメージ。
2021/05/06(木) 23:37:16.07ID:pupGSg3O
Dartはたぶんワンチャンあるよ
2021/05/07(金) 00:00:45.03ID:7aFGtcIv
DartはFlutter以外使い道ないじゃん
2021/05/07(金) 01:09:50.19ID:hw+Y6lA+
Kotlinってなんかそんなに言語として斬新な要素あるの?
2021/05/07(金) 01:35:30.75ID:5At20QA4
>>816
Flutter以外だとAngularDartくらいかな
CLI/CUIアプリも書けるようになってサーバ側にもDart使ってねとアピールしてた覚えがあるけど、Goと競合するからヤル気は無いか
2021/05/07(金) 06:25:02.61ID:NSZr4Jfs
>>817
スポンサーみたいな企業がついてるんじゃないか
だからこそ中止した方がよさそうなものも中止できない
それはそれで斬新ではある
2021/05/07(金) 07:37:08.01ID:cRde4Qbm
Dartはシングルバイナリ作れるようになってCLIやサーバサイドでも少し面白くなってきた感じがあるな。
ただ、まだまだパフォーマンス面で煮詰まってないのか、少々不安がある。
とりあえずflutterのおかけで生き残るとは思うけど。

言語仕様としてはめっちゃいい言語になってきたと思うよ。
2021/05/07(金) 08:00:53.60ID:bbfty56w
flutterをkotlinで作れば良かったのにと何度思った事か
2021/05/07(金) 12:13:05.66ID:BGqObswG
関数型が来るよおじさんはどこ行ったの?
823デフォルトの名無しさん
垢版 |
2021/05/07(金) 12:30:03.85ID:pGxnrrWp
関数型おじさんはRustで俺ツエーしてるでしょ
トレイトとかhaskellの型クラスみたいなもんだし型システムで健全性チェックみたいのも良くある話だし
2021/05/07(金) 15:13:14.00ID:fhUdknzL
一昔前でいう関数型とかムーブコンストラクタとかみたいなのに相当する
最近熱い言語要素って何かありますか
2021/05/07(金) 15:18:50.47ID:dF0LJIle
そりゃあAlgebraicEffectsだろう
2021/05/07(金) 15:54:52.11ID:XbWp/RIC
>>817
goみたいな方向性でしょ。javaよりも少しシンタックスを楽にしようって感じで。
2021/05/07(金) 15:56:02.31ID:XbWp/RIC
rustは一人でテキトーにやる分にはいいけど、マンセーしてるバカと一緒には絶対やりたくないなと思う言語だわ。
2021/05/07(金) 16:41:28.94ID:/bDSijiL
>>826
最初はそうだったけど、他の言語をパクリ終わって以降は変な色気出しはじめて迷走してるよ
Scala化しつつある
2021/05/07(金) 17:12:25.81ID:cUNZpGqh
Kotlin/JSとかKotlin/Nativeとか期待してたのに残念
元々AltJSかつネイティブコードも吐けるDartの方が良さそう
2021/05/07(金) 18:50:25.85ID:Q+CdxRnT
Dart復権は集合的無意識レベルであるわ
2021/05/07(金) 19:57:54.03ID:4XrAAqdx
>>829
これ。Kotlinには結構幻滅した。
言語が自由すぎて俺用言語になりがちなのもつまらん。
俺もDart使ってる。
2021/05/07(金) 20:05:54.83ID:VYSfS6Cp
Kotlinは言語仕様がいろいろしょぼいよね
scalaのほうはまだ色々見所あるけど
(でもよーく見ていくとscalaもしょぼい)
833デフォルトの名無しさん
垢版 |
2021/05/08(土) 00:19:20.89ID:4nIz2VjA
気にすんな
834デフォルトの名無しさん
垢版 |
2021/05/08(土) 12:11:47.96ID:rOsHiSsL
Nimこそ至高
2021/05/08(土) 12:42:03.12ID:+hZHCXv2
JavaScriptをシェルスクリプトとして使う言語が登場しました
https://github.com/google/zx
836デフォルトの名無しさん
垢版 |
2021/05/08(土) 15:21:41.42ID:Jy6pPGdO
>>827
+1
2021/05/08(土) 21:52:45.82ID:3j1PPyAz
rustに親殺されたマンこんなところに居たのか
2021/05/08(土) 22:27:28.17ID:OofXJFgO
狂信者が今日もお参りに来とるな
839デフォルトの名無しさん
垢版 |
2021/05/08(土) 22:47:20.87ID:rOsHiSsL
Golangこそ日常
2021/05/08(土) 23:33:06.25ID:7jQvdrDZ
Haskell然りPureScript然りScala然り高階多相があるとついモナモナしてしまうからかめちゃめちゃ流行るって感じが無いように思ってしまう
前二者は純粋関数型ゆえ現状ほぼ必須なんだろうけど、副作用の切り分けとしてそこまで求められる事が多くないというか
2021/05/08(土) 23:56:49.07ID:NHJ/sacw
KotlinってJVMで動くJavaじゃない言語って以外なにかアドバンテージある?
842デフォルトの名無しさん
垢版 |
2021/05/09(日) 00:03:24.52ID:xjCmVSLJ
ある
843デフォルトの名無しさん
垢版 |
2021/05/09(日) 02:57:32.93ID:X/f4ub91
見上げて〜Golang〜♪
2021/05/09(日) 08:21:48.84ID:JOIqNJHx
>>840
高階多相がない場合は
モナドクラスの中で最も万能なインスタンスを一つだけ選ぶ事が当面の目的になる
流行る流行らないは取捨選択の手段であって目的ではない
2021/05/09(日) 08:54:38.49ID:Fe8ik3AV
VM言語は起動がやっぱり遅いからなぁ。
.NETもReadyToRunしても限界があるし。
とはいえスクリプト言語もやりたくはなく。
nodeがネイティブコンパイルなり、ReadyToRun的な事ができるようになってくれたら言うことがないんだが、
最近GoかDartばっかり書いてる。
2021/05/09(日) 09:02:23.88ID:LRzrm/HN
Dartは何がいいの?書いたことないからわからん
見た目からもエロスは感じんし
2021/05/09(日) 09:12:03.41ID:Fe8ik3AV
俺もflutterから入ったんだけど、なんせ無難。
基本的にシングルスレッドだけど、容易に他スレッドと連携できたり(ただGoほどコンテキストスイッチが軽くはない)
色んなAPIがasync awaitネイティブなので深く考える必要なく非同期で書ける。
その割にちゃんと型安全だし、VS CodeのExtensionもよくできてて書きやすいよ。
標準でコードに対して静的解析かけられるのもありがたい。
配布がAOTかけたネイティブバイナリにもなったし。
ライブラリも増えきたし、良い事多いかも。
2021/05/09(日) 09:34:29.08ID:8EA3HxZH
>>844
流行る流行らないが取捨選択の手段であって目的でないのは全くその通りなんだけど、そういう言語のユーザは人口の価値を過小評価し過ぎじゃない?と思う事があるよ
ここで言いたいのは、流行ってないって事はその機能の内いずれかがそれほど求められてないって結果じゃない?(そして今回の場合それは高階多相だし、モナド系列の抽象化やそれで提供される副作用や機能の分離じゃない?)という話

まぁその流れだとカリー化+部分適用とかも求められてない可能性があって辛みなんですが
849デフォルトの名無しさん
垢版 |
2021/05/09(日) 09:38:57.23ID:C27W5P5q
Rustは流行らない、なぜなら流行ってないからだ
2021/05/09(日) 10:32:20.15ID:LUIc58fP
シンタックスとかしょーもないことに力入れないで
ビルド速度とGC性能あげりゃいいってのがgoの結論だわな。
バカにしたがってくっだらない機能を入れる必要なんかないわ。
2021/05/09(日) 10:52:01.42ID:Tn6vGXh8
しくったら修正リリースすればいいっしょ?っていうスタイルの事業とリリースのコストが半端ない事業とを
ごっちゃにするから訳わかんねー結論になる

前者は馬鹿でも扱える軽量級言語、
後者は型パズルとかないとコンパイルもできない重量級言語が良い
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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