トップページ⇒tech
1002コメント371KB

【JavaScript】スクリプト バトルロワイヤル52【php,py,pl,rb】 [転載禁止]©5ch.io

レス数が900を超えています。1000を超えると表示できなくなるよ。
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/
0809デフォルトの名無しさん2016/01/05(火) 15:18:26.97ID:lQs38V4n
>>797
Blenderだけではない
主要な3DCGのスクリプトはこぞってPythonを採用してるよ
0810デフォルトの名無しさん2016/01/05(火) 15:52:16.53ID:d6zZ4+2j
>>808
それでPythonが書き方がバラバラになるけど、
それでも見やすい理由は?
答えは「ない」
0811デフォルトの名無しさん2016/01/05(火) 17:40:07.89ID:7WGTfX60
>>810
iocccみたいなコードが、原理的に書けない、ってだけでも違うよ。

見てくれがある程度強制されるって事は、≒問題になるのは内容、ってこと。
異なるコード、アルゴリズムを書くから見てくれが変わる。
幻想じゃないよ。
読みにくいコードは、≒難しいことを難しいまま実装してるか、簡単なことを難しく実装してるだけ。
そうしていくと、同じ事をするためのやり方はどんどん淘汰されて同じ形になってくでしょ。
将棋の定石みたいなもの。
バラバラのコードの時点、他人とは違うやり方をしている時点で、画期的か、バカな事してるんだよ。
そして画期的何てことは滅多にない。
それが、「バラバラにならない」の真意だけど、読み取れなかったかな?

izipとzipみたいな細かいけど大きい違いは、python3で無くなるしね。
0812デフォルトの名無しさん2016/01/05(火) 18:03:36.51ID:faHG3B9o
pythonのコードが読みやすくないとかエアプかよ
0813デフォルトの名無しさん2016/01/05(火) 18:09:52.90ID:Q0bmXsT3
>>811さんは理想だけを繰り返してる気がする
方向性はみんなわかってるし認めてるから繰り返す必要無いかもね
ただ、ベクトルの大きさが問題なのであってw

「書き方が一つ」ってのはやっぱ対象が小さいんじゃないかな
局所的にはそれでいい、たしかにそれは正しく見える
ただプログラミングの大変さは複雑さの大変さであって
我々の挑む敵はどうしようもなくでかくて複雑なんであって…
フェイスブックの実装は一つ?っていう話
0814デフォルトの名無しさん2016/01/05(火) 18:15:32.56ID:XFe6MEAW
いいから黙ってJAVAとPythonだけ触ってろ
08158132016/01/05(火) 18:16:38.12ID:Q0bmXsT3
ドゥフw 訂正
ツイッターのバックエンドがscalaで書かれてる話を
フェイスブックがpythonで書かれてると謎の勘違いをしてしまっておりました
0816デフォルトの名無しさん2016/01/05(火) 18:28:13.20ID:7WGTfX60
>>813
局所的に正しいの塊で、全体が正しいんだし、良いんじゃないかなーって思うけどね。

やってて面白いのはjs。
0817デフォルトの名無しさん2016/01/05(火) 18:43:14.39ID:mUunVOk1
言語が標準の型を用意してくれるのは間違いなく良いコードになると思う
例えばJSだと非同期処理の接続のスタンダードがなかなか決まらなくて、
第一引数にエラーハンドラ、第二引数に成功ハンドラ渡すとか、
いやonerrorとonsuccessプロパティに定義しておくんだとかバラけていたのが、
Promiseが入ったので引き締まった。

当然古いコードだったり、今からでも自由にコードを書いてもいいが、
そういう標準があるというのとないのでは全然違う。
0818デフォルトの名無しさん2016/01/05(火) 18:49:24.17ID:mUunVOk1
あと自由で楽しいのとは関係ないと思う
JSだって少し前まではプロトタイプベースといいながら、
実際はそれには触れられず、言語が用意したクラスもどきシステムに縛られて
標準ライブラリも構文も少なく、仕様が小さいような言語だったが、
自由な言語と言われていた。
実際には自由なのではなくプロトタイプベースの上に成り立っている
クラスもどきシステムをハックして、プロトタイプベースの振る舞いを利用して
クラスシステムを立て直そうともがいていただけなのだが、
そういう取り組みすらも自由と言われていたね。
0819デフォルトの名無しさん2016/01/05(火) 19:13:30.58ID:d6zZ4+2j
Pythonの書き方が一つっていうのは嘘だし、
Pythonでも汚いコードは書ける。

(他の言語でも)汚いコードっていうのは、インデントの位置が
ずれてるとか言うレベルじゃなくて、コードの場所が違う。

