ここ数年テレビのニュースなどで「AI」、「ビックデータ」などの言葉をよく耳にするようになり、これらを取り扱う技術はどんどん身近なものになってきました。これからAI関連の市場はますます伸びていき、エンジニアやコンサルタントにとっては非常にやりがいのある分野になるのではないでしょうか。
ここではAIを開発するためのプログラミング言語の一つであるPythonと、そのフレームワークや開発されるソフトウェアなどについて紹介したいと思います。
Pythonは、AIエンジニアやWebエンジニア、データサイエンティストを目指す人なら概要だけでも学んでおきたい、将来性が充分ある言語です。しかし「Pythonが有名であることは知っているけれど、具体的にどんなことができるのかわからない」と考えている方もかもしれません。
この記事では、そのような方の疑問を解消するべく、Pythonの歴史や特徴、世界から見た人気など、Pythonについてさまざまな観点からご紹介します。
\Python案件多数!/
この記事の監修者
株式会社Macbee Planet
永井 琢也
株式会社 Macbee Planet 入社後、データ解析プラットフォーム「ハニカム」の開発や、リバースETLツール「DATAHIVE」の新規開発に関わる。
同社開発部門のプリンシプルでもある「Impact-driven(技術によって事業成長にインパクトをもた…
Pythonは、オランダ出身のプログラマーであるグイド・ヴァン・ロッサム氏によって開発され、1991年に発表されました。Pythonは、平易で誰が見てもわかりやすいことを目指した言語で、「同じ動きをするためのコードは、できるだけ1つの方法でしか書けないようにする」など設計理念があります。
1999年にはティム・ピーターズ(Tim Peters)氏が”The Zen of Python” として、Pythonプログラミングの基本ルールや哲学を発表しました。醜いより美しいのが良い、複雑よりもシンプルが良い、などの原則が書かれています。
2000年にPython2が公開されたころから、Pythonの知名度が高まっていきます。既にいくつかの製品でPythonを用いていたGoogleにグイド氏が入社し、Google製品にPythonが積極的に使われるようになりました。
Python2からPython3へのバージョンアップでは、互換性がなく、ソースコードの書き方も違うという大きな変更がありました。
現在の最新バージョンはPython 3.11.5(2023年9月時点)です。登場から30年以上が経過し、今やPythonは世界でもトップの知名度を誇ります。
Pythonは1990年代に登場して20年あまり経ってから、人気が高まっていきました。その理由はいくつか考えられます。
2018年ごろから、Pythonはプログラミング言語ランキングでトップクラスの人気を獲得するようになりました。既にWebサイトの開発で一定の需要はあったものの、近年ではAIでの活用が拡大したことが人気である理由の一つです。
また、Googleが標準言語としてPythonを採用していること、IoTを使った製品の作成に使用されているシングルボードコンピュータ、Raspberry Pi(通称:ラズパイ)で利用できる大半のOSにPythonが標準でインストールされていることも、人気が上がった要因です。
ほかにも、ブラウザ上でPython を記述・実行でき、機械学習やデータ分析、教育にも使える、「Colaboratory」というサービスがGoogleから提供されています。こういったPythonの開発環境が提供されている点も、広くPythonが普及する理由の一つと言えます。
Pythonは利用機会に恵まれ、需要が高まると同時に、学習環境も整えられてきました。このことから、Python の人気が高まってきたのではないかと考えられます。
Pythonの人気はここ数年で不動のものとなっています。オランダのTIOBE Softwareが公表しているプログラミング言語ランキングにおいて、Pythonは2018年ごろから徐々に順位を上げ、2022年ごろからは言語ランキングで1位をキープしています。
アメリカのStack Exchangeが公表している「Stack Overflow Trends」でも、現在はやや下降傾向にあるものの、Pythonは約5年間1位となっています。
AIやデータ分析といったトレンドの技術に扱われていることや、複数のプログラミング言語人気ランキングを見ても上位をキープし続けていることから、今後もPython人気の傾向は続くものと見られます。
Pythonの言語としての主な特徴は、シンプルな言語であること、ライブラリやフレームワークが豊富であること、オープンソースで商用利用が可能であることです。以下で、Pythonの主な特徴を3つ紹介します。
Pythonは他の言語に比べて短いコードでプログラミングが行え、プログラムの作成者でないエンジニアでもコードを理解しやすいことが特徴です。Pythonは元々、それまでのシステム開発が難解であったために、より使いやすいプログラミング言語を目指して考案されたものです。現在ではバージョンの更新に伴い、コードの記述方式も見直されています。
例として、ボイラープレートの記述を挙げます。ボイラープレートとは、記述しなければならない定型コード・テンプレートのことです。
例えば、C言語系であればヘッダファイル、Javaではクラス定義や関数の入出力定義というようにボイラープレートを記述しなければなりません。一方Pythonでは、そのような記述は負荷が軽めです。
Pythonは、AIやデータ分析など幅広い用途で活用されています。幅広く利用されている理由の一つは、Pythonのライブラリやフレームワークが豊富に公開されていることです。
ライブラリとは、プログラミング言語においては、クラスや関数などがまとめられた機能群のことを指します。Pythonのサードパーティのライブラリは、Python Package Index(PyPI)でまとめて公開されています。
参考:PyPI・The Python Package Index
フレームワークとは、プログラミング言語において、Webアプリケーション開発や機械学習といったように、開発用途に合わせて土台として使えるソフトウェア群のことを指します。Pythonの代表的なフレームワークには「Flask」や「Django」、「FastAPI」、「Bottle」などがあります。フレームワークには、用途が限られているものや軽量であることを特徴としているもの、大規模システムに使われるものなど、用途に応じてさまざまなものがあります。
フレームワークについて詳しくは下記をご参照ください。
ここ数年テレビのニュースなどで「AI」、「ビックデータ」などの言葉をよく耳にするようになり、これらを取り扱う技術はどんどん身近なものになってきました。これからAI関連の市場はますます伸びていき、エンジニアやコンサルタントにとっては非常にやりがいのある分野になるのではないでしょうか。
ここではAIを開発するためのプログラミング言語の一つであるPythonと、そのフレームワークや開発されるソフトウェアなどについて紹介したいと思います。
\Python案件多数!/
Pythonはオープンソースです。また、Pythonを事業対象としている非営利団体であるPSF(Python Software Foundation)の定めるライセンスが適用されています。このライセンス下においては、自由にPythonを使用でき、再配布や商用利用も可能です。
また、Pythonについて議論された内容がまとめられた文書、PEP(Python Enhancement Proposal)が公開されています。
Pythonが得意とする分野は、データ分析やAI、その他にもいくつかあります。
データ分析・解析では、大量の数値やテキスト、画像、音声といったデータを用います。Pythonは、これらのビッグデータを処理できる科学技術計算系のライブラリがインターネット上で豊富に公開されています。レポートの出力やExcelなどの表計算ソフトを用いることも可能です。
データ分析・解析に使えるライブラリには、pandas、statsmodels、NumPy、SciPy、scikit-learnなどがあります。
また、ライブラリ以外にもJupyter NotebookというPythonなどをWebブラウザ上で記述・実行できる統合開発環境ツールがあり、統計のモデリングやデータ分析に使用されています。
AIの開発にも、Pythonは使われています。PythonにはAI開発に必要な機械学習やディープラーニングのライブラリがあり、これらを活用することで比較的容易にAIを実装できます。Googleが提供しているTensorFlow、Facebookが開発を主導したPyTorchなどがライブラリの例です。
Pythonは、さまざまなWebサイトやWebアプリケーションの開発にも使われています。下記は、Pythonで開発された有名なサービスの例です。
Metaが所有する写真・動画共有ソーシャル・ネットワーキング・サービスです。Instagramでは当初、Amazonのクラウドサービス上で、Pythonとフレームワーク・Djangoを用いてシステムが構築されました。
Pinterestはアメリカ発の写真共有サービスです。PinterestもInstagramと同様に、PythonとDjangoを使ったシステムとなっています。
Spotifyはスウェーデンの音楽ストリーミングサービスです。SpotifyではPythonで利用できるAPIを公開しているほか、Pythonでオーディオにエフェクトを追加するためのフレームワーク「Pedalboard」をオープンソース化して、Pythonで情報操作する環境を提供しています。
Webスクレイピング(スクレイピング)とは、Web上のデータを自動的に取得し、テキストや画像など必要な情報を抽出する技術のことです。Webスクレイピングを利用すれば、株価の情報を自動的に収集して売買するというような処理が可能です。Pythonには、Requests、Beautiful Soup、Selenium、Scrapyといった、Webスクレイピングのためのライブラリがあります。
※Webスクレイピングは、一部のWebサイトでは禁止されています。Webスクレイピングを行う際には対象のWebサイトの利用規約、著作権を事前に確認し、サイトに負荷をかけないように注意しましょう。
ExcelやWordを用いた業務の自動化も、Pythonが得意とすることの一つです。2023年8月の発表で、Excelの分析機能が大幅に進化しました。Excel内のPythonを使用することで、セットアップを必要とせずにExcel内でPython分析とExcel分析を組み合わせて行えるなど、より業務の自動化が可能になりました。
Wordを操作するライブラリ「python-docx」を用いれば、ファイルを開かないで内容を編集したり、画像のみを別ファイルに保存したりできます。ある程度手順が決まっている業務であれば、これらを使って業務を自動化することも可能です。
Pythonは学習コンテンツが豊富であり、無料コンテンツもあります。初心者にとっては学習を始めやすい環境が整っていると言えます。
どのプログラミング言語でも言えることですが、プログラミング学習は反復して学ぶことが成功の鍵となります。知識をインプットし、実際にコーディングして動かすアウトプットを繰り返すことで、より確実に、効率的にスキルが身につきます。
また、教材を選ぶ際には直感で決めず、教材の全体を確認して自分のスキルに合っているかどうかを吟味するのがポイントです。もし自分で選べないのであれば、周りで活躍しているエンジニアや情報発信をしているエンジニアがお勧めしている教材を候補にするのも一つの手です。
初心者向けの教材選びのヒントとして、さまざまなサイトで紹介されている学習コンテンツをご紹介します。いずれも無料公開となっているコンテンツがあるため、学習の前にお試しとして教材を使えます。
Progateは、イラスト中心のスライドで学び、実際に製品やコンテンツを作りながらアウトプットして学べるサイトです。初歩的なレッスンの一部が無料となっています。Pythonの講座では基本的な使い方からプログラミング用語の解説まで、全7レッスンが用意されています。
動画を用いた、オンラインのプログラミング入門学習コンテンツです。Pythonについては、Web開発やAI・機械学習、フレームワークのDjangoやFlaskの入門編の講座が揃っています。
Pythonの習得を目的としたサイトです。入門編、基礎編、応用編など習熟度やカテゴリに分けて学習できます。サイト全体はPython3系に対応済みですが、Python2との違いやPython 2系のコードも併記している箇所があるなど、昔の情報を探すこともできます。
ドットインストールは、3分動画でマスターできるプログラミング学習サービスです。Pythonについてもいくつか講座があり、無料公開中のものもあります。ブラウザ実行環境が用意されているため、動画で学習しながらブラウザ上で実践というように、インプットとアプトプットの循環で理解を深められます。
実際にPythonをPCにインストールする方法をご紹介します。パッケージのダウンロードからインストール、「Hello World」が表示されるまでの流れです。
なお、インストールするPCのOSはWindows11、Pythonのバージョンは3.11.4です。PCのOSによってインストール手順は若干異なるため、Windows以外のOSへインストールしたい場合は下記のページをご参照ください。
python.org より、Pythonをインストールする環境に合わせてパッケージを選択し、ダウンロードします。※下記画像は、Windows向けのパッケージの画面です。
ダウンロードしたパッケージを実行します。インストール画面が表示されるので、「Install Now」をクリックします。
※「Add python.exe to PATH」にチェックをすると自動的に PATH が設定されるため、インストール時にチェックしておくと良いでしょう。後からでもPATHの設定は可能です。
Pythonを起動する方法にはいろいろありますが、ここではコマンドプロンプトを使用して起動します。
コマンドプロンプトを起動し、
python
と入力してEnterキーを押します。下記のような画面になれば、Pythonが起動したことになります。コマンドプロンプトの入力できる行が>>>となっているのがわかります。
なおWindowsの場合には、Pythonの代わりにPythonランチャーpyを使用することが推奨されています。pyを使うと、環境変数の設定を行わずにPythonを使えます。
コマンドプロンプトで命令を入力し、「Hello World」を表示させてみましょう。文字列の表示にはprint関数を用います。
コマンドプロンプト上で
print(“Hello World”)
と入力し、Enterキーを押します。
画面上にHello Worldが表示されました。
最後に、Pythonでプログラミングを行うときに注意したい点をご紹介します。
Pythonは、オブジェクト指向言語です。数値や文字列などのデータはオブジェクトとして作られ、動的に型がつけられます。したがって変数の型を宣言する必要はありません。
ステートメントブロックは、他のプログラミング言語であれば{}などの記号で表現されます。一方Pythonでは記号を使わず、インデントで表現します。
公式のコーディング規約では、インデントはスペースで表現されることが望ましいとされており、タブとスペースを混在して使うことは禁止されています。
コメントを記載したい場合は#を用います。複数行にわたってコメントを記載したい場合には、「’(シングルクォーテーション)」または「”(ダブルクォーテーション)」を3つ指定します。
例1:
# Hello World出力
print(“Hello world”)
例2:
”’
print(“Hello world1”)
print(“Hello world2”)
print(“Hello world3″)
”’
ご紹介したものも含め、コーディングに関する規約は、下記のサイトでまとめられています。Pythonのコーディング規約では、コードの可読性を重要視しています。規約に従うことを基本としながらも、読みにくいなどの理由があれば規約から外れることも容認されています。実際の開発に入る前に、一読しておくと良いでしょう。
Pythonの歴史から基本的な文法、学習の際につまずきやすい細かな事項まで、簡単にお伝えしました。人気のプログラミング言語を学習することには、将来性が担保されているほかに、学習コンテンツが充実していて学びやすいという隠れたメリットもあります。Pythonに興味を持ったら、ご紹介したドキュメントや開発環境を用いて、さらに学習に取り組んでみてください。
永井 琢也
株式会社 Macbee Planet 入社後、データ解析プラットフォーム「ハニカム」の開発や、リバースETLツール「DATAHIVE」の新規開発に関わる。同社開発部門のプリンシプルでもある「Impact-driven(技術によって事業成長にインパクトをもたらそう)」をモットーに、技術選定から設計・開発まで幅広くこなす。
【株式会社 Macbee Planet HP (https://macbee-planet.com/)】
【永井 琢也 wantedlyプロフィール (https://www.wantedly.com/id/takuya_nagai_s )】
TECH STOCKを運営するINTLOOP株式会社はコンサルティング会社としての経験・実績があるため、ご発注企業様との強い信頼関係があるのが特徴。直受け案件を多数紹介できることから、高単価案件をご案内することが可能です。
Kotlinは、Android開発言語として注目を浴びている言語です。認知度が高まる一方で、比較的新しい言語であるために、「Kotlinを習得して、将来的には安泰なのか」という不安を持つ人もいるでしょう。Kotlinが関わる案件数は現状、他の言語に比べて少ない傾向にありますが、将来性についてはKotlinを取り巻く事情も加味したうえで判断したいところです。この記事ではKotlinの将来性について、調査や言語の特徴も合わせてご紹介します。
\kotlin案件多数!/
Android開発を目指すエンジニアが学習するプログラミング言語といえば、今はKotlinが挙げられます。Kotlinは誕生して10年あまり経ちます。その間、Kotlinを取り巻く状況はさまざまに変化してきました。Kotlinは学ぶ価値のある言語ではありますが、JavaやC#などに比べて歴史が浅い分、イメージがつきにくい面もあるかもしれません。
この記事ではKotlinの歴史や言語的な特徴、よく利用されている分野などについてご紹介します。
\kotlin案件多数!/
iOSエンジニアは、Apple社が開発したiOSで動作するシステムやアプリを作るエンジニアです。同社の製品として広く認知されているiPhoneは、そのブランド力や開発力などから、国内外を問わず根強い人気があります。
本記事では、iOSエンジニアの仕事内容をはじめとして、年収や将来性、求められるスキルなどについて解説します。
\iOS(Swift)案件多数!/