次世代言語24 Go Nim Rust Swift Kotlin TypeScriptat TECH
次世代言語24 Go Nim Rust Swift Kotlin TypeScript - 暇つぶし2ch175:デフォルトの名無しさん
22/03/25 11:58:21.38 k+N4+RC0.net
>>170
NLL入ってからborrow checkerに怒られることはほとんどなくなったよ
>>172
単によく知らないから質問しただけなんだけど、
Nimは低レベルを扱いやすくする機能は特にないってことか
Cへとトランスパイルされるのは低レベルへの対応というよりも、対応プラットフォーム増やすことや性能稼ぐことが目的という理解で正しい?

176:デフォルトの名無しさん
22/03/25 12:12:09.59 whQHGuOj.net
NimはDと同じようなイメージだな
C++からいろいろ便利にしましたって感じなんだけど、それを言うならC++20だって良くなってるし、わざわざ乗り換えるほどでもないよね、ってなりがち
Rustくらいの特徴が何があれば、多少面倒でも乗り換える人は出てくるんだろうけど

177:デフォルトの名無しさん
22/03/25 12:12:46.01 vqaIaLyp.net
>>174
以前のRustコンパイラはたしかに厳しすぎて吐くエラーも見にくかったけど
non lexical lifetime対応した今のRustコンパイラは普通に書いていれば困ることはなく
コンパイラの出すエラーも非常に見やすくて何が問題なのかすぐわかる上に
何を直すと良いかのアドバイスもあったりしてコンパイラ親切さトップ言語になったね

178:デフォルトの名無しさん
22/03/25 12:28:24.72 XAr12dgF.net
>>175
Rustはbetter c じゃなくてsmart/simplified c++あたりだわな。
Rustよりマイルドなc++標準サブセット出ないかな。

179:デフォルトの名無しさん
22/03/25 12:29:22.46 Sf6AbPmi.net
Rustとかどうでもいいよねw 興味もないしそのうち消えてなくなるよw

180:デフォルトの名無しさん
22/03/25 12:33:45.17 XkeiXeqJ.net
>>178
もちろんRustより良い言語が出てくればそうなるし良い言語が出てくるのは良いこと
しかし現状ではRustより良い言語がないし他に登場する気配もない

181:デフォルトの名無しさん
22/03/25 13:20:25.76 yp7Tyx5s.net
Rustより良い言語が出て自然と消えるのは良いことだろ
ただ、今のところはRustは良い言語だし使いたいと思う

182:デフォルトの名無しさん
22/03/25 14:31:56.50 +bBvNTMI.net
Rust は、Linux カーネルの開発の一部で取り入れるよ、っていう話で初めて注目した。

183:デフォルトの名無しさん
22/03/25 14:32:33.84 2aIwxdP0.net
>>176
おかげでよりブラックボックス化したけどな。まともな文法定義がもうできなくなってる。

184:デフォルトの名無しさん
22/03/25 15:05:30.24 vFivvmZ5.net
>>182
例えばどういう問題が発生してるの?

185:デフォルトの名無しさん
22/03/25 15:22:50.24 k+N4+RC0.net
>>182
NLL導入で文法には影響ないと思うけど何のことが言いたいの?

186:デフォルトの名無しさん
22/03/25 16:28:19.83 yp7Tyx5s.net
>>184
セマンティクスのことを言いたいんじゃないか?

187:デフォルトの名無しさん
22/03/25 16:42:28.63 xgDHHux/.net
具体例を上げてないしレス乞食じゃないの?

188:デフォルトの名無しさん
22/03/25 16:50:09.59 k+N4+RC0.net
>>185
文法定義を気にする人がそんな変な用語の使い方するはずないと思う

189:デフォルトの名無しさん
22/03/25 18:08:36.16 /LCeqdiL.net
>>182
何もブラックボックス化していないし文法定義に変化はない
Rustを叩く人はなぜデタラメばかり言うのだろうか

190:デフォルトの名無しさん
22/03/25 19:28:43.78 szsym4Ce.net
>>184 >>188
え? より厳密になってんじゃないの?
機能の安定化とNLLのバックポートを備えたRust 1.36
Rust 2015でNLLがサポートされたため、古いボローチェッカは間もなく言語から削除されることになる。この移行を安全に行なうために、新たなボローチェッカでは、古いボローチェッカでは受け入れられていたが、新たなボローチェッカでは違反になるコードに対して、警告を発するようになる予定だ。

191:デフォルトの名無しさん
22/03/25 19:46:16.71 xP1gtcBq.net
そろそろ次の次世代出てきませんか

192:デフォルトの名無しさん
22/03/25 19:52:52.64 k+N4+RC0.net
>>189
それは古いborrow checkerのバグでコンパイル通ってなかったコードがエラーなるということだと思う
基本的には新しいborrow checkerの方が制約は緩いはず

193:デフォルトの名無しさん
22/03/25 19:53:32.69 k+N4+RC0.net
>>191
バグでコンパイル通ってなかった、ではなく、バグでコンパイル通ってしまっていた、が正しい

194:デフォルトの名無しさん
22/03/25 20:22:05.99 RUUx2+G1.net
でもバクだろうと通らなくなるんだから文法変わってるという意見が正しいな、ごちゃごちゃ並べ立て言い訳してるみたいだけど

195:デフォルトの名無しさん
22/03/25 20:27:31.26 k+N4+RC0.net
>>193
文法じゃないでしょ

196:デフォルトの名無しさん
22/03/25 20:29:27.44 Mjr9Vw0y.net
文法ってのが構文+意味論みたいなのを指してるなら
NLL導入前後で構文は変わらず意味論は変わったから、まぁ全体としては変わってるでいいんじゃない?
それはそれとして文法定義ができないってのは意味不明だけど

197:デフォルトの名無しさん
22/03/25 20:34:34.89 k9SUNOiI.net
>>193
文法は一切変わっていない
大雑把に言うと
以前はコードの文字通りに追うだけで借用ライフタイムを無駄に広く取ってチェックしていた
だから厳しすぎて今では通る普通のコードが通らなかったりした
変更以降は実際に使われている状況を追うことで借用ライフタイムを実用の意味あるものとした
だからほとんどのケースで緩くなってプログラミングする上で困ることがなくなった

198:デフォルトの名無しさん
22/03/25 20:56:18.04 k+N4+RC0.net
>>189 で言われてるNLL導入でコンパイル通らなくなるcrateって
URLリンク(github.com)
で挙げられてるやつのことかな
壊れる是非はともかくcraterみたいな取り組みは他の言語もパクって欲しい

199:デフォルトの名無しさん
22/03/25 20:58:59.81 tb8uqVBL.net
>>196
フロー解析に頼るって信者的にどうなの?
あくまで型でチェックしてるのが美しいんじゃなかったのか

200:デフォルトの名無しさん
22/03/25 21:02:27.36 I37gdFG5.net
>>196
ある2つの形式言語ABで、同じ文章がAで受理してBで拒否するんだったら、そりゃ「ABは文法が違う」としか言えんな。
まぁ、だからと言って言語自体を否定する類の話じゃないけど、Rustを神聖視するあまり横車を押そうとするのはアホに見えるからやめたほうがいいよ。

201:デフォルトの名無しさん
22/03/25 21:14:19.83 I37gdFG5.net
>>197
crate.ioのこと?
ruby gemとかpython pip とかけっこう一般的な話だと思うけど、何か違うの?

202:デフォルトの名無しさん
22/03/25 21:17:24.39 LQTFL9vM.net
>>199
その程度で文法が変わったとは言わないと思う
その解釈だと今後もRustは文法がどんどん変わる計画となっている
例えばライフタイムについても現在stableでは通らないものがnightlyでは通るように更に緩くなっていくことが確定している
一方でeditionが変われば今まで通っていた記述がエラーとなるなど通らなくなることもある
Rustは今後もどんどん使いやすく向上していくよ

203:デフォルトの名無しさん
22/03/25 21:18:41.95 Sf6AbPmi.net
バカだから他の言語より劣ること分かってないんだよw

204:デフォルトの名無しさん
22/03/25 21:19:38.13 Sf6AbPmi.net
Rustっていうゴミ言語なんてどうでもいいよねw

205:デフォルトの名無しさん
22/03/25 21:23:34.44 0Q30DE2u.net
Rustプログラマーは給料上がっていくだろうね
そうすると人口も増えていく
パイソンもそうだったし

206:デフォルトの名無しさん
22/03/25 21:23:43.31 YQJ39BAy.net
>>201
最終的にライフタイムや借用を人間が一切明示しなくなってGCなしC#みたいになるのがゴールなの?
それでいいのか信者は

207:デフォルトの名無しさん
22/03/25 21:24:25.90 VGJQOYmV.net
>>201
通らなかったものが使えるようになるのはただの拡張だがその逆は破壊的変更。
後者がそう頻繁にあるとは思わんがな。

208:デフォルトの名無しさん
22/03/25 21:25:38.70 I37gdFG5.net
>>201
>その解釈だと今後もRustは文法がどんどん変わる計画となっている
当たり前だろ。
お前は何を言っているんだ? 形式言語の文法を何だと考えているんだか。
そういうアホな主張をするからRust信者は狂信者扱いされるんだよ。

209:デフォルトの名無しさん
22/03/25 21:28:33.82 1BFpe92B.net
>>205
まずは基礎知識を学習すべし
知識なく語るのは愚か

210:デフォルトの名無しさん
22/03/25 21:34:20.09 UcduMPNV.net
>>198
せめてライフタイムとは何かを学ぼうよ
型チェックとは全く関係ない話だよ

211:デフォルトの名無しさん
22/03/25 21:40:29.03 AozLNx79.net
>>200
craterはcrates.ioの全クレートをコンパイルしてみてコンパイラのバージョンアップで壊れるやつがいないかどうかチェックする仕組みのこと
スクリプト言語だとチェックできるのが構文エラーくらいしかないからあまり意味はないかも

212:デフォルトの名無しさん
22/03/25 22:03:36.42 cG5UiOtS.net
>>207
確かに言語の拡張も文法が変わったと言える
どのプログラミング言語も常に文法を変えながら拡張されていくのだろう

213:デフォルトの名無しさん
22/03/25 22:14:57.99 hMpMFfsx.net
>>205
意味が分からないな
コンパイラが正確に正誤を判定してくれるならそれが最善だろ

214:デフォルトの名無しさん
22/03/25 22:16:06.05 4czHOVAh.net
>>182
>まともな文法定義がもうできなくなってる。
意味不明

