[表示 : 全て 最新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/

552 名前:デフォルトの名無しさん mailto:sage [2012/02/09(木) 23:33:51.71 ]
>>550
Rubyと同じ実装方法ではRails作れないかもね
別の実装方法を考えるだけでしょ

Rubyと同じ実装方法でRailsを作らないと、
PythonでRailsを実装できないって考えた理由は?

553 名前:デフォルトの名無しさん mailto:sage [2012/02/09(木) 23:43:40.40 ]
>>545
仮定を元にした未来予測なら、のび太くんにもできる

・DHHがRailsの開発に着手した時点で、すでにPythonは存在した
・にもかかわらず、DHHはRailsの実装言語として(Pythonではなく)Rubyを選んだ、

というのが事実だ

のび太くん、もっと現実見なよ(AA略

554 名前:デフォルトの名無しさん mailto:sage [2012/02/09(木) 23:45:52.50 ]
>>552
もし表層的なIFだけ似たようなものを作るということであれば、
理論的には、どんな言語でも実装可能なんだろうなぁとは思ってるんだけど、
メタプロがないと、かなり実装が大変なことになるんじゃなかと思って


555 名前:デフォルトの名無しさん mailto:sage [2012/02/09(木) 23:51:48.99 ]
>>546
お題は、二分岐/多分岐/局所宣言の3つあって、
それぞれについてRuby/Standard ML/Haskell/Pythonでコードを示す

[二分岐]
==== Ruby: 前スレ>>682(上段) ====
 ys = xs.select { |x|
   if test
     if test_1 then test_1_1 else test_1_2 end
   else
     if test_2 then test_2_1 else test_2_2 end
   end
 }
==== Standard ML: 前スレ>>772 ====
 val ys = filter (
   fn x =>
     if test x then (
       if test_1 then test_1_1 else test_1_2
     ) else (
       if test_2 then test_2_1 else test_2_2
     )
 ) xs
(続く)

556 名前:デフォルトの名無しさん mailto:sage [2012/02/09(木) 23:52:05.07 ]
PHPはCに似てるっていう奴がいるけど動作がメタメタなんだよ。
よっぽど変態文法のPerlの方がCに近く感じる。

557 名前:デフォルトの名無しさん mailto:sage [2012/02/09(木) 23:52:14.63 ]
あーらら、話をずらしちゃった
反論できないのかね

>>504
> 以下の事実を忘れずに
> ・RubyがあったからこそRailsが生まれた

の「Rubyがあったからこそ」はおかしいと思って、
RubyがなくてもDHHはRailsを作っていたと思うよっていうために

>>545
> RubyがなかったらDHHが作ったのはPython Railsだったと思うよ
> って言った方がいい?

って書いたんだけど、最後の反論が

> ・DHHがRailsの開発に着手した時点で、すでにPythonは存在した
> ・にもかかわらず、DHHはRailsの実装言語として(Pythonではなく)Rubyを選んだ、

これか。
「Rubyがあったからこそ」っていうのは言い過ぎだと思うよって言いたいんだけど、
反論できる?知能障害起こさず続けれる?火病起こすようなら、もう止めるよ?

自分が何を言い出したかを無視して相手を貶めようと必死ですな

558 名前:デフォルトの名無しさん mailto:sage [2012/02/09(木) 23:52:52.67 ]
(>>555の続き)

==== Haskell: 前スレ>>767 ====
 ys1 = [x | x <- xs1,
     if test x then
       if test_1 then test_1_1 else test_1_2
     else
       if test_2 then test_2_1 else test_2_2
   ]
==== Python: 前スレ>>695(上段) ====
 ys = [ x for x in xs
     if (
       (test1_1 if test1 else test1_2) if test else 
       (test2_1 if test2 else test2_2)
     )
   ]

(多分岐に続く)

559 名前:デフォルトの名無しさん mailto:sage [2012/02/09(木) 23:58:16.75 ]
で、

だれが、どこで
「あんなのは俺にだってできた」と語っていると思ったの?
「だれが」「どこで」の2点を明確にしてレスしてよ
誰も語っていないことを、語ったかのように偉そうに〜〜と語るのは三流の証
って言ったの?メクラカス

560 名前:デフォルトの名無しさん [2012/02/10(金) 00:00:27.07 ]
Pythonは書き方が普通じゃないからキモくて普及しない



561 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 00:03:34.84 ]
(>>558の続き)
[多分岐]
==== Ruby: 前スレ>>719 ====
 ys = xs.select { |color|
   case color
   when :green
     true
   when :yellow
     true
   when :red
     false
   else
     raise RuntimeError
   end
 }

==== Standard ML: 前スレ>>772 ====
 datatype Color = Green | Yellow | Red
 val ys = filter (
   fn x =>
     case x of
      Green => true
     | Yellow => true
     | Red => false
 ) xs
(続く)

562 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 00:04:56.67 ]
(>>561の続き)
==== Haskell: 前スレ>>767 ====
 data Color = Green | Yellow | Red
 ys2 = [x | x <- xs2,
     case x of
       Green -> True
       Yellow -> True
       Red -> False
]


==== Python: 前スレ>>728 ====
 ys = (x for x in xs
     if {
       'green': True,
       'yellow' : True,
       'red' : False
     }[x]
   )
(局所宣言に続く)

563 名前: 忍法帖【Lv=35,xxxPT】 mailto:sage [2012/02/10(金) 00:05:30.63 ]
割り込みの術
忍忍

564 名前: 忍法帖【Lv=35,xxxPT】 mailto:sage [2012/02/10(金) 00:06:05.80 ]
忍忍

565 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 00:06:23.43 ]
(>>562の続き)
[局所宣言]
==== Ruby: 前スレ>>710 ====
 ys = xs.map { |x|
   h = if x.first_page? then generate_header else nil end
   b = generate_body x
   f = if x.last_page? then generate_footer else nil end

   Document.new h, b, f
 }


==== Standard ML: 前スレ>>772 ====
 datatype 'a Option = None | Some of 'a
 val ys = map (
   fn x =>
     let
       val h = if is_first_page x then generate_header else None
       val b = generate_body x
       val f = if is_last_page x then generate_footer else None
     in
       (h, b, f)
     end
 ) xs
(続く)

566 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 00:07:47.10 ]
(>>565の続き)
==== Haskell: 前スレ>>767 ====
 data Option a = None | Some a
 ys3 = [fn x | x <- xs3]
   where fn x =
     let
       h = if is_first_page x then generate_header else None
       b = generate_body x
       f = if is_last_page x then generate_footer else None
     in
       (h, b, f)


==== Python: 前スレ>>714 ====
 ys = (Document.new(h,b,f) for x in xs
   for h in [generate_header() if x.is_first_page else None]
   for b in [generate_body(x)]
   for f in [generate_footer() if x.is_last_page else None])
(これで終わり)

567 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 00:54:34.24 ]
>>557,559
あーあ、これまでは冷静なカキコだったのに、ついには感情を爆発させちゃったのね....

>「Rubyがあったからこそ」っていうのは言い過ぎだと思うよって言いたいんだけど、

であるなら、それを>>545で書けばよかった
こちらはエスパーではないんでね
>>545の仮定を元にした主張は詭弁である、と言いたかったんだけど分かってもらえなかったようだ

もちろん>>504の「RubyがあったからこそRailsが生まれた」という意見は自分の主観であるけれど、
DHH自身はその著書の中で、
・Rubyのウリは簡潔さであり、アイデアを自然な形で表現できる
・Rubyのパワーによって、Railsの設計哲学であるDRYを実践している
と語っている
いずれにせよ、「DHHが(Pythonではなく)Rubyを選んだ」という事実に変わりはない

568 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 01:02:52.71 ]
自分に都合の悪いことは見ようとしませんか

>>559>>551の最後をコピペしただけなんだけどね

やれやれ

569 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 01:40:13.03 ]
実際にコード例出しての戦いは面白いな
あんまりないけど
昔あったマルコフ連鎖の実装合戦面白かった
偉そうなこと書いてるやつがコード実際に書くとぜんぜんダメだったり


570 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 01:41:51.39 ]
マルコフ連鎖がダメって高卒かよ



571 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 01:49:59.27 ]
そこまでは知らん

572 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 02:03:06.89 ]
デバッグの補助だと、bash,awk,sedあたり。
日常的に使わざるをえないならば、構文糖衣の多いperlがいい
下手にグルーだとかウェブ系だとかドメインを広げるとかえって使い勝手が悪い件

573 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 02:20:19.58 ]
>>567
>いずれにせよ、「DHHが(Pythonではなく)Rubyを選んだ」という事実に変わりはない

DHHは自分で積極的にRubyを選んだというよりは、達人プログラマーたちに
勧められたからRubyを選んだだけ。本人がそう言っている。

ただ、PythonでもRailsが生まれたかというと、そうは思わない。
1.years.ago みたいに組み込みクラスを拡張しまくるのはPythonではできないし、
PythonにはRubyのブロックがないからDSLの設計が大きく制限される。
だから自由度の高いRubyならRailsみたいな尖ったフレームワークが作れるけど、
Pythonだとおとなしいのしかできないから、世界を席巻するようなブームは起こせなかったと思うよ。
それを考えると、>>557
> ・RubyがあったからこそRailsが生まれた
は、わりと当たってる。
そういう意味では、Zopeが世界を取れずに失速したのは、RubyじゃなくてPythonだったからと言えなくもない。

という回答でいいかな?>>552



574 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 02:46:22.32 ]
Pythonでメタプロ出来ないと思ってる人がいるみたいだけど
なんでそう思うに至ったのかの経緯に興味あるな
池沼かもな

575 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 05:29:46.32 ]
その辺の経緯は何度か紹介されてるから
ぐぐれば出るはず……と思ったら出た
いくつか検討したが、Rubyが一番しっくり来たという話らしい

gihyo.jp/dev/serial/01/alpha-geek/0004

576 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 08:05:09.60 ]
>>566
コピペありがとう。

ぶっちゃけ殆ど差が無い気がするけど、なんで

> 条件分岐と反復という極めて単純なコードだ
> それにもかかわらず、Pythonでは可読性の悪いコードしか書けなかったから、
> 「Pythonは関数型プログラミングに適していない」という結論になった

って結論になったん?

577 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 08:29:46.36 ]
>>574 おまえが池沼かもな

578 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 08:34:45.07 ]
>>575
ただの一個人、しかも変人、の意見じゃん。しょぼ

579 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 08:37:48.75 ]
>>576
Pythonの3項演算子ifや内包表記のfor/inは
英語が読める人には自然に読めるが、
英語に不自由でifやforをプログラミング言語でしか
使わない人には奇妙に見えるらしい

580 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 08:46:48.66 ]
>>579
そーゆー問題じゃねえんだよあの三項演算子は…

そもそも、複雑に入り組んだ文を書くと
Python含めてどのプログラミング言語も
英語的になんて読み下せないワケで
だったら英語的である必要性は薄い



581 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 08:49:58.26 ]
そんなのばっかり書いてるから平日のこんな時間に
2chしてるんだよ。。。

582 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 09:09:40.28 ]
pythonの三項演算子はむしろ書く時に頭を使わなくて良い
Cのような書き方に慣れてる人は、単に慣れだけで批判してるんだろうけど
そもそもCの三項演算子は if-then の順じゃないから不自然

583 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 09:16:41.40 ]
いやif-thenの順と言うとおかしいか。でも特にネストして書く時はpythonの方が思考の流れ的には自然
Cは条件が先行してるから : の後ろが結果なのか条件なのか決まってなくて
(結果):(結果)になったり(結果):(条件)になるのは気持ち悪い

584 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 09:19:24.56 ]
値が先行して、その後ろが常にその値に対する条件になってる方が分かりやすい、と言いかった

585 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 09:40:03.97 ]
どっちも不自然だろ

haskellみたいに、ifが式ならそれでいいのに

586 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 09:44:43.28 ]
内包表記はリスト(集合)を辿るだけだし読みやすいと思うが

587 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 09:49:32.59 ]
>>573
>ただ、PythonでもRailsが生まれたかというと、そうは思わない。
>1.years.ago みたいに組み込みクラスを拡張しまくるのはPythonではできないし、
>PythonにはRubyのブロックがないからDSLの設計が大きく制限される。

ここは同意。Railsを作れるのは、Ruby以外ならLispかSmalltalkぐらいかな。
決まりきった書き方しか許さないPythonじゃ難しいと思う。

>だから自由度の高いRubyならRailsみたいな尖ったフレームワークが作れるけど、
>Pythonだとおとなしいのしかできないから、世界を席巻するようなブームは起こせなかったと思うよ。

RoRが世界を席巻したのは事実だけど、それは技術的な要素より偶然の要素が大きいと思うなあ。
つまりは運がよかった。

と、Zope使いが負け惜しみを言ってみる。なんでZopeは世界が取れなかったんだよクソ!

588 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 09:49:46.95 ]
>>583
ネストして書く時はインデントだろ・・・
インデント強制までしたのに何やってんだよ

589 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 09:51:07.99 ]
>>588
Cみたいなのは改行インデントしないと分かりにくいってことだろ
pythonはどっちでもいい

590 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 11:58:00.93 ]
英語に不自由なRuby使い可哀想



591 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 13:28:19.02 ]
英語が不自由でも使えるに越したことはないだろ
だってここは言語の使い手を比べるスレじゃなくて
言語そのものを比べるスレなんだぜ?

592 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 13:29:52.62 ]
自然言語の話を当て嵌めようとしても無理があるでしょ

593 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 13:36:28.62 ]
技術者なのに英語も読めないカスの意見など
聞くに値しない

594 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 13:56:37.57 ]
技術者なら英語くらい読めて欲しいが
PythonもRubyもエンドユーザを考慮した言語だと思うぞ

595 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 14:37:40.87 ]
>>574
>Pythonでメタプロ出来ないと思ってる人がいるみたいだけど

だれもそんなこと言ってないと思うけど。
#Rubyと比べるとできることに限りがあるのは事実だとしても。

なんでそう思うに至ったのかの経緯に興味あるな
池沼かもな


596 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 15:04:36.43 ]
>>577
その変人という評価は、彼にとっては最大限の賞賛に等しいと思われる

変人だからこそ、周囲の常識的には人々が考えもつかなかった革新的なアイデアを考案し、
それをRails実現という形で行動に移すことができた

597 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 16:21:31.32 ]
>>593
それで、Pythonって日本語使えるのかい?

598 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 18:18:28.50 ]
てめーら中学生レベルの英語もよめねーのかよ

単語がわかんなかったらググれカスども!

599 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 18:26:49.17 ]
勝ち馬に乗るべき
マイナー単語は使うべきではない

600 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 18:44:15.30 ]
>>599
つまり、英語もどきでプログラミングしろ、と。



601 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 19:25:23.73 ]
プログラムの可読性が低いと感じるとき、
自分が英語を読めないカスだから読み難く感じるのかもしれないという
可能性を考慮した方が良いよ

602 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 19:27:38.65 ]
よし、Pythonsitaは今後英語でカキコしよう。

603 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 19:59:59.45 ]
>>602
I'm very sorry.
I was completely forgetful of the fact that 
Ruby programmers in Japan CANNOT read English.
I didn't intend to humiliate you.

604 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 22:29:37.03 ]
>>603
必死だな。そんなにRubyとRubyistを貶めたいのか。
何がPython信者をそこまで必死にさせるのだろう。
PythonじゃRailsは生まれなかったと言われたことが、そんなに気に食わなかったのか。


605 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 23:25:47.62 ]
>>604
OK. I know why you hate Python so hard.
You can learn a programming language only when
there's detailed documentation in Japanese,
but Python doesn't provide it.
However, this fact implies that you can't compare
programming languages in an equitable manner,
because your prejudices come from your English skills.

You seem to hate Python, but actually you do hate English.

606 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 00:21:11.69 ]
頭デッカチなだけのボンクラ野郎どもの会話は、くだらねーし、つまんねー

607 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 00:56:59.09 ]
>>582
それはそれで英語の書き方に慣れてるからというだけでCのような書き方を批判してない?

608 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 01:24:15.30 ]
>>607
ちゃんと後のレス読めよ

609 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 01:27:54.61 ]
>>597
特に日本ではZope信者がRuby信者以上にキモい

610 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 01:29:46.44 ]
>>595
くやしかったんですね
わかります



611 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 01:32:16.31 ]
pealとかrubyを好むプログラマは暗号のようなコードを美しいと思っちゃうから話にならない

612 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 01:33:44.73 ]
便利な言い訳だな

客観的な指標で比較しないと意味ないやん

613 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 01:35:45.51 ]
英語がどうのと言っている人はRSpecはいいと思ってる?
自分は、そこ頑張らんでもと思っちゃって。


614 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 01:38:35.67 ]
いやだからさー、pythonは客観的に読みやすいって常識だろ?
pythonよりperl/rubyが読みやすいって奴いるの?

615 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 01:42:06.24 ]
>>614
心の中でそう思うのは自由だが、説得力はない

616 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 01:42:55.81 ]
>>608
すまん読んでなかった
頭の方だけ読んで分かった気になるのは良くないね

617 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 01:45:51.68 ]
いや、pythonが読みにくいと言ってる奴を見たことがない

618 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 01:50:19.97 ]
>>617
例えば「いや〜Pythonは読みやすいけど、Rubyの方がもっと読みやすいよ」
っていう誰かがここに出現したらどうするんだよ
オレが思うからPythonは客観的に読みやすい、なんていう主観的な主張を続けるのか?

619 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 01:53:56.00 ]
>>618
俺の意見じゃなくて一般論の話をしてるんだけど
読みやすいとかは数値化しずらいだろうが
どう見ても大多数の意見がそうなってるだろ

620 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 01:57:16.98 ]
>>605
Pythonは日本語のドキュメントあるよ。それも十分detailedなのが。
ttp://www.python.jp/doc/release/

> but Python doesn't provide it.
なんていったら、翻訳してくれた人たちに失礼すぎる。

なんでそう思うに至ったのかの経緯に興味あるな
池沼かもな



621 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 01:57:19.38 ]
>>576
3つに分けて返答するよ
[二分岐(>>555,558)]
・すでに指摘されているけど、Pythonのif式の構文は特異/異常なもの
 自分の知る限り、<then> if <cond> else <false> という
 構文を採用しているのはPythonだけ
・直感的に、Pythonの構文はフローチャートやPAD等の分岐図と一致しない
 特にこのような分岐がネストする場合には、それが顕著になる
 コード全体の構造を見れば、Pythonだけが異質なのは明白
[多分岐(>>561,562)]
・Pyhtonには多分岐式が存在しないため、ハッシュを用いた
 「トリッキー」なコードを書かなければならない
・もちろんRubyでもハッシュによる同様なコードを書けるが、
  ・ハッシュを使わなければ書けないPythonと
  ・ハッシュを使っても使わなくても書けるRubyとの間には
 表現力に雲泥の差があるのは明白
[局所宣言(>>565,566)]
・Ruby/ML/Haskellの間には
 それぞれメソッドチェーン/高階関数/リスト内包表記という差異はあるが、
 それ以外の全体的なコード構造に関しては類似性がある
・異質なコードはPythonだけであり、
 これはPythonに局所宣言(ブロック/let式/where節)が存在しないことに起因する

これらから「Pythonは関数型プログラミングには適さない言語である」という
結論に至った


622 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 01:58:53.48 ]
関数型プログラミングに適した言語なんて一般的には全然好まれてないじゃん

623 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 01:59:07.22 ]
>>619
>どう見ても大多数の意見がそうなってるだろ

それが主観的ってことでしょ。
主観的でいいなら、「Pythonの内包表記よりRubyのメソッドチェーンの方がわかりやすい」と思う人は多数いるよ。

624 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 02:01:05.67 ]
>>619
そ、そうか。カンファレンスでアンケートでも取ったのか?

625 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 02:01:23.67 ]
>>623
だから何?pythonがrubyより読みやすいのは事実だろ。何を否定したいのか分からん
rubyがpythonより読みやすいのなら、なんで「関数型プログラミング」にも適したrubyがpythonに負けてるわけ?

626 名前:621 mailto:sage [2012/02/11(土) 02:04:00.13 ]
>>621の[二分岐(>>555,558)]への補足として、
前スレでのPythonの異質さに関する解説をコピペする

>711 名前: 682 Mail: sage 投稿日: 2011/12/29(木) 15:05:28.17
>>>695のPythonコードが読みづらい原因はif演算子の構文にある
>条件判定が式である言語に限定して、それらの構文を比較してみる
>
>Ruby:
>  if 条件式 then 式1 else 式2 end
>Smalltalk:
>  条件式 ifTrue: [ 式1 ] ifFalse: [ 式2 ]
>Lisp:
>  ( if 条件式 式1 式2 )
>ML:
>  if 条件式 then 式1 else 式2
>Haskell:
>  if 条件式 then 式1 else 式2
>
>Python:
>  式1 if 条件式 else 式2
>
>普通の言語は「条件式 -> 式1 -> 式2」と左から右へ流れる(それが自然)
>それに対して「Pythonだけ」は「式1 <- 条件式 -> 式2」と
>左へ右へと行ったり来たりしないとコードが読めない
>
>プログラミング言語界の中で「Pythonだけ」が異端な存在で、可読性の悪い構文が採用されている
>これは明らかにPython開発陣の言語設計ミス、あるいは判断ミスだね

627 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 02:08:44.16 ]
>>626
お前その711の言ってることに賛成なの?
異端という言葉を使って一生懸命印象誘導してるけど、アホにしか見えない
こいつが自然と言ってるのは、それがCに似てるからに過ぎない
式に条件が後続する書き方が明らかに好都合

628 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 02:16:01.85 ]
>>627
>式に条件が後続する書き方が明らかに好都合

個人的には理解不能
伝統的なif文(あるいはif式)に対して
どういう利点があるのかさっぱり分からん

629 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 02:20:38.02 ]
まず一番左をみて条件式があるというのが気持ち悪い
hoge = 条件式〜 って条件式が長かったら右辺値がどんな値になるのか分かんねえじゃん
結局先に後ろを見てそれで条件式を見直すことになるだろ

630 名前:621 mailto:sage [2012/02/11(土) 02:20:45.94 ]
Pythonは英語風だから読みやすいという意見があるけど、本当だろうか?

  日本語:もし C であれば T さもなければ F。
   英語:If C then T, else F.
 ルビー語:if C then T else F
バイソン語:T if C else F



631 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 02:27:29.52 ]
if文を読むときに

ifが先頭・・・ああ、次の場合条件によって@かAのどちらかを実行しなさいってことね
ifが後ろ・・・ああ、@を実行するのね―――っと思ったら例外ありかよ!

みたいな感じ、個人の感覚としては




632 名前:621 mailto:sage [2012/02/11(土) 02:28:04.76 ]
>>627
「世界中の皆が使っているからPythonを使うべき」という主張は、
Python信者の理屈ではなかったのかな?

同じ理屈を当てはめると、条件式に関して異端なのはPythonのほうになるけど、
違うん?

633 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 02:30:34.29 ]
>>632
意味不明。どの理屈がどうだって?

634 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 02:30:58.26 ]
>>631
英語全く読めないでしょ?

635 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 02:36:43.79 ]
>>634
ああ、結局分かりやすさではなく英語に慣れてるかどうかの問題?

636 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 02:37:37.60 ]
>>630
英語:T if C. Otherwise, F.
python:T if C else F

637 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 03:15:57.25 ]
Pythonを分かりやすいと感じる理由を自分の理屈で持って解釈して主張する人もいれば
単に俺は英語に慣れてるから英語に近いPythonは英語に慣れてる分わかりやすいんだと、
突き詰めればそういうことにしかならない人もいるらしい、と、そんな感触

638 名前:621 mailto:sage [2012/02/11(土) 03:38:05.29 ]
>>631
Python信者の理屈とは「みんなが使っていれば、それは正しい」だろ
>>626のコピペを見れば、

 みんなが採用しているのがif <cond> then <true> else <false> であり、
 それは正しい

という帰結になるのは猿でも分かるよな?

639 名前:621 mailto:sage [2012/02/11(土) 03:40:46.63 ]
>>636
>>630は二分岐に関する「Pythonは英語風」に対する疑問であったけれど、
>>636へのレスに代えて、今度は別の切り口で疑問を提起してみる

まず、英語風(=自然言語風)というよりも、これは
「数学における定義と似ている」と言い換えた方が適切だろう
たとえば、[多分岐(>>561,562)]を数式として記述すると以下のようになる

 f(X) = T, if X is "Green"
    T, if X is "Yellow"
    F, otherwise

確かにこれは、Pythonの <true> if <cond> .... という構文と似ている
実際Haskell文化では、>>562(上段)よりも以下のような数式風のコードが好まれる

 f x
   | x == "Green" = true
   | x == "Yellow" = true
   | otherwise = false


では、自分はPythonに詳しくないので、>>562(下段)のコードを書き直してみてくれ
Pythonが英語風で関数型プログラミングにも適しているのなら可能なはず(他の人でもいい)

論よりコードだ

