次世代言語議論スレ[Go Rust Scala Haskell]第5世代 [無断転載禁止]©2ch.net
レス数が1000を超えています。これ以上書き込みはできません。
いざ、語ろうぞ。
スレタイ超過のため、一部省略。
その他もウェルカム。
前スレ
次世代言語議論スレ[Go Rust Kotlin Scala]第4世代
http://mevius.2ch.net/test/read.cgi/tech/1492631007/ 光のオーロラ身に纏い
君は闘う人になれ
傷つことを恐れたら
世界は悪の手に沈む
ネットバトラー爆誕である >>903
ニュアンスがやっぱり違うぞ
金もメモリも使わずかつ実装が簡単な代替えとなるとそうなるって話
HDDの速度考えれば都度転送のがまだマシだろ
本当はtmpfsが手っ取り早いけど 名古屋から山口組の6代目が出たんだし、SKEにも頑張ってほしい
◆AKBは近代ヤクザのシステムを導入しているとしか思えない◆
http://robo-mae.com/2017/06/20/
なんか本職のヤクザ?が書いてる裏事情ブログでおもろいから読んでるんだけど、
ぽいけどこの記事だけ的確過ぎて笑ってしまった。
この人は結構ヲタなんだろうけど、組内では内緒にしてるのかな? パイプとかRPCでやるなら、
プロセスAがデータ作り終わったら、
プロセスAがデータを一定量、プロセスBに送って、
プロセスBはそれを受けてバッファに置いて、
プロセスAは送った分、確実にメモリを開放して、
全部送り終わったらEOF送って、
プロセスBはEOFで走り出せばいいんじゃないの?
その送受信フックしといたら、プロセスBだけもう一回走らせるのも簡単だし、別の計算機でプロセスB動かすのも簡単だし、エビデンスにもなるのでは? 全部送り終わったら、のところ、全部送り終わってなければ、また「一定量送って」にループね。 >>910
>送った分、確実にメモリを開放
ってどうやるんだろ >>912
Fortranなら、allocatableで宣言して、allocateで適当な「一度の量」単位で確保して使って、送ったらdeallocateで開放すりゃいいんじゃないの?
pointerで宣言してるならちと考え方変えねばならんかもしれんが。
あと尻から送ったほうが良いかも。
GCある言語だったら開放待ち作らなきゃなんともならんな。 >>912
mallocじゃなくてシステムコール使う 久しぶりに覗いてみたらまだこの基〇外いたんだwww
俺が勉強している間も遊んでいる間も色々している間もずっと書き込んでいたんだねww 勉強したり遊んだり仕事したり2chに書き込んだりしてるだけだがなぁ。
一度に1つの事しか出来ないんだろうか。 賑やかしでいいんじゃないの?
黙ってたら進まんかHaskell信者が踊り狂うスレなんだし。キャットドア()の検証()するスレで良いの?
あと、そもそも盛り上がってたら静観してあんまり書かんぞ。 結局Haskell最強ってなるの。
正直あんまり仕事で使ってる感じしないけど。
なんか研究者が戯れに使う感じ。そもそも何に向いてる言語なのhaskellって エンジニアガイジ再訪。Part4より
905 :デフォルトの名無しさん:2017/05/31(水) 06:14:00.96 ID:wEozaoTa
>>879
では、具体的にGHCが実行時型情報を必要とするケースを挙げてみろよ。
言っておくが、パラメトリック多相は全てコンパイル時に解決されるし、
型クラスによるアドホック多相も、あれは関数オーバーロードの形式化だからな。
関数オーバーロードはコンパイル時に解決されるぞ。
さあ、具体的に挙げてみろよ。
908 :あ:2017/05/31(水) 09:15:21.09 ID:dc+IbjjD
>>905
具体的に上げろと言われてもなぁ。
<T>を持ったenumがOptionかcar(T)とcdr(<T,T>)である時くらいかな。 >>920
仕事で使ってるよ
ファイルのバリデートチェックとか
あとはネットワーク構成の論理矛盾がないか調べる内製ツールもHaskell >>920
結論は「〜言語最強」とか言ってる輩は馬鹿ってことかな。 >>924
まぁ向き不向きの問題ってことかね。
haskellはバリデーションチェック系が得意っていうのはやっぱりパターンマッチングで宣言的にかけるからってことなのかね。
パターンマッチングはrustとかelixirとかでもできるわけだから
haskellじゃなきゃダメってことはなさそう。 いやHaskellのが楽
RustなどにQuickTestのようなものはない ある。使ったことは無いがhttps://github.com/BurntSushi/quickcheck
ただRustの型システムはHaskellより貧弱だし、最初からメモリについて意識しないとプログラムが動かない
Haskellで作ったプロトタイプをRustで書き直して速度を稼ぐのはアリ 暗黙の型変換は大嫌いな俺でも型システムを信じすぎる輩はどうかと思う。 >>930
ちょっと言ってる意味わからない。(言いたいことはわかるかな)
暗黙の型変換好きってなら、そのあとの でも型システムを信じすぎる 云々につながるけど 暗黙嫌い=与党ってことだな
たとえ内容が全く同じでも、野党が批判するのと、与党の俺が批判するのは全然違うと
最近の日本語は面倒臭い >>930
もしかしてRustの型が貧弱というのに反論しているつもりなのか? 例えば perl みたいに "123" を勝手に数値変換したり文字列として取り扱ったりってな
言語は好きじゃないって話が一方であり、
じゃあ haskell みたいに型チェックを強めにやってりゃバグありませんって態度も
どうかと思うって話だよ。
なぜ与党とか政治の話になるのか謎。。 与党は比喩だな
一方、Haskellの「バグありません」って態度とか台詞とかは擬人化だろ PerlとHaskellは両極端だが激しい対立は起きてなかったよね
対立がなかったところに中立の勢力が現れて両極端 vs. 中立の対立が発生したよね
中立の意味ないんじゃないか? HKTが無いことを念頭に入れてのレスだったんよ。RustじゃHaskellで便利なFunctorは作れない
型システムを信じすぎるって状況が自分も想像できない。他言語の話だろうか ペェ〜ルだかプェチピィだか、あんな真性糞ゴミを中立の位置まで持ち上げて議論に引き出すのが
そもそも間違っている
あんなんジャップランドの土方SIerの低学歴奴隷どもしか使っとらんぞ >>938
海外でも使われてるし、土方SIerはむしろPHPなんか使ってなさそうだし色々間違ってるんだが >>939
土方SIerにこき使われてる低学歴奴隷ども、な
おまえさんは海外でウンコが食われてたらおまえさんもウンコ食うのか
ガイジか? 自社事業やってるベンチャーをいくつか転職活動で回ったけど、
俺達の事業に最適な最高のシステムを独自に開発した!もう人間要らねえ!俺すげぇぇ!
みたいな知性を感じないオレオレ系はPHP多かったな
もちろん即辞退 >>938
SIerの仕事は、技術ではなくて管理だからな。
不良率や稼働率を客と話し合って、SLAを結んで、それを満たすシステム作らせるべくプロジェクト立ち上げて管理して納品させて、自分らが納品するのが目的なんだし、
定義した稼働率満たしてりゃ中身がなんであれそれで良いよ。
それ以上の品質はただの過剰品質。化粧板止めるネジにチタン使うぐらいのバカ。
理想論者の技術バカは、ちょっと自分に何が求められてるのか把握してほしいわ。 >>941
事業としてはそれが正解な気がしないでもない。
人間いらないならなんで募集していたのかとか気になるが。 好き好んでSlerのPHP奴隷に成り下がる奴wwwww >>943
最後の皮肉で噴き出したじゃないか、パブリックな場でww >>942
わるいが、俺は25年ぐらいしか業界経験がないから、
「過剰品質なソフトウェア」ってものを見たことがない。
品質が高すぎるが故に害があったソフトウェアの実例を教えてくれるか? >>947
きみがかかわった「完成が遅れたプロジェクト」ぜんぶ >>948
ウンポコピーの糞プェチピィ土方を寄せ集めたジャップランド土人さんの悪口はやめたまえ PHPやPerlのような、終わった言語の話はもうやめようよ goだとGAE/goが使えるから。という理由でGO言語が選択されてたりするかな。
中国人がGOが好きだという話を中国人のエンジニアの人に教えてもらいました。その人の話では中国でのベンチャーはいきなり一千万人単位のユーザが生まれる場合があるから、サーバ単価が低くできるGOが好まれるとか >>947
俺はもう少し若輩者だけど、それでも過剰品質はあったよ。
●非常時には止めても良いシステムで、止めないでホットパッチ当てれる仕組みまで作ってた
→案の定その部分が原因でデータ不整合が起こった
●ホットなミラーリングが出来るDB使ってみました
→そもそもテンポラリDBしか使わないジョブ用のバッチ。
と言うように、害があるってのは2つの意味がある。
それを作ったせいで余計な対応が発生して余計にかかったコストを害とする
それを作らなくても良かったのに、作った事による、単純な工数の無駄遣い。 >>953
PHPで非常時には止めても良いシステムを書かせる
→通常時も落ちる
PHPでDB使ってみました
→不整合データたくさん入りました
PHPを使ったことによる損失は次元が違うから・・・ PHPで求人だしてるのはそれが一番安く雇えるからだろ
品質なんて気にしないというか知らない
自分が気に入るまで文句言ってれば理想のモノが出来上がると思ってる
画面がーとか言われてもな >>953
データ不整合が起こったというのは、品質の不足だろ?
君が言っているのは過剰品質ではなく、過剰な作業項目による品質劣化だ。 >>957
庇うわけじゃないけど
内容的に運用で失敗したって話じゃないのこれ、う? 過剰に安く買って過剰に高く売ればいいのにね
物価を固定して品質を変えようとする奴しかいないね 今時はSIerも>>959を夢見て自社資産(成果物の流用に限らず無形のノウハウも含む)を作ろうとしてるところも多く、
要件を超えることが必ずしも悪いわけではない
俺もコストの半分くらいが自社の投資でカバーされる案件やったことあるぞ
まあSIerのクソ技術じゃせいぜいテンプレート化までなんだけど >>955
phpを安易に使ったことによる損失とは違うが、
テレメトリを受けるだけ(取りこぼしても良い)くらいなら十分よ。
>>957
機能を足したことによる、足した部分の品質不足、だな。
メインの機能は十二分にうごいてた。
蛇足そのもの。
>>960
それは研究開発費でやらないと、案件貰わない限りノウハウがたまらない≒ノウハウがないが故に失注する、を乗り越えられんし、研究開発の大切さが上に伝わらんのではないか?
ソフト屋はみんなそうなのかな。
特許請願しにくそう。 あるECサイトが情報漏えいを起こしてニュースになった。
そのECサイト PHPで調べるとだいたい ECサイト/index.php で大体ヒットする でもphpも最近は型アノテーション効くんだよね。
phpは型がないからダメだというのはないかも。 phpは良くなっても使ってるユーザの8割はコピペユーザだろ 動的型付けだから書きやすい!生産性高い!
なんて喚いてたのに
今さらプリミティブ型の型アサーション導入で嬉ション漏らしてるなんて
ペチパーってひょっとして馬鹿なのか?
って思った >>965
なんでステレオタイプな一つの人格にしようとしてんの?
俺はphperでもないし、動的言語がいいなんて言った覚えもない。
ただ和田さんのプレゼン、防衛的プログラミングの一環として
型アノテーションを使うことを提案されていて良いと思ったから話しただけ。
http://sssslide.com/speakerdeck.com/twada/php-conference-2016 >>966
PHP使うのやめたら?ってレベルのギャグだなもはや
なんかもう必死すぎて、そこまでしてPHPにしがみつくなんて
やっぱペチパーって無能なんだなって >>966
これ会場で誰か「Java使えば?」って言ってあげろよ >>969
「PHPなら初心者でも書ける」という大嘘がまかり通ってるから
そんな連中が書いたゴミの山を保守する奴隷が足りてないから
やっぱり「PHPなら初心者でも書ける」と噂を流して
奴隷がやってくるのを待っている 暗黙にいろいろ用意してくれてるものがライト層には人気出るのはわかる。 ライト層が好むんじゃなくて結果的にライト層が残るんだろ
まともにコード書ける奴はゴミみたいな単価のWeb制作なんかすぐ辞めて自社事業系に行くよ >>968
プレゼンの内容ロクに見ずに批判してるのがまるわかり。
動的言語の良さと静的言語の良さをあわせてる
動的言語はメタプログラミングし易いからフレームワークの挙動を組みやすい。
でもインターフェースがゆるゆるだと使う時にひどいから
インターフェース部分を型アノテーションで固めようってことでしょ。
javaは全部かっちりしすぎて辛い部分もある。だからkotlinとか注目されてる。
ボイラープレートだらけとかシンドいのは事実
goも若干きつくて正直goaに出会うまではgoでwebやろうってあんまり思わなかった 動的だとメタプログラミングしやすい…?
メタプログラミングって何かわかってる?? 確かに、Rubyのようにコード上の静的なセマンティクスと実行時のデータ構造とが明確に分離されていない言語において
動的にメソッド生やしたりするのをメタプログラミングと呼ぶのは違和感あるよな >>974
ダックタイピングとマジックメソッドの組み合わせによって
例えばORMとかだとDBのスキーマ情報からメソッド生やしたりできる。
そういうのはjavaとかgoだとcode genereateするしかないでしょ。 >>977
ジェネリクスによるメタプログラミングは型という本来静的に決まっているものに依存しないという点でメタ
ロジックを記述するメタプログラミングとは意味が違う
動的言語ではメソッドが静的に定義されている必要は元々全くないし、
定義するメソッドもごく普通のメソッドであり決してロジックを生成しているわけではない
LISPみたいに実行するコードそのものを作ってしまうのがロジックを記述する方のメタプログラミングだ 補足
動的言語でcallをフックする系のメタプログラミングがメタである所以は、
メソッドは本来クラスに対して静的にアサインされるものである、という前提において、
メソッドを動的にアサイン(動的にロジックを記述しているわけではない)しているという点だ
その前提を認めるかどうかは議論の余地がある
例えば、さすがにJavaScriptでメソッドは静的にアサインされるものだと主張するのは無理があるだろうね >>977
>>978
メタプログラミング関係ないけど
「ロジック」と「プログラム」という用語をどう使い分けてるの?
プログラムの中にロジックを記述した部分と
ロジック以外を記述した部分があるというニュアンスに受け取れるけど
ロジック以外の部分って具体的に何を指してるのか教えて欲しい >>979
難しいっすわ。
つまりjsでメタプログラミングと言ったら
jsのコードを文字列で記述してそれをevalしたものだけってこと?
学術的な定義だと言われると凄く困るんだけど、
メタ って自己言及ってことでしょ
ロジックを持ってロジックを作るという考え方全般をメタプログラミングと呼んだら
実際的に弊害があったりする?
静的言語だと例えばマクロを駆使してコード生成をかける
部分をメタプログラミングと呼ぶ。
rust のprintln!とかだよね
テンプレート文字列の内容を実際に渡すパラメータの数と型の一致の確認をコンパイル時に行う。
goだとプリプロセッサがないからcode genereteがメタプログラミングなわけだ。
でも動的言語だとコンパイルはないから全て実行時に処理する。
だから明確にメタプログラミングと言える箇所はないってことか。
そこはわかったよ。
でも、実際には静的言語にはマクロがないとできないことを動的言語はできる。
だからメタプログラミングが動的言語は得意っていいたかったんだよね。 C++ではマクロを使わないと実現できない最小のpythonコードをご提示ください 誰がなんと言おうと、PHPみたいな糞言語使わないし、使う必要もない
生涯を保守に捧げたい哀れな土方どもにやらせておけばいい やはり動的型が好きな人はありとあらゆることがゆるゆるで
それはこういった会話にも表れてしまって、全てが場当たり的なんだな
会話がこうなんだから、他のこともそうなんだろう
指摘されてから直したらよい、的な
どうしてそうなってしまうのか、非常に興味深いところであるが
おそらく現実が正しく認識できていないか、もしくは根本的なところを履き違えているだとか
そんなおかしな状態で日常を過ごしていると
思考回路がいい加減になってしまって常習化してしまうのだろう
モデルが正しくないところへ幾らインプットを流し込んでも
正しく学習できないばかりか、どんどん変になっていく
そのうち何が何やらどうでもよくなってしまうのだろう >>984
動的型ではなくソフトウェアが好きなんだろう
ゆるゆるという言葉を正しく認識すればわかる 動的言語のメタプログラミングのメリットもわからないとか終わってるなww あほくさ。
そこまで堅いのが好きならすべてワイヤロジックで組むべきだな。 メタプログラミングってどれがって定義とかじゃなくて相対的なものじゃないの
敢えて言えば平均的な使い方よりメタかどうかなので、言語によって変わってくるのでは 静的なメタプログラミングにはチューリング完全ではない特殊な言語を使う
コンパイル時に無限ループさせないために
言語が二つあるから完全に二極化している メタプログラミングという概念について述べてるところに
メタプログラミングの実現方式について返すから話が噛み合わないわけだw
言語処理能力って重要だね まあこれ以上、メタプロとはってなこと話しても無駄だろうということで
話題の発端である「動的言語はメタプログラミングし易いからフレームワークの挙動を組みやすい。」
てなところに戻って、
動的言語でフレームワークの挙動を組みやすいかどうかを語った方が良いのでは? >>966
素晴らしいスライドだな。
言語はおいといても、同じ思想で開発すべきかと。
言語仕様がそもそも、スライドの通りにしかつくれない言語のほうが良いとは思うけど。 どちらにしても次世代言語の覇者なるものがもし出てくるとしても
動的型言語界隈から出てくるわけないので、どうでもよい
動的なメタプログラミングなど悪夢でしかなく、好まれるはずがない
静的な分、Cのマクロの方がましだ
静的型で出来なくて、動的型で出来ることの殆どは、悪手でしかない
結局人間にもわかりにくいし
実行速度を落としてまでサポートするほどの価値はない >>984
そうじゃなくて、動的型についてのあんたの理解がゆるゆるなだけだ。
つまり、ゆるゆるなのは、あんたの頭。 >>994
つまりあんたはOSをインストールしたら最後、プログラミングなんて一切しない人なんだね。
動的であることを拒否するということは、OS上でユーザは実行可能ファイルを一切生成することも上書きすることも許されないということだ。
IEでインターネットでもしてろw と、このように関係のない的外れなことを言い出す
ゆるゆるなのは誰がどう見てもお前じゃねーか 要するには何の区別も分別もついてないということだな
じゃなきゃそんな的外れなたとえ話w
そういった混沌とした状態の頭で生活をしていから
普段から、何もかも、何が何やらで
終いには全てのことが、どうでもよくなるんだろうな
悪循環だな よく考えてみたらメタプログラミングってgoとかでコードを書くようになったから意識するようになった。php自体は意識しないで使ってたから。
静的言語、動的言語って分け方もよくなかったね。
静的言語だってマクロ機能があればメタプログラミングはある程度できる。
goだとreflectとか使わないとphpと同じことはできないしできたとしてもかなり苦しい。
結局言語機能が不足してるのが問題なんだよね。
TypeScriptはその点でかなり自由度が高かった
型の直和型と直積型を & と | を駆使して組み合わせられるから
かなり動的言語よりにコードを書ける。
let a :string|number|undefined;
とやるとstringの可能性とnumberの可能性とundeifnedの可能性がある型が作れる。
もちろん
if (typeof a === ‘string’) {
} else if (typeof a === ‘undefined’ ) {
} else {
// ここに来るのは絶対number型だとIDEも認識する。
}
とういう風にTypeGuardも完璧に動作する。
goはエコシステムがいいのにこういうのが充実してないからかなり苦しむことになる。
だからメタプログラミングは弱いって思ったんだけど
静的言語だから弱いって言うべきではなかったな。 このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 76日 11時間 32分 19秒 レス数が1000を超えています。これ以上書き込みはできません。