215:デフォルトの名無しさん
22/03/25 22:30:28.83 6wzTiGXz.net
>>201
同じコードで通る/通らないが変わるのなら、それは普通は「文法の変更」という。
なぜなら、
Error: コード生成が出来ない
Warinig: コードは生成可能だが、普通はこんな事をする必要もないからバグだよね?
だから。ここをRustはおそらく(haskell信者が一時期言ってた)
・Rustのアプリにはバグがない。なぜなら、バグのあるコードは全てコンパイラが落とすから
をやりたいのだろう、通常は警告のところをエラーにしてる。
ただこれは一部馬鹿にとっては逆効果で、
・エラーがなければ全て良し
だと勘違いしてしまってるように見える。
(別人だが)フレームワークにドキュメントで禁止されてるコード食わせてドヤってる馬鹿とか、
>>98 もそう。今時のエディタだと文字列/正規表現リテラルは色が付くが、
エスケープを失敗するとコード全体がリテラルの色になる。いくら馬鹿でもこれを無視はしないだろ。
従う気があればエディタで『予定と違う場所に』色が付くだけで十分なんだよ。
本来は警告も無視せず、一つ一つ問題がないか確認するものだし。
その辺面倒くさがってエラーに一本化した結果、悪癖が付いてしまってる。

ただまあこれはいいとして、
Go(2009)/Docker(2013)だから、これはタイミング的にも「これで勝つる!」だったのだろう。
とはいえDockerは普通の人が組むアプリではないので他案件/構造も引き続き募集中だが、
結局Rust(2010)にはないのか?本当にメモリ安全な言語がなくて困ってる奴がいれば飛びついているはずで、
時期的には2014頃に何か出現しててもおかしくないのだが。
未だに何もないのなら、所詮は馬鹿向けC++で、ポシャる見通しの方が高いだろうよ。

216:デフォルトの名無しさん
22/03/25 22:38:33.17 eYNPgwi0.net
>>214はまたいつもの意味不明なことしか言えないキチガイだな

217:デフォルトの名無しさん
22/03/25 22:39:20.33 SCzIX8G9.net
Dockerのくだり分からん

218:デフォルトの名無しさん
22/03/25 22:43:28.74 4czHOVAh.net
Ruby on Railsのようなキラーアプリ(ライブラリ)はRustにないのか、っていう話でしょ
そもそもRustはシステムプログラミング言語だし、そういう低レイヤーに縁がないエンジニアはこれからも使う可能性低いっしょ

219:デフォルトの名無しさん
22/03/25 22:49:09.03 k+N4+RC0.net
>>199
文法って言ったらシンタックスであってコンパイラはシンタックスだけをチェックしてるわけじゃないんだから
コンパイラが受理しないからと言って文法が違うとはならないでしょ
>>214
文法の変更って言ったら普通は例えばBNFが変わるとかそういう話でしょ

220:デフォルトの名無しさん
22/03/25 22:49:43.62 883KHxPC.net
>>214
君は書き込みをする前に二つの点を改善しなさい
一つ目は意味の分かる文章を書くこと
頭をゼロにして読み返してみればおかしなところに気付くはず
二つ目は批判したい対象についてもっと学習すること
妄想で話を進めるから意味不明と間違いが多い

221:デフォルトの名無しさん
22/03/25 22:55:01.03 6wzTiGXz.net
>>216
(スレ的に昔の話を混ぜ込んでわかりにくくなってたのならすまん)
90で言ったとおり、Dockerを組みたいのならGoは多分最適で、結果、
Go(2009)/Docker(2013)と順当な期間でデビューし、その界隈では広く使われるに至ってる。
Dockerのアイデアが先にあって偶々出てきたGoに飛びついたのか、
GoにインスパイアされてDockerの構造を思いついたのかは分からんが。
Rustが「他の言語では現実的に不可能な」レベルの得意分野があるのなら、
同様に、Rustが最適だ、と思えるアプリが既にあるか、開発中のはず。
俺は何度も言ってるが(C)を目指すべきだと思ってるので、(89参照)
その言語が得意とする構造等があれば、
俺が作りたいアプリにそれが含まれてたらその言語を使う、というだけ。
(言語の習得が目的ではない)

222:デフォルトの名無しさん
22/03/25 23:09:22.77 f8iKGyO6.net
>>220
前にもデタラメと意味不明なことを書いていた人だったのか
浅はかな知識ならびに自分勝手にこうでなければならないと決めつけた話を元に暴走しているためにデタラメと意味不明になっている

223:デフォルトの名無しさん
22/03/25 23:13:11.92 v9JvqvSg.net
>>194
顔真っ赤で内容ゼロの反論してきて不覚にもワロタw

224:デフォルトの名無しさん
22/03/25 23:17:57.63 sK8SIzoZ.net
>>218
文法=構文って思ってるのは分かるけど皆がそうとは限らないよ
自分だったら構文と意味論の区別が問題になるようなこのケースで
文法なんてあいまいな用語は使わないけど
強いて言うなら構文と意味論は両方文法に含まれると思っている

225:デフォルトの名無しさん
22/03/25 23:20:42.33 Sf6AbPmi.net
ほとんどが単発IDの自演だぞw

226:デフォルトの名無しさん
22/03/25 23:20:59.36 UErfWwQw.net
>>193
いわゆる普通に文法を意味するところのsyntaxは変わっていない

227:デフォルトの名無しさん
22/03/25 23:25:23.45 k+N4+RC0.net
>>223
カジュアルに文法って言葉使ってるなら自分も気にしないんだけど
>>182 が文法定義って言ってたり
>>199 で形式言語って言ってたりして
それどういう意味で言ってるの?ってのが気になってつっかかってしまった

228:デフォルトの名無しさん
22/03/25 23:26:20.50 4czHOVAh.net
>>220
実際、Rustの最高のターゲットはシステムプログラミングだから、そういう意味ではCと似ている
だからLinuxカーネル、Android OSみたいな巨大プロジェクトでも採用されるまでに至った
その他の有名事例はFirefoxは常識として、Dropboxのファイルストレージ、DiscordのStateサーバ、Figmaのmultiplayerサーバ、AWSのS3/CloudFront/Bottlerocketとかかな
URLリンク(www.rust-lang.org)
細かく挙げればここにあるようにいくらでもあるけど、眺めてみると件数としてはhigh performanceを求めて採用する事例が多いかな

229:デフォルトの名無しさん
22/03/25 23:32:52.17 6wzTiGXz.net
>>218
> コンパイラが受理しないからと言って文法が違うとはならないでしょ
少なくともCではほぼ同義だし、他言語でもそんなもんだと思うけど。
Cの場合は「自分の足を撃て」で躊躇なく撃つ言語なので、エラーは、
・シンタックスエラー
・記憶領域(変数のサイズ)等が確定的でなく、オブジェクトコードに出来ない
 (これはC特有で、要はソースを食わせる順が間違ってたりしててサイズを知らない物が存在した場合。
 2パスコンパイルをしてる他言語では発生しない)
だから、他言語でもコンパイルが通らない=文法エラー、という認識が普通だと思うよ。
Rustの場合は他言語だと警告のところをエラーにしてるから話がおかしくなる。
元々全部警告にしてたら、誰も文法が変わったとは認識しないだろうよ。
だけどそういうコードの存在自体を許さないのだから、エラーにしているわけで。
元々コンパイラは色々情報持ってるんだから、気づいたおかしなところも吐いてくれ=警告で、
なら警告チェックを厳しくしてバグ検出出来るんじゃね?=リンターなわけ。
だから簡易リント機能は元々コンパイラにあって、さらにそれを強化して専用にした物がリンターと呼ばれる。
で、ここで「文法が変わった」かどうかを争ってても意味ないと思うが。
他言語出身者なら、同じコードで通る/通らないが変わるのなら、「文法が変わった」と認識するし、
コンパイラ屋なら、構文解釈に変更なくリント機能だけが強化/緩和されたのなら、「文法は変わってない」と言い張るだろうさ。
(実際にリント機能部分だけの変更なのかは知らんが)

230:デフォルトの名無しさん
22/03/25 23:36:20.64 8M8bRdYX.net
例えば自分はWebでReact/Next.jsを使っているんだけど
そこで使われているトランスパイラがRust製のswcへ変わったよ
色んな分野で代替する新たな良いものが出てくるとRust製が多いね

231:デフォルトの名無しさん
22/03/25 23:41:25.24 k+N4+RC0.net
>>228
Cみたいなシンタックスにセマンティクスが浸食してる言語例に出すあたりマジで何も分かってないんですね
それにCのエラーだってシンタックスエラー以外に型エラーとかいろいろあるでしょ
とにかく文法という言葉の使い方が独特すぎるからあなたの言うところの文法とは何かをちゃんと定義して欲しい
コンパイル時にエラーと判断されうるものは全て文法という理解で良い?
リンク時エラーも文法エラー?

232:デフォルトの名無しさん
22/03/25 23:57:36.32 6wzTiGXz.net
>>227
> Linuxカーネル
それ前も言ったけど、forkしただけで、採用されてないよ。
> Firefox
結果シェアはズタボロに落ちて最早ゴミ。対応面倒で切られてる始末だろ。
> Discord
ブログにあった件なら、生存オブジェクトが大量にあるのにGC言語(Go)を使った点が間違ってる。
ただ、Go側で「GC非対象ヒープ」を(自前ででも)用意すれば済んだ話。
あれで言語移行したのはただの趣味だと思うよ。
他は知らんが、Goでも採用実績なんていくらでもあるし、Rustよりは多いと思うよ。
それを全部見るのは無理なので、折角詳しくて布教したがってる連中が居るのだから聞いてみるか、というわけ。
Goの連中はピンポイントでDockerを出してきたし、納得するものでもある。
Rustにはねえのか?という話。
(ただしDockerと同様の物を俺が組む事は多分無いので、他案件/構造も募集)
>>229
本当に「この言語じゃないと現実的に無理」なら、「書き換え」ではなく「新分野を開拓」出来るはずだ。
Dockerの構造は「新規」だよ。

233:デフォルトの名無しさん
22/03/26 00:05:21.48 xT2VrKPz.net
>>231
そんな言いがかりみたいなでたらめ並べてうれしいのかね
それともそれら次々とRustで置き換わっていく恐怖に怯えての言動かね

234:デフォルトの名無しさん
22/03/26 00:18:45.11 JI2pA1P6.net
ドッカーは確かにgoで書かれているが、作ったイメージをコンテナとして動かすランタイムはRustで書かれてたりするのだよね
抽象化されてることすら知らなそうけど

235:デフォルトの名無しさん
22/03/26 00:19:28.54 W/ip1wOX.net
>>231
そんなにGo使いたいならRustのことを気にせずGo使ってどうぞ
Goも良い言語だから安心してね

236:デフォルトの名無しさん
22/03/26 00:22:51.04 W/ip1wOX.net
実際、Dockerほどの人気があるプロダクトはめったに生まれないからね

237:デフォルトの名無しさん
22/03/26 00:27:20.02 Z1/vdmI3.net
ランタイムあるからGoだけではコンテナランタイム作れないって聞いたんだけど本当?

