Galapagos Tech Blog

株式会社ガラパゴスのメンバーによる技術ブログです。

PyCon APAC 2023 に参加してきました :)

AIR Design for Marketing 事業部 バックエンドエンジニアの大田です。最近ボルダリングをサボっているせいで体重が高め安定してしまっています。久しぶりに会った知人から「ちょっとふっくらしました?」というお言葉を頂戴しました、控えめな表現に優しさが垣間見えますね 😇

タイトルの通り、 PyCon APAC 2023に参加してきましたので、簡単ですがレポート的な記事を書こうと思います 🐍

Day 1

Keynote

京都大学の喜多一教授による「なぜ大学教授がPythonの教科書を書いたのか 」という内容でした。 初学者が躓きやすいポイントなどについて話されていて、それに対してどのように対応していくのかをわかりやすく説明されていました。

やはりいちばんの壁はエラーメッセージで、正常系が動いているうちは前に進めるけれど、エラーが発生してしまうとメッセージを読みたくなくてドロップ・アウトしてしまうことがよくあるとのことでした。 なのであえてエラーを発生させることをして、それを解決することを体験してもらうことでエラーへの恐怖をなくすようなやり方をしているということで納得感のあるお話でした。

Kyoto University Research Information Repository: プログラミング演習 Python 2023

講義で使用するテキストと専用に開発したフォントを公開されているということや、配布しているコードにはテストコードが含まれているというところも印象的でした。

Introduction to Structural Pattern Matching

slides.takanory.net

Python 3.10 からの新機能である構造的パターンマッチングの紹介で、何が嬉しいのかを見ていく内容でした。こういう新機能はなかなか使い始めるタイミングが無いので、こういった場で紹介されているとありがたいですね。

Lunch

白身魚のお弁当。大変美味しかったです。

Python はどのようにデータベースと繋がるのか

Python から PostgreSQL に Socket を使ってどの様にアクセスできるのかをやってみたという内容でした。

意外に(?)シンプルでわかりやすいプロトコルなのが印象的でした。

型チェックを強化するPython 3.11の新機能

pyconapac2023-pep681-slide.ryu22e.dev

Pydantic などのいわゆる「データクラスっぽい」ライブラリに対して型チェックを強化するための標準仕様(Data Class Transforms (PEP681))についてでした。みんな大好き型のお話ですね。

この手のライブラリは IDE 側でも対応していないと補完などが効かなかったりするので、進化に期待ですね。

Dev Containers時代のPython開発環境のあり方

vscode で使える Dev Containers のお話ですね。最近は JetBrains IDE でも使えるらしいので、ちょっと導入してみたいと思っています1

Day 2

Python で一歩踏み出すバイナリの世界

events/pycon.apac.20231026 at main · rhoboro/events · GitHub

UTF-8 の仕様のお話などされていました。「16進数はまずは 0,7,8,F だけ覚えておけば良い」2というのはなるほどと思いましたね。 最近業務で実装したID生成のことを思い出したりしました :)

Lunch

回鍋肉弁当。こちらも美味でした :)

20階の Unconference 会場でお弁当を頂いていたのですが、PyCon PH の方とお話させていただきました。 私の英語スキルは単語を羅列できる程度なのですが、フィリピンの学校でマイクロソフトの支援(?)でC#が教えられていることなど興味深いお話ができました。 (私が仕事でC#をやっていたことがあるという話から発展しました)

PyCon APAC ブースでお菓子とステッカーを配っていると教えていただき、頂戴してきました :)

お菓子美味しかったです!

Comparison of Packaging Tools in 2023

pipenv, Poetry, PDM, pip-tools, Hatch, pip(, Rye) の比較をされています。 まとめとしてはライブラリ開発者は Hatch 、アプリケーション開発者は PDM が良いのではということでした。3

PDM は pyproject.toml に記述する依存関係の標準4に対応していて依存性解決も速いということなので、早速 Poetry を使っているプロジェクトを PDM に切り替えてみて試しています。 使い勝手は Poetry と変わりなく、特に問題なく動いているようなのでこのまま正式に切り替えようかなと思っているところです :)

まとめ

久しぶりのオフラインでのカンファレンス参加で正直疲れてしまった部分もありますが、やはり同じ開発者がリアルで話すという場のありがたさを感じました。 すぐに業務に取り入れることができるトピックもあり、刺激をもらえる2日間でした :)


  1. 少し試してみたのですが、 JetBrains IDE では現状エラーメッセージなどが表から見えなくてすんなり使えるとは言えない感じに見えます。残念。
  2. 0 = 0000, 7 = 0111, 8 = 1000, F = 1111
  3. Rye はまだ安定していないし個人開発なので、様子見が良いのではということでした。
  4. PEP725のはず...