[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 03/06 16:48 / Filesize : 289 KB / Number-of Response : 971
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【Perl,PHP】LLバトルロワイヤル20【Ruby,Python】



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/

830 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 01:33:33.19 ]
>>827
>>700のコードで良いよ。任意の例外を投げれるし
で、「標準関数以外を使えない条件でのみ、投げられる例外に制限がある」と明記しといて

831 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 01:37:08.14 ]
>>824
代入文等の文を使えないのは関数型の原理主義的には正しい仕様。

832 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 01:39:16.59 ]
ああ>>765だったね、失礼

まあ、言語の表現能力とやらをどう判断するかは各人の自由だと思うので、
条件だけは正しく明記してください

833 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 01:42:49.00 ]
じゃあ今度は>>825を各言語で書いてみよう

834 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 01:47:32.00 ]
>>827
> 自分としては多分岐の評価項目については完全に引き分けであると判断して、

Rubyのコードはクソという意見多数なんだが、どうして引き分けなんだ?www

835 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 02:02:18.33 ]
>>831
でもそれって文への依存性が低いからこそ言えることじゃね?
本場の関数型ならlet式とか、分岐も式だったりするから実用になるけど
文への依存性が大きい現状のPythonで文が書けないってのは大きなマイナス点よ

836 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 02:39:44.80 ]
>>763
Vistorパターンはトリッキーで好きだが、難しくしてるだけだろ。
普通にポリモーフィズムでごりごりやった方が楽。


837 名前:621 mailto:sage [2012/02/12(日) 02:51:02.36 ]
>>830
了解しました
また、その補足文章をそのまま明記することを約束します

では、>>621の改訂に取りかかろうと思いますが、
少し疲れたのでこの辺で一時休息に入ります
改訂版のカキコまで、しばらくお待ちください

838 名前:621 mailto:sage [2012/02/12(日) 02:55:18.38 ]
いけね、>>832を見落としていた

>>832
了解しました
改訂版は>>765とし、条件は必ず明記します



839 名前:621 mailto:sage [2012/02/12(日) 03:06:17.34 ]
>>834
このバトルスレは討論により勝敗を決するものであり、多数決で決めるものじゃねえだろ

もしも多数決で決めたかったのなら、
最初に(前スレまたは今スレ>>625)それを主張して皆の同意を得ておくべきだったな
それを今頃になってのこのこ出てきて、多数決などと言い出しても遅すぎるわ

残念だったねw

840 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 03:19:52.79 ]
>>833
Common Lispで
(declaim (ftype (function (integer integer) integer) f))
(defun f (x y)
  (+ x y))

(declaim (ftype (function ((real -1 1)) *) g))
(defun g (x)
  (print x))

(g 1) => 1
となるが。

841 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 03:30:12.69 ]
多数決じゃ逆立ちしても勝ち目がないから、ノイジーマイノリティが勝つ設定じゃないと困るんだろ
関数型言語信者がよくやる手口だな

そんなことやってるという事実が既に負けなんだよね
比較の条件も厳選に厳選、限定に限定を重ねて、やっと優位を示したかと思ったら
クソコードだし、何をやりたいのか分からん

842 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 06:42:46.88 ]
>>802
馬鹿ですね
わかります

843 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 09:14:00.97 ]
僕 Python 信者
ここは LL スレだからしかたないかもだけど
Python vs Ruby っていう比較で Python を選んだ人は少ないんじゃないかな
Python 信者の半分は NumPy 信者で、その人たちは Ruby とか最初から眼中になくて
比較相手は Python vs R だと思う

844 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 10:02:17.67 ]
よく知らんけどScipyやMatplotlib見たかんじでは、RってよりMatlabじゃね



845 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 10:09:08.63 ]
>>844
金持ちだな

846 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 10:35:49.63 ]
>>843
Python信者じゃないけど、俺がPython使うのを
選んだ理由と全く同じだわ