238:デフォルトの名無しさん
22/03/26 00:30:14.44 9D+dR2jG.net
>>232
> 次々とRustで置き換わっていく恐怖に怯えての言動かね
自意識過剰すぎ。
というか、俺はお前らがそこまで言語に拘る意味が分からない。
それが適してたらそれを使うだけ、だろ。
俺がその言語作ったわけでもないし、その言語を使えば俺が偉くなるわけでもないし。
お前が修得出来たのなら、俺も修得出来るし、他の人も同様に修得出来るだけ。
修得で無理に差別化しようとするからおかしな事になるのだと思うが。

>>234
Goは味見して糞言語だったからもう使う気はないがな。
同じ事を何度も書かせて、しかも、それを悪いとしてない事が無理だ。
俺が切れたのはJSONのタグ記述だが。
(ああGo的には自動生成出来るような仕組みがあるから問題ないんだ!としている事は知ってる)

239:デフォルトの名無しさん
22/03/26 00:33:29.42 3brWv6vK.net
Dockerコンテナランタイムは色々あってもちろんRust製もある

240:デフォルトの名無しさん
22/03/26 00:35:20.61 W/ip1wOX.net
>>237
じゃあ自分の使いたい言語を使っていいよ
こんなスレに文句を書きに来てるぐらいだから、本当はRustのことが気になって気になってしょうがないんだろうけど

241:デフォルトの名無しさん
22/03/26 00:43:54.51 9q2PYIcF.net
dockerのどの辺がRustで書かれてんの???wwwww

242:デフォルトの名無しさん
22/03/26 00:44:14.12 d6z2UOgm.net
>>237の人は前スレから一貫していて
Goに対してもクソ言動と批判しつつ
Rustを叩くための棍棒としてGoを使っている
C#については絶賛

243:デフォルトの名無しさん
22/03/26 00:44:35.30 9D+dR2jG.net
>>239
リスカブス乙
俺は定期的に他言語情報をクロールしてるだけだよ。
ただNimがCソースを吐くとは知らなかったのでちょっと気になってるが。(使うとは言ってない)

244:デフォルトの名無しさん
22/03/26 00:51:02.81 9D+dR2jG.net
>>241
> C#については絶賛
してねえだろ。
実際GUIは糞で、JSの方が数段マシ。そりゃ世の中のGUIがHTMLになるのも納得だよ。
GUIのメインスレッド+サブスレッドの構造もよろしくないと思ってる。
(ここら辺も既に書いたが)
ただな、どの言語にも一長一短はあるんだよ。みんな色々考えて、改善してきてるわけだから。
だから、○○言語最強!ではなくて、言語特性を理解した上で選択、としたいわけ。

245:デフォルトの名無しさん
22/03/26 00:54:11.51 AS0dCv5n.net
>>241
それに対してガイガー君がC#を叩く構図だね
もちろんそれ以外の時はガイガー君はRust叩き
二人ともロクでなし

246:デフォルトの名無しさん
22/03/26 00:54:44.30 47RFB1/G.net
Firefoxが墜ちたのは旧エクステンションを切ったからで…(またこの話?)

247:デフォルトの名無しさん
22/03/26 00:58:24.45 W/ip1wOX.net
>>242
そういうのが気になるなら vlang もいいかもね

248:デフォルトの名無しさん
22/03/26 01:01:58.12 LzDSDoUW.net
>>243
JavaScriptも良い言語だけど
型が弱いしTypeScriptは中途半端だから
最近Rustに移ったよ
もちろんサーバーサイドだけでなくブラウザサイドもRustでWASM
WASM⇔JavaScriptのオーバヘッドは誤差範囲とわかり実用的

249:デフォルトの名無しさん
22/03/26 01:25:19.73 9q2PYIcF.net
俺はC#を叩いたことは一度もないw
間違いを指摘し続けてただけだぞw
Rustは変なビジネスチャンスばかり狙った信者が嘘八百並べ立ててるから、すごい怪しげな新興宗教になってるw

250:デフォルトの名無しさん
22/03/26 01:29:08.29 9q2PYIcF.net
半年くらい前までは俺も静かにRustの普及を望んでたんだけどねw
今はもう・・・やばい印象しか受けない

251:デフォルトの名無しさん
22/03/26 01:57:44.71 Y9M7cL9r.net
>>249
ガイガー君は嘘つきだな
Rustの配列とスライスの違いすら知らないことがこのまえ発覚したことで全てバレた
Rust初心者でも知っていることなのにな

252:デフォルトの名無しさん
22/03/26 02:31:08.59 9q2PYIcF.net
[T]がarrayで&[T]がスライスだと間違って覚えてただけだろw 原因はarrayを初期化以外で使ってなかったからってちゃんと書いたw
多分Rustをやってる期間は多分お前よりはるかに長いよw

253:デフォルトの名無しさん
22/03/26 03:04:03.73 R0l+7kK3.net
>>251
そんな間違いする人を初めて見た
正解は[T]がスライスで&はその参照
&が参照を意味するだけにすぎないことも知らない時点でRustを知らないと確定

254:デフォルトの名無しさん
22/03/26 03:36:58.66 9q2PYIcF.net
ないないw きっといっぱいいるw こんな説明だからw
URLリンク(doc.rust-lang.org)

255:デフォルトの名無しさん
22/03/26 04:31:22.21 NboHt8Df.net
>>251
> [T]がarrayで&[T]がスライスだと間違って覚えてただけだろw
酷くおバカな間違いだな
Rustを使ったことがないからそういう勘違いをしてしまう
ちゃんと公式ドキュメントの各1行目を読もうぜ
配列
URLリンク(doc.rust-lang.org)
A fixed-size array, denoted [T; N], for the element type, T, and the non-negative compile-time constant size, N.
スライス
URLリンク(doc.rust-lang.org)
A dynamically-sized view into a contiguous sequence, [T].

256:デフォルトの名無しさん
22/03/26 06:43:20.01 9q2PYIcF.net
それはAPIリファレンスだろw

257:デフォルトの名無しさん
22/03/26 07:50:27.56 ZP/Jhtaq.net
>>62
それ、C/C++が全く出来ないレベルじゃん。メモリやポインターの理解が出来てないから実行時デバッグに時間が掛かる。普通は処理を書いたら動くことを確認するだけで済む。

258:デフォルトの名無しさん
22/03/26 07:54:07.76 Vvd4qIhx.net
>>251
> 多分Rustをやってる期間は多分お前よりはるかに長いよw
はるかに長い期間やっててそれでは知能が低いです

259:デフォルトの名無しさん
22/03/26 08:12:28.41 3FEKWr2M.net
>>256
それはそういう話じゃないと思うぜ
C++とRustの両方使いこなせると分かるが
低レベルであるポインタアクセスがRustでは無くなり抽象化された参照アクセスとなり
安全でないアクセスがコンパイル時点で排除されるためその種の実行時デバッグが無くなる
その件だと思われる

260:デフォルトの名無しさん
22/03/26 08:24:24.55 9q2PYIcF.net
>>257
ただの記憶違いに知能は関係ないw 実際それで困ったことがないからなw

261:デフォルトの名無しさん
22/03/26 08:47:16.92 9LDujC2l.net
>>259
その件は君が嘘をついていると明確になっている
その件の書き込みを見ると君はarrayとsliceを勘違いしただけでなく関数からarrayで返すと明言している
一方でその関数は返り型宣言で必ず[T; N]が現れる
このNは定数であるからさらに宣言することになりarrayでNの存在を忘れる人はいない
しかし君はarrayを[T]だと間違えて覚えていたわけだから矛盾する
君はRustのコードを書いたことがないという結論となる

262:デフォルトの名無しさん
22/03/26 09:14:29.48 9q2PYIcF.net
何を勘違いしちゃったのか知らないけど、こう書いてあるんだけどw
「arrayは定義はあるんだけど、今まで初期化にしか使わなかったから、使わなすぎて間違って覚えてたw」

263:デフォルトの名無しさん
22/03/26 09:23:18.54 6PoAfdDe.net
>>260
正確にはガイガー君はsliceで受けてArrayで返すと言っている
この発言の時点でガイガー君はRustを知らないと証拠
動的サイズのスライスで受けて固定サイズの配列を返すのは不可能だからだ
Nが判明しないと配列で返せないが実行時になるまでスライスの長さは不明
この点からもガイガー君はRustを知らない

264:デフォルトの名無しさん
22/03/26 09:51:30.12 9q2PYIcF.net
ニュアンスが違うんだよw
「それは俺のポリシーとして、可能ならVecを返すならVecを受けたいだけw
今回のケースではメリットとかないよw
同様にsliceで受けたらArrayで返したいし、iteratorを受けたらiteratorを返したいw」
slice->&[T]
array->[T]

265:デフォルトの名無しさん
22/03/26 09:55:08.60 Vvd4qIhx.net
はるかに長い期間やってるのにこの有様
子供の遊びかな?

266:デフォルトの名無しさん
22/03/26 09:56:51.30 9q2PYIcF.net
実際のロジック書くのに使ってたのVecだもんw

267:デフォルトの名無しさん
22/03/26 10:02:36.56 +G9UHc/m.net
結局TypeScriptがどの場においても最強って言いたいの?

268:デフォルトの名無しさん
22/03/26 10:18:06.61 Iuuv9oj0.net
間違ってても普通に説明すりゃいいのにお互いに煽りながら主張しあってるから、くだらない議論が余計に長引く

269:デフォルトの名無しさん
22/03/26 10:39:18.75 9q2PYIcF.net
TypeScriptさいきょー

270:デフォルトの名無しさん
22/03/26 10:44:45.97 Z1/vdmI3.net
>>263
Vecを返す関数は原則引数の型はVecにしたいということ?
敢えてそうする理由ってなにかあるの?

271:デフォルトの名無しさん
22/03/26 11:44:23.82 3zXxZFyx.net
goとtypescriptどっちかを捨てればいいのに
tcshやrubyを捨てるみたいに

272:デフォルトの名無しさん
22/03/26 12:29:34.61 5mCX3GGP.net
新しい言語はどれも配列の宣言があまりきれいじゃない気がする
Cなどの型名 変数名[要素数]だと何か都合が悪いのだろうか
それともやってる感を出すために変えてるの?

273:デフォルトの名無しさん
22/03/26 12:37:22.57 9D+dR2jG.net
>>271
固定長で問題ないならそれが一番いいが、
大体において固定長である事自体がものすごく不便だから。

274:デフォルトの名無しさん
22/03/26 12:41:53.15 sDWgty5N.net
>>271自身がモダンな言語における配列を正しく理解できてないから変なように感じるんじゃないかな
最近の言語ではCスタイルの配列、いわゆる配列変数(複数個の変数が連続して並んでいるもの)はあまり積極的に使用されないんだよ
最近の言語では配列は配列型のオブジェクトであって、変数が並んでるわけじゃないの

