こんにちは、Pythonエンジニア育成推進協会 顧問理事の寺田学です。私は試験の問題策定とコミュニティ連携を行う立場です。
さて、2024年が始まりました。ここで昨年の振り返りと、Python業界の今後も含めた今年の展望についてお話したいと思います。
■2023年のPythonトピックスは生成AIとUIフレームワーク
2023年はPython周りでは、生成形AIブームと、Python製UIフレームワークがトピックスに上がると思います。
- 生成系AIブーム
生成系AIに関連している多くの人が、以前に増してPythonを使うようになったのではないでしょうか。
その理由としては、内部的な部分の実装にPyTorchが使われていることが多く、その流れで既にあるPythonのインターフェースが利用されることにあります。
また、OpenAI APIを使う場合に、最初に出てくるサンプルがPythonで書かれていること、さらに公式のPythonライブラリも公開されていることから、OpenAIのChatGPTのAPIを使うのならPythonの方が扱いやすくなるということも理由に挙げられます。もっとも、APIなのでPythonに限った話ではなく、他の言語でも利用できるものですが、ライブラリとサンプルなどによる使いやすさが影響しているのは確かでしょう。
さらにこの周辺においてはLangChainというフレームワークが大規模言語モデル(LLM/Large language Models)を使う上での地位を確立います。これはPythonとJava Scriptに対応していますが、Pythonの方が最新を追いかけていること、Pythonの方が公開されているサンプルが多いため、Pythonの方が使いやすい状況です。
ここまで生成系AIの中でも自然言語系の話をしてきましたが、画像系でもPythonの活用は進んでいます。
これらのことから、2023年のPythonが技術的にどのような年であったかを問われれば、生成系AIが一時のものではなく、一般的に使われ始め、活躍の場が広がったと言える年だったと考えています。
私自身も自然言語系の生成AIを使ったアプリを作ることがありますが、Pythonの良いライブラリやフレームワークがあることで、楽に実装できると感じています。
- Python製のUIフレームワーク
どういった名前付けの定義をするかは非常に難しいのですが、Python製のUIフレームワークは、今までのPythonのWebフレームワーク(例:Django、Flask、FastAPI)とはちょっと一線を画したフレームワークが非常に注目を集めた年でもあると思います。
代表格としては、Streamlit(ストリームリット)や、Gradio(グレイディオ)です。ワンファイルでPythonのモジュールを作ることで、入力フィールドや、送信ボタン、その結果を表示する画面が、JavaScriptやテンプレートを書かずともPythonで簡単に作れるものになります。私はこれをPythonのUIフレームワークと呼んでいるのですが、非常に進化が進んでおり、使われる機会が増えています。
これのいい点は、Pythonでできていますので、AIのモデルを呼び出して、何らかの結果を表示するときに役立ちます。もちろん、pandasやLangChainを使うことも可能ですし、これらを使わずとも、1つのモジュールを書くだけで、OpenAI APIを呼び出すことができることにあります。
これは非常にありがたいことで、Webの世界で簡単に機械学習やAIのモデルを展開しやすくなります。
以前であればColaboratory やJupyter Labなどで実験し、その後、PythonのWebフレームワークやテンプレートをしっかり書いてWebシステムを作っていましたが、そうせずともWebとして表現できます。
実はこれはシステムだけでなく、テレビなどのメディアで紹介されるサービスで利用されていることがあるもので、広く利用されていることを実感しています。
ここまでAIに関連した話が中心でしたが、Pythonが得意とするのはAIだけではありませんので、他の場面でも使われていることはあります。例えば、サーバサイドやWebでPythonを使っていたとしても、最終的にAIにつなげやすいということはあります。こうしたことを考えれば、今後もより、幅広い用途でPythonが使われていくだろうという事は想像に難くありません。
■2023年から見えるPython案件の変化
私自身はPython+Webを中心の案件に対応していますが、最近はWebだけで完結することが少なくなってきています。
具体的にはフロント側で動くものが非常に増えてきていることにあります。この場合、TypeScriptやJavaScript、フレームワークならReactやVue.jsが使われることが多いと思いますが、こうしたものを利用すると、インタラクションがある物を作るときには、Pythonから直接、静的なテンプレートを書くより、サーバサイドではJSONでAPIを出すのが仕事になります。
もちろん、Pythonだけで完結するシステムもありますが、システムの一部分をTypeScriptやJavaScriptで作ることが増えていますので、Webの世界がPythonだけで完結するという仕事は非常に少なくなっていると思います。
ただ、自動化やデータ分析の分野はPythonでやるという案件は非常に多く、またPythonの学習へのモチベーションが高い人も多いため、最終的にPythonでやろうという案件は増えていくと思います。
■2024年のPython業界
生成AIやUIフレームワークが今後も広がりを見せると予想される以上、Pythonも2024年はその活躍の場を広くしていくと考えられます。
私自身、Pythonの利用において、不便を感じることはありませんので、今のところ他の言語に乗り換える予定はありませんし、直近で新たな言語を含めたエコシステムができることは考えられないだろうなと今は思っています。
ただ、ChatGPT3.5が公開されたのが2022年末、画像系の生成AIが話題となったのが2022年夏ごろだったことを考えれば、たった1年半でここまで生成系AIが話題となり、一般に応用され、トラブルも出ているほど大きな進化を遂げていることは、今は時代の流れが速いので、新しい言語や仕組みが出てもおかしくはないかもしれません。
とはいえ、しばらくはPythonで世界は回っていくだろうというように考えています。
ところで、Web用のUIフレームワークが、ブラウザだけで動く世界が実は非常に進んでいます。
ブラウザの世界では、通常、機械学習AIを使う時には、 サーバを使用し、そのサーバの計算リソースを使って、Webブラウザを経由してサーバにリクエストを送ります。その後、再びサーバで処理された結果を、ブラウザに戻し、結果を表示します。この、クライアントとサーバ、インターフェースとしてのブラウザがあるという世界がこれまでの一般的なWebの世界でした。
一方、昨今、UIフレームワークはWebAssemblyの仕組みを使い、ブラウザのみでインタラクティブな計算や処理をします。これは各自が持つPCの計算リソースを使って機械学習モデルを動かしたり、データ分析したりという事をすぐにできるようになりました。
Webアセンブリの仕組みを理解せずとも、UIフレームワークがこれをできるようにしてくれています。各種UIフレームワークの機能開発はそれぞれがかなり進めており、最近では正式にサポートもされています。そのため、この辺の技術も今年はより進んでいく見込みです。
ブラウザで動く世界では、ブラウザさえあれば動作しますので、サーバがなくても、計算リソース用のメモリが確保できるPCやスマホでも動かすことができます。極端なことを言えば、HTMLファイルを静的にホストしておくことができる、 または、それを流通させることができる、流通しやすい状況になるということになります。
より便利に進んでいますが、サーバでやった方が効率的であることはまだまだありますので、1つの選択肢として知っておいて頂ければと思います。
■Pythonのバージョンについて
ご存じの通り、Pythonは年1回リリースされますので、今年も10月ころに3.0代のリリースがあります。毎年マイナーバージョンが一つ上がりますので、今年は3.13になりますね。
昨年10月に公開された3.12は、すごく使いやすくなるだろうなと思うような、思い切った新しい機能は特にはなかったと思っています。
ところで、昨今のPythonの開発は二つの大きな目標を目指しています。
ひとつめは、内部構造を変えることで、スピードアップを図ろうとしていること。ふたつめは、初心者でもより分かりやすくしていくということです。
- 3.13はGIL問題解決によるスピードアップが実現か?
Python3.13では、内部的に大きな変更が入る可能性はあり、これによって非常に効率よく動くようになるかもしれません。
Pythonには、グローバルインタープリターロックビル(GIL)と呼ばれる、Pythonのオブジェクトを複数のスレッドで同時に操作することを防ぐ仕組みが入っています。これは、オブジェクトは安全にするためのものですが、並列処理の観点では、複数のCoreがあっても、 1つの命令しか動かないため、Pythonの問題点のひとつであるとかねてより話されていました。
現在、このGILに対して、メスを入れようと様々なアプローチが取られています。昨年の秋ごろから、何人かのPython開発者の話を聞いていると、やはりこのGILは非常に話題になっており、コア開発者の中では今、1番ホットな話題になってるんじゃないかなというふうに思っています。3.13でどこまでのものが実装されるかはわかりませんが、1つの大きな革新的な内部的な変更になる可能性があります。
ただ、Pythonは基本的に過去のバージョンのコードが動かなくなるというような大きな改変はしませんので、使い手側としては、学びなおしなども含めて、そう気にすることはなく、ただ、処理が速くなったなという恩恵を感じるくらいでいいかなと思います。
とはいえ、処理速度が上がることについては、そこまで順調に進んでいるわけではないと考えている人も中にはいます。使い方による部分もありますので、期待通りに行くかはわかりませんが、GILの解消は、速くなる可能性を高く秘めているのではないかと思います。
- 初心者がより使いやすくする機能を
3.12でも、エラーメッセージをわかりやすくしたり、f-stringの部分を変更したりと言ったことをしてきました。
ここからどのように進めていくかは、まだ決まっていませんし、注目されることも少なくなってきてるかもしれません。
ただ、Pythonがいまより使いにくくなるようなことはなく、より使いやすさを目指して、エラーメッセージもさらに改善と、型ヒントなどもさらなる見直しがされていくのではないかと思います。
■リアルイベントで、Python仲間を探そう
新型コロナ感染症の影響が縮小しつつある今、イベント開催や生活に大きな影響を与えなくなってきたことから、様々なコミュニティイベントが復活できた年になったと思います。
昨年のPyCon JPはアジア全体のカンファレンス、PyCon APACとして開催しており、また、当協会としても12月にリアルイベントを開催できたなど、イベント復活の流れが業界全体に流れていると思います。
特に海外はリアルイベントが普通に開催されており、日本もそれと同様に、盛り上がりを見せるのではないかと思います。
ただその反面で、イベントの楽しさを知っている人が減り、またイベントを開催しても、新しく入ってくる人が少なくなっているという危機感を持っています。制限がある生活を送ったこの3年間で、働き方の多くがリモート中心になったことで、外出機会が減り、わざわざ参加する人が減っているのだろうということも影響していると思います。
そのため、2024年は分かれ目となるかもしれません。特に小さなイベントや勉強会は、以前は毎週のように何かしらが開催されていましたが、今は東京でも、月に数回程度リアルイベントがあるかどうかで、ほとんど行われることはありません。毎週、何度もイベントが開かれる状況はなかなか戻らないでしょうし、そうなると、新しい参加者を増やすこともなかなか難しくなると思います。
イベントは、学びを増やすだけでなく、師匠や仲間を増やす場になるという話をこれまでもしてきましたが、得られる機会が減ってしまうことに危機感を抱いています。
飛び込む先がなければ、参加者を増やすこともできませんので、中大規模のイベントはせめて継続して欲しいと願っています。
これから新たに参加していくことになる方にとって、すでに出来上がったコミュニティに飛び込むのは難しいかもしれませんが、そこにいる多くの人が、新たな刺激をくれる新たな参加者を歓迎しているはずです。参加回数を重ねることで仲間ができると思いますので、2024年はぜひ飛び込んでいってほしいと期待しています。
■高校の情報必修と、プログラミング初学者と、これからの情報社会
2022年度に高校の必修科目に情報科目が入ってから、次の4月で3年目に入ろうとしています。
2024年度の1月、つまり、この春に3年生になる人たちの共通テストには情報科目が入ってきます。
これからの世の中で、情報技術や情報科学という分野が重要なものになるだろうと考えられていることの現れと言えますが、実際にPythonを含めたプログラミングをどの程度まで習得していくかは、まだわかりませんが、注目されるほどの変革であることは間違いありません。
さて、そうして情報を授業で学んできた人たちが、これから社会に出てくるという新しい時代になり、そうした人材が下支えする世になるわけですので、すでに社会で働いている人たちにとっては少し怖いと感じることは不思議ではありませんし、これを機に学びなおしを考えている人も多いことだと思います。
その中でプログラミングを学んでみるのも一つの手でしょうし、初心者にとって受け入れやすいPythonをその選択肢に入れるのも一つだと思います。
Pythonは先ほど挙げたAI以外に、IoTや自動化、データ分析など様々な用途があり、広い分野で横断的に使える点が非常に便利です。さらにPythonは仕様が非常に安定しているため、覚えることが少ないため理解しやすく、バージョンが変わっても長く使っていけます。
また、Webなどで公開されている様々なサンプルがPythonで書かれていることに加え、高校の情報教育でPythonが取り入れられているという事実から、Pythonが初めて習うプログラミング言語としては学びやすいということはご理解いただけると思います。
私自身も初めてのプログラミング言語にPythonを選択するのは良いのではないかと考えています。
もちろんプログラミングだけが情報科学ではありません。
プロジェクトの全体やシステム構築といった大きな話の一部分でしかありませんので、プログラミングができなければダメだというわけではありません。
ただ、何から始めるかと言ったときに、プログラミングで何かを一つ作ってみるというのは、わかりやすく、良いチャレンジのひとつなのではないかと思っています。
■Pythonエンジニア育成推進協会の2024年
当協会としては、昨年末に東京で初めてのリアルイベントとして、講演会と懇談会を開催しました。
ほとんどの人がはじめて会う人たちで、新たに出会えて、非常に良かったと感じています。今後も、不定期に活動を続けたいと思っています。
試験自体は、基礎試験やデータ分析の取得者が増え、世間に定着しつつあると感じています。今後、Pythonを学んだより多くの人が、自分がどこまでできるのかを確かめ、達成感を持ってもらえるような基準として利用してもらえればと思います。
2022年から始まった実践試験は、チャレンジが難しいと考えている人が多いかもしれません。ですが、実務で適切に実装している人で、Pythonを理解しているひとなら合格できると思いますので、ぜひチャレンジしてもらえると嬉しいです。
また、2024年には、データ分析試験の上位試験として、Pythonデータ分析実践試験も始める予定で準備を進めています。
こちらも併せて、ぜひチャレンジしてみてください。