X



次世代言語18 Go Rust Elixir Kotlin TypeScript
レス数が1000を超えています。これ以上書き込みはできません。
0002デフォルトの名無しさん垢版2019/10/01(火) 03:01:08.82ID:aEwUIB6s
好きなほう使え
0003デフォルトの名無しさん垢版2019/10/01(火) 03:28:34.17ID:QzzO0BSF
Go イケてない労働者言語
Rust 完璧な仕事を公務員が定義したような言語
Elixer ダメ親父Erlangの存在を興信所に暴かれるのにビクビクしながら婚活してる言語
Kotlin 乞食共がJetbrainsにカネを落とさないとこに気づかれたら終わる言語
Typescript ブラック企業Javascript社で同期のCoffeescriptが退職するまで耐えてやったー勝ったーと喜んでいるブラック社員みたいな言語
0004デフォルトの名無しさん垢版2019/10/01(火) 07:30:15.07ID:TQ/of5Nk
そんな私はPureScript
0008デフォルトの名無しさん垢版2019/10/02(水) 03:01:44.17ID:HAeoUhP1
元々、スレタイのElixirのところはSwiftだったんだけど
話題にする人少なすぎた
0010デフォルトの名無しさん垢版2019/10/02(水) 20:48:10.64ID:VsMQdTfA
>>9
>Ruby → Elixir
Erlang → Elixir, Ruby → Crystalでしょ
実際の人の流れは知らんが

>TypeScript → JavaScript 逆行w
?
0014デフォルトの名無しさん垢版2019/10/25(金) 00:40:53.30ID:SyedIRhC
>>13 アホか。 そりゃみんなCに似てるから似たようなもんだが、どちらかというとPython にかなり影響されている。
0015デフォルトの名無しさん垢版2019/10/25(金) 01:23:14.96ID:yHWkSsCK
最近Ponyの話題ないな
0017デフォルトの名無しさん垢版2019/10/25(金) 10:51:42.90ID:e5XctPAa
なぜGoやRustが不要なのか
それはハードウェアやOSのベンダーが提供しているAPIがCまたはC++を対象としているからだ
つまりC/C++はプログラマの必修である(ウェブスクリプターはお帰りください)
そして一度CやC++を習得したなら、もはやGoやRustなどという言語は不要なのである
0019デフォルトの名無しさん垢版2019/10/25(金) 17:05:11.97ID:TZuDPeyc
>>17
一理ある

FFIとかctypes便利やな
0021デフォルトの名無しさん垢版2019/10/25(金) 19:30:53.93ID:jaw68O5t
GC使ったらええやん。
バカほど過大にオーバーヘッドガーとか、ベンチマークも取らずに言い出す。
0027デフォルトの名無しさん垢版2019/10/27(日) 06:49:28.43ID:W3AB9aBJ
んなあほな
0033デフォルトの名無しさん垢版2019/10/27(日) 09:36:44.64ID:E7xaVBiS
>>31
事実が確定して言語が確定するまで待つのは素人だよ
確定する前になぜかフライングできる奴がいる
それが技量なんだよな
0034デフォルトの名無しさん垢版2019/10/27(日) 09:37:12.41ID:E41dDRFH
>>32
中身読んだ?

>開発言語が生産性に与える影響の分析
> 上記のことから、プロジェクトで使用する開発言語数が増えると
> 生産性が低下する傾向があることが判った。
0035デフォルトの名無しさん垢版2019/10/27(日) 09:51:08.42ID:MBtvQv/0
>>34 沢山の言語を使うバカの話なんかどおでも良い。
特定の言語通しの比較だよ。

例えばGoogle は生産性を高くするために Go を作ったし、Javaより生産性が高いとしてKotlin を推奨し始めたし、いろんな点(特にAI)で生産性が高いのでpython を使ってる。
0036デフォルトの名無しさん垢版2019/10/27(日) 09:54:23.49ID:/g1/9V53
>>33
事実は「作るプログラムによって言語を変える方が生産性あがる」ってことだよ。
そんな当たり前のことも理解できないバカはだまってろ。
0037デフォルトの名無しさん垢版2019/10/27(日) 10:19:12.78ID:i7/INYAa
仕事で複数人でc++使うとうんざりする
わかってないやつはスクリプト言語のノリで非効率でMTアンセーフなコード書くし
自称わかってるやつは、他人が読解困難なテンプレートパズルを書いて悦に浸るし
代替言語の需要はある
0038デフォルトの名無しさん垢版2019/10/27(日) 10:42:12.80ID:E7xaVBiS
なぜうんざりするコードを買ってしてしまうのか
コードを書いていない (勿論まだ読んでいない) 段階で購入決定してるから
買い物の技量によっぽど自信がある奴にしかできない芸当だから
0041デフォルトの名無しさん垢版2019/10/29(火) 00:22:37.88ID:rsD5lU2a
>>40
Perl6などと言う言語はもはや存在しないぞ
新言語 Raku だ
0042デフォルトの名無しさん垢版2019/10/29(火) 00:33:04.43ID:3GUclSH5
楽土に行ってお星様に成ってしまわれた
0044デフォルトの名無しさん垢版2019/10/29(火) 09:11:40.20ID:C6ZDvzKW
> Haskellで書かれたPugsは活発ではなく[2]、もはや歴史的な実装とされている。

はぁ〜つっかえ。
haskellってやっぱ実用言語じゃないな。マニアのおもちゃw
0045デフォルトの名無しさん垢版2019/10/29(火) 11:59:15.41ID:OaQk1xyV
Haskellは最初から学者のおもちゃを目指してる

だけどそのポテンシャルに着目してFacebookなんかが支援してるし
社内で実用的に使ってる
0046デフォルトの名無しさん垢版2019/10/29(火) 20:14:44.16ID:dJZjQrr+
ライブラリの依存関係もまともに解決できない糞パッケージマネージャーしかないような言語、
使われるわけないだろ。
0048デフォルトの名無しさん垢版2019/10/30(水) 14:38:45.41ID:Jt7N9BVB
Go より Rust の方が良いな
0049デフォルトの名無しさん垢版2019/10/30(水) 20:34:59.18ID:W4pbxdXC
同じことしたくてもRustだとスゲー面倒になる
アルゴリズムに集中したいからRustはパス
0050デフォルトの名無しさん垢版2019/10/30(水) 21:40:15.56ID:XjQVZIUI
アルゴリズムにだけ集中できる仕事なんてあるんだな
羨ましいようなつまらなそうなような
0054デフォルトの名無しさん垢版2019/10/31(木) 20:25:06.66ID:HxztbwtI
ポリリズムだろ
0055デフォルトの名無しさん垢版2019/10/31(木) 20:31:04.73ID:f3uH9i59
>>49
c++とrustならどっちがいいかな?
0062デフォルトの名無しさん垢版2019/11/04(月) 14:16:08.28ID:VfDE21hF
>プログラミング言語Rustは、2009年にMozillaのエンジニアリングチームによって作り上げられた。
>メモリー関連のバグを防ぐ目的などでゼロから構築された。

えぇ・・・どっか違う世界から来たのかな・・・
0070デフォルトの名無しさん垢版2020/01/03(金) 18:49:31.31ID:iLCgGCNV
C++ -> Swift, Go, Rust
Java -> Kotlin
Python -> Python
JavaScript -> TypeScript

こんなイメージなんですがおかしいところあったら教えてください
0082デフォルトの名無しさん垢版2020/01/04(土) 12:24:01.91ID:trUJS7QS
>>70
Python -> nim
0083デフォルトの名無しさん垢版2020/01/04(土) 12:26:03.62ID:xFWRGYjR
>>70
Ruby → Blawn
0085デフォルトの名無しさん垢版2020/01/04(土) 13:41:32.77ID:HpdirvDU
General ...... C -> Go
System ...... C++ -> Rust
Application (Android) ...... Java -> Kotlin
Application (iOS/macOS) ...... Objective-C -> Swift
Application (Windows) ...... C# -> Dart
Web (Client-side) ...... JavaScript -> TypeScript
Web (Server-side) ...... PHP -> Hack
Science ...... Python -> Julia

大雑把な理解としてはこれでいいだろ
現世代の八大言語と次世代の八大言語と言ってもいい選出だと思う
Dartの立ち位置は本来はJavaScript枠だがTypeScriptに敗北してからはAndroid、iOS、macOS、Windows、Webのクロスプラットフォームアプリ開発に活路を見出しているので空席になっているC#枠に便宜上置いた
0086デフォルトの名無しさん垢版2020/01/04(土) 15:21:38.35ID:wQXQd9yF
一貫性なさすぎやろ。Application (Win)は、flutter要はdartを予想しながら、application(android)の方はdartじゃなくkotlinなのかよ。
0088デフォルトの名無しさん垢版2020/01/04(土) 15:32:50.74ID:ZtmGuAO0
>>85
細かい点では不満もあるが一枠に付き一言語という制限を付けて選ぶとこんなもんかなという納得感はある
DartはC#枠ではないと思うがJavaScript枠やJava枠はすでに埋まってる上に他にC#枠に来そうな言語もないので仕方ないか
0089デフォルトの名無しさん垢版2020/01/04(土) 15:36:51.99ID:l3KYLm/H
C#は旧世代と言うほど古くないからまだネクストC#を目指す言語が登場するには早いってことだろ
50年後の視点から見ればC#はGoやらRustやらと同世代として扱われてるんじゃねーの?
0091デフォルトの名無しさん垢版2020/01/04(土) 15:40:11.03ID:bZUIqwFi
Dartはマジでどこを目指してるの?
TypeScriptに白旗上げてスマホアプリに移行したって認識なんだがKotlinと戦うわけじゃないよね?
0092デフォルトの名無しさん垢版2020/01/04(土) 15:51:24.33ID:zd98VfCC
>>85
GAFAM全社…C、C++、Java、JavaScript、Python
Google…Go、Kotlin、Dart
Amazon…Rust
Facebook…PHP、Hack
Apple…Objective-C
Microsoft…C#、TypeScript
なし…Julia

五大IT企業から一切公認を貰ってないマイナー言語が一つだけ混ざってるわけだが
0095デフォルトの名無しさん垢版2020/01/04(土) 15:58:39.36ID:0rq4/Cwl
>>92
そういう意味では
AmazonとMicrosoftから公認されたRust
MicrosoftとGoogleから公認されたTypeScript
の2つは生き残るのが確定してるから安泰だな
0097デフォルトの名無しさん垢版2020/01/04(土) 18:16:07.99ID:nYJWMiyq
>>92
Juliaはまだ正式版がリリースされて一年なんだから仕方ないだろ
そもそもPythonにしても当初は同世代のJavaやJavaScriptやらと比べて影が薄い存在だけどアカデミアで支持されたことで生き残って後からブレイクしたわけでポストPythonとしてJuliaが同じ道を辿るかもしれん
実際に新規AI開発ならPythonかGoかJuliaかの三択になってるし
0098デフォルトの名無しさん垢版2020/01/04(土) 18:20:51.03ID:nYJWMiyq
>>96
俺もDartは10年後には消えると思うわ
そもそもTypeScriptに負けて一度死んだ言語だしflutterで一過性のブーム起こしてもモバイル開発にはKotlinとSwiftがすでにあるから需要ない
誰が支持してるのか一番分からない言語
0099デフォルトの名無しさん垢版2020/01/04(土) 18:27:05.12ID:Gwa4LI2s
マテリアルユー愛とかいう一過性のデザインにロックインしたFlatterに、劣化JavaのDart

ガチのゴミオブゴミ、ミラクルマッドマックスゴミ・EX
0100デフォルトの名無しさん垢版2020/01/04(土) 19:16:55.02ID:hpecUN4N
>>97
逆に言うとやっと正式版が出たばかりで、まだpythonの後釜といえるような位置にはいないんじゃないかね。
0101デフォルトの名無しさん垢版2020/01/04(土) 20:31:51.46ID:Fk64oDOj
>>97
正式版(1.0)がリリースされた年

1978 C
1985 C++
1986 Objective-C
1994 Python
1995 PHP
1996 Java
1996 JavaScript
2002 C#

2012 Go
2013 Dart
2014 Hack
2014 TypeScript
2014 Swift
2015 Rust
2016 Kotlin
2018 Julia

こうして見るとリリースから時間が経っているのに遅れを取っているのはDartとHackか…
0106デフォルトの名無しさん垢版2020/01/04(土) 22:07:00.98ID:Dw91Ir7+
>>105
RubyもDelphiも1995年だしな
WWWが一般に普及してきたタイミングだから新言語がどんどん定着したんだろう
2010年代はGAFA+Microsoft主導の言語置き換え合戦が成功するかどうかってとこか
0109デフォルトの名無しさん垢版2020/01/05(日) 09:10:16.95ID:h/Fdg6dB
>>101
これ見るとC#は旧世代と次世代の中間世代なのでまだ世代交代する必要がないということだ
C#の代替言語が登場するのは数年後だな
0110デフォルトの名無しさん垢版2020/01/05(日) 10:12:13.12ID:unJHxkBD
言語だけ登場されても困るわ。.NETのリッチな標準クラスライブラリみたいのも一緒に登場してくれんと。
0111デフォルトの名無しさん垢版2020/01/05(日) 10:25:59.07ID:FBvFWwln
【歴代スレタイ言語】
次世代言語1 Go Rust Haskell Scala Erlang Elixir
次世代言語2 Go Rust Haskell Scala Erlang Elixir
次世代言語3 Go Rust Haskell Scala
次世代言語4 Go Rust Kotlin Scala
次世代言語5 Go Rust Scala Haskell
次世代言語6 Rust Kotlin Haskell
次世代言語7 Go Rust Swift Kotlin TypeScript
次世代言語8 Haskell Rust Kotlin TypeScript
次世代言語9 Haskell Rust Kotlin TypeScript Dart
次世代言語10 Rust Swift TypeScript Dart
次世代言語11 Rust Swift TypeScript Dart
次世代言語12 Go Rust Swift Kotlin TypeScript
次世代言語13 Go Rust Swift Kotlin TypeScript
次世代言語14 Elixir Crystal Julia Rust Swift
次世代言語15 Go Rust Swift Kotlin TypeScript
次世代言語16 Go Rust Bosque Kotlin TypeScript
次世代言語17 Go Rust Kotlin TypeScript Julia
次世代言語18 Go Rust Elixir Kotlin TypeScript

登場回数
18回 Rust
12回 Go
11回 TypeScript Kotlin
7回 Swift Haskell
5回 Scala
4回 Elixir
3回 Dart
2回 Julia Erlang
1回 Bosque Crystal
0112デフォルトの名無しさん垢版2020/01/05(日) 10:29:51.89ID:PSsOx+9B
>>111
Scalaはギリギリ許されるとしてもJavaよりも歴史が古いHaskellとErlangが新世代言語はさすがに無理あるだろ……
0115デフォルトの名無しさん垢版2020/01/05(日) 12:07:27.33ID:CCp/9MIZ
>>101
DartとHackはもう退場でいいよ
Google社とFacebook社が作った言語だからって理由以外に存在意義がない
DartはTypeScriptに負けた言語
HackはPHP7に美味しいところだけ取り込まれて役目を終えた言語
0116デフォルトの名無しさん垢版2020/01/05(日) 12:17:27.66ID:CCp/9MIZ
>>85
General ...... C -> Go
System ...... C++ -> Rust
Application (Windows) ...... C# -> Bosque
Application (macOS/iOS) ...... Objective-C -> Swift
Application (Android) ...... Java -> Kotlin
Web (Client-side) ...... JavaScript -> TypeScript
Web (Server-side) ...... PHP -> Elixir
Science ...... Python -> Julia

これでどうだ
0118デフォルトの名無しさん垢版2020/01/05(日) 14:41:58.81ID:O1c9EgK/
JuliaとElixirもまだ地歩を固められるかどうかさえ怪しいところだろう。
サーバーサイドなんてElixirよりGo/Rust/TypeScriptの方が獲りそうにも思うが。
0121デフォルトの名無しさん垢版2020/01/05(日) 15:18:42.39ID:H6Oq7LCM
RubyはPHPに負けた言語だからな
思い返してみると言語の流行度をランク付けしたらいつも10位前後をフラフラしていただけで一度として覇権を握ったことはない
信者はPHPerが単細胞の無能で他の言語を覚えられないからRubyが主流にならなかっただけだと思ってるみたいだけど
ポストRubyのポジションはElixirだろうがそこまで価値のあるポジションとは思えない
0123デフォルトの名無しさん垢版2020/01/05(日) 16:58:36.15ID:cUAn3/gX
次世代で差し当たって生き残るのが決まってるのはGo、Rust、Swift、Kotlin、TypeScriptの五大言語だけでしょ
この5つは大企業がバックについてて一定の信者コミュニティが形成されてるからもう揺るがない
ほかの言語はこれから競争
Pythonの遅さに対するヘイトでPythonブームがしぼむタイミングでどの言語がポストPythonに収まるかって戦いが注目だ
Rubyのまつもとゆきひろが言ってたけど結局言語自体の良し悪しだけじゃなくて有能なコミュニティが形成されるかどうかという要素が重要だからな
TensorFlowがGoに対応してる関係でAI界隈だとPythonからGoへの移行が多いけどJuliaやCrystalのラッパー作ってる人もいるからまだ他の言語にもチャンスある
ちなみにうちはすでにGo
0124デフォルトの名無しさん垢版2020/01/05(日) 17:01:50.31ID:cUAn3/gX
>>121
RubyはPythonの地位にあってもおかしくなかった
アカデミックな世界の人たちがPythonに流れたのが大きかった
0125デフォルトの名無しさん垢版2020/01/05(日) 17:41:07.92ID:O1c9EgK/
rubyが出た頃には既にpythonは十分人気があったわけで、流れたというより
pythonのシェアを奪えないまま自滅したという方が合ってる気がする。
0127デフォルトの名無しさん垢版2020/01/05(日) 18:48:23.54ID:cUAn3/gX
>>125
いや、一時期は間違いなくRubyはPythonよりも人気があったよ
日本に限らず世界でね
2000年代に入ってからSciPyとNumPyという科学計算ライブラリの決定版が出たことで一気にPythonの地位が上がった
それまでR言語とかに注目してた層が根こそぎPythonに飛びついて大逆転した
もしSciRubyやNumRubyだったらRubyが天下を取っていたはず
0128デフォルトの名無しさん垢版2020/01/05(日) 18:56:14.34ID:nCpGvxq/
PyTorchやTensorFlowがどうしてPythonなのかが全く分からん
あんな遅い言語で機械学習をやるメリットは何なの?
ディープラーニングは複雑な計算が必要だからこそ高速な言語でやらないとって思ってしまうのは俺がド素人だから?
0130デフォルトの名無しさん垢版2020/01/05(日) 19:12:24.89ID:YF3dXBXH
PythonではC等で書かれたライブラリを呼ぶだけで計算はしないから、遅くても問題ない
0133デフォルトの名無しさん垢版2020/01/05(日) 19:44:46.12ID:6gmeklwC
ruby好きの奴らなんてmatzも含めて絶対数値計算なんかやらんかっただろう。
そういうとこだよ。
0134デフォルトの名無しさん垢版2020/01/05(日) 20:12:28.37ID:O1c9EgK/
客観的な数字がない以上どっちが人気があったかというのは水掛け論でしかないけど、
rubyが世界的に人気が出たと言えるのはRoR以降で、登場時期はNumpyとほぼ同じなんだよな。
仮にrubyの人気がpythonを上回ったことがあったとしても非常に短い期間に限られたと思われ。
0135デフォルトの名無しさん垢版2020/01/05(日) 20:53:54.52ID:6gmeklwC
>>128
pythonが実行速度が必要なところはcで書けばいいと割り切ってる中で
rubyは言語自体の速さをあげることに時間かけてた。
そういう見識のなさがrubyなんだよ。
0136デフォルトの名無しさん垢版2020/01/05(日) 21:17:35.10ID:+Zo8pyHn
68 名前:デフォルトの名無しさん[sage] 投稿日:2019/11/11(月) 08:41:18.73 ID:ugn4nfqU
炎上PJに巻き込まれて帰ってこれなくなってしまったのだろう

69 名前:デフォルトの名無しさん[sage] 投稿日:2020/01/03(金) 12:58:50.03 ID:f2V4CbYL
あけ おめこ とよろ


おまえら、この空白の2ヶ月間、何してたんだ?
0140デフォルトの名無しさん垢版2020/01/05(日) 23:34:13.56ID:2r2GEHCR
pythonもpython自体の高速化はやってきてるでしょ
pypyみたいな変態的なものもあるし
むしろrubyの方が言語仕様的に高速化できる余地が少なくて停滞してた印象
yarvも遅れてやってきた感しかない

