2019年2月20日水曜日

プログラム言語PythonとGolangのメリットデメリット。Pythonのスタイルガイドとそれを守るための各種Lint・解析ツール5種まとめ!(Pythonのコーディング規約をGo lang並みに厳格に出来ます。)

勉強の為に転載しました。
https://blog-ja.sideci.com/entry/python-lint-pickup-5tools

上記ブログよりも次のブログの方が内容は、新しいかも知れません。
pep8は、コーディング規約の名前としては残る様ですが、パッケージは古くてメンテナンスされなくなり2018年2月現在では、

pycodestyle 

が代わりに使われている様です。

Pythonを書き始める前に見るべきTips
https://qiita.com/icoxfog417/items/e8f97a6acad07903b5b0

コメント:
Pythonは、Google、Youtube、NASA、JAXAなどで公式に採用されている信頼されているプログラミング言語です。ソースコードは、書きやすく、自分でも後からでも読みやすく、他人やチームの人でも読みやすいと言うメリットがあります。プログラム言語自体は、早くありませんが、そこは、高速なライブラリや高速なVoltDB、高速なCycloneフレームワークなどでカバー出来ます。

Golang(言語)については、こちらをお読み下さいませ。
https://type.jp/et/feature/9445

NimはWebプログラム言語としては、1番高速ですが、プログラムを書くと個性豊かでバリエーション豊かなシステムが出来てしまうのは、デメリットで、特にチームで開発する時に、苦慮する事になり、打ち合わせ会議を沢山必要とするデメリットが大きいです。

PythonもGolangもチームで開発すると良い意味でソースコードは非個性でバリエーションが少ないので統一感のあるシステムを開発出来ます。それは優れたコーディング規約がある為です。チームで打ち合わせ会議をする回数が減らせる。綿密にSlackで情報共有されてなくても、あとで、まるでチーム全体で何度も打ち合わせした様なシステムが出来やすいと言うメリットがあります。PythonとGolangはその点は優れておりますが、Golangは、より統一感が出しやすい様です。しかしAIや機械学習のライブラリは、Pythonの方が豊富でソースコードが書きやすく開発効率も良い様です。
クライアント1万同時アクセス問題の1秒間に1万件のデータ処理に関しましては、
Pythonは、Cycloneフレームワークで対応します。ただし対応しているのは、Python3ではなく、Python2と言う古い方だけです。メンテナンス予算が少ないのでしょう。ボランティアは大変ですね。2018年2月現在の話です。Golangも1秒間に1万件処理出来る様ですが、フレームワークのベンチマークのブログは少ないので、引用は避けております。
PythonもGolangもマルチコア、マルチスレッドに対応しております。
PythonもGolangもフレームワークで、コールバック地獄に対応している様です。
以上のメリットデメリットを考慮しますと、あとは、PythonでGolang並みの厳格なコード規約があれば良いと思います。それが可能なのが、今回転載したブログになります。
PythonGolangのコーディング規約のルールも比較して頂き、PythonGolangの様に厳格化となるべく使わなくても済む関数などは、使わないなどでシンプル化なども考慮したコーディング規約をどうやって作成してGithubなどで議論していくかを知りたいです。

個人的考えでは、Pythonのコーディング規約をGolang並みに厳格化した物をGithubに将来的には、公開出来る様になりたいです。


そうすれば、PythonGolang並みに、チームでのWEBサイトやイントラネットシステムの開発時に会議やLINESlackなどでの打ち合わせ回数を減らす事が出来ます。

0 コメント:

コメントを投稿