X



次世代言語18 Go Rust Elixir Kotlin TypeScript
■ このスレッドは過去ログ倉庫に格納されています
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 が別物なのであれば、
それらは別の型だろう
■ このスレッドは過去ログ倉庫に格納されています

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