275:デフォルトの名無しさん
22/03/26 12:49:13.92 N9qlOq0y.net
>>263
Vecを返すならVecを受けたい、って
例えばこういうこと?
fn foo(input: Vec<i32>) -> Vec<i32> {…}

276:デフォルトの名無しさん
22/03/26 17:16:05.98 +G9UHc/m.net
>>271
Cの形だとパーサーをLRにしないといかんのでは?
GoとかPascalの形だとLLでパースしきってしまえるから早い。

277:デフォルトの名無しさん
22/03/26 18:34:45.11 9q2PYIcF.net
別スレの引用なので、興味があればそれを見てこいw
LL/LRとか懐かしいなw
S式とかに回帰するかw

278:デフォルトの名無しさん
22/03/26 18:46:07.16 MJID/KD0.net
ちんちんシュッ!シュッ!シュッ!

279:デフォルトの名無しさん
22/03/26 20:52:37.86 Vz8Iz6e1.net
>>263
Vecを受けてVecを返すインタフェースに通常することはない
普通は以下のようにする
(1) 同じVecを返す場合 (=書き換えたい場合)
まずこの場合はVec<T>自体を渡さなくても参照を渡せば済む
書き換えるから&mut Vec<T>を渡せばいいように思うが
普通はスライス&mut [T]を渡すインタフェースにする
なぜならVecの書き換え参照を渡すとVecの書き換えしかできないが
スライスの書き換え参照を渡せばVecの途中一部の書き換えもできるし
配列や配列の途中一部の書き換えもできるからである
(2) 別のVecを返す場合 (=引数側のVecのデータから作り出したい場合)
この場合も同様となる
引数としてVec<T>を渡すのではなくスライス共有参照&[T]を引数にする
これで入力データがVecだけでなく配列やそれらの一部でも受け付けることが可能
(2)' (2)のケースで入力を順次アクセスのみする場合
この場合は入力としてイテレータを受け付けられると良い場合がある
なぜならイテレータはVecのようなメモリ領域を必要としないため有利
イテレータを入力とする場合のインタフェースは更に2通りに分かれる
 [a] イテレータのメソッドとしてしまう
  イテレータチェーンに組み込むことができて便利
  ただしVecや配列やスライスに適用する時はinput.iter().method()の形になる
 [b] 引数として IntoIterator<Item=T> を受け付ける
  これだと引数に直接スライス、配列、Vec、イテレータのどれも渡せて便利
  ただしイテレータチェーンに組み込むことはできない
  イテレータメソッドの2つ目の入力インタフェースとしても使われる
どちらの場合でも順次出力でない場合ならばVecを返すのもありだが
順次出力ならばイテレータを返したほうがイテレータチェーンに組み込めて有利
なぜなら中間生成Vecを無駄に返さずに済むからである
この場合にVecが欲しければcollect()すればよい

280:デフォルトの名無しさん
22/03/26 21:26:11.73 9q2PYIcF.net
>>278
間違ってるよw それは俺のポリシーだからw 普通こうするという話じゃないw

281:デフォルトの名無しさん
22/03/26 22:23:14.39 27vH2xuj.net
ガイガー君はRustに関しても素人だから
そういう常識を知らなくても仕方ない

282:デフォルトの名無しさん
22/03/26 22:42:20.46 Z1/vdmI3.net
>>279
なんでそういうポリシーなの?

283:デフォルトの名無しさん
22/03/26 23:07:56.60 Z1/vdmI3.net
>>279
&strじゃなくてString使ったり、&TじゃなくてBox<T>やRc<T>使ったりするのかな
初めて聞くポリシーだからどういう考え方なのかが気になる

284:デフォルトの名無しさん
22/03/26 23:13:02.38 Z1/vdmI3.net
>>279
あっ、もしかしてborrow checker通すために借用使わないようにしてる?

285:デフォルトの名無しさん
22/03/26 23:29:11.35 fQbyL396.net
鋭い指摘だな
確かにガイガー君は参照を使いこなせなくて借用を批判してた

286:デフォルトの名無しさん
22/03/26 23:34:15.32 Vvd4qIhx.net
なんか哀れだよね彼は

287:デフォルトの名無しさん
22/03/26 23:41:42.26 9q2PYIcF.net
同じ型の方が設計意図が明白になるし、繋げやすいからw それだけだよw 他のにする理由がないよねw
まあもとのスレにも理由は書いたけどw

288:デフォルトの名無しさん
22/03/26 23:58:50.18 +vg1NaC4.net
>>286
繋げやすい??
全く意味不明だ
繋げるならばメソッドチェーンにすべき
そしてVecが中間生成物となるのは無駄となるバッドパターン
イテレータメソッドチェーンにすべき
イテレータを使わないならばスライスを引数で渡すべき

289:デフォルトの名無しさん
22/03/27 00:23:39.64 PoGWmBV8.net
>>287
君にとって意味不明なら意味不明でいいよw そう思っていればいいw
ポリシーとはそういうものw 菜食主義者に肉を食わないとはケシカランって言ってるようなものだからw

290:デフォルトの名無しさん
22/03/27 00:25:07.45 v5PJ1K00.net
>>286
借用で済ませて良い場所で所有権要求するのは普通じゃないからドキュメントコメントにちゃんと書いた方が良いよ

291:デフォルトの名無しさん
22/03/27 00:30:12.96 wv2YT7DD.net
>>288
技術分野でのポリシーとはまず意味のある目的がありそのために設定される
それを説明せずにポリシーとだけ唱えて普通ではない非合理なインタフェースにしているから叩かれる

292:デフォルトの名無しさん
22/03/27 01:18:29.05 PoGWmBV8.net
wwwww
知ってて書いてるんだと思うが、もとを読めば分かるけど、参照で受けてるよw

293:デフォルトの名無しさん
22/03/27 01:35:46.26 BChElFEF.net
>>291
見てみた
確かに引数の型をVecの参照にしてることがわかった
そして元のお題では一貫してずっとlet input = ["a", "b", "c"];となっているのに
引数の型をVecの参照にしてしまったためそこだけlet input = vec!["a", "b", "c"];としている
つまりに引数の型をVecの参照したのは明白な失敗となっている
もちろん正解は引数の型をスライスにすること
これで配列もVecも受け取れる

294:デフォルトの名無しさん
22/03/27 03:52:33.29 PoGWmBV8.net
>>292
だから失敗したからではなくて、何度も言ってるようにポリシーとして合わせたんだよw
正解は動くことw 2つの方法からsliceとしない方を選択したのw

295:デフォルトの名無しさん
22/03/27 04:12:54.52 keWGy6tX.net
>>293
それまでに他の人たちが書いたコードは入力元データが全てlet input = ["a", "b", "c"];と配列になっているね
そして関数の引数の型は全てスライス&[T]となっているね
ところが唐突にその引数の型を&Vec<T>へと変更したコードが登場
それまでの入力元の配列をスライスで渡すことが出来なくなる破綻
破綻の辻褄を合わせるため入力元データを配列から無駄で無意味なlet input = vec!["a", "b", "c"];へと変更
それまで入力元が配列でもスライスでもVecでも大丈夫だったのに入力元がVecしか受け付けなくなっているね

296:デフォルトの名無しさん
22/03/27 07:57:46.18 DQbwsS9F.net
> 2つの方法からsliceとしない方を選択したのw
キミはスライスが何なのかも知らなかったでしょ
自分の知能が低いのを弁えないと恥かくよ

297:デフォルトの名無しさん
22/03/27 08:56:07.10 PoGWmBV8.net
>>294-295
何を言いたいのか知らんが、I/F部分は自由にいじってるので、渡す型が変わるのなんて何の問題もないよw

298:デフォルトの名無しさん
22/03/27 09:20:19.51 aDr0zmJe.net
>>296
元々は利便性の良いスライスや効率で優る配列も受け付けていたのに
貴方の変更では効率の劣るVecのみを受け付けとなってコードが退化している

299:デフォルトの名無しさん
22/03/27 10:51:24.60 PoGWmBV8.net
>>297
何度も言ってるようにポリシーw

300:デフォルトの名無しさん
22/03/27 10:56:32.38 hQNNJiB+.net
>>298
劣ったコードにするポリシーかよ…

301:デフォルトの名無しさん
22/03/27 11:10:30.04 DQbwsS9F.net
さすがに可哀想やからもうやめたれ

302:デフォルトの名無しさん
22/03/27 11:41:31.93 PoGWmBV8.net
>>299-300
別に劣っても可哀想でもないよw 意図が明白なコードになってるw

303:デフォルトの名無しさん
22/03/27 12:11:24.82 mrHY19JA.net
面白い課題なんだね
input = ['a', 'b', 'c']; と集合が与えられた時に
そのべき集合(=全ての部分集合)を返す関数subsets()を作成せよ、ってことか
[]とか['a']とか['a', 'b']とか['a', 'b', 'c']とか全てを漏れなく返せと

304:デフォルトの名無しさん
22/03/27 12:27:49.24 PoGWmBV8.net
初学の人でもすぐ書ける簡単なロジックだよw

305:デフォルトの名無しさん
22/03/27 12:39:06.02 w1ZdsVcb.net
>>303
じゃあプログラム書いてみて

306:デフォルトの名無しさん
22/03/27 14:06:20.96 v5PJ1K00.net
>>301
Vec<T>を引数で受けることは配列全体の所有権を関数に委譲するという意図を表明してるんだけど
そういう意図ということで認識合ってる?

307:デフォルトの名無しさん
22/03/27 15:46:34.95 PoGWmBV8.net
このスレでも参照って何度も書いてんだけどw アホなのw?

308:デフォルトの名無しさん
22/03/27 20:05:48.71 beT1hCdX.net
たかだか数年で身につけたスキル、しかも数年後には使ってないかもしれないスキルでイキってんじゃねーよ

309:デフォルトの名無しさん
22/03/27 21:23:46.37 PoGWmBV8.net
Rustは数年後にはなくなってるかもねw

310:デフォルトの名無しさん
22/03/27 23:33:02.98 Pk6DsGJR.net
人間よりは長生きしてもらわないと
AIが人間に勝てそうな所がどんどん減っていく

311:デフォルトの名無しさん
22/03/27 23:40:27.92 PoGWmBV8.net
Rustなんて人間に負けっぱなしな印象しかないけど・・・w

312:デフォルトの名無しさん
22/03/28 05:38:25.18 1zvMDK8z.net
恥ずかしながら質問なんだがNimって何?