汚いコードをそのまま移植したらPythonでも同じように汚くなる。
移植できないコードなんて無いよ。
0820デフォルトの名無しさん2016/01/05(火) 19:19:08.80ID:d6zZ4+2j
>>811
> iocccみたいなコードが、原理的に書けない、ってだけでも違うよ。
書くことはできる。

Pythonでも変数や関数を一文字にすることはできるし、
lambdaやリスト内包表記を使って、長々と一行で書くことだってできる。

汚いコードを書くことが原理的に出来ないのであれば、
コーディング規約なんて無いはずだし、
可読性や複雑度を調べるradonなんてツールも無いはずなんだよ。
0821デフォルトの名無しさん2016/01/05(火) 19:25:02.24ID:dBHzF9wR
なんだ、単に揚げ足取りしてるだけか
0822デフォルトの名無しさん2016/01/05(火) 19:27:45.23ID:d6zZ4+2j
どこが揚げ足取りなのか、下線でも引いてくれないかね?
0823デフォルトの名無しさん2016/01/05(火) 19:30:03.34ID:d6zZ4+2j
ぶっちゃけ、iocccを例に出すほうが、揚げ足取りだろう。

まるでiocccみたいなコードが全てだと思っているようだ。
汚いコードっていうのは、iocccには全くなっていないが汚い。

故にiocccが書けなくても、汚いコードはあるし、
そういう汚いコードをPythonでもかける。

Pythonでは汚いコードを書けないと勘違いしているのは、
よっぽど短いコードしか書いてない証拠だろう。
0824デフォルトの名無しさん2016/01/05(火) 19:59:14.50ID:2hRfN9SS
いいから黙ってJAVAとPythonだけやってろ
それだけでプログラマー人生は安泰だ
0825デフォルトの名無しさん2016/01/05(火) 20:04:23.17ID:Nzvsp30A
pythonで汚く書けるってなんだよ
そりゃ書こうと思えば書けるだろ
pythonのが他より綺麗なコードが出来るようにバイアスがかかってるだけで
0826デフォルトの名無しさん2016/01/05(火) 20:19:38.31ID:tTU6gw0u
たとえば他の言語で綺麗に書けない奴が
pythonだから書けるようになるとは思えないんよね
プログラミングなんて結局はインタフェース設計だから
0827デフォルトの名無しさん2016/01/05(火) 20:34:53.08ID:Nzvsp30A
思えないとかいってるレスってエアプだからこういう書き方してるのか、実際やった上で言っているのか
0828デフォルトの名無しさん2016/01/05(火) 20:36:05.87ID:d6zZ4+2j
>>825
> pythonのが他より綺麗なコードが出来るようにバイアスがかかってるだけで
だからそんなもんねぇって、

Python派がそういう主張しているだけで、
事実だと認められたことはない。
0829デフォルトの名無しさん2016/01/05(火) 20:39:05.54ID:Nzvsp30A
>>828
すまん、その「認められことはない」って誰に「認められたことはない」の?
まさかID:d6zZ4+2jに「認められたことはない」じゃないよな?
0830デフォルトの名無しさん2016/01/05(火) 20:49:35.85ID:d6zZ4+2j
>>827
> 思えないとかいってるレスってエアプだからこういう書き方してるのか、実際やった上で言っているのか

実際にやった上で言ってる。
初心者が書いたコードを修正したうえでな。

そいうのコードの何が悪かったか言ってやろうか?

・1関数のコードが長い
・Pythonらしいと言われる機能を何も使ってない。使わなくてもかけるからな。
・リスト内包表記を使っていない。使わなくても別のやり方でかけるからな。
・デコレータを使ってない。使わなくても同じ処理を重複して書けばできるからな。
・PEP8に準拠していない。準拠しなくても別の書き方できるからな。
・Djangoを使っていたがモデルを正しく使っていない。モデルではなくコントローラを太らせて同じことはできるからな
・コードのあちこちに接続サーバー情報などが直接埋め込まれていた。
・Django、TurboGeares、Pyramid、Flask、Bottleなどいろんなフレームワークがあって、書き方もそれぞれ違う。


細かい指摘をすればいくらでもあげられるよ。

こういった所が、汚いコードの原因であって、それを防ぐ機能なんてPythonに備わっていない。
Pythonだっていろんなやり方があるし、誰が書いても同じコードになったりなんかしない。
インデントを強制することぐらいだろ。そのインデントだってインデントがブロックを示すってだけで
改行の位置までは強制してないから、コード度の書き方だけでもいろんな書き方ができる。