まぁ身もふたもないけど、つたない英語で日本人がリードするプロジェクトに
外人はあんまり寄り付いてこないのがrubyがいまいち盛り上がらなかった原因だと思うよ
RoRの波の時にいろいろ仕掛けておけば違った気がするんだけど
0141デフォルトの名無しさん垢版2020/01/06(月) 11:00:46.22ID:AUHKm4tz
>>140
日本でRubyが人気あるのは日本で誕生した言語(→日本語のドキュメントやコミュニティが充実)だからってのは確実にあるだろうし逆に考えたらアメリカ人は英語圏で誕生した言語を使うわな
Python開発者はオランダ人だけどアメリカで働いていた人だし
0142デフォルトの名無しさん垢版2020/01/06(月) 22:45:21.22ID:sgp8c2gs
>>140
結局遅くてもデフォルトのcpythonを使うわけだよ。
そこまでcpuバウンドなプログラムなんて早々ないし、あったらcで実装したライブラリを使う。
なんでも同じ言語だけで無理やり何とかしようってのはバカの発想だわ。
cをどれだけ呼びやすくするかに労力をかけたpythonにrubyは完全に負けたわけよ。
0143デフォルトの名無しさん垢版2020/01/06(月) 22:51:03.06ID:ax8KHfsY
cというか共有ライブラリの呼び出しでそんな大きな違いあったっけ?
似たようなもんだったと思うけどな
0145デフォルトの名無しさん垢版2020/01/07(火) 08:51:26.11ID:ofmsTTYR
旧世代言語で言えばC++、Java、Python、JavaScriptの4つが書ければ組み込みからウェブまで基本的に何でもできた
1つの言語で何とかしようとすれば何とかなるかもしれないが開発効率を考えると結局この4つくらいの言語が必要
速さのC++、汎用性のJava、書きやすさのPython、ウェブのJavaScript
最強の言語に統一しようとする試みは全部失敗に終わって適材適所で使い分けるのが結局最適解だったわけだ
次世代言語では汎用性と書きやすさを兼ね備えたGoがあるのでRust、Go、TypeScriptが必須三大言語になる
0146デフォルトの名無しさん垢版2020/01/07(火) 11:10:34.52ID:4XCSnFAB
wasmの展開次第ではまた統一の流れになるかもよ
今のところRustかGoかかな
0147デフォルトの名無しさん垢版2020/01/07(火) 15:35:35.01ID:2Dq0zKSW
cythonよりもpybind
0148デフォルトの名無しさん垢版2020/01/07(火) 21:50:43.14ID:ueOqy5pf
Ruby の主な設計思想は、C の拡張ライブラリを作りやすくする事!
今は、FFI

言語が流行るかどうかは、便利な拡張ライブラリの作りやすさで決まる。
VSCode がそう。
皆が作る、多くの拡張機能が大人気

R, matlab → Python → Julia
Ruby → Elixir

数十万もする、matlab を誰も使いたくない!
これが無料で使える、Pythonがコスト的に優秀だった!

ただ、文法が辛いから、Ruby風のdo 〜 end を採用した、Juliaへ流れたw
0154デフォルトの名無しさん垢版2020/01/07(火) 23:27:16.65ID:VzO2pILM
まぁほら、値を返す場合はセミコロンを付けちゃいかんとか、あの辺は真にゴミだ。
0156デフォルトの名無しさん垢版2020/01/08(水) 14:43:49.47ID:e6ROAylT
>>115
Dartは今一番来てる言語だろ
ちょうどFlutterのスター数がReact Nativeを超えたところだぞ
これで名実ともにクロスプラットフォーム開発のスタンダードがDartになった
0157デフォルトの名無しさん垢版2020/01/08(水) 15:05:07.83ID:GLREUp4M
Rustのセミコロンは文の終端じゃなくて、「左オペランドを評価してその値を破棄し、右オペランドを評価してその値を返す演算子」だと理解すればスッキリする
0159デフォルトの名無しさん垢版2020/01/08(水) 20:28:36.87ID:5tRz+DPE
>>155
「式にセミコロンを付けたら文になる」
「文の評価値はunit」
「ブロックの値は含まれる最後の式(文)の値」

それぞれは筋が通ってなくもないけど、2番目のは

「文の値は含まれる最後の式の値」

にしても問題なかったんじゃないのかな。
0164デフォルトの名無しさん垢版2020/01/08(水) 21:50:40.19ID:m4KDxoTK
>>163
Go→めっちゃ書きやすい。少ない行数で何でも書けるので生産性爆上げ。実効速度はC/C++よりは遅いがJavaやPythonよりもずっと速いので何にでも使いやすい。文法が分かりやすいので入門用言語にも適している。オールマイティな次世代エース的存在で欠点がほぼない

Rust→C++と同レベルに速い唯一の言語。なおかつC++よりも文法が整理されている。C++と違ってメモリ安全性が確保されている。Goほどの書きやすさ・利便性はないがC++の後継としてシステムプログラミングに使えると考えられている

TypeScript→JavaScriptを大規模開発にも使えるように整備した言語。JSがウェブだけでなくアプリ開発にも使われるようになったという背景にマッチ。既存のJSコードという遺産をそのまま使えるのでデメリットなし

3言語ともにGoogleやMicrosoftが推しているので他企業も追随して移行している
0165デフォルトの名無しさん垢版2020/01/08(水) 21:58:55.88ID:5fiN5kGt
Goの行数が短いとは
0166デフォルトの名無しさん垢版2020/01/08(水) 22:05:03.81ID:VsmkZjsO
GoはAI関連のPythonからの移行組、組み込み系のCからの移行組、アプリ開発のJavaからの以降組と色々なところから支持されてるよな
0168デフォルトの名無しさん垢版2020/01/08(水) 22:59:45.27ID:oFdEo24g
Goは機能が少ないから行数は長くなるな
ジェネリクスがまだなくて冗長になりやすい
良くも悪くも割り切ってる
0169デフォルトの名無しさん垢版2020/01/08(水) 23:17:23.66ID:fhO5tB7/
PythonやJavaは機能が多過ぎるからGoに移行すると言ってるように見えるが
多過ぎるという証拠がない
0174デフォルトの名無しさん垢版2020/01/09(木) 07:42:30.82ID:QBVFRtP7
>>159
returnを省略できるから値を必ず返してしまう
0176デフォルトの名無しさん垢版2020/01/09(木) 11:06:37.80ID:vRVrXWOG
Goは機能も絞ってあるし文法も簡単だから初心者の入門用に最適だと思う
しかも当然Pythonより速いので実用性も高い
次世代では学校でGoを習ってプログラミングを始めて実務でもGoで書ける部分はそのままGoとなりそう
0177デフォルトの名無しさん垢版2020/01/09(木) 11:22:30.94ID:vRVrXWOG
旧世代五大言語…C、C++、Java、Python、JavaScript
新世代五大言語…Go、Rust、Kotlin、Swift、TypeScript

今のところこんな感じだけどDartやJuliaは五大に入ってきてもおかしくないと思ってる
クロスプラットフォームアプリ開発でDart(Flutter)がReactNativeに勝利しそうな勢いで注目してる
多分DartはJavaライクな文法がJavaScript嫌いなアプリ開発者たちから受けてるんだろう
AndoroidはKotlin、iOSはSwiftという棲み分け自体が不効率の極みなのでDartがもう少し使えるものになればクロスプラットフォーム開発に雪崩を打って移行していくと思う
JuliaはJuliaですでにAI関連で信者層が形成されているしPythonでできることはJuliaでもできる状態になってるからじわじわシェア奪っていけると思う
TensorFlow次第という側面もあるが
0181デフォルトの名無しさん垢版2020/01/09(木) 14:16:30.17ID:LsvkYb1v
C#はMSの推奨言語である限り何が出てこようとVC++とともにMS環境下での第一選択肢であることは揺るがない
基本的にOSやハードウェアのベンダーが使えと言っているものと使うのが正しい
0182デフォルトの名無しさん垢版2020/01/09(木) 21:24:14.26ID:SzStz3wn
関数型言語の特性を少しずつ取り入れる動きがあるのは(それが良いかどうか別にして)ある程度共通の認識として持たれていて
その中でも型システムに関してRustはライフタイム管理と参照の可変性制約に議論の余地があるとはいえそれ以外は程々な落としどころになってると思うんだけどどうよ
つまりはtraitとかenumとかgenericsとかについてなんだけど
0183デフォルトの名無しさん垢版2020/01/09(木) 21:39:52.57ID:/duGWeb2
てかemunの網羅性チェックとか普通に考えたら欲しくなると思うんだが
なぜC/C++/Java等の手続き型/オブジェクト指向言語では今まで取り入れられてなかったのかが謎
0184デフォルトの名無しさん垢版2020/01/09(木) 21:52:21.07ID:YgTrDd8p
>>174
関数戻り値の型推論はされないんだから、関数の型がunitのときは型の不整合とみなさないとか
できると思うがなぁ。
その場合のデメリットって「特別扱いは一貫性に欠ける」というくらいしか思いつかない。
0185デフォルトの名無しさん垢版2020/01/10(金) 01:35:53.38ID:0q4Qxo1U
ジェネリクスの起源はC言語の配列型やポインタ型のような気がする
ポインタ型を取り入れるどころか逆に排斥するのが常識だった
たまたま常識を疑うことができたのがC++と関数型言語だっただけ
0189デフォルトの名無しさん垢版2020/01/10(金) 20:05:28.59ID:gdjTauNe
>>182
逆だろ。
rustのやろうとしてることを考えればライフタイム管理と参照の可変性制約に議論の余地はない。
他のどうでもいいところに力を入れてることの方が問題。
0191◆QZaw55cn4c 垢版2020/01/11(土) 11:07:27.64ID:Mi8oZktw
>>185
多分趣旨は同一だと思いますが、私はC++ template がジェネリクスの起源だと
0193デフォルトの名無しさん垢版2020/01/11(土) 13:04:07.27ID:l/QLWHKH
Genericsの起源 → template
Genericsの起源 → enum
Genericsの起源 → マクロ
Genericsの起源 → キャスト
Genericsの起源 → struct
Genericsの起源 → union
Genericsの起源 → ポインタ
Genericsの起源 → レジスタ
0194デフォルトの名無しさん垢版2020/01/11(土) 13:42:11.23ID:C5APeypm
全ての始祖にして始まりの言語 ダークネスオブライト 神光雪花繚乱 ーCー

おまえはまだ、本当のCを



0195デフォルトの名無しさん垢版2020/01/11(土) 17:39:11.16ID:jnWa1Bc7
>>189
ごめんこれは私の書き方が悪かった
Rustのやろうとしてることからすれば議論の余地が無いのは間違いない

ただRustのやろうとしてること(つまりそれらを型システムに落とし込んで管理しようとすること)そのものには反対意見も見られるのでそのように書いた
(私はRustの方針で良いとは思っている)

それなりに一般人類が扱える程々な型システムの機能は言語の目的に依存しない範囲でどの程度かなって話をしたかった
型システムの程々が言語の目的に依存するのは分かった上でなので、それ無しに語る事なんてできないと言われたらはいとしか返せない

あと例にgenericsを書いたのは最近の言語でGoが少なくとも今は取り入れてないからだったんだけど、冒頭に関数型〜と書いてしまったがために >>185 みたいに起源の議論になってしまって申し訳ない

あとgenericsの起源の話をするならAdaちゃんのことも思い出してあげて下さい(小声)
0196デフォルトの名無しさん垢版2020/01/12(日) 02:59:36.74ID:eMSUjpmi
言っとくけどMITのJulia凄いんだから!バカにしたら許さないから!
0206デフォルトの名無しさん垢版2020/01/14(火) 13:56:29.79ID:06NyUtxI
旧世代「綿密な準備、計画、理解、Go、Rust、Swift、Kotlin、Typescript」
ニュータイプ「あっ(察し)」
0208デフォルトの名無しさん垢版2020/01/14(火) 20:52:15.46ID:NIc2ogis
まだ発展途上とはいえ、RustってC, C++の上位互換っていう認識でいたんだけどどうなの

ライブラリの充実度とかはまだまだだろうけど
0209デフォルトの名無しさん垢版2020/01/14(火) 21:23:10.59ID:JlIaLGxV
>>208
上位互換を目指してるというのは正しいけどまだ上位互換とは言えない
C/C++のほうがまだ多少は実効速度が上みたい
体感できるほどの差はもちろんないけど
0211デフォルトの名無しさん垢版2020/01/14(火) 21:53:54.59ID:CySpaDcH
言語の処理速度は      C > C++ > Rust
プロダクトの性能の傾向は Rust > C++ > C

理由は、コンパイラ時のチェック系の支援が大きいほど
プログラマが気を使う量が減って高度な高速化実装がしやすくなるため
実例はServo

一方Cで限界までチューニングすれば他は追いつけない
メンテ難易度は上がるがそれを扱えるメンバーと運用があれば問題無い
実例はLinuxカーネル
0212デフォルトの名無しさん垢版2020/01/14(火) 22:06:05.36ID:Y6z2uzMK
色々な言語が登場しても未だにCが生き残ってるのはとにかく速さだからね
Cを置き換えようとする次世代言語は速さでCに負けてたら結局置き換えられないよ
0213デフォルトの名無しさん垢版2020/01/14(火) 22:09:27.27ID:AAWN8rY8
Cが使われる理由は速さではなく自由度
書いたとおりに動くという当たり前のことができる言語は、特に新しい言語においてはほとんどない
0217デフォルトの名無しさん垢版2020/01/15(水) 00:35:12.86ID:l5yk4jFW
C++のコンパイル時計算のあれこれを見ていると証明が必須じゃないCoqかよみたいな気持ちになるし人類にとってはできることが多すぎる
コンパイル時間のあれこれを言うならC++こそ人の事言えねぇよ
0218デフォルトの名無しさん垢版2020/01/15(水) 03:36:18.54ID:JGL8Rg1T
まあそうなんだがc++を置き換えると言いつつ
c++の問題を後追いしてるところはアホとしか言いようないなと思ってるってことだわ。
0220デフォルトの名無しさん垢版2020/01/15(水) 09:36:21.05ID:CBF4WmsT
最近はセキュリティ要件厳しいから
静的解析パスしないとリリースできなかったりするんだけど
とりあえず静的解析を黙らせるために過剰にvalidity checkが入れられてると思う
そういう無駄をきれいに省けたらc、c++を上回る可能性はあるかもしれない
0221デフォルトの名無しさん垢版2020/01/15(水) 11:05:13.31ID:l5yk4jFW
でもボクシングとかで実行時に負担掛ける動的多相を導入しない限りコンパイル時間は大きくは変化しないでしょという気持ち(型渡しと型消去)
別にRustだって依存型(定理証明系)とか高階多相(Scalaとか)でコンパイル時間増えてるわけじゃないんだし
0222デフォルトの名無しさん垢版2020/01/15(水) 13:04:38.24ID:DG9IEwRP
高尚な低速言語供が売りとしてる機能を組上げる部品をゲロベチョっとコーダー側へぶちまけ
オマエ自身が工夫してどうにかしろな仕組みを提供してんのがrustだからのう
関数型へ傾いてるとはいえコンパイル時間がどうこう言うのにrustの例は不適切かな
0224デフォルトの名無しさん垢版2020/01/15(水) 19:42:04.64ID:vosN76E7
ダンリンポインタ探しに1000倍かかるよりいいわ
0229デフォルトの名無しさん垢版2020/01/18(土) 11:17:50.30ID:Iw/95SDF
どんな言語がでても馬鹿がいじれば糞化するという現実を受け入れさせるフレームワークが必要。
0230デフォルトの名無しさん垢版2020/01/18(土) 13:40:35.18ID:sqF6puYJ
劣化前のソースコードと文書は残っている
ただし過去に戻ったら他の人間とは仲良くできない
その代わりソースコード自体がAIみたいなもの