847 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 10:59:41.87 ]
だってRって関数はいっぱいあるけどプログラミング自体は不便なんだもん

848 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 10:59:48.20 ]
>>825
そんな暗号の様なコードは読み手に不要な知識を要求するので可読性が低い
大規模開発ではこの程度のコード量の増加は誤差の範囲

def f(x, y)
    if !x.kind_of?(Integer) then
        raise TypeError
    end
    if !y.kind_of?(Integer) then
        raise TypeError
    end
    z = x + y
    if !z.kind_of?(Integer) then
        raise TypeError
    end
    return z
end

def g(x)
    if !(-1 < x && x < 1) then
        raise RuntimeError
    end
    print x
end



849 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 11:00:34.09 ]
>>833
PowerShell
function f ( [int]$x, [int]$y ) {
$x + $y
}

function g {
param ( [ValidateRange(-1,1)]$x )
$x
}

850 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 11:01:51.99 ]
カスrubyの言い訳が酷い

851 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 11:25:09.46 ]
>>831
Pythonてそういう原理主義を否定してlenとかjoinとかああいう仕様にしたんじゃなかったっけ?

852 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 11:26:00.51 ]
>>843,846
数値計算系はrubyは眼中に入らないほどの差がある・・・と(メモメモ


853 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 11:28:10.78 ]
>>852
お前Rubyとの比較じゃないんじゃないかってところは読めないの?
バカなの?

854 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 11:32:22.36 ]
>>853
いや、>>382も読んでたんで・・・


855 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 11:45:27.02 ]
PHPとJavascriptとRubyはこの世から消えて欲しいわ

856 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 12:00:28.13 ]
バイオインフォマティクスだと Perl > Python > Ruby かな。

857 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 12:06:16.55 ]
DelphiはDelphi言語で実装されてるし、VC++もC++で実装されてる。GHCもHaslellで実装されてるし、pypyもpythonで実装されてる。
rubyにはrubyで実装されたruby処理系って無いの?


858 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 13:08:52.80 ]
Rubyデバッガ



859 名前:デフォルトの名無しさん [2012/02/12(日) 15:03:12.53 ]
>>857
rubinius

860 名前:Vintevecom(Yokohama)=娵十=TEN10(teto) [2012/02/12(日) 21:29:02.15 ]
嘩喃人が奪い、中国に送った警察と自衛隊の銃は アジア大陸の七百万人の命を奪った。嘩喃人の立て籠りの2年間に何人が犠牲になったかアジアに確認を。

嘩喃人の河馬兄弟が諦めず、止めない。
人質を捕り、立て籠りを続けながらハッキングをしつこく続けている。

皆、大正生まれの戦犯。原爆投下と枯葉剤を作った人間だ。

今も犠牲者が増えるばかりの 2-Hndred Yars' Wrの最中である事を日本人だけが知らない。

861 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 22:54:32.85 ]
平和なのもいいけど、退屈だなぁ、、、

862 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 07:13:18.93 ]
>>843 の改変版

僕 Ruby 信者
ここは LL スレだからしかたないかもだけど
Ruby vs Python っていう比較で Ruby を選んだ人は少ないんじゃないかな
Ruby 信者の半分は Rails 信者で、その人たちは Python とか最初から眼中になくて
比較相手は Ruby vs PHP だと思う

863 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 07:29:39.88 ]
pgr説

864 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 08:04:27.55 ]
RubyはPHP並にうんこ説

865 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 09:03:39.33 ]
>>862
最後の行はRails vs 〜とすべきじゃね?

866 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 09:23:00.91 ]
>>865
オリジナルの>>843が Python vs R だったから、それにあわせた