Pythonの主張を過大評価しすぎ。
0831デフォルトの名無しさん2016/01/05(火) 21:05:39.42ID:dBHzF9wR
まだ妄想や思い込みだけで語ってるのか
0832デフォルトの名無しさん2016/01/05(火) 21:11:56.59ID:Nzvsp30A
>>830
なるほど疑って悪かったな
PEP8準拠に関してはPylint使えよとしか言いようがないが、他のは確かに出来るな
確かに出来るけどpythonでそれをやるとPEP8との兼ね合いとかで息苦しくなってきて初心者の側もうすうすこれはダメなんじゃないかと思うようなコードが出来上がらないか?
例えば入れ子にしすぎたらすぐに80文字規制に掛かるとか

ってかなんでpep8に違反してると警告でるように設定してないの?
0833デフォルトの名無しさん2016/01/05(火) 21:14:04.19ID:azra2M1e
perlとかに顕著だけど、読みやすい綺麗なコードで、
その言語らしさもあるコードでも複数の書き方があるんだよね
ここで「らしさ」っていうのは、その言語の文化や標準的なコーディング規約に沿ってるって事ね

でもpythonだと、読みやすく綺麗でpythonらしいコードってなると
あまりブレがなくなる感じ
0834デフォルトの名無しさん2016/01/05(火) 21:18:01.50ID:tTU6gw0u
流れと話微妙に違うが
ある人がperlのコード片をブログに書いてるのみて
驚くほど見やすく書かれているのに驚いた
とかく糞コード乱発しがちなあの言語で、である
その人はわりと技術者としては有名で
さすがというか噂に違わぬ力量が透けて見えた
0835デフォルトの名無しさん2016/01/05(火) 21:23:07.09ID:d6zZ4+2j
>>832
> PEP8準拠に関してはPylint使えよとしか言いようがないが

使わなくてもできるからね。

>初心者の側もうすうすこれはダメなんじゃないかと思うようなコードが出来上がらないか?

初心者だから、それがだめだとわからない。
だめだとわかるには、もっといいものが何かを教えてやらないといけない。

結局良いコードを書くにはPythonを使うだけでは駄目だし、
Pythonが良いコードを強制してくれるわけでもないという当たり前の話

> ってかなんでpep8に違反してると警告でるように設定してないの?
俺に言うな。そいつはpep8なんてものがあることを知らなかった。
俺に言わせれば、なんでPythonはデフォルトでpep8違反をコンパイルエラーにしないんだ?って言いたいぐらいだ。

俺はコーディングスタイルはいろんなスタイルがあるものだから、コンパイルエラーにするべきではないと思うが、
Pythonの文化では書き方は一つなのだろう? なら(俺の考えとは違うが)Pythonはコーディングスタイルも
一つに決めて、それ以外はエラーにするべきじゃないのか?
それをしないことからも、結局書き方は色々あると認めているようなものだよ。

初心者っていうのは、無知だから初心者なわけで初心者が汚いコードを書くのはどうしようもない。
無知という前提のやつにPythonを使わせるだけで矯正などできない。
初心者はPythonらしいコードっていうのも知らないからな。
0836デフォルトの名無しさん2016/01/05(火) 21:31:20.69ID:QVqdPGfo
>>835
それって身の回りに誰も教える人がいなくて完全に独力でプログラムを習い始めたやつでしかも情報収集能力もまだないような完全なる初心者じゃないか?
そこまでの初心者にいいコードを強制することを求めてるのか
流石にそれはpythonに多くを求めすぎだろ……
0837デフォルトの名無しさん2016/01/05(火) 21:59:10.91ID:d6zZ4+2j
>>836
だから完全なる初心者にPythonを使わせても
まともなコードが書けるわけじゃないって事を言ってる。

ある程度の力を持ったプログラマであれば、
インデント矯正なんかしなくても、正しくインデントできるし、
どの言語にもあるLintツールやコーディングスタイルチェックツールを使っている。

さてPythonは何を持って、誰が書いてもわかりやすいコードになるとか
同じようなコードになると言ってるのだろうか?

初心者には何も与えない。ある程度のプログラマなら自分でできる。
Pythonが与えてくれるものでコードに質に関して役に立つ物は何もないではないか。
0838デフォルトの名無しさん2016/01/05(火) 22:01:54.58ID:dBHzF9wR
みんな構ってちゃんに優しいな
0839デフォルトの名無しさん2016/01/05(火) 22:03:27.70ID:QVqdPGfo
>>837
そんなこの世のプログラマのレベルは0が100かみたいな……
完全なる初心者よりはもうちょっとレベル高いけどまだrubyとかで読みやすく書けるわけでもないレベルのプログラマのことも考慮に入れてあげてください
0840デフォルトの名無しさん2016/01/05(火) 22:06:46.18ID:d6zZ4+2j
完全なる初心者よりはもうちょっとレベル高いけどまだrubyとかで読みやすく書けるわけでもないレベルのプログラマ

