PyCon APAC 2023 体験談

先日 PyCon APAC 2023 に参加しましたので、その体験談を記したいと思います。


## はじめに

### PyCon とは

PyCon とは Python のカンファレンスで、世界各地で行われております。日本でも毎年行われているのですが、今回は Asia Pacific Region 全体の国際カンファレンスとして実行されておりました。開催期間は二日間で、かつて大学にいた時には学会発表に何度も行ったことはありますが、このようなカンファレンス自体は初めてでした。なお、宿泊の関係上荷物が多く、会場の写真を撮影することができなかったので、ご了承ください。
また、PyCon に関して、現在あることが論争になっておりますが、この報告ではその件には触れないので、ご了承ください。

## 全体のカンファレンス会場

セッション会場、企業ブース（2部屋）、休憩場所の3つに分かれておりました。特に休憩場所では日本を代表するものとして駄菓子が配られており、オライリーが書籍販売（しかも20%引きで！）しておりました。そのため書籍を大量に買いあさってしまい、荷物が重くなってしまいました。
企業ブースでは、様々な企業が出典しており、サービスの認知とエンジニアの獲得のためでした。知らないサービスはかなりありましたし、それだけでも有意義だったかと思います。

### 参加したセッション

初日

| 時間 | タイトル | 発表者 |
| :--- | :---: | ---: |
| 10:00-11:20 | Keynote: Why University Teachers Wrote a Python Textbook? | Takanori Suzuki |
| 11:40-12:10| Write Python for Speed | Yung-Yu Chen |
| 13:40-14:10 | Python in Human-Centered AI Design: How to deal with 60 Million patients to develop AI solutions in healthcare | Hassan Sami Adnan / Samara Sharmeen |
| 14:20-14:50 | Pants ではじめる Python Monorepo | Koki Nishihara |
| 15:30-16:00 | Dev Containers 時代の Python 開発環境のあり方 | Yoshiki Shibukawa |
| 16:10-16:40 | Enhancing Observability in FastAPI or Python Application with OpenTelemetry | Yu Ming Hsu |


2日目

| 時間 | タイトル | 発表者 |
| :--- | :---: | ---: |
| 10:00-11:20 | keynote: Through the looking glass: 10 years of Python organizing Lessons and Tribulations  | Lorena Mesa |
| 11:45-12:15|  メモリプロファイラ Memray のススメ | Manabu Terada |
| 13:30-14:00 | Parallel code with Python 3.12 sub-interpreters | Anthony Shaw |
| 14:10-14:50 | Python x 法学 〜日本の法のテキスト分析・地図可視化への試み〜 | Ryo Namiki |
| 15:20-15:50 | Comparison of Packaging Tools in 2023 | Peacock |
| 16:00-16:30 | FinTech の現場でバリバリ活用する FastAPI の理想と現実 | Sho Nakamura |

## 発表

### 面白かった発表

#### Write Python for Speed

数値計算を行うのでは Python では Numpy があるが、これをそのまま用いると複雑になる。数値計算の現場では C++ で検証し、アプリケーションの組み込みの時に Python を用いる例があるが、それを C++ のまま組み込み、Python は Glue 言語のように扱う Hybrid Architecture を提唱していました。
難しく英語だったために全体的に理解できたわけではありませんが、Pydantic も現在 validator 箇所は Rust で実装し、それを Python から呼び出して実行しているわけで、このような Hybrid Architecture は数値計算だけではなく、徐々に増えていくのだろうなと感じました。

#### Pants ではじめる Python Monorepo

Monorepo のような設計にすると、別ドメインのものが流用されてしまったり、テストが非常に長くなってしまったりします。それに対して Pants はこのような問題点を解決してくれます。具体的には、ビルド時にドメインを流用を禁止してくれたり、差分箇所のみのテストを実行してくれたりします。
現在開発で携わっている箇所は Monorepo に近い開発を行っていますので、別ドメインのものが流出して利用されていることなどがあり、このような解決方法として良さそうだと思いました。**今からは導入は遅そうですが**。

#### メモリプロファイラ Memray のススメ

Memray というメモリプロファイラを紹介されたから実際にもう使っております。これはメモリプロファイラのうち、非常に用いやすかったです。特に live mode といって、実際動かしている時にリアルタイムでメモリ消費量をプロファイリングすることもでき、非常に使い勝手がよかったです。


#### Parallel code with Python 3.12 sub-interpreters

Python 3.12 から 1 つの Session には複数の interpreter を持ち、それにより並列作業をしやすくなったとのことです。ちょうど、threading と multiprocessing の中間を埋めるような存在になるとのことです。ただし現状ではあまり本番用途に用いることはできなさそうで、次の 3.13 から使いやすくなるらしい。

## 改善点がありそうなもの

### 難易度を明記してほしい

去年は難易度が記されていたらしいですが、今年はそのようなものが見当たりませんでした。そのため、相当ハイレベルな説明をしていて、あまり理解ができなかったという悲劇がありました。逆に知っているもののも結構あり、適切にハンドリングしてくれれば別の興味あるセッションにいったかもしれなかったです。


### セッション会場と休憩会場が遠い

これはしょうがないですが、セッション会場は4階、休憩会場は20階でエレベーターに乗ってしばらく立たないといけないのがきつかったです。


### 荷物置き場

これもしょうがないのですが、関西から駆けつけ、巨大な荷物を持ってセッションに参加しないといけなかったため、体力的にしんどかったです。荷物置き場がほしいなと思ってしまいました。


## もらって嬉しかったノベルティグッズ

### Google Cloud 様のTシャツ

Google Cloud というノベルティTシャツの品質の高さに驚かされました。このTシャツは肌触りが非常に滑らかでなかなか品質がよかったです。

![IMG_5161.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1455914/5427d90b-afe4-0938-1288-de24aaaa828b.jpeg)

### HireRoo 様のマグウォーマー

部屋が結構冷えるので暖かいものが飲みたくなることがあり、利用用途に合っていました。ただしあくまで冷めるのが遅くなるくらいだけど、十分に利用できるものでした。

![IMG_5162.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1455914/db18ea56-ebda-09be-d7f5-0b809ee901f3.jpeg)


### Pythoソフトウェア財団様の水筒

ちょうど自分用の水筒がなかったため、外出するときに持ち歩くのに便利だなと思いました。


![IMG_5163.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1455914/8d814dbb-b2e6-f4fe-8c8f-e432f3b5277f.jpeg)

## 全体を通じた感想

- ほぼほぼノーコストでスキルが上がるので良い。
  - 参加費は、実はノベルティや本の割引でほぼほぼ賄える
  - スキル面は、ライブラリの紹介があったり事例がわかったり、仕組みを解説している例が多いので、十分に学習になります。
- 全体的に紹介系の発表が多いが、レベルの差が結構ある。
- 発表をするとしたら、新規機能や実体験あたりが利用者の用途として良いかもしれない。