867 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 09:43:41.12 ]
           |;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ノ|
           |丶、 ;;; __;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;_,,: ィ";;_|
           ト、;;;;;;;;;;;;;;;` ` '' ー -- ‐ '' ";;;;;;;;;,:ィ;:;!
          ,';:``' ‐ョ 、 ,_ ;;;;;;;;;;;;;;;;;;;;;;;;;;; , - '"l;:;:;:;:l   だまりゃ!そのほう麿をなんと心得る!
          l;:;:;:;:;:;:;ミ   ` ` '' ー -‐ '"    ,リ;:;:;:l
          l;:;:;:;:;:;:;:ゝ   く三)   (三シ  `ヾ;:t、  恐れ多くも帝より三位の位を賜わり
         fミ{;:;:;:;:f'´  , -−-_,, _,ィ 、_,,ィ,.-−、  };f }
         l トl;:;:;:;:l  、,ィ或tュ、゙:ミ {,'ィt或アチ l:l,/  中納言まで勤めた麿の言うことを聞かなくば
         ゙i,tヾ:;:;:!  `ヽ 二ノ   ト ` ‐''"´  l:l:f
          ヽ`ー};:l       ,r'、   ヽ      リ_)  どのようなことになるのか分かっておるのか!
           `"^l:l      ,/゙ー、  ,r'ヽ    l
             ゙i    ,ノ    `'"  丶.   ,'    今一度しか述べぬ!心して聞くがよい!
               ゙l、   ′ ,, ィrェェzュ、,_ 〉 } /
              ',ヽ  ヘヾ'zェェェッ',シ' //ヽ
               } 丶、 ` ー--‐ '"'´,/ノ:.:.:ヽ
              /l   丶、      ,.イ:.:.:.:.:.:.:.:丶、、
            ,r'"^l !    ` ー‐;オ´:.:.:.:.:.:.:.:.:.,ノ  ,}、
       ,. -ァ=く(:.:.:.l  l      //:.:.:.:.:.:., - '"  ,/ ヽ、

何語で話すかにこだわっているうちは六流。
何を話すかにこだわって五流。
何を為すかに思い至ってようやく四流。
思うだけでなく、為せたならば、三流。
為したことを他人に評価されてやっと二流じゃ。
為したことを後世の人間に評価されて初めて一流となる。

主らはいつになったら六流から抜け出すことができるのじゃ。

868 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 09:47:11.46 ]
>>866
ありゃ、ほんとだ
脳内でNumPy vsに変換されてた



869 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 09:59:27.07 ]
>>867
麿もたまにはいいことを言うw


870 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 16:59:19.41 ]
まあRubyのコードは6流だったね

871 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 19:21:25.79 ]
>>867
おまけ。

下を向いて生きていれば六流。
下を向かずに生きて五流。
自分に目を向けて四流半。
上を向いて生きて三流半。

他人がどうのこうのではないわ!
まず、主自身に目を向けい!

872 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 20:59:31.21 ]
目は口ほどに物を言う、ってことは目も口も六流

873 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 21:14:58.21 ]
The eyes are the window of the soul. ・・・「目は心の窓

874 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 05:58:08.31 ]
Why I left Perl
www.leancrew.com/all-this/2012/02/why-i-left-perl/

875 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 06:04:08.82 ]
いちいち言い訳せんで
勝手に去れよ

876 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 06:08:46.94 ]
perlに嫌気が差した人は次の言語としてrubyはperl臭いから選ばないと

877 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 07:33:39.19 ]
>>876
同意

878 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 11:56:29.41 ]
で お前らちゃんとメシくえてんの?



879 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 11:59:58.98 ]
Rubyでは食えてない
Pythonでは食えてる

880 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 12:12:19.93 ]
咥えるって・・・
キャー///エッチー

881 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 13:04:44.28 ]
くわ・える〔くはへる〕【×銜える/×啣える/×咥える】
[動ア下一][文]くは・ふ[ハ下二]

1 口に軽く挟んで支える。「楊枝(ようじ)を―・える」「物欲しそうに指を―・えている」

2 引き連れる。伴う。

882 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 08:15:29.00 ]
>>862
Zopeもあったのに、最初から眼中にすら置いてもらえない Python カワイソスwww