に、Pythonはなにを与えてくれるの?
0841デフォルトの名無しさん2016/01/05(火) 22:11:50.64ID:tTU6gw0u
それが聞きたいね俺もw
0842デフォルトの名無しさん2016/01/05(火) 22:14:32.29ID:C6KtcH2L
pythonがプログラマに与えてくれるもの?
numpy, scipy, sklearnだよ
他は幻想
0843デフォルトの名無しさん2016/01/05(火) 22:16:25.25ID:QVqdPGfo
>>842
もうこれでいいや
0844デフォルトの名無しさん2016/01/05(火) 22:17:49.74ID:d6zZ4+2j
つまり、Python使ったからって
コードの品質が保たれるわけじゃないし、
いろんな書き方だってできるということさ。
0845デフォルトの名無しさん2016/01/05(火) 22:59:29.93ID:ee+BcJ4r
結局そういう文化が大切なんでしょ。
初心者がググって、何でもかんでもこうするには決まった方法はありませんから
イマジネーションを働かせて楽しく作りましょうと書かれていたら、
どこもかしこもお祭りのようなコードであふれるだろうし、
ある程度節度を持った上級者でも沢山の派閥に分かれることだろう。
それに近い・近かったのがJavaScriptだ。
それが別に0になる必要はない。少しでも少なければ少ないほうが良いと考えるのは自然。
0846デフォルトの名無しさん2016/01/06(水) 00:52:27.74ID:ABmaGhoQ
>>844
少なくともrubyほど多種多様で複雑ではないよ
0847uy ◆Qawu9.2l1E 2016/01/06(水) 05:11:00.39ID:NwAUbAKq
メソッドチェインしたほうが読みやすい
0848デフォルトの名無しさん2016/01/06(水) 07:35:05.09ID:wURx2dCr
>>846
コードの複雑さっていうのは、そういうことじゃないからな。
少ない部品であっても、関連する機能をあちこちに
ばらまくとあっという間に複雑になる。

というか、部品が少ないほど、少ない部品を使って
あれこれ書かないといけないから、複雑になる。
0849デフォルトの名無しさん2016/01/06(水) 07:39:11.57ID:cCUVpF+b
具体的にコード出してくれないと分からない
0850デフォルトの名無しさん2016/01/06(水) 08:00:46.11ID:wURx2dCr
例えば、リストの中身は特定の条件で分けるという処理をしていた。
例えば偶数の値のリスト、奇数の値のリストみたいに。

forとifとリストのappendあたりを使えば、それは実現できる。
だけど、別の書き方、itertools.groupby()を使えば
もっとシンプルに実装できる。

いろんな道具が合ったほうがシンプルに書けるという例。
そしてPythonでもいろんなやり方があるという例
0851デフォルトの名無しさん2016/01/06(水) 08:08:14.97ID:JLSdyPgF
>>850
朝だからって寝ぼけた事言ってんじゃねーぞタコ野郎が
0852デフォルトの名無しさん2016/01/06(水) 08:30:54.45ID:4Z5wN3vF
Pythonの原則に従うと部品は「大きく」なるよ。
そして「大きい」ということは比較的「多く」ならざるをえない。
ミニマムだから良いコードが書けるというものではない。
むしろ状況に合ったものが沢山用意されていれば工夫する余地は無いというのが
本当のPythonの原則であり目標。
0853デフォルトの名無しさん2016/01/06(水) 08:39:58.68ID:glbrcw7G
>>850
シンプルに書ける方が正しいコード、なんだよ。
0854デフォルトの名無しさん2016/01/06(水) 08:44:19.78ID:4Z5wN3vF
そこまでまとめちゃうとおかしくなると思うな
シンプルと複雑は紙一重だし

例えば
Number(str)
と暗黙の型変換を利用した
+str
はどちらがシンプルか?
自分は後者だと思い後者を使うけど
世の中の大多数がそうというわけでもない
0855デフォルトの名無しさん2016/01/06(水) 09:01:02.28ID:wURx2dCr
俺としてはPythonであっても
「やり方は一つ」なんてことはありえないし、
「誰が書いても同じようなコードになる」なんてことはありえないし、
「複雑で分かりにくいコードにはならない」なんてこともない。

他の言語となんらかわらないって
同意を得られればOKさw
0856デフォルトの名無しさん2016/01/06(水) 09:12:26.66ID:9dwHBHIu
>>853
シンプル = 正しいコード 

ではないよw
0857デフォルトの名無しさん2016/01/06(水) 09:36:26.93ID:Nanl9e4U
言語にドンドン便利な構文を追加する vs 言語のコアはシンプルにしてライブラリで拡張する

