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

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2022/04/17(日) 17:52:35.38ID:KG26dcth
スレタイ(順番はRedMonk準拠)以外の言語もok

前スレ
次世代言語24 Go Nim Rust Swift Kotlin TypeScript
https://mevius.5ch.net/test/read.cgi/tech/1647887021/

0952デフォルトの名無しさん2022/06/19(日) 15:16:16.80ID:YnIsF6Qk
>>951
シンプルでなくイージー
型無し糞言語代表だろ

0953デフォルトの名無しさん2022/06/19(日) 15:23:17.11ID:T+HLe5Kk
rubyに型がないとかw
恥を知れ恥を

0954デフォルトの名無しさん2022/06/19(日) 17:07:15.35ID:SjAidwyp
恥を知れ恥をって一番恥ずかしい煽りだよな

0955デフォルトの名無しさん2022/06/19(日) 17:08:50.63ID:2cctUuao
他の言語の定型文をそのまま日本語に持ってくるからそうなる

富士山は日本で一番高い山の一つですは誤訳

0956デフォルトの名無しさん2022/06/19(日) 22:06:45.19ID:VFAsiM2X
Rubyはスクリプト言語にしてはPythonに比べ型は厳格だが、なんにでもなれるメソッドなかったっけ?

0957デフォルトの名無しさん2022/06/19(日) 22:28:00.46ID:8/kH/R2d
#method_missing

0958デフォルトの名無しさん2022/06/20(月) 12:03:09.79ID:7+wjkIp4
>>952
型無し言語って何?

0959デフォルトの名無しさん2022/06/20(月) 12:17:32.20ID:G0GSIi1k
シェルスクリプトやアセンブリのことです

0960デフォルトの名無しさん2022/06/20(月) 12:59:21.71ID:EbOcYieG
シェルスクリプトにも変数の型はあるしアセンブリもレジストリの種類は意識しないといけない

0961デフォルトの名無しさん2022/06/20(月) 13:09:02.41ID:rr2OcjMu
型なし言語って、誤用でしか用例を聞いた覚えがないけど、型なし言語とかいう用語はあるの?
文脈からして何を言いたいかはわかるんだけど

0962デフォルトの名無しさん2022/06/20(月) 13:09:53.23ID:rr2OcjMu
値に型がない言語のことを型なし言語、って呼ぶのは正しいの?

0963デフォルトの名無しさん2022/06/20(月) 13:52:48.64ID:6L0FdSjR
型無し言語じゃない
型無し糞言語だ
間違えるな痴れ者が

型無し糞言語3兄弟といえばRuby、PHP、Perl
業界の常識

未だこれ使ってる時代遅れのバカ老害どもは首吊って死んでええぞ

0964デフォルトの名無しさん2022/06/20(月) 13:55:02.11ID:4VWLMq9p
>>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種類の型のみを持つか、
言語を使う側でデータを参照するときにデータ幅や種類の解釈を決定することとなる。

0965デフォルトの名無しさん2022/06/20(月) 14:10:59.58ID:G0GSIi1k
>>960
bashのdeclareについては一旦忘れていただく方向でお願いします

0966デフォルトの名無しさん2022/06/20(月) 14:23:54.46ID:rr2OcjMu
>>964
ほんまや
Brainfuckとかみたいな難解言語もだいたいuntypedかな

0967デフォルトの名無しさん2022/06/20(月) 14:32:59.17ID:njNeMAGl
>>963が言っている型無し言語とは、一つの変数がいろいろな型の値を束縛できるってこと?

0968デフォルトの名無しさん2022/06/20(月) 15:16:39.40ID:gnE/PDYV
untypedは基本的にdynamically typedのこと
アカデミック用語で実務者用語ではない
実務者が型なし言語と呼ぶのはtypeless languagesのこと

現代において動的型付け言語を型なし言語と呼ぶのは明らかな間違い

0969デフォルトの名無しさん2022/06/20(月) 15:39:41.45ID:rr2OcjMu
>>968
> untypedは基本的にdynamically typedのこと
出典がまったく示されていないか不十分です。内容に関する文献や情報源が必要です。