883 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 19:23:46.58 ]
クソコードの後だから煽りも虚しいな...

884 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 11:28:52.77 ]
amazon
mixi
モバゲー
にちゃんねる
perlってこのぐらいか?
もう役目を終えつつあるな

885 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 12:53:58.98 ]
満を持していよいよ、Perl6 の出番か

886 名前:デフォルトの名無しさん [2012/02/16(木) 13:58:01.59 ]
pythonもperlも仕事増やしたいから互換性なくしたんだろwwwwwwwwwwww
賢いなwwwwwwwwww
htmlも大幅に増やしたしなwwwwwwwww

887 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 14:27:25.82 ]
html5は増えたのもあるけど、減ったのもある。
タグ付けとデザインが完全に分離したから、ある意味すっきりしたともいえる。

888 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 16:48:40.99 ]
Perl5 はコンテキスト依存で 返り値が変わるのが
いまいち、ちゃんと把握してない
あと、リファレンスとかややこしい

Perl6にいたっては到底覚えられそうにもない(覚える気は無いけど)
大幅に増えた演算子をしっかり理解してないと
ソースを読むのもままならない
よくは知らんがAPLやJみたいな暗号言語に近づいた気がする
わかってる人にはコンパクトにコードがかけて効率がいいのかもしれないが




889 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 18:41:13.11 ]
結局、PHP最強ということか。
マゾっ毛でも無い限りPHPにしとけ。

890 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 20:30:34.01 ]
>>887
マークアップとスタイルの分離はXHTMLどころかHTML4の頃から意識されてたでしょ。

891 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 22:08:12.90 ]
>>890
でも、html4はfontタグでフォントや色を指定したり、tableタグのwidthでボーダーの幅を指定したりとかできたよね。
html5では、タグでこれらの指定はできなくて、デザイン要素は全てCSSで指定するようになったから、分離が徹底されてるよ。

892 名前:デフォルトの名無しさん mailto:sage [2012/02/17(金) 06:54:13.30 ]
まあ、Perl5のコンテキストって、現状ほとんど使われて無くて、配列のサイズを取得する時ぐらいしか意識する必要ないけどね。
リファレンスはCのポインタが理解できる程度の能力があれば動って事内。
Perl6は型指定可能なスクリプト言語というのが非常に魅力的。

893 名前:デフォルトの名無しさん mailto:sage [2012/02/17(金) 08:25:34.11 ]
>>891
HTML5 よりも HTML4 strict の方が徹底されています

894 名前:デフォルトの名無しさん mailto:sage [2012/02/17(金) 09:36:36.44 ]
いーや、html5の方が徹底されてるよ。

895 名前:ぱーる列伝 mailto:sage [2012/02/17(金) 12:56:31.21 ]
LLの連中は人脈つくりに必死に献本送ってますね

トミタさん

トミタ「うひょおおおおおおおおおおおwwwwwwwwwwww人脈つくり楽すぎwwwwwwww
適当に本書いて、上層部Perl使いや、LL企業関係者におくりまくろうぜwwwwwwwww」

ってクールなツラして心の中で思ってるからしょうがねーよな

必死におこぼれにあやかろうと色々なやつが、同じLL使いを褒めあってる
ハテブとかなんかで

「尊敬するPerl使いリスト」みたいな

まじおもしれーわ
生き残りかけてる

896 名前:デフォルトの名無しさん mailto:sage [2012/02/17(金) 13:06:38.83 ]
忍者か?

897 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 09:49:37.64 ]
>>848
>そんな暗号の様なコードは読み手に不要な知識を要求するので可読性が低い

言語仕様に型検査や検証機能が含まれていれば、それを「暗号」とは言わないし、
逆にユーザコードで表現(代用)しなければならないRubyよりも優れていると考える

>大規模開発ではこの程度のコード量の増加は誤差の範囲