みたいな争いかと思ったら、ライブラリ使ったら短く書けるみたいな話だったw
0858デフォルトの名無しさん2016/01/06(水) 09:40:03.40ID:wURx2dCr
>>857
構文を追加するのもライブラリを追加するのも
大差ないからね。

構文の話で言えば、デコレータとかあるね。デコレータは無くてもできる。
やり方は一つというならば、デコレータはなくていいはず。

Pythonも他の言語同じように構文を追加しているし
やり方は幾つもある。
0859デフォルトの名無しさん2016/01/06(水) 09:47:02.53ID:wURx2dCr
それから、構文がシンプルであれば、
その構文を使って作られたコードもシンプルになるか?

という問いを出せば、殆どの人が
NOと答えるのは明らかだろうしね。
0860デフォルトの名無しさん2016/01/06(水) 09:48:59.27ID:Nanl9e4U
>>858
>>833あたりにも書いてあるけど、汚い冗長なコードの話じゃないんだよ
可読性の高いコードは大体似た形に収束するってこと

例えば、デコレータ使うべきコードは使ってないコードよりシンプルで読みやすいよ
だからPythonに慣れたプログラマならデコレータを使う
0861デフォルトの名無しさん2016/01/06(水) 09:51:35.61ID:Nanl9e4U
>>860に反論したかったら、デコレータを使ったコードと使わないコードで
同程度に可読性の高いコードを用意してから反論してね
自分でデコレータを言い出したんだから出来るでしょ?
0862デフォルトの名無しさん2016/01/06(水) 09:53:09.92ID:wURx2dCr
Pythonに慣れたプログラマならデコレータを使う
っていう所が矛盾してるって気づかない?w

じゃあPythonに慣れていない人は、
デコレータを使わないわけだ。

Pythonはいろんな書き方ができるっていう
例になってるよね。
0863デフォルトの名無しさん2016/01/06(水) 09:54:37.09ID:wURx2dCr
>>861
俺がいいたいことを勘違いしているから
どうしようもないなw

俺は、Pythonでもいろんな書き方できるって話をしてる。
Pythonを使ったらと言って、同じ書き方になるわけじゃないし
綺麗な書き方になるわけじゃない。
0864デフォルトの名無しさん2016/01/06(水) 09:54:57.63ID:NeF0se+2
こいつ煽りたいだけだからなに言っても無駄だぞ
0865デフォルトの名無しさん2016/01/06(水) 09:59:29.68ID:Nanl9e4U
>>862
あ、Pythonに慣れたプログラマのコードは似てくるって処に反論出来ないんだ?w

じゃあ次。シロウトは上手い人達のコード見て学ぶから、
上手い人達のコードが大体似ていたら
似た感じのコードを書くように上達するよね?
0866デフォルトの名無しさん2016/01/06(水) 10:04:44.43ID:wURx2dCr
>>865
Python以前の問題があるよね?

つまりコードの設計ね。クラス設計とか。
インターフェース設計とかこういう設計は人それぞれ違う。
別の人が同じジャンルのソフトを作ってもぜんぜん違うでしょ?

こういうのは言語以前の問題なんだけど、
Pythonを使うと、なんで言語以前の問題が解決するのか?

ソフトウェアが複雑になるかどうかっていうのは
結局作る人の技術による所が大部分を占めているわけだけど、
なんで「Pythonに慣れた人」限定にするんだ?

それはつまり、Pythonに慣れない人がPythonを使うと
同じようなコードになるわけではないと認めているようなものだろう?
Pythonは何も提供していない。
0867デフォルトの名無しさん2016/01/06(水) 10:06:43.56ID:wURx2dCr
>>865
よし、じゃあ問題を一つだそう。

リスト内包表記を10回使うことで
一行で書けるコードがあるとする。

君は、一行で書くのか?

人によってバラバラだと思うぞ。
0868デフォルトの名無しさん2016/01/06(水) 10:08:09.16ID:Nanl9e4U
>>866
Pythonを使えば設計まで一つに収束するなんて
君以外に誰も言ってないよ?あったらソース出して知りたいから

で?上手い人達のコードの書き方が大体似てると
初学者が学ぶときに迷いや混乱が少ないことへの
反論は無いの?
0869デフォルトの名無しさん2016/01/06(水) 10:10:18.25ID:Nanl9e4U
>>867
ループ10回を入れ子にした内包表記?そんなの使わないよ