0970デフォルトの名無しさん2022/06/20(月) 15:54:46.01ID:4VWLMq9p
型付けなんてプログラマにとっては基本の基本で
おろそかにしていいものではないから

> 型無し糞言語3兄弟といえばRuby、PHP、Perl

これがいかにド素人で無教養で恥知らずな発言かは
お分かりいただけてると思う

0971デフォルトの名無しさん2022/06/20(月) 16:28:03.20ID:G0GSIi1k
複おじ怒りのマジレス

0972デフォルトの名無しさん2022/06/20(月) 18:29:27.28ID:1agQsnkM
>>901
これがちょっと辛いんだよな。

0973デフォルトの名無しさん2022/06/20(月) 18:53:41.48ID:BnXOM/sm
型無し言語と言えば型無しラムダ計算だろ。

0974デフォルトの名無しさん2022/06/20(月) 19:04:42.99ID:hXDnNrPc
次スレ(リニューアル)
Era 26

コンセプトは、現状の漠然とした実質未来最強言語決定戦という誰も得しない未来トレンドの断定を避けて、
次世代言語はまだ存在しない仮説を使って建設的な言語仕様の検討を促すことです。

0975デフォルトの名無しさん2022/06/20(月) 19:05:46.77ID:hXDnNrPc
https://mevius.5ch.net/test/read.cgi/tech/1655719441/l50
↑次スレのリンクです。もし興味があればどうぞ。

(一定数いる最強言語決定戦を続けたい層には不向きかもしれないので、
棲み分けなどに、もし良いアイデアがあればどうぞご自由になさいませ。)

0976デフォルトの名無しさん2022/06/20(月) 19:24:15.90ID:cgMFd80D
そういうのGitHubでやったほうがいいよ

0977デフォルトの名無しさん2022/06/20(月) 19:52:16.37ID:E2oosySA
>>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()で曖昧になることもなくそれぞれを使うことができる
昔のように長い関数名を付けずに済むようになっている

0978デフォルトの名無しさん2022/06/20(月) 20:07:59.34ID:8GsqMDfw
次スレ立てるのはもうそろそろかな

0979デフォルトの名無しさん2022/06/20(月) 20:46:13.10ID:6L0FdSjR
>>975
アスペっぽい ガイジ

0980デフォルトの名無しさん2022/06/20(月) 21:02:14.54ID:Hg6hQLhP
>>963
ガイジ乙!

0981デフォルトの名無しさん2022/06/20(月) 21:08:22.86ID:mSfgS0Wr
>>977
3つともオーバーロードやデフォルト引数はほぼ関係ない話じゃん
3つめがかろうじてオーバーロードに引っかかってはいるが論点が違う

0982デフォルトの名無しさん2022/06/20(月) 21:24:31.48ID:j7veV6LL
シャドーイングがOKで関数オーバーロードがNGって普通は逆じゃね?

0983デフォルトの名無しさん2022/06/20(月) 21:29:29.90ID:ofPdKV5n
>>982
その2つがどう関係あるのか説明してくれ

0984デフォルトの名無しさん2022/06/20(月) 21:39:32.57ID:j7veV6LL
シャドーイング  同じ変数名で実際は完全に別物
関数オーバーロード 同じ関数名で引数が違う でも普通は同じ働き

0985デフォルトの名無しさん2022/06/20(月) 21:50:35.85ID:lr2wAV+c
引数の型が違うだけならジェネリクスでいいし、ジェネリクスで表現できないような
引数の違いがあるような場合はそもそも同じ関数名にすべきじゃないような気がする。
オーバーロードいらないよな。

0986デフォルトの名無しさん2022/06/20(月) 22:04:20.07ID:j7veV6LL
せいぜい意味不明なワードがくっついた似たり寄ったりの関数を大量に作ってくれよ

0987デフォルトの名無しさん2022/06/20(月) 22:09:55.02ID:xRbFgwNB
>>984
なるほどそういう意味か

