次世代言語21 Go Nim ..
765:デフォルトの名無しさん
21/04/16 20:10:02.72 U88khvJX.net
>>738
うーん、他の言語もタプルとかとして受け取るなら一部だけ受け取るなんてこと出来ないんだし、一般的な仕様だと思うけどな。
766:デフォルトの名無しさん
21/04/16 22:00:20.82 iRzpcHGc.net
>>739
その部分だけで考えれば普通なんだけど言語全体で考えるとバランスが悪い感じ
Openの方は
f, err := os.Open(..) // errを使わないとコンパイルエラー
f, _ := os.Open(..) // 敢えてエラーチェックはしない
の二択だけど、Closeの方は
err := f.Close() // errを使わないとコンパイルエラー
_ := f.Close() // 敢えてエラーチェックはしない
f.Close() // エラーチェックしないの?
の三択になって、例外を使わずに変数の使用を強制することでエラー処理を明示的にするっていう
Go言語のスタンスがぼやける気がする
(そのスタンス自体が私の思い違いかもしれないけど)
Closeだとエラー無視しても大したことないけど、Chdirあたりだと
エラーをスルーできて例外も飛ばないのは危険さを感じてしまう
C言語と同じだと言えばそれまでだけど、変数の不使用はコンパイルも通さないのに
戻り値の不使用は警告も出さないっていう仕様はアンバランスだと思った
767:デフォルトの名無しさん
21/04/16 22:43:53.10 U88khvJX.net
>>740
errを使わないとコンパイルエラー、は違うよ。
_ = err
と捨ててもコンパイルエラーは避けられる。
例外を使わず、は正しいけど、変数の使用は実質強制されてない。
そういう、errを捨てるような書き方は、Javaのthrows書きたくないからとExceptionで大雑把に例外を握りつぶしてるメソッドみたいなもんで、躾の問題だと思うよ。
768:デフォルトの名無しさん
21/04/16 23:39:26.78 h4psCBcA.net
>Javaのthrows書きたくないからと
極刑を望む
769:デフォルトの名無しさん
21/04/16 23:53:42.11 iRzpcHGc.net
「使う」の意味が曖昧だったかな
errを使うっていうのはエラーをチェックをするという意味じゃなく
コードの中でそのerrをどう扱うかを明示するって意味で書いた
(普通はエラー処理だけど)
>>741の例だと
_ = err
の中で「そのエラーはチェックしない」って意図を明示するためにerrを使ったことになる
_ := f.Close()
と
f.Close()
の違いは、下の書き方だと
・そこでエラーが返される可能性
・そのエラーを無視するという意図
の2つが伝わりにくくなること
もしかしたらコードを書いた本人もCloseがエラーを返す可能性を見落としてるかもしれなくて
そうなると想定しない状態でプログラムが動き続けて予期しない結果を招くかもしれない
もしコンパイラが戻り値を受け取らないパターンを弾いてくれればそういう見落としは防げるようになる
(そこで何も考えず戻り値を捨てる書き方をして予期しない結果になったならそれはもう躾の問題だけど)
Javaで例えるならExceptionで握りつぶすというよりcatch(Exception)して何もしない感じかな
自分は「飲み込む」と表現してる
770:デフォルトの名無しさん
21/04/17 02:30:54.76 6GAIvEwc.net
そんなに説明しなくても>>736だけで十分わかるよ
URLリンク(github.com)
URLリンク(github.com) <― Rob Pike
771:デフォルトの名無しさん
21/04/17 02:59:32.14 Cl8a1wE7.net
同じこと言った記憶あるなあと思ったら一昨年だった
スレリンク(tech板:927番)
927 デフォルトの名無しさん sage 2019/09/29(日) 19:19:16.64 ID:siw3JIyP
deferのためなんだろうけど、返り値全捨てでの握り潰しがコンパイルエラーにならないのは不満
772:デフォルトの名無しさん
21/04/17 09:13:21.49 GZ3nvsuU.net
>>743-744
これは俺が不勉強だった。Issueも立ってたのか。
この議
773:論は確かに有益だな。 issueで書かれてるように、deferで雑に閉じたいとかそういうケースが確かに漏れるか、ってぐらいだな。 うーん、なかなかバランス難しいもんだな。 とはいえRustみたいな気難しいコンパイラになられるのもなかなかだし。
774:デフォルトの名無しさん
21/04/17 09:39:43.53 WqZ6rzHC.net
>>742
それは形式的に判断できるものじゃなくて、大雑把かどうかはその内容によるわな。
握りつぶしていい例外は存在するしそれは握りつぶしていい。
775:デフォルトの名無しさん
21/04/17 11:00:28.48 tBKly9ku.net
throwsを書くのは関数や変数の型を書くことと同じ
それに対し「型を書かなくていい変数は存在する」と
言い返したのと同じだから痛快だね
全ての変数に型を書くのに今までどれだけ無駄な努力をしていたか
776:デフォルトの名無しさん
21/04/17 12:15:23.05 WqZ6rzHC.net
>>748
Javaの検査例外はたしかに例外を型安全に扱うための仕組だけど、throwsを書かないのは
いわばvoid型のようなもので、型推論や動的型付けで型を書かないのとは違う。
777:デフォルトの名無しさん
21/04/17 12:35:03.15 GZ3nvsuU.net
検査例外は「ただの大域jmp、しかも行き先が自分ではわからないやつ」っていう例外の悪い部分をうまく取り扱うための、そこそこいい仕組みだと思うんだけど、
いかんせん例外で対応することが多すぎた気がする。
このメソッドより外側には漏れ出しません、ってのは俺はいい宣言だと思うんだけどな。
今はかなり改善されてるんだろうけど、Javaにいい印象なくてなかなかJava系の言語やる気持ちになれないや…。
778:デフォルトの名無しさん
21/04/17 13:37:15.96 GMKTrofB.net
Javaの例外処理は独自の例外クラスを作って低層の例外を取り込んでいく設計を知らないと
throwsの中身が膨れ上がって大変なことになるね
throwsが面倒っていう人は独自の例外クラスを作るのが面倒なんだと思う
GoとかRustは返せるエラー型が原則1つに制限されるから必然的にそういう設計を迫られる
779:デフォルトの名無しさん
21/04/17 17:29:58.69 GZ3nvsuU.net
>>751
C#で言うInnerException的な?
まあ、業務ロジックでハンドリングするならアプリケーションで定義した例外に包むわな、確かに。
780:デフォルトの名無しさん
21/04/17 22:12:19.57 IisFsCzs.net
Javaの検査例外は直上でのハンドリングを強制したのが失敗
Goみたいに一種類だけならまだしも、全種類はさすがにノイズになりすぎた
コンパイル時にチェックしたいだけならthrowsは暗黙的にコンパイラが生成し、最終的にキャッチされないままの例外があったら警告出すくらいで十分だったんだよ
結局Javaはmulti catch導入して、型を緩める方向に舵を切っちゃった
781:デフォルトの名無しさん
21/04/17 22:53:24.71 /69X/cno.net
throwsを暗黙的に生成するのはそんなに簡単じゃない気がする
782:デフォルトの名無しさん
21/04/17 22:59:40.59 WqZ6rzHC.net
検査例外がというより、そこは例外に多彩な型を持たせること自体が失敗だったと言うべきだろうな。
例外というものは呼び出し階層の複数の階層を越えて上位層が下位層に依存してしまうんで
それをSOLID原則のに従うようきっちり依存性逆転させるのは骨が折れる。
783:デフォルトの名無しさん
21/04/17 23:31:17.79 dnL36O9R.net
例外の型って大抵デバッグ目的で持たせるエラー情報の種別に応じて作られるわけだけど、
それってプログラムでのエラーハンドリングの制御とは異なる関心事なんだよな
それをごっちゃにしてしまったのがJava系の例外の失敗だと思う
プログラムの制御にとっては、成功、リトライ可能な失敗、リトライ不可な失敗、くらいの分類があれば十分で、それ以上細かくしてもノイズになるだけ
784:デフォルトの名無しさん
21/04/18 00:47:22.61 z4d4288G.net
プロセスやスレッドを起動するならexi
785:tでいいのに シングルタスクでイベントループを終了しないで続けるためにthrowとcatchがある 上位層が下位層に依存するのはシングルタスクの欠点だが それは旧世代言語の欠点だというのがなぜか定説になってしまった
786:デフォルトの名無しさん
21/04/24 08:05:00.86 8O98k7om.net
> 例外というものは呼び出し階層の複数の階層を越えて上位層が下位層に依存してしまう
これどういうこと?
上位下位というのは継承関係?コンポジションの関係?
いずれにせよピンと来ないんだが
787:デフォルトの名無しさん
21/04/24 08:18:28.13 8O98k7om.net
URLリンク(ideone.com)
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();
}
}
}
たとえばこう↑したとき
どこに「上位層が下位層に依存してしまう」部分があるの?
788:デフォルトの名無しさん
21/04/24 09:21:13.32 PpOY6z/o.net
呼び出し海藻だろ
789:デフォルトの名無しさん
21/04/24 10:02:36.99 K4uxnQki.net
>>759
A が IllegalArgumentException を投げるかもしれないという事実に Ideone が依存している。
790:デフォルトの名無しさん
21/04/24 12:02:10.01 X9M/vDl3.net
>>761
そのことをもって「上位層が下位層に」と表現しているってことでおk?
791:デフォルトの名無しさん
21/04/24 12:15:38.69 h2P4AVL3.net
だいたいその認識だったな、俺も。
792:デフォルトの名無しさん
21/04/24 15:59:57.86 tHtLe+wG.net
IllegalArgumentExceptionならまああまり依存してる感はないかもしれない
特に問題になるのは、FooException のように、barがfooに依存しているという事実を晒してしまうような例外を投げるケースだな
793:デフォルトの名無しさん
21/04/24 20:23:23.95 UtBZJqS8.net
やっぱJavaってオワコンなのか書店のJavaコーナーどんどん縮小してるし
以前はJavaコーナー一番広かったのに最近は大概他の言語(Python,JavaScriptなど)に負けてるな
何はともあれ業務上必要で売れるならある程度の面積は占めるはずなんだが
794:デフォルトの名無しさん
21/04/24 21:19:03.86 pIwkRpva.net
俺がインターンの子にジャバをやらされる企業には絶対いくなといってるからだろうな
795:デフォルトの名無しさん
21/04/24 21:44:59.76 tDy/GOTv.net
新卒奴隷送り込む商売がやりづらくなっただけなのと
六ヶ月リリースになって書籍が追いつけなくなっただけでしょ。
「やさしいjava完全に理解した!」が減っていいことだ。
796:デフォルトの名無しさん
21/04/25 04:27:20.08 HtPKTQ5q.net
リリースに出版が追いつかないだけの理由なら別に書籍のコーナースペースが縮小したりしないと思う
スペースが狭くなってるって事は需要の絶対数が減ってるからでJavaをやる新人ってのが減ったのは確実なんだろうな
797:デフォルトの名無しさん
21/04/25 05:12:25.49 fxJVYt9g.net
ただ単にkotlin使うようになっただけでしょ
まだまだjvm使ってるとこは多いと思う
今後はわからんけどね
798:デフォルトの名無しさん
21/04/25 06:29:37.85 NMiXqa1m.net
Javaが採用されてきた大きな理由の一つとして、実行環境としてUNIXをターゲットとする場合に、工員の開発PCがWindowsでも比較的支障が少ないってのがある
ただ最近では業務系でも開発にMac使うところは増えてきたし、
.NETもLinuxに対応したりNode.jsやPythonも主にUNIXで運用される主要なスクリプトの中では比較的Windowsの相性が悪くない方だったりして、ライバルも増えた
そもそもクラウドやコンテナの普及のせいで、直接Windows上で開発するということ自体がこれ
799:ワでよりも困難になってきているし、Windows自体もWSLにより完全なUNIXを備えてしまったためこれまたJavaに拘る理由がなくなってしまった
800:デフォルトの名無しさん
21/04/25 06:56:54.09 wIbtFVmU.net
売り場面積が根拠ならjava云々でなく単に棚分類コードの関係で書店の扱いがいいジャンルに業界がシフトしてるだけの話よ。
鉄板はEXCEL本、python本、後は今ならディープラーニング関連かな。
オライリー・ジャパンですらwebもプログラミングも関係ない分野の本出してんの知らない?
javaならむしろ去年の六月にswingの新刊出てる。
>>769
kotlin使うようになったらからが理由ならscala使うようになった頃に取って代わってるだろうね。
801:デフォルトの名無しさん
21/04/25 13:13:44.43 oFpMkyEJ.net
Java は、GitHub に銀行のソースコードを上げた人とか、
20年やっても年収200万円とか、IT 土方の多重請負構造で、
客には1人月100万円を請求しているはずが、80万円抜かれる
プログラマーに還元されない。
というか、関数内だけを作っている、
システムを作っていない単純コーダーだから
工事現場の見習いみたいな感じ
そのIT業界の多重請負構造を、
YouTube で有名な、雑食系エンジニア・KENTA が、
ばらしてしまったので、日本中に広まった
IT土方Java vs 自社開発系Ruby
SES のモロー vs KENTA
802:デフォルトの名無しさん
21/04/25 13:18:37.83 KtTIhOup.net
推奨NGワード: 土方
推奨NGワード: 請負
推奨NGワード: 雑食
推奨NGワード: KENTA
推奨NGワード: 自社開発
推奨NGワード: Ruby
推奨NGワード: SES
推奨NGワード: モロー
803:デフォルトの名無しさん
21/04/25 15:27:32.41 HtPKTQ5q.net
ちなみに言語じゃないけどDenoってこれから伸びる可能性あるんかね?
804:デフォルトの名無しさん
21/04/25 15:38:35.22 8jr05iQT.net
もしかしてDartって若干伸びてきてる?
805:デフォルトの名無しさん
21/04/26 08:02:24.55 xaTdJ+wC.net
Youtubeよりも5chで荒らしとして有名になってる件
806:デフォルトの名無しさん
21/04/26 10:52:47.24 vu3N8V9m.net
denoというかwasmがくるよ
807:デフォルトの名無しさん
21/04/27 01:13:44.64 ybAp8EWh.net
ということはRustが来るのか
808:デフォルトの名無しさん
21/04/28 11:37:01.99 3EuQZ3Ew.net
実際にプロジェクトで使ったことない人には定評あるね
809:デフォルトの名無しさん
21/04/28 12:18:47.51 Gm/vyyE5.net
インフラとか組込とかミスの許されない/修正リリースできない現場は
形式証明機能のある言語を実際に使うとか聞いたで
F*だかidrisだか忘れたけど
ググったらRustでもCHCソルバでプログラム検証しまーすとか普通にでてくるし
クリティカルなとこではちゃんと使われてんじゃないかい
810:デフォルトの名無しさん
21/04/28 13:26:23.31 GFgIUmSe.net
大規模開発で使うっていう都市伝説が検証されるだけで一歩前進か
811:デフォルトの名無しさん
21/04/28 16:26:28.05 3EuQZ3Ew.net
そんなとこで使われてるわけねーだろ。。
その手の証明ツールを使ったことあればわかるがテストコード書く方がまだまともなアプローチだわ。
実際に使われてるのは不確定性をうまく論理化してプロトコル検証をするって使い道はある。
そう言う使われ方は分散アルゴリズム周りでは少しやってるとこもあるがほんの一部だわな。
812:デフォルトの名無しさん
21/04/28 16:31:19.72 yDqZolk/.net
組込みRustという本がちょうどこの前出たぞ
813:デフォルトの名無しさん
21/04/28 21:17:46.00 85tuN82O.net
意図もわからずなんとなく動くからそのメソッドを使い、借用をつければなんとなく動くから 借用し、
変更する予定はないけどmutし、ここはエラーだからとpanic!し、補足するなと言われているのに
catch_unwind/re
814:coverして、血の涙で泣きながら渡されたソースをシコシコ直すおまいら・・・ rustのどこが良いか全然わからない
815:デフォルトの名無しさん
21/04/28 23:38:51.58 2VQTxO/e.net
マルチするな
816:デフォルトの名無しさん
21/04/29 07:18:17.94 KLHt34b8.net
ちょっと改変すればどの言語にも適用できそう
というかそういう元ネタあんのかな?
817:デフォルトの名無しさん
21/04/29 10:33:36.01 tR6uAqfq.net
補足?足なんて飾りです!偉い人にはそれがわからんのです!
早くモデル検査が当たり前になぁれ!
818:デフォルトの名無しさん
21/04/29 12:41:21.56 JBnzphH4.net
>>781
大規模開発ってプロジェクト人数が多そうだし精鋭にはならんだろうから寧ろ不向きだろうって直観的に思う
819:デフォルトの名無しさん
21/04/29 12:43:37.33 JBnzphH4.net
>>783
この前それ立ち読みしたけど去年秀和から出た実践〜の8章理解しとけば十分な気がした
820:デフォルトの名無しさん
21/04/29 14:27:34.72 earX3YoR.net
>>786
>ちょっと改変すればどの言語にも適用できそう
ほぼこれが主張だぞ。
821:デフォルトの名無しさん
21/04/29 15:23:01.97 bEP8m5yM.net
落ちないからヨシ!
822:デフォルトの名無しさん
21/04/29 22:26:54.16 3tiS91aO.net
検査で「偽陰性」になったソースを渡されたら血の涙で泣く
ということは
血の涙が出たら陽性、という検査を追加すればいいんだろ
823:デフォルトの名無しさん
21/04/30 16:54:11.94 U7XnfxJa.net
個人的には
どの次世代言語がいいかじゃなくて
次世代言語にはどんな言語機能を備えていてほしいかで語ってほしい
824:デフォルトの名無しさん
21/04/30 17:05:12.65 8uDUVNfy.net
いうほど必要な機能なんてない。
ここ50年の結論はバカは何使ってもバカということだろう。
825:デフォルトの名無しさん
21/04/30 17:34:44.55 8aEpEI3N.net
用途によって欲しい機能が違うんだからすべてを満たす言語が出来るはずがない。
826:デフォルトの名無しさん
21/04/30 18:12:44.65 U7XnfxJa.net
macroとか型クラスとかあるやろ具体的には
827:デフォルトの名無しさん
21/04/30 18:16:43.42 TuBhqj3T.net
ようとに応じた欲しい機能すべて実装すりゃいいだけだろw
828:デフォルトの名無しさん
21/04/30 20:12:42.07 19g7m0Bn.net
「二刀流はズル」という価値観を捨てれば矛盾する機能でも両方実装できる
829:デフォルトの名無しさん
21/05/01 19:29:31.85 wiEZYnrW.net
結局必要なところはcで書いてバインディングできるような言語設計をほとんどの言語が行なっている。
それが答えだろ
830:デフォルトの名無しさん
21/05/01 21:16:05.18 0VFft9ft.net
いや、違うと思う
831:デフォルトの名無しさん
21/05/02 16:15:43.74 F4olHNfs.net
レガシーコードとの連携のためとかいいわけしながら
結局ユーザー2層構造が暗黙の仕様になってるような
832:デフォルトの名無しさん
21/05/03 23:13:29.51 AyvebyYK.net
ちなみにおまいら具体的にはどの言語に手を出した事あるの?
833:デフォルトの名無しさん
21/05/03 23:22:14.10 N/p1rn3A.net
Java,C,VB.NET,C#,F#,Haskell,Elm,Rust,Idris2
F#とIdrisがすこ
834:デフォルトの名無しさん
21/05/05 04:20:34.48 roWASgUj.net
どっちも流行ってないね
お前の逆を行くと良さそう
835:デフォルトの名無しさん
21/05/05 11:02:40.08 1EwqoC8k.net
最近あんまGoって聞かなくなったけど使われてるとこでは使われてるの?
836:デフォルトの名無しさん
21/05/05 12:40:27.37 A+0MNUzo.net
5月生まれって約12人に1人しかいないので
逆を行くと良さそう
837:デフォルトの名無しさん
21/05/05 12:53:07.09 UNdhfIGe.net
>>805
kubernetes, dockerなんかはgoだよ。普通にメジャーどこのツールで使われてる。
838:デフォルトの名無しさん
21/05/05 15:42:00.03 wt31bFvh.net
>>805
GitHubもGoで書き直しを続けてる
839:デフォルトの名無しさん
21/05/06 20:12:11.27 zqd1xc9I.net
>>170
840: 結局次世代言語の将来性を格付けしてもこの順位と同じような感じなんだろうか?
841:デフォルトの名無しさん
21/05/06 20:44:53.95 3RkG7Oy1.net
次世代のThe 4強って感じだな
842:デフォルトの名無しさん
21/05/06 20:45:30.10 3RkG7Oy1.net
順位は入れ替わるとしても4枠だとそれになるよねって感じ
843:デフォルトの名無しさん
21/05/06 22:41:04.82 pupGSg3O.net
俺的にはその中のKotlinだけは無いような気がする
844:デフォルトの名無しさん
21/05/06 22:54:04.28 pZ3qKppe.net
GoとTSはもはや現世代言語では
845:デフォルトの名無しさん
21/05/06 23:22:17.53 7m15cXg/.net
確かにGo,TS,Swiftあたりは現世代っぽい。Kotlin,Rustが次世代になるかどうかって感じかな。それ以外は今のところそんなに見込みはなさそうなイメージ。
846:デフォルトの名無しさん
21/05/06 23:37:16.07 pupGSg3O.net
Dartはたぶんワンチャンあるよ
847:デフォルトの名無しさん
21/05/07 00:00:45.03 7aFGtcIv.net
DartはFlutter以外使い道ないじゃん
848:デフォルトの名無しさん
21/05/07 01:09:50.19 hw+Y6lA+.net
Kotlinってなんかそんなに言語として斬新な要素あるの?
849:デフォルトの名無しさん
21/05/07 01:35:30.75 5At20QA4.net
>>816
Flutter以外だとAngularDartくらいかな
CLI/CUIアプリも書けるようになってサーバ側にもDart使ってねとアピールしてた覚えがあるけど、Goと競合するからヤル気は無いか
850:デフォルトの名無しさん
21/05/07 06:25:02.61 NSZr4Jfs.net
>>817
スポンサーみたいな企業がついてるんじゃないか
だからこそ中止した方がよさそうなものも中止できない
それはそれで斬新ではある
851:デフォルトの名無しさん
21/05/07 07:37:08.01 cRde4Qbm.net
Dartはシングルバイナリ作れるようになってCLIやサーバサイドでも少し面白くなってきた感じがあるな。
ただ、まだまだパフォーマンス面で煮詰まってないのか、少々不安がある。
とりあえずflutterのおかけで生き残るとは思うけど。
言語仕様としてはめっちゃいい言語になってきたと思うよ。
852:デフォルトの名無しさん
21/05/07 08:00:53.60 bbfty56w.net
flutterをkotlinで作れば良かったのにと何度思った事か
853:デフォルトの名無しさん
21/05/07 12:13:05.66 BGqObswG.net
関数型が来るよおじさんはどこ行ったの?
854:デフォルトの名無しさん
21/05/07 12:30:03.85 pGxnrrWp.net
関数型おじさんはRustで俺ツエーしてるでしょ
トレイトとかhaskellの型クラスみたいなもんだし型システムで健全性チェックみたいのも良くある話だし
855:デフォルトの名無しさん
21/05/07 15:13:14.00 fhUdknzL.net
一昔前でいう関数型とかムーブコンストラクタとかみたいなのに相当する
最近熱い言語要素って何かありますか
856:デフォルトの名無しさん
21/05/07 15:18:50.47 dF0LJIle.net
そりゃあAlgebraicEffectsだろう
857:デフォルトの名無しさん
21/05/07 15:54:52.11 XbWp/RIC.net
>>817
goみたいな方向性でしょ。javaよりも少しシンタックスを楽にしようって感じで。
858:デフォルトの名無しさん
21/05/07 15:56:02.31 XbWp/RIC.net
rustは一人でテキトーにやる分にはいいけど、マンセーしてるバカと一緒には絶対やりたくないなと思う言語だわ。
859:デフォルトの名無しさん
21/05/07 16:41:28.94 /bDSijiL.net
>>826
最初はそうだったけど、他の言語をパクリ終わって以降は変な色気出しはじめて迷走してるよ
Scala化しつつある
860:デフォルトの名無しさん
21/05/07 17:12:25.81 cUNZpGqh.net
Kotlin/JSとかKotlin/Nativeとか期待してたのに残念
元々AltJSかつネイティブコードも吐けるDartの方が良さそう
861:デフォルトの名無しさん
21/05/07 18:50:25.85 Q+CdxRnT.net
Dart復権は集合的無意識レベルであるわ
862:デフォルトの名無しさん
21/05/07 19:57:54.03 4XrAAqdx.net
>>829
これ。Kotlinには結構幻滅した。
言語が自由すぎて俺用言語にな
863:閧ェちなのもつまらん。 俺もDart使ってる。
864:デフォルトの名無しさん
21/05/07 20:05:54.83 VYSfS6Cp.net
Kotlinは言語仕様がいろいろしょぼいよね
scalaのほうはまだ色々見所あるけど
(でもよーく見ていくとscalaもしょぼい)
865:デフォルトの名無しさん
21/05/08 00:19:20.89 4nIz2VjA.net
気にすんな
866:デフォルトの名無しさん
21/05/08 12:11:47.96 rOsHiSsL.net
Nimこそ至高
867:デフォルトの名無しさん
21/05/08 12:42:03.12 +hZHCXv2.net
JavaScriptをシェルスクリプトとして使う言語が登場しました
URLリンク(github.com)
868:デフォルトの名無しさん
21/05/08 15:21:41.42 Jy6pPGdO.net
>>827
+1
869:デフォルトの名無しさん
21/05/08 21:52:45.82 3j1PPyAz.net
rustに親殺されたマンこんなところに居たのか
870:デフォルトの名無しさん
21/05/08 22:27:28.17 OofXJFgO.net
狂信者が今日もお参りに来とるな
871:デフォルトの名無しさん
21/05/08 22:47:20.87 rOsHiSsL.net
Golangこそ日常
872:デフォルトの名無しさん
21/05/08 23:33:06.25 7jQvdrDZ.net
Haskell然りPureScript然りScala然り高階多相があるとついモナモナしてしまうからかめちゃめちゃ流行るって感じが無いように思ってしまう
前二者は純粋関数型ゆえ現状ほぼ必須なんだろうけど、副作用の切り分けとしてそこまで求められる事が多くないというか
873:デフォルトの名無しさん
21/05/08 23:56:49.07 NHJ/sacw.net
KotlinってJVMで動くJavaじゃない言語って以外なにかアドバンテージある?
874:デフォルトの名無しさん
21/05/09 00:03:24.52 xjCmVSLJ.net
ある
875:デフォルトの名無しさん
21/05/09 02:57:32.93 X/f4ub91.net
見上げて〜Golang〜♪
876:デフォルトの名無しさん
21/05/09 08:21:48.84 JOIqNJHx.net
>>840
高階多相がない場合は
モナドクラスの中で最も万能なインスタンスを一つだけ選ぶ事が当面の目的になる
流行る流行らないは取捨選択の手段であって目的ではない
877:デフォルトの名無しさん
21/05/09 08:54:38.49 Fe8ik3AV.net
VM言語は起動がやっぱり遅いからなぁ。
.NETもReadyToRunしても限界があるし。
とはいえスクリプト言語もやりたくはなく。
nodeがネイティブコンパイルなり、ReadyToRun的な事ができるようになってくれたら言うことがないんだが、
最近GoかDartばっかり書いてる。
878:デフォルトの名無しさん
21/05/09 09:02:23.88 LRzrm/HN.net
Dartは何がいいの?書いたことないからわからん
見た目からもエロスは感じんし
879:デフォルトの名無しさん
21/05/09 09:12:03.41 Fe8ik3AV.net
俺もflutterから入ったんだけど、なんせ無難。
基本的にシングルスレッドだけど、容易に他スレッドと連携できたり(ただGoほどコンテキストスイッチが軽くはない)
色んなAPIがasync awaitネイティブなので深く考える必要なく非同期で書ける。
その割にちゃんと型安全だし、VS CodeのExtensionもよくできてて書きやすいよ。
標準でコードに対して静的解析かけられるのもありがたい。
配布がAOTかけたネイティブバイナリにもなったし。
ライブラリも増えきたし、良い事多いかも。
880:デフォルトの名無しさん
21/05/09 09:34:29.08 8EA3HxZH.net
>>844
流行る流行らないが取捨選択の手段であって目的でないのは全くその通りなんだけど、そういう言語のユーザは人口の価値を過小評価し過ぎじゃない?と思う事があるよ
ここで言いたいのは、流行ってないって事はその機能の内いずれかがそれほど求められてないって結果じゃない?(そして今回の場合それは高階多相だし、モナド系列の抽象化やそれで提供される副作用や機能の分離じゃない?)という話
まぁその流れだとカリー化+部分適用とかも求められてない可能性があって辛みなんですが
881:デフォルトの名無しさん
2021/0
882:5/09(日) 09:38:57.23 ID:C27W5P5q.net
883:デフォルトの名無しさん
21/05/09 10:32:20.15 LUIc58fP.net
シンタックスとかしょーもないことに力入れないで
ビルド速度とGC性能あげりゃいいってのがgoの結論だわな。
バカにしたがってくっだらない機能を入れる必要なんかないわ。
884:デフォルトの名無しさん
21/05/09 10:52:01.42 Tn6vGXh8.net
しくったら修正リリースすればいいっしょ?っていうスタイルの事業とリリースのコストが半端ない事業とを
ごっちゃにするから訳わかんねー結論になる
前者は馬鹿でも扱える軽量級言語、
後者は型パズルとかないとコンパイルもできない重量級言語が良い
885:デフォルトの名無しさん
21/05/09 12:54:17.04 LUIc58fP.net
後者の問題を言語だけで解決しようとしてんのがそもそも馬鹿だと思うが。
886:デフォルトの名無しさん
21/05/09 13:12:43.67 Fe8ik3AV.net
まあ、コンパイル時に解決ってのがあるだけでかなり違うのはわからんでもないけどな。
単体テストの嵐になったり、言語によっては結合試験したら発生する不具合なんてのもあるし。
それは単純なコンパイル言語ってだけでは駄目だけど。
constつけたら書き込まれる事は本当に無い、って前提があると助かる部分は多い。
887:デフォルトの名無しさん
21/05/09 13:34:55.78 LUIc58fP.net
その程度で解決できる問題なら「リリースのコストが半端ない事業」とは言えんけどね。
888:デフォルトの名無しさん
21/05/09 13:41:12.04 JOIqNJHx.net
ダウンロード販売の万能感に酔っていたらいつの間にか医療関係の物流が無能になっていた
889:デフォルトの名無しさん
21/05/09 14:19:39.02 Fe8ik3AV.net
>>854
それだけで完全解決するわけじゃないけど、足しにはなるよ。
コンパイラと静的解析変えるって話になった時も、コスト試算したけどなかなか変わったし、実際効いたけどね。
890:デフォルトの名無しさん
21/05/10 00:01:38.43 bQ6aRl4Q.net
>>850
でも結局ジェネリクスとか入れようとしてるやん
891:デフォルトの名無しさん
21/05/10 00:56:07.37 4UvCiOpM.net
>>857
かなり迷ってるやん。
それこそビルド速度犠牲にしてまで入れるか?コードジェネレイターで十分では?
メタプロバカが発生しないか?とかね
892:デフォルトの名無しさん
21/05/10 01:09:00.90 Cwaw8j9r.net
goに入れて欲しいと言われてる機能をみんないれたら
最初からgoじゃない言語勉強しとけとか
goのメリットと言われているものが死ぬと思う
893:デフォルトの名無しさん
21/05/11 20:09:45.37 K6LBSNwN.net
goは劣化java
20年遅れとる
894:デフォルトの名無しさん
21/05/11 21:04:36.32 LX9CAeOI.net
Goより20年も進んでるなら
次世代通り越して次々世代だな
ジジイだけに
895:デフォルトの名無しさん
21/05/12 00:45:58.33 P6rsPjzH.net
>>860
機能を詰め込めばいいと思ってるバカ。
896:デフォルトの名無しさん
21/05/13 01:14:29.82 m1/RA0jt.net
でも最近go聞かなくなった気がする
取り入れるところはみんな取り入れたからかもしれないけど
897:デフォルトの名無しさん
21/05/13 10:54:49.47 ENK4De8l.net
黙々と使われてる言語は話題にはならんよ。
898:デフォルトの名無しさん
21/05/13 15:00:45.66 gQUYeg5t.net
仕事に使ってる人は忙しい
899:デフォルトの名無しさん
21/05/14 14:37:46.88 bUgsHmSs.net
GitHub における大規模なモノリポのパフォーマンスの向上
URLリンク(github.blog)
> GitHub の有名な Ruby モノリスを解体し、GitHub のすべてのユーザーのためにリポジトリのパフォーマンスを向上させる新しいマイクロサービスを Go で作成しています。
900:デフォルトの名無しさん
21/05/14 22:52:04.67 LgJgjq7h.net
パフォーマンスのネックruby
901:デフォルトの名無しさん
21/05/26 22:03:29.71 5a/xy4zx.net
マイクロソフトら、CO2削減
902:ノ寄与するコーディングを目指す業界団体を設立
903:デフォルトの名無しさん
21/05/26 22:24:07.47 e3pSy2go.net
二酸化炭素を全てダイヤやカーボンファイバーにすればいいよ
904:デフォルトの名無しさん
21/05/26 22:51:53.02 XGTO2klA.net
時価総額は、Github が8千億円
今世紀最大の起業家、Vagrant/Terraform の作者・Ruby/Go の神・
Mitchell Hashimoto のHashiCorp が5千億円
時価総額が数千億円になったら、RubyからGo, Elixir へ変えればよい
Shopify は15兆円、民泊のAirbnb は、大手ホテル3社の合計以上の10兆円。
このクラスでも、Rails
食べチョクみたいな女性1人の起業では、Rails, Heroku, React, Bootstrap で十分。
時価総額が千億円を超えるまでは、Rails で良い
905:870
21/05/26 22:56:29.42 XGTO2klA.net
Ruby on Rails で、若い女性1人で起業した、食べチョクでも、
売上50億円だから、時価総額50億円は行く
近いうちに上場するだろうし
906:デフォルトの名無しさん
21/05/30 23:18:30.05 cqsSdT6O.net
久々にFlutter触るからDartのセミコロン問題どうなってるか調べたらまだ議論しててワロタ
URLリンク(github.com)
907:デフォルトの名無しさん
21/06/01 00:32:03.52 1E74UMSa.net
Flutterはしんでいいな
908:デフォルトの名無しさん
21/06/07 08:42:28.96 2Nyn0TLd.net
>>868
ネタじゃないのかよw
909:デフォルトの名無しさん
21/06/08 15:14:19.36 bmgoTOXu.net
>>831
> 言語が自由すぎて俺用言語になりがち
どういうこと?Kotlinにそんな機能あったっけ?
910:デフォルトの名無しさん
21/06/08 16:36:51.33 4egCPfD4.net
>>875
中置記法
911:デフォルトの名無しさん
21/06/09 12:47:10.31 +SCbmrn1.net
中置もいいけど 引数のtuple定数化強要とドット記法で丸括弧減らすとかさ
コードゴルフにゃ向かないけど読み解きにくい妙な圧縮記述を減らすのには効果あるんじゃね?
912:デフォルトの名無しさん
21/06/09 14:20:57.68 cEr6XlmY.net
Kotlin は何かとわざわざヒネった発想を無理強いしてくるのが気にいらない
min で 2 つの値の小さい方をとろうとしてるコードにいちいち coerceAtMost (値を制限する)関数つかえ
とサジェストしてくるが、たしかに値を制限するのも理屈は同じではあるが
わしはここでは2つ値がでてきてその小さいほうをとろうとしてるロジックを強調したいのに
値を制限するでは意味がボヤけるんだよっヽ(`Д´)ノ
913:デフォルトの名無しさん
21/06/09 14:23:04.09 cEr6XlmY.net
ちなみにツッコみとしては「なるほど coerceAt を無理強いされるのが気にいらない、とこういうことか」
みたいなレスを期待
914:デフォルトの名無しさん
21/06/09 14:33:59.27 paDfdrYm.net
>>878
coerceAtMost(n)と書かれるとn以下なら何でもいいように見えちゃって曖昧に感じるね
普通にAPIの設計やネーミングのセンスに問題があると思う
915:デフォルトの名無しさん
21/06/09 15:08:53.26 Q6onajD4.net
それは無視してminつかえばいいんじゃ
916:デフォルトの名無しさん
21/06/09 15:40:50.01 J3IrN4Ey.net
minOf(a, b)じゃなくて?
917:デフォルトの名無しさん
21/06/17 10:36:08.05 vWOkjG7a.net
Kotlin って派手な機能はないけど、実用的な機能が色々あって結構好きだわ
特にクラスのコンストラクター引数をそのままフィールドで受け取れるのとかすげえ便利
918: null 安全性も Swift みたいに if let ... とかでチェックさせられるんじゃなくて単なる比較で書けるからわかりやすいし
919:デフォルトの名無しさん
21/06/17 15:46:16.23 5eqF/fO2.net
発想に慣れるまでがちょっと時間がかかるが
発想に慣れるとやたらと短かくソースを書けるようになる
そこがちょっと快感
それがKotlin
920:デフォルトの名無しさん
21/06/17 16:38:25.67 V3sPVRmg.net
まだJavaの延長(というかカジュアル版)の感覚でしか書けないなぁ
921:デフォルトの名無しさん
21/06/17 16:52:48.02 AdmHW43m.net
JVMから脱却するしかない
922:デフォルトの名無しさん
21/06/18 15:29:47.42 Sm09xvIL.net
結構JVM依存でkotlinネイティブは最適化でどうにもならなそうなぐらいパフォーマンス厳しいってのが暗黙の了解なような
923:デフォルトの名無しさん
21/06/19 01:25:26.86 dKc8wEhO.net
ずっとGo信者だったけど、最近Rustはまりつつあって凄い言語だなって思ってる。
924:デフォルトの名無しさん
21/06/19 01:53:56.18 5nSU/2XC.net
crystal触ってるけどrubyっぽさが凄いね。nimがpythonっぽい何かなのに比べて、crystalは better rubyだわ
925:デフォルトの名無しさん
21/06/19 11:22:01.73 aheD0w3E.net
方向性違うけどpost PythonはnimかJuliaか
926:デフォルトの名無しさん
21/06/19 13:22:42.63 ni2CtFQM.net
nimプロダクトで使ってるところ見た事ないけど、なんちゃって運用ツールとかにしか使えない感じなの?
927:デフォルトの名無しさん
21/06/19 13:34:40.76 tEb9xsfu.net
python選ぶやつはnim選ばない
python選ばないやつはnim選ばない
ということだ
928:デフォルトの名無しさん
21/06/19 15:34:32.94 zDrgWeBe.net
C/C++ 使えてるし困ってない
929:デフォルトの名無しさん
21/06/19 18:20:46.92 xzdBUefb.net
>>892
nim 結構いいのに Python 臭いとこがやだよね。
930:デフォルトの名無しさん
21/06/21 18:23:45.07 tL3UJCwM.net
Swiftも!あんじゃん
931:デフォルトの名無しさん
21/06/22 01:19:34.45 kGm2q7jg.net
そりゃビックリ!
932:デフォルトの名無しさん
21/06/22 07:17:18.33 ikhS5rXH.net
swiftのResultBuildersってなんか面白そうだな
933:デフォルトの名無しさん
21/06/22 09:26:37.53 2l2patZE.net
>>893
いつも思うんだが、こういう奴ってなんでこういうスレに来るの?
うざいんだが
934:デフォルトの名無しさん
21/06/22 20:38:29.50 zXyDoEK6.net
その言葉、そっくりそのままお返しします。
935:デフォルトの名無しさん
21/06/23 02:30:54.55 LAPrnsaY.net
>>899
いやスレの趣旨に合わないやつが居座ってんのどっちだって話
936:デフォルトの名無しさん
21/06/23 13:28:38.76 6jEPjWCz.net
居座ってるってどうやって確かめたんだ?
たまたまスレが目に入っただけかも知れんだろ
937:デフォルトの名無しさん
21/06/27 01:52:23.46 VONK1hXC.net
>>893
Rustをオススメします
938:デフォルトの名無しさん
21/06/27 04:28:46.15 XpI5XMzQ.net
Kotlin もよろしく
939:デフォルトの名無しさん
21/06/27 05:55:26.60 9J08sCxI.net
C/C++のかわりにおすすめするってことはKotlinってJVMへの依存切ってシングルバイナリで動くの?
できたとしてもランタイム重そう
940:デフォルトの名無しさん
21/06/27 12:57:27.73 U1pSP8r9.net
なんで D は無かったことにされてるのですか?
941:デフォルトの名無しさん
21/06/27 23:00:58.14 GIc1PMDr.net
>>905
度々自らの過去を無かったことにしたことでプログラマに愛想を尽かされて無かったことにされた
942:デフォルトの名無しさん
21/06/27 23:40:14.19 W99JxdHL.net
もうlazy くらいしか特徴が無いデカいし将来性の無い環境だからねー
デカいスタティクライブラリとコンパイラメッセージは仕方ないとしても
ビルド環境はメジャーなんに幅広く寄生すればいいのに
943:デフォルトの名無しさん
21/06/29 00:20:13.47 jRoYjms
944:V.net
945:デフォルトの名無しさん
21/06/29 00:24:49.55 jRoYjmsV.net
まあしかし C はまだいいけど C++ は複雑で分かりにくいように思う。
学習に時間が掛からないか?
そしてよく使われていたであろう Windows ネイティブのプログラムはじわじわと廃れていく。
946:デフォルトの名無しさん
21/07/01 07:59:54.15 5Rb+kFfY.net
デジタルなんだからじわじわ劣化しないよ
っていう単純化された理論が崩壊したのは事実だが
実装レベルのC++は複雑だが破綻はしてない
947:デフォルトの名無しさん
21/07/01 19:20:24.95 aN48/DYF.net
bool
polymorphism
match
と来て次の層はどんなんになるんかな
948:デフォルトの名無しさん
21/07/01 20:52:42.10 q9oggpN7.net
WebAssemblyアプリ開発で最も使われている言語はRust、注目の機能はスレッドなど。The State of WebAssembly 2021
URLリンク(www.publickey1.jp)
949:デフォルトの名無しさん
21/07/04 10:42:07.67 ZgbMq1d2.net
注目の機能スレッドってなんかそういう独自の機能があるのかと思ったわ
950:デフォルトの名無しさん
21/07/10 18:17:31.11 d/15nqXv.net
L言語とな?
URLリンク(github.com)
951:デフォルトの名無しさん
21/07/10 21:06:58.55 yQTcABkI.net
注目の機能は、と問うスレッドが5chでも建ったんじゃないの
952:デフォルトの名無しさん
21/07/11 15:36:58.13 lbKLD5N+.net
>>910
「,」、「&&」、「||」周りのオーバーロードとか完全に破綻しとるわ。
953:デフォルトの名無しさん
21/07/11 17:17:40.29 PakhW6ue.net
llangってぱっと見なんだかわからんな
またネーミング失敗じゃない?
954:デフォルトの名無しさん
21/07/14 00:32:39.09 qLlB7Ntl.net
そういえばZenってお前ら的にどうなの
URLリンク(www.zen-lang.org)
955:デフォルトの名無しさん
21/07/14 00:42:40.34 Kt6ogli4.net
>>918
つまらん言語だな
GCのないGo処理系を作れば済む話だったのではないか
956:デフォルトの名無しさん
21/07/14 08:15:42.46 KifrgVDH.net
>>918
ゴミ言語という印象しかない URLリンク(ziglang.org)
957:デフォルトの名無しさん
21/07/14 10:52:37.13 nkmGSgfF.net
Zigのパクりでしょ
958:デフォルトの名無しさん
21/07/14 13:41:04.37 BkkfMVAi.net
zigってnimとかvlangとかに比べてどこらへんがいいん?
959:デフォルトの名無しさん
21/07/14 14:03:16.32 gix7WKJq.net
>>922
やりたいことはわかるが、わざわざ言語を作るほどのことではない
スルーしてよし
960:デフォルトの名無しさん
21/07/14 15:48:49.76 ohEAXE/x.net
このスレなんのスレだっけ?
961:デフォルトの名無しさん
21/07/14 16:02:12.04 E8SaDlG+.net
自分の気にいらない言語を貶めるスレ
962:デフォルトの名無しさん
21/07/15 03:40:50.12 P3PEaMds.net
ここまできてはじめて
スレ住人全員が同意する意見が書きこまれた >>925
963:デフォルトの名無しさん
21/07/15 06:11:01.98 rQf3BUPj.net
勝手に同意した事にするなよ…
主語がでかすぎる
964:デフォルトの名無しさん
21/07/18 12:01:23.40 WbmfjGIN.net
プログラミング言語とか、勘違いしやすく物忘れも激しいという
人間の非理想的な特性に対する対策なのだからそれ自体が宇宙の真理レヴェルの美しさを備えることは難しい
C++はその対人間の対策にすら失敗している気配がするが、
プログラミング言語の理想を言い出したらキリがないことも上のことから明らかなので、
965:K要な仕事をやれるのだからC++でも及第点とも言える
966:デフォルトの名無しさん
21/07/18 12:04:40.99 WbmfjGIN.net
「より良いソリューションに対する最も危険な敵というのは、十分に良い既存のコードベースなのだ
(the most dangerous enemy of a better solution is an existing codebase that is just good enough.)」
とゆー格言はプログラミング言語にも当てはまる
967:デフォルトの名無しさん
21/07/18 16:07:40.62 EvgeERSZ.net
なんかキモいね
968:デフォルトの名無しさん
21/07/18 18:39:25.82 WbmfjGIN.net
褒められたと思っておこう(キリ
969:デフォルトの名無しさん
21/07/19 01:55:47.55 F++Kpdh1.net
ていうか最も危険な敵っていってるけど
そんだけ十分によいソリューションになってるってことじゃねーか
「より良い」ってのがただの思いこみってのが真相だろう
手前ミソを売りこむのに邪魔、っていうのをいいかえただけだな
970:デフォルトの名無しさん
21/07/19 08:27:19.09 3wZSUZuJ.net
「betterの敵はenough」で十分なのに、既存の格言はやけに長いな
971:デフォルトの名無しさん
21/07/22 17:21:37.86 LuJDKG0M.net
Sather
972:デフォルトの名無しさん
21/08/09 14:42:17.17 pHK69Jy/.net
Pythonより30%高速目指す「Pyston」--開発者が語る次の目標
973:デフォルトの名無しさん
21/08/09 18:34:55.62 wz2uTHTS.net
のちのピストン運動である。
974:デフォルトの名無しさん
21/08/20 21:52:24.83 z5BeR7Lv.net
Rustのボローチェッカーとは動作が異なるようなのですが、
Nimにはすでに「借用チェッカー」に似たものがあるそうです
URLリンク(forum.nim-lang.org)
Nimでもボローチェッカーで参照の有効性を検証することによって
メモリ安全性を保証できるのでしょうか?
何方か詳しい方がいましたらご教示お願い致します
975:デフォルトの名無しさん
21/08/21 03:28:29.09 UJDYcxYL.net
>>937
まだ実装されてないけど、ボローチェッカーに似たようなものを作る予定はあるようだよ。
URLリンク(nim-lang.github.io)
976:デフォルトの名無しさん
21/08/21 06:03:46.59 8cTmIcpJ.net
>>937
Nimはガベージコレクション(GC)のある言語
だからGCのないC/C++/Rustとは別分野なのでそれらの代替にはならない
977:デフォルトの名無しさん
21/08/21 06:50:02.55 7GAoG1Iq.net
>>938
ご教示ありがとうございます。
さっそくリンク先をgoogle翻訳してみたのですが、
Nimバージョン:1.5.1でRustのボローチェッカー
に似た「View types」が実装されるんですね
Nim Version 1.0.0 正式リリースされてから
1年も経過しないうちにARCとORCが実装されたよう
なので、一年後(現在Version 1.4.8)には
「ボローチェッカー(View types)」も実装されそうですね
978:デフォルトの名無しさん
21/08/21 07:04:18.79 YwSANob8.net
GCが無い事実は保証できる
速度のベンチマークが嘘じゃないことは保証できない
だから自称超高速GCがもしあっても普及しない
GC無しで高速化した方が確実
979:デフォルトの名無しさん
21/08/21 07:09:56.98 7GAoG1Iq.net
>>939
>Nimはガベージコレクション(GC)のある言語
Nimはガベージコレクション(GC)を任意で外せるから、
ガベージコレクション(GC)を外して「ボローチェッカー(View types)」
で参照の有効性を検証することによってメモリ安全性を保証できないのでしょうか?
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
319日前に更新/229 KB
担当:undef