で、人によってバラバラと言うくらいだから、それを1行で書いたオープンソースのコードくらい出せるんだよね
リンク貼ってよ
0870デフォルトの名無しさん2016/01/06(水) 10:12:41.03ID:sSeYtXZa
俺の理想を100%供給してくれるわけではないからpythonはなにも供給しない
って言われてるようなものなのによくやるわ
0871デフォルトの名無しさん2016/01/06(水) 10:15:09.34ID:wURx2dCr
デコレータを使うにしても、

if なんとか
  return

なんてものは全部デコレータにできるわけだ。

おそらくほぼすべての関数は、デコレータを使って書き直せるし、
それにより行数を減らすことも可能だろう。


例 (これは行数は減ってないけどな)

@hello
def world():
  print "world"

出力結果
hello world
0872デフォルトの名無しさん2016/01/06(水) 10:16:20.30ID:wURx2dCr
>>869
だから、お前は、入れ子何回までやるのか?って
聞いてるんだが。

その回数がPythonに慣れた人全員が同じであれば、
誰が書いてもおなじになるだろうさw
0873デフォルトの名無しさん2016/01/06(水) 10:17:17.02ID:wURx2dCr
>>868
だからさ、コードが汚いっていうのは、
そういう細かい書き方が問題じゃないって言ってるの。

>>830で書いただろ

実際にやった上で言ってる。
初心者が書いたコードを修正したうえでな。

そいうのコードの何が悪かったか言ってやろうか?

・1関数のコードが長い
・Pythonらしいと言われる機能を何も使ってない。使わなくてもかけるからな。
・リスト内包表記を使っていない。使わなくても別のやり方でかけるからな。
・デコレータを使ってない。使わなくても同じ処理を重複して書けばできるからな。
・PEP8に準拠していない。準拠しなくても別の書き方できるからな。
・Djangoを使っていたがモデルを正しく使っていない。モデルではなくコントローラを太らせて同じことはできるからな
・コードのあちこちに接続サーバー情報などが直接埋め込まれていた。
・Django、TurboGeares、Pyramid、Flask、Bottleなどいろんなフレームワークがあって、書き方もそれぞれ違う。
0874デフォルトの名無しさん2016/01/06(水) 10:18:40.35ID:glbrcw7G
ってか、どういうものは望ましくないばっかりで、どういう結論が望ましい結論なのか見えないから、
喧嘩が出来ないというより、バトルロワイヤルになってなくないか?
Pythonでも汚いコードが書ける、と言う方は。
じゃあ、その点、誰でもある一定のレベルで綺麗なコードが書けるLL言語って何か提示して欲しいわ。煽りではなく。
0875デフォルトの名無しさん2016/01/06(水) 10:20:28.83ID:wURx2dCr
>>870
> 俺の理想を100%供給してくれるわけではないからpythonはなにも供給しない
> って言われてるようなものなのによくやるわ

少し違うね。

俺が求めているものを全く供給してくれていないから、
Pytyonが主張している誰が書いても同じコードになるとか
誰が書いても読みやすいコードになるというのは
幻想であるって話。


だからPythonが何かを供給してくれるというのなら、
何を供給してくれるのかを具体的に言ってくれと言ってるんだが。
「○○という機能を供給してくれるから同じようなコードになる」という形で言ってくれ。
0876デフォルトの名無しさん2016/01/06(水) 10:21:23.70ID:wURx2dCr
>>874
> じゃあ、その点、誰でもある一定のレベルで綺麗なコードが書けるLL言語って何か提示して欲しいわ。煽りではなく。

俺が主張をしているのは、Pythonを含めてそんなものはないって言ってるだけ。
0877デフォルトの名無しさん2016/01/06(水) 10:25:46.91ID:glbrcw7G
>>876
lintがどうの、って言ってたんじゃないの?
では、そんな物は無いのであれば、それに一番近い言語は何なんだろう?
もしくは、色々な書き方が出来るメリットのある言語って何?
0878デフォルトの名無しさん2016/01/06(水) 10:26:27.22ID:sSeYtXZa
とんでもなく多くを求めておいて達成してくれないから何も供給しないとかクレーマーかよ

はいはいpythonはゴミゴミ
0879デフォルトの名無しさん2016/01/06(水) 10:32:06.14ID:wURx2dCr
>>877
lintは言語じゃねーしw

言語ではコードスタイルの統一すら出来ないからlintが作られたんだろ?
そのlintも設定次第でいろんなスタイルに対応できる(=いろんなスタイルがある)
ということだし。

>>878
コードの複雑さっていうのは、言語で解決できる問題じゃないってわかりましたか?
Pythonを使ったからといって、誰でも同じようなコードになるわけじゃないし、
汚いコードが無くなるわけもない。

ほんの些細な点(インデントだけ)が統一される程度で
その程度のことだからコードの品質に大した影響を与えない。