313:デフォルトの名無しさん
22/03/28 06:43:08.84 dhMFtSYI.net
中間生成となるVecを使わずにイテレータを返すイテレータにするという点と
2進数でべき集合を表現するという点が面白いね
fn subsets<T>(input: &[T]) -> impl Iterator<Item=impl Iterator<Item=&T>> {
let len = input.len();
(0..(1 << len))
.map(move |bits| (0..len)
.filter(move |index| bits & (1 << index) != 0)
.map(|index| &input[index]))
}
fn main() {
let input = ["a", "b", "c"];
use itertools::Itertools;
for (i, iter) in subsets(&input).enumerate() {
println!("{}: {:03b}: [{:?}]", i, i, iter.format(", "));
}
}
出力
0: 000: []
1: 001: ["a"]
2: 010: ["b"]
3: 011: ["a", "b"]
4: 100: ["c"]
5: 101: ["a", "c"]
6: 110: ["b", "c"]
7: 111: ["a", "b", "c"]

314:デフォルトの名無しさん
22/03/28 08:08:20.92 hQA9uA7d.net
>>311
目の前にある箱で検索しろ
URLリンク(ja.wikipedia.org)

315:デフォルトの名無しさん
22/03/28 11:24:54.13 cDjwoBcZ.net
>>297
横からみてた感想だけど、コードの目的(全てのサブセットを列挙する)達成できているのに退化とは?
その論説は本来の設問からすると別のゴールが生えてる

316:デフォルトの名無しさん
22/03/28 12:05:00.42 6B08HyS+.net
ツッコミついでにスライスの参照ではなくVecでインターフェース書くメリットについて考えてみたが
これ考え方がモロにPythonのそれだわ
こういう設計はRustだとあんまりやらないが、これをVecから派生した型へのimplとして書くとそこまで違和感ない
「Rustっぽくない」のは指摘されてる通りだが、思想としてはたぶんそこから来てる

317:デフォルトの名無しさん
22/03/28 12:12:56.02 6B08HyS+.net
Pythonはそのまま例えばこんな感じで書かれた関数をオブジェクトに代入してメソッドに使えるからPythonって言ったけど
とにかくオブジェクト指向にどっぷり頭まで漬かった設計だな
元の「どちらのやり方もある」発言も、「関数型の書き方に寄せるかオブジェクト指向的な書き方に寄せるか」という意味なら納得
(まあオブジェクト指向に寄せるならimplで書けよなんだが)

318:デフォルトの名無しさん
22/03/28 14:02:45.07 aDLT1T3I.net
>>314
元々に挙げられていた例は入力が配列
そして彼のコードは配列を入力として受け付けなくなっているから退化であっている

