次世代言語25 TypeScript Swift Go Kotlin Rust Nim
レス数が1000を超えています。これ以上書き込みはできません。
スレタイ(順番はRedMonk準拠)以外の言語もok
前スレ
次世代言語24 Go Nim Rust Swift Kotlin TypeScript
https://mevius.5ch.net/test/read.cgi/tech/1647887021/ Rustはソースコード上の情報多くしたい感じだからデフォルト引数は入らなさそう
ソースコードの見た目をすっきりさせたいなら素直にPythonとか使うのがいいかと デフォルト引数もなく関数オーバーロードがないから謎の関数がぼこぼこ増えるんだろうな
○○
○○_with_XX
○○_by_YY
みたいに 言語を作った人間がデフォルト引数絶対に入れない!って言ってても
その人が一線から引いて他の開発メンバーに任されたら速攻で入る Rustはすでに作った人は居なくなってるし
仕様決めるのも多数決とかじゃなく意見が割れるようなのは入らないからな
コミュニティ全体が入れる空気にならない限り無理 Rustは複雑な引数はstructで渡しなさいという考えだから
その方法の一つがビルダーパターンだけど、structとDefaultを組み合わせたほうが個人的には好き ..Default::default() にシンタックスシュガーあって短く書ければいいんだけど 引数爆発の解決のアプローチはいろいろあるわな
だがキーワード引数があったほうが爆発したときに楽なんだがな
GoやRust的には構造体使えってことか >>899
デフォルトは作ればあるよ
オプション引数の代替策の一つとしても使える >>903 >>902
Rustでは不可欠な機能が着実に次々と実現されていっており
それら全て状況も議論も全てオープンに行われている
互換性、安全性、関連する影響がないことなど全て満たす必要があるためどの案件も時間がかかるが信頼できて安心できる
関数の引数の諸々の件も長くオープンに議論され続けているが様々な諸問題がでておりそれらを解決しうる仕様がまだ出来上がらずかなり先になるだろう
そして色々な代替手段があるためこれを必須として現実に困っている人がいない問題でもある >>903
なんや、既に崩壊してる言語なのか
ざまあねえな >>912
創始者が抜けたのはバーンアウトしたかららしい >>912
修復不可能なデザインバグを見つけてしまったから逃げたんだろう Mozilla関係の組織っておんも歩けないような人が多いよね
まともな人から辞めていくんだろうか 燃え尽きて去ったRustの創造者はいまはどこで何をしているんだ?
まさか、googleでGoしているってことないよな >>910
Rustコミュニティがオープンだとは全然思えない。async-stdとtokioなんか正にそう >>917
やっぱゴミはゴミに惹かれるんやね
XウンコードとかいうゴミゴミのゴミIDEバンドルのゴミに惹かれるなんて
やっぱゴミ >>910
apple信者の人たちと大して変わらんなw
androidにしかない機能があっても必要ない、問題ない、困ってないと言い放つが実装されると大騒ぎして喜び
誇らしげに自慢する
何週遅れてんだよと 全て状況も議論も全てオープンに行われていればまあこんな事になるわけがないよなww
「The entire moderation team resigns, effective immediately. This resignation is
done in protest of the Core Team placing themselves unaccountable to anyone but
themselves.」
https://github.com/rust-lang/team/pull/671 >>921
気持ち悪いRust信者はこの板に1人いるだけだぞ
通称複オジこと、はちみつオジ >>917
おいおい、ほんとなのか。
優秀な奴だろうからどっかが雇っているだろうと思っていたが。
appleならMozillaより激好待遇だろうな >>923
Qiitaで若者に嫉妬したりエアプRust信者したり大変だな コミュニティの意見に向き合うのは難しい問題で、どの言語でも同じ
Rust Foundationとか、Kotlin Foundationとか、コミュニティ向けに組織体制をちゃんとする努力があるだけマシだといつも思う そして批判の声が見当たらないコミュニティは逆に危険
ユーザーは意見を述べるモチベーションがなかったり、意見を聞き届ける環境すら整えられていない
言い換えるとカルト。 >>926
なんちゃらファウンデーションなんてそれはコミュニティに向き合うとか組織体制がちゃんとする努力をしているとは違う。後ろにスポンサーがいるかどうかが違うだけ
得てしてプラス面もあるが多くは大企業の意見がよく通る >>929
どの言語のコミュニティが理想だと思う? ジャップは10年遅れでPython受け入れだしたからな
Juliaも10年は遅れるよ
バカなジャップだから Julia流行の隆盛とともに死すナムー(-人-)
今はJuliaとか言って、もう少し経ったらの言語マンセーするくせにさ 10年後にジャップランド土人村が残ってるかも疑わしい >>934ってどこの国の人なんやろな
なんかウンコのにおいしてるけどw 今の日本の体たらくはジャップランド土人村と呼ぶにふさわしいよ
未だに「日本サイコー!」とか言ってる奴らの方がどうかしてる 声の大きいクソユーザーのせいで言語がどんどん変わっていくC# >>938
具体的にはどういうとこ?
俺は最初からC#ダサいと思ってたけど >>939
具体的にダサいところあげてくれ
ついでにダサくない言語も教えてくれ 単純にMicrosoftのソフトウェア開発能力がめちゃくちゃ高いからどんどん変わっていけてるだけだぞ
昔から巨大ソフトウェアをずっとたくさん作り続けてるだけあるよ
他の言語だってリソースさえあればあれもこれもやりたい、って言ってるのたくさんあるじゃん 言語仕様が使いもしないパターンマッチよりにどんどん変わってる
学習コストが上がるだけなのに
if (x is { Name.Length: 1 })
{
Console.WriteLine("single-char Name");
} x is { Name.Length: 1 }
これが何を指しているか直観的にわかるように思えて実際は違っている MicrosoftはTeamsのアップデートしすぎ、ほぼ毎日バージョンが変わる。マジで勘弁してほしい C#は場当たり的に糖衣構文追加するもんだから
BNFがとんでもない長さになってるな
ここまで言語仕様汚くなった言語他に無いんじゃね? さすがに C++ Perl Ruby には敵わないだろ >>944
具体的に他の言語で書くとどういう記述に相当するもの? >>951
シンプルでなくイージー
型無し糞言語代表だろ 他の言語の定型文をそのまま日本語に持ってくるからそうなる
富士山は日本で一番高い山の一つですは誤訳 Rubyはスクリプト言語にしてはPythonに比べ型は厳格だが、なんにでもなれるメソッドなかったっけ? シェルスクリプトにも変数の型はあるしアセンブリもレジストリの種類は意識しないといけない 型なし言語って、誤用でしか用例を聞いた覚えがないけど、型なし言語とかいう用語はあるの?
文脈からして何を言いたいかはわかるんだけど 値に型がない言語のことを型なし言語、って呼ぶのは正しいの? 型無し言語じゃない
型無し糞言語だ
間違えるな痴れ者が
型無し糞言語3兄弟といえばRuby、PHP、Perl
業界の常識
未だこれ使ってる時代遅れのバカ老害どもは首吊って死んでええぞ >>961
https://ja.wikipedia.org/wiki/%E5%9E%8B%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0#%E5%9E%8B%E3%81%AA%E3%81%97
型付けを更に厳密に定義した区分として型なし(英: untyped)という区分が存在する。
代表的な言語としてはSmalltalk[7]、BCPL、B言語、アセンブリ言語などがある。
Smalltalkでは高速化のため処理系依存で実行時に型検査することがあるものの言語的には型検査がなく、
動的型付け言語のように文字列に割り算をするといった不正な操作をしても処理系が型検査して停止する事は無い。
BCPL、B言語、アセンブリ言語などオブジェクト指向とは関係なく型を持たない言語では、
ハードウェアのワード長に依存した1種類の型のみを持つか、
言語を使う側でデータを参照するときにデータ幅や種類の解釈を決定することとなる。 >>960
bashのdeclareについては一旦忘れていただく方向でお願いします >>964
ほんまや
Brainfuckとかみたいな難解言語もだいたいuntypedかな >>963が言っている型無し言語とは、一つの変数がいろいろな型の値を束縛できるってこと? untypedは基本的にdynamically typedのこと
アカデミック用語で実務者用語ではない
実務者が型なし言語と呼ぶのはtypeless languagesのこと
現代において動的型付け言語を型なし言語と呼ぶのは明らかな間違い >>968
> untypedは基本的にdynamically typedのこと
出典がまったく示されていないか不十分です。内容に関する文献や情報源が必要です。 型付けなんてプログラマにとっては基本の基本で
おろそかにしていいものではないから
> 型無し糞言語3兄弟といえばRuby、PHP、Perl
これがいかにド素人で無教養で恥知らずな発言かは
お分かりいただけてると思う 次スレ(リニューアル)
Era 26
コンセプトは、現状の漠然とした実質未来最強言語決定戦という誰も得しない未来トレンドの断定を避けて、
次世代言語はまだ存在しない仮説を使って建設的な言語仕様の検討を促すことです。 https://mevius.5ch.net/test/read.cgi/tech/1655719441/l50
↑次スレのリンクです。もし興味があればどうぞ。
(一定数いる最強言語決定戦を続けたい層には不向きかもしれないので、
棲み分けなどに、もし良いアイデアがあればどうぞご自由になさいませ。) >>972
今どきの言語ならそんなことは起きないんじゃないかな
例えばRustの標準ライブラリには同名のreplace()という関数が10個もあるけど
(1) まず名前空間が分かれている
例えば str::replace() や Option::replace() など
(2) 次にメソッドの場合は名前空間を明示する必要がない
例えば let s = "価格: 123円"; という文字列に対してはstr::を付けずに
s.replace("価格", "値段"); // → "値段: 123円"
(3) 更にジェネリックな引数も取れる
例えば文字列""ではなく文字''も指定可能
s.replace('円', "万円"); // → "価格: 123万円",
文字判定関数を指定することも可能
s.replace(char::is_numeric, "*"); // → "価格: ***円"
このように様々な対象に対して様々な引数で用いられていても
同名のreplace()で曖昧になることもなくそれぞれを使うことができる
昔のように長い関数名を付けずに済むようになっている >>977
3つともオーバーロードやデフォルト引数はほぼ関係ない話じゃん
3つめがかろうじてオーバーロードに引っかかってはいるが論点が違う シャドーイングがOKで関数オーバーロードがNGって普通は逆じゃね? >>982
その2つがどう関係あるのか説明してくれ シャドーイング 同じ変数名で実際は完全に別物
関数オーバーロード 同じ関数名で引数が違う でも普通は同じ働き 引数の型が違うだけならジェネリクスでいいし、ジェネリクスで表現できないような
引数の違いがあるような場合はそもそも同じ関数名にすべきじゃないような気がする。
オーバーロードいらないよな。 せいぜい意味不明なワードがくっついた似たり寄ったりの関数を大量に作ってくれよ >>984
なるほどそういう意味か
イミュータブルとムーブがデフォルトだとシャドーイングNGだと命名負荷が高くなりすぎるのよ
オーバーロードやデフォルト引数/オプション引数ないとメソッドの命名負荷が高くなるのと似てる >>982
C++/Java/C#書いてる脳だとまあすんなり同意するけど
OCamlだのHaskellだの書いてる脳で読むと「お前の普通なんか知らねーよ」って感じだな >>982
効果が真逆という結論のようです
> シャドーイングは同時に存在できるのが一つだけで曖昧さがなくプログラミングにおいてプラス効果
> オーバーロードは同時に異なるものが存在できるため可読性を下げたりミスを起こす機会を生じさせてマイナス効果
確かにシャドーイングが出来ない言語では例えば
price_str = "398"
price_int = int(price_str)
とするかミスを生みやすい動的型付けで同じ変数名priceに入れるようです
シャドーイングがいかに優れているかよくわかりますね 書き込みする前に読み返したか?
ふわっふわしてるぞ Rsutは関数オーバーロードがないから
int(price_str)できない >>991
そういう時にメソッドではない不要なグローバル関数を設けるプログラミング言語は時代遅れ
もしstrに対してintに変換する関数int()を用意するならばstrのメソッドとして用意する
君には>>977を読み直すことを勧める Rustは同様に abs(x)ができない
他の言語ではmath.abs()とかにある
x.abs()と言う不思議な感じになる
-1_i32.abs()
は -1になる変な言語 >>991
Rustではintが多数あるため
let s = "98765";
let a: i32 = s.parse()?;
let b: u64 = s.parse()?;
となります
どちらも同じメソッドparse()で大丈夫です
あなたが使っている言語では多数のint毎に別々の変換用の関数があるのですか? >>993
>int(price_str)できない
>Rustは同様に abs(x)ができない
それはどっちもできるよ parseは多分ジェネリック実装されてて戻り値の推定からジェネリック型決めてるんだろ?
そっちのほうが不気味
そのparseだってどうせトレイトで実装してんだろ? >>985
ジェネリクスはまた別物だろ。
ライブラリ無いからシステムコール利用する機能を提供しようとする。
例えば socket(2)でいいわ。
第3引数なんて使うことないからと第2引数までを取るAPIとして公開、後になって第3引数必要になった(例えばSCTP利用)ってなった場合、オーバーロードできないとAPI変える必要あるじゃん。 >>996-997
それは実質fabs()と変わらない レス数が1000を超えています。これ以上書き込みはできません。