目次
Pythonの特徴 – どんなところが人気なのか
Pythonは、Python Software Foundation (PSF)が著作権を保持する、オブジェクト指向プログラミング言語です。プログラミングの構文がシンプルなため可読性が高く、また目的に応じたライブラリやフレームワーク(※)といったコンポーネントが豊富に揃っていることも特徴で、プログラミングの初学者から上級者に至るまで人気の言語です。
- ライブラリ:便利な「関数」(=定義したアクションを実行するための処理をまとめたもの)や、その関数の集まりである「モジュール」、そしてそのモジュールがまとめられた「パッケージ」等がセットになったもの
-
フレームワーク:アプリケーションなどを開発する上で便利な機能(上記ライブラリを含む)がまとめられ、開発作業の枠組みとして整備されたもの
Pythonではあらかじめ用意された、さまざまな処理ができる標準ライブラリが充実していることに加え、オープンソースなライブラリやフレームワークが一覧化された Python Package Index (PyPI)が用意されており、ここから必要なものをダウンロードして使用することができます。
標準ライブラリについて (Python documentationより):
https://docs.python.org/ja/3/library/index.html
Python Package Index (PyPI):
https://pypi.org/
このライブラリやフレームワークが、用途別に多数用意されているところが Pythonが人気の理由のひとつであり、強みだと言えます。
どんな用途で使用されているのか
Pythonは、多くの分野で使用されています。プログラミング言語ですので、それを使って何をするかはユーザー次第で様々ではありますが、ここでは主だった用途分野の一部をご紹介します。
科学技術計算
数学、科学、工学、物理学、化学などさまざまな分野で行われる、計算や解析、シミュレーションなどにおいて、その処理を機械に実行させるためのプログラミングに、幅広くPythonが使われています。Pythonでこれらの処理を行うために、数値計算、配列処理、データ分析、グラフ作成、機械学習などに適した多数のライブラリが用意されています。
Pythonでの科学技術計算をする上で有名なのが「Anaconda」です。Anacondaは、科学技術計算向けのPython および R(プログラミング言語)のディストリビューション(※パッケージ等の集合体)です。Python本体のインストールと共に、NumPy (数値計算)、SciPy (数値解析)、Pandas (データ解析)、Matplotlib (グラフ描画) などのライブラリをセットで入手することができ、科学技術計算のための環境を容易に構築することができます。
なお2020年4月に発表された利用規約の変更により、Anacondaを商業活動において利用する場合には有償ライセンス (Team Edition / Enterprise Edition)が必要となる旨が発表されましたのでお気をつけください。小規模 (従業員200名未満の企業)や非商用の利用の場合には引き続き無償での利用が可能となっているようです。詳細はAnaconda社のWEBサイトをご覧ください。
Sustaining our stewardship of the open-source data science community (2020/4/30 NEWSページ)
https://www.anaconda.com/blog/sustaining-our-stewardship-of-the-open-source-data-science-communityTerms of Service
https://www.anaconda.com/terms-of-service
Pythonはインタプリタ型と呼ばれる言語で、実はCやFortranのようなコンパイル型の言語に比べ、作成したプログラムの処理動作が遅いという特徴もあります。しかしこういった科学技術計算に適したライブラリは、多くが内部を処理の速さが特徴であるコンパイル型の言語で実装されており、Pythonの処理が遅いというデメリットが補われています。
なお科学技術計算の中でも、特に注目を浴びているのが次項のAI(人工知能)・人工知能・機械学習分野です。
AI(人工知能)、機械学習・ディープラーニング
「Pythonと言えば、AIや機械学習!」とも言われるほど、この分野ではPythonはメジャーな言語となりつつあります。
前項の Anaconda にもAIや機械学習に関連したライブラリが含まれていますが、他にも Facebookの開発した「Pytorch」や、Googleの開発した「TensorFlow」といったライブラリが有名です (Python以外の言語にも対応しています)。これらを利用することで、機械学習(ディープラーニング)において必要な、ニューラルネットワークの構築、画像分類などを実施することができます。
なおAIが導入された存在として身近な、あの人型ロボットPepper のSDK(ソフトウェア開発環境)においてもPythonが用意されています (その他 JavaやC++のSDKもあり)。
アプリケーション開発
Pythonはデスクトップアプリケーションの開発にも使用されますが、より使用されているのはWEBアプリケーションの開発の現場だとされています。具体的には、YouTube や Instagram、Dropbox など、私たちが日常的に使用するこれらWEBサービスが、Pythonにより開発されています。
PythonをWEBアプリケーション開発で使用する際に有名なのが「Django」というフレームワークです。WEBアプリケーションに必要な、ユーザー認証、コンテンツ管理、サイトマップ、RSSフィードなどの機能をあらかじめ備えており、Djangoを利用することでこれらをすぐに作成することができます。セキュリティ対策や多言語対応などのWEBサービスに必要な面もカバーされており、スピーディーなアプリケーション開発を可能とします。
もちろんフレームワークを利用しない開発においても、構文がシンプルで可読性が高いといったPythonの特徴は、複数人数で行われるアプリケーション開発においてのメリットだと言えます。
Pythonでの研究や開発を加速したり手助けする製品
そんなPythonですが、これまで紹介してきたライブラリやフレームワークの他にも、Pythonでのプログラミングにおける便利な製品が世界中で開発・リリースされています。以下ではその一部をご紹介します。
ActiveState Platform (ActivePython)
カナダ ActiveState社 の提供する言語ディストリビューションである、「ActivePython」 を利用可能な統合プラットフォーム。ActivePythonには、WEBアプリケーション開発やデータサイエンス、機械学習分野などでのプログラミングに役立つ人気の400以上のPythonパッケージが含まれており、またセキュリティやライセンスコンプライアンスなどに対しても商用グレードのサポートを提供しています。
ActivePythonに含まれているPythonパッケージは こちらのページをご覧ください
Python For Web Development
https://www.activestate.com/products/python/python-web-development/Python For Data Science
https://www.activestate.com/products/python/python-data-science/Python For Machine Learning
https://www.activestate.com/products/python/python-machine-learning/
なおActiveState Platformライセンスは統合プラットフォームとして、Pythonの他に、Perl – ActivePerl, Tcl (Tool Command Language) – ActiveTcl も利用可能です。また同社製 統合開発環境 である Komodo IDE も利用できます。
■商品の詳細、お問い合わせはこちら ActiveState Platform / ActiveState社製 各種言語ディストリビューションの統合プラットフォーム メーカー (ActiveState) WEBサイト |
PyQt
クロスプラットフォームなGUIアプリケーション (デスクトップアプリケーション)作成のためのフレームワークである「Qt」の、Pythonバインディング (Python版)。PythonでGUIアプリケーションのプログラミングをする際に便利な統合開発環境ツールです。
PyQtはGNU General Public Licenseの下で使用する場合には無償での利用が可能ですが、そうでない場合にはPyQt Commercial Versionが必要となります。こちらのCommercial Versionはユニポスでご購入いただけます。
GNU General Public License (GNU GPL)について:
https://www.gnu.org/licenses/gpl-3.0.html
■商品の詳細、お問い合わせはこちら PyQt Commercial Version / PythonでのGUIツール メーカー (Riverbank Computing Limited) WEBサイト |
PyArmor
Pythonスクリプトを難読化し保護するためのコマンドラインツール。Pyrhonで作成したスクリプトの高いセキュリティ性を確保することができる人気のツールです。
PyArmorによって難読化されたPythonスクリプトは、通常のPythonスクリプトと同様に実行することが可能です。バイトコードは各コードオブジェクトが実行完了するとすぐに難読化されるため、高いセキュリティを確保することができます。また難読化したスクリプトに有効期限を設定したり、HDDのシリアル番号/ネットワークカードのMACアドレス/IPアドレスなどにバインドすることもできます。
Windows, Linux, MacOS, また Raspberry Pi といった組み込みシステムなど、さまざまなプラットフォームに対応しています。
■商品の詳細、お問い合わせはこちら PyArmor / Pythonスクリプトの難読化ツール メーカー (Dashingsoft Corp.) WEBサイト |
数値解析や機械学習向けのオーダーメイドPC
弊社テガラ株式会社の オーダーメイドPC製作サービス テグシスでは、Pythonを用いて科学技術計算や数値計算、シミュレーションをするためのPCや、Pytorchなどのライブラリを利用した機械学習用のPCなど、Pythonをご利用の研究開発者さまから多数のお問い合わせをいただいています。
「Pythonそのものに最適化」…というわけではないですが、科学技術計算用であれば、例えば計算プログラムが並列化されているプログラムであればCPUコア数が多いもの、シングルコア処理のプログラムであればCPUクロック周波数の高いもの、また機械学習用であれば複数台のGPUを搭載したもの…など、用途に合わせた最適なPCのご提案をいたします。
テグシスのWEBサイトではさまざまなご要望に合わせた提案事例を掲載しておりますので、もしご興味があればぜひご覧ください。
■詳細、お問い合わせはこちら TEGSYS – テグシス | 研究用・産業用PCの製作・販売 サービス |
その他 Pythonに関連した製品
ここまではPythonを利用した作業や開発において役立つものをご紹介しましたが、Pythonを用いたプログラミング成果物に対し機能を追加できるものや、Pythonを利用したハードウェア開発ツールなどもご紹介します。
PyRFA
PyRFA は、トムソン・ロイター社の提供する市況情報配信システムである「Reuters Market Data Systems (RMDS)」- 例えば Elektron, TREP-RT, RDF-D, legacy RMDS などへ、Python言語でリアルタイムにアクセスし情報取得することのできるPython APIです。
ユニポスで取り扱っている PyRFA Enterprise SupportはそんなPyRFAを使用したプロジェクトに関し、メーカーからのコンサルティングを受けることができるエンタープライズ向けサポートライセンスです (サポート内容例:レベル2データ、データ貢献、マルチキャストパブリッシング、データリプレイなど)。またEnterprise Supportに登録することで、PyRFAのGitHubプライベートリポジトリへのアクセスが可能となります。
■商品の詳細、お問い合わせはこちら PyRFA Enterprise Support / Python言語でマーケット情報へアクセス可能なAPI 、PyRFAのサポートライセンス メーカー (DevCartel Company Limited) WEBサイト |
PYNQ-Z1 / PYNQ-Z2 (Python Productivity for Zynq)
Xilinx社製のSoC (System on a chip) Zynqを用いて組み込みシステムを設計するためのオープンソースプロジェクトである、「PYNQ」をサポートするFPGAボード。デジタル回路の設計に用いるハードウェア記述言語(HDL)を必要とせず、Pythonとライブラリを用いてソフトウェア開発のようなプログラミング環境で様々な組み込みシステムを構築することが可能です。
■商品の詳細、お問い合わせはこちら PYNQ-Z1 / PYNQ-Z2 (Python Productivity for Zynq) / PYNQ対応組み込みシステム向け小型ボード メーカー (Xilinx) WEBサイト |
まとめ
Pythonの魅力は、Python自身の「シンプル」な性質と、その性質に魅力を感じた人々によって生み出され拡張されていく、充実した環境だと言えます。
また今後ますますAIやそれが適用されたテクノロジーが世の中に広まっていくなか、その開発におけるプログラミング環境が充実したPythonはこれから更に需要の高まるプログラミング言語だと言えるでしょう。
弊社テガラ株式会社にも、日々研究開発者さまからの Pythonに関する製品の問合わせを多数いただいています。今回の記事ではこれまで取り扱いのある人気製品をご紹介しましたが、たとえこれまでに取り扱ったことのない製品でも、テガラでは世界中のメーカーや開発元へ問い合わせのうえ取り扱い可否を確認し、お見積りをいたします。「このメーカーの販売しているこのソフトウェア/ハードウェアが欲しい!」といったご要望も、ぜひお気軽にお問い合わせください。