人間をクビにしてAIを使うとはそういうことよ
人間がいじればAIではなくなる
0233デフォルトの名無しさん垢版2020/01/18(土) 14:34:40.59ID:10mPsw6w
               , -――- 、
              /       ヽ
              | ノ  ー    |   それRutstでよくねえ?
              |(・) (・)   |   だって、それRutstでよくねえ?
              |  (      |
              ヽ O    人
               >ー-― ´   ̄ ̄\
  ⊂ニニ ̄ ̄ ̄ヽ  /              |
     くメ) _ノ  |  |  |        |   |
       (/  |  | /  |        |   |
          |  |/  /|        |   |
          |  ト  / |        |   |
          ヽ__/ |        |   |
0234デフォルトの名無しさん垢版2020/01/18(土) 14:49:52.92ID:PrMkgj9t
「Rust言語」をWindowsプロジェクトに適用してみた、Microsoftの事例
https://www.atmarkit.co.jp/ait/articles/1911/12/news050.html

欲しい機能がまだまだある

Rustは比較的歴史が浅いため、Microsoft社内の開発に使うことを考えると、よく使う言語機能であっても欠けているものがあるという。
その最たるものは、安全な変換(“プレーンな古いデータ”型をrawバイトと間で相互に安全にキャストする)やCスタイルの共用体の安全なサポート、誤りを許容する割り当て(割り当ての失敗でパニックに陥らず、所定の手順で停止する)だ。

Cargoには優れた単体テスト機能が組み込まれているため、開発者が本番コードと同じファイルにユニットテストを記述して、開発中に簡単に実行することができる。だが、Microsoft社内の大規模で複雑なビルドシステムでは、Cargoをビルドツールとして利用できない。
0235デフォルトの名無しさん垢版2020/01/18(土) 15:30:43.11ID:lNH5KTZ4
>>226
Microsoftとしては未だにRustが本命ではあるが自前でもっといいのが作れないか研究してみるって趣旨みたいだな


Q.
Does Project Verona mean Microsoft is no longer using C++/C#/Rust/...?

A.
Project Verona is a research project that is not affecting engineering choices in the company.
The Project Verona team is connected to the people using all the major languages at the company, and want to learn from their experience, so we can research the problems that matter.

https://github.com/microsoft/verona/blob/master/docs/faq.md
0236デフォルトの名無しさん垢版2020/01/18(土) 15:43:46.52ID:10mPsw6w
               , -――- 、
              /       ヽ
              | ノ  ー    |   それRutstにコントリビューチでよくねえ?
              |(・) (・)   |  
              |  (      |
              ヽ O    人
               >ー-― ´   ̄ ̄\
  ⊂ニニ ̄ ̄ ̄ヽ  /              |
     くメ) _ノ  |  |  |        |   |
       (/  |  | /  |        |   |
          |  |/  /|        |   |
          |  ト  / |        |   |
          ヽ__/ |        |   |
0237デフォルトの名無しさん垢版2020/01/18(土) 15:58:02.34ID:OxDzBJO3
Microsoftっていっつも新しい言語生み出してんな
ちょっと前に発表してたBosqueとかどうなったのか続報全然ないけどもう諦めたのか?
遡ればF#とかも期待したほど流行らなかったしもっと遡ればVisual Basicとか散々ゴリ押ししたけど粗大ゴミになってる
Windowsというプラットフォームにあぐらをかいてるわけじゃないだろうがまともに使えるものを生み出す能力あるのか?
0241デフォルトの名無しさん垢版2020/01/18(土) 16:10:54.13ID:CgNop+pB
C#はC++を拡張してJavaにしただけ
TypeScriptはJavaScriptを拡張して静的型付けにしただけ
Microsoftのオリジナルではないからこそまともなものになった
0253デフォルトの名無しさん垢版2020/01/19(日) 15:48:50.92ID:ehZNNwbS
Java# も F# も C# も Rust も捨てた結果が Verona ωωω
0254デフォルトの名無しさん垢版2020/01/19(日) 15:55:17.54ID:ehZNNwbS
>>237
MSが出したやつはいつもダサいですね
言語も
製品も
0262デフォルトの名無しさん垢版2020/01/20(月) 21:36:52.33ID:5waZG120
> Go→めっちゃ書きやすい。少ない行数で何でも書ける
お、おう(笑)
エアプ勢はレガシー言語触ってろ
0270デフォルトの名無しさん垢版2020/01/21(火) 23:28:36.06ID:ugpYi19h
Rustは名前が悪すぎる。車輪のベアリングが錆びついてギシギシで滑らかに回らないイメージ。
0274デフォルトの名無しさん垢版2020/01/23(木) 22:13:59.32ID:gI2c2uQ9
>>271-272
名は体を表すと言う。プログラミングの命名でも、名が体を表すのが良いとされる。
だから、言語名に体を見出そうとするのは自然な感覚。ましてRustのアイコンは
歯車だから、労力が無駄にかかり動作が遅いと思われるのは当然。さらに、Rustは
米国生まれなので、かつては栄えていたが今は没落した北部の重工業地帯を表す
rust beltも連想される。

開発者はこんな変な名前をなぜ選んだのか。真価を分かる人だけが使えば良いという
通好みの言語にしたかったのか。
0276デフォルトの名無しさん垢版2020/01/23(木) 23:38:40.71ID:i4i/dtG5
>>274
作者が生物学好きで
名前の由来は錆菌、つまり化合物自体でなく菌の方だそうだ

曰く
> Five-lifecycle-phase heteroecious parasites.
> I mean, that's just crazy.
> talk about over-engineered for survival.
> fungi are amazingly robust to start,
> they are distributed organisms.
> not single cellular, but also no single point of failure.
0283デフォルトの名無しさん垢版2020/01/24(金) 11:49:27.62ID:ytRnz1Ft
RとかGとかで始まる言語は頭悪そうなイメージω
0288デフォルトの名無しさん垢版2020/01/24(金) 23:27:48.03ID:pw14qEqb
なんで言語は引き算ができんの
そんなんだからゴーとかいうGOMIにオカマを掘られる
0291デフォルトの名無しさん垢版2020/01/25(土) 00:49:13.02ID:4UaLWgqo
言語の引き算の最たる言語はHaskell。
遅くても、次世代じゃなくても、あの無駄の無さが好き。
ifもforも飾りです。偉い人はそれが分からんとです。
0294デフォルトの名無しさん垢版2020/01/25(土) 01:37:44.96ID:y3QDj64+
モナドはいい仕組みだよ
動的な部分を個々包み込んで波及を抑えるつーのはプログラミング言語の基本機能に成るべき
例外処理みたいな真逆の言語が大手を振ってるのは異常
0295デフォルトの名無しさん垢版2020/01/25(土) 09:43:36.81ID:0701+yxk
モナドは抽象度が高すぎるんだよなぁ
俺みたいな素人にも分かりやすいのが欲しい
0296デフォルトの名無しさん垢版2020/01/25(土) 10:30:04.52ID:gDStPvND
モナドは別にいいんだけどHaskellのシンタックスシュガー満載で手続きっぽく見せようとしてるのはすきになれないな
ちょっと複雑なことしようとするとコンパイラエラーに悩まされる
結局トリックをきちんと理解しないと使えない
0297287垢版2020/01/25(土) 10:55:26.17ID:pHbGVo5T
>>290
今どきletsencryptすらしてないってことじゃね
URL貼る前にhttps試したから俺もちょっと思った
0298デフォルトの名無しさん垢版2020/01/25(土) 11:01:38.75ID:pHbGVo5T
>>295
モナド自体より解説がマズいんだと思うけどな
「正しい説明」を意識しすぎて、分かってる奴にしか分からない解説が溢れてる
0299デフォルトの名無しさん垢版2020/01/25(土) 11:32:14.21ID:wjfpRr1m
最初は型を書かない方が分かりやすい
アセンブラが分かる奴はCのポインタが分かる
ただし言語が二つ必要

Haskellの型を無くしてみろ
それが引き算だろ
0302デフォルトの名無しさん垢版2020/01/25(土) 14:25:55.18ID:HjVTkheD
型なしは型を動的に解析する機能を「足した」ものであって何ら引き算になっていない
0304デフォルトの名無しさん垢版2020/01/25(土) 15:45:23.82ID:wjfpRr1m
Haskellは
お前らが同じ解説を繰り返す毎に強力な静的型になって行ったんじゃないのか
0305デフォルトの名無しさん垢版2020/01/25(土) 15:57:20.44ID:HoGSN4jt
純粋関数型である程度まともなプログラムを作れるようにする為にはHaskellの標準+αくらいの型システムがないと駄目という話ではある
0306デフォルトの名無しさん垢版2020/01/25(土) 16:13:04.17ID:lY+ErK7r
全然関係ない。
ランタイム速度が出てないときにどういう手当が可能かという方がよっぽど大事。
0309デフォルトの名無しさん垢版2020/01/25(土) 19:02:12.15ID:6461T671
Haskellの型システム程度のものを理解できない知能で
プログラミングをしてるのが間違いなんだよ
生得的に向いてないんだから諦めろ
0313デフォルトの名無しさん垢版2020/01/26(日) 11:06:39.43ID:+3DuCtIS
23回を文字通り23回とか誤解されることは多い
文字は文字で難しい
0315デフォルトの名無しさん垢版2020/01/26(日) 14:26:44.31ID:k2+mT4PN
Windows 95
0316デフォルトの名無しさん垢版2020/01/26(日) 14:34:20.60ID:Yuet6lAk
いまだに95割とか言ってる奴がいてワロ。
それ昭和の時代だろ。
0318デフォルトの名無しさん垢版2020/01/26(日) 15:44:40.17ID:iT5O7oMi
平成ど真ん中くらいだから昭和は言い過ぎ
まぁ世の中には一定の割合で昔の流行語とか昔の駄洒落とか言い続ける層がいて迷惑だとは思う
0319デフォルトの名無しさん垢版2020/01/26(日) 16:16:31.94ID:smtkhynE
>>317
調べると割分厘は1割を10%とする用法と1割を100%とする用法と2種類あって歴史的にはどちらも正しいんだと
九分九厘は1割を100%とする用法で99%だと
自然言語特有の曖昧定義
つまり95割は950%もしくは9500%
0320デフォルトの名無しさん垢版2020/01/26(日) 17:05:13.94ID:DD0zspUI
>>313
23回と書いて、2,3回と読んでほしいってか?
それはちょっと無理では?
文脈込みでもちょっと無茶だわ
0323デフォルトの名無しさん垢版2020/01/26(日) 23:29:15.87ID:thUZV5f4
>>319
分は1/10、厘は1/100で、割合の単位が割で1/10
「9割5分」の「分」は「割の1/10」を意味している
1割を100%とする用法は見たことない
0330デフォルトの名無しさん垢版2020/01/31(金) 10:18:22.06ID:YmbKsQW3
dlang
0331デフォルトの名無しさん垢版2020/01/31(金) 10:18:47.96ID:YmbKsQW3
erlang
0336デフォルトの名無しさん垢版2020/02/01(土) 09:58:57.74ID:fiLTG5Nb
将来が約束されているω
0339デフォルトの名無しさん垢版2020/02/01(土) 15:26:32.57ID:fiLTG5Nb
諦めたらそこで試合終了
0340デフォルトの名無しさん垢版2020/02/01(土) 15:31:32.99ID:eXUHWthh
言語の勝ち負けは資金力がものを言う
もうPHPやRubyの時代とは違って個人が作った言語が日の目を見ることはない
ここの一部が熱狂してた中学生言語はそろそろスポンサーを得たのかな?w
0342デフォルトの名無しさん垢版2020/02/01(土) 15:48:55.51ID:fiLTG5Nb
Rubyそのものをdisる訳じゃないが
Rubyはパトロンが付いてから落ち目になった印象
0343デフォルトの名無しさん垢版2020/02/01(土) 16:04:34.83ID:uIRhn79u
言語の良し悪しだけじゃないからな
ドキュメント ライブラリ ビルドツール IDE プラットフォーム対応
企業にせよ団体にせよ組織的な人手が無いと厳しい
0345◆QZaw55cn4c 垢版2020/02/01(土) 17:12:27.13ID:EspH/Y2K
>>339
いい言葉ですね!
誰がいったのですか?
0351デフォルトの名無しさん垢版2020/02/02(日) 00:33:23.43ID:vTjBAXNr
結局書いてて楽しい言語と保守しやすい言語って違うってのが
rubyが根本から間違ってるところだろ。
0352デフォルトの名無しさん垢版2020/02/02(日) 00:36:53.43ID:N9qFFSK9
あれが楽しいとかゲエジだら
型無し糞言語は補完も頭悪いし、書いてて全く楽しくない
おまけに保守性も最悪ときたら、ほんとにほんとにゴミでしかないゴミ
今すぐ回線切って首吊って死ねや
0354◆QZaw55cn4c 垢版2020/02/02(日) 06:59:23.56ID:9jRHEnns
>>352
型無しでもいいけれども、宣言なしというのはいただけない
var a
とか VB/VBA 的に option explicit, dim a
とかは、そろそろ導入されるべきでしょう
0356デフォルトの名無しさん垢版2020/02/02(日) 10:15:11.33ID:Ng7YaIlp
型無し言語とか
rubyが保守しにくいとかw

相変わらず低スキル&エアプの巣窟やなココ
0358デフォルトの名無しさん垢版2020/02/02(日) 15:24:04.03ID:9xJm9DGW
>>347
確かに、滅んで欲しい

SML(静的型付け):
  - (1, 2, 3);
  val it = (1,2,3) : int * int * int  (* タプル型(要素は整数型) *)

  - (1, true, "Foo");
  val it = (1,true,"Foo") : int * bool * string  (* タプル型(要素の型は混在) *)

  - [1, 2, 3];
  val it = [1,2,3] : int list  (* リスト型(要素は整数型) *)

  - [1, true];
  stdIn:12.1-12.9 Error: operator and operand don't agree [overload conflict]
   operator domain: [int ty] * [int ty] list
   operand:    [int ty] * bool list
   in expression:
    1 :: true :: nil  (* 要素の型が混在するリストは誤り *)

(長いので続く)
0359デフォルトの名無しさん垢版2020/02/02(日) 15:24:32.12ID:9xJm9DGW
(>>358の続き)

Python(動的型付け):
  >>> (1, 2, 3)
  (1, 2, 3)  # タプル型(要素は整数型)

  >>> (1, True, "Foo")
  (1, True, 'Foo')  # タプル型(要素の型は混在)

  >>> [1, 2, 3]
  [1, 2, 3]  # リスト型リスト型(要素は整数型)

  >>> [1, True]
  [1, True]  # リスト型(要素の型は混在)
0360デフォルトの名無しさん垢版2020/02/02(日) 15:27:54.03ID:sFvJQflI
未だにそんないにしえの言語持ち出してホルホルしてる型無し糞言語じいさん・・・
0363デフォルトの名無しさん垢版2020/02/10(月) 21:35:25.56ID:Dl8kxxCi
>>362
>Rustのナイトリーチャネルで、非同期プログラミング機能が強化された不安定版が入手できるようになった
>Discordはナイトリーリリースを導入し、問題が発生した際にはRustチームと協力して対処した

頑張ったなw
0369デフォルトの名無しさん垢版2020/02/16(日) 16:39:43.39ID:e+hZCGM4
ガベーコレ
0375デフォルトの名無しさん垢版2020/02/18(火) 08:00:03.50ID:KHr4ndHy
コンパイラがメチャ賢くなってあらゆるプログラムが最適化で削除されるようになったら消滅する議論
0379デフォルトの名無しさん垢版2020/02/20(木) 21:32:45.76ID:MYBjG5xo
でも死亡率低いようだよ。
感染後に何人治癒したかも発表してほしいね。死ななかった人が治癒した人だからいずれはわかることではあるが。
0380デフォルトの名無しさん垢版2020/02/20(木) 21:50:22.46ID:ABNkvVkH
JavaScriptはPHPとかいう汚物を一刻も早く滅ぼしてくれ。
言語仕様自体がゴミの癖にコーディング規約1番うるさい
のほんと腹立つ。
0382デフォルトの名無しさん垢版2020/02/20(木) 22:22:50.95ID:9OkW2rsY
>>380
型無し糞言語からJavaの悪いところだけを輸入して、ただの糞言語になった
便器ブラシことゴミ屑PHP(障害者手帳持ち)の悪口を言うな
0384デフォルトの名無しさん垢版2020/02/20(木) 23:02:02.13ID:9OkW2rsY
そう。一度ペチパーの畜生道に堕ちると、ほとんどの人間がダメになってしまう。
ペチパーは、クソコードを書かれる前に、打ち首の上さらし首にするしかない。
0385デフォルトの名無しさん垢版2020/02/20(木) 23:09:21.96ID:EIb8BF36
JSONを策定した連中(IETF)は馬鹿

propertyでのidentifier(ダブルクォート無し)、末尾カンマ、コメント、
undefined(void 0) を削って設定ファイルとしても優秀に出来た仕様をぶち壊した
0386デフォルトの名無しさん垢版2020/02/20(木) 23:18:52.95ID:EIb8BF36
言語間ネタ繋がりで
FFIのモダンな標準っていつまで経っても出てこないな
C言語ヘッダファイルが悪いとは言わないけど
0387デフォルトの名無しさん垢版2020/02/20(木) 23:30:23.69ID:rlR2t2y0
Ruby を書く人は、JS でも、きれいに書く

React でも、Ruby のinclude(mix-in)を入れた

mix-in で、親子の継承チェーンの間に入るから、
同名のメソッドが、親の前に、mix-in で見つかる
0388387垢版2020/02/20(木) 23:33:18.57ID:rlR2t2y0
Ruby の、require/include の違いを学びましょうと、matz も言ってたw
0389デフォルトの名無しさん垢版2020/02/20(木) 23:53:57.06ID:Bxr9L5YO
class やら継承やら、久しくやってない(もっぱら関数・合成と委譲)ので、mix-in の記憶が曖昧なんだが、
React で mix-in なんてやることある?

少なくとも、独自コンポーネントの継承は随分昔からアンチパターンとわかってるから、やめた方がいいと思う
というか、最近の React ならほぼ全部 function でいけるぞ
0391387垢版2020/02/21(金) 03:09:32.20ID:2TMdipPT
ヘルパーメソッドなど、汎用的なモジュールを作って、子クラスでinclude(mix-in)すると、

メソッドの探索チェーンが「子 → mix-in → 親」となるので、
同名のメソッドが、親よりも先に、mix-inで見つかる

便利なインターフェースみたいなもの
0392デフォルトの名無しさん垢版2020/02/21(金) 08:29:33.49ID:gYJx2Nw8
そういうのはロギングとか、本筋の処理と関係ない部分でやるならいいんだけどね。
0394デフォルトの名無しさん垢版2020/02/21(金) 09:20:51.62ID:x3ENt9Ss
>>3
エリ臭ーの説明が臭逸wwwww
0396デフォルトの名無しさん垢版2020/02/21(金) 17:47:40.90ID:Q29ljCA8
>>386
どうせc呼ぶくらいしか需要ないんだしそれでいいだろ。
他の言語呼ぶくらいならプロセス切り離してシステム関数つかったらええわ。
0398デフォルトの名無しさん垢版2020/02/21(金) 19:38:24.80ID:rQPJsZ5x
Cの書きにくさと高級言語の遅さを兼ね備える
のか…(困惑)
0399デフォルトの名無しさん垢版2020/02/21(金) 22:00:41.03ID:yQU53qlc
Goの良くない点

入門者への分かりやすさを重視して設計したはずなのに、配列のスライスが上端を
含まない半開区間であること。閉区間にすべきだった。
0400デフォルトの名無しさん垢版2020/02/21(金) 22:31:21.43ID:qBSn2WyF
配列のインデックスが0ベースならスライスは普通半開だけど
含んでる言語はスライス用途以外に同じ記法を用いる特殊な事情があるやつ
0401デフォルトの名無しさん垢版2020/02/21(金) 22:50:10.70ID:SL2p+l+/
>>390
標準化あるいはデファクト化が重要なんすよ

自社ソフト内で使う分にはいいけど
公開APIでJSON5を返す選択は厳しい
0402デフォルトの名無しさん垢版2020/02/21(金) 22:51:09.76ID:gYJx2Nw8
半開区間で表すのが常識になれば入門者が迷うこともなくなるよ。実際そうなりつつある。
0403デフォルトの名無しさん垢版2020/02/21(金) 23:13:55.94ID:SL2p+l+/
>>399
>入門者への分かりやすさを重視して設計したはず

言語入門者はともかく、プログラミング入門者を対象とはしてないよ
楽しさや設計の美しさより実務を最優先にした言語

公式にも以下のようにある
> Go was designed to address the problems faced in software development at Google
0404デフォルトの名無しさん垢版2020/02/21(金) 23:18:00.85ID:yQU53qlc
>>400
添字が0始まりだから半開区間にしなければならない理由なんてないだろ。
添字が0始まりでも閉区間のF#やPowerShellの方が入門者にとっても
それ以外の人にとっても直感的で分かりやすい。
0405デフォルトの名無しさん垢版2020/02/21(金) 23:25:51.94ID:qBSn2WyF
>>404
だからそれらの言語のは配列のスライス専用の記法じゃないから

let list = [ 1 .. 10 ]

みたいな場面でも使われる
こういう時にはたしかに直感的で便利だけどスライス用途ではむしろ使い難い
RubyやPerlも同じ
0406デフォルトの名無しさん垢版2020/02/22(土) 00:02:04.72ID:iumKj4t4
>>405
スライスでも閉区間の方がはるかに使いやすい。Pythonみたいな奇形言語の真似を
するのはやめてもらいたい。
0408デフォルトの名無しさん垢版2020/02/22(土) 00:38:42.23ID:4ukU5GSv
開閉と区間とか知らない言葉出てきた
モナドばりの失笑もんだ
0410デフォルトの名無しさん垢版2020/02/22(土) 01:52:17.36ID:dIBglAMb
Rust
for x in 1..4 { println!("{}", x); }
> 1 2 3

Java
for(int i : Arrays.asList(0,1,2,3,4).subList(1,4)){ System.out.println(i); }
> 1 2 3

IntStream.range(1,4).forEach(System.out::println);
> 1 2 3

C#
foreach(var i in new int[]{0,1,2,3,4}[1..4]){Console.WriteLine(i);}
> 1 2 3
0413デフォルトの名無しさん垢版2020/02/22(土) 09:56:32.14ID:3tA6OTRM
閉区間だったり1始まりが好きな奴はjulia使ってればいいんじゃね?そこから出なくていいよ。
0415デフォルトの名無しさん垢版2020/02/22(土) 12:10:17.27ID:BfUm9Jvt
@ & $ ^ * ` -> => などを
使ってる言語は俺の中でゴミ確定


うんこをOSS公開しなくていいから
0416デフォルトの名無しさん垢版2020/02/22(土) 12:13:19.15ID:ArzKKN+q
配列クラス自体は言語ではなくライブラリだから
いくら言語を統一してもライブラリを何通りも作るのは合法
0417デフォルトの名無しさん垢版2020/02/22(土) 12:13:47.33ID:swIKwGW1
>>415
ぴーーーーーーーーえいーーーーーーちーーーーーーーーーーーーピューーーーーーーーーーーーーーーーーーー
0420デフォルトの名無しさん垢版2020/02/22(土) 14:08:59.76ID:qQaAG+8d
Ruby のrange では、
p ( 1 .. 3 ).to_a #=> [1, 2, 3]
p ( 1 ... 3 ).to_a #=> [1, 2]

オプションで切り替えられるのも良いかも
( 1 .. 3, true )
0423デフォルトの名無しさん垢版2020/02/22(土) 16:40:01.88ID:dIBglAMb
Swiftの半開区間/閉区間の表現を使うとして
 (10 ..< 20) → (10 <= x < 20) 要素数: 20-10  = 10
 (10 ... 19) → (10 <= x <= 19) 要素数: 19-10+1 = 10

2分割を考える

整数区間の表現や分割は互いに代用可能
 (10 ..< 20) → (10 ..< 15) (15 ..< 20) 要素数: 5, 5
 (10 ... 19) → (10 ... 14) (15 ... 19) 要素数: 5, 5

実数区間は代用不可能 ※精度の仮定無しに <= 1.9999.. は表現不可
 (1.0 ..< 2.0) → (1.0 ..< 1.5) (1.5 ..< 2.0)
 (1.0 ... 2.0) → (1.0 ... 1.5) (1.5 ... 2.0) ※境界点のhitTestは両方に該当

閉区間では整数区間と実数区間で考え方が異なる
また、固有の値の数が多くなりがち (10...14) (15...19) → 10,14,15,19

両方あるべきとは思うけど、半開区間の方がロジックが簡潔になることが多い
0424デフォルトの名無しさん垢版2020/02/22(土) 16:49:53.81ID:ArzKKN+q
スカラーと行列では交換法則がー

交換法則を使ったら不正解とする方がロジックが簡潔みたいな風潮
0425デフォルトの名無しさん垢版2020/02/22(土) 19:06:26.05ID:iumKj4t4
>>409
a[1:4]はa[1], a[2], a[3], a[4]にしか見えない。見た目が左右対称だから機能的にも
左右対称な閉区間を表すのが自然。半開区間を表したければ、見た目にも左右非対称な
a[1:<4]にすべきで、1文字増えるだから不満はないだろ。

a[1], a[2], a[3]を指定したいときに、3に1を足して4なんて煩わしいことをするのは
馬鹿げているから、たいていの場合は閉区間が適していて、開区間が適しているのは
>>423のような特殊な場合だけ。

半開区間は「赤上げて、白下げないで青下げて」みたいなひねくれた書き方だから、
閉区間の方が分かりやすい場合にも半開区間を強要するのは、書き間違えやすくバグの
元。お前らも半開区間の言語で、a[1], a[2], a[3]のつもりでa[1:3]と書き間違えた
ことが一度はあるだろ。いや、二度、三度どころかもっとあるはず。白状しろw
0427デフォルトの名無しさん垢版2020/02/22(土) 20:24:36.79ID:6IDagORl
--lua
print (1 .. 4)

14
0428デフォルトの名無しさん垢版2020/02/22(土) 20:29:39.10ID:iumKj4t4
>>419
*と言えば、Goの巨大数パッケージmath/bigは異様に使いにくいな。

階乗関数の整数版factと巨大整数版Factを書いてみると、C#ではfactのintを
BigIntegerに置換するだけでFactになる。アルゴリズムが本質的に同じときに
同じ書き方をできるのは、分かりやすくて良い。
https://www.ideone.com/T8WbLX

ところが、Goではfactと比べFactには余分なものがたくさん増えている。
*big.Intなんてポインタが現れるし、整数からの変換にbig.NewInt関数が必要だし、
四則演算子を使えず、掛け算は*ではなくMul関数を呼ばないといけない。
こんな実装の裏方を晒して低レベルな書き方をさせるのは、煩雑でバグの元。
C#では許されるp *= n--をGoが許さないのは、評価順序の勘違いによるバグを
防ぐためだろうが、他方で半開区間や巨大数パッケージでバグの温床を与えているのは
設計方針がちぐはぐすぎる
https://www.ideone.com/9ndenp
0429デフォルトの名無しさん垢版2020/02/22(土) 21:15:42.06ID:dIBglAMb
>>425
> 3に1を足して4なんて煩わしいこと

off位置からlen個取りたい → off..<(off+len)
"key=value"からkeyを切り出したい → 0..<(=の位置)

閉区間では1を引くなんて煩わしいことが必要とも言える
使い易さの例がマジックナンバーなのはナンセンスでは?

非対称な構文にすべきという点には異論無いけど
それ以外の部分は、君がそう思っているという以外に根拠が無いように見える
0430デフォルトの名無しさん垢版2020/02/22(土) 22:31:04.26ID:iumKj4t4
>>429
範囲をマジックナンバーで指定したい場面は多い。

閉区間にするため1を引く計算は日常的に染みついているから、煩わしいと思わない。
例えば、2月22日から5日間は、22 + 5 - 1 = 26だから26日までと理解する。
変数で書く場合も、off..<(off + len)よりoff..(off + len - 1)の方が最小値と
最大値が両方明示されていて分かりやすいと思うが、人によって違うだろうし、
半開区間の方が4文字短いので、好みに応じて選べるようにするのが良い。
offを二度書かずに済む構文off+..(len - 1)とoff+..<lenがあるともっと良い。
0431デフォルトの名無しさん垢版2020/02/22(土) 22:34:01.56ID:WVugcdbO
>閉区間にするため1を引く計算は日常的に染みついているから、煩わしいと思わない。

他の人は半開区間もすぐに染みつくから問題ないのよ。
0432デフォルトの名無しさん垢版2020/02/22(土) 23:19:17.03ID:40Zqn9UM
>>399
無いなら作れば良い。
そう。Haskellならね。

組込のindexえんざんし(!!)だとこう

[1..3]!!0
>1

んで、1で始まるindex演算子が欲しければ作る。

(x:_) !!! 1 = x
(_:xs) !!! n = xs !!! (n - 1)


[1..3]!!!1
>1
0436デフォルトの名無しさん垢版2020/02/22(土) 23:54:59.87ID:dIBglAMb
>>430
ではその期間にログインした人をログイン日時から絞り込むとする

  2月22日 <= ログイン日時 <= 2月26日

仕様の具体例として上記を書くのは不具合のリスクがある

  2月22日 <= 日単位切り捨て(ログイン日時) <= 2月26日
  のように精度を揃える切り捨てを明示するか

  2月22日0時0分 <= ログイン日時 < (2月26日0時0分 + 1日間)
  のように半開区間にすべき

このような操作が必要なのは、2月22日から2月26日という表現は
実際には「2月22日から2月26日終日」という暗黙の非対称性があるため
0437デフォルトの名無しさん垢版2020/02/22(土) 23:55:16.88ID:iumKj4t4
>>432
Haskellでは範囲を指定してリストを作るときの範囲は閉区間だな。
だから、スライス風演算子!..!を定義すれば、

Prelude> xs !..! ys = map (xs !!) ys
Prelude> [1..10] !..! [1..4]
[2, 3, 4, 5]

となる。

Haskellは言語仕様は難解で有名だが、標準インストールでREPLが提供され、
ソースファイルをいちいち作らずにいろいろ試せて便利だな。C#とF#も
コンパイラ言語だがREPLがある。GoにもREPLが欲しい。Goreという
REPLもどきを作った人はいるが、もどきなので遅くて使い物にならない。
純正で本物のREPLを提供してもらいたい。
0438デフォルトの名無しさん垢版2020/02/22(土) 23:57:09.96ID:dIBglAMb
>>430
一方で時間は「昼休みは12:00〜13:00の1時間」のような半開区間の表現と
12:00〜12:59のような閉区間の表現がある (秒以下もあるので中途半端だが)
ググった限りでは前者の方が一般的に見える

行程表などでの分割では 12:00〜12:30, 12:30〜13:00 のようになる

これは君が「特殊な場合」と言ったものの実例
整数区間の日付と実数区間の時刻
0440デフォルトの名無しさん垢版2020/02/23(日) 01:27:08.73ID:A66EETsq
おじさんてほんと豆知識自慢好きだよな
0441デフォルトの名無しさん垢版2020/02/23(日) 01:52:12.77ID:4j3W7HlN
>>439
配列が1から始まったら何か不都合がありますか?
0442デフォルトの名無しさん垢版2020/02/23(日) 06:56:02.42ID:z54NwjgJ
numpyとか
数値計算専用ライブラが
充実してて使いやすればいいだけの話。
言語ネイティブのシンタックスで
そこまでサポートしなくてもいいし、
どうでもいい。
0443デフォルトの名無しさん垢版2020/02/23(日) 07:02:30.87ID:z54NwjgJ
しかしよく考えたら
if(0 < x < 10)
くらいの比較演算は確かにあったら便利だよな
なんでこれができる言語はないのか。
もしくはbetweenとか
誤解を招くような記法を使うのではなく、
普通の不等号で挟めるのが一番わかりやすいな。
0444デフォルトの名無しさん垢版2020/02/23(日) 08:28:32.81ID:NXppToWn
一発目でboolが出てこない特別ルールを構文解析器に埋め込まなきゃなんないからな
0449デフォルトの名無しさん垢版2020/02/23(日) 10:09:37.75ID:DWh+LsOr
こんなしょーもないことでグダグダ文句言うくらいなら本人だけがjuliaでも使ってりゃいいんだよ。
こういう馬鹿に限って人に自分の感覚を強制しようとする。
0451デフォルトの名無しさん垢版2020/02/23(日) 11:19:19.18ID:y7plF7NK
これ自分の「正しさ」を人に押しつけるパターンではないな
狼少年は自分の言葉が正しくないと知りながら人に教える
動機は、例えば何かの記憶を消すためにでたらめなデータで上書きするとか
0452デフォルトの名無しさん垢版2020/02/23(日) 12:03:38.48ID:e2r12CYr
>>443
Pythonかな
0454デフォルトの名無しさん垢版2020/02/23(日) 15:28:27.91ID:SvXUu1bl
そういうことじゃなくて、0<x<10 の 0<x の部分と単体の 0<x では異なる評価をしないとならないということ。
モナドみたいな形で解決できるかもしれないが。
0455デフォルトの名無しさん垢版2020/02/23(日) 21:19:41.25ID:eJliGvsG
>>438
「○〜○」や「○から○まで」という表現は閉区間だよ。13時ちょうどは次の閉区間と
重複し、昼休みであると同時に昼休みではないことになり、厳密に言えばおかしいが、
13時とそれより0.01秒前または後との違いなんて日常感覚では知覚できないから、
このような表現でも問題なく通用している。

秒を小数で表示すれば実数になるが、(連想配列でない)配列の添字は整数しか
ないから、実数を持ち出すのはそれこそナンセンス。実数は数直線上の点だが、
整数は番号が付けられた桝目として捉えられる。配列は下図のようなメモリ格納
イメージだから、

012345
□■■■□□

黒く塗られた部分をスライスとして指定したければ、その部分の最初と最後の番号を
使ってa[1:3]と書くのが分かりやすく間違えにくい。Excelのセル番地の範囲を
指定するのに閉区間でA1:B3と書き、半開区間でA1:<C4とは書かないのと同じ。

>>441
PowerShell, Python, Rubyのように配列の添字が負の整数-iのとき最後からi番目の
要素を指す仕様の言語では、正の整数iのとき最初からi番目の要素を指す仕様(つまり
添字が1始まり)にする方が整合性が取れて分かりやすいな(実際には0始まり)。
0456デフォルトの名無しさん垢版2020/02/23(日) 22:23:06.83ID:BvZqtd/x
>>455
> 配列の添字は整数しかないから、実数を持ち出すのはそれこそナンセンス
区間という概念が配列にしか使われないとでも?

> 13時ちょうどは次の閉区間と重複し、昼休みであると同時に昼休みではない
時間帯毎の集計程度の処理で容易に不具合出しそう
0457デフォルトの名無しさん垢版2020/02/23(日) 23:26:10.61ID:SvXUu1bl
グラフィック処理でのピクセル座標系とグリッド座標系の違いの方が似てるかな。
昔は直感的なピクセル座標系も使われていたけど、グリッド座標系の方が合理的だということが理解されて
今じゃそっちが主流だな。
0459デフォルトの名無しさん垢版2020/02/24(月) 00:07:37.86ID:XuGp3j1T
馬鹿が馬鹿なことを言ってるだけだわ。
電流が本当は負の方向にながれててもそのまま正負は変えてないってことの意味を少しは理解しろ。
0463デフォルトの名無しさん垢版2020/02/24(月) 11:16:49.98ID:FL3aaU5e
添字が実数の場合は左辺値という概念がなくなるだろうから
[]演算子は意味のない仕様だよ
()演算子だけでいい
0471デフォルトの名無しさん垢版2020/02/24(月) 18:06:27.88ID:/m2XX1oE
あまりに社会に都合がわるい真実なので隠蔽されているが
笑いは基本的には嘲笑であり相手との社会的距離による
自分の地位向上が見込めそうなとき笑いが出る

自分と近しい人だとちょっとした失敗のとき笑う、ケガとかは後で自分に面倒がくるから笑えない
自分と距離がすごくある、究極的にはフィクションだと指でつつかれて頭が吹っ飛ぶのに大笑いできるわけだ

愚かさをアピールして反射的な笑いを取る方法だと
長期になるとそいつが愚かなのはわかりきってるので笑えなくなる

状況が思いもしない方向に転換するようなときは長編でも笑える
0472デフォルトの名無しさん垢版2020/02/24(月) 19:55:05.44ID:17cy6+il
>>461
範囲指定(スライスに限らない)が閉区間だけの言語
Fortran, F#, Haskell, Julia, MATLAB, Octave, Pascal, PowerShell, R, S, Scilab

どう見ても使用者の平均的な知能は半開区間だけの言語より高そうだなw

蛇に唆され禁断の果実を食べ「知恵」を得たが、「知恵」と呼べるほどのものでは
なかった。代償として産みの苦しみが増し、苦労して食物を収穫し、死んで塵に
帰らなければならなくなった――

Pythonに後続し半開区間だけにしたGoは、非合理で書きにくい記法を甘受しなければ
いけない、>>2の表現を借りるなら「イケてない労働者言語」か… その地位を
否定したいなら、改悛して閉区間も取り入れ、Pythonを駆逐してもらいたい。
0473デフォルトの名無しさん垢版2020/02/24(月) 20:11:23.36ID:XuGp3j1T
>>472
だからその使用者の平均的な知能が高そうな言語をおまえは使ってたらええやん。
そんなことも通じない人の知能が高いとはとても思えないけれど。
0475デフォルトの名無しさん垢版2020/02/24(月) 21:42:39.58ID:17cy6+il
>>473
Pythonは何から何までキモくてただ絶滅を願うのみだが、Goは基本的には
良い言語だから、直すべき所は直して、より使いやすい言語になってもらいたい。
教祖様の決定はすべて正しいので信者は黙って従えという言語ではない(Swiftは
C系列の新言語の中では良くできていると思うが)から、不満点があれば改善を
求めて構わない。

>>428にあるGoの巨大数パッケージについてはどう思う? あんな煩雑な書き方で
満足できる? C#のようにすっきり書けるようになってもらいたくないか?
0476デフォルトの名無しさん垢版2020/02/24(月) 22:40:17.58ID:XuGp3j1T
じゃあC#つかって巨大数の計算してりゃええよ。
なんで無理にどの言語も同一的にしようとするのか?愚かとしか言いようがない。
お前が挙げてる下の言語にgoに近くなるように言ったらええわ。
Fortran, F#, Haskell, Julia, MATLAB, Octave, Pascal, PowerShell, R, S, Scilab
賢い人ばっかならそっちのが意見きいてくれるだろw
0477デフォルトの名無しさん垢版2020/02/24(月) 22:45:23.33ID:1U5lho1x
1始まりの閉区間これ最強マジお勧め

1. nが符号付整数でも
for (n = 100; n >= 1; n--) { ... }
 が有限ステップで止まる

2. nで表せる上限が65535のとき
 for (n = 1; n < 65535; n++) { ... } より
 for (n = 1; n <= 65535; n++) { ...
0478デフォルトの名無しさん垢版2020/02/24(月) 22:45:56.20ID:OInStaY+
>>475
求めるのは構わないがそれに対する反対もまた正当

言語設計者/コアメンバの判断やコミュニティで賛成多数かなどで決まるだろうが
不要な追加は改悪になりうるので説得出来ないなら現状維持が優先される

自分の好みや引き合いに出した言語の使用者の知能が高そうという話で
より多数の使用者を抱える言語の仕様を変えられると考えるのは無理がある
0480デフォルトの名無しさん垢版2020/02/24(月) 23:18:53.55ID:17cy6+il
>>478
後方互換性がない改版はむやみにすべきではないが、不合理な点をいつまでも
引きずるのも良くない。PythonやRubyは後方互換性がない改版を敢行した。

範囲を半開区間でしか指定できずそれをa[1:4]のように書くのは、for文で言えば
for (i = 1; i <= 3; i++) を禁止し、for (i = 1; i < 4; i++) しか許さず、
しかもそれをfor i = 1 to 4と書けと言っているような滅茶苦茶な仕様。

>>479
C#のスライスの歴史は浅く、2019年9月のC#8.0で採用されたばかり。同じ.NET系で
スライスを既に持っていたF#とPowerShellに合わせて閉区間にすべきだったな。
もちろん、a[1..<4]で半開区間を表し、それをF#とPowerShellにも導入するのは
一向に構わない。
0482デフォルトの名無しさん垢版2020/02/24(月) 23:38:10.64ID:OInStaY+
>>480
滅茶苦茶な仕様とやらは閉区間だけの言語には言わないのか?

専用の演算子が用意されていないことを禁止と言い換えるあたりもズレているし
それともそういう動作の関数すら自分で実装出来ないのか

自分の主観を中心にしすぎだ
だから好きな言語を使えという話になる
0483デフォルトの名無しさん垢版2020/02/25(火) 00:00:00.40ID:AmG8+LM2
>>482
閉区間だけなのは滅茶苦茶ではない。forループで言えば、Basic, Fortran, Pascalなどは
for i = 1 to 3のような書式しかなく、それでi = 1, 2, 3を網羅する。半開区間にしたければ
whileループを使う。

演算子を使えばすっきり書けるのに、何で>>428の巨大数演算みたいに関数でゴテゴテ
書かなければいけないのか。おまけに関数も自分で実装しなければならないなんて、
それこそ他の言語を使った方が良い。
0485デフォルトの名無しさん垢版2020/02/25(火) 02:54:50.77ID:oSeHo6cg
そんなに閉区間がいいならa.slice(1,3)とか作ればええやん・・・
と思ったが

Goはnon-localな型を直接拡張できないから
自前でラッパーを定義しないとa.slice(1,3)は無理

じゃslice(a, 1, 3)でもいいかって考えるけど
ジェネリックがないから要素の型ごとに関数定義が必要・・・
じゃマクロでコード生成すればいい・・・・・ってマクロもない

詰んどるやんけ
もうa[m:n+1]でええわってなる
0486デフォルトの名無しさん垢版2020/02/25(火) 03:52:13.55ID:1ovb/01f
Go ていつもそんな感じだよなwww
言語内で出来る範囲で済んでるうちはまあまあ快適だけど
いざ「これさぁ・・何度も同じパターンでてくるからなんかうまく
楽するやりかた考えられんもんかな」ってはじめると
あーージェネリックないから全部書かないといけないのか面倒くせぇ・・
じゃマクロ・・はないのか・・じゃあどうすれば・・
えええいもういいやベタでシコシコ書こう、ってなりがち
でそういうグチ言うとジェネレーター使えとかいわれるけどあんな
ウンコみたいな機構に頼らないといけない時点でクソすぎるわ
0490デフォルトの名無しさん垢版2020/02/25(火) 19:15:23.89ID:C32G0TY+
新言語覚えただけで仕事した気になるガイジ
俺みたいな優秀なビジネスマンから見たら同じことしてるだけで偉そうにしてるゴミ
0491デフォルトの名無しさん垢版2020/02/25(火) 21:30:57.62ID:AO5ezpPA
おまえは優秀なんだろうな
何がしたいのかわからんアホのために
仕事をし、結論をだし、さらにはその意味付けまで考え出す

馬鹿がトップにいても優秀に見えるようにふるまえる

おれはそんなに優秀じゃない
心が死ぬ
0493デフォルトの名無しさん垢版2020/02/26(水) 19:03:12.30ID:JAINtVGn
RustもPythonないとビルドできないクソ言語。
しかも2.7系。依存が深すぎて3系にアップグレードできないw
0495デフォルトの名無しさん垢版2020/02/26(水) 21:17:35.91ID:LEGaL302
IBMがSwift開発を終了 - Chris Bailey氏とのQ&A
https://www.infoq.com/jp/news/2020/02/ibm-stop-work-swift-server/

IBMは先頃、サーバサイドSwiftの開発を中止した。これはSwiftがオープンソース化して間もなく開始されたもので、Swift Server Worl Griup[SSWG]のリーダシップも同時に譲渡されている。

GoとRust、そしてSwiftは、型安全でコンパイル可能なネイティブ言語として、CおよびC++の代替となる"現代的ネイティブ言語"としてグループ分けされることが少なくありません。

GoはKubernetesのようなクラウドテクノロジのコアインフラストラクチャや、CLIの開発などに使われるシステム言語として、真の得意分野を見つけることに成功しました。
Rustはまだ展開すべき場所を模索している段階ですが、Web Assemblyによって大きな関心を集めるようになっています。
Swiftが採用曲線において遅れを取っていることは否めない事実です。
0496デフォルトの名無しさん垢版2020/02/26(水) 22:47:29.71ID:dT4BwRcy
TypeScriptは高カインド型作れないのを早くなんとかしてくれ
インターフェース使って無理やり実現するハックもあるけど、ポリモーフィックな関数のUnionをちゃんと単一化できないあたり雑魚いなあという印象
0500デフォルトの名無しさん垢版2020/02/27(木) 00:26:44.33ID:SC3VM5LZ
カリー化か
0502デフォルトの名無しさん垢版2020/02/27(木) 09:21:04.85ID:OJ5+vP6y
低知パキスタン型と戦わせよう
0504デフォルトの名無しさん垢版2020/02/27(木) 13:01:06.82ID:OJ5+vP6y
VIRUSをUIRUSって書くって古代ローマ人かよお前www
0507デフォルトの名無しさん垢版2020/02/27(木) 17:11:17.64ID:igir/6Hq
mapの引数がlist<A>ならlist<B>を
vector<A>ならvector<B>を返したい
だが引数の型をTとすると返り値の型を宣言できない
0508デフォルトの名無しさん垢版2020/02/27(木) 17:43:30.43ID:jwUSyqkl
c++の型出しテンプレートの不自由版みたいなもんか
0509デフォルトの名無しさん垢版2020/02/27(木) 20:01:01.74ID:SC3VM5LZ
型宣言のないネイティブJavaScriptが
いかに最強かが分かるな
0514デフォルトの名無しさん垢版2020/03/01(日) 00:36:11.71ID:D/Yz/cH7
高カインド型は、要は型引数を取るジェネリック型の総称だよ

たとえばArrayは、Array<number>とかArray<Indo>は具体型(実行時に存在する値をとりうる型という意味で、抽象クラスに対する具象クラスという意味の具体ではないことに注意)だけど、
型引数を入れてないArray<_>のままだと実行時の値をつくれない
これにnumberなど具体型を入力してやれば、はじめてArray<number>などの具体型となる

そこでArray<_>は「具体型に作用して新たな具体型を作るもので、具体型ではないなにか」と考えられ、こういうものを1階カインドとか Type → Type のカインドを持つという

同様に型引数2個のジェネリック型は2階カインドだったり、具体型は0階カインドともいう。
0階以外のカインドを持つ型を総称し高カインド型と呼ぶ
0516デフォルトの名無しさん垢版2020/03/01(日) 00:47:37.29ID:D/Yz/cH7
TypeScriptのジェネリクスの高階カインド型サポートがいまいちなのは、
「ジェネリック型に入れられるのが具体型に限定されていること」で、

たとえば map をサポートするジェネリックインターフェースとして
Mappable<f>を作るとする

そのインターフェースを実装できるクラスはカインド1、つまりArray< >など
型引数を1個とるクラスだけにしたい けど、できない

また、カインド Type -> Type -> Type の高カインド型に型1個入れたものは
カインドType -> Type になってほしいけど、こういうこともできない

たとえばkey-valueペアのMap<_, _>なんかは2階カインドだけど、
キータイプだけ指定した Map<string, _> を1階カインドと見なしてMappableを実装させたい(map はMapの各値を変換する関数になる) けど、これもできない
0519デフォルトの名無しさん垢版2020/03/01(日) 09:39:10.97ID:wTWFPuO/
高力インド型
0520デフォルトの名無しさん垢版2020/03/01(日) 09:46:16.48ID:J3IrN4Ey
higher-kinded typesの日本語訳は高階型で別に良いと思うんだがな
カインド強調する意味がゼロとは言わないがデメリットのほうが大きい
0521デフォルトの名無しさん垢版2020/03/01(日) 10:24:35.13ID:TbG8Ke0I
高階関数という言葉を知ってれば、そこから類推できる高階型って呼び方の方が良いよね
0523デフォルトの名無しさん垢版2020/03/01(日) 12:37:26.26ID:GdO9iGlh
何でもできる方がいいと思い込んでるのはバカにありがちなセンスなのでしょうがない。
0524デフォルトの名無しさん垢版2020/03/01(日) 15:16:31.84ID:TbG8Ke0I
変につまみ食いしようとして使い勝手が悪くなるってこともあるよ
Java8から入ったStreamとOptionalみたいなのを自分で書くのすごい面倒くさい
0525デフォルトの名無しさん垢版2020/03/01(日) 16:33:14.39ID:hFYkB74O
null禁止型の配列の初期化に必要な無引数コンストラクタ
が無かったらコンパイルエラーになるコンパイラを自分で書けない
0527デフォルトの名無しさん垢版2020/03/01(日) 19:10:26.22ID:D/Yz/cH7
高階型はまた別じゃね?
Higher-kinded typesじゃなくてrank-N typesのことかと
0529デフォルトの名無しさん垢版2020/03/01(日) 21:22:24.37ID:GdO9iGlh
そんな糞機能がほしけりゃマクロ使ってでも実装すりゃいいんだよ。
そうすればゴミ機能ってことに気づくから。
0532デフォルトの名無しさん垢版2020/03/02(月) 08:24:29.53ID:vmTfu2dg
>>529
自分が理解できなかったものを話してる人がいるからってイライラするなよw
0533デフォルトの名無しさん垢版2020/03/02(月) 13:22:02.15ID:dzgadk5u
本当にいい言語は遠くから絶賛なんかじゃく、
自分ところの基幹言語としてプロジェクト全体の10%以上ぐらいの割合で採用するから。
0535デフォルトの名無しさん垢版2020/03/02(月) 17:54:10.41ID:lNfcnDid
>>534
わかったわかった。
ジェネリクスについてちゃんと勉強してきてからまた読み直してくれよ。
0536デフォルトの名無しさん垢版2020/03/02(月) 18:08:36.58ID:1of+/HmK
C/C++が絶賛されないのはテストしすぎてリスクの大きさが見えるからだろ
本当に科学的なやつらはテストを嫌う
0538デフォルトの名無しさん垢版2020/03/02(月) 19:55:38.54ID:JudLh/rB
>>535
勉強しても問題が理解できてないのかよ。。少しは自分でコード組んでみれば?

>本当に科学的なやつらはテストを嫌う
こんな大嘘をよく平気で言えるな。
0539デフォルトの名無しさん垢版2020/03/03(火) 00:50:53.97ID:halZ50DI
>>538
確かに中途半端にしかポリモーフィズム意識してないお前みてーなやつには
難しくて理解できんのでメンテできる人が限られたコードにはなるという問題はあるな…
0540デフォルトの名無しさん垢版2020/03/03(火) 01:30:28.89ID:9peK0gCx
くりかーえーす♪この
0542デフォルトの名無しさん垢版2020/03/03(火) 14:51:04.88ID:9peK0gCx
Rust勉強してんだけど、
let mut n = 5;
println!("{}", n = 4);
println!("{}", n);
〜結果〜
4
5
なるほど分からん
0544デフォルトの名無しさん垢版2020/03/03(火) 17:25:37.47ID:9peK0gCx
あー、assignmentではなく…
なるほどだけど、
えー…
Rustでは代入式は右辺の評価値ではなく空のタプルを返すとあったから確かめようとしたらこうなったw
大根乱ですよ
0545デフォルトの名無しさん垢版2020/03/03(火) 17:31:22.84ID:EXykEa9V
むしろ何で代入してると思ったのか
0546デフォルトの名無しさん垢版2020/03/03(火) 18:04:04.14ID:9peK0gCx

いや以下expected `i32`, found `()`でエラーになるけど代入の結果空のタプルが返ったればこそでしょ??どういう意味?
fn foo(x: i32) -> i32 {
x * 2
}
let mut n = 5i32;
let m = foo(n = 4i32);
0547デフォルトの名無しさん垢版2020/03/03(火) 18:44:54.59ID:uIYzrTnG
nを定義しても呼び出された側からは見えないのがレキシカルスコープ
でもやっぱり見えるスコープが欲しい
これはダイナミックスコープの再発明だな
0551デフォルトの名無しさん垢版2020/03/04(水) 22:54:37.02ID:yiNVycVp
>>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
0552デフォルトの名無しさん垢版2020/03/04(水) 23:01:20.25ID:4yioSA0z
fn print6(a:()){ println!("{}", 6); }
let mut n = 5;
println!("{}", n = 4); //マクロの引数: 代入じゃない(マクロの仕様次第)
println!("{}", n);
print6(n = 7); //関数の引数: これは代入
println!("{}", n);

4
5
6
7
0553デフォルトの名無しさん垢版2020/03/07(土) 00:08:15.14ID:po15mmZE
書けば書くほどPython嫌いになるわ
機械学習とかやるにはいいんだろうけど、これでサーバーサイド組むとか狂気もいいとこ
やっぱ型無し言語って糞だわ
0556デフォルトの名無しさん垢版2020/03/07(土) 10:09:34.67ID:po15mmZE
>>555
過去のおガイジどもが色んな言語使いすぎて保守不能になって
社内標準言語がPythonとJavaScriptだけになったから

>>554
最低でもJava8
どんなに type hinting 書いても IDE は黙ったままだし補完も大して効かないし
糞of糞、糞の山マウンテンがチョモランマ

__init__.pyがないとimportできない糞
pyenv使ってbuildしてもruntimeエラーがでる糞
venv,pipenv,poetry,pyflow, おまえいったいいくつパッケージ管理ツールつくるねんの糞

糞糞糞糞
0557デフォルトの名無しさん垢版2020/03/07(土) 10:35:22.99ID:Gh4Y79Ev
PythonとJavaScriptだけって結論出した奴も含めておガイジやん
つまるところ一番の糞はその職場や
0558デフォルトの名無しさん垢版2020/03/07(土) 10:38:36.62ID:XLWmxUUx
>過去のおガイジどもが色んな言語使いすぎて保守不能になって
これはまあよくある話だが
>社内標準言語がPythonとJavaScriptだけになったから
こうなるのは珍しいな。。普通は逆にこいつの言うように堅めのやつでjava一択とかなりそうな気はするが。
0559デフォルトの名無しさん垢版2020/03/07(土) 10:49:17.19ID:tB1OTpLA
今javaは時期が悪いよ
0560デフォルトの名無しさん垢版2020/03/07(土) 11:19:48.16ID:po15mmZE
>>557
わかっとるわそんなん
だがPythonが糞なのも事実

>>558
超消極的な理由で選ばれただけ
バックエンドは機械学習プロダクトもあるからPythonは必須
フロントエンドはJavaScript必須

他はなんも考えてない
笑えよ
0562デフォルトの名無しさん垢版2020/03/07(土) 12:21:08.97ID:z518jRtl
>>556
>どんなに type hinting 書いても IDE は黙ったままだし補完も大して効かないし

これはIDE自体の問題か使う側の問題じゃないか?
0565デフォルトの名無しさん垢版2020/03/07(土) 13:13:17.74ID:e127m1PH
Pythonどちらかと言うと好きな方だけど開発環境周りは糞極めてるよね
0566デフォルトの名無しさん垢版2020/03/07(土) 13:30:02.16ID:po15mmZE
うるせーコロナで死ね
俺の言うこと聞かない言語は全て糞なんだよ糞、糞糞糞の糞
0569デフォルトの名無しさん垢版2020/03/07(土) 15:06:23.05ID:Zs2bgd34
TypeScript作ってる当のMicrosoftがPyright出してるじゃん。何の不満が?
0571デフォルトの名無しさん垢版2020/03/07(土) 15:41:21.16ID:Zs2bgd34
乞食の癖に贅沢言うな!じゃあお前が作れ!
0573デフォルトの名無しさん垢版2020/03/07(土) 17:10:01.53ID:/3GyPk4K
要はライブラリでPythonを超えればPythonは消えるよね
でも大抵の言語はライブラリを管理するツール自体が保守不能になる
Pythonは手動またはC言語のツールに丸投げしておけば保守不能にはならない
0574デフォルトの名無しさん垢版2020/03/07(土) 19:26:36.13ID:XLWmxUUx
まあc言語のライブラリ管理はそんな簡単じゃないがな。
低レイヤー触るとどうしてもそうなる。
0575デフォルトの名無しさん垢版2020/03/07(土) 21:21:55.92ID:zyQisfjb
PythonがC FFI側に投げてるライブラリのバージョンの複雑さは結局ユーザじゃなくてメンテナがコスト払ってるだけな部分もあるからな……
0576デフォルトの名無しさん垢版2020/03/07(土) 22:13:32.23ID:7WCIBliR
>>574,575
そんな低レイヤーうんぬんなど些細な話だ
そもそも2系から3系への移行ではPython本体やCライブラリだけでなく、
あまたの2系ライブラリのメンテナが膨大なコストを払っているのだから…
「後方互換性の断絶」とはそうゆうものだ

Python利用者はそうした神の決定に逆らうことは許されない
神の行いは絶対であり、聖書PEPを疑ってはならない
0580デフォルトの名無しさん垢版2020/03/08(日) 07:27:02.29ID:8cCRMkvW
一方で単一の言語処理系に過去バージョン互換をさせるとそれ自身の複雑さが極端に増すのは間違いない訳で
結局どこかしらでコストは払ってるんだよ
この辺はいくら次世代のいい感じの言語が出ようとも変わらないと思う
0581デフォルトの名無しさん垢版2020/03/08(日) 08:57:57.34ID:WHPmDMrq
んなあたりまえのこといわれても、でっ?ていう。
最適な互換性の維持具合についてなんか意見でもあるなら言えばいいけど
なんも考えてなさげだな。
0582デフォルトの名無しさん垢版2020/03/08(日) 09:38:38.42ID:oRQj+xWf
Pythonには2と3があるから駄目
そしてPythonをJavaに置き換えることを意識した時点で
Javaもその駄目なグループのメンバーになったようなもの

GCがある言語は多分みんな駄目になってしまう
0584デフォルトの名無しさん垢版2020/03/08(日) 10:06:42.70ID:ZuSBaXSz
いやJSもGCあるだろ…
0585デフォルトの名無しさん垢版2020/03/08(日) 14:22:36.07ID:jdr/SdJJ
>GCがある言語は多分みんな駄目になってしまう
なんの根拠もなく現状を全く無視したことを平然とのたまう精神はどこからきてるんだろうか。

こういう輩が好みそうなのはrustですかね。
0586デフォルトの名無しさん垢版2020/03/08(日) 16:42:21.18ID:8nAE6D2E
そうだね
なんの根拠もないものは全く無視されて当然
その精神がある限り、古い仕様は無視されて互換性が無くなる
0587デフォルトの名無しさん垢版2020/03/08(日) 17:08:13.34ID:aNSOANJ3
仕様は根拠では?
0588デフォルトの名無しさん垢版2020/03/09(月) 12:56:13.44ID:sMpZHxT3
静的型付け言語(typescript)の設計を学ぶためには、HaskellとF♯どっちが向いてるんだろう。
0591デフォルトの名無しさん垢版2020/03/09(月) 16:12:01.63ID:yVhMK1Dj
Javaとか型システム微妙言語の代表だろ
0592デフォルトの名無しさん垢版2020/03/09(月) 16:54:47.41ID:SsKgVmjs
javaScriptの数値は浮動小数点数だけなんたな
0594デフォルトの名無しさん垢版2020/03/09(月) 19:28:17.56ID:vLcN6ouJ
NumberとBigIntの二種類あるよ。
かつてNumberしかなかったのは、
JS作ってるほうも「JSで数値計算?そんなやつおらへんやろ〜」って感じだったんだと思う。
実際はそんなことはなかったという歴史は知っての通り。
0595デフォルトの名無しさん垢版2020/03/09(月) 20:29:51.94ID:8jAtqHAE
昔から知ってるやつからすると
ホームページ上で動的にデザイン変えるための言語だよなそもそもは
0597デフォルトの名無しさん垢版2020/03/09(月) 21:37:38.49ID:ZpX38Mjq
TypeScript、普通にトップクラスに書きやすいから困る
json 扱うなら TypeScript さいつよ
0598デフォルトの名無しさん垢版2020/03/09(月) 21:57:00.16ID:y1num/wG
JavaScriptでも、ビット演算は32bit符号付き整数に対する演算と決められてるので、
直接32bit整数の値を作れはしなくても、内部的にそのような型は存在はしてるはず

JavaScriptではビット演算はオペランドをこの32bit整数に暗黙的に型変換してから
実行するので、これを利用してNumber型を"整数型"に変換できる
a = Math.PI | 0
a == 3 // --> true

実際、JavaScriptにトランスパイルされるAltJSのPureScriptではInt型があるけど、
PSからコンパイルされたJS見てみると、Intは|0で実装されてるのがわかる。
0599デフォルトの名無しさん垢版2020/03/09(月) 22:05:45.05ID:m8/R2X0g
asm.jsと言うのものがあってだな・・・
元々誰も使ってなかった上にwasmの登場で完全にいらない子になったけど
0600デフォルトの名無しさん垢版2020/03/09(月) 22:09:10.66ID:+A4ZnB3N
int型の有無で言語を2つ以上作る世代は早く終わってほしい
ライブラリを追加するだけですむようにしてくれ
0605デフォルトの名無しさん垢版2020/03/10(火) 01:26:22.74ID:p2qIixd6
優秀つってもしょせんC++で作られたプログラムだろ?C++褒め称えろよ
0606デフォルトの名無しさん垢版2020/03/10(火) 02:25:56.91ID:pLogcX5n
出発点だったら何なんだよ
すべてのC言語プログラマはBCPLを崇め奉らなきゃいけないのか?
どっちが間抜けだよ
0607デフォルトの名無しさん垢版2020/03/10(火) 02:57:32.01ID:YCA0GKqZ

V8はC++で作られてるでしょ?
CコンパイラはBCPLで書かれてるの?
違うでしょ?大抵CかC++で書かれてるでしょ?
何で書かれてるかと何が先祖かの区別つかないとか、頭大丈夫?w
0609デフォルトの名無しさん垢版2020/03/10(火) 07:40:37.31ID:zMjjJrJs
でもアセンブラとC++にはマクロがあるから
文字列指向というか

asm.jsもテキスト形式だな
0612デフォルトの名無しさん垢版2020/03/10(火) 12:27:40.09ID:TTfAesFm
ももも、文字列指向www
マクロがあったらw
文w字w列w指w向www
Rustもマクロがあるから
文w字w列w指w向www
0613デフォルトの名無しさん垢版2020/03/10(火) 14:14:07.58ID:zMjjJrJs
IDEも予測入力もなかった時代に入力を補完するオーパーツ的な存在がマクロ
引数があれば補完後のどこかに挿入されたりする
0616デフォルトの名無しさん垢版2020/03/10(火) 19:21:25.93ID:wOkC+tNx
defineマクロみたいなのは純粋な文字列置換
lisp系とか高級になるとトークンを受け取ってどのような構文木を作って返すかプログラマーが操作できる処理
0618デフォルトの名無しさん垢版2020/03/10(火) 20:04:37.71ID:ZpJirelH
フォトジェニックマクロとか言うやつでしょ?ぼく知ってるよ
0621デフォルトの名無しさん垢版2020/03/11(水) 02:11:53.77ID:zwwCe0yv
スレタイにJulia入れなかったのはつまりそういうことか
0622デフォルトの名無しさん垢版2020/03/12(木) 01:25:03.61ID:cYhZNtzC
Rust触ってみたいんだけど逆に悪いところってなに?
いいところしか聞かないから聞きたい
0625デフォルトの名無しさん垢版2020/03/12(木) 09:23:56.54ID:cdl9Dqe3
コミュニティーがことごとく都合の悪いことをなかったことにしている。
そんなに悪いとこがねーならとっくに他の言語を置き換えてるだろうに。
0626デフォルトの名無しさん垢版2020/03/12(木) 09:34:32.26ID:SjQQh/Ja
安全教信者がうるさいって印象はある
でも言語自体はよくできてると思うわ
Let's EncryptのやらかしもRustなら防げたんだろうし
0627デフォルトの名無しさん垢版2020/03/12(木) 09:37:04.12ID:cdl9Dqe3
防げるわけねーだろ。。
結局低レイヤーの配列のインデックスに演算が必要な場合はunsafeだしな。
そういうところで嘘を表に出さないようなことやってるから信用がない。
0630デフォルトの名無しさん垢版2020/03/12(木) 10:35:24.94ID:pkrQoC1s
C++はユーザーに数十年間検査され欠陥が大量に見つかったがほとんど直さない
Rustはそもそも検査されてないので直すところもない

あとは正しい方を選ぶだけの簡単な作業
0631デフォルトの名無しさん垢版2020/03/12(木) 10:57:04.90ID:2DPQopCV
欠陥は誰かが騒ぐからググればすぐに出てくるので
実害はない。そこを避ければいいだけ。
普通、迂回策も書いてある。
0638デフォルトの名無しさん垢版2020/03/13(金) 17:50:55.96ID:uMGbn/tA
インフラに疎いんだけど、
デプロイ(CD)ってどのファイル転送プロトコル使われることが多いの?
0639デフォルトの名無しさん垢版2020/03/13(金) 18:07:48.25ID:jvKiI+vV
scp
0640デフォルトの名無しさん垢版2020/03/15(日) 22:18:17.86ID:gNXlAxhx
GoogleのPWA推しはなんなんや……
File APIじゃサンドボックスからファイルシステム一切アクセスできない
試験運用中のNative File System API試したらinput type=“file”とできることかわらなくてマジクソ
パスすら取得できないって始まる前から終わってますやん
PWAとかいうその幻想をぶち殺す
0641デフォルトの名無しさん垢版2020/03/16(月) 03:04:15.00ID:9SLGD+wr
ローカルファイルをやめて全部サーバーにおかせようって魂胆
ま、クロウムブックだとかグーグルのネットストレージサービスの促進には役だつわな
当然、巨大ファイルをしょっちゅうガリガリやるようなアプリにはまるで使えない
0642デフォルトの名無しさん垢版2020/03/16(月) 07:49:03.33ID:IojLJcYy
ウェブ、ローカルストレージ APIとか明らかにiOS/Androidしか考えてないよな
アプリの設定やデータだけキャッシュできればいいならそらそうか……
wasmはブラウザアクセス時にホストからダウンロードして実行とかMSのClickOnceを思い出すわ懐かしい
そしてwasmもサンドボックスの制約から逃れられないから恩恵受けるのゲームだけなんじゃなかろうか
0644デフォルトの名無しさん垢版2020/03/17(火) 01:49:34.03ID:EqYyAGcG
Googleは自分のサービス繁栄のことしか考えてないからな
合理的なエコシステムなんて糞くらえよ
0646デフォルトの名無しさん垢版2020/03/18(水) 10:46:35.92ID:UiixgEyd
betterCという呼称はCに対して失礼だと思う
0647デフォルトの名無しさん垢版2020/03/18(水) 10:46:36.14ID:UiixgEyd
betterCという呼称はCに対して失礼だと思う
0654デフォルトの名無しさん垢版2020/03/18(水) 16:23:14.96ID:0bSESAPE
どこが?
具体的に。
0656デフォルトの名無しさん垢版2020/03/18(水) 16:39:49.24ID:0bSESAPE
>>654
C99 と互換でない C++ の仕様が害悪なのでは?
ボブは訝しんだ
0658デフォルトの名無しさん垢版2020/03/19(木) 03:45:35.82ID:VRFqiqhe
>>622
Rustは、有る意味では普通の「手続き型言語」の枠組みを超えてしまっているため、
通常のプログラミング言語の代わりに使うことはほぼ出来ないことが最大の欠点。
関数言語以外ではどの言語でもほぼ共通である所の変数の代入の概念がRustでは
変更になってしまっている。
0660デフォルトの名無しさん垢版2020/03/19(木) 04:21:11.94ID:VRFqiqhe
>>98
KotlinとSwiftは、それぞれ、ほぼ AndroidとiOS専用なのに対し、DartとFlutterと組み合わせは、マルチプラットフォームであることが違うことは違う。
0661デフォルトの名無しさん垢版2020/03/19(木) 04:23:28.20ID:VRFqiqhe
>>96
Dartは、Javaにも似ているが、初期のころのC++に似ている気がした。
原始的なC++から、型を明示した宣言を省略したような感じ。
C#やSwiftには便利さの点で負けると思うし、確かにJavaにすら負けているかもね。
0662デフォルトの名無しさん垢版2020/03/19(木) 04:29:05.38ID:VRFqiqhe
>>24
Rustは、厳格すぎて余計なことに気を取られたりタイプ量が多すぎてむしろC++より生産性は下がりそうだ。
生産性という意味では、C#やJavaの方が上だろう。
0663デフォルトの名無しさん垢版2020/03/19(木) 04:43:25.86ID:H2D24Ilu
>>659
結局wasmの売りってホストにデプロイされたバイトコードが如何なる環境でもChromium上で実行可能かつネイティブと迫る速度であるってことだからやっぱターゲットはゲームやモバイルアプリなんだよな
そうなると最近アナウンスされたReactNative for Windows/Macとはベクトルが違うからやっぱクロスプラットフォームって幻想だよな
実際アプリもネイティブで書いた方がメンテしやすいからなみんなネイティブで書いてるもんな
0664デフォルトの名無しさん垢版2020/03/19(木) 06:33:09.69ID:I3A3yd/j
それはwasmじゃなくてwasiでやろうとしてることでしょ?
0665デフォルトの名無しさん垢版2020/03/19(木) 12:54:55.70ID:H2D24Ilu
>>664
wasiなんてあるのか知らなかったわサンクス
node.jsでも試験的に実装されてて実際に動作するみたいやな
現状ファイルアクセスだけみたいやがネットワーク接続もできるようになるみたいやしnode.jsでwasiがサポートされてるなら完全なクロスプラットフォームが実現しそうやな
0667デフォルトの名無しさん垢版2020/03/19(木) 13:43:55.40ID:VRFqiqhe
Wasm : ブラウザで動かす。バックエンドのJSのcanvasなどを使うことで
    グラフィックも使え、GUIも可能。原則、nativeファイルシステムが使えない。

wasi : Wasmを使うがブラウザ外で動かし、今のところCUI専用。native ファイル
    システムが使えるので、サーバーサイドの node.jsやJavaの置き換えや
    組み込みに向いているらしい。
0669デフォルトの名無しさん垢版2020/03/19(木) 13:48:24.36ID:MilrfGsk
wasiの変なサイトにアクセスしたら勝手にインストールされて
激重なるの?情報も抜かれる?
0671デフォルトの名無しさん垢版2020/03/19(木) 14:39:21.98ID:VRFqiqhe
>>669
そんなことは無い。
すべてはブラウザのセキュリティーモデルの中で動いているので、
原則的に今までどおりのセキュリティーレベル。
というのは、結局、Wasmで出来ることはJSでできることと変わりが無いため、
JSでどう書いてもできないことは、Wasmでもできないから。
Wasmの大きな利点は、JS以外の言語が使えることで、プログラムが開発し易くなること。
たとえば、JSだと間違いになかなか気づかない箇所でもC++だとコンパイラが発見してくれ、protected属性をつけていれば、他のclassからのアクセス制御なども出来て、保護したい変数に不用意にアクセスできなく出来たりする。
0672デフォルトの名無しさん垢版2020/03/19(木) 15:20:08.64ID:dnKvjYNt
DOS攻撃すると逆にハッカー側がダメージ負う方法ってない?
例えばレスポンスで巨大なファイル送りつけるとか(多分レスポンス受け取らないから意味なさそう)
0673デフォルトの名無しさん垢版2020/03/19(木) 16:26:42.06ID:jGrvpb5b
ネットを利用するとお金がかかるようにすればいいのに
なんでネットすぐタダにしてしまうん
0674デフォルトの名無しさん垢版2020/03/19(木) 16:45:13.38ID:H2D24Ilu
>>668
俺は最新のメタはほぼすべて趣味で調べて自宅でコーディングして試してるで
仕事やとまず言語ですら最新のバージョン触れないから言語やフレームワークの新機能やトレンドはすべてプライベートでないとキャッチアップ不可能
0676デフォルトの名無しさん垢版2020/03/19(木) 17:00:48.35ID:c1m9bpJY
>>673
じつはネットもぜんぜんタダやないんやで
主に広告によって収入を得る仕組みになっとるんや
ただしサービスを受けとる側が提供してる側へ直接払うみたいな
ドストレートな金の流れにはなってへんし、そもそもサービスを
提供してる側が金をもらうようにはなってない事もようあるで
世の中タダのもんなんてあらへんで
0677デフォルトの名無しさん垢版2020/03/19(木) 17:53:08.01ID:hFX+dqhp
>>669
その文脈でwasiはおかしい。wasmかな?
0678◆QZaw55cn4c 垢版2020/03/19(木) 19:35:41.74ID:KTdRY0Ga
>>657
K&R2=C89 で必要にして十分、それ以降は蛇足
0679デフォルトの名無しさん垢版2020/03/19(木) 22:41:13.00ID:i16Q86hT
> というのは、結局、Wasmで出来ることはJSでできることと変わりが無いため、
> JSでどう書いてもできないことは、Wasmでもできないから。

え?
間違ったことは教えちゃダメよーダメダメ🙅‍♂

wasmでしかできないこともあるし、JSでしか出来ないこともあるよ
0680デフォルトの名無しさん垢版2020/03/20(金) 00:11:25.98ID:405ti7Ej
>>679
いや、言語が変えられることと、速度が速いこと以外は、Wasmが
出来ることはJSと完全一致で、JSが出来る範囲の事を超えることは出来ない。
これは絶対。
0681デフォルトの名無しさん垢版2020/03/20(金) 01:17:37.81ID:b2ihZgLg
>>679
>wasmでしかできないこともあるし、JSでしか出来ないこともあるよ

これはそうだけど
セキュリティ観点でJS onlyでは出来ないけど
wasm使えば出来るってことは無いよね?
0682デフォルトの名無しさん垢版2020/03/20(金) 02:27:28.05ID:uULTB4xx
うーん、俺の理解はこんな感じやな
クライアントのwasm対応ブラウザからホストにデプロイされたwasmのバイナリをリクエストしてダウンロードされたバイナリをブラウザで実行。
wasmの実行はブラウザ依存で対応ブラウザさえあれば組込だろうとどんな環境でも実行可能かつ高速なのが魅力。

wasm ←
・CaaS、コンテナみたいなもの。
・wasmは現状ブラウザ標準のFile APIしか使用できないのでネイティブファイルシステムにアクセスできない。
・ChromeではNative File System APIが試験導入されてるが、現状できることはinput type=“file”のFile APIとかわらない(これは試した)。
・各言語で書かれたソースコードをコンパイルして、wasmファイル(ブラウザで実行するバイナリ。プラットフォーム毎にバイナリが作られる)を生成。
・よって基本AOTでJITやインタプリタはない?

wasi ←
・PaaS、仮想マシンみたいなもの。
・wasmから利用できるプラットフォーム毎のネイティブファイルシステムAPIを抽象化した実装。
・wasiの機能・使用方法
→ watからモジュール(ライブラリ)を参照して使用する。
→ wasiを使用して書かれたソースコードをwasi対応バイナリとしてコンパイルする、コンパイルされたファイルはwasmだったりしなかったり。
→ wasmを実行するランタイムでもある。
0683デフォルトの名無しさん垢版2020/03/20(金) 02:35:29.88ID:405ti7Ej
>>682
>・各言語で書かれたソースコードをコンパイルして、wasmファイル(ブラウザで実行するバイナリ。プラットフォーム毎にバイナリが作られる)を生成。
「各言語で書かれたソースコードをコンパイルして、wasmファイルを生成」
の部分は正しいが、
Wasmはプラットフォームごとのバイナリではなく、あらゆるプラットフォームで共通の1つのコードだ。
だから、全く同じ *.wasm が Win/Mac/Linux/Android/iOS で、Wasmに対応したあらゆるブラウザで動作する。
なので、プラットフォームごとにキオンパイルしなおす必要は全くない。

>・よって基本AOTでJITやインタプリタはない?
Wasmは基本的にAOTではあるが、実行段階でさらにJITによってさらにコンパイルされて高速に動作される。
この段階でWasmの形式から、CPUのマシン語の形式に変換されることがある。
また、Wasmにはインタプリタも存在している。
0684デフォルトの名無しさん垢版2020/03/20(金) 05:58:59.54ID:qGV0eoEO
>>680
> 出来ることはJSと完全一致で、JSが出来る範囲の事を超えることは出来ない。
完全一致www
まぁ色々仕様見た方がいいね

>>681
むしろセキュリティ観点からするとJSの方が安全だよ
"そこ"に関しては特別WASMだけが出来ることはないよ
0685デフォルトの名無しさん垢版2020/03/20(金) 11:01:34.93ID:405ti7Ej
>>684
正しく言えば、Wasmでも、画面の見た目、グラフィック、キーボード/マウス/タッチパネルなどの
入出力、IMEなどを使った日本語入力、XHRやfetchなど、File API, native file API,
などはJSを使ってしか出来ないのでJSで出来ないことはWasmでも出来ないことになるので、
「Wasmで出来ることは使える言語と速度を除いてはJSと完全一致」
ということは正しい。
0686デフォルトの名無しさん垢版2020/03/20(金) 17:23:27.50ID:43c15jQs
自己矛盾
0688デフォルトの名無しさん垢版2020/03/22(日) 09:31:45.18ID:zQpJysa3
>>658
>関数言語以外ではどの言語でもほぼ共通である所の変数の代入の概念がRustでは
>変更になってしまっている。
たいへん良いことじゃん?
変更されない変数を後から探してconstを付けて回る工数が削減される、
0689デフォルトの名無しさん垢版2020/03/22(日) 16:15:40.85ID:6GcIkd5x
Rustの所有権や借用の概念は何で今まで他はこうじゃなかったのかと思ってたわ
難しいとか聞いたので構えてたけど、全く何の違和感も無かった
但し書き方が、もうちょい何とか出来なかったのかとは思うが、Rustが難しいのは概念や仕様じゃなくて書式
0690デフォルトの名無しさん垢版2020/03/22(日) 16:48:50.31ID:HvrypJyW
>>689
参照などの書き方に統一感が無いのは、Perl の関数呼び出しにおける参照型を思い出させる。
結局、分けが分からないので、衰退して言ったようだ。
0694デフォルトの名無しさん垢版2020/03/22(日) 22:46:24.47ID:bDl/VAFl
欲求の大体は想像できるけど
ライブラリ等の使用準備はインスタンス駆動よりも
ブロック内に記述/用意したプロパティを言語機能で勝手に読み取り構築してくれるくらいやって欲しいね
機能関数を初めて呼んだ時点でブロック単位最優先のヤツをライブラリに渡してくれるようなの
ブロックの親子関係でマイナスになったら初めてフラグもリセット
0700デフォルトの名無しさん垢版2020/03/23(月) 12:42:49.16ID:e6B2kqQy
rustのhello world 4MBになるけど最小化しようとしたら存外難しくてワロタw
0701デフォルトの名無しさん垢版2020/03/23(月) 14:57:51.21ID:+m59DBar
cargo newしただけの状態をBuildしても143KBなんだが…
Goと間違ったのかな?いや流石に無いか、どういう事なんだ釣か?
0706デフォルトの名無しさん垢版2020/03/23(月) 16:14:33.22ID:QFUl7nfE
本文と関係無いグロ画に悪意をおぼえる
0707デフォルトの名無しさん垢版2020/03/23(月) 18:27:55.44ID:KRdtMR7c
rustにコンストラクタねえ?
コンストラクタに一工夫とか釣りなのかエアプなのか判断に苦しむ
0708デフォルトの名無しさん垢版2020/03/23(月) 18:48:57.41ID:Txpengd8
rustのGC性能ショボすぎワロタwww
0712デフォルトの名無しさん垢版2020/03/25(水) 14:31:56.32ID:2CCp9AcV
公式のリファレンス読んでもRustを使うメリットがわからんのやけどPythonみたいに環境がトータルとして優れてるってことか?
変数を束縛という概念で標準でイミュータブルとして定義されると何が嬉しいんや?constやreadonlyやとあかんのか?
スコープとシャドイーングもクロージャやとあかんのか?有識者からの説明求む
環境やパフォーマンスやなくて言語仕様や機能そのものは個人的にC#が最高やと思うんやけどマイノリティなんかな
0713デフォルトの名無しさん垢版2020/03/25(水) 14:49:34.17ID:VKn2QSTg
Rustのメリットは実行時のパフォーマンスを犠牲にすることなくそこそこモダンで高度に抽象化された言語で書けること
開発効率だけで言えばC#の方が圧倒的に上だし、総合的なROIで見てもRustがC#を上回るケースは現実にはほとんどない
0714デフォルトの名無しさん垢版2020/03/25(水) 15:02:16.86ID:6ULKuSqz
CもC++もDも使ってきたけど最近はPythonばっかり
Pythonが物足りなくてRust覚えようとしてたけど
C#が思いの外良くてそのままC#使ってる
0716デフォルトの名無しさん垢版2020/03/25(水) 16:20:35.23ID:2CCp9AcV
>>713
なるほど、ちゃんと調べてから質問すればよかったわすまんこ
システムプログラミングで使われるC/C++の代替がRust/Goなわけなんやね
調べてて知ったのがRust/Goはtry-catchない仕様なんめっちゃええね
そもそも例外が起きないようにプログラミング書くのに全処理をtry-catchで囲む慣習が個人的にずっと不服やったんよ
そもそも例外も変数で受け取ればええやんてのはほんま納得
Rust/Goでアプリケーション開発できるイージーな環境を誰か構築してほしいな
0717デフォルトの名無しさん垢版2020/03/25(水) 16:26:23.15ID:eUPBV1Bq
PythonのライブラリはCで書く
言語を2つ使うのをやめて1つにするのを狙ってるのがC++やRust

PythonはRubyと競争して勝ってしまった
競争も勝敗もないのがC#やJavaやGo
0718デフォルトの名無しさん垢版2020/03/25(水) 16:51:30.87ID:COJzGufp
>>712
Rustは、例え一部であっても、参照カウンタも GarbageCollection もなしで、メモリ管理を目指そうとしていた。
束縛や借用を使えばStack変数に関してはそれはある程度成功する。
Heapオブジェクトの自動解放に関しては、Uniqueポインタ的な単一参照や参照カウンタ方式を使っている。
がしかし、循環参照してしまうと誰も使ってないHeapメモリーが自動解放されない現象が起きるので、循環参照を避けることはプログラマの責任で行う設計。
0719デフォルトの名無しさん垢版2020/03/25(水) 16:56:54.91ID:COJzGufp
>>718
C/C++では、スタック変数を、関数の呼び出し元へ returnしたり、
引数に返したりすることが出来てしまうが、危険なので絶対やってはならないが、
Rustではそれに関してはコンパイル時にエラーが出るので防げる。
同様に関数の途中のブロックの中だけで有効なブロック変数も、ブロックの
外側にポインタ値を渡してはいけないが、これもRustでは防げる。
0720デフォルトの名無しさん垢版2020/03/25(水) 16:59:17.07ID:COJzGufp
>>716
プログラムのし易さの目的には、Rustは向いていない。
例外を try, catch で囲む以上の面倒くささがあらゆる場面で伴う。
0721デフォルトの名無しさん垢版2020/03/25(水) 17:01:41.23ID:COJzGufp
>>714
Pythonは、RAD系。C#も、RAD系的。
Rustは、RAD系とは正反対で、深く使いこなそうとするとCよりもC++よりもずっと難しい。
0722デフォルトの名無しさん垢版2020/03/25(水) 17:39:26.59ID:COJzGufp
海外のサイトでRustを褒めている人は実際には表面的にしか理解してない。
多くの人の投稿を見ているとC++14などの新しいC++が難しいから嫌になって
その代替としてRustを使いたいと思っている。
また、うたい文句である所の「安全、ガベージコレクターなし、簡単なC統合」
などをそのまま真に受けている。
ところが現実は違う。
C++ですら複雑に感じる人は、Rustで独自のリンクリストを設計することは決して出来ないと予言しておく。
そして、それが出来ない状態でシステム作りするのは、とても危険である。
(C++が難しく感じるプログラマの99.9%は、Rustで、標準のリンクリストを僅かでも作り直すことは出来ないだろう。)
0723デフォルトの名無しさん垢版2020/03/25(水) 17:40:30.68ID:2CCp9AcV
>>720
あーそうなんか残念やな

C#は登場から20年経ってようやくパフォーマンスに舵を切り始めて俺が使うことはないやろけどSystem.Runtime.Intrinsicsなんかもリリースされたから下々にもパフォーマンスを享受できるようにしてほしいわ
個人的にp/invokeをpythonのようにctypes/cdllでみたいに使いやすくしてくれへんもんかなC++/CLIでラッパー書くのしんどすぎる
0727デフォルトの名無しさん垢版2020/03/25(水) 18:05:41.08ID:fCjn9EhQ
>>716
>そもそも例外が起きないようにプログラミング書くのに全処理をtry-catchで囲む慣習が個人的にずっと不服やったんよ

エラーハンドリングの基礎を学んだほうが良さそう
それにRustとGoではエラーハンドリングの機能や考え方は全く違うぞ
0729デフォルトの名無しさん垢版2020/03/25(水) 19:35:02.48ID:3tnofAZc
元請けのトンチキさに縛られる環境なら
RustやPythonの特徴がどうのとか考えるだけ
無駄では
0730デフォルトの名無しさん垢版2020/03/25(水) 19:38:00.42ID:KwM83K9a
Rustをどうしても認めたくない人多いイメージ
海外大手を筆頭に導入が広がりだしてるのは確かなんだが
0732デフォルトの名無しさん垢版2020/03/25(水) 21:17:55.06ID:eNR5PFXP
海外の事例(○○をrustで書き直しました!)はかなりタメになる
rustはいいぞ!なんで使わないの、やくめでしょっていう話は楽しくない

最近だったらDiscordをrustで書き直したって記事が面白かった
https://blog.discordapp.com/why-discord-is-switching-from-go-to-rust-a190bbca2b1f

ただ、こういうリライト記事って基本的に「既にある≒要件がとても固まってるシステム」が対象なので、
試行錯誤しながら正解を探すっていう普通のプログラミングに合うのかは分からないよね
0734デフォルトの名無しさん垢版2020/03/25(水) 23:01:17.38ID:eUPBV1Bq
GCのアルゴリズムはいっぱいある
最も単純な方法では何か困ったからいっぱい作った
0735デフォルトの名無しさん垢版2020/03/25(水) 23:26:28.94ID:6cLcCOlB
ふつう何かを開発するのにGCとか型付けとか
関数型プログラミングとかそんなくだらない事はどーでもいいわけ。

numpyやpandas、数学ライブラが充実してるから
pyを使う
組み込みで機械動かせるからC系を使う
ブラウザはJavaScriptで動作するからJavaScriptを使う
モバイル開発専用の言語だからkotlinやswiftを使う
みんな使ってるからJavaを使う

GoやRustにそれらの専売性がありますか?
ないよね?それを使わざるを得ない状況がないよね?
じゃあ要らないよね。
0741デフォルトの名無しさん垢版2020/03/26(木) 00:42:11.16ID:Dsy66Brp
サーバーって、ショッピングの Web API サーバーとか?
あの記述力の低さで複雑なドメイン扱える気がしないな
0744デフォルトの名無しさん垢版2020/03/26(木) 01:58:57.97ID:Gvi6EW7Y
>>743
まあ確かにGoは技術力いるかもな
俺は技術力高い所がよく使ってるのは重要な指針になると思ってるんだけど、君はそう思わないタイプ?
0745デフォルトの名無しさん垢版2020/03/26(木) 02:21:23.83ID:Dsy66Brp
記述力の低さを指摘したら
いっぱい使ってるし!とマジギレされたでござる

Go信者こわ
0746デフォルトの名無しさん垢版2020/03/26(木) 02:24:54.88ID:mwwmClxG
そりゃphpだってfacebookは使ってるし、javaだってgoogleが使ってるわけで
そんなことで判断するのは流石にどうかと思うわ。
0747デフォルトの名無しさん垢版2020/03/26(木) 02:34:21.84ID:SQR24f3M
バックエンドは長いスパンで運用しながら継続的に開発していくわけだが、
そういった状況において言語の一定以上の機能性は開発生産性にほとんど寄与しないんだよね
Googleはプログラマの感情を無視して露骨にそれを主張してるから反感を買いがちだけど、
MSなんかも統計的にはその事実はよく理解してるはず
0748デフォルトの名無しさん垢版2020/03/26(木) 06:12:20.75ID:2gvNqqTc
頑固な善人より柔軟な悪人の方が機能性があると思うやんか
でも一定以下に抑えることができなくなって悪は滅ぶ
この主張が感情ではなく統計的事実だとすると滅ぶのは誰なのか
0749デフォルトの名無しさん垢版2020/03/26(木) 07:13:45.73ID:xf2sP63i
MicrosoftがProject Veronaという主要言語の研究でRustを高く評価してるな
Windowsの低水準コンポーネントをRustで書いて試用中らしい

>>732
同意、ぶっちゃけ実際の開発って仕様決まってようがRADでコアを作って形になったらそのままスケールしていくって感じが個人的にほとんどなんだよな
とにかく効率的なメタで開発したプログラムをパフォーマンスやメンテがボトルネックだから性能を追求と保守性で最適なメタでリライトしようぜって感じでRust採用って流れじゃなかろうか
0750デフォルトの名無しさん垢版2020/03/26(木) 07:54:21.26ID:Sq/f/q6k
Rustだから効率悪いとは思わんが
0751デフォルトの名無しさん垢版2020/03/26(木) 08:37:28.63ID:mwwmClxG
>>747
それはそう。
結局組織の問題だったりするわけだがプログラマとしては面白くない結論なんだろうっていうのはよくわかる。
0752デフォルトの名無しさん垢版2020/03/26(木) 10:50:56.35ID:2gvNqqTc
人類は感情を煽る技術ばっかり進歩させて
逆に感情を抑えるノウハウをほとんど持ってない
0755デフォルトの名無しさん垢版2020/03/26(木) 19:59:58.20ID:1Pvv4AyX
>>749
後半の文節に関して、Webサービスの世界における究極のRADである Ruby on Rails の
誕生から現在に至るストーリー展開とのデジャブーを感じる
たとえば Twitter は、Rails でスタートアップして「コアをスケールアップ」していくことで
ビジネス的な成功を収め、同時に「パフォーマンスやメンテがボトルネック」だから
内部のコンポーネントを Scala/Java へ移行している

Rust に関して言えば、必須の低水準言語は C であることは変えようが無いという前提のもとで、
それよりやや高水準をターゲットとしている C++ のシェア侵食が起こり得ると考える

それはWebサービスの世界で Rails が PHP の牙城に食い込んでいった歴史の再現だ
もちろん昔も今も PHP の絶対的王者たる地位に揺るぎがあろうはずもなく、
一部の熱狂者たちが Rails のシェアを支えているに過ぎないという事実と重なる

同様に、Rust が一定の認知を得て普及する可能性は高いと同時に、
すべての C++/Java/C# プロジェクトが Rust に置き換わるバラ色の未来もまた存在しないだろう
0757デフォルトの名無しさん垢版2020/03/26(木) 21:18:48.36ID:5AygTm0o
>>755
まず「文節」を辞書で引こう。
小学校の国語の授業寝てたの?www
0758デフォルトの名無しさん垢版2020/03/26(木) 21:59:58.46ID:3AJePqna
PHPが絶対的王者ってマジ?
俺の世界ではRubyが王者でそのあとをGoが追ってて、PHPはゴリ押ししてようやく採用されるかどうかなんだが
0760デフォルトの名無しさん垢版2020/03/26(木) 22:26:38.95ID:Dsy66Brp
PHPなんてもう名前すら聞かなくなった
あんなガイジ言語ありがたがってる程度の底辺とは付き合いがないからかもしれんが
0762デフォルトの名無しさん垢版2020/03/26(木) 22:30:42.51ID:MxLRauFN
駄目なのはポエムじゃなくて登場人物を出すやつだ
プログラムは無人で動くべきなんだよ
0764デフォルトの名無しさん垢版2020/03/26(木) 23:26:23.33ID:Dsy66Brp
>>763
転職して型無しゲェジのウンポコペチプー糞まみれになって気が狂って
最後はコロナに罹って電車に飛び込む話か
0766デフォルトの名無しさん垢版2020/03/27(金) 00:20:14.31ID:GUIIkCWN
PHPは言語設計力0のガイジが作って、さらに機能を付け足していって更にガイジ言語になり、IT界でSIerが一番権力を持つガイジ国家日本で文系ガイジが動的なHTMLを書けるというだけで採用し、変えられずに今に至る
証拠にメルカリや最近のWeb系企業はPHPではモダンな言語でWebを作っている

でも俺はGoは好きじゃないけど
0767デフォルトの名無しさん垢版2020/03/27(金) 00:20:58.83ID:GUIIkCWN
タイポ
PHPではなくモダンな言語でWebを作っている
0768◆QZaw55cn4c 垢版2020/03/27(金) 00:35:13.11ID:HpnI1SG8
>>766
>PHPではモダンな言語でWebを作っている
言ってることが矛盾していませんか?
0771デフォルトの名無しさん垢版2020/03/27(金) 00:44:19.56ID:Oj6vZ37J
しかしPHPで金儲けできてるなら文句は言いづらい
金儲けして何が悪いの?っていう魔法の言葉があるから
0773デフォルトの名無しさん垢版2020/03/27(金) 02:22:06.66ID:GUIIkCWN
PHPに縛られてるガイジどもが喚くな
0774デフォルトの名無しさん垢版2020/03/27(金) 02:25:32.34ID:hLiiQ+aA
とりあえずPHPで作ってスタートアップしてからGoに置き換えていくのが流行ってるよな
0779デフォルトの名無しさん垢版2020/03/27(金) 05:12:38.14ID:cwhPeqJj
雑食系エンジニアサロン勝又健太氏を思いっきり論破してみた
https://www.youtube.com/watch?v=td6cX0en4oI

初心者に、Rails を推奨する、雑食系エンジニア・KENTA を批判して、
Java, PHP を勧める、モローに対して、批判殺到w

PHP は、プログラマー向けの本がほとんどない。
WordPress の説明本ばかりだから、上達しない

Java は、数倍の勉強時間が掛かる。
人間の成長率を、同じ勉強時間で比べていないだろ

それと雇用形態が異なる。
Java は5大ITer を頂点とする、使い捨て奴隷・土方系。
建設業と同じで、1社経由するごとに、3割抜かれる

時給5千円 * 180時間 = 1人月90万円でも、
元請けが30万円、1元請けが20万円、2元請けが10万円と抜いていく

COBOL, Java, VB というのが3大土方言語。
でも銀行の更新時期が過ぎたから、仕事が無くなった

業界調査すると、ブラック過ぎて、他人に勧められない。
一方、5大ITerは、社員の給料を高くしたいから、都合のよい使い捨ての奴隷が欲しい
0780デフォルトの名無しさん垢版2020/03/27(金) 07:15:34.06ID:7fKLUCpq
rustな。。本当にバリバリc++書いてきて、
しかも慎重にコーディングする優秀な奴らばっかのチームなら機能するんじゃないかという気はしてきた。
まあそんなチームは日本にはないだろうなという気もする。
てか世界でもほとんどないんじゃないかな。
GAFAでも優秀なごく限られた一部だけだろう。
んでもってそういうところならc++でも十分な品質のものが書けるっていうね。。
0784デフォルトの名無しさん垢版2020/03/27(金) 11:42:41.50ID:cYTeLRjQ
>>780
むしろ逆だわ
Rustが書けない(メモリの所有権、借用、ライフタイムの概念が理解できない)プログラマが
まともなC++のコードを書けるとは思えない
Rustはプログラマが間違えたらコンパイラが誤りを指摘してくれるが
C++はプログラマが間違えても何もしてくれないからほっとくと脆弱性まみれのプログラムになる
0785デフォルトの名無しさん垢版2020/03/27(金) 11:46:55.08ID:AdoNhS+g
でも動かないじゃん
動くPHPと
動かないRust

ビジネスチャンスを鷲掴むのはどっちだと思う?w
0786デフォルトの名無しさん垢版2020/03/27(金) 11:51:36.63ID:7fKLUCpq
>Rustが書けない(メモリの所有権、借用、ライフタイムの概念が理解できない)プログラマが
>まともなC++のコードを書けるとは思えない
これは正しいと思うけど、そもそもc++をまともに書ける奴は少ないし、
c++をまともに書けるやつがrustのコンパイルチェックで
得られる恩恵ってやつは君が思うほどおおきくないってのが俺個人の意見だわ。
それでもってランタイムの品質、ハードウェアに対する対応なんかを考えた場合、
c++のが上になるっていうことが考慮から外れているように見受けられる。
0788デフォルトの名無しさん垢版2020/03/27(金) 12:10:19.43ID:VaiYZBCN
>>784
本来、変数とは読んで字のごとく「変化する数」なわけだから
本質的に mutable(変更可能な)なもの。
にも関わらずRustでは、変更可能な変数には mut を指定しなければならないので
確率論的にはソースコードの量が増えてしまうことになる。
0789デフォルトの名無しさん垢版2020/03/27(金) 12:14:59.14ID:VaiYZBCN
>>788
さらにいえば、Rustでは、型を明示する場合は、
let a:TYPE = xxx; // (1), TYPE は xxx の型
と書くが、:TYPE を省略して、
let a = xxx; // (2)
のようにもaの型を書くと自動推論する機能を持っている。
C++にもあるバージョンから auto などでこれと同様の機能が入って、
一見便利だが、型がわかりにくくて問題にある可能性がある。
逆に、C++ だと型を明示する場合には、
TYPE a = xxx; // (3)
と(1)に比べて短く書けることも重要。
Rustだと:TYPEを書くのが面倒なために、(2)ように省略してしまう
人が続出する可能性がある。
これは問題だ。
0790デフォルトの名無しさん垢版2020/03/27(金) 12:15:48.45ID:VaiYZBCN
>>789
誤:のようにもaの型を書くと自動推論する機能を持っている。
正:のように型を自動推論する機能を持っている。
0793デフォルトの名無しさん垢版2020/03/27(金) 12:23:58.46ID:hY05skqC
Rustだと所有権とかでエラーになる部分も警告で留めてくれる+警告潰せばだいたい安全、みたいなのがほすぃ(´・ω・`)
0794デフォルトの名無しさん垢版2020/03/27(金) 12:27:10.00ID:VaiYZBCN
大手が採用したとかで一見目立っているが、Google Trends で見る限り
極度の低空飛行で、人気は横ばいよりも下がり気味だ。
0797デフォルトの名無しさん垢版2020/03/27(金) 12:39:35.97ID:VaiYZBCN
>>784
しかし、C++ の場合、new の働きは明確なのに対し、
Rustは、Box::new のコードを見ても、「box」という組み込みキーワードを
使ってしまっているのでそれ以上追う事は出来ず、曖昧さが残る。
C++の場合は、少なくともC++98までだとかなり原始的なレベルまで
やっていることが明確だった。C++11あたりから異常になったが。
0799デフォルトの名無しさん垢版2020/03/27(金) 13:02:00.57ID:3tCJhGUU
>>788,789
俺もRustは指示するわけではないが、問題点として挙げるのがほんのわずかなタイプ数だなんて、根拠としては弱いというかどうでも良い話だろ
0800デフォルトの名無しさん垢版2020/03/27(金) 13:07:03.48ID:VaiYZBCN
>>799
C++が使いこなせる程度の適正があるプログラマにとっては、タイプ量の増加
は苦痛以外の何者でもない。
彼らは特にC++でバグに悩まされたりしてるわけじゃないのだから。
0801デフォルトの名無しさん垢版2020/03/27(金) 13:44:45.27ID:ShoDX97I
タイプ量なんかより大事なことがあるって分かる奴が
Rustをつくりだして、または使ってるんだろうなw
0803デフォルトの名無しさん垢版2020/03/27(金) 14:09:16.05ID:VaiYZBCN
タイプ量はとても大事だ。
頭が賢ければ、タイプする体力と時間が不要なのだよ。
頭が悪い人は、体力と時間で勝負するしかないからタイプ量が多い言語を使うしかない。
0805デフォルトの名無しさん垢版2020/03/27(金) 14:42:32.41ID:VaiYZBCN
let a:i32 = x;

int a = x;
なら、後者は短いのに分かり易い。コンパイラに伝達される情報は同じだし。
0806デフォルトの名無しさん垢版2020/03/27(金) 14:54:06.18ID:VaiYZBCN
Rustで、
let a = x; //(1)

let a:i32 = x; //(2)
なら、そもそもコンパイラに伝わる情報が違い、後者は記述量が多くてもバグの少ないプログラミングに役立つ。
後から読み直しても a を i32 型にしたいプログラマの意図が分かって分かり易い。
だから、記述量が増えても後者は良い面を持つ。
ところが、Cで
int a = x; //(3)
と書けば、Rustの(2)と全く同じ情報がコンパイラに伝わり、エラーチェックのレベルも同程度だから、
Cは、少ない記述量で同じ事ができると言える。

(1)と(2)の違いと、(2)と(3)の違いを混同してはならない。
前者は記述量が多くなっても安全性向上という意味で意味が有るのに対し、後者は、書くのが長くなるだけで全く意味が無いのだから。
0808デフォルトの名無しさん垢版2020/03/27(金) 15:01:10.96ID:I9gCjo9A
型推論て今時どの言語にもあるんじゃね
GoやJavaにさえある
つまり問題視する方がお菓子い
0809デフォルトの名無しさん垢版2020/03/27(金) 15:11:19.11ID:VaiYZBCN
型推論することで安全性が駄目になるから、Cでは型を明示して宣言するようになったんだ。
その哲学を壊す言語が増えてきているだけ。
0811デフォルトの名無しさん垢版2020/03/27(金) 15:17:28.55ID:E0iV7Jya
型の選択みたいな重要なことをコンピューター任せにしてしまって良いのでしょうか?!
0813デフォルトの名無しさん垢版2020/03/27(金) 15:19:37.09ID:E0iV7Jya
Cも暗黙の型変換があるからイクナイ
高度な型推論はいずれチューリング完全性を有して機械的手続きでは御しきれなくなる
そして人類が機械でないという証拠は今のところ無い
0814デフォルトの名無しさん垢版2020/03/27(金) 15:42:26.54ID:VaiYZBCN
>>808
型推論は、C++は template が深くて複雑すぎて、templateを使っているときに、
人間側が結果や変数の本当の型が分からなくなってきたので、しょうがなく
最近になって導入された。
もしこれをちゃんと手で書くと複雑で長い型になり過ぎる。
templateはソースがあるが読んでも複雑すぎて多くのC++プログラマには型が分からない。
また、templateはRADのような簡単に機能を使いたいときに使えるように設計された
ものなのに、型が難しすぎてわからないということは本末転倒であった。
そのためにしょうがなく型推論できる機能がC++に導入された。
0816デフォルトの名無しさん垢版2020/03/27(金) 15:46:21.71ID:VaiYZBCN
>>812
そうじゃない。
nullable指定を明示的に行うことは良いと思うが、
nullを絶対悪として、NullObjectとPolymorphismで対応することで
nullを完全排除しようとしている一部の人に対して反論していただけだ。
0817デフォルトの名無しさん垢版2020/03/27(金) 15:53:09.55ID:Oj6vZ37J
結局これ「型」の宣伝だからね
この謎のゴリ押しにタダ乗りして得をしてるのはRustも同じ
0818デフォルトの名無しさん垢版2020/03/27(金) 15:58:44.21ID:6mKroLAz
let a = 1;
型無し数値リテラルはデフォルトでi32でintと変わらないし数値リテラルで変えたい時は明示的にする
だから
long int a = 1;
より
let a = 1i64;
または
let a: i64 = 1;
の方がデフォルト以外の型が現れるかつタイプ数も少ない

こういうやつらはなんで後置型指定でletで変数宣言するか意図を理解してない
そもそもNull最高とか言ってるやつらに構っても意味ないな
一生C/C++とかJava、PHP、VB触ってろよ無能
0819デフォルトの名無しさん垢版2020/03/27(金) 16:00:21.15ID:VaiYZBCN
>>818
違う。C/C++では、
long int a = 1;
とも書けるが、typedefやusingなどを使えば、
i64 a = 1;
と非常に古くから書ける。
0821デフォルトの名無しさん垢版2020/03/27(金) 16:06:14.83ID:gM1jKcLP
>>806
型推論できるのは冗長性があるからで
冗長性にもいい面悪い面がある
悪い面は変更に弱くなる
あっちかえたらこっちもってね
rustはそのへんバランスとろうとしている
効果はさておき
そのへんまで考察しないと浅いよ
0822デフォルトの名無しさん垢版2020/03/27(金) 16:10:41.99ID:sMse3dA+
>>819
普段C++触るけど同じ型指定なのに二通りの書き方あるのはC++の悪いところだと思う
Cの資産引き継ごうとしててC++特有のカオスによりしてる
0823デフォルトの名無しさん垢版2020/03/27(金) 16:15:28.13ID:9RtDMjhb
C/C++ は typedef した型を区別出来れば良かったのにな
0824デフォルトの名無しさん垢版2020/03/27(金) 18:30:43.63ID:E0iV7Jya
別のclasssにすれば区別できるお、
intと同じ振る舞いをするがintと区別されるclass、みたいなやつは必要に駆られてたまに作る
0825デフォルトの名無しさん垢版2020/03/27(金) 19:41:47.93ID:1SbgdhCL
C++は最悪templateで筋肉解決できるけどCでtypedefを別の型にしちゃうとインターフェイス相応のものもderiveマクロ相応のものもそもそもないし、組み込み型のオペレーター群を指定する方法もないから記述がべろべろになってしまうんだよな
C++はそれと統一性をもたせざるを得なかったから現状がある
良しか悪しきかは知らん
0826デフォルトの名無しさん垢版2020/03/27(金) 20:40:39.66ID:t91Qh+gU
型なんて屁みたいなもんでガチャガチャ言ってる入口さん
どんだけ効率的に書けて実行出来るか焦点はforeach と食わすリストよ
動的なリストでも分岐無くすとかキャッシュ乗り鬼効率な凄いのをくれ
0827デフォルトの名無しさん垢版2020/03/27(金) 21:51:32.40ID:vVxM6cgA
その屁みたいなもんが無くなったらNumPyやCythonの無いPythonのようなもので
それはもうウンコやん
0828デフォルトの名無しさん垢版2020/03/27(金) 22:51:32.05ID:YevT+Fte
phpはシンタックスがゴミ
(そもそもなんだよ $ -> => って...)
パッケージ管理もゴミ
ログ出力の見やすさもデバッグのしやすさもゴミ
バージョン乱立
フレームワーク乱立
土台の言語仕様自体がゴミなの棚に上げて
コーディング規約の強要
やることなすこと全部他言語の猿真似
動的片付けの癖にプリミティブ型がメソッドや属性すら
持ってない
JavaやRailsやJavaScriptはいい加減糞PHPを
著作権侵害で訴えろや
消えうせろ、潰れちまえパクリウンコゴミ溜め言語が
0830デフォルトの名無しさん垢版2020/03/27(金) 23:19:21.19ID:h10m8k5F
Rubyは

次世代の日本を担う素晴らしい言語


Railsは、流行りのWebサイトでほとんど使われてる。

Qiitaも、Rails
最近流行ってた、質問箱も、Rails


雇われから脱出し、マックザッカバーグを目指すならRails一択!!!!!!!
0831デフォルトの名無しさん垢版2020/03/27(金) 23:52:10.33ID:oRj/lH5B
phpもそうだしエクセルもそうなんだけど、濫用するヤツが増えると悪評が一気に増える
もしかしたらm4がphp並みに嫌われる世界もあったかもしれないと思う
言語の適用範囲を高めるためには、抽象度の高い概念を基本とした方が良い。できるなら数学的に議論可能なレベルで
0832デフォルトの名無しさん垢版2020/03/28(土) 00:26:31.23ID:UNB7xn0N
マックザッカーバーグを目指すから、
Facebookに倣ってPHPにするは!
0834デフォルトの名無しさん垢版2020/03/28(土) 02:26:30.25ID:7+pamnWR
なんでReact??
そもそもフロント技術だし、しかもフレームワークだし、ベースがJSだからPHPと全然違う
PHPは糞言語なのは間違いないけど論点違うだろ
0836デフォルトの名無しさん垢版2020/03/28(土) 03:00:20.11ID:7+pamnWR
じゃあ尚更PHPとの比較は外した方がいいな
関数型、immutableってJSがESで取り込んでいった方針だから
0838デフォルトの名無しさん垢版2020/03/28(土) 03:39:20.77ID:UNB7xn0N
ちなみにザッカーバーグのfacebookはrubyもrailsも全く関係ない。
安定のrubyガイジ妄想クオリティ。
0839デフォルトの名無しさん垢版2020/03/28(土) 04:46:49.21ID:N90Naszz
Railsで作られたサイトは、山ほどあるけど、Laravelで作られた有名なサイトは、少ない。

というか、見たことない。

Laravel使いは、誰も使わないサービスを量産してお金を稼ぐ負の存在。。。!?


技術だけじゃなく、ビジネスで勝負したいならRails一択!!!!!
0843デフォルトの名無しさん垢版2020/03/29(日) 11:04:58.76ID:IJ+/NVut
Goだとクリティカルになる場合だけRustを使う、あとは面倒なだけだから(マークアップ以外は)絶滅して無問題、わりとマジで
0845デフォルトの名無しさん垢版2020/03/29(日) 15:19:30.65ID:Kzf4aDfw
>>844
Wasmはマシン語に相当するものなので、Wasm自体には使用言語に関する混合に関して何の制限も無い。
ただし、nativeアプリの場合と同じで、C言語の関数を通じてお互いに呼び出しあうなどは必要。
なお、今のところ、最低限マシン語とC言語の仕組みに関して知識がないと難しい。
(最低、アドレスやポインタについての理解がいる。)
0846デフォルトの名無しさん垢版2020/03/29(日) 15:27:11.95ID:Kzf4aDfw
>>845
例えば、LLVMをバックエンドに持つコンパイラであって、LLVMの中の
%struct.XXXX のアラインメントのとり方が同じであって、かつ、
export、importする関数がC言語のインターフェースを持っているならば、
Wasm用のリンカでリンクが可能。

この条件を満たさない場合、リンクするのは難しいが、以下のようにすれば、
実行段階でお互いに関数を呼び出しあうことが出来る。
・それぞれの言語処理系でリンクを行って、*.wasm ファイルを作る。
 これらは、「Module」と呼ばれる。
・ModuleをWasmとして機能させるには、JSでInstace化を行う。
・この際に、それぞれの関数名を import すれば、お互いに関数を呼び出しあうことが可能。
・この場合、文字列や配列の様なものにアクセスし合いたい場合、ポインタ値がJSレベルでは
 単なる整数値になるので、それを、Memory と呼ばれる線形メモリーの ArrayBufferの
 アドレス値とすることで、可能。
0848デフォルトの名無しさん垢版2020/03/29(日) 21:30:38.73ID:aoCWY+mA
go
0850デフォルトの名無しさん垢版2020/03/29(日) 21:33:38.94ID:AoSt3bhf
>>847
PureScript
0853デフォルトの名無しさん垢版2020/03/29(日) 21:51:55.62ID:AoSt3bhf
そらそうやろ
何個言語あってプログラマ何人おると思ってるねん
0857デフォルトの名無しさん垢版2020/03/29(日) 23:23:25.57ID:AoSt3bhf
TypeScriptで質問なんだけど、全く新しい型を導入する方法ってあるのかな?
構文がわからないから疑似コードで書くけど、

typedef X; // Xという新しい型を定義

function makeX<T> (t T): X { /* ... */ }

// makeXで作られた値以外を渡したらいつもコンパイルエラー
function soSomethingWithX( x: X ) :void { /* ... */ }

こういうことがしたいんだけど…
0858デフォルトの名無しさん垢版2020/03/29(日) 23:53:44.28ID:Erzf/uFl
TypeScript は構造的部分型だから無理

type Nekko = {
name: string
age: number
}

type Inu = {
name: string
age: number
}

これらは同じ扱いになる
っていう話?

それとも makeX 以外で X を作れなくしたいという話?
別に X を満たせば、 makeX 以外が X 作ってもよくない?
makeX が作った X と、makeX 以外が作った X が別物なのであれば、
それらは別の型だろう
0861デフォルトの名無しさん垢版2020/03/30(月) 00:15:47.42ID:byCSvntg
>>847
erlang かな
むしろ全て機能を並列処理で書くしか無い割り切りというか
0862デフォルトの名無しさん垢版2020/03/30(月) 00:42:47.60ID:Oymj8mf6
>>847
スクリプト言語ではないが、GPGPU 用のC言語に似た言語は、そもそも
最初から並列処理を前提にしている。
0863デフォルトの名無しさん垢版2020/03/30(月) 01:02:40.38ID:DOS6yDxg
>>860
プロパティが一致しなければ別の型になるので、
piotrwitek/utility-types の nominal type 使うなどして、自分で識別子を与えればできる
JavaScriptというカオスな言語・膨大な資産を利用するには、仕方ない面もある
0867デフォルトの名無しさん垢版2020/03/30(月) 21:09:02.33ID:08TDMd3Q
>>864
やっぱりPureScriptでAffがナンバーワン!
0868デフォルトの名無しさん垢版2020/03/30(月) 21:15:44.17ID:kgJURof2
いや文法がどうとかじゃなくて、データを一切共有しないアクターモデル自体がね。
0870デフォルトの名無しさん垢版2020/03/30(月) 23:41:35.89ID:mSBWf3OZ
並列処理は、データベース管理システムで結合したマルチプロセスでほとんどの場合十分だろ、って思ってしまう
局所的な高速化だったらライブラリ使えになっちゃうし
0875デフォルトの名無しさん垢版2020/03/31(火) 11:26:57.93ID:S3VhPMDw
zig/zen/c2にはCの壁は崩せんかなぁ
いい感じではあるけどいい感じから更に上回って採用するほどではないという
0876デフォルトの名無しさん垢版2020/03/31(火) 13:17:16.39ID:OTxurRkT
cの壁崩す前にcの前に散っていった言語の特徴でもまとめておいた方がよっぽど前向きだよ。
0880デフォルトの名無しさん垢版2020/03/31(火) 15:45:01.73ID:54ZUq6ql
極論であると同時に正論でもある稀有な例。
0882デフォルトの名無しさん垢版2020/03/31(火) 16:47:11.45ID:54ZUq6ql
つまりわざわざC以外にする必要性もないわけだね
0887デフォルトの名無しさん垢版2020/03/31(火) 17:40:28.69ID:qnv4SZcB
アセンブリでマウント取る爺様方がだいたい鬼籍に入って次はCでマウント取る爺様方の時代になった感じやね
0888デフォルトの名無しさん垢版2020/03/31(火) 18:01:22.91ID:uDSFrRRV
C#からCのAPI呼ぶとき
構造体とか配列のポインタとか面倒だな・・・
0889デフォルトの名無しさん垢版2020/03/31(火) 18:27:57.93ID:S3VhPMDw
Cベースはむしろマシなんだよほとんどの言語でFFIあるし
問題は処理系依存マシマシのC++ベースAPI/ABI
0890デフォルトの名無しさん垢版2020/03/31(火) 18:58:18.61ID:DEnjdkJH
>>888
C#のFFIはかなり良い方だろ
C側でラッパーを一切書くことなくC#から呼び出せる
何より、トラブルの元になりがちな変なコードジェネレータの類がなくて、宣言した通りに正しく素直に動くってのが素晴らしい
そのストレスフリーさに比べたら、C#側で関数や構造体の宣言を書き直さなきゃいけないのは余裕で受け入れられる冗長性だと思う
0891デフォルトの名無しさん垢版2020/03/31(火) 21:40:41.75ID:OTxurRkT
別にcで書けって話でなくて、cのそういう側面くらい常識として知っとけって
だけなのに、なんかコンプレックス刺激されちゃう奴がいるのな。
0892デフォルトの名無しさん垢版2020/03/31(火) 22:05:04.60ID:HDRrREDo
>>891
C がわかる、てだけでドヤるのも大概だけれども
それよりももっと性質が悪いのは C がわからないコンプをこじらせているやつ
0893デフォルトの名無しさん垢版2020/03/31(火) 22:28:42.75ID:G9etW8qy
次スレは「次世代言語を夢見るレガシー言語労働者達のマウンティング合戦スレ」に改題で
0895デフォルトの名無しさん垢版2020/04/01(水) 17:19:13.73ID:XWi3lCYB
C#はわからん
0896デフォルトの名無しさん垢版2020/04/01(水) 18:46:22.78ID:60SS71wY
ヒカルと店長からこれまで話してこなかった真面目な話があります
https://www.youtube.com/watch?v=WiPoQWJfFt0&;t=900s
全部話します。YouTuberヒカルが生まれるまでの話しと今の本音
https://www.youtube.com/watch?v=97FsyM7G1jw
高校生の自分に教えたいこと
https://www.youtube.com/watch?v=y0SY32zOExc
嫌われながら好きなことで、生きていく「起業家-ヒカル」
https://www.youtube.com/watch?v=OcsN5iD7C-s
【本音対談】これからYouTubeをはじめるあなたへ【DJ社長×ヒカル】
https://www.youtube.com/watch?v=IDL3dLxyPuk
【好きなことで、生きていく】『レペゼン地球-DJ社長-』
https://www.youtube.com/watch?v=PPnbEiXSYM8
0898デフォルトの名無しさん垢版2020/04/02(木) 20:08:57.64ID:SaXsz2/b
標準ライブラリが豊富な言語ってC++, Javaとかになるの?
0899デフォルトの名無しさん垢版2020/04/02(木) 22:35:51.75ID:0tSRYO67
C++は豊富とは言えない。
0901デフォルトの名無しさん垢版2020/04/02(木) 23:17:47.62ID:iuGcEdKM
プログラム板でこのスレしか人いないのほんと草
0903デフォルトの名無しさん垢版2020/04/03(金) 00:01:45.98ID:0E621fjE
.NETも標準ライブラリ豊富だろ
つか、今時スレが言語スレだが言語だけで語る滑稽さ
次世代言語というより、標準ライブラリも含めた次世代環境がほしい
0904デフォルトの名無しさん垢版2020/04/03(金) 00:21:31.40ID:v6FKoEXq
最近の言語はどれも環境そろってるだろ。
適当なインストーラーとライブラリ管理はあるし。
ビルド通らねー糞が!とかもだいぶ減った。
0905デフォルトの名無しさん垢版2020/04/03(金) 00:44:59.65ID:WSo5wZTZ
rustはpythonがらみでエラー出てビルド通らなかった。
本気だして調べる気力もなく、関連ファイル削除して男友達と焼肉食いに行った。
わざわざ男友達と書いたのは、女友達なんかいないからだ。
0909デフォルトの名無しさん垢版2020/04/03(金) 10:41:31.87ID:TFqtSApO
Pythonはいいぞ
Makefileより読みやすく
Python自身のビルドはLLVMのビルドより10倍か100倍速い
0911デフォルトの名無しさん垢版2020/04/03(金) 14:42:39.21ID:Tc814Ws0
型が無いんじゃなくて型を差別してないのさ
どんな型が来ても受け入れるおおらかさがある
0912デフォルトの名無しさん垢版2020/04/03(金) 15:11:10.65ID:v6FKoEXq
動的な型なだけだな。
ネストした構造をループ処理するときなんかは確かに楽なことも多い。
0914デフォルトの名無しさん垢版2020/04/03(金) 15:51:03.27ID:MTkh8ajj
強い動的型付けだし型アノテーションだいぶ充実してきたしでだいぶマシだと思うけどなぁ

弱い動的型付けと同一視するのは誤りの元だし、漸進的型付けの存在を無視するのもまた評価を誤りかねないですよ
0915デフォルトの名無しさん垢版2020/04/03(金) 16:37:43.22ID:UYNPUerC
Pythonの型アノテーションは実際には全くと言っても差し支えないほど使われていないから無視して問題ない
そろそろ後付け静的型の代表的成功例であるTypeScriptと何が違ったのかを真剣に議論すべき時期にきてる
0919デフォルトの名無しさん垢版2020/04/03(金) 18:10:28.37ID:VVxcL9Mv
>>902
C#は多いけど標準かって言われるとな・・・
C/C++も「標準」に拘ると何もできないω
0921デフォルトの名無しさん垢版2020/04/03(金) 22:20:48.78ID:bCeKFD21
動的だと、神関数が、作れるからオススメ。

func add_god(a,b){
return a + b
}

add_god(1,2)
add_god("a","b")
add_god(1,"a")


神関数、があれば、コードの削減が可能!!!!!!!!!
ノーコード時代には動的型付け言語一択!!!!!!!!
0923デフォルトの名無しさん垢版2020/04/03(金) 23:39:58.52ID:b0rZIsH6
ガチのマジで型無し糞言語の良さがわからん
死ねとまでは言わないが生まれてこなければよかったのに
0925デフォルトの名無しさん垢版2020/04/04(土) 01:01:37.87ID:ImIgGAA9
何回言われても直す気がないからもう悪意だと認識してるけど、動的型付けと型なしは全く別のものとしてそもそも存在してるので、動的型付けを型なしと呼びまた強い型付けと弱い型付けの区別を無視する限りこの議論が有意義に進むことはないよ
0927デフォルトの名無しさん垢版2020/04/04(土) 01:04:40.59ID:PddOPzm8
型があれば静的解析に有効というのは間違い無いのだが
静的解析すれば全てのバグを取り除けるというのは間違い
0928デフォルトの名無しさん垢版2020/04/04(土) 01:34:09.53ID:ezNPGdHf
> 静的解析すれば全てのバグを取り除けるというのは間違い

そもそもそんな主張誰もしていない
0929デフォルトの名無しさん垢版2020/04/04(土) 02:58:03.09ID:bmDmb45p
スクリプト界隈もlintから始まってflowだTypeScriptだ型定義は素晴らしい!静的型付けバンザイ!
とかあれだけ動的型付け素晴らしいからの静的型付け面倒臭いとかディスッといてこの状況は大草原ですわ
まぁ何事もトレードオフだからケースバイケースで使い分ければいいんだが
今頃ブレイクスルーだなんだと大騒ぎなのは滑稽ですな
js界隈も結局サーバサイドレンダリングに回帰してるしファッションや音楽と同じで10〜20年スパンでサイクルすんのかね
0930デフォルトの名無しさん垢版2020/04/04(土) 04:34:22.45ID:aJleCvsu
JSを本業にしてる層って最近の若者で学生時代にちょっと触り始めた生意気なガキが多いから気にしない方が健全
0931デフォルトの名無しさん垢版2020/04/04(土) 07:59:21.83ID:ImIgGAA9
CのunionとかC++のオブジェクトスライシングの話を見てたら型が無いからクソみたいな言説は発生しないはずなんだがな……

型があっても言語としての使い方がクソならクソだし、静的解析のないLLだからってランタイムにきちんと型エラー吐いてくれるものが比較的マシという評価になるのは間違いないでしょ

デジタルな分野扱ってるからって判断までI/Oにするもんじゃない
0933デフォルトの名無しさん垢版2020/04/04(土) 09:42:25.07ID:BgK/PXFy
>>932
君は >>921 の関数に、整数、小数、文字列、オブジェクト、真偽値、日付型・・・
たくさんの引数を与えて
一生懸命テストを書くのだろうな

それは素晴らしいことだと思うよ
感動で涙がで、でますよ
0936デフォルトの名無しさん垢版2020/04/04(土) 09:50:52.18ID:BgK/PXFy
それともコメントに、
この引数は整数でございます。小数、文字列、オブジェクト、真偽値、日付型・・・は教育によろしくないので与えないでいただけますと幸い至極でございます。
とでも一生懸命書くのかな??

それでIDEの静的解析に警告を受けたら
「やっぱり型無し糞言語でも安全!!型はいらない!!!」
とか言うのかな

あれっw
0940デフォルトの名無しさん垢版2020/04/04(土) 11:05:52.17ID:L/BdUORC
逆に静的型付けの何がいいのか知りたい
JavaScriptやpyなんか連想配列や辞書
定義するのもコンソール出力もめっちゃ便利やぞ
コンパイルエラーの手間もないしめっちゃデバッグが楽
0942デフォルトの名無しさん垢版2020/04/04(土) 11:46:08.97ID:nZpdiFMX
// この関数を使えばなんでもできます
func god(args...){}

これだけで基幹システム作ったわ
1年掛かる工数を3日に短縮できる動的言語ってやっぱ神だわ
0945デフォルトの名無しさん垢版2020/04/04(土) 13:09:18.66ID:XKUUvXNa
public class HelloWorld {
public static void main(String[] args) {
System.out.println("hello, world");
}
}


やっぱJavaだわ
記述量が多いから努力した気になれるし成長した気にもなれる
静的型付けだから動的野郎にもマウント取れるし
昔ながらの大企業でよく使われてるから日本の伝統も感じられるし
今後50年は食いっぱぐれないし
Oracleに転職できるかもしれない
0948デフォルトの名無しさん垢版2020/04/04(土) 14:40:47.29ID:4+4qlucB
英語圏の文化で面白いのがプログラムしかない
これが無くなったら英語自体がオワコン
0949デフォルトの名無しさん垢版2020/04/04(土) 17:38:57.41ID:VsggCgGE
>>941
動的派の書くテストは正常系を一発通すだけのものが多くて、あれでテストちゃんと書いてますと言われても首を傾げてしまう
動的型のコードがデグレで動かなくなるのは日常茶飯事であるし、そもそも最初から全く動かないウンコであることも珍しくない
だから最低でも変更の度に自動テストで一度動しておけば品質は大幅に上がるのだが、とはいえ血便が下痢便になる程度
一方、静的型はプログラマの品質に対する意識の高さや静的型検査の恩恵のため、動かすだけのテストにはあまり意味がない
起こりうる様々なケースを試したり挙動の変更を厳密に監視したりと、静的型においては自動テストに求められる基準は遥かに高くなる
0950デフォルトの名無しさん垢版2020/04/04(土) 17:54:20.92ID:f2T6dYaQ
>>933のいうとおりだな。人間どうミスするかわからんから、
整数、少数..本来は全部やるべきだな

エラーの原因の大半は人間のちょっとしたミスだからな

>>934は勝手に都合のいい解釈でそういうテスト省こうとしてるだけやんw
0951デフォルトの名無しさん垢版2020/04/04(土) 17:57:18.65ID:j3yAmUj/
過激派静的言語マンってミスが一切許されない職場で働いてそう

動的だと一週間で終わるものを三ヶ月ぐらい掛けて実装してそう
0953デフォルトの名無しさん垢版2020/04/04(土) 18:06:51.89ID:ebeS0Dvl
>>951
型無し糞言語脳って、型チェックがあればそもそも発生しないバグのチェックに何日費やしてるんだろうな

静的型だと0秒で終わるバグを三ヶ月ぐらい掛けて修正してそう
0954デフォルトの名無しさん垢版2020/04/04(土) 19:42:07.40ID:ebMvcEKD
ワイ「この作業、手動でやるとめんどいしpythonで自動化するかぁ」

型おじさん「……型は?」

ワイ「え?」

型おじさん「簡単なスクリプトだからって舐めてない?引数とかに色んな型が入ること想定してる?」

ワイ「いや……」

型おじさん「あのさぁ!!!!!型が無いと万が一のこともあるよねぇ!?!?!?エラーが起きてサーバぶっ壊れるかもしれないだろ!?!?」

ワイ「サーバが壊れる!?どうしたんですか」

型おじさん「ああああああああ!!!!!!!!」

次の日にそのおじさん退職したわ
前の職場でも型型騒いで辞めたらしい
お前らも気をつけろよ
0957デフォルトの名無しさん垢版2020/04/04(土) 20:03:33.83ID:dzVJGpcL
>>954
最近多いんだよねー
Pythonとかちょっとかじった程度で
「俺プログラマーやってます」って顔する子

最初の入り口が動的型付け言語なんだよね最近の子って
そんなもんじゃ使いものにならねっての
0958デフォルトの名無しさん垢版2020/04/04(土) 20:04:21.63ID:0WjGsUHg
長文でクソおもんない作り話書いてて楽しそうですね

Juliaなんかはパフォーマンス向上目的での型の導入だけど、型安定とかわざわざドキュメントに記すなら言語側でそもそも制約を強めてエラーにしてしまうとかでよかったんじゃないかと思ってしまう
0962デフォルトの名無しさん垢版2020/04/04(土) 21:22:41.67ID:nlgyx7EU
classイコール型みたいな言語だと考慮しないといけない事項が多すぎるし記述量は馬鹿みたいに多い
なので、そういう言語しか知らない人が「静的型付けは煩わしい」と思うのは仕方ないことかもしれん、と思う

一度はOCamlを使って欲しい
OCamlは正格評価だし、型は強力で作りやすくて使いやすいし、OOPとも丁度いい距離を取ってる
smalltalkほど死んじゃいないし、Haskellほどアカデミックじゃない
次世代言語じゃない!と言うなら、ReasonMLでも良い。OCaml -> Javascriptみたいな環境もある
0963デフォルトの名無しさん垢版2020/04/04(土) 22:28:52.51ID:oHbtMe0Y
>>949
正常系を一発通すだけで十分なのかどうかは仕様次第
ただオープンソースではよくあるのは開発者がテスト軽視してるだけで
動的言語か静的言語か関係ない

>>950
>>921の関数に対してどういうテストをすべきかは仕様次第
仕様は不明だけど考えうる限り網羅的にテストすべきって考え方自体が
テスト設計したことない人の考え方だよ
0965デフォルトの名無しさん垢版2020/04/04(土) 23:05:06.65ID:ebeS0Dvl
俺は天才と信じている異常者(低学歴・障害者手帳持ち) = 型無し糞言語ガイジ
0966デフォルトの名無しさん垢版2020/04/04(土) 23:05:29.19ID:wh1EiJLW
web プログラミングのように外は危険がいっぱいという状況と
機械学習のように入力情報は保証されているという状況では
当然テストの質が異なる
議論がすれ違っているのはその辺の違いかと
0968デフォルトの名無しさん垢版2020/04/04(土) 23:12:02.58ID:H4c+c10U
そもそもテストと型は無関係なんですかそれは
0969デフォルトの名無しさん垢版2020/04/04(土) 23:21:54.26ID:L/BdUORC
Javaとpythonで争ってたところに
唐突に岡村提案されてて草
0970デフォルトの名無しさん垢版2020/04/05(日) 00:17:54.25ID:bKlpD2Cq
データに型は必要ない。
データの内容によって命令を使い分ければ良いのだ。

機械語で十分って事では?
0971デフォルトの名無しさん垢版2020/04/05(日) 00:34:46.44ID:GfhXthds
>>970
確かに。
ポインタも整数も同じ整数レジスタで行うね、マシン語だと。
整数演算で可能な型ならビット数以外の型情報が無い。
0972デフォルトの名無しさん垢版2020/04/05(日) 00:37:30.12ID:GfhXthds
>>971
それで、マシン語だと間違った演算でもコンパイル時にエラーがでにくかったが
C言語で細かな型が導入されて間違いをコンパイラが発見することに成功した。
ところが最近のスクリプト言語では明確な型宣言がないものが流行り出し、
かつての問題点がまた出てくるようになってしまった。
0973デフォルトの名無しさん垢版2020/04/05(日) 00:56:47.84ID:d7/7NuuZ
ほう…マシン語でコンパイルを
0974デフォルトの名無しさん垢版2020/04/05(日) 01:07:09.53ID:N+saKT+1
普通に静的型+型推論でええやん
型書けない言語はもうありえんわ
一時期PHP使ってたことあるけど、正気の沙汰じゃなかった
0979デフォルトの名無しさん垢版2020/04/05(日) 02:12:33.78ID:d7/7NuuZ
今の若い人はマシン語はコンパイルするものと習うのですか?
コンパイル言語を知っている人向けにアセンブルを説明するのに「コンパイルみたいなもの」と説明するのではなく?
0980デフォルトの名無しさん垢版2020/04/05(日) 02:16:10.20ID:dvIeqTXE
次世代じゃないけどOCamlはええぞ。大体の言語のエッセンスを見直すきっかけになる

ちゃんとした型推論と簡潔な型表記があれば静的型付けでも書くのは面倒じゃないって分かったり
クラスってプログラムの必須構成要素なんかじゃないって気づけたり(むしろ用途は凄く限定されるべきもの)
遅延評価って実際にどんだけ便利なの、とか、分かる
0981デフォルトの名無しさん垢版2020/04/05(日) 02:16:21.31ID:bKlpD2Cq
アセンブラと機械語は一対一に対応していないんだよな。
配置が決定しないと使えない機械語が有るので。
0982デフォルトの名無しさん垢版2020/04/05(日) 02:30:40.57ID:k4Q+DqWZ
型がいらない/めんどくさいと主張する層は、
大方自分の意図をメソッドのボディによって表現することしか知らないのだろう

HaskellやらOCamlやらある程度の型システムの強度を持っている言語の経験があるプログラマは、
自分の意図の大部分を型で表現することに慣れているから、型がいらないとか正気か?となる
0983デフォルトの名無しさん垢版2020/04/05(日) 02:48:33.35ID:bKlpD2Cq
型が無いのはとても良いことです。
0984デフォルトの名無しさん垢版2020/04/05(日) 02:49:08.14ID:c8uove51
関数型で型が重用されるのは、高階関数によって型が至るところでアドホックに生み出されるため、
型がないとプログラムを正しく組むことが事実上不可能だからだよ
関数型では型は主にプログラムの形式的な正しさを守るためのテクニカルなツールとして用いられていて、
むしろドメインモデルを型で記述するみたいなのは意外にも関数型では重視されなかったりする
0985デフォルトの名無しさん垢版2020/04/05(日) 02:49:14.27ID:bKlpD2Cq
プログラミングが必要なくなればもっと良いです。
0986デフォルトの名無しさん垢版2020/04/05(日) 02:50:35.75ID:bKlpD2Cq
でも今はまだ無理です。
素直に型を使いましょう。
0987デフォルトの名無しさん垢版2020/04/05(日) 03:09:06.75ID:k4Q+DqWZ
>>984
言ってることが何一つ理解できないんだが
ほんとに関数型言語の経験か、型システムを専門に研究した経験のどっちかでもある?
0990デフォルトの名無しさん垢版2020/04/05(日) 06:23:20.59ID:bKlpD2Cq
タイプ数を節約できることでは?
0991デフォルトの名無しさん垢版2020/04/05(日) 10:17:02.41ID:/6aVgV0B
ん?OCamlってかなり標準ライブラリ豊富って聞いてたけど違うの?
0992デフォルトの名無しさん垢版2020/04/05(日) 11:56:52.59ID:ZlQTcj/v
そんなに引数に何が来るかわからないという状況が多いのかなあ
このメソッドは何をするかがはっきりしていれば、そんなに型を気にする
必要はないと思うけどなあ。一つのクラスでたくさんのことをさせているのか?
0993デフォルトの名無しさん垢版2020/04/05(日) 12:17:46.87ID:aRq634GN
メタプログラミングは動的型の方が楽。思いついたアイデアを簡単に試せる
Haskellのマクロとか使いにくいったら無いし、あんなので試行錯誤したくない
RailsもRubyで産まれて、静的型言語に不完全な形でパクられた

だから、ゼロからフレームワークを作る創造的な人達は動的型を好み、
アイデアをパクって実装したり、フレームワーク使うだけのドカタは静的型を好むわけだよ
0997デフォルトの名無しさん垢版2020/04/05(日) 12:51:43.69ID:9ug9dps/
メタプログラミングの結果を駆使する立場ならともかく
メタプログラミング自体を行う奴らは試行錯誤とかあんましないレヴェルなんじゃね
書いたら動いてバグがほとんど無い(
もちろんテストはする
0998デフォルトの名無しさん垢版2020/04/05(日) 12:55:49.48ID:bKlpD2Cq
釣りなら釣りと分かるように書かないと、タダの馬鹿だと思われるのでは。
0999デフォルトの名無しさん垢版2020/04/05(日) 12:58:04.13ID:bKlpD2Cq
>>993 は普通に考えれば釣りなんだけど、本気で顔真っ赤にしながら主張する人もいるから、
どこかに釣りの痕跡残しておかないと、後で釣りでしたと言っても信じてもらえなくなる。
1000デフォルトの名無しさん垢版2020/04/05(日) 13:01:44.09ID:bKlpD2Cq
縦読み入れておくのが良いのでは。
10011001垢版Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 187日 10時間 3分 41秒
10021002垢版Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


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

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

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

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

ニューススポーツなんでも実況