X



【JavaScript】スクリプト バトルロワイヤル55【php,py,pl,rb】 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0417デフォルトの名無しさん
垢版 |
2016/10/29(土) 19:08:25.95ID:5tcsH0dx
粒度が荒くなると関数型じゃなくなるなんて
これまた珍妙な説出してきたなw
0419デフォルトの名無しさん
垢版 |
2016/10/29(土) 22:08:03.38ID:z8URZLOb
>>417
副作用をもたらすから関数型じゃないんだよw

オブジェクト指向でも副作用がない関数を書いたら
それは関数型だって主張したいのかい?w
0420デフォルトの名無しさん
垢版 |
2016/10/30(日) 05:32:40.80ID:hqgegRgF
俺はこの問題に二十年取り組んできたが、結論は出てる。
「作者が関数型と主張した」言語が関数型だ。

そもそも最初はシンプルだったものも、どんどんリッチに汎用的になるに連れ
元来の関数型とは乖離していっている。
特にこの10年、今まではそれでも範囲内で拡張するすべを探していたのが
妥協する策を取るようになった。

汎用でリッチなプログラミング言語としてはその方がずっと都合が良いからだ。
したがって今の著名でここのスレ民が主に思い浮かべるような言語は関数型ではない。
強いて言えば、作者が「関 数 型」と主張しているという程度のこと。
個人的には「関数型」言語とはもはや「P」言語に近い。
0422デフォルトの名無しさん
垢版 |
2016/10/30(日) 09:14:34.70ID:Iggl3vKB
ニセ科学に反対するだけで良かったのに
代案を出せとか煽られてついつい関数型という怪しいジャンルを作ってしまったんだな
0423デフォルトの名無しさん
垢版 |
2016/10/30(日) 13:43:32.58ID:GS3Z8C14
今はマルチパラダイムな言語が増えてる、Adaとか
0424デフォルトの名無しさん
垢版 |
2016/10/30(日) 13:45:12.33ID:h7Os3ze3
つーか殆どがマルチパラダイムじゃね?

そこに対抗してマルチパラダイムに対応できない言語が
純粋○○であることを売りにしてるけど、それ欠点だよねw
0425デフォルトの名無しさん
垢版 |
2016/11/08(火) 16:23:03.12ID:/G9nZu79
うるっせえなこの馬鹿どもは
スクリプトの覇権は昨今の機械学習/AIブームでオッパイソンさんで確定したろ
あとは黙ってPython極めることに専念しろ
0426デフォルトの名無しさん
垢版 |
2016/12/03(土) 09:58:47.88ID:rhALv8P7
PHP 7.0.x から PHP 7.1.x への移行
http://php.net/manual/ja/migration71.php