Pythonだからって他の言語となんらかわらない。
結局はプログラマの技術力次第だって話を最初からしてるんだが。
0880デフォルトの名無しさん2016/01/06(水) 10:43:34.30ID:ERXHKPxy
>>879
言語だと言ってないでしょ。
読みづらいならlintを掛ければ平準化されるだろ、って話を挙げてた上で、
コードスタイルを仕様として統一出来るのであれば要らないんじゃないの?って疑問だよ。
ってか、コードスタイルを平準化するニーズがあってlintがあるんだから、
コードスタイルの強制のメリットを否定するなら、lintの存在意義が無意味になるんだし、
あなたの話は破綻するんだけど。
揚げ足取って論破したつもりになって楽しいなら、そういう小さな事で満足してくれてたらいいけどね。

技術力次第、なんてのは当たり前じゃん。
ねじ回し使っても、ナイフで抉ってもネジは締まるのと同じ。
ただ、バカが居たり、効率的にやるためにも、ネジのサイズに規格があって、プラスネジとプラスドライバーがあるようなもんでしょ。
0881デフォルトの名無しさん2016/01/06(水) 10:56:01.45ID:wURx2dCr
>>880
lintは他の言語でもあるんでPython特有の話じゃない。

lintの存在はPythonは他の言語と大差ない理由の一つだよ。
0882デフォルトの名無しさん2016/01/06(水) 11:03:25.32ID:ERXHKPxy
>>881
言い方を変えてみたらどうだろう。
他の言語ではツールを使ってまでするべき作業が、Pythonでは言語仕様として定義されてる、
って感じではないの?

あるツールを使えば同じ結果になるから、特有の話ではない、
って、あるツール無しでは違う結果になるから、特有の話でなんじゃねーの?
0883デフォルトの名無しさん2016/01/06(水) 11:08:00.48ID:XPVKsuq1
>>880
相手はキミを「論破」しようとしてるのではないっぽいぞ
彼の主張は一貫してるだけであって
キミがそれに無理な筋を通そうと頑張ってるように見える
0884デフォルトの名無しさん2016/01/06(水) 11:20:03.02ID:ERXHKPxy
>>883
俺も一貫してると思うけどね。
無理な筋って?
0885デフォルトの名無しさん2016/01/06(水) 11:33:54.78ID:dAXQ+tnq
pythonで書くとベストなやり方は一つというのは開発者の主張であり、それをわざわざ2chで否定する行為が頭おかしい
開発者に言え
0886デフォルトの名無しさん2016/01/06(水) 11:49:48.43ID:BCBq5bpE
なんか逆にpythonが
とってもいい言語だとわかった気がするなw
0887デフォルトの名無しさん2016/01/06(水) 13:02:39.28ID:AEkwzNmA
結局Pythonアンチは一度も同レベルに最適な
複数のコードを出すことは出来なかったね

自分が初心者だから、初心者でも上級者と同レベルのコード書ける言語が欲しいと喚くばかりで
0888デフォルトの名無しさん2016/01/06(水) 13:04:44.74ID:Wkg8JRlT
>>884
> 無理な筋って?

無いものを有ると言い張るならそれは無理でしょ?

>>876
> Pythonを含めてそんなものはない

これに反論してるから有ると言いたいんでしょ?
それとも、そうじゃなくて、やっぱり無いでいいの?
0889デフォルトの名無しさん2016/01/06(水) 14:02:55.56ID:dPMBxPpq
>>888
なんだそりゃ。
既にあるのに、それは無意味だと言い続ける事こそが「無理」じゃないのか?

「Pythonを含めてそんな物は無い」に対してだけど、
ネジの喩え話は理解できたのかな。
ある一定の不自由さを使ってのポカヨケってあるあるなんだけど、心当たりが無いというのは実務経験無いの?

そういう意味では、割と初心者向けだと思うよ。
有る、無いの二択ではなく、間違ったコードを書いてしまう度、みたいな尺度て考えてみたら?

ぶら下げifに一行足して死ぬパターンとかが起こりえない、とか実にうまく出来てるよ。
0890デフォルトの名無しさん2016/01/06(水) 14:27:16.27ID:Wkg8JRlT
>>889
> 既にある

では「誰でもある一定のレベルで綺麗なコードが書けるLL言語」
とやらを示してみせてほしい
0891デフォルトの名無しさん2016/01/06(水) 15:18:13.97ID:dPMBxPpq
>>890
Pythonじゃん。あなたが認めないだけで。
0892デフォルトの名無しさん2016/01/06(水) 15:53:32.53ID:wURx2dCr
>>891
じゃあ、その理由を具体的に言ってみて。
0893デフォルトの名無しさん2016/01/06(水) 16:01:45.10ID:wURx2dCr
レベルが10段階あったとして10が最高のコード、5が普通のコード、
3は汚いコードで2は使いものにならないコード。

