- 1 名前:デフォルトの名無しさん mailto:sage [2012/01/12(木) 13:14:17.03 ]
- 最強のLL=軽量プログラム言語は、どれよ?
エントリーは、Perl、PHP、Python、Ruby、JavaScript・・・ さあ、死ぬまで語りやがれ!!! ■LLとは? 軽量プログラミング言語(Lightweight Language,LL)とは、取り回しに優れ、 コードの作成や修正が容易と見なされるプログラミング言語のことを指す。 ここでいう「軽さ」はプログラマの負担の軽重を指し、 実行速度に優れているという意味ではない。 現在の水準では ・インタプリタ ・動的型 ・正規表現 ・クロージャ などを利用できるものがLLと呼ばれることが多い。(Wikipediaより) 前スレ 【Perl,PHP】LLバトルロワイヤル19【Ruby,Python】 toro.2ch.net/test/read.cgi/tech/1320405770/
- 921 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 19:36:15.72 ]
- python使っててそういうコードに出くわした記憶がない
- 922 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 19:37:10.33 ]
- >>912
>PythonのsuperはPHP以下 そんなこというと、Python信者が暴れるだろうが―! ttps://twitter.com/#!/methane/status/169769965849817088 > Pythonだと、プログラムを綺麗にしようとするモチベーションが働くけど、 > perlやphpではそういったモチベーションが働きにくくてやっつけコードに > なるのは、俺の個人的な問題なのか、ある程度言語自体が抱えている問題なのか? ttps://twitter.com/#!/methane/status/169771873545097216 > php使うとcometとかWebSocketとか対応が難しいし、HandlerSocketの性能も引き出せないし、 > Fluentのphpクライアントも他の言語で普通にできているバッファリングが普通には出来なくて > 苦労してるらしいし、
- 923 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 19:38:52.74 ]
- ttps://twitter.com/#!/methane/status/169771970525790210
> 「新しい技術に挑戦する」ことを奨励する企業がphpばかり使ってるのは問題だよね。 Python信者の発言こそ問題だけどな。
- 924 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 19:47:15.28 ]
- 大昔にもツイッターのコピペばかりしてる奴がいたけど復活したのか
- 925 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 20:56:41.67 ]
- >>915はアンチPythonのふりをしたPython信者
自演キモ
- 926 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 21:30:44.44 ]
- >>909
> (ただし、デコレータは一種のマクロだから「Rubyとは」相性が悪いように思う) デコレータはただの高階関数(に対する構文糖) Rubyと相性が悪いとすれば、それは高階関数と相性悪いってこと
- 927 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 22:59:25.08 ]
- >>905
もっともなご意見有り難う。そんな事言いだしたら、PerlだってMooseで型制約出来るもんな。切りがない。
- 928 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 00:18:28.13 ]
- ttps://twitter.com/#!/methane/status/169774541797728259
> 社内でPythonをメインで使っていくぞーって吠えてphpをdisったりしてるの、 > 単にガキが暴れてるだけに見えるかもしれませんが、もともと僕自身が > 引っ込み思案なので自分を追い詰めるために虚勢を張っているのです。 > 察してください。 ワラタw Python信者が言い訳しとるww
- 929 名前:Python信者 mailto:sage [2012/02/19(日) 00:49:15.04 ]
- >>918
馬鹿は黙ってろ >>912 どうしてもPython2でその書き方が嫌なら super(ClassName, self).method() の代わりに SuperClassName.method() でもいい さらに どうせインスタンス作った後はsuper変えることなんてなさそうだから __init__の中で __super=super(ClassName, self) とした上で __super.method() って書いても良い 何でobjectクラスの中でそれが定義されてないのかって突っ込むなら Railsのまねで object.__super=
- 930 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 08:01:58.01 ]
- >>929
objectに属性追加出来ないだろ 本当にPython信者か?
- 931 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 08:15:29.58 ]
- >>929
>どうしてもPython2でその書き方が嫌なら >super(ClassName, self).method() >の代わりに >SuperClassName.method() >でもいい ださいことには変わりないけどな >さらに >どうせインスタンス作った後はsuper変えることなんてなさそうだから >__init__の中で >__super=super(ClassName, self) >とした上で >__super.method() >って書いても良い 素人考えだな それは継承を2段階行ったら破綻するやり方
- 932 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 08:29:06.48 ]
- Pythonはこんなにダサいのに
いざコードを書かせるとRubyが圧倒的にダサいのは何故だろう?
- 933 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 08:35:15.15 ]
- >>932
信者だから
- 934 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 09:07:08.15 ]
- >>932
まったくの主観で笑えるw Python信者がんばれ!
- 935 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 09:11:41.50 ]
- >>928
>> 社内でPythonをメインで使っていくぞーって吠えてphpをdisったりしてるの、 disってるという自覚はあるのね 信者って、そういう自覚がないままに行動してると思ってた。 >>929 >super(ClassName, self).method() >の代わりに >SuperClassName.method() SuperClassName.method(self) の間違いだろ 信者がそんなミスするなよな
- 936 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 09:29:05.87 ]
- >>934
Ruby信者には>>898>>914がダサくないの?
- 937 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 09:34:49.37 ]
- >SuperClassName.method(self) の間違いだろ
>信者がそんなミスするなよな それはもちろん気付いてたが 単に()をmethodを代表するものとして付けただけだから
- 938 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 10:49:38.33 ]
- >>937
苦しーw そんな小さなミスすら、認めようとしないのか こんな便所の落書きですら自分の体面を保とうとしているとは恐れ入った
- 939 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 10:50:09.44 ]
- >>926
もしもPythonが高階関数との相性が良いのなら、 高階関数の合成演算(の構文糖)であるメソッドチェーンを 何の不自由も無く使えているはず でも、現実にはPythonでのメソッドチェーンは使い物にならないから (あるいは用途が極めて限定されてしまうから)、 「Pythonは高階関数との相性が悪い」とも言えてしまう だから、>>909では、デコレータがRubyと相性が良くない理由を、 「デコレータが(構文糖である)マクロであるため」と書いている 分かるかな?
- 940 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 11:33:07.96 ]
- >>939
その主張は「Rubyが高階関数と相性が悪い」の反論になってない あとデコレータはLipsマクロほど強力じゃない。所詮はただの高階関数
- 941 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 11:35:26.31 ]
- >>936
Rubyもださいね。Pythonのsuperと同じくらいださい。
- 942 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 11:38:29.73 ]
- >>940
反論になっていないのなら、その理由をkwsk 理由なき主張は、単なる主観だ
- 943 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 11:39:59.95 ]
- >>942
なんで高階関数に過ぎないデコレータがRubyと相性が悪いの? もう何度も繰り返してるけどデコレータは高階関数だよ? 「マクロだから」的な反論は間違いだからね
- 944 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 11:47:42.48 ]
- 間違っているのはあなたです。
デコレータのメカニズムは高階関数ですけど、@ほげほげ、という記法は構文糖です。 この構文糖があるからこその「デコレータ」であって、この構文糖がなければ、 デコレータでもなんでもないただの高階関数です。
- 945 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 11:49:43.28 ]
- お前ん中ではな
- 946 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 11:50:08.52 ]
- >>944
じゃあ「ただの高階関数」なら使えるってことだよね? だったら高階関数を使って>>914みたいなダサいコードを もっと洗練させてよ 直視に耐えないレベルでダサいから
- 947 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 11:52:07.09 ]
- 自分が理解出来ない = ダサい
- 948 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 11:57:15.37 ]
- >>943
単なる高階関数に過ぎないデコレータ的な機能は、 (Pythonと違って)高階関数との相性が良いRubyであれば ユーザコードで書ける (たとえそれが>>898>>914のようにダサいとしても....) でも、(構文糖である)デコレータ構文そのものの導入は、 ただでさえ複雑なRubyの構文を一層複雑にさせるから、 採用される見込みはないだろうな、という話 関数アノテーションについては、(たとえ構文の追加が必要であっても)、 ぜひとも導入を検討してもらいたいと個人的には思っているけどね
- 949 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 11:58:20.06 ]
- >>944
Pythonを知らなくてデコレータをマクロだと思ってたんだろ? 指摘されてから「高階関数だって知ってたし」とか笑えるw じゃあもう一回聞くけど、何故Rubyとデコレータの相性が悪いんだ? まさか「構文糖だから」か?
- 950 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 11:58:53.21 ]
- まあ、そもそものRubyの構文がわるいんだろうな。
行き当たりばったりで作ったから、 新しい機能を入れる余地がない。 あー、また互換性切り捨てか。
- 951 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 12:02:22.50 ]
- >>949
>>948を嫁
- 952 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 12:03:36.94 ]
- >>950
>行き当たりばったりで作ったから、 そのとおり、Pythonの関数型プログラミング機能と同様に、 行き当たりばったりだね
- 953 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 12:08:54.56 ]
- >>950
> 行き当たりばったり > 互換性切り捨て 新旧スタイルクラスに3.0と、Pythonも大概だと思うが…
- 954 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 12:33:10.84 ]
- 950は、よりよい言語にするためだったら互換性は切り捨ててもいいという、
最近のLL系言語に蔓延している風潮それ自体を批判しているんだよ 冒頭のRubyは飾りです、デコレータだけに
- 955 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 12:34:34.04 ]
- >>928
>ttps://twitter.com/#!/methane/status/169774541797728259 >> 社内でPythonをメインで使っていくぞーって吠えてphpをdisったりしてるの、 >> 単にガキが暴れてるだけに見えるかもしれませんが、もともと僕自身が >> 引っ込み思案なので自分を追い詰めるために虚勢を張っているのです。 >> 察してください。 さんざん他の悪口を言っておいて、謝りもせず、なにが「察してください」だよ。 自分を追いつめるためなら何を言ってもいいと思ってんのか? Python信者クズだな。
- 956 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 12:35:22.33 ]
- pythonのデコレータ自体は高階関数だけど、
@なにがし、はデコレータで関数を置き換える別の機能だと思うけど、、、
- 957 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 12:42:37.21 ]
- >>955
このスレのPython信者と一緒だね
- 958 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 12:46:02.17 ]
- >>954
最後のオチ、ワロスw
- 959 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 12:47:35.87 ]
- >>956
シンタックスシュガーだね
- 960 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 13:16:12.46 ]
- デコレーションケーキ
- 961 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 14:07:40.29 ]
- 構文論と意味論がごっちゃになるバカとか、このスレにふさわしい隔離対象じゃあないか
- 962 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 14:08:29.48 ]
- LL ではない重量級の言語は何メインで使ってる?
LL だけって人もいるかもしれないけど、大抵は重量級と LL の両方使うでしょ。 組み合わせに傾向が出たりしないかな? 自分は C と Python です。
- 963 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 14:21:02.32 ]
- >>961
暴れているガキのことか? うーん、いくらここが隔離スレだとしても勘弁して欲しい ガキのお守りは疲れるから
- 964 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 14:24:47.80 ]
- >>962
漏れは C と Ruby ただしどちらの言語ともプラットフォームは UNIX(Mac or Linux) だけど
- 965 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 16:10:41.76 ]
- 「LL ではない重量級の言語」ってのがよくわからんけど、
Rubyや、Perlっぽい言語以外、という分類なら、CとかHaskellとか。 Haskellは慣れからくる惰性で使ってるだけだから、OCamlないし 遅延評価が必要ならもっと別の何かでも構わないと思う。
- 966 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 18:11:06.40 ]
- >>948
仮に@なにがしの構文糖が使えないとしても、>>825のコードは殆ど冗長にならない def f(x:int, y:int) -> int: return x + y f = typecheck(f) def g(x): print(x) g = validate(x=lambda x: -1 < x < 1)(g) 高階関数と相性の良いRubyなら>>914はもっと簡潔に書けるでしょ ASSERT.kind_of を毎回書くんじゃなくて別のメソッドに隠蔽すべき
- 967 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 20:45:16.47 ]
- Rubyのメソッドは一級市民じゃないので高階関数とは相性悪いです
デコレータをRubyでやるなら動的なメソッドの再定義になりますね 元のメソッドを別名にしてそれをラッピングしたメソッドを同名で再定義します def foo(x,y) x+y end type_assersion(:foo, Integer, Integer) 見たいなのは実現可能です 順序を逆にして 直後に定義されるメソッドに対するデコレータみたいなのも書けなくはありません type_assersion(Integer, Integer) def foo(x,y) x+y end ググって見つけたところだと type_assersion(Integer, Integer) do def foo(x,y) x+y end def bar(x,y) x-y end def baz(x,y) x*y end end って感じのがありました、これはRubyっぽい気がします わざわざ型をチェックしたりする必要性はよくわかりませんね そんなのは仕様とテストに書いてあれば十分な気がするので
- 968 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 21:28:50.10 ]
- >>964
unix環境でcを使うなら当然ながらgdbは必須なので、 gdbの拡張用スクリプトに公式的に選ばれたpythonつかっといた方が 幸せになれるんじゃなイカ? 個人的な考えでは、gdbの拡張用スクリプトは、luaかguileにすべきだった。 インデントが構文の言語は、対話環境でイジるの面倒杉だし、OOPとしてのpythonは失敗策。 あれなら、まだperlを採用した方がマシ s-expなんてemacsがあってはじめて幸せになれるようなもんで、 インタラクティブな操作に向くとは到底ながら思えないけれど、 デバッガにはgnu公式のスクリプトを採用した方が組織としての一貫性があった。 ソフトウェアに永遠の命をなどとスローガンを掲げているわりに連中は自らその道を外れた。 ここのところ話題に挙がらない後発のgroovyって流行ってんのかな? mozillaのrustといい、perlのようなものから rubyのようなものを生み出した功績は素晴らしいと思う
- 969 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 21:44:06.10 ]
- >>968
元UNIX系だがgdbなんてほとんど使ったことのないオレが通りますよ。 (カーネル空間なんでgdbはパニックダンプ解析でしか使えないし・・・。) 関わって多言語は、 C(コーディング)、Sparcアセンブラ(デバック時)、Forth(レビュー対象)。 今はPerl、PHP、Javascript、Java、ActionScript、VBA、SQL、色々やってますが、PythonとRubyは未経験でつ。
- 970 名前:デフォルトの名無しさん mailto:sage [2012/02/20(月) 00:04:01.82 ]
- Klabっていつの間にかソーシャルゲーム屋になってたんだな。
|

|