開発規模とは無関係に、本質の実装コードが検査/検証コードに埋もれる点で、可読性に問題がある
たとえばこのお題であれば、メソッド f の(本質のコードとは) z = x + y であり、
同様にメソッド g であれば print x だけであるけれど、それが一目で認識しずらくなっている

自分なら>>825のお題について、(後置の)unless修飾子と(メリハリを入れる)空行を使って、
以下のように書く

(続く)

898 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 09:50:19.16 ]
(>>897の続き)

def f(x, y)
  raise TypeError unless x.kind_of?(Integer)
  raise TypeError unless y.kind_of?(Integer)

  z = x + y

  raise TypeError unless z.kind_of?(Integer)
  z
end

def g(x)
  raise RuntimeError unless -1 < x && x < 1

  print x

  nil
end



899 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 12:16:14.51 ]
There's more than one way to do it

900 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 12:42:03.95 ]
其れは方法が多い

901 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 12:43:44.32 ]
Here is the battle stage.
Let's fight!

902 名前:デフォルトの名無しさん [2012/02/18(土) 14:00:14.38 ]
>>900


903 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 14:35:27.58 ]
theじゃなくてaだろ

904 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 14:56:45.22 ]
Pythonは見やすさ重視してるかなと思うけど、RubyとPerlは大差ない。

905 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 17:20:21.02 ]
>>897
Pythonも別に型検査などが言語機能としてあるわけではなく
単にデコレータを使えばそういうことに「も」書く側で対応できるってだけじゃん
そういうデコレータの汎用性はいいと思うけど、直接実装するのと比べるとやっぱりね

どこまでをどの程度の抽象度で表現できるようにするかってのは、難しいけども

906 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 17:22:36.12 ]
何この低レベルな争い、、、

907 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 17:36:17.90 ]
javaのクラスライブラリが使えるだろうjruby一択だろjk
pythonなんて、vbみたいに文法がシンプルな割には、
classに毎度毎度、selfと書かなければならないperl臭さがあってダメポ
実際問題、ハッカーの書いたスクリプト言語に、どれほどの信頼性があるのよ?って怖さがある
シンプルな言語でなければ、言語開発者たちが解析木なり構文木なり、
明文化されてないのを良いことに、バグ放ったらかしてそう
だから使うなら、シンプルなscheme系統が良いけれども
clojure/clojure scriptなんかは開発陣がなんかキモい
そんな理由でjavascriptとluaが大勝利

908 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 17:42:15.36 ]
変な理屈だなあ



909 名前:897 mailto:sage [2012/02/18(土) 18:15:13.12 ]
>>905
失礼、説明が足りなかった
自分がうらやましかったのは、f(x:int, y:int) -> int という型式風の関数アノテーション構文
で、それをデコレータと組み合わせると型検査/検証を簡潔に書けてイイ!と
(ただし、デコレータは一種のマクロだから「Rubyとは」相性が悪いように思う)

910 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 18:20:13.58 ]
rhinoが流行らなかったのは、javaのクラスライブラリとjsの相性が悪すぎたせい
rubyの方がpythonよりも言語の機能が豊富だしOOPとしては優れているのは誰の目にも一目瞭然
perlはもう…(笑)これから、4、5年ぐらいはjsが、かつてのperlと同じポストに着く。
廃れるときも、perlと同じ扱い。
javaは文法というか、色々と冗長すぎるので、
kotlinなりceylonなりポストjavaにjvmのメインストリームを奪われる。というか奪われろ。
関数型は大手ITの社内アプリなんかで徐々に使われだし、
ある程度の方法論とノウハウが蓄積後に業務アプリの開発で主流になる。

911 名前:897 mailto:sage [2012/02/18(土) 18:35:54.36 ]
>>907

全体としてはいくつか異論があるけれど、

>pythonなんて、vbみたいに文法がシンプルな割には、
>classに毎度毎度、selfと書かなければならないperl臭さがあってダメポ

ここだけは同意

912 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 19:03:47.00 ]
>>911
selfは慣れる。railsずっとやってたおれが保証する。よく忘れるけど。

