採用ナレッジの一環で、今日はPythonについて深掘り。
▼プログラミング言語の一覧はこちら
エンジニア採用に向けて改めて勉強してみて感じるのは、ITリテラシーってやっぱり重要
(ドヤってるけど、今更感はんぱない)
アメリカの株が上がっているのもIT業界がずば抜けて生産性が高いからにほかならない。
でも、どんどんIT系のサービス作るぞ!となっていたITバブルも、
今後はもっとPMF(プロダクト マーケット フィット)していこうという原点に戻った感が、
より一層IT人材の枯渇を極めるだろうと。
少子化の日本にとっては本当に厳しい。
でもそれが本来のあるべき姿だから致し方ない。
Python
つくれるもの
・Web、スマホアプリのバックエンド
・AI、ビックデータ
・ブロックチェーン
有名なプロダクト
・ペッパーくん
・Instagram
・Dropbox
特徴
・先端的な技術に触れる機会が多い
・汎用性が高い
・データ科学、機械学習、ウェブ開発など、多岐にわたる分野で採用
・学習しやすく、ライブラリが豊富
・Macの人は標準装備
フレームワーク
<Web開発向き>
フレームワーク |
フレームワーク特徴 |
Django(ジャンゴ)![]() |
・「ユーザー認証」、「サイトマップ」、「RSSフィード」などの機能が、フレームワークに含まれている ・拡張性が高く、用途が広いフレームワーク ・複雑なWebアプリケーションやAIエンジンを積んだシステムなどの開発が可能 ・コードの書き方に人ごとの差異が生じにくくなるよう設計 ・大規模な開発に向いているフレームワーク |
Flask |
・最小限の機能を備えた軽量なフレームワーク ・データベース機能など追加できる拡張機能が多い ・自由度が高く、カスタマイズしやすい ・Djangoほどの汎用性の高さはない ・機械学習のようなデータを活用したプロダクトの開発に採用 ・シンプルで処理が高速 ・個人ブログや個人商店のECサイトなどの小規模な開発に向いているフレームワーク |
FastAPI |
・Flask同様に軽量かつ構造が簡単 ・少ないコード量での高速な開発が可能 ・OpenAPIに準拠したAPIドキュメントを自動で出力できることが特徴 ・効率的なAPI開発が可能 ・APIのデータ検証の機能も含まれている ・API開発に向いているフレームワーク |
Streamlit![]() |
・簡単にWeb開発ができるフレームワーク ・最短一行でアプリを開発でき、デプロイも容易 ・HTMLやCSSなどのフロントエンドの知識がなくてもデータを可視化できる ・データサイエンス分野のアプリケーション開発に向いている ・デザイン性のあるWebUIが簡単に作成できる ・プロトタイプのWebアプリ作成から動作確認までを素早く行いたい場合に用いることもできる ・短納期化に有効 |
Bottle![]() |
・Webアプリケーションを簡単に作成できるマイクロフレームワーク ・シンプルな構造 ・WSGI(サーバーとWebアプリをつなぐインターフェース)という特徴を持つBottleは、サーバーの制限を気にせずに使用が可能 |
Tornado |
・小規模なWebアプリケーションの開発ができるマイクロフレームワーク ・同時接続処理を行う事が可能 ・リアルタイムのWebサービスの開発に適している ・非同期通信(ネットワークで接続されているサーバーとアプリケーションが同期を取らずに通信を行う) ・データ通信のリクエストをしてからレスポンスが来るまでに他の処理を行うことができるというメリット |
DjangoとFlaskが使われることが多いらしい
次いで、FastAPI。
<データサイエンス・機械学習向き>
フレームワーク |
フレームワーク特徴 |
Tensorflow![]() |
・Googleが開発している、機械学習向けのフレームワーク ・機械学習を行うために重要なニューラルネットワークの構築が可能 ・データの読み込みや前処理、計算処理、出力などあらゆる処理でテンソル(多次元配列)を扱う ・モバイル・IoT向けのTensorFlow LiteではAndroidだけでなくiOSでも利用できる ・言語やデバイスを問わず利用できる |
Keras |
・ニューラルネットワークライブラリ ・現在は前述のTensorFlowに吸収され、TensorFlowの中のライブラリとして動作 ・ディープラーニングの基礎である数学的理論をシンプルなコードで実装 ・ニューラルネットワークを容易に構築できる |
Pytorch![]() |
・機械学習向けライブラリ ・直感的なコーディングが行えるように工夫 ・構造が「Numpy」によく似ている ・開発コミュニティが活発で、最新の手法に関する情報も入手しやすいというメリットがある ・動的なニューラルネットワーク構築(define by run)にも対応、データを流しながらネットワーク構築を行うことができる |
<ブロックチェーン開発向き>
フレームワーク |
フレームワーク特徴 |
Enterprise Ethereum![]() |
・パーミッション型で秘匿性が高く、低コスト ・製造業におけるトレーサビリティや国際貿易のプロセスのデジタル化などで活用 |
Hyperledger Fabric(ハイパーレジャーファブリック)![]() |
・IBMとデジタルアセットホールディングスが共同で開発したフレームワーク ・製造業におけるサプライチェーン管理ソリューション、医療データの共有と管理、貿易金融プラットフォームや不動産や保険の契約、身元確認システムなどの様々なアプリケーションを開発する際に使用 |
Corda(コルダ)![]() |
・主に金融機関で利用することを目的に開発されたオープンソースのフレームワーク ・取引を行っている本人以外に取引の存在事態認識できない秘匿性の高さと処理スピードの速さが特徴 ・R3コンソーシアム(みずほフィナンシャルグループや三菱UFJファイナンス・グループなどの300以上の企業や公的機関が参加する組織)によって運用 |
色々ありすぎて覚えられる気がしない