イミュータブルとムーブがデフォルトだとシャドーイングNGだと命名負荷が高くなりすぎるのよ
オーバーロードやデフォルト引数/オプション引数ないとメソッドの命名負荷が高くなるのと似てる

0988デフォルトの名無しさん2022/06/20(月) 22:17:07.52ID:G0GSIi1k
>>982
C++/Java/C#書いてる脳だとまあすんなり同意するけど
OCamlだのHaskellだの書いてる脳で読むと「お前の普通なんか知らねーよ」って感じだな

0989デフォルトの名無しさん2022/06/20(月) 22:26:34.16ID:GOjINbNj
>>982
効果が真逆という結論のようです

> シャドーイングは同時に存在できるのが一つだけで曖昧さがなくプログラミングにおいてプラス効果
> オーバーロードは同時に異なるものが存在できるため可読性を下げたりミスを起こす機会を生じさせてマイナス効果

確かにシャドーイングが出来ない言語では例えば
price_str = "398"
price_int = int(price_str)
とするかミスを生みやすい動的型付けで同じ変数名priceに入れるようです
シャドーイングがいかに優れているかよくわかりますね

0990デフォルトの名無しさん2022/06/20(月) 22:30:15.50ID:j7veV6LL
書き込みする前に読み返したか?
ふわっふわしてるぞ

0991デフォルトの名無しさん2022/06/20(月) 22:36:51.94ID:j7veV6LL
Rsutは関数オーバーロードがないから
int(price_str)できない

0992デフォルトの名無しさん2022/06/20(月) 22:44:52.02ID:d/VymnYf
>>991
そういう時にメソッドではない不要なグローバル関数を設けるプログラミング言語は時代遅れ
もしstrに対してintに変換する関数int()を用意するならばstrのメソッドとして用意する
君には>>977を読み直すことを勧める

0993デフォルトの名無しさん2022/06/20(月) 22:52:38.23ID:j7veV6LL
Rustは同様に abs(x)ができない
他の言語ではmath.abs()とかにある

x.abs()と言う不思議な感じになる


-1_i32.abs()
は -1になる変な言語

0994デフォルトの名無しさん2022/06/20(月) 22:54:18.35ID:GOjINbNj
>>991
Rustではintが多数あるため
let s = "98765";
let a: i32 = s.parse()?;
let b: u64 = s.parse()?;
となります
どちらも同じメソッドparse()で大丈夫です
あなたが使っている言語では多数のint毎に別々の変換用の関数があるのですか?

0995デフォルトの名無しさん2022/06/20(月) 22:55:48.87ID:j7veV6LL
>>994
出た
愚者の?

0996デフォルトの名無しさん2022/06/20(月) 22:59:31.50ID:bmv2finQ
>>993
>int(price_str)できない
>Rustは同様に abs(x)ができない

それはどっちもできるよ

0997デフォルトの名無しさん2022/06/20(月) 22:59:45.45ID:4VWLMq9p
>>993
i32::abs(-1)

0998デフォルトの名無しさん2022/06/20(月) 23:01:03.11ID:j7veV6LL
parseは多分ジェネリック実装されてて戻り値の推定からジェネリック型決めてるんだろ?
そっちのほうが不気味

そのparseだってどうせトレイトで実装してんだろ?

0999デフォルトの名無しさん2022/06/20(月) 23:02:42.38ID:MklghZCY
>>985
ジェネリクスはまた別物だろ。

ライブラリ無いからシステムコール利用する機能を提供しようとする。
例えば socket(2)でいいわ。
第3引数なんて使うことないからと第2引数までを取るAPIとして公開、後になって第3引数必要になった(例えばSCTP利用)ってなった場合、オーバーロードできないとAPI変える必要あるじゃん。

1000デフォルトの名無しさん2022/06/20(月) 23:03:17.12ID:j7veV6LL
>>996-997

それは実質fabs()と変わらない

10011001Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 64日 5時間 10分 42秒

10021002Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php

レス数が1000を超えています。これ以上書き込みはできません。