ブログを開いていただきありがとうございます。フリーランスエンジニアのベナオと申します。ココナラさんでは主にPythonを使ってコーディングやアプリケーションの開発を承っております。
Web開発ではPHPやRubyなどが一般的じゃないの? という方も多いと思います。この記事ではそんな方のために、PythonがWeb開発に使われ始めている理由を解説したいと思います。
1. 機械学習技術の普及からPythonユーザーが増加
昨今ではAmazonからNetflixまでありとあらゆるWebサービスに機械学習による推薦システムが組み込まれています。これは2013年頃からのディープラーニング技術のブレークスルーによるもので、Web開発に使われるフレームワーク(プログラミング言語毎に用意されているテンプレートのようなもの)もPythonのものを使う開発者が増えています。
これはStackOverFlowというプログラミングの質問サイトが公開しているデータで、月当たりの各フレームワークに関する質問数の推移を比較したものです。
それぞれruby-on-railsはRubyに、djangoはPythonに、laravelはPHPに用意されているWeb開発フレームワークです。ご覧通りに2013年からdjangoに関する質問数が右肩上がりになっているのが分かります。
現在はDjangoがlaravelを抜いていますね。これは世界的なトレンドですが、日本にも遅れてこの流れがやってくることが予想されます。
2. あのInstagramにも使われているDjango
それでは実際にDjangoはどんなWebサービスの開発に使われているのでしょうか? 有名なものには皆さんご存知の写真投稿SNSであるInstagramがあります。
SNSにはユーザーがどんな投稿にいいねするかの傾向を分析して、おすすめの写真が画面に出やすくなる推薦機能が組み込まれています。これの内部には機械学習が組み込まれており、Pythonには機械学習を実装するためのTensorflowやPytorchのようなライブラリが豊富に用意されています。
他にも入力した写真に何が写っているのかを識別する画像認識ライブラリがあり、例えばメルカリで撮影した写真に写っている商品の名前や売れやすい値段を自動で表示するという機能に使われています。
このようにPythonを使うと今まで実現しなかったような、ユーザーに応じて最適化するようなアプリケーションの開発が可能になります。
3. 実際の案件例
実際にココナラではどのような開発依頼が多いのでしょうか?
以下のサービスで受注した案件について簡単に紹介したいと思います。
・ブラウザ履歴に基づいてユーザーの趣味傾向を分析するDjangoアプリケーション
Google chromeは、ブラウザの内部にユーザーが閲覧したWebページに関する記録を残す仕組みになっています。記録はsqliteという形式のデータベースに保存されていて、Pythonからsqlでアクセスすることができます。
それを利用してユーザーが閲覧したWebページのタイトルを全て取得し、その中で頻出している単語を割り出すことでユーザーのWeb閲覧傾向を分析することができます。
頻出単語の割り出しには形態素解析という手法を使っていて、これは日本語単語の辞書を内蔵したjanomeというライブラリで行っています。辞書をもとに文章を単語毎に切り分けて集計することができます。
・音声入力するメモアプリケーション
Pythonで公開されている音声文字起こしライブラリを使って、ブラウザ上で録音した音声を文字起こしするメモアプリケーションを開発しました。
Djangoで直接PCのマイクを制御することはできないので、フロントエンドでJavascriotを使って録音機能を実装しました。
この案件ではお客様からユーザー登録機能の要望をいただいていたので、ユーザー登録・ログイン機能を作成してユーザー毎に文字起こし結果をログとして保存する機能も作成しました。
このようにDjangoアプリケーションと一口に言っても、採用するライブラリによって全く異なるアプリケーションの開発が可能です。
他のフレームワークでは実装が難しいという特殊な機能も、意外と実装できることが多いです。興味をお持ちいただいた方はお気軽にダイレクトメッセージでご相談ください!
Webアプリケーション開発に特化したサービスを新設しました。詳細は以下からご覧ください。