319:デフォルトの名無しさん
22/03/28 14:31:13.30 tMGTgyj2.net
>>316
そのimplを使ったオブジェクト指向的な書き方でもその理由はおかしい
例えばRustには以下のようなrepeatというメソッドが標準ライブラリにある
assert_eq!(vec![1, 2].repeat(3), vec![1, 2, 1, 2, 1, 2]);
もちろんご指摘のようにimplで書かれているのでメソッドとして使えている
しかしソースコードを見てみると次のようになっている
 impl<T> [T] {
  fn repeat(&self, n: usize) -> Vec<T>
  (以下略)
つまりVec<T>に対してではなくスライス[T]に対してimplされている
したがって配列に対しても適用できる
assert_eq!([1, 2].repeat(3), vec![1, 2, 1, 2, 1, 2]);
もちろんスライスに対しても適用できる
let v = [0, 1, 2, 3, 4];
assert_eq!(v[1..=2].repeat(3), vec![1, 2, 1, 2, 1, 2]);
>>315
上述の状況なのでその指摘では皆が納得できる理由や説明になっていない
メリットについて考えてみたとのことだがVecにimplするメリットもない

320:デフォルトの名無しさん
22/03/28 22:32:51.22 O2ikFAVr.net
ガイガー君完敗か

321:デフォルトの名無しさん
22/03/28 23:11:23.81 51Y1Thh9.net
1+1=の結果とか誰も興味ない上、俺がindex版、iterator版、vector版3つ正解を書いてやった後も、誰も興味のないその話題をひたすら続けて無視された挙げ句、このスレにまで持ってき


322:て見当違いな自画自賛と自作自演の嵐w どれだけバカなんだよw



323:デフォルトの名無しさん
22/03/28 23:19:40.94 ie9Ayk2m.net
>>318
ガイガー君とやらは配列とスライスの違いすら知らなかった超初心者だから仕方ないんじゃないか
もちろんスライスに対して実装すればVecにも配列にも適用できるからそれがベストチョイス

324:デフォルトの名無しさん
22/03/29 01:19:51.25 lkDcLhrw.net
>>312
Rustってスクリプト言語みたいに簡単に書けるんやな

325:デフォルトの名無しさん
22/03/29 17:06:45.34 7Qo2cIhC.net
このスレなんでJuliaは扱わないの?

326:デフォルトの名無しさん
22/03/29 18:10:38.94 wvo3NcdM.net
Juliaって数値計算に特化してるイメージなんだけどそれ以外の用途でも良い感じに使えるの?

327:デフォルトの名無しさん
22/03/29 19:43:35.70 4eDRgxgo.net
数値計算というのはひたすら配列に対してループをぶん回すもんで、FortranやJuliaはそういう処理の記述に特化している
そういう意味だと、数値計算以外だと昔のCOBOLみたいに愚直に一行ずつレコードを処理していくような古典的なバッチ処理には向いてるんじゃないかな

328:デフォルトの名無しさん
22/03/29 22:44:22.64 zunmlMTL.net
>>321
本人乙w 配列とスライスの違いは分かってたけど、配列の定義を誤って覚えてただけだよw
Juliaは入れていいと思うw

329:デフォルトの名無しさん
22/03/29 22:53:46.10 Wg3aSHjk.net
>>326
あんたは [T] を配列だと思っていた
もちろん [T] はスライスが正解
これはあんたが配列とスライスの違いをわかっていなかったことを意味する

330:デフォルトの名無しさん
22/03/30 08:18:40.34 LPYfd5on.net
型無し糞言語勧めてくる屑どもを全員●したい

331:デフォルトの名無しさん
22/03/30 08:41:28.55 wafreB6+.net
今時型無し言語を使うやつはそんなにいないだろ
動的型付け言語は使うが

332:デフォルトの名無しさん
22/03/30 09:47:02.31 /0rPh2g4.net
代表的な型なし言語:Smalltalk、BCPL、B言語、アセンブリ言語

333:デフォルトの名無しさん
22/03/30 16:32:49.22 uX6cnVWL.net
動的型付け言語は型無し糞言語じゃないんだ
僕はまだ大丈夫なんだ
こういうやつよな
●したくなるのは
注連縄を首に巻いて通勤快速に連結してやりたくなるよな

334:デフォルトの名無しさん
22/03/30 21:28:09.18 MqQwCbKz.net
型無しと動的型付けを間違えていたことを糊塗しようと必死

335:デフォルトの名無しさん
22/03/30 21:47:02.85 sZZS0bBr.net
>>331
動的型付け言語には型はちゃんとあるぞ
型を忘れる静的言語、型を覚えてる動的言語
URLリンク(dankogai.livedoor.blog)

336:デフォルトの名無しさん
22/03/30 21:52:53.10 9xKIjqbP.net
もちろん強い静的型付け言語の方が圧倒的に優れている
ほとんどのバグはコンパイル時点で検出できる
言語によっては実行時のエラーや善きせぬ例外を無くすこともできる
そのため強い静的型付け言語が最もプログラミング生産性も高い

337:デフォルトの名無しさん
22/03/30 21:58:42.01 txMnCN3x.net
>>333
バカなことばかり書いてあるダメなページだな
> 動的言語の値は、実行時においても自分の型を覚えている。
> このことは何を意味するか?
> 実行時に値の型を調べ、それに対応したコードを実行するプログラムが書けるということだ。
これはまともな静的型付け言語でも出来る
しかもコンパイル時に安全に型をチェックして実行時にエラーをなくすことさえ可能
動的型付け言語ではそのような安全性は無く実行時エラーの山

338:デフォルトの名無しさん
22/03/30 22:01:00.78 kwE0Wrnf.net
正直動的型付けのメリットをあまり感じない

339:デフォルトの名無しさん
22/03/30 22:02:22.01 usrXoLFt.net
いまさら型の動的静的言い出してもウンザリだから
それは君たちが各自自分で勉強して自分で満足してくれ
どっちが優れてるだのどうだの素人の見解1ミリもいらんから

340:デフォルトの名無しさん
22/03/30 22:06:41.15 ibIM88PL.net
このスレ雰囲気からして学生が多い気がするが、一般的には
型あり:ソースコードに型を明記する=静的型
型無し:そうじゃない=動的型
だぞ。ただし「型無し」と全くの初心者に言うと「本当に型がない」と勘違いしてしまう為、
「動的型付け言語」と『教育上』言われる事があってもおかしくないが、それは学校での話。
プログラミング界での用語は上記の通り。
330内はアセンブラしか知らんが、アセンブラにも型(サイズ)はあって、
floatとdoubleは命令が違うし、byte/word/doublewordも命令が違う。
(だから本当の意味で型がない言語なんて実装しようがない)
ただまあ、この辺のごくごく初歩的なところをまずは抑えるべきだよ。
生産性なんてその後の話、一通り書けるようになってからでいい。
心配しなくても初心者の時に書いたコードなんて後から見たらゴミ同然でしかない物ばかりだよ。

341:デフォルトの名無しさん
22/03/30 22:09:14.11 MqQwCbKz.net
>型あり:ソースコードに型を明記する=静的型
>型無し:そうじゃない=動的型
どこの一般だよ

342:デフォルトの名無しさん
22/03/30 22:10:48.06 1lFVb3RX.net
いずれにしても動的型付け言語はバグがあっても実行時になるまで検出できないクソ言語
強き静的型付け言語がベストと結論が出ている

343:デフォルトの名無しさん
22/03/30 22:15:34.40 usrXoLFt.net
よかったですね
ハイ終了

344:デフォルトの名無しさん
22/03/30 22:33:44.92 YEeL7eMZ.net
ちょっとした短いスクリプトを書く程度ならば動的型付け言語でも大丈夫
そうでなくプログラミングをするならば静的型付けのメリットが非常に大きいね

345:デフォルトの名無しさん
22/03/30 22:47:29.54 Xsfwo5z4.net
個人的にどちらが好みかと言われると静的型付け言語なんだけど、自分全然Pythonとか使うので、そういう言語を唾棄してる人的に雑な書き捨てをするときは何の言語使うのか正直気になる

346:デフォルトの名無しさん
22/03/30 22:52:27.20 Cwc9b4uh.net
>>343
ものに依る
例えば簡単なものならシェルスクリプト
よくいる何でもかんでもPython屋さんたちはシェルスクリプトも静的型付け言語も使えないがために陥ってる

347:デフォルトの名無しさん
22/03/30 23:01:10.09 liAwZQUf.net
PHP
Ruby
Perl
この辺は人として見下してるな
死んでもいいゴミだと思ってる

348:デフォルトの名無しさん
22/03/30 23:09:42.25 UJJsLtPb.net
PHPないと個人サイト作成不便だよ。
pythonで書いてた時期もあったがやはりPHPのが楽だしCPU負荷も少ない。

349:デフォルトの名無しさん
22/03/30 23:13:37.76 BGd1I7D3.net
個人サイトなら静的サイトジェネレータで十分な場合も多い

350:デフォルトの名無しさん
22/03/30 23:23:35.91 7iBx/H5p.net
>>346
おもちゃ程度ならPHPで十分だね
しかしアクセスされるたびに動的サーバーサイドレンダリングをしているわけで無駄すぎ
例えばアクセス数のある企業がそれをしたら負荷のせいで複数のサーバーが必要になりやすい
>>347の言うように出来る限り静的サイトジェネレーションがベスト

351:デフォルトの名無しさん
22/03/30 23:26:27.50 liAwZQUf.net
PHPerは性根が腐ってる
人間のくず

352:デフォルトの名無しさん
22/03/30 23:30:47.36 RO3HBLZh.net
サーバーサイドレンダリング…?

353:デフォルトの名無しさん
22/03/30 23:35:38.07 UJJsLtPb.net
静的サイト生成系は結局すぐやめたなぁ。
JSで無理くりなことやりはじめたりして個人サイトレベルだと逆に作りが歪む傾向がある。

354:デフォルトの名無しさん
22/03/30 23:46:31.10 liAwZQUf.net
歪んでるのはPHPerの脳みそだろ
ビルから飛び降りて矯正しろ

355:デフォルトの名無しさん
22/03/30 23:49:24.01 UJJsLtPb.net
自分は普段はc++とc#ばかりだけど...
だけどphpの方が楽、blazorとか逆にしんどかったし。

356:デフォルトの名無しさん
22/03/30 23:58:31.85 BjMRLjMo.net
>>353
選び方が極端すぎ
BlazorはJavaScriptの代わりにC#で書いてブラウザ上をWebAssemblyで動かす究極のアホ
C#はランタイムがデカい上にGCランタイムも必要なわけでそれらを全てブラウザ上のWebAssemblyで動かす
巨大で重くて遅い

357:デフォルトの名無しさん
22/03/31 00:17:05.37 nlcs9ENP.net
負荷が高いからCGIは使わない、PHPは使わない、
共用格安24時間稼働サーバーでnodeやjavaは基本動いてないからそれらは使わない、
VPSで個人サイト運営とか手間なだけだからやらない。
そうなると何でサーバー側で判定必要な処理書いてるのさ。
3大クラウド使って普通の個人サイトにGoでサーバー処理でも書いてんの?

358:デフォルトの名無しさん
22/03/31 00:28:30.60 LBSBAbTE.net
>>354
WebAssembly使うならGCの無いRust一択だな
C++でもよいがRustに対してC++使うメリットがないため
この新たな分野ではC++よりもRustの方がシェア高い

359:デフォルトの名無しさん
22/04/01 21:23:07.86 KJ3cEQ7q.net
>>344
なるほど、返答ありがとう
ということはシェルスクリプトレベルなら許容するけど、シェルスクリプトで扱えないデータ構造が出てくるような場合は、もう静的型付き言語じゃないとありえないって感じなんだね

360:デフォルトの名無しさん
22/04/01 22:34:27.42 06FQxcF3.net
おシェル芸とか勘弁してくれや
書いた本人すら読めない

361:デフォルトの名無しさん
22/04/02 08:35:29.97 4T2g1HGg.net
どの言語も読めないのはそいつの能力が低いだけ
その一方でプログラミング開発デバッグ効率は言語により大きく異なる
強い静的型付けでコンパイル時に可能な限りエラーを出し尽くしてくれるほど効率がいい

362:デフォルトの名無しさん
22/04/02 10:10:09.80 qwJ1jUe9.net
コマンドラインツールでもweb使うとかになるとpythonで書くかな
他は可能な限りシェル

363:デフォルトの名無しさん
22/04/02 10:43:36.91 ofyuLHc/.net
pythonが十分に普及してくれたんで最近はsh/batのかわりにpy一本で済ませることが多くなってきた。

364:デフォルトの名無しさん
22/04/02 11:11:35.19 GmlBdpVN.net
ちんちんシュッ!シュッ!シュッ!

365:デフォルトの名無しさん
22/04/02 12:13:37.37 qwJ1jUe9.net
めちゃくちゃ楽したいときはipynbもありかなーと最近思っている
手作業混ぜなきゃいけないけど表を加工するタスクとか、pandasのto_clipboardで時短できる

366:デフォルトの名無しさん
22/04/02 14:47:38.25 pHmc1XXg.net
>>361
わかる。
sed, awk, curlにbashの配列使ってとかやってたのを一時期perl5に移そうかと思ったけど、これだけpythonが一般化したらもう全部pythonでいいやって思った。

367:デフォルトの名無しさん
22/04/02 14:53:32.80 huJOhBgh.net
pythonのクソみたいなエラーメッセージは二年ほど前に解消された

368:デフォルトの名無しさん
22/04/02 15:17:59.11 aIdGEsvv.net
pythonのインデントによるフォワードルールに慣れてくるとC風の{};が体が拒否反応起こす。begin/end系も論外

369:デフォルトの名無しさん
22/04/02 15:42:43.12 Yphv2UuC.net
インデント系言語はコードフォーマット自分で整えるのが前提なのがなぁ
適当に {} を書いて保存するとフォーマッタが良い感じに整形してくれるのに慣れるともう離れられなくなる

370:デフォルトの名無しさん
22/04/02 15:43:08.95 Yphv2UuC.net
フォーマットというかインデントか

371:デフォルトの名無しさん
22/04/02 15:55:36.79 6GewdDTG.net
生産とデバッグ効率は言語というより開発環境とライブラリがものをいうからなぁ。
少々言語自体にアドバンテージがあっても環境しょぼきゃデバッグも時間かかるだけだし
ライブラリも数万数十万人といった十分な使用実績ないなら主要な機能さえバグがある可能性が高くなるし。

372:デフォルトの名無しさん
22/04/02 16:27:09.73 AD4X0KNq.net
コンパイル時点で問題点をエラーにしてくれない言語こそ開発効率が非常に低い
なぜなら実行時にエラーを引き起こすからだ
その結果として実行時デバッグという無駄な時間のかかる行為が必要となる

373:デフォルトの名無しさん
22/04/02 17:19:49.44 Eaxn3zCS.net
PoopHatePoorの悪口はやめろ

374:デフォルトの名無しさん
22/04/02 18:15:03.99 t3Z/t1xC.net
静的型付けでも実行時エラーを避けられないダメな言語は多い

375:デフォルトの名無しさん
22/04/02 18:23:24.14 +a+ANJVh.net
>>367
コードジェネレーターとかで非常に面倒。
YAMLみたいに両対応してくれればな。

376:デフォルトの名無しさん
22/04/02 19:18:12.91 huJOhBgh.net
pythonのインデントは20年前は馬鹿にしてたけどコードの行数が少なくて済むので一覧性が上がる効果がある
自分は主にC#使ってるけど行数が増えるのでもう何とかして{}減らないかと常に思ってる

377:デフォルトの名無しさん
22/04/02 19:26:43.20 pHmc1XXg.net
>>366
その部分は俺は今も波括弧ブロックの方がみやすいわ。

378:デフォルトの名無しさん
22/04/02 19:52:57.36 Eaxn3zCS.net
目Parseする時に {} は視認性が上がるからあった方がよい
実験結果が示している

379:デフォルトの名無しさん
22/04/02 19:59:17.80 huJOhBgh.net
()は目パース処理されてるらしいけどブラケットはそういう話は聞いたことはないけどな
実際は一行に一個{や}がある状態だから視認性には関係がないかと…

380:デフォルトの名無しさん
22/04/02 20:13:00.21 Yphv2UuC.net
>>374
C#は { を独立した行にするから余計に縦幅が長くなるのかもね

381:デフォルトの名無しさん
22/04/02 20:56:57.66 ezdDFz2p.net
>>370
Pythonなどの動的型付け言語はそのへん悲惨だもんな

382:デフォルトの名無しさん
22/04/02 21:08:24.40 Yphv2UuC.net
>>379
type annotationつけたpythonなら良い?

383:デフォルトの名無しさん
22/04/02 21:51:17.40 oz2OEgJO.net
>>380
強い静的型付け言語を使ったことないのかね
単なる型アノテーションなんておもちゃ

384:デフォルトの名無しさん
22/04/02 21:55:55.31 /mZUsJdk.net
人間が管理できる規模のうちは型アノテーションでも十分
コードの規模がデカくなってくるとコンパイル時チェックがないとやってられん

385:デフォルトの名無しさん
22/04/02 22:01:13.39 ofyuLHc/.net
>>381
型付けの強弱とアノテーションかどうかって関係ないでしょ

386:デフォルトの名無しさん
22/04/02 22:15:52.11 Q6e3gTSV.net
TypeScriptですらオモチャと言われているのにアノテーション程度ではな

387:デフォルトの名無しさん
22/04/02 23:13:17.46 Eaxn3zCS.net
例え型アノテがあったとしてもウンポコペチプーだけは絶対に許してはならない
導入しようとしてくるエタヒニンのガイジどもは全員アウシュビのガス室送りにすべき

388:デフォルトの名無しさん
22/04/02 23:47:53.77 Yphv2UuC.net
>>381
強い静的型付け、かつ、型エラーがある場合は実行すらできない言語が良いということかな?
それとも動的型部分を一切排除して型付けをグローバルに強制したいということ?

389:デフォルトの名無しさん
22/04/02 23:55:58.32 AkfUdAt8.net
goはエラーハンドリングめんどい
まだkotlinの方がいいよ

390:デフォルトの名無しさん
22/04/03 03:17:07.00 Y2X5X0mD.net
>>382
コンパイル時チェックがないとやってられん、に同意
Rustのように型だけでなく書き換え競合などもコンパイルエラーとしてくれるのが理想的

391:ワイドショーは見るな
22/04/03 05:25:31.65 qYWEirZv.net
ソ連の核は綺麗な核
ポル・ポトはアジア的優しさ
北朝鮮は地上の楽園
珊瑚自作自演事件
南京・慰安婦捏造
教科書書き換え「誤報」事件
朝日・武富士裏献金事件
拉致問題切り捨て
サイレント魔女リティ
風の息遣い
五味ボマー
変態新聞
村木局長犯人扱い
その他人民裁判ならぬマスコミ裁判は数知れず
そしてマスコミお得意の「報道しない自由」
これでも貴方は新聞を信用しますか
これでも貴方は新聞を購読しますか
よく考えて下さい

392:デフォルトの名無しさん
22/04/03 09:41:03.41 DNCDVh6y.net
以前の彼は紳士的でした
ところが並列処理での変数の取り扱いにバグが紛れていて不正確な変更が行われこんなことにばかり言うようになってしまいました
手遅れになる前にRustを使いましょう

393:デフォルトの名無しさん
22/04/03 09:45:44.13 N+64wXdQ.net
でもPHPの方が需要あるよね

394:デフォルトの名無しさん
22/04/03 09:54:03.47 ajg4rWD0.net
>>391
RustとPHPの需要を比較しても意味ないですよね
例えるなら小麦粉をもっと食べましょう。と言ってるのに対してスパゲティのほうが人気店あるよね?っていってるようなものですよ。

395:デフォルトの名無しさん
22/04/03 10:25:30.38 DNCDVh6y.net
PHPでまともに仕事してるならいいだろ
Rust使えば何でも許されてニート生活しててもいいわけじゃない

396:デフォルトの名無しさん
22/04/03 10:52:41.24 N+64wXdQ.net
なんかお勉強界隈でルースト?ってゆうの流行ってるみたいですけど、それで仕事できるんですか?
それでワープレより顧客にバリュー提供できるってゆうんですか?

397:デフォルトの名無しさん
22/04/03 10:58:50.79 DNCDVh6y.net
rust サビ 発音はラスト
マジンガーZでルストハリケーンって相手がサビる兵器があったけどアレ

398:デフォルトの名無しさん
22/04/03 11:03:35.19 DNCDVh6y.net
>>394
今の時点ではそのレベルのバリュー提供は無理だね
学校のサイトの管理を理系の先生がやってるけどワードプレス使ってる
rustは多分10年後もその牙城は崩せない
と言うか未来永劫に先生がrust使ってサイト管理をするようにはならない

399:デフォルトの名無しさん
22/04/03 11:14:22.42 1jVKF75a.net
>>377
俺は逆の話しか聞いたことない。
波括弧は目パースされてるが丸括弧はされてない。
例えばlispは丸括弧だらけだけど、あれの括弧の整合性はエディタ支援がでかい。

400:デフォルトの名無しさん
22/04/03 15:53:41.27 kjO3l4sO.net
>>384
TypeScriptはJSの全ての値に型をつけるために無茶な仕様追加してるからな
ゼロベースで設計すればマシな言語になるのにな

401:デフォルトの名無しさん
22/04/03 16:06:48.55 YCOwGNk6.net
Typescriptには
完全なオーバーロードと
完全な形比較機能がほしいな

402:デフォルトの名無しさん
22/04/03 16:13:43.21 enboo0xE.net
>>398
そういう発想のaltJSはみんな死んじゃったんじゃないかな…

403:デフォルトの名無しさん
22/04/03 16:15:00.29 /giYNahv.net
goは詳しくないが。
関数で複数の値を返却できるが、エンジニアのスキル差がある時に、コードの整合性を保つのがめんどい。
Jsonのパースがめんどい。
とりあえず言語仕様として提供する機能が少なすぎて、Java、Rubyとかに慣れたエンジニアからしたら使いづらい。
メリットとデメリットは表裏一体の側面もあるが、こういう意見を持つエンジニアの方が多分多いんじゃね?
少なくともwebサービス開発においては、goは一時の流行りで終わると思うわ。複数人でのコードの管理がめんどいもん。
結局、言語仕様が複雑すぎず軽すぎずが好まれる傾向にあると思う。なので、スレタイに含まれる言語の中ではKotlinに一票

404:デフォルトの名無しさん
22/04/03 16:20:18.51 kjO3l4sO.net
>>400
それで成功したから生JSと混ぜられるのは必要なんだろうな
俺はかっちりした言語を使いたいけど

405:デフォルトの名無しさん
22/04/03 16:22:15.40 RzJGOQaY.net
TypeScriptが実現しようとしているのはVSCode上でのJSの完璧な型検査であって、別に最強の独自言語を作りたいわけでもコンパイル時チェックをしたいわけでもない
MSが提案しているJSへの型アノテーションの導入が実現したらTypeScriptは.ts.dのみを残して役目を終える

406:デフォルトの名無しさん
22/04/03 17:52:10.08 rc6NcMYZ.net
ナデラのMSは良いMS

407:デフォルトの名無しさん
22/04/03 18:03:50.41 PXdtBjdx.net
だ、Dart…

408:デフォルトの名無しさん
22/04/03 19:57:40.10 DNCDVh6y.net
>>401
どういう認識なんだ?
普通はgoは低機能だから誰が書いてもほぼ同じコードになるのがメリットだと言われてるんだけどw

409:デフォルトの名無しさん
22/04/03 20:01:53.30 k51Q+Vww.net
>>401
言語機能が少なくて文句言われてるが?
ジェネリクスがようやく入ったレベルだぞ

410:デフォルトの名無しさん
22/04/03 20:38:24.09 N+64wXdQ.net
>>406
それ言語機能が少なすぎてコピペしまくり=誰が書いても同じになる
というのがオチなんだよね
控えめに言ってゲェージ

411:デフォルトの名無しさん
22/04/03 20:40:34.46 k51Q+Vww.net
>>408
コピペと言語機能は無関係だろ

412:デフォルトの名無しさん
22/04/03 20:53:04.52 En8qx50/.net
goのエラー処理は俺が2019年に業務でちょっと触った時は
if err !=nil {}
みたいなのをひたすら書くしかなくて愕然とした経験があるんだが、これって今は改善されてるの?
比較的新しい言語にしてはずいぶん泥臭いことやるんだなって思った

413:デフォルトの名無しさん
22/04/03 21:02:47.89 N+64wXdQ.net
Go「ぜんぶ ひらがな に すれば かんじ や かたかな が なくて よみやすいね!」
言うほど読みやすいか?

414:デフォルトの名無しさん
22/04/03 21:03:41.40 /giYNahv.net
>>410
されてない認識
これめちゃくちゃめんどいし、戻り値の管理が無駄に煩雑になるだけだと思うんだが
パターンマッチングもめんどい

415:デフォルトの名無しさん
22/04/03 21:05:03.73 N+64wXdQ.net
>>409
ジェネリクスがないからコピペ or interface{}でAny化して型安全を捨てる言語やぞ
エアプは黙っとれ

416:デフォルトの名無しさん
22/04/03 21:32:49.77 DNCDVh6y.net
>>408
違うよ
文法が厳格でしっかり書いてないと枝葉みたいなしょうもない理由でコンパイル通らない
それでレベルが担保される

417:デフォルトの名無しさん
22/04/03 21:35:23.71 DNCDVh6y.net
コーディングになんでエアプが出てくるんだろうか?
語彙が貧困すぎる
脳が死んでないか?

418:デフォルトの名無しさん
22/04/03 21:49:33.85 gPxpOVle.net
高度に抽象化され凝縮度の高い用語を使ってるだけだよ
エアプガイジは黙っとれ

419:デフォルトの名無しさん
22/04/03 21:56:36.46 DNCDVh6y.net
ガイジ ← 脳が委縮した差別主義者が使う言葉
エアプ ← いつまでもゲームでしか物事を例えられない人が使う言葉

420:デフォルトの名無しさん
22/04/03 21:59:40.61 gPxpOVle.net
脳が委縮した差別主義者いつまでもゲームでしか物事を例えられない人は黙っとれ
Goみたいな文だな

421:デフォルトの名無しさん
22/04/03 22:02:18.79 DNCDVh6y.net
いやいや使い方が違うだろ
見不明な置換するなよw
本物の馬鹿なんだな

422:デフォルトの名無しさん
22/04/03 22:03:00.73 DNCDVh6y.net
意味不明

423:デフォルトの名無しさん
22/04/03 22:18:16.65 9lFqLTmO.net
go の if err 1= nil は貧者のEither/Result型って感じはするな
rust の enum みたいなものを導入すると付随していろいろなものを導入する必要があり言語仕様が膨らむということならば
シンプルな仕組みで代替するという go なりの割り切りなんだと思うけど
実際のところどうなんだろうね

424:デフォルトの名無しさん
22/04/03 22:32:45.61 F6bFXWLK.net
Goのエラーハンドリングの仕様については、長いこと議論され続けてるよ
Go1はもう変わらんだろうけど、Go2は新しい仕組み入りそう
URLリンク(go.googlesource.com)

425:デフォルトの名無しさん
22/04/04 02:08:47.79 pXIYfz5U.net
Rustなどのように『値付きenum=タグ付きunion』を導入している言語たちは
色々シンプルかつ効率と容易さと美しさを両立できているから
プログラミング言語として常備すべき基本的な型なのだと思われる

426:デフォルトの名無しさん
22/04/04 07:33:26.24 fw6p8g0C.net
Goにいまさらenum導入しても標準ライブラリから全部変えないとあまり恩恵ないし
if err !=nil {}のシンタックスシュガー導入くらいが妥当だろうね

427:デフォルトの名無しさん
22/04/04 13:42:12.37 lSnbwV1p.net
関数が複数の値を返却できるのはメリットのように見えて、ソースコードの規模が大きくなるほど型の管理が難しくなるだけだと思うわ
KENTAという人はgo推してるが、保守性の高いコード組みやすい代替言語にすぐ取って代えられると思うんだよな

428:デフォルトの名無しさん
22/04/04 14:41:15.89 mbicHYAd.net
>>374
20年前にPythonがこんなに普及するとは思わなかったよ。
Perl 便利って思ってたもの。

429:デフォルトの名無しさん
22/04/04 19:55:04.23 hAxNvJK9.net
PerlとRubyが自爆してPythonだけ生き残った感はあるが。

430:デフォルトの名無しさん
22/04/04 19:58:12.66 Mr7tYRvj.net
三大Poop言語と言えば?

431:デフォルトの名無しさん
22/04/04 20:08:25.60 ZaQ2qXNU.net
10年ぶりにプログラミング学習勧めてるけどpython面白いなー
5chではそんな流行ってない感じ?

432:デフォルトの名無しさん
22/04/04 20:13:10.33 w+f2Elco.net
>>429
5ch全体ではわからないけど少なくともこのスレではpythonは下火
今一番流行っているのはRustだね。
一番人気。それだけにアンチも多くて喧々諤々の議論が巻き起こっている状態。
というよりRustの勢いが羨ましくてファビョってるだけだけどなw

433:デフォルトの名無しさん
22/04/04 20:48:23.61 mbicHYAd.net
Perl 6 は Raku になったし、自滅かもしれんが、Ruby は「ペナンブラ氏の24時間書店」に登場する位にカリフォルニアの方では認知されてたと思ったんだけど。

434:デフォルトの名無しさん
22/04/04 21:22:41.62 yu8UGqfF.net
>>413
コード生成すりゃいいじゃん

435:デフォルトの名無しさん
22/04/04 21:23:22.47 yu8UGqfF.net
>>429
すれ違い

436:デフォルトの名無しさん
22/04/04 21:24:09.92 yu8UGqfF.net
>>427
PHPもだが言語機能に大差はないからあとはライブラリの質だけの差になった
そこで圧倒的差がついた

437:デフォルトの名無しさん
22/04/04 21:25:42.99 yu8UGqfF.net
>>426
年齢はPerlと大して変わらんからな
Pythonなんてモダンな要素全くないのにここまで流行ったのは凄い
特にRubyやRailsみたいな積極的なマーケティングとかもしてないのに

438:デフォルトの名無しさん
22/04/04 21:32:16.24 CuNEs20T.net
ついにRubyが反撃の狼煙を上げる
RubyのWebAssembly/WASIへの移植が実現、プレリリース版のバイナリ公開。RubyGemsにも対応
URLリンク(www.publickey1.jp)

439:デフォルトの名無しさん
22/04/04 21:48:11.28 g5kOP8Pm.net
>>436
ぜひRailsに導入してほしい
総スカン食らって完全終了だろう

440:デフォルトの名無しさん
22/04/04 23:20:01.52 yu8UGqfF.net
>>436
これRubyインタプリタをwasmにコンパイルしてそれ上で動かすんだろ?
ありえんでしょ

441:デフォルトの名無しさん
2022/04/0


442:4(月) 23:35:26.89 ID:AN+U/Dr9.net



443:デフォルトの名無しさん
22/04/04 23:45:58.24 TGLutmH3.net
>>435
たしかにまあRubyはRailsがキラーアプリとなって日の目を見ることが出来たけど、Pythonは人気を得るきっかけとかあったのかな
GoogleはPythonをめちゃ使ってて、GuidoがGoogleに入社した2005年頃にはすでにPythonがスクリプト言語の中では勝ち組感があったんだろうけども、なんでやろ

444:デフォルトの名無しさん
22/04/04 23:50:33.75 6MqP0wMX.net
>>436
WebAssemblyでガベージコレクションのある言語を動かすのは無駄の極致

445:デフォルトの名無しさん
22/04/04 23:56:53.89 yu8UGqfF.net
>>439
Cもそうだけど

446:デフォルトの名無しさん
22/04/05 00:05:51.56 2NHa52hR.net
Cを使うならRustにした方が機能豊富でプログラミングしやすいよ
もちろんデータ競合もメモリ管理ミスも検出してくれる
そしてほとんどの場合で速度差もない

447:デフォルトの名無しさん
22/04/05 00:48:48.74 vdX4VYV5.net
The Rust Programming Language 日本語版 をちょこっと読んでみたけどC++作ったストラウストラップが変態だった気がしてしまう

448:デフォルトの名無しさん
22/04/05 01:05:33.37 CALU2HjK.net
コード生成もコピペ扱いするならrustのderiveもコピペだよな

449:デフォルトの名無しさん
22/04/05 01:29:37.39 /ryaTu8Q.net
>>442
ガイジの真似とてコピペを走らば即ちガイジなり
CがガイジだからGoもガイジで~ぇすでええんか?

450:デフォルトの名無しさん
22/04/05 01:35:13.81 u+FS9OX1.net
>>446
だからコピペじゃないって
君のいうコピペより上の概念だよ
人が介在してない

451:デフォルトの名無しさん
22/04/05 01:37:22.57 /ryaTu8Q.net
>>447
機械がするコピペはきれいなコピペか?違うだろ?バカか?

452:デフォルトの名無しさん
22/04/05 01:42:08.31 u+FS9OX1.net
>>448
君のいうコードジェネージョンがコピペというなら
ジェネリクスも中身は型が違う同じコード生成してるだけだよ?
はい勝った
完膚なきまでに勝った
ここを君を導きたかった
勝ち俺の勝ち
ジェネリクス否定
矛盾
ジェネリクスはコンパイラによるコードジェネーション
勝ち俺の勝ち
勝ち完全
フルに勝ち
勝った

453:デフォルトの名無しさん
22/04/05 01:46:35.34 raev6Sae.net
>>449
見事に勝っちゃったねえ
レスバ見てたけどそこに導こうとしてるのはわかったよ
そっちに行くな!って思ってた
そもそもコンパイラがコードジェネレータだしね
本質的には同じことしてるわけで機会がコピペしてるからなあ
そっちに行っても負けは確定する

454:デフォルトの名無しさん
22/04/05 01:50:00.91 u+FS9OX1.net
>>450
いや危なかったジェネリクスがゴミっていう風に持っていくと絶対に勝てないからね
勝つにはなんとか相手を捻じ曲げさせるしかなかった
うまく誘導できたよ
負けるかと思った

455:デフォルトの名無しさん
22/04/05 01:53:56.08 QYmdMKfu.net
>>413
そんなにGoは酷い言語なのか
なぜそんなことに?

456:デフォルトの名無しさん
22/04/05 02:13:39.62 a+cPs4U5.net
>>448
そうだよ。

457:デフォルトの名無しさん
22/04/05 02:19:13.35 fMFdzsU+.net
元の話はこれか
型安全を捨てるのは暴挙だな
>>413
> ジェネリクスがないからコピペ or interface{}でAny化して型安全を捨てる言語やぞ

458:デフォルトの名無しさん
22/04/05 07:05:37.18 82POVtug.net
>>440
pythonはなんといってもAI(ディープラーニング)が起爆剤だろ
あとは自動化・RPA関連(Excel連携、スクレイピング)でもライブラリが豊富で人気がでた

459:デフォルトの名無しさん
22/04/05 07:07:35.56 82POVtug.net
たった3ヶ月でウェブエンジニアになれた
きっかけはRailsを学んだこと
とか言ってるの最高に気持ち悪い
今はRustとかやって難しいところに悩んでる人がエンジニアだと思う

460:デフォルトの名無しさん
22/04/05 07:20:44.40 fQZQ0DHq.net
Rust自体は特に難しくはない
もしRustを難しいと感じるようなレベルの人ならば一般的にプログラミングに向いていない

461:デフォルトの名無しさん
22/04/05 08:14:13.65 /ryaTu8Q.net
なんかバカが勝手に盛り上がってて藁
どこのチンカス野郎がマス書いたコピペジェネレータと言語標準じゃ全く次元が違うだろ
はい勝った
完膚なきまでに勝った
ここを君を導きたかった
勝ち俺の勝ち
ジェネリクス否定
矛盾
ジェネリクスはコンパイラによるコードジェネーション
勝ち俺の勝ち
勝ち完全
フルに勝ち
勝った
見事に勝っちゃったねえ
レスバ見てたけどそこに導こうとしてるのはわかったよ
そっちに行くな!って思ってた
そもそもコンパイラがコードジェネレータとかワロス
本質的には同じでないわけでガイジがコピペしてるからなあ
そっちに行っても負けは確定する

462:デフォルトの名無しさん
22/04/05 08:37:48.08 VqqpMSri.net
>>456
でもそういう奴等はわかりやすい地雷で助かる
IT業界は人手不足だって言われているのは「自走できる」人材の不足なのに、どっかのYoutuberやプログラミングスクールの言うことを鵜呑みにしてRailsで作成したポートフォリオをドヤ顔で出してくるような奴は俺が企業の採用担当だったら速攻で落とすわ

463:デフォルトの名無しさん
22/04/05 09:19:59.73 pUAnaqqP.net
>>454
Goはおもちゃ言語だから

464:デフォルトの名無しさん
22/04/05 13:07:10.50 dZMax2uf.net
ひろみGO

465:デフォルトの名無しさん
22/04/05 14:27:50.37 ZwTPjiXX.net
>>455
AI関連の前に科学技術系のライブラリをpythonでって流れは結構あった。
そこらへんがperl、rubyにはなかった。
float回りをいじくると途端に言語や開発環境が汚くなるわけだが、その辺を躊躇しなかったってのが良くも悪くもある。

466:デフォルトの名無しさん
22/04/05 14:54:27.96 hteyj+L8.net
>>455
せやな、現在の圧倒的なPython人気はAI関連が充実してるからやな
でもGoogle社内の開発言語にもっと昔から採用されてたのにはAIは関係ないやろ
>>462
NumPyやSciPyみたいなのがキラーアプリだと?
もっとよく思い返すとRed Hat、Debian、GentooなどのOSでパッケージマネージャなど様々なツールがPythonで実装されてたし、
数値計算とか関係なく、スクリプト言語のデファクトスタンダードとしての地位を2000年ぐらいには確立してたね
キラーアプリがあるからというよりは、単純に開発者コンセンサスを得やすい言語だったんだろうな、と思ってきた

467:デフォルトの名無しさん
22/04/05 15:30:06.85 ZwTPjiXX.net
>>463
いやそのころのpythonのパッケージ管理ツールって相当ひどかったぞ。
まともに依存関係を解決できることなんてほとんど期待できなかったし。
まあ今もそういう傾向はあるが。

468:デフォルトの名無しさん
22/04/05 15:49:46.89 Zafpq7jd.net
pythonは2007年ごろには将来デスクトップ系ではスクリプトの中核になるから小さな社内スクリプトやプラグインのスクリプトは可能な限りpythonにしましょうってずっと自分は運動してたわ。
幸い反対する人もほとんどいなかったな。
もちろんアプリはpythonでは書かないが。
AIなんかはあまり関係ないなぁ。

469:デフォルトの名無しさん
22/04/05 15:55:55.07 VZWFnuGC.net
40-300行ぐらいのpythonスクリプトは便利だわ
Windowsだと特にshell(cmd)の扱いづらさが際立つし

470:デフォルトの名無しさん
22/04/05 16:01:09.15 Om5krohy.net
googleはyoutubeや検索エンジンをpythonで実装してたもんな
それでpythonが注目されだした
確か書き換えたらコード量が大幅に減ったのとメンテナンスコストが下がったんだ
当時はC++,java,PytohnがGoogle三大言語だった
今は知らんけど

471:デフォルトの名無しさん
22/04/05 16:03:31.17 Zafpq7jd.net
pythonはmayaのプラグイン組み込み言語でもあったから
行列やベクトルや虚数を使った回転などを多用する層が
そこで増えていったってながれもあるやろな。

472:デフォルトの名無しさん
22/04/05 16:19:20.26 I+HzSIOd.net
カーニハン、ロブ・パイクが1999年に出したプログラミング作法(The Practice of Programming)では Perl, awk, C++, Java, C で処理速度とソースコードの行数表にしてた。

473:デフォルトの名無しさん
22/04/05 17:31:17.76 kTsaT80P.net
ポストPythonってJuliaなの?

474:デフォルトの名無しさん
22/04/05 17:35:57.79 82POVtug.net
>>470
Rustだろうな
Web業界はRustに移行しはじめている


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch