- Perlについての質問箱 64箱目 [転載禁止]©2ch.net
838 :デフォルトの名無しさん[sage]:2016/01/06(水) 07:31:37.90 ID:wURx2dCr - ベタっていうなら、関数使うな。
|
- 【JavaScript】スクリプト バトルロワイヤル52【php,py,pl,rb】 [転載禁止]©2ch.net
848 :デフォルトの名無しさん[sage]:2016/01/06(水) 07:35:05.09 ID:wURx2dCr - >>846
コードの複雑さっていうのは、そういうことじゃないからな。 少ない部品であっても、関連する機能をあちこちに ばらまくとあっという間に複雑になる。 というか、部品が少ないほど、少ない部品を使って あれこれ書かないといけないから、複雑になる。
|
- 【JavaScript】スクリプト バトルロワイヤル52【php,py,pl,rb】 [転載禁止]©2ch.net
850 :デフォルトの名無しさん[sage]:2016/01/06(水) 08:00:46.11 ID:wURx2dCr - 例えば、リストの中身は特定の条件で分けるという処理をしていた。
例えば偶数の値のリスト、奇数の値のリストみたいに。 forとifとリストのappendあたりを使えば、それは実現できる。 だけど、別の書き方、itertools.groupby()を使えば もっとシンプルに実装できる。 いろんな道具が合ったほうがシンプルに書けるという例。 そしてPythonでもいろんなやり方があるという例
|
- 【JavaScript】スクリプト バトルロワイヤル52【php,py,pl,rb】 [転載禁止]©2ch.net
855 :デフォルトの名無しさん[sage]:2016/01/06(水) 09:01:02.28 ID:wURx2dCr - 俺としてはPythonであっても
「やり方は一つ」なんてことはありえないし、 「誰が書いても同じようなコードになる」なんてことはありえないし、 「複雑で分かりにくいコードにはならない」なんてこともない。 他の言語となんらかわらないって 同意を得られればOKさw
|
- 【JavaScript】スクリプト バトルロワイヤル52【php,py,pl,rb】 [転載禁止]©2ch.net
858 :デフォルトの名無しさん[sage]:2016/01/06(水) 09:40:03.40 ID:wURx2dCr - >>857
構文を追加するのもライブラリを追加するのも 大差ないからね。 構文の話で言えば、デコレータとかあるね。デコレータは無くてもできる。 やり方は一つというならば、デコレータはなくていいはず。 Pythonも他の言語同じように構文を追加しているし やり方は幾つもある。
|
- 【JavaScript】スクリプト バトルロワイヤル52【php,py,pl,rb】 [転載禁止]©2ch.net
859 :デフォルトの名無しさん[sage]:2016/01/06(水) 09:47:02.53 ID:wURx2dCr - それから、構文がシンプルであれば、
その構文を使って作られたコードもシンプルになるか? という問いを出せば、殆どの人が NOと答えるのは明らかだろうしね。
|
- 【JavaScript】スクリプト バトルロワイヤル52【php,py,pl,rb】 [転載禁止]©2ch.net
862 :デフォルトの名無しさん[sage]:2016/01/06(水) 09:53:09.92 ID:wURx2dCr - Pythonに慣れたプログラマならデコレータを使う
っていう所が矛盾してるって気づかない?w じゃあPythonに慣れていない人は、 デコレータを使わないわけだ。 Pythonはいろんな書き方ができるっていう 例になってるよね。
|
- 【JavaScript】スクリプト バトルロワイヤル52【php,py,pl,rb】 [転載禁止]©2ch.net
863 :デフォルトの名無しさん[sage]:2016/01/06(水) 09:54:37.09 ID:wURx2dCr - >>861
俺がいいたいことを勘違いしているから どうしようもないなw 俺は、Pythonでもいろんな書き方できるって話をしてる。 Pythonを使ったらと言って、同じ書き方になるわけじゃないし 綺麗な書き方になるわけじゃない。
|
- 【JavaScript】スクリプト バトルロワイヤル52【php,py,pl,rb】 [転載禁止]©2ch.net
866 :デフォルトの名無しさん[sage]:2016/01/06(水) 10:04:44.43 ID:wURx2dCr - >>865
Python以前の問題があるよね? つまりコードの設計ね。クラス設計とか。 インターフェース設計とかこういう設計は人それぞれ違う。 別の人が同じジャンルのソフトを作ってもぜんぜん違うでしょ? こういうのは言語以前の問題なんだけど、 Pythonを使うと、なんで言語以前の問題が解決するのか? ソフトウェアが複雑になるかどうかっていうのは 結局作る人の技術による所が大部分を占めているわけだけど、 なんで「Pythonに慣れた人」限定にするんだ? それはつまり、Pythonに慣れない人がPythonを使うと 同じようなコードになるわけではないと認めているようなものだろう? Pythonは何も提供していない。
|
- 【JavaScript】スクリプト バトルロワイヤル52【php,py,pl,rb】 [転載禁止]©2ch.net
867 :デフォルトの名無しさん[sage]:2016/01/06(水) 10:06:43.56 ID:wURx2dCr - >>865
よし、じゃあ問題を一つだそう。 リスト内包表記を10回使うことで 一行で書けるコードがあるとする。 君は、一行で書くのか? 人によってバラバラだと思うぞ。
|
- 【JavaScript】スクリプト バトルロワイヤル52【php,py,pl,rb】 [転載禁止]©2ch.net
871 :デフォルトの名無しさん[sage]:2016/01/06(水) 10:15:09.34 ID:wURx2dCr - デコレータを使うにしても、
if なんとか return なんてものは全部デコレータにできるわけだ。 おそらくほぼすべての関数は、デコレータを使って書き直せるし、 それにより行数を減らすことも可能だろう。 例 (これは行数は減ってないけどな) @hello def world(): print "world" 出力結果 hello world
|
- 【JavaScript】スクリプト バトルロワイヤル52【php,py,pl,rb】 [転載禁止]©2ch.net
872 :デフォルトの名無しさん[sage]:2016/01/06(水) 10:16:20.30 ID:wURx2dCr - >>869
だから、お前は、入れ子何回までやるのか?って 聞いてるんだが。 その回数がPythonに慣れた人全員が同じであれば、 誰が書いてもおなじになるだろうさw
|
- 【JavaScript】スクリプト バトルロワイヤル52【php,py,pl,rb】 [転載禁止]©2ch.net
873 :デフォルトの名無しさん[sage]:2016/01/06(水) 10:17:17.02 ID:wURx2dCr - >>868
だからさ、コードが汚いっていうのは、 そういう細かい書き方が問題じゃないって言ってるの。 >>830で書いただろ 実際にやった上で言ってる。 初心者が書いたコードを修正したうえでな。 そいうのコードの何が悪かったか言ってやろうか? ・1関数のコードが長い ・Pythonらしいと言われる機能を何も使ってない。使わなくてもかけるからな。 ・リスト内包表記を使っていない。使わなくても別のやり方でかけるからな。 ・デコレータを使ってない。使わなくても同じ処理を重複して書けばできるからな。 ・PEP8に準拠していない。準拠しなくても別の書き方できるからな。 ・Djangoを使っていたがモデルを正しく使っていない。モデルではなくコントローラを太らせて同じことはできるからな ・コードのあちこちに接続サーバー情報などが直接埋め込まれていた。 ・Django、TurboGeares、Pyramid、Flask、Bottleなどいろんなフレームワークがあって、書き方もそれぞれ違う。
|
- 【JavaScript】スクリプト バトルロワイヤル52【php,py,pl,rb】 [転載禁止]©2ch.net
875 :デフォルトの名無しさん[sage]:2016/01/06(水) 10:20:28.83 ID:wURx2dCr - >>870
> 俺の理想を100%供給してくれるわけではないからpythonはなにも供給しない > って言われてるようなものなのによくやるわ 少し違うね。 俺が求めているものを全く供給してくれていないから、 Pytyonが主張している誰が書いても同じコードになるとか 誰が書いても読みやすいコードになるというのは 幻想であるって話。 だからPythonが何かを供給してくれるというのなら、 何を供給してくれるのかを具体的に言ってくれと言ってるんだが。 「○○という機能を供給してくれるから同じようなコードになる」という形で言ってくれ。
|
- 【JavaScript】スクリプト バトルロワイヤル52【php,py,pl,rb】 [転載禁止]©2ch.net
876 :デフォルトの名無しさん[sage]:2016/01/06(水) 10:21:23.70 ID:wURx2dCr - >>874
> じゃあ、その点、誰でもある一定のレベルで綺麗なコードが書けるLL言語って何か提示して欲しいわ。煽りではなく。 俺が主張をしているのは、Pythonを含めてそんなものはないって言ってるだけ。
|
- 【JavaScript】スクリプト バトルロワイヤル52【php,py,pl,rb】 [転載禁止]©2ch.net
879 :デフォルトの名無しさん[sage]:2016/01/06(水) 10:32:06.14 ID:wURx2dCr - >>877
lintは言語じゃねーしw 言語ではコードスタイルの統一すら出来ないからlintが作られたんだろ? そのlintも設定次第でいろんなスタイルに対応できる(=いろんなスタイルがある) ということだし。 >>878 コードの複雑さっていうのは、言語で解決できる問題じゃないってわかりましたか? Pythonを使ったからといって、誰でも同じようなコードになるわけじゃないし、 汚いコードが無くなるわけもない。 ほんの些細な点(インデントだけ)が統一される程度で その程度のことだからコードの品質に大した影響を与えない。 Pythonだからって他の言語となんらかわらない。 結局はプログラマの技術力次第だって話を最初からしてるんだが。
|
- 【JavaScript】スクリプト バトルロワイヤル52【php,py,pl,rb】 [転載禁止]©2ch.net
881 :デフォルトの名無しさん[sage]:2016/01/06(水) 10:56:01.45 ID:wURx2dCr - >>880
lintは他の言語でもあるんでPython特有の話じゃない。 lintの存在はPythonは他の言語と大差ない理由の一つだよ。
|
- Git 13 [転載禁止]©2ch.net
514 :デフォルトの名無しさん[sage]:2016/01/06(水) 11:27:32.41 ID:wURx2dCr - 削除すればいいやん
|
- 【JavaScript】スクリプト バトルロワイヤル52【php,py,pl,rb】 [転載禁止]©2ch.net
892 :デフォルトの名無しさん[sage]:2016/01/06(水) 15:53:32.53 ID:wURx2dCr - >>891
じゃあ、その理由を具体的に言ってみて。
|
- 【JavaScript】スクリプト バトルロワイヤル52【php,py,pl,rb】 [転載禁止]©2ch.net
893 :デフォルトの名無しさん[sage]:2016/01/06(水) 16:01:45.10 ID:wURx2dCr - レベルが10段階あったとして10が最高のコード、5が普通のコード、
3は汚いコードで2は使いものにならないコード。 Pythonは1を2にする程度 Pythonを使うだけで最低2という一定のレベルのコードが書ける。 この程度の話でしょw
|
- 【JavaScript】スクリプト バトルロワイヤル52【php,py,pl,rb】 [転載禁止]©2ch.net
899 :デフォルトの名無しさん[sage]:2016/01/06(水) 17:20:17.16 ID:wURx2dCr - >>896
だから、その一節の根拠はなにか?って話だ。 Pythonはやり方が一つしかないっていうのが ウソであることはすでに示した。
|
- 【JavaScript】スクリプト バトルロワイヤル52【php,py,pl,rb】 [転載禁止]©2ch.net
902 :デフォルトの名無しさん[sage]:2016/01/06(水) 18:02:40.16 ID:wURx2dCr - >>901
> hour=(""+(10000+(h.replace(/\:/g,"")-0))).slice(1) > みたいなのは悪手だよね。普通は。 それと同じコードをPythonで書くと?
|
- 【JavaScript】スクリプト バトルロワイヤル52【php,py,pl,rb】 [転載禁止]©2ch.net
903 :デフォルトの名無しさん[sage]:2016/01/06(水) 18:03:32.43 ID:wURx2dCr - >>901
> 正しいと言われるシンプルなやり方はひとつになるべきだし、 それは理想であって、Pythonが実現していることではない > 原義通りやってれば一つになる、って事。 一つになるものなんかない
|
- 【JavaScript】スクリプト バトルロワイヤル52【php,py,pl,rb】 [転載禁止]©2ch.net
911 :デフォルトの名無しさん[sage]:2016/01/06(水) 19:41:32.98 ID:wURx2dCr - な? いろんな書き方があるだろ?
Pythonでは書き方一つではないという証拠。
|
- パターンマッチを極限まで高めたら [無断転載禁止]©2ch.net
5 :デフォルトの名無しさん[sage]:2016/01/06(水) 20:45:00.31 ID:wURx2dCr - >>1
if-elseif-else 最強
|
- 【最強CUI】PowerShell -Part 1
613 :デフォルトの名無しさん[sage]:2016/01/06(水) 20:58:29.27 ID:wURx2dCr - PSHELLははやいのか?
|
- 【JavaScript】スクリプト バトルロワイヤル52【php,py,pl,rb】 [転載禁止]©2ch.net
917 :デフォルトの名無しさん[sage]:2016/01/06(水) 21:05:11.91 ID:wURx2dCr - Pythonでもやり方が固定されていないのはすでになんども言ったとおりだが、
仮にやり方が固定されているとすると、それはデメリットでしか無いよ。 というのは、やり方が固定されているということは、 これ以上発展しないということを意味するから。 普通は言語は進化していくものなのだが、進化しても 新しい書き方ができるようにならないということになる。 やり方が固定されているのでそういうことである。 最初っから完璧な言語であれば、それでもいいと思うが、 そんなものはない。だからPythonは最善じゃない書き方で やり方が固定されてしまう。Pythonは落ちていくだけの言語。 そして誰が書いても同じになるならば 著作権が発生しないということでもある。
|
- 【JavaScript】スクリプト バトルロワイヤル52【php,py,pl,rb】 [転載禁止]©2ch.net
922 :デフォルトの名無しさん[sage]:2016/01/06(水) 21:42:29.38 ID:wURx2dCr - やり方が固定されているっていうのが
ファンタジーなんだよw Pythonでもやり方はいくつもあるし、 悪い書き方もできる。
|
- 【JavaScript】スクリプト バトルロワイヤル52【php,py,pl,rb】 [転載禁止]©2ch.net
923 :デフォルトの名無しさん[sage]:2016/01/06(水) 21:44:18.83 ID:wURx2dCr - 例えばFizzBuzzは実用レベルとは程遠い
ものすごく小さいプログラムだけど たったこれだけのものでもやり方は幾つもある。
|
- Git 13 [転載禁止]©2ch.net
520 :デフォルトの名無しさん[sage]:2016/01/06(水) 21:47:51.60 ID:wURx2dCr - >>518
一行目は50文字以下。 だから改行なんぞあるわけがない
|
- 【JavaScript】スクリプト バトルロワイヤル52【php,py,pl,rb】 [転載禁止]©2ch.net
927 :デフォルトの名無しさん[sage]:2016/01/06(水) 22:44:42.46 ID:wURx2dCr - 最初からPythonは「やり方は一つ」とか「綺麗なコードが書ける」と言ってるが
別にそうなるような特別な機能を持っているわけでなく、 他の言語と何ら変わらないって話をしてるんだけどな。
|
- 【JavaScript】スクリプト バトルロワイヤル52【php,py,pl,rb】 [転載禁止]©2ch.net
929 :デフォルトの名無しさん[sage]:2016/01/06(水) 23:00:49.31 ID:wURx2dCr - >>928
それは正確じゃないねw ゴミみたいなコードを書くのはPythonでも可能 そして実際込みたいなコードを書いている奴がいる。 本当に書き方が一つしか無いのであれば、ゴミみたいなコードは存在しないはず。 ゴミみたいなコードを書くやつを排除する仕組みなんか Pythonにないし、たとえインデントだけキチンと揃えても ゴミコードはゴミコード っていう話をしてる。
|
- 【JavaScript】スクリプト バトルロワイヤル52【php,py,pl,rb】 [転載禁止]©2ch.net
931 :デフォルトの名無しさん[sage]:2016/01/06(水) 23:07:41.36 ID:wURx2dCr - な? 反論ではなく、馬鹿というだけw
つまり反論できないんだよね。
|
- 【JavaScript】スクリプト バトルロワイヤル52【php,py,pl,rb】 [転載禁止]©2ch.net
934 :デフォルトの名無しさん[sage]:2016/01/06(水) 23:14:41.38 ID:wURx2dCr - >>932
そのとおりだね(笑)
|