PHP7.1リリースキター! hackのnullable型導入とかか?
とりあえず x.1 待ちしてた奴ら移行しろよ。
0427デフォルトの名無しさん
垢版 |
2016/12/08(木) 09:29:51.63ID:u0pmvICB
直也:.NET CoreというかC#って型があって、しかもサーバーサイドも書けるじゃないですか。Linuxでやってた人たちはずっとスクリプト言語使ってて、
Rubyとか型がない言語でサーバーサイド書いてることに疲れてきちゃってるんですよね。
ある程度の規模のものではサーバーサイドも型がある言語で書きたいと思って、
ScalaとかJava 8をやってみたんだけど、どの言語もちょっとバランスが悪いんですよね。
Scalaはプログラマ寄りすぎるし、Javaはコンサバすぎる。サーバーサイドSwiftもとがりすぎてるし。
実績があって型がある言語ってC#なんですよね。そのC#がLinuxで使えるのは大きいんですよね。
だから、ワンチャンあるなって。あとは市場が評価するかどうかなんですよね。
バランスはいいと思います。それがWindowsだけでなくMacでも使えるようになったのは本当に大きいですし。
0428デフォルトの名無しさん
垢版 |
2016/12/09(金) 01:22:51.17ID:kfA92fVD
dartはいかが?
0431デフォルトの名無しさん
垢版 |
2016/12/09(金) 08:50:43.91ID:IAKedM2U
間違いはGoogleが現実の問題とニーズだけを見ていて自分の立場が見えていなかったことだな
そんなことをGoogleに求めている奴はいない
輝かしい切捨ての歴史を持つGoogleを土方分野で信用する馬鹿はいない
0432デフォルトの名無しさん
垢版 |
2016/12/09(金) 22:55:33.79ID:K++XEq18
大事なのは言語云々よりDartVMでしょ
ブラウザへの統合を断念した時点で終わった
0433デフォルトの名無しさん
垢版 |
2016/12/09(金) 23:17:20.20ID:IAKedM2U
>>432
ブラウザ統合自体が重要なのではなくてGoogleのやる気の問題だろう
Chromeに統合するという触れ込みで登場した当時は
Googleが本気だ! ということでそれなりにインパクトがあった
Dartが注目されていたのはそのGoogleの本気というただ一点だったのだから、
「結局いつものGoogleだった」となった時点で当然もう何も残らないよ
0434デフォルトの名無しさん
垢版 |
2016/12/10(土) 02:23:12.50ID:Y9PwNia6
>>432
サーバ側ならどう?
typescripあるしphpも型付けることできる用になったから難しいかな?
0435デフォルトの名無しさん
垢版 |
2016/12/10(土) 07:47:45.47ID:dczaGrMx
Goもあるし.NET Core(C#)も盛り上がってきたからねえ
残念ながらDartにはもう出番はないよ
0436デフォルトの名無しさん
垢版 |
2016/12/10(土) 09:53:52.20ID:Q42P76Xv
wasm対応で先手を取れれば状況がひっくり返る可能性もあるが
asm.jsの時点でやる気0だったしなあ
0438デフォルトの名無しさん
垢版 |
2016/12/31(土) 15:42:56.02ID:nUjD4DbZ
JavaScript死亡www

「WebAssembly」がITの未来に変革もたらす|Google、Apple、Microsoft、Mozillaが共同で開発した新概念

「WebAssembly」がWebブラウザに変革をもたらします。
Webブラウザは、もともとただテキストを表示するだけのところから始まりました。その出発点から、現在ではコミュニケーションやゲームまで幅広い表現を可能にしています。
そして今回、「Webブラウザ」に新しい概念が加わわることになりました。
それをもたらしたのが、ブラウザに関わりの深い世界規模の4社「Google」「Apple」「Microsoft」「Mozilla」が共同開発した、Webのためのバイナリーフォーマット「WebAssembly」です。
今回はその「WebAssembly」について、「スゴイところって何?」「何が起きるの?」をご紹介していきます。
WebAssemblyは「JS不要。コンパイラ言語だけで動的アプリが作れる」「どの言語でもWebブラウザ上にアプリを作ることができる」

WebAssemblyによってもたらされるスゴイところは次の4つ。
コンパイラ言語だけで、Webブラウザ上に動的なアプリが作れる
ほぼ機械言語にコンパイルされるからヌルヌル動く
OSを一切気にする必要がなくなる。気にするのはブラウザのみ
C,C 以外の言語でもWebAssemblyにコンパイルされる「クロスコンパイラ」の可能性が高まった

これまでWebブラウザで、ユーザからの入力情報を元に、動的なアプリケーションを実現するためには「JavaScript」が必須でした。

「インタプリター言語」であるJavaScriptは、その都度ソースコードを機械語に翻訳する必要があるため、予め機械語に近くコンパイルされる「コンパイラ言語」と比較すると動作が遅いという特徴があります(※)。

もしコンパイル後の機械語に近い形で、Webブラウザ上でコードが実行されたら。
JavaScript以上にヌルヌルに動き、しかもJavaScriptを気にする必要がなくなります。

それを実現したのがこの「WebAssembly」です。

https://mayonez.jp/1690
0439デフォルトの名無しさん
垢版 |
2017/01/03(火) 00:30:36.24ID:pkTsP2s0
モンスターのアイコンの統一感がなさすぎるな
線が細いキャラと太いキャラを並べると違和感のかたまり
0440デフォルトの名無しさん
垢版 |
2017/01/03(火) 05:08:13.08ID:sAzrCak7
>>438
今更な記事を引っ張ってこられてもな。
対応言語c,c++以外も増えたのかねぇ。
0441デフォルトの名無しさん
垢版 |
2017/01/03(火) 21:47:16.02ID:m68UQ04g
どうだろうね。
まあ「その都度ソースコードを機械語に翻訳する必要があるため」遅い
という問題は、わかりやすい問題だから改善されていくよ。
最近だとV8で、即時関数っぽい書き方されたコードは最初から最適化して
すぐ実行できるよう準備するようにするパッチが入ったじゃん。
そういうのの積み重ねで良くなっていくと思うよ。
0442デフォルトの名無しさん
垢版 |
2017/01/04(水) 08:48:59.47ID:u2CyXKSE
>>158
ただ自分の優位性を示したいだけの典型的な権威主義の馬鹿だな
自分の主張やは無いくせに〜ぐらいはしてるよね?とか
お前仕事場でも嫌われてるタイプだろ
少なくともHaskellは特定分野以外はまともに使えない
実際使ってればつまずくのですぐ分かる話
0444デフォルトの名無しさん
垢版 |
2017/01/04(水) 10:10:34.13ID:B3jxZHKh
Haskellはまだ趣味の範囲であらゆる分野で使える言語だよ。だって純粋関数型言語じゃないから。
0447デフォルトの名無しさん
垢版 |
2017/01/08(日) 01:51:52.58ID:+qBxgbmJ
このスレのお前らがどう思っているかが一番重要なんだよ
多くのヒントになるから
時代は常にこのスレで言われていた事の反対に進んだだろ?

今は静的型全盛で動的型プッって感じだし
さんざんな言われようだったJSはむしろメジャー言語になったし
今JSが糞って言われているのは主に動的型だからだし
主要スクリプト言語もどんどん静的型の機能を取り入れているし
2000年代にはオブジェクト指向をやりたいならRubyをやれって言ってたのに
今Rubyはどうなった?静的型の機能はいつ追加されるの?Ruby3.0はいつ?

超ド近眼
ほんのちょっとの目先の手間を惜しんで
より面倒なハメにあう動的型信者らしいっちゃらしいがな

昔に動的型がブームになっていた頃から
糞だってはっきり言っていた人たちもたくさんいたし
単にお前らがド近眼ってこと
0449デフォルトの名無しさん
垢版 |
2017/01/08(日) 16:59:24.13ID:zEIuJeGz
何も分かってないなぁ。
このスレの奴らは静的型アンチでもないし、動的型信者でもない。
昔ながらの静的型と動的型のデメリットとメリットを比較した時、
動的型が肌に合ってた奴は多いが前提が変わるんなら勿論話は変わってくる。

そもそもスクリプト言語の奴らは良いものは何でも大歓迎で取り入れるのが好きだから、
言語に型表記機能が入れば喜んで使う。
動的型に慣れているからこそ、エンジンに型を理解してもらう大切さが良く分かってるからだ。
そこは全く矛盾したり対立したりすることではない。

それとJSが糞と言われていたのは、クラスベースでなく馴染みにくいとことと、便利ライブラリの欠如だ。
でも、ぶっちゃけ欠点のない言語は無いのに、JSがそこまで言われてた理由は、
実はJSの仕様の問題ではなく、DOM APIの仕様とブラウザの実装が酷かったからだ。

そこはむしろ糞って言われていたからこそ、様々な改善が試みられて、今これほどまでに良くなったんだよ。
けしてJSの周りの環境が本当は糞じゃなかったわけではない。
もう一度言うが糞だったから良くなれたんだ。そこは勘違いするな。
0451デフォルトの名無しさん
垢版 |
2017/01/09(月) 15:50:51.64ID:NcQuvnbl
assertは書きたいことを大体書けるが、型表記機能とやらは書けないことの方が多い
型名はただの名詞だから
コミュ力が低下する薬を飲まされて名詞しか話せなくなったような面倒臭さがある
0452デフォルトの名無しさん
垢版 |
2017/01/09(月) 17:41:15.96ID:+XRGLqqZ
それは当たり前だろうよ、縛りを設ける代わりに、主にIDEから恩恵を受けようというものだからね。
機械を自在に動かしたいというスクリプター的には、機械のために書いてるようで合わないだろうよ。
0453デフォルトの名無しさん
垢版 |
2017/01/17(火) 03:06:44.47ID:lw1Zwsst
Pythonは素晴らしいけどPythonが素晴らしいのではなく、
Python周りのネイティブライブラリ環境が大変素晴らしい。
道具としては最高だけど、プログラミング言語大好き人間としては不満。
もっと速度を上げ柔軟になってくれたら嬉しいんだけど、もうそっち方面は目指してないみたいだね。
0454デフォルトの名無しさん
垢版 |
2017/01/17(火) 06:39:50.13ID:rIfocs2Z
必要以上に手をかけると処理系のメンテが困難になり結果的に進化の足を引っ張ることになる
Rubyなんかまさにそうで、オタク共がよってたかって好き勝手にいじくり回したせいで詰んでる
0455デフォルトの名無しさん
垢版 |
2017/01/17(火) 07:09:05.55ID:lw1Zwsst
でもPythonみたいにCythonで割り切るのもねぇと思う。
割り切ってもJSとどっこいどっこいの速度しか出んが。
0457デフォルトの名無しさん
垢版 |
2017/01/18(水) 12:29:49.23ID:RtvJVUCC
るびいは作者の頭とユーザーの頭と言語仕様が詰んでるって先生が言ってた
0459デフォルトの名無しさん
垢版 |
2017/01/18(水) 13:10:26.31ID:jc+edUai
結果論だがPerlを批判するだけで勝てたんだよな
Pythonは本当にそれだけで勝った
Rubyは批判したいのか擁護したいのかはっきりしなかった
0462デフォルトの名無しさん
垢版 |
2017/03/02(木) 01:30:06.94ID:GY40xFBu
http://gihyo.jp/news/report/01/rubykaigi2014/0002?page=2
古い記事だけどやっぱ面白いね
何が嫌なのか知らないけど、静的型から逃げ回って
無駄に複雑なことになっていく感覚、本当にすごいわ
型さえ書けば済むことを、よくもここまで複雑にね〜
Unixの思想に反するわ

で、最新の情報ではRuby3.0はどうなることになっているの?
静的型は導入されるの?

でもま、今更導入するぐらいなら初めから導入しておけばよかったのにね
当時から静的型はあったでしょ、C言語とか静的型だし
そんでRubyはCで書かれてて自分は静的型の恩恵を受けてRubyを開発したはずなのにね
十分知ってたはずなのに、今更導入とか、それって筋悪いんじゃないの?何周遅れww
それを認めたくないから静的型の導入に対して渋々なんだろうけど
そんな詰まらないプライドで言語使用が決定されたらRuby使いはたまったもんじゃないね
でもそんな事(タイプセーフの重要性)は周りから見れば分かりきっていたことで
だから俺はRubyには近づかなかったわけでさ
微妙に消極的に静的型のメリットを語ってて、何をいまさらって感じなんだけど
本当に複雑怪奇だね
0463デフォルトの名無しさん
垢版 |
2017/03/02(木) 07:33:26.80ID:m5ydKowW
>>462
スクリプト言語のほとんどは静的型じゃないけど、このスレ全体にケンカ売ってるのかな…?w
0464デフォルトの名無しさん
垢版 |
2017/03/02(木) 12:26:11.03ID:FleTjgpE
スクリプト言語っていろんなものの橋渡し、
間に入り込む接着剤のような役目なんだから動的型で間違っていない
ただそれだけでしっかりしたものを作ろうとすると大変だねってだけ
0465デフォルトの名無しさん
垢版 |
2017/03/02(木) 12:33:41.17ID:GY40xFBu
俺が思うにRubyは夢を売る商売なんじゃないかと思う
ディズニーランドとか宝くじとか
あるいは漫画やアニメの専門学校と
同じようなモノなんだろう
0466デフォルトの名無しさん
垢版 |
2017/03/02(木) 13:05:30.50ID:GY40xFBu
Rubyは意図的に静的型の機能を外したわけでしょ?
当時からC言語はあったし、RubyはC言語で開発されているんだから
知らなかったわけないんだよ
知ってて明確な意図をもって外したわけでしょ
それをいまさら導入とか意味不明だよね
だったら初めから導入していればよかったわけで
あとから導入するの大変でしょ
これが何か目新しい概念とかだったら時代背景とかと合わせて
あとから導入はわかるんだけど
静的型って大昔からあって、むしろスタンダードだったわけで
今更検討とか今もう2017年だよ?何やってんだよ
まったくの迷走だよ
0472デフォルトの名無しさん
垢版 |
2017/03/03(金) 07:12:07.86ID:4qcBtzlj
>>471
動的型信者が静的型をdisるときによく言う「静的型の方が型が決まってるから実装が楽だが〜」
みたいなのを真に受けてるのかな
自分で簡単な言語を実装してみたらわかるよ
問題は型が静的か動的かよりも静的コンパイルの実装コスト
0473デフォルトの名無しさん
垢版 |
2017/03/03(金) 12:07:08.08ID:ivKlbKhz
静的コンパイルはコンパイル系と実行系で処理系が2重になるのが複雑
あらかじめ仕様をきっちり決めておかないと手戻りが多発するからスクリプターのノリで適当に作るのは困難
0475デフォルトの名無しさん
垢版 |
2017/03/03(金) 17:08:10.47ID:bWq8JKgn
仮に動的型のほうが静的型のよりも
最適化を含めるとなると難しいんだったとしても
それはまったく無駄な努力だからな
あと、動的方言語を静的に解析してエラーを見つけるのは難しいんだけど
それも無駄な努力だからな
静的型にすれば済む話
問題を直接解決しようとせず、周りをウロウロして何とかしようとするのは無駄
最近の言語に静的型が多いのは、誰も無駄な意味のない努力をしたくないから
動的型は、何か、ズレてるんだろう
砂糖と塩を輸送するのにブレンドして輸送する感じ
もしかしたら輸送費は安くなるかもしれないが
後で分離する手間考えたら分けて輸送したほうが良い
動的型の型を静的に解析するのはまさにそれに等しい行為
手間が増えるだけ
0476デフォルトの名無しさん
垢版 |
2017/03/03(金) 17:15:56.85ID:bWq8JKgn
静的型言語の実装の難易度を基準とすると
動的方言語は、とりあえず動けばよいってレベルなら超楽勝
しかし実用になるレベルにするのに
まじめに最適化を実装しようと思うと途端に難易度は跳ね上がり超絶難易度になる
間は無い
うま味がないってこと
誰も手を出さなくなったわけだ
0478デフォルトの名無しさん
垢版 |
2017/03/03(金) 17:28:09.10ID:bWq8JKgn
GoogleのV8エンジンとかは、技術的に本当に興味深く凄いなぁと思う反面
あんな苦労は絶対したくないし
言語仕様のほうをどうにかしたほうが手っ取り早いのは確実
本当に動的型言語は何するにしても無駄に壮大で大変だなぁ
静的型言語が全ての答えなのにね
0479デフォルトの名無しさん
垢版 |
2017/03/03(金) 18:31:58.34ID:BNfiYHeO
V8はC++で書かれているけど、
Chrome含むGoogleのC++はマクロで魔改造されてる。
C++のマクロだけじゃなく、Pythonも使ってソースコード置き換えをしてる。
結局「全ての答え」などというものはない
0480デフォルトの名無しさん
垢版 |
2017/03/03(金) 21:12:00.24ID:wq3/hASM
全ての答えおじさんは自分で言語作ったりするの?
ただのユーザだったらうけるんだが
0481デフォルトの名無しさん
垢版 |
2017/03/03(金) 21:45:28.70ID:aYsFsxPN
動的言語を速くする努力なんて無駄だっていうけど
Javaが速くなったのはV8と同じ技術の流用だろ?
0482デフォルトの名無しさん
垢版 |
2017/03/04(土) 13:07:22.03ID:TytE5WQL
むしろJavaが先駆者というかJIT技術の長年の代表者かな
でもJavaとV8は実際やってることは全くと行っていいほど違う

何故かと言うとJavaは結局コンパイルしてバイトコードにした時点で実際の最適化の殆どは済んでいる、実際はJITはオマケのコンパイル言語だ
そこから少しだけプロファイルを取ったり、各環境向けに最適化するが、微々たるもの
そもそもバイトコードにした時点で情報が結構失われるからそこからJITするのに限界がある構造

でも静的なのでそんなチャレンジングなことをしなくても大体のケースで十分に最適化できるので
バイトコードサイズを小さくする方を取ってるが、実際幾つかのケースでV8含む完全ソースが手元にあるJITに負ける
一方V8は実行時というか実行前から実行中までずっと最適化し続けるJITをやや超えるもの
0483デフォルトの名無しさん
垢版 |
2017/03/04(土) 15:50:13.16ID:W8crb5iK
Javaなんかコンパイラがどんなに良質なバイトコードを吐いたところでJITを切ったら使いものにならないよ
0489デフォルトの名無しさん
垢版 |
2017/03/05(日) 07:40:06.85ID:c4lSj3ER
>>488
それベンチマークに特化したコードでの話じゃね?
それならJavaでも似たような差がでるよ
0490デフォルトの名無しさん
垢版 |
2017/03/05(日) 19:03:52.33ID:ONGjQtv5
>>489
良いことなのかも知れないけれど、昔のインタプリタの頃のとてつもない低速度忘れちゃったんだな
0496デフォルトの名無しさん
垢版 |
2017/04/16(日) 00:02:02.80ID:AmA5ei6y
大体型を書くのが面倒ってのも良くわからないし、型推論とかもあるのにな
あと型が書いてあったほうが読みやすい場面も多々あるし
機械にもわかりやすくて人間にもわかりやすくて、丁度よいじゃないか
あとほか宣言があると・・・宣言は型だけじゃなくスコープの宣言でもあるわけでして
宣言なし言語はスコープが気持ち悪いことになってるのが多いよなw

それからダックタイピングは本当に必要なのかどうなのか
静的型であってもジェネリックやテンプレートやオーバーロードがあれば
静的なダックタイピングは可能なわけで、しかもタイプセーフだし
動的なダックタイピングなどという危険極まりないものが本当に必要なのか?
ダックタイピングは静的に解決できる範囲で楽しめばよいだろうよ
それですら黒魔術とか言われるのにな

あと、WebAssemblyな、結局C++などの静的型言語を中間言語にしたものを
ブラウザで読み込んで機械語に変換して実行しようよっていう
どこまで行っても結局型が判明しているほうが最適化しやすいよね
CPUの進化が鈍化してきているし、物理的限界が近いことも考えれば当然の流れだな
0497デフォルトの名無しさん
垢版 |
2017/04/16(日) 05:04:24.13ID:O+EWztiU
WASMでDOM操作とか夢のまた夢だし、
そもそもJavaでのDOM操作も実情はきつかったし
別にWebで無くてもいいような1つのアプリケーションを作るんなら
型は有用だけど、何かと何かをくっつけたり、加工したりするための
スクリプト言語としては全くの不要だよ
0498デフォルトの名無しさん
垢版 |
2017/04/16(日) 07:06:11.63ID:aIkdKg/w
>>496
> それからダックタイピングは本当に必要なのかどうなのか
> 静的型であってもジェネリックやテンプレートやオーバーロードがあれば
> 静的なダックタイピングは可能なわけで、しかもタイプセーフだし

ダックタイピングのこと分かってないだろ
0499デフォルトの名無しさん
垢版 |
2017/04/16(日) 09:52:33.87ID:SqhlDt4o
ダックタイピングはそれをプログラマが活用するのではなく
動的言語における多態性の(安易な)実装手法にすぎない
0500デフォルトの名無しさん
垢版 |
2017/04/16(日) 10:22:58.46ID:XyqfpBE9
という完全に誤った理解が蔓延しているというお話し
0501デフォルトの名無しさん
垢版 |
2017/04/16(日) 10:23:01.86ID:AmA5ei6y
>>495のURL先は皆読んでくれたかわからんが
掛け違えたボタン感が本当にすごくて
最初の一歩を間違えるとこんなにも面倒なんことになるのかって感じ
北朝鮮はどこまで進化しても北朝鮮ってことなんだろうよ
うすら寒い理想の未来を語るところもよく似ている
過去に生きて、未来を語って、現在に生きてないって感じ
まさに掛け違えたボタンで、「現実」のボタンをスキップして飛ばしている
胡散臭い宗教とかもそんな感じだよね
たぶん「現実」に不満がある人を集めるのが目的だから
過去の技術を使って、未来を語ってみせて、騙くらかすって事なんだろうな
これがまさしく、走り続けないと終わる、の意味だろう
でももう流石に誰も騙されないよね
麻疹みたいなものだから、学生さんは一度はそういう目に合うかもだが
0502デフォルトの名無しさん
垢版 |
2017/04/16(日) 10:25:51.21ID:AmA5ei6y
もしくは、ボタンを掛け違えていることに本人だけが気付いていなくて
誰も追いついてこないな〜なんて思っていたら
実はみんなもっと遠いところで高度なことをやっていた、ってパターンか
誰も追いついてこないんじゃなくて、フォロワーが居ないってことなんだけどね
0503デフォルトの名無しさん
垢版 |
2017/04/16(日) 11:27:58.86ID:cCOM2/u0
ダックタイピングというのは、(人間が)ガーガーと
アヒルのモノマネをすれば、アヒルとみなして扱おう
という発想から生まれたもの
0504デフォルトの名無しさん
垢版 |
2017/04/16(日) 15:33:13.73ID:aIkdKg/w
>>501
ダックタイピングのことを何も分かってない人間がいくら言おうと説得力はゼロだよ
0505デフォルトの名無しさん
垢版 |
2017/04/16(日) 16:41:45.39ID:AmA5ei6y
残念ながら>>499が正解なんだな〜
俺も、もし何かの都合で自分で言語を作る必要性に駆られたら
そうするだろうね、実装が圧倒的に楽だから

つまり、自分で言語を作って、自分で使うんなら
現代においてもなお、動的型はありうるんだよ、これが
言語を作る手間と時間もコストとして換算して
トータルで労力を最小にしたいから
どこでバランスするかの問題

もしくは自分はもっぱら言語を作るのがメインで、使うのは他のやつって場合も
自分だけが楽できれば良いという身勝手な発想に行き着いたのなら、ありえる
自分は静的型言語でその恩恵を十分に得ながら言語開発して
他人は自分の作った言語で苦しむっていう
人として最悪な感じにはなるけど、まぁ最終的には良心の問題
金もうけのためだったり仕事って事なら仕方ないけど
人生の目標にしたら只の嫌がらせだな

それはそれとして、既存の言語を使うだけなら
わざわざ手抜きな言語をあえて選択する意味はないよ
0507デフォルトの名無しさん
垢版 |
2017/04/16(日) 16:45:25.04ID:cCOM2/u0
ダックタイピングはジェネリクスではなく
インターフェースで代替するもの
0508デフォルトの名無しさん
垢版 |
2017/04/16(日) 16:49:53.76ID:aIkdKg/w
>>507
その通りだね

そしてインタフェースをいちいち付けてまわるのは非常に面倒臭いこと
自分で作るクラスならまだ何とかなるが、使ってるライブラリのクラスだとそうもいかない
0509デフォルトの名無しさん
垢版 |
2017/04/16(日) 16:54:54.02ID:cCOM2/u0
> そしてインタフェースをいちいち付けてまわるのは非常に面倒臭いこと

めんどくさい? ダックタイピングではインターフェースがないから
代わりにコメントで同じ情報を書かないといけないじゃん。

インターフェースの情報(コメント含む)を書かないで
それが仕様かどうか分かってもらえると思ってんの?
0510デフォルトの名無しさん
垢版 |
2017/04/16(日) 17:00:32.58ID:aIkdKg/w
>>509
コメントなら書くか書かないかは開発者が選べる
それを「低レベルコード生産要素」と見るか「プログラマの自由を保証」と見るかは
ポジションによる

Matzなんかは後者の立場なんだろうし、日本のSIのような人月計算でレベルはおかまいなしのような
プロジェクトに関わってるような人から見れば前者になるんだろうね
0511デフォルトの名無しさん
垢版 |
2017/04/16(日) 17:01:19.16ID:AmA5ei6y
「静的な」ダックタイピングはジェネリックとオーバーロードで実現可能
という風に書いたのにこれが理解できないのではどうしようもない
きっと静的と動的の違いも理解できてないんだろう
静的なダックタイピングはタイプセーフだし
本当にうまい落としどころだなぁって思う
何もかもが静的型に都合がよいように回ってて、ちょっと怖いね
とはいっても俺も何でもかんでも型で解決しようってのはあまり好きじゃなくて
一つのアイデアが上手くいくと一気に乗っかっていく感じは何か過剰というか
ただ、そうはいってもダメなものがダメなことには変わりないんだけどね
0512デフォルトの名無しさん
垢版 |
2017/04/16(日) 17:01:47.01ID:cCOM2/u0
>>510
> コメントなら書くか書かないかは開発者が選べる

言い換えると、
コメント書きたくない、仕様書を書きたくない。
コード読まないとわからない。
というコードを書きたいってことか?

ひどいな。だから可読性が下がるんだよ。
0513デフォルトの名無しさん
垢版 |
2017/04/16(日) 17:03:04.51ID:aIkdKg/w
>>511
ぜんぜん違う
ほんとダックタイピング分かってないんだな
ID:cCOM2/u0 なんかはその辺分かってるから議論になるけど、お前にゃ無理だよ
0514デフォルトの名無しさん
垢版 |
2017/04/16(日) 17:07:46.06ID:aIkdKg/w
>>512
Matz の有名な言葉に「ソースがドキュメントだ.バグも完全に記述されている」ってのがあるからねぇ
冗談半分だとしても、思想としてそういう方向なんだろう

本気半分の言い分としては、ソース読んだだけでちんぷんかんぷんなコードはその時点で怪しいと思え
って感じだろうか
0515デフォルトの名無しさん
垢版 |
2017/04/16(日) 17:08:31.24ID:cCOM2/u0
インターフェースは契約プログラミングの一種でもあるんだよ。
インターフェースを定義することは事前条件を定義することにあたる。
事前条件を記述することで、予め(プログラムを実行しなくても)バグがあることがわかる。

実行パスは無限と言ってもいいほどあるから、実行しなければ
わからない問題を検出するのは時間がかかる。

だけど、条件を満たすかどうかを調べるために、
実行そのものが必要なければ、短時間で問題が検出できる。

コンピュータが理解できる方法で、しかも実行せずにわかることと
コメントという人間しか読めない方法で書くのとでは全然意味が違う
0516デフォルトの名無しさん
垢版 |
2017/04/16(日) 17:09:43.45ID:AmA5ei6y
静的型において動的な多態にインターフェースを使うのは当たり前
動的なことは危険な香りがするから、インターフェースで制約する
これも丁度よいぐらいの落としどころなんだよ

静的な多態はジェネリックとオーバーロードでダックタイピングも可
動的な多態はインターフェースを通して安全に
どちらの場合もタイプセーフ

よくできているよね〜
0517デフォルトの名無しさん
垢版 |
2017/04/16(日) 17:10:37.85ID:aIkdKg/w
>>515
そういう方向でバグを減らすというのもひとつの方向性としてはいいんじゃない?
単なる思想の違いというだけで、そういうのが嫌いな人が作った言語だって別に悪いわけじゃない
■ このスレッドは過去ログ倉庫に格納されています

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