2022年現在で最も人気のある言語がPythonという事で、Webエンジニアから見たPythonについて書きたいと思います。
Pythonの利点は色々なサイトで書かれていますが、なんといってもそのお手軽さに尽きると思います。インタプリタをインストールする(macOSなんかは組み込み済み)だけで、ものの5秒で動かせる、なんて、他の言語では考えられません(笑)。
bashなどのshellと変わりありませんね!
そんなPythonですが、Webアプリを構築するとなると、Django(ジャンゴ)などのフレームワークを利用して作成するのが一般的です。これがまたお手軽な事。。。
恐らく、全くPython、Djangoの知識が無くとも、あっという間に仕組みがわかって、ブラウザからの入出力ができるWebアプリなんか簡単に出来てしまうと思います。
じゃ、Webアプリも、全部Pythonで作ればいいんじゃない?と思うかもしれませんが、これがなかなかそういう訳にはいきません(もしそこを理解していないシステム提案があったら要注意です)。
Webアプリは、クライアントからのリクエストを効率よく捌くために、アプリサーバーで利用可能なメモリを、最小限、且つ最適化して利用しなければ、大量のメモリを積まなければなりません(ジャブジャブお金を使えて、規模の割に巨大なサーバーを利用できるのならば別。ま、それでも利用メモリサイズが大きくなれば大きくなるほどパフォーマンスは落ちますが)。
"Pythonを利用しています"と有名どころのサイトが紹介される事が多いですが、巨大なサイトであればあるほど、"一部で利用している"です。データ処理部分なんかですね。マイニングやML(機械学習)のライブラリがPythonは多く、非常に便利なので。
サーバーリソースを利用する部分はメモリを言語内でコントロールできるC、C++、リクエスト&レスポンスを捌く部分はVMのメモリチューニングで高速化&最適化できるJavaなどで記述しないと厳しいよね、という所が、多くのWebエンジニアの本音でしょう。
もちろん、Python、node.jsなどに比べて学習難易度は高いし、開発環境設定、実行環境設定などもかなり大変なのですが。。。
開発環境なんかすぐ壊れるし(笑)。なので、Docker Desktopありがたや。
Webエンジニアならば、習得すべき順位づけとして、
第一言語:Java or C++
第二言語:JavaScript
第三言語:Python、Rubyなどの動的型付言語
という感じではなないでしょうか。
ちなみにGoogleの3大言語は、Java、C++、Pythonとなっていますが、Googleのプログラマーも、第一言語で静的型付け言語(Java、C++)をメインで利用し、それに付随してJavaScript(クライアント処理はどうしても。。。)、PoC的に軽く作成する時やサンプルコード提供時にPython、node.jsと書かれていました。その後にgolangなんかが続いてましたね。 因みに弊社サービスのDriveBaseはJava、Cが主に使用され、DriveBaseMeshは、node.js+Pythonで作成されています。
DriveBaseは、現在バージョン2のプロトタイプ製作を行なっていて、node.js+Java、Python、C++のハイブリッドになる予定です(コントローラー的な役割をnode.js、スピードが要求される処理はJava&C++、AI的な処理はPythonで、というようにそれぞれの言語の得意な事に役割を分けます)。
Comentários