次世代言語18 Go Rust Elixir Kotlin TypeScript
■ このスレッドは過去ログ倉庫に格納されています
スレタイ以外の言語もok
前スレ
次世代言語17 Go Rust Kotlin TypeScript Julia
https://mevius.5ch.net/test/read.cgi/tech/1567602619/ higher-kinded typesの日本語訳は高階型で別に良いと思うんだがな
カインド強調する意味がゼロとは言わないがデメリットのほうが大きい 高階関数という言葉を知ってれば、そこから類推できる高階型って呼び方の方が良いよね 何でもできる方がいいと思い込んでるのはバカにありがちなセンスなのでしょうがない。 変につまみ食いしようとして使い勝手が悪くなるってこともあるよ
Java8から入ったStreamとOptionalみたいなのを自分で書くのすごい面倒くさい null禁止型の配列の初期化に必要な無引数コンストラクタ
が無かったらコンパイルエラーになるコンパイラを自分で書けない 高階型はまた別じゃね?
Higher-kinded typesじゃなくてrank-N typesのことかと そんな糞機能がほしけりゃマクロ使ってでも実装すりゃいいんだよ。
そうすればゴミ機能ってことに気づくから。 >>529
自分が理解できなかったものを話してる人がいるからってイライラするなよw 本当にいい言語は遠くから絶賛なんかじゃく、
自分ところの基幹言語としてプロジェクト全体の10%以上ぐらいの割合で採用するから。 >>532
理解してるから下らねーつってんだよカス。
お前こそその機能の無駄さとバギーさを理解しろ。 >>534
わかったわかった。
ジェネリクスについてちゃんと勉強してきてからまた読み直してくれよ。 C/C++が絶賛されないのはテストしすぎてリスクの大きさが見えるからだろ
本当に科学的なやつらはテストを嫌う >>535
勉強しても問題が理解できてないのかよ。。少しは自分でコード組んでみれば?
>本当に科学的なやつらはテストを嫌う
こんな大嘘をよく平気で言えるな。 >>538
確かに中途半端にしかポリモーフィズム意識してないお前みてーなやつには
難しくて理解できんのでメンテできる人が限られたコードにはなるという問題はあるな… Androidアプリ開発ってGoogle自身は未だにJava使ってるのかな? Rust勉強してんだけど、
let mut n = 5;
println!("{}", n = 4);
println!("{}", n);
〜結果〜
4
5
なるほど分からん >>542
>println!("{}", n = 4);
named parameterがformat stringで使われてないから
エラーにすべきケースかもね あー、assignmentではなく…
なるほどだけど、
えー…
Rustでは代入式は右辺の評価値ではなく空のタプルを返すとあったから確かめようとしたらこうなったw
大根乱ですよ ?
いや以下expected `i32`, found `()`でエラーになるけど代入の結果空のタプルが返ったればこそでしょ??どういう意味?
fn foo(x: i32) -> i32 {
x * 2
}
let mut n = 5i32;
let m = foo(n = 4i32); nを定義しても呼び出された側からは見えないのがレキシカルスコープ
でもやっぱり見えるスコープが欲しい
これはダイナミックスコープの再発明だな 行儀の悪いことするな、で終わってもいいかもしれんが、結局>>542はどう解釈するのが正しいの? >>550
2行目のn=4は println!マクロの中で
`n`というnamed parameterを新しく定義してそれに4を入れてるので1行目のnとは別物
https://doc.rust-lang.org/std/fmt/index.html#named-parameters
個人的にはエラーにすべきケースだと思うけど
named parameterが明示的に使われてなくても
format stringが必要としてるパラメータの数に合致してるとエラーが出ないっぽい
let x = 100;
println!("{}, {}, {}", x, x=200, y=300); //=> 100, 200, 300 fn print6(a:()){ println!("{}", 6); }
let mut n = 5;
println!("{}", n = 4); //マクロの引数: 代入じゃない(マクロの仕様次第)
println!("{}", n);
print6(n = 7); //関数の引数: これは代入
println!("{}", n);
4
5
6
7 書けば書くほどPython嫌いになるわ
機械学習とかやるにはいいんだろうけど、これでサーバーサイド組むとか狂気もいいとこ
やっぱ型無し言語って糞だわ サーバー組むならgo使えばええやん。なぜpython? >>555
過去のおガイジどもが色んな言語使いすぎて保守不能になって
社内標準言語がPythonとJavaScriptだけになったから
>>554
最低でもJava8
どんなに type hinting 書いても IDE は黙ったままだし補完も大して効かないし
糞of糞、糞の山マウンテンがチョモランマ
__init__.pyがないとimportできない糞
pyenv使ってbuildしてもruntimeエラーがでる糞
venv,pipenv,poetry,pyflow, おまえいったいいくつパッケージ管理ツールつくるねんの糞
糞糞糞糞 PythonとJavaScriptだけって結論出した奴も含めておガイジやん
つまるところ一番の糞はその職場や >過去のおガイジどもが色んな言語使いすぎて保守不能になって
これはまあよくある話だが
>社内標準言語がPythonとJavaScriptだけになったから
こうなるのは珍しいな。。普通は逆にこいつの言うように堅めのやつでjava一択とかなりそうな気はするが。 >>557
わかっとるわそんなん
だがPythonが糞なのも事実
>>558
超消極的な理由で選ばれただけ
バックエンドは機械学習プロダクトもあるからPythonは必須
フロントエンドはJavaScript必須
他はなんも考えてない
笑えよ またとりあえず機械学習に手を出しちゃうところも糞要素として取り上げたいw >>556
>どんなに type hinting 書いても IDE は黙ったままだし補完も大して効かないし
これはIDE自体の問題か使う側の問題じゃないか? >>562
じゃあVSCodeが糞かpythonのlspが糞かだな
糞ばっかりだ >>563
お前がうんこなんだと思うよ
職場でも無能と思われてそうw Pythonどちらかと言うと好きな方だけど開発環境周りは糞極めてるよね うるせーコロナで死ね
俺の言うこと聞かない言語は全て糞なんだよ糞、糞糞糞の糞 まあ発狂してもおかしくなさげな環境なのは同情の余地あるわな。。 Pythonの
JavaScriptに対するTypescript相当
の言語欲しい TypeScript作ってる当のMicrosoftがPyright出してるじゃん。何の不満が? >>569
使ったことあるか?
import先もまともに検知できないガチゴミガイジだぞ 要はライブラリでPythonを超えればPythonは消えるよね
でも大抵の言語はライブラリを管理するツール自体が保守不能になる
Pythonは手動またはC言語のツールに丸投げしておけば保守不能にはならない まあc言語のライブラリ管理はそんな簡単じゃないがな。
低レイヤー触るとどうしてもそうなる。 PythonがC FFI側に投げてるライブラリのバージョンの複雑さは結局ユーザじゃなくてメンテナがコスト払ってるだけな部分もあるからな…… >>574,575
そんな低レイヤーうんぬんなど些細な話だ
そもそも2系から3系への移行ではPython本体やCライブラリだけでなく、
あまたの2系ライブラリのメンテナが膨大なコストを払っているのだから…
「後方互換性の断絶」とはそうゆうものだ
Python利用者はそうした神の決定に逆らうことは許されない
神の行いは絶対であり、聖書PEPを疑ってはならない 2のメンテは終了しただろ。何言ってんだこの馬鹿は。 最新の3.8ですらJavaにすら劣るゴミという事実 一方で単一の言語処理系に過去バージョン互換をさせるとそれ自身の複雑さが極端に増すのは間違いない訳で
結局どこかしらでコストは払ってるんだよ
この辺はいくら次世代のいい感じの言語が出ようとも変わらないと思う んなあたりまえのこといわれても、でっ?ていう。
最適な互換性の維持具合についてなんか意見でもあるなら言えばいいけど
なんも考えてなさげだな。 Pythonには2と3があるから駄目
そしてPythonをJavaに置き換えることを意識した時点で
Javaもその駄目なグループのメンバーになったようなもの
GCがある言語は多分みんな駄目になってしまう >>578
ここは「次世代言語に憧れるレガシー言語労働者の愚痴スレ」だから >GCがある言語は多分みんな駄目になってしまう
なんの根拠もなく現状を全く無視したことを平然とのたまう精神はどこからきてるんだろうか。
こういう輩が好みそうなのはrustですかね。 そうだね
なんの根拠もないものは全く無視されて当然
その精神がある限り、古い仕様は無視されて互換性が無くなる 静的型付け言語(typescript)の設計を学ぶためには、HaskellとF♯どっちが向いてるんだろう。 TypeScriptの設計を学ぶならTypeScript以外に無いだろ javaScriptの数値は浮動小数点数だけなんたな NumberとBigIntの二種類あるよ。
かつてNumberしかなかったのは、
JS作ってるほうも「JSで数値計算?そんなやつおらへんやろ〜」って感じだったんだと思う。
実際はそんなことはなかったという歴史は知っての通り。 昔から知ってるやつからすると
ホームページ上で動的にデザイン変えるための言語だよなそもそもは TypeScript、普通にトップクラスに書きやすいから困る
json 扱うなら TypeScript さいつよ JavaScriptでも、ビット演算は32bit符号付き整数に対する演算と決められてるので、
直接32bit整数の値を作れはしなくても、内部的にそのような型は存在はしてるはず
JavaScriptではビット演算はオペランドをこの32bit整数に暗黙的に型変換してから
実行するので、これを利用してNumber型を"整数型"に変換できる
a = Math.PI | 0
a == 3 // --> true
実際、JavaScriptにトランスパイルされるAltJSのPureScriptではInt型があるけど、
PSからコンパイルされたJS見てみると、Intは|0で実装されてるのがわかる。 asm.jsと言うのものがあってだな・・・
元々誰も使ってなかった上にwasmの登場で完全にいらない子になったけど int型の有無で言語を2つ以上作る世代は早く終わってほしい
ライブラリを追加するだけですむようにしてくれ >>599
むしろ要る子だったからwasmに進化したんだが
分けて考えるのはナンセンス >>602
https://github.com/WebAssembly/design/blob/12ee148fb5cfa33331dbffadae06752b1759a7bf/HighLevelGoals.md
> WebAssembly High-Level Design Goals
> 4. Design v.1 as a Minimum Viable Product: basically what you can do with asm.js.
これが出発点だからな
そのレスはかなり間抜け 優秀つってもしょせんC++で作られたプログラムだろ?C++褒め称えろよ 出発点だったら何なんだよ
すべてのC言語プログラマはBCPLを崇め奉らなきゃいけないのか?
どっちが間抜けだよ ?
V8はC++で作られてるでしょ?
CコンパイラはBCPLで書かれてるの?
違うでしょ?大抵CかC++で書かれてるでしょ?
何で書かれてるかと何が先祖かの区別つかないとか、頭大丈夫?w でもアセンブラとC++にはマクロがあるから
文字列指向というか
asm.jsもテキスト形式だな ももも、文字列指向www
マクロがあったらw
文w字w列w指w向www
Rustもマクロがあるから
文w字w列w指w向www IDEも予測入力もなかった時代に入力を補完するオーパーツ的な存在がマクロ
引数があれば補完後のどこかに挿入されたりする コンパイル前にできる処理をコンパイル・実行時にやらない defineマクロみたいなのは純粋な文字列置換
lisp系とか高級になるとトークンを受け取ってどのような構文木を作って返すかプログラマーが操作できる処理 lispのマクロと関数の違いに対する理解が浅そう。 フォトジェニックマクロとか言うやつでしょ?ぼく知ってるよ ■ このスレッドは過去ログ倉庫に格納されています