640 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 03:47:38.01 ]
後置ifは、他言語にもあるから別に変でも何でもない。

lenの方がよっぽどきもい。
__len__とか勘弁して欲しい。



641 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 03:48:02.98 ]
if <cond> then <true> else <false>
が判り易いなんて思い込みだろ
<true> if <cond> else <false>
の方がシンプルで良いじゃん

っていうか何で「ただの値を返すだけの記号」だと思えないんだろう

642 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 03:50:50.25 ]
>>640
同意

Python 始めて間もないとき
"hoge".len() とか
"hoge".length() とか
期待した結果が得られないのでめっちゃ悩んだ
len("hoge") なんてインチキというか目から鱗というか
C やってたら当たり前なんだろうけど
Ruby しか知らない人には習得は厳しい言語かもしれないな


643 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 04:08:42.78 ]
>>640
他言語にもあるのかよ。>>621に騙されちゃった

644 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 04:13:37.65 ]
lenという関数もその名前も別に不満はないが
なぜ文字列やリストオブジェクトのメソッドが__len__なのかは確かに理解出来ない
結局は関数のlenしか使わない

645 名前:621 mailto:sage [2012/02/11(土) 04:21:48.61 ]
>>640
>後置ifは、他言語にもあるから別に変でも何でもない。

それは話のすり替えだよ
後置if はRubyや他の言語にもあるけど、それらはすべて(式ではなく)文だ
分岐式としてのif構文が後置なのはPythonだけで、それは異端だというのが>>626のコピペ

>>__len__とか勘弁して欲しい。

だよな
__init__ とか勘弁して欲しい

646 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 04:25:14.17 ]
Cやっててもきもいよ。
ほかは、メソッドになってるのになんでこれだけ関数なんだ。
どっちかに統一してほしい。



647 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 04:25:25.24 ]
>>639
誰が、pythonが関数型プログラミングに適してるって?
なぜか、関数型プログラミングに適してるほうが勝利という前提で話を進めているけど
それは初めから詭弁だし、お前の文章自体が何かごちゃごちゃしてるのも、その特殊な脳内を表しているの?

よくpythonスレでもリスト内包にlambda式突っ込んでごちゃごちゃやってる人いるけど
無理せずに外に関数として定義してやれば何倍もスッキリするし、そうするべきだと俺は思ってるけど
lambda式自体は使うべきだけど無理して使う必要ない。読む方にも迷惑

648 名前:621 mailto:sage [2012/02/11(土) 04:26:04.90 ]
>>641
シンプルで良いのなら、>>639で希望したように、
ぜひ極めてシンブルな多分岐処理に対する>>562(下段)のトリッキーなPythonコードを
シンプルで美しいコードに書き直してくれ

繰り返すけど、論よりコードだ

649 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 04:31:31.50 ]
__init__や__main__は特殊な関数と明示してるから嫌いじゃない
__len__は別に特殊である必要がない

>>648
他のコード見ても何をやりたいのか分からん

650 名前:621 mailto:sage [2012/02/11(土) 04:36:57.63 ]
>>647
>誰が、pythonが関数型プログラミングに適してるって?
>なぜか、関数型プログラミングに適してるほうが勝利という前提で話を進めているけど

それは「Pythonは関数型プログラミングに適していない」という意見への賛同として
解釈してよいのかな?

>よくpythonスレでもリスト内包にlambda式突っ込んでごちゃごちゃやってる人いるけど
>無理せずに外に関数として定義してやれば何倍もスッキリするし、

まったくそのとおりだと自分も思う
実際、>>566(上段)のHaskellコードは、リスト内包表記内にあるごちゃごちゃしたコードを
where節を使うことで無理にせずスッキリした読みやすいものになっている
>>565のRubyやMLは内包表記ではないけれど、それぞれブロックとlet式を使ってスッキリしている
それに比べて、>>566(下段)のPythonコードはなんともごちゃごちゃした汚いコードだよね

え、Pythonって外で関数定義しないとスッキリさせることができないの?
いったい何のためにラムダ式(無名関数)があるんだろう.....




651 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 04:39:30.69 ]
>>650
お前がスッキリと言ってるものがどんな処理をしてるのか分からないから説明してくれよ

652 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 04:41:17.23 ]
>>650
関数型プログラミングには適してないんじゃね。望まれてもいないし






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

前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