Pythonが大変な人気を集めている。先日、都内の大型書店のプログラミング書籍コーナーに行って驚いた。とにかくPythonの解説書が大量にあるのだ。複数の書架をPythonの解説書が埋め尽くしている。すべてのプログラミング言語の中で書籍数が一番多いように見えた。これほどまでに増えているとは正直、思っていなかった。
自社の近くにある中規模の書店でも確かめてみた。ビジネス書が中心で技術書はあまりないタイプの書店だ。それでも、タイトルにPythonを含む書籍は10冊近くあった。他の言語の書籍は、メジャーな言語でもせいぜい1~2冊程度。対照的な状況である。
Pythonが人気を集めるに従って、Pythonのことを褒めそやす記事も増えている。そうした記事には、例えば「Pythonのコードは書きやすい」と書かれていたりする。Pythonで有名なプログラマーが言えば説得力があるが、あまりコードを書かない人がこんなことを言っていると少しモヤモヤする。
というのは、最近、個人的にPythonのコードを書くようになって、それなりにつまずくところがあったからだ。Pythonのことをあまり知らないと思われる人が「書きやすい」と主張しているのを見ると、「ご冗談でしょう」と皮肉の1つも言いたくなる。
私が具体的にどこでつまずいたのかを紹介しよう。
とにかくコロンを忘れまくる
Pythonのはまりどころと言うと、インデントを想像する人が多いのではないだろうか。他の言語では、「{}(中カッコ)」などでブロックを表現することが多い。これに対し、Pythonではインデントをそろえた部分がブロックと見なされる。コードを書かない人だと、これがネックになると想像するかもしれない。
しかし、少なくとも個人的にはインデントのせいでPythonが書きにくいと感じることはなかった。他の言語でも、ネストのレベルなどをインデントで合わせて整形するのが普通だ。コードの形自体はPythonでも他の言語でもあまり変わらない。インデントが単なる見やすさのためなのか、文法的な意味を持つかの違いだけだ。
ではどこでつまずいたのか。個人的には、何と言っても「:(コロン)」である。Pythonの構文ではコロンを多用する。if文の条件の後にコロン、elseの後にコロン、繰り返し処理を行うfor文でコロン、関数を定義するdef文でコロン、クラス定義でコロン、とにかくコロンだらけだ。
自分が知っている範囲では、他のメジャーな言語でこれほどコロンを多用する言語はない。このため、とにかくコロンを付け忘れる。最初のうちは、正しくコロンを付けていることのほうが少なかったくらいだ。
Pythonに慣れてくると、さすがにコロンを付け忘れることは減ったが、それでもたまに忘れてしまう。実行時のエラーメッセージですぐに分かるので、直すのは簡単だが。
コロンを付け忘れるのは私のような初心者だけではないようだ。
優秀なエンジニアが集まっていることで有名なあるベンチャー企業は、WebでPythonのチュートリアル資料を公開している。この資料を見ていたところ、構文を説明する図でコロンを付け忘れているところがあった。
https://tech.nikkeibp.co.jp/atcl/nxt/column/18/00682/061100007/
コロンと忘れてしまいがち禁止
>>6
ツッコミ待ちだよね? それはセミコロン(;)だって
コロンは(:)こっち
当時はシェルで環境作るのが当たり前だったからなあ、あれは疲れた
まあ確かに便利だったよ、あらゆるテスト環境をあっさり作れたからな、まさか人工知能で使うとは思わなかったが
c系と全く別文化だよね。
phpのが全然書きやすいわ。
たしかにFOR文の書式が他と少し違うとかあるけどな
でもそんな文法的なことは慣れればいいだろう
これ
Python は書きやすくて好きだね。
書きやすくするための構文・文法も多彩でいい。
A.tostr()なのかA.toString()なのかstr(A)なのかsprintf(“312”,A)なのか
単純な文字列化ですらわけわからなくなってくる。
IDEにアシストしてもらってばかりだと一向に覚えられないよねw
覚えなくても困らないけど……
IMEばかり使ってると漢字が書けなくなるのと同じ現象
わかる
本質に問題があったら言語として使い物にならない以前の問題
何でもできるようにということになると、CとかC++とかしか選択肢がなくなる
ブラウザの表示どないすんねん
と思ったが、cgiとかあったなぁ
死ねる
素早く書き上げるのはできないから C系統はスクリプト言語であらかた速度が問題になったところだけ書き換えてる
エキスパートはC系でもいろいろ素早く試せるのだろうか?(そのためのC++ だとは思うが、本当にいろいろなアイデアを
早く書けるか?早く試せるか?)
PHPで書かれたソースをメンテさせられることがよくあったけど、逆になんでこんなにインデントに無頓着でいられるのか理解に苦しむ。
正しくないインデントつけるぐらいならインデントしてない方がよほどマシだし、それならインデントが正しくないと動かない方がマシ。
[1:10) にしてくれ。
>>35
それで毎回つまづく
エラーを出してから気がつくのが習慣
Pythonのいいところは
ミスってもインタープリターだから簡単に治せるところだと開き直っている
python→車高が低い改造車
C++→プラド
C→カローラ
こんな認識でいい?
PythonはATだけど、C/C++はMTな。
安全装備も付いてない。
昔、Oh!Xで祝一平が「公道用ゴーカート」って書いてた。
仕事で書いてるんなら俺もそこに転職したい。
これほどオフラインヘルプのマニュアルが充実してる言語もそう無い
他のプログラム言語を何か習得済の人は不要。
全くの初心者の場合は、そもそもpythonで入門しないほうがいいんじゃないかな…
日本ではそのころ、Pythonはまだ海の向こうの存在だった。
クソかどうかも議論されない、Pythonにとって日本はまだ未踏の地だった。
グーグルが採用したって話で一瞬話題になった
けど日本語ダメだったからPerlやるか生まれたばかりのrubyやるかだったんだよ
2000年になるかならないかくらいか?もっちっとまえか?
個人的な感想になるが、言語仕様としてはRubyの方が好きだなあ
思想がPythonの方が良い
Pythonを書きにくいとか言う奴は
C言語とかJavaとかJavaScriptとか他の言語に触れたら発狂するんだろうな。
Javaに触れたら、
なんでこんなに冗長なの?HelloWorld!だけで何でこんな冗長なの?
なんでこんな長ったらしい名前ばっかりてでくんの?
そもそもこんな短いコードにクラスなんで必要ないだろ。
オブジェクト思考な書き方強要してくんなよ、うぜーな。
ってなるし、
JavaScriptに触れたら、
文法が自由&カオスすぎて他人が書いたコードとか読みたくねえ!!
なんでこんなに括弧だらけで何重にも入れ子になっているの?
バカなんじゃないの?もっとスマートに書けないの?
読みづらいし、書きづらい何なのこれ?可読性悪すぎだろ。
しかもフレームワークは新しいのポコポコでてきて覚えるのクソ面倒臭えし
ってなるし、
C言語に触れたら、ポインタって何だよ、これ、クソうぜーな。
毎回毎回なんで自分で開放しないといけないんだよ!
しかも一つ一つの手続きが簡単に書けなくてすげえめんどくせえ。
もっと簡単に書けねえのかよ!
しかもVisualStudioのバージョン変わるごとに
いちいちコードに手入れたり設定変えないと
コンパイル通らねえしクソ面倒くせえ!開発環境に依存しすぎなんだよ、クソが!
ってなるだろうな。
そーそーw
Pythonで苦戦するならはじめから才能ないって話だよな。
まーコロンはなくてもいいと思うけど。
最近は言語二の次でライブラリで言語を選ぶ事が多いんだが、
ライブラリの呼び出しが上手く行かずにハマる事が多い。
皆どうやって動かしているんだろう。
型の概念が無かったりすると、パラメタに何をどうやって設定すれば良いのか分からない。
ググってサンプルがあるようなのはともかく、
ライブラリのコードを見たりしているんか?
ライブラリのドキュメントに書いてあるだろそんなの。
ドキュメントも無いのだとソースコード当たるしか無いのかもしれんが、わざわざそんなの拾ってくるか?
ドキュメントには何を設定するかの名前は書いてあるんだけど、
どんなフォーマットで渡すのか俺には理解出来ないんだよね。
俺だけなのか?
型があればそれに合わせてデータを並べる必要がある事が分かるんで、
組み合わせがかなり絞れる訳なんだが。
それな。
何の処理してんだか他人が見て解らんくなる。
それなのに何でjavaが冗長とかなるんだか。
Pythonをすすめている投稿をよく見かけた。
pythonに行ったら、括弧やセミコロン書いちゃったり、
Cとかに行くと、括弧やセミコロン忘れちゃったりが多い。
.NETやってるとそれはない。
「これはVB」、「これはC#」って最初に自分に言い聞かせるから。
numpyとかpandas使うて更に短縮形使われた式見ると「はぁ?」ってなる
cだろうと、3日あれば仕事で使える程度には使える
ようになる
どういう仕事するかによる。
3日は言い過ぎじゃない?
最初は仕事場の規約や作りに準拠するのが一番大変なイメージだね。
中学生が書いたのか?それとも知恵遅れの大人かな?
引用元
管理人からひと言
どの言語も大差ない気がする
この記事へのコメントはありません。