Pythonは1を2にする程度
Pythonを使うだけで最低2という一定のレベルのコードが書ける。

この程度の話でしょw
0894デフォルトの名無しさん2016/01/06(水) 16:12:12.14ID:Wkg8JRlT
>>891
その断言を聞いてあらためて驚いてる
認めないんじゃなくて、驚いているんだ
「Pythonが、誰でもある一定のレベルで綺麗なコードが書けるLL言語」
などという主張は生まれて初めて耳にしたから
0895デフォルトの名無しさん2016/01/06(水) 16:29:04.30ID:w/Ep0I7Y
やっぱPythonでしょ、
何年か前に書いたPerlやrbは何やりたいのか自分でも分からないから
0896デフォルトの名無しさん2016/01/06(水) 16:34:33.31ID:dPMBxPpq
>>892
何度も言ってるだろ。

>>894
The Zen of Pythonにある。
「There should be one―and preferably only one―obvious way to do it」の一節。
0897デフォルトの名無しさん2016/01/06(水) 17:03:39.73ID:BCBq5bpE
実際に書いてて見やすいしね、python
0898デフォルトの名無しさん2016/01/06(水) 17:16:35.78ID:3taoJABm
Zen of Pythonは開発者への啓蒙だから
現在のPythonがその思想を実現可能か否かとは違う
0899デフォルトの名無しさん2016/01/06(水) 17:20:17.16ID:wURx2dCr
>>896
だから、その一節の根拠はなにか?って話だ。

Pythonはやり方が一つしかないっていうのが
ウソであることはすでに示した。
0900デフォルトの名無しさん2016/01/06(水) 17:22:53.10ID:Wkg8JRlT
>>896
?
そのZenは既に知っている

>>895
Proc乱用してたら意外と見難くなるよねrubyは
0901デフォルトの名無しさん2016/01/06(水) 17:48:48.96ID:dPMBxPpq
>>899
それはあんたが恣意的に誤解してるよ。
間違ったやり方であれば、複数あるかもしれないが、
正しいと言われるシンプルなやり方はひとつになるべきだし、
原義通りやってれば一つになる、って事。
「悪いやり方」まで数えてたらおかしいのよ。
python嫌いみたいだからjsで書くと、
hour=(""+(10000+(h.replace(/\:/g,"")-0))).slice(1)
みたいなのは悪手だよね。普通は。
0902デフォルトの名無しさん2016/01/06(水) 18:02:40.16ID:wURx2dCr
>>901
> hour=(""+(10000+(h.replace(/\:/g,"")-0))).slice(1)
> みたいなのは悪手だよね。普通は。

それと同じコードをPythonで書くと?
0903デフォルトの名無しさん2016/01/06(水) 18:03:32.43ID:wURx2dCr
>>901
> 正しいと言われるシンプルなやり方はひとつになるべきだし、
それは理想であって、Pythonが実現していることではない

> 原義通りやってれば一つになる、って事。
一つになるものなんかない
0904デフォルトの名無しさん2016/01/06(水) 18:11:58.84ID:Fr+RqGzn
別にPythonは使わないからPythonが実現していようがいまいが興味はない
一般論としてそういう風潮を作っておくのは有用だとは思う
0905デフォルトの名無しさん2016/01/06(水) 18:12:43.59ID:BCBq5bpE
>>901
確かにそれがpythonの目指してるものだよね
実際に使われてるとこみてもかなり成功してるといえる
0906デフォルトの名無しさん2016/01/06(水) 18:29:34.89ID:dPMBxPpq
>>902
どういう絡み方なんだよ。
t=time.strptime(h, "%H:%M")
hour="{0:02d}{1:02d}".format(t.tm_hour ,t.tm_min)
くらいになるんじゃないの?
コメント無しでも理解できるレベルで書けば良いんだよ。

>>903
お前は文盲か。
0907デフォルトの名無しさん2016/01/06(水) 18:35:51.16ID:dPMBxPpq
>>906
これを、
h=str(10000+int(h.replace(":","")))[1:]
と書いても結果はおおよそ同じだけど、
正攻法とは言えないし、冴えてもない。
これは、答えは同じだけど、間違ってるに等しいコード。
0908デフォルトの名無しさん2016/01/06(水) 18:43:29.31ID:lmDMYYEi
Pythonはシンタックスが教科書の疑似コードに近いから、
教育機関で情報科学を学んだことがある人は自然に教科書らしい書き方に誘導されてしまう
レス数が900を超えています。1000を超えると表示できなくなるよ。