【JavaScript】スクリプト バトルロワイヤル52【php,py,pl,rb】 [転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2015/09/30(水) 10:56:12.10ID:U+dh/xlD【JavaScript】スクリプト バトルロワイヤル51【php,py,pl,rb】(c)2ch.net
http://peace.2ch.net/test/read.cgi/tech/1438094104/
0002デフォルトの名無しさん
2015/09/30(水) 13:15:48.72ID:/h7yi4VPYahooからステマ認定され広告を解約されたマイナビは低級言語を推してくる
"プログラミング言語別"の求人年俸額の順位、1位は「Python」で平均382万円
ttp://news.mynavi.jp/news/2014/10/30/277/
ITも特亜に工作されているということだよ
ジャップは低級言語でいつまでももがいていろということだよ
0003デフォルトの名無しさん
2015/09/30(水) 22:51:45.25ID:bqsObMsVPythonなんておもいっきり高級言語じゃねえか
0004デフォルトの名無しさん
2015/09/30(水) 23:36:21.27ID:QOvaNotd0005デフォルトの名無しさん
2015/10/02(金) 12:02:07.87ID:AKckLqECWe are starting public development of 2ch's new javascript frontend.
Please follow here if you are interested:
https://github.com/Cipherwraith/2ch/ …
0006デフォルトの名無しさん
2015/10/09(金) 12:14:34.38ID:4+L35LN5http://postd.cc/procedural-dungeon-generation-algorithm/
0007デフォルトの名無しさん
2015/10/09(金) 20:50:05.15ID:a6l66mp20008デフォルトの名無しさん
2015/10/09(金) 21:00:28.32ID:ELEmlsjjフレームワークが各言語で出ている現状でもまだトップを走っているのがすごい
0009デフォルトの名無しさん
2015/10/09(金) 23:34:57.01ID:0yJdvn1+これ使われてる言語なに?
Lua?
0010デフォルトの名無しさん
2015/10/10(土) 03:39:03.65ID:9WMmqKq2みたい
http://i.imgur.com/KdUax4z.jpg
0011デフォルトの名無しさん
2015/10/10(土) 20:55:43.82ID:wylVu18OPHPとrubyみて文法の良さでPHPが勝ってると思う奴なんていない
速度に関しては遅いってデマが嘘だと気づかれ始めてる感じはあるか
0012デフォルトの名無しさん
2015/10/10(土) 21:12:01.67ID:wZWPBuKi静的型の有用性が明らかになってきたね
0013デフォルトの名無しさん
2015/10/10(土) 21:23:38.22ID:7qoXcIfaRailsはRuby2をRailsScriptとしてフォークしそうだな
そしてRubyもRailsも共倒れのパターンだ
0014デフォルトの名無しさん
2015/10/10(土) 21:52:28.29ID:B7+308rF0015デフォルトの名無しさん
2015/10/10(土) 22:05:16.74ID:t3GFdbA2現行の何でもアリ型は何でもアリ型というひとつの型で残すんだよ
整数型や文字列型と同様に型のひとつになるってだけだ
0016デフォルトの名無しさん
2015/10/10(土) 22:14:42.66ID:rHFZYJSjそういう歪な状態を意識高い(笑)rubyist連中が受け入れられるかどうか
0017デフォルトの名無しさん
2015/10/10(土) 22:28:42.96ID:wZWPBuKi静的型の機能が有るなら、
型は出切る限り書くべき、その方が綺麗、って空気になると思う
静的型言語ではキャストはなるべく避けた方が綺麗ってのは常識だしね
静的型を導入するということはそういうことかと
機能が有るのに活用しないのもおかしな話だからな
しかーし、Rubyの静的型がまともに機能するのが前提だが
ジェネリックとかが無くて実質的に静的型がまともに使えない代物のなら
Rubyの静的型は偽者って言われるだろうし、混乱しそう
そのへんどうするんだろうね
しかもmatzはあまり静的型に乗り気ではないと想像してる
今までずっと動的型の優位性を説いてきたような人だからね
とはいっても周りがどんどん導入してきているからね
静的型はスクリプト界のトレンドだから
0018デフォルトの名無しさん
2015/10/10(土) 22:38:37.78ID:rHFZYJSjRubyもああならないことを祈る
0019デフォルトの名無しさん
2015/10/10(土) 23:00:14.12ID:37NZkingたぶんまつもとによる実装は無理。
かつてのRite同様にベーパーウェアに終わるだろうね。
0020デフォルトの名無しさん
2015/10/10(土) 23:21:49.91ID:WT9ul4l1Common Lispの様なマクロを持った昔から使われている言語も重要だろう。
JavaScriptは今やMac自身Automatorなども動かせるし、フロントエンドバックエンドなども動かせる様になったのでそれを学ぶ意味ではとても便利な言語。
そしてオープンソース化が期待されていて、ハードウェアとソフトウェアの高い次元で上手く設計されるだろうSwift 2
妥協点ととっつきやすさ、今後のコンピューターの進展を見据えて設計されているだろうSwift 2に期待かな。
Swift 2と全く同じ事すれば言語としては流行るかもねw
もっとも後追いだし先に地雷踏めばSwift 2はかわして設計するだろうし、
良い設計をすればSwift 2にパクられておしまい。
新しい言語なんて作る必要も無いし、Rubyとか誰も本気出してないプログラム言語と心中する人の気がしれないね。
Python, JavaScript, Common Lisp, それとSwift 2やっとけばいいと思う。暇なときにC/C++という感じかな、時間の上手い使い方として。
それ以外の時間は英語やマーケティング、トレンドやデザイン、数学や物理やってた方がより良いソフトウェア使えたり面白い製品作れる可能性ある。
あれもこれもプログラミング言語使えてLAMP使えてスゲーしてるのってガラパゴス日本だけwwww
0021デフォルトの名無しさん
2015/10/10(土) 23:36:31.24ID:B7+308rFhttps://www.amazon.co.jp/dp/4873117437/ref=cm_sw_r_awd_sfsgwbW99QRFE
0022デフォルトの名無しさん
2015/10/10(土) 23:43:40.71ID:rHFZYJSj0023デフォルトの名無しさん
2015/10/11(日) 00:53:57.26ID:8f2DNTjb> まず、優れたソフトウェアがPythonで書かれてる事が多い、自然言語処理系や人工知能系、Deep Learningなど。
優れたソフトウェアの定義が狭すぎだねw
OSはC/C++だったりするし、PHPのwikipediaとか
TwitterやFacebookなんかもある。
君がそこにあげているのを見ると、優れたソフトウェアというより
優れているかどいうかは別として、科学技術の基礎研究用(+成果のライブラリ)
という気がするね
0024デフォルトの名無しさん
2015/10/11(日) 04:03:23.39ID:06RK7D7v0025デフォルトの名無しさん
2015/10/11(日) 04:53:23.53ID:pSDbZ28N0026デフォルトの名無しさん
2015/10/11(日) 07:41:21.27ID:U3MJCY0JGUI(マルチウインドウ、ポップアップメニューなどのノウハウ蓄積)、
からめてMVC(リエンスカウの古典から、MVP、MMVC、その先のDCIまで)、
さらにデザパタ(GoFはいうに及ばず、アレグザンダーいうところの無名の質まで)や
アジャイル(xUnitから、TDD、XP)などの開発手法が生み出された経緯、
メタプログラミングや遅延結合(http://metatoys.org/oxymoron/oxymoron.html )、
VM高速化技術(古典ではJITからJava HotSpot、近年ではSqueak CogやSpur)、
OODBに繋がるオブジェクト永続化技術(イメージベース、GemStone)とか
いろいろ遊べて学べるSmalltalkも、PGならコモンセンスとして備えておきたい。
http://zerobase.hateblo.jp/entry/2013/02/24/015610
Smalltalkをちょっとかじってみたい人のためのチュートリアルまとめ
http://qiita.com/sumim/items/6bed17961bd57daf88a3
さすがにこれでスタートアップ、資金1億調達まで目指すのは苦行だけど^^;
https://twitter.com/takano32/status/649384263515660288
0027デフォルトの名無しさん
2015/10/11(日) 10:09:35.92ID:jdhTMeItチャレンジャーだな…
0028デフォルトの名無しさん
2015/10/11(日) 10:18:19.81ID:gadIIZk0言語処理系は情報処理の理論がそのまま実用になる数少ない分野だからね
やってることが非常に単純な割にはソフトウェア開発の重要な部分を占めるので、
技術バカの大好きな視野狭窄なクォリティ追求が許されてしまうし
0029デフォルトの名無しさん
2015/10/11(日) 13:32:15.53ID:AIIBuHzT広告クリックさせたりする事が優れたソフトウェアやサービスとは思えないからTwitterとかFacebookとかクソだね。
SVの人達もそういう考えだし。
0030デフォルトの名無しさん
2015/10/11(日) 15:57:18.77ID:XJEeMP8Fやっぱり考え方が狭すぎだねw
0031デフォルトの名無しさん
2015/10/11(日) 19:15:14.88ID:5ati5bYzなぜ静的型を動的言語で?
最初から静的言語を使えばいいだろ
おわり
0032デフォルトの名無しさん
2015/10/11(日) 19:41:24.67ID:6jGim2k9別に一部で型を明記したところでそうでない部分との関係で対して最適化や補助は効かないけど
ドキュメントとしては価値がある。
0033デフォルトの名無しさん
2015/10/11(日) 20:25:48.63ID:XJEeMP8Fそこに何型が入っているかはわからんのだよね。
処理を読めが型は推測できるが、推測して判明するまで
時間がかかるのは、可読性が低いということを意味する。
名前からは何型かわからないが、処理は特定の型
専用のコードになっている。
変数自体は動的であっても、処理自体は動的ではない。
処理が動的じゃないのであれば、型も静的でいい。
0034デフォルトの名無しさん
2015/10/11(日) 20:58:32.42ID:6jGim2k90035デフォルトの名無しさん
2015/10/11(日) 21:18:59.86ID:VUX4VOf2だって、メソッドの引数の型は、呼び出し元で変数を渡してもらって始めて決定する
未だかつてどこからも呼び出されていないメソッドの引数の型は解析も無理
0036デフォルトの名無しさん
2015/10/11(日) 21:48:52.37ID:gadIIZk0メタプログラミングを捨てずに静的チェックやるなら、
チェック時に全てのクラスの中身を一度実行してみて、
その結果できたクラスオブジェクトを解析するしかないんじゃないかな
解析する時と実行する時でクラスのコンテキストが変わるというのは、
クラスを書く人にとってはバグの温床になりそうだが
0037デフォルトの名無しさん
2015/10/12(月) 03:41:12.46ID:53GvI8rGだいたいのメタプログラミングってのは、実行時にやりたいんじゃなくて
実行前にやれば十分なんだよ。
例えばある標準クラスがあったとして、そこにメソッドを
つけ加えたいなと思った時、実行時につけ加えるじゃなくて
実行前に付け加えれば十分でしょ?
0038デフォルトの名無しさん
2015/10/12(月) 04:56:12.47ID:L9nzf7kh別に完璧である必要はないじゃん
ある程度上品な書き方(MethodMissingとか動的なメソッド追加とか使わない)において
ある程度の情報が提供されればそれで十分だと思うけど
0039デフォルトの名無しさん
2015/10/12(月) 09:31:45.11ID:+zms5d6G0040デフォルトの名無しさん
2015/10/12(月) 09:38:22.19ID:QcfJYyiX超賢いIDE(jediとか)があるんだから、Rubyでもヨユーヨユー
0041デフォルトの名無しさん
2015/10/12(月) 10:24:06.79ID:kiUfesSBおまえらの仕事は余裕のない弱者を助けることだけだ
0042デフォルトの名無しさん
2015/10/12(月) 11:46:17.79ID:7BEPgWVxRubyのOOPは本物
動的なメソッド追加は本物の証
この解釈が撤回されたときC++は復活する
0043デフォルトの名無しさん
2015/10/12(月) 11:47:38.50ID:lzwRwYon従来変数名でやってたことだね
それだけのことで静的型を入れようとかいう話になるの?
0044デフォルトの名無しさん
2015/10/12(月) 11:51:33.35ID:DSHcQooMRubyの静的型は偽者
って言われる日がくるかもね
0045デフォルトの名無しさん
2015/10/12(月) 11:52:06.13ID:GPJRvwrYRails土方、恐るべしだな
0046デフォルトの名無しさん
2015/10/12(月) 12:06:39.18ID:DSHcQooM第一引数だけを特別扱いしてレシーバとして前に出して記述するRubyのOOは偽者だよね
真のOOPならこうかけなきゃ
( obj1, obj2 ).method
もしくは
method( obj1, obj2 ) ←これで多態出来なきゃね
動的型言語の癖にこんな事もできないRubyは偽者だよ
0047デフォルトの名無しさん
2015/10/12(月) 15:19:12.41ID:83Q2zR6Pあくまでも個人的な意見ね。
0048デフォルトの名無しさん
2015/10/12(月) 16:39:34.85ID:NwCMAomS例えばJavaScriptでも
自動振り分けのラッパー噛ませた関数を出力するヘルパー作っておいて
共通プロトタイプと組み合わせて使えば、
もしくは適切な方に適切に振り分けるプロキシを共通プロトタイプにしておけば
スマートに実現できると思うけど、
Rubyでも出来るんじゃないの?
0049デフォルトの名無しさん
2015/10/12(月) 17:20:55.95ID:jcvepef5anch:[this.tag.dt, this.infobg, is_anch(e)]
}
で
(o.anch[2])? o.anch:"";
ができるんだな
0050デフォルトの名無しさん
2015/10/12(月) 17:21:47.20ID:53GvI8rG工夫すればなんでも出来るんだよ。
例えばC言語でオブジェクト指向ができるように。
だけどそういうのは本物ではない。
0051デフォルトの名無しさん
2015/10/12(月) 18:52:10.29ID:7BEPgWVx「C言語はオブジェクト指向言語」と宣言したら嘘で偽物だが
宣言しなければ嘘でも偽物でもない
宣言することがそんなに良いことなら自分ですればいいのに
他人に広めようとしてる時点で怪しいんだよ
0052デフォルトの名無しさん
2015/10/12(月) 19:02:59.91ID:DSHcQooM実物がいい加減な代物で「嘘」「偽者」だったって未来へ向けてのフリですね
0053デフォルトの名無しさん
2015/10/12(月) 20:49:27.38ID:ZTa/or21Rubyのことをちょっとでも知ってるなら、ただの燃料だということはすぐ分かりそうなものなのだが…
0054デフォルトの名無しさん
2015/10/12(月) 21:06:58.48ID:GPJRvwrY少なくともケイのメッセージングOOP(が本物と言うつもりはさらさらない。為念)の考え方では
(obj1, obj2).msg なら (obj1, obj2) というタプルに対するmsgというメッセージ送信になるのでは?
そもそもこのパラダイムでは、msgというメッセージ送信によってセレクタmsgと同名のメソッドmsgが
コールされるとは限らないという仕組みにより遅延結合をユーザーに意識させるところがミソなので、
http://metatoys.org/oxymoron/oxymoron.html
マルチメソッドを持つか(メソッドのオーバーロードが可能か)否かはいうに及ばず、
メソッドが静的型を持つかといった話とは別のような。
ケイ曰わく、
「型には反対しないが、複雑さに悩まされない型システムを見たことはない。動的型付けはまだマシだ。」
http://d.hatena.ne.jp/katzchang/20080807/p2
0055デフォルトの名無しさん
2015/10/12(月) 21:58:43.99ID:DSHcQooM0056デフォルトの名無しさん
2015/10/12(月) 22:01:06.33ID:lzwRwYon0057デフォルトの名無しさん
2015/10/12(月) 22:20:18.93ID:DSHcQooM静的型に対してかなりモニョってる印象
しかーし、最近のスクリプト言語はこぞって静的型を取り入れているし
流行に敏感ってことにしたいRubyとしては取り入れざるを得ないんだわ
一体今更どういう風に取り入れるかは見ものではある
静的型を導入すると当然昔からの風習にならって
「なるべく型は書くべき」、って派閥が出来るだろう
しかしそれはRubyの世界観にアンマッチになるっつーかさ
しかも、もし、ジェネリックすらないような中途半端な静的型しか導入できなかったとしたら
まともに使い物にならないものを押し付けられる
使い物にならなければ使わなければいいわけだが、
しかし型は書いたほうが良いという古くからの風習もあり、
一体どうしたものかと途方に迷う事になる
0058デフォルトの名無しさん
2015/10/13(火) 02:05:16.01ID:3QE/NkoPC++のoopはバートランド・メイヤーの流れをくむものじゃないかな。時期的にC++のが早かったとしても。
メイヤーのeiffelはあれはあれで良いものだぞ
0059デフォルトの名無しさん
2015/10/13(火) 02:17:53.92ID:O9bZKJjD途方に迷うのではなく暮れるのさ
0060デフォルトの名無しさん
2015/10/13(火) 06:34:58.02ID:3LDxUoaZ1年前にmatzが自分で動的言語信奉者だと言ってたのを聞いたことあるけど
これじゃ更に人気を落としてくんだろうね
0061デフォルトの名無しさん
2015/10/13(火) 06:48:50.37ID:cMOwnvUDそうか、マルチメソッドはそのタプルクラスのメソッドと考えることができるのか
だったら配列クラスのメソッドミッシングメソッドを賢くしてやれば実現できそうだな
0062デフォルトの名無しさん
2015/10/13(火) 09:20:37.48ID:Rl12UR24そうですね。あとはC#の拡張メソッド(実体は静的メソッド)みたいに構文糖をまぶせば
通常のメソッド呼び出し(メッセージングOOPのパラダイムならレシーバーへのメッセージ送信)の
書き方にできるはずです。
ただ、ぱっと見レシーバーに見えるオブジェクトが、実質はタプル・配列等の要素となってしまっているため、
その(あるいはそれらの)内部情報に対する当該メソッド記述中でのアクセスについては制限が加わります。
C#の拡張メソッドと同じですね。
CLOS等の総称関数のように割り切るか、従来のメソッドと同レベルの使い勝手や
メソッドのありかた(特定のクラスに内包される)にこだわるならさらなる細工が必要になるでしょう。
(Dylanがこの問題をどう解決しているかは調べてません。ごめんなさい)
あと参考まで、メッセージングOOPのパラダイムでは古典的にはダブルディスパッチというベストプラクティスパターンが
すでにあるので、構文までいじくり回してマルチメソッドやメソッドオーバーロードを実現する価値が本当にあるか
よく吟味する必要はあるのかとも思います。
0063デフォルトの名無しさん
2015/10/13(火) 09:44:43.93ID:IPzu3dLLタプルに対する拡張メソッドにしたところでマルチメソッドでもなんでもないだろ
>>46
0066デフォルトの名無しさん
2015/10/13(火) 11:00:06.67ID:E12GE1WX>>46については「本物のOOP」が指すのがケイの動的・遅延結合をモットーとするメッセージングのOOPなのか、
ストラウストラップ・メイヤー・リスコフらの抽象データ型をクラスで実現するOOPなのかをはっきりさせないと。
もっとも、前者なら>>54にあるとおりメッセージ(に含まれるセレクタ)と同名メソッドのコールを保証する義理はないし、
後者ならレシーバとかいう表現がでてくる時点で何を言っているのか意味不明になるから、どっちにしてもあれだけど。
Rubyを擁護する気はないけど、Ruby開発陣の技術力不足をすべて動的・遅延結合におっかぶせる論調はよくない。
0067デフォルトの名無しさん
2015/10/13(火) 11:19:38.71ID:aIVsWkpsそれが出来ることによって何がどう役立つの?
0068デフォルトの名無しさん
2015/10/13(火) 11:23:22.41ID:BR4NEKph0069デフォルトの名無しさん
2015/10/13(火) 11:37:53.98ID:eox7qbM1第一引数を特別扱いしたら偽者、というのはマルチメソッドとは関係ない
第一引数に頼らないクロージャを使って書き直すだけでOK
0070デフォルトの名無しさん
2015/10/13(火) 11:58:16.93ID:LdSr9S5L0071デフォルトの名無しさん
2015/10/13(火) 12:10:35.89ID:WPI+iK8W引数は0個から無限大まで幾つあってもよいはず
その中で第一引数だけ特別扱いして
しかも前に出して記述するのは対象性の観点から見てどうなのか
引数は全て等しい扱いを受けるべきでは
ここをクリアしないことにはOOPは学問になれない
単なる経験則で終わってしまう
0072デフォルトの名無しさん
2015/10/13(火) 12:34:02.06ID:BR4NEKph可読性というものはそういうことなんだよ。
コンピュータから見れば、どちらでも同じだが、
人間が見てどう感じるかが、重要。
0073デフォルトの名無しさん
2015/10/13(火) 12:35:50.72ID:aIVsWkps確かに定義においては認めるけど、使用の際には、そんなごく稀な記法を特別に使わせるのは分かりやすくないと思う
0074デフォルトの名無しさん
2015/10/13(火) 14:24:13.32ID:WPI+iK8W人間からみても何とも言えないような場合はどうするんだ?
0075デフォルトの名無しさん
2015/10/13(火) 14:31:26.07ID:i1awIWf/何と何の話?
0076デフォルトの名無しさん
2015/10/13(火) 14:39:04.87ID:WPI+iK8W1+2なんてどう?
Rubyは1に+2ってメッセージが飛んでくるってノリらしけど
数学的ではないしように思うし
人間的にもplus(1, 2)ってイメージなんだが
0077デフォルトの名無しさん
2015/10/13(火) 15:32:13.81ID:WPI+iK8W「1」に「2」を足しこむ機能が備わっているって解釈はどうなんだろう
「1」に「整数の1」以上の意味は要らなくない?
単なる整数の「1」や「2」をどう使うかは、演算子の「+」が決める事では?
「1」が「+2」を処理するというよりは、「+」が「1」「2」を処理するのでは?
そっちのが数学的だと思うんだが
0078デフォルトの名無しさん
2015/10/13(火) 15:41:38.20ID:i1awIWf/何を考えているのかさっぱりわからんが、
人生を思い返してみればわかる。1+2という数式は
小学校でならって体に染み付いている。
これが人間が読んだ時の可読性ということ。
可読性というのは、過去の経験から決まるものなんだよ。
例えば、1を○、2を△、+を□に置き換えて、
○□△と書いたとしても同じ意味になるんだけど、
読みにくいでしょ? そんな風に習ってないから。
0079デフォルトの名無しさん
2015/10/13(火) 15:42:38.37ID:WPI+iK8W「1」と「2」が両方力を合わせて「+」を処理するってノリならまだ分かるんだけど
「1」が「+2」を処理するってのは腑に落ちないものが有るね
1+2で、「1」と「2」に格差がありすぎる
それに「+」の演算の定義は「1」が決めずに「+」自身が決めれば良いような
0080デフォルトの名無しさん
2015/10/13(火) 15:44:45.88ID:WPI+iK8W言葉が足りなかったね
表記は1+2で問題ないが、その解釈の問題
Rubyは1が+2というメッセージを処理するって解釈する
1に演算がぶら下がっている状態
単に1と2を足すという、ただそれだけの事に
それ以上の拡大解釈が必要なのかという事
0081デフォルトの名無しさん
2015/10/13(火) 15:49:04.01ID:WPI+iK8W>小学校でならって体に染み付いている。
全くその通りなんだよね、体に染み付いている
1+2は単に1と2を「+」という処理をするって考える
1と2は単なる数で、+は両者間の演算を定義している
ところがRubyは1が+2というメッセージを処理する、と考えることになっている
これは小学校からずっと習ってきた事と違うし不自然だね
小学校で1+2を1が+2を処理する、とは習わないだろう
0082デフォルトの名無しさん
2015/10/13(火) 15:59:08.67ID:WPI+iK8W「1」と「2」の格差が物凄いことになってしまう
「1」は足し算の処理をする主体そのもので、足し算の意味すら定義している
「2」は単なるデータ
ここは一つ、マルチメソッド風に、「1」「2」が共同で「+」を処理する、と考えるか
もしくは単に、「+」が「1」「2」を処理する、と考えたほうが、素直なのでは
0083デフォルトの名無しさん
2015/10/13(火) 16:38:33.72ID:lCXr92CTobj.selector(args) を obj への selector(args) というメッセージの送信だという
解釈は曲げてはダメでしょう。たとえ小学校でそのように習わなかったとしても。
0084デフォルトの名無しさん
2015/10/13(火) 16:49:10.34ID:lCXr92CTアラン・ケイは、オブジェクトにメッセージを送るという操作ですべてを表現する世界線で
3+4 という演算も説明できるようにするには、3 に +4 というメッセージを送ると解釈すればよい
というアイデアに思い至ったわけです。
http://gagne.homedns.org/~tgagne/contrib/EarlyHistoryST.html
By this time most of Smalltalk's schemes had been sorted out into …あたりから
0085デフォルトの名無しさん
2015/10/13(火) 17:08:12.66ID:QDO/4Imoたまたま3+4という表記に限ってはたまたま交換定義も成り立つしそう見えるかもしれないけど
0086デフォルトの名無しさん
2015/10/13(火) 17:32:14.96ID:eox7qbM1情報が漏れるgetterと
情報が丸見えのHashTableを使え
multimethodTable[obj1.getType()][obj2.getType()](obj1, obj2)
0087デフォルトの名無しさん
2015/10/13(火) 17:37:36.35ID:tExxK6rC0088デフォルトの名無しさん
2015/10/14(水) 12:51:47.73ID:Zx/eGv5tDylan のマルチメソッドを調べてみましたが CLOS 同様に単なる総称関数で特別な工夫はないようです。
そこで、>>46 に質問なのですが、本物のOOPにはマルチメソッドが必要だよ派、
あるいは、第一引数だけ特別扱いはNG派としては、マルチメソッドを記述する際に
どの引数(オブジェクト)の内部情報にアクセスできるようにしたらよいと考えていますか?
あるいは総称関数のように内部情報のアクセスに関しても特別扱いはしないという立場でしょうか?
0089デフォルトの名無しさん
2015/10/14(水) 13:07:10.70ID:oRHV6ndYつまり、そういうこと
つきつめればOOは面倒な事が沢山起こる
統一理論のようなものは無い
全ては経験則
0090デフォルトの名無しさん
2015/10/14(水) 17:15:12.58ID:D87FbFvBC言語が嫌いじゃないなら、C言語を統一理論にすれば全て丸く収まる
C言語が面倒ならどこが面倒か理論的に解明してからOOやらないと砂上の楼閣になる
0091デフォルトの名無しさん
2015/10/14(水) 20:06:32.48ID:EqVBJrGR?
0092デフォルトの名無しさん
2015/10/14(水) 21:17:42.32ID:dBNBVrr+0093デフォルトの名無しさん
2015/10/14(水) 21:25:49.86ID:oRHV6ndY第一引数だけ特別扱いするのは対称性の観点から気持ち悪いのはおいておいて
ともかく当面は
RubyにC#並みの静的型のシステムが組み込まれるかどうかだな
当たり前だけど、中途半端な静的型は、有るだけ邪魔で使い物にならない
ジェネリックも何もなくてC言語程度の静的型の機能しか導入されなかったら
今の時代に使い物にならないし、
当時そういう柔軟性の無いC言語の静的型システムが不便に感じたから、こその
Rubyだったわけだから、今更C言語程度の静的型ではダメなのは当たり前、何にもならない
やはり今更静的型を導入するなら動的型言語に負けず劣らずな柔軟性をもった?
C#レベルのを導入しない事には、使い物にならないだろう
それに、中途半端な静的型を実装したら、他の最新の静的型言語と比べられて、
静的型に関して優劣を付けられ、Rubyが不利な立場になってしまうかもしれない
もし、動的型言語で柔軟性が売りのはずのRubyが、静的型の機能や柔軟性で
あの堅物のC++にも劣っていたとしたら、良い笑いものになってしまう
なので、最低限ジェネリックと型推論と、できれば共変性と反変性ぐらいは必要かと
0094デフォルトの名無しさん
2015/10/14(水) 21:27:31.95ID:RZLA+pyr英語の文法の観点から見れば、極自然なことです。
0095デフォルトの名無しさん
2015/10/14(水) 21:29:58.48ID:RRpWZ3GK0096デフォルトの名無しさん
2015/10/14(水) 21:35:31.38ID:fHrqAp5Mプログラムは以下に車輪の再発明を避けて生産性を上げるか、人に再利用しやすいコードを書くか、バグを減らせるか。
こういったことが核になる事なのに、その核をダメにする要素をわざわざ自分の怠慢と劣等遺伝子で持ち込む理由がわからない。
そんな事する位ならプログラミングしない方が世のためになるんじゃ無いかな。
0097デフォルトの名無しさん
2015/10/14(水) 21:40:23.30ID:aRVLWehYなるべくマシなクソを作り上げるゲームだよ
0098デフォルトの名無しさん
2015/10/14(水) 21:42:31.55ID:oRHV6ndY英語の文法は必ずオブジェクトを一つとると決まっているわけではないと思いますが、どうでしょうかね
第3文型は SVO では、確かにオブジェクトは一つですのでシングルディスパッチですね
プログラミングでは、Cもオブジェクトと考えても良さそうなので、
第2文型の SVC もシングルディスパッチでしょうかね
第1文型の SV はただの関数、静的メソッドですかね
しかし、
第4文型の SVOO はオブジェクトを二つとりますし、これはマルチメソッドが良いんでしょうかね
第5文型の SVOC はOを主体としたシングルディスパッチと捉えるか
Cもオブジェクトと考えてマルチメソッドと捕らえるかは、人によるんですかね
どちらにしても英語の語順は、動詞→目的語、の並びなので
func( arg );のスタイルは英語の語感に合ってるんですよね
obj.method()は寧ろ日本語的な並びですね、〜を〜する っていう
0099デフォルトの名無しさん
2015/10/14(水) 22:33:52.89ID:aRVLWehY主語と動詞を明確に意識するのはいかにも英語的な感覚だ
引数で述語を修飾しているだけのfunc(arg)の方がむしろ日本語的
0100デフォルトの名無しさん
2015/10/14(水) 22:47:46.19ID:JkkT4x6hアラン・ケイの「『ソフトウェア工学』は矛盾語法か?」http://metatoys.org/oxymoron/oxymoron.html
にある、「新しいアイデアを学ぶとはどういう事か?」あたりと食い違ったことを改めてここで主張する理由は?
いちおう彼は、OOPの「obj msg」という記法を発案し、英語を母国語とする人なのだけれども…
0101デフォルトの名無しさん
2015/10/14(水) 22:48:09.97ID:D87FbFvB■ このスレッドは過去ログ倉庫に格納されています