それより、Pythonは親クラスのメソッド呼び出しがださすぎる。
super(ClassName, self).method() だっけ?最初見たときバカかと思った。
で、そんなはずはないと思ってもう一回みたら、やっぱりバカばかしかった。
はっきりいってPythonのsuperはPHP以下。Pythonでオブジェクト指向したくなくなる。

あとDjangoがいつまでたっても3に対応しない。Railsは早々に1.9に対応済というのに。クソったれ。

913 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 19:08:24.43 ]
Perl は5.8辺りで上手く枯れて来たなーと思ったところに色々突っ込んじゃった印象
まあ路線的には専門外だったWebから脱却して
ポストawkというかシェルのお供みたいな位置で落ち着きそうだなと思う

914 名前:897 mailto:sage [2012/02/18(土) 19:10:31.61 ]
(>>898の続きになる)

>>825はお題であるから>>898のコードが適切だと思うけど、
実際の開発で型検査/検証が必要であれば(>>716で簡単に紹介した)表明メソッドを使う

require 'tmdoc/tmstd'
ASSERT = TmStd::Assertion

def f(x, y)
  ASSERT.kind_of x, Integer
  ASSERT.kind_of y, Integer

  z = x + y

  ASSERT.kind_of z, Integer
end

def g(x)
  ASSERT.assert -1 < x && x < 1

  print x

  nil
end

メソッド Assertion.kind_of(およびassert)のコード定義については、以下を参照
www.h6.dion.ne.jp/~machan/tmdoc/example/tmdoc.book/html/tmdoc.src.tmstd.assertion.rb.html#tmdoc.src.tmstd.assertion.rb.32

(続く)

915 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 19:11:56.46 ]
>>912
まじPython2のsuperはアホ全開だよな
Python3だとsuper().method()だからマシだけど

916 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 19:12:20.27 ]
>>912
Pythonは多重継承あるから、勝手に継承元決められるより
親クラス明記のが楽かも…まあ、それでも色々くっ付き過ぎだけどw

917 名前:897 mailto:sage [2012/02/18(土) 19:14:18.80 ]
(>>913の続き)

実行結果は以下のようになる(等幅フォントを使わないとボックスは奇麗に表示されない)

irb(main):006:0> f("Hoge", 1)

+=== ASSERTION FAIL!! : A is a kind of E. ====
|[EXPECTED(E) TYPE]
| Integer
|-----------------------------------------------------
|[ACTUAL(A) TYPE]
| String
|[ACTUAL(A) VALUE]
| Hoge
+=====================================================
TmStd::Exception::AssertionFail: TmStd::Exception::AssertionFail
  from /opt/local/lib/ruby/site_ruby/1.8/tmdoc/tmstd/assertion.rb:55:in `kind_of'
  from (irb):4:in `f'
  from (irb):6
  from :0

918 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 19:19:45.30 ]
>>916
> Pythonは多重継承あるから、勝手に継承元決められるより
> 親クラス明記のが楽かも

ダウト
Python2でのsuperは親クラスじゃなくて自クラスを指定する
信者乙
#いやこの程度を間違えるなら信者ではないかも?




919 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 19:22:06.73 ]
>>916
親クラスを指定するんじゃないんだよ。それなら百歩譲って理解できる
そうじゃなくて自身のクラスを書かなきゃダメなわけ。例えばこんな感じで

class C(B):
    def meth(self, arg):
        super(C, self).meth(arg)

全く意味不明だろ?w
Pythonユーザの俺でも擁護できんわwww

(なお、Pythonのメソッド呼び出し obj.meth() は C.meth(obj) と等しいので
親クラスを選んで呼ぶのは普通に出来る)

920 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 19:31:45.45 ]
>>918-919
Ω<ナ、ナンダッテー

いや普段使わない言語に俄か知識でテケトーな事言ってスマンカッタ

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信者か?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<289KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef