PyCon Korea 2023 カンファレンスレポート

鈴木たかのり@takanoryです。2023年8月に韓国のソウルで開催された、プログラミング言語Pythonのカンファレンス「PyCon Korea 2023」に参加してきたので、その様子をレポートします。

PyCon Korea 2023とは

PyCon Koreaは韓国で開催されるPythonに関するカンファレンスです。2022年は一部オフラインでしたが基本はオンライン開催、2023年は久しぶりのフルでのオフライン開催でした。

PyCon Korea 2023のイベント概要は以下の通りです。

項目 内容
URL https://2023.pycon.kr/
日程 チュートリアル、スプリント:2023年8月11日(金)
カンファレンス:2023年8月12日(土⁠⁠、13日(日)
場所 韓国、ソウル
会場 Coex
参加費 1日 80,000 KRW、2日 140,000 KRW
PyCon Korea 2023 Webサイト
PyCon Korea 2023 Webサイト

筆者は2016年に韓国で開催されたPyCon APAC 2016 in Korea以来の参加です。2016年の様子は以下のレポートを参照してください。

韓国への移動

韓国へは8月11日(金)の夜に移動しました。22:20くらいにインチョン国際空港に到着しましたが、海外パスポートの人の入国管理がものすごい行列でした。結局、空港の外に出られたのが23:50頃で、バスでソウル市内への移動は時間がかかり疲れていたので、タクシーでホテルに移動しました。

インチョン国際空港に到着
インチョン国際空港に到着

カンファレンス1日目

カンファレンス1日目はCoex(会場)の入り口を間違えて中で少し迷いましたが、無事に会場に着くことができました(Coexはとても広いです⁠⁠。

Coex
Coex

受付では事前にSMSで送信されたQRコードを使用するそうですが、私は韓国の電話番号を持っていないためそのSMSを受け取れていませんでした。スタッフの方に名前を告げて無事に受付できました。

受付
受付

受付でグッズを受け取りました。IKEAっぽい黒いバッグの中にパンフレット、Tシャツ、うちわ、ステッカーなどが入ってました。

バッグ(左)とTシャツ(右)
バッグ(左)とTシャツ(右)

オープニングでイベントが始まります。すべて韓国語なので何についてしゃべっているかは全然わかりません。写真は過去のPyCon Koreaイベントの様子のようです。

オープニング
オープニング

キーノート1⁠Pythonの歴史に関するトーク

1日目はオープニングのあとに2本のキーノートがありました。スライドも発表言語も残念ながら韓国語です。1本目のキーノートはかなり初期からPythonを使っている方のようで、Python1、2、3の違いについて紹介していました。

一例として文字列型(str型)の各種メソッドはPython 2から使えるようになっており、Python 1ではstringモジュールの関数だったということが示されました。

キーノート1
キーノート1

他にもstr型とunicode型のことや、過去のPythonと並行して当時の韓国のPythonコミュニティの紹介をしていました。韓国でもPyConを開催する前にはミートアップなどが行われていることを知ることができました。

キーノート2⁠RustPythonとコミュニティ

2本目のキーノートはRustPythonと関連するコミュニティに関するトークです。

RustPythonはRustで実装されたPythonインタープリターです。通常使っているPythonはC言語で書かれたCPythonですが、他にもJython(Java製⁠⁠、PyPy(Python製)などがあり、同じようにRustで書かれています。

キーノート2
キーノート2

Rustで書かれた高速なPythonコードの静的解析ツールにRuffがあります。Ruffは、RustPythonによってRuff製のPythonパーサーRustPython parserを利用しているそうです。RustPythonの資産によってRuffが作られたという説明にはとても納得しました。Ruffについては以下の記事も参考にしてください。

別の例としてpylyzerが紹介されていました。pylyzerはRust製のPythonのコード解析、言語サーバーです。このツールもRustPython parserを使用しているようです。

自身の発表⁠Introduction to Structural Pattern Matching

キーノートの後にランチ休憩を挟んで筆者の発表でした。あまり準備に時間がとれなかったのと、現地での機材の確認もあったので、昼ご飯はさくっと食べて発表会場に行きました。発表会場はなかなかの広さです。キーノートでひと続きになっている5つの部屋を、2部屋(101/102⁠⁠、1部屋(103⁠⁠、2部屋(104/105)と分割して使用しています。

筆者の発表会場
筆者の発表会場

今回PyCon Korea側では発表資料をGoogleスライドで統一してほしいという要望がありましたが、私が普段使っているスライドはsphinx-revealjsを使用しており、Googleスライドに変更するのは困難です。そのため、スタッフや配信システム担当の方にもフォローしてもらって、自身のスライドをそのまま使えるようになりました。ありがたいです。

ただ、私の事前の準備に問題があり、スピーカーノートが参照できず、トークの前半はだいぶグダグダになっていしまいました。これは非常に反省すべき点です。

発表ではPython 3.10の新機能であるStructural Pattern Matching(構造的パターンマッチ)の言語仕様と使い方を、サンプルコードを交えて紹介しました。発表は無事終了し、いくつか質疑応答もできました。以下に質疑応答の内容を紹介します。

  • 質問:入れ子にできるか
  • 回答:if文と同様に普通に入れ子にできます。ただ、あまりcaseの中にさらにmatchを書くことはないと思います
  • 質問:if文とどちらを使うべきか
  • 回答:場合によります。リテラルパターンのようなシンプルなものはif文のままでよいと思います
  • 質問:パフォーマンスはどうなっているのか
  • 回答:Python 3.10の段階では機能がリリースされた段階と認識しています。パフォーマンスの改善は今後も継続的に行われていくという話が、PEP 著者のBrandt Bucker氏からありました
  • 質問:複雑なJSONを処理するときにcaseのところがすごく長くなりそう
  • 回答:そうなると思います。ただ、if文をネストして書くのとどちらがわかりやすいか、実際に書いてみて比較してみるとよいと思います

発表が終わった後にも何人かと構造的パターンマッチについて話ができました。この機能に興味を持ってくれて、使い始める人が増えるといいなと思っています。

ブースの様子

会場の外にはスポンサー企業によるブースやPyCon Koreaのブースがありました。企業ブースに多くの参加者が立ち寄って盛り上がっているようです。

企業ブース
企業ブース

PyCon Koreaブースではグーズの販売や、スタンプラリーの抽選をしているようです。傘、ペン、靴下などさまざまなグッズが売っていました。

PyCon Koreaブース
PyCon Koreaブース

ライトニングトーク

1日目のライトニングトークです。ライトニングトークは1本5分程度の短いトークが連続するセッションです。

PyCon Korea主催者から、名札の下に付けるリボンを作ったLTがありました。PyCon USでもあった自分の属性や興味があることを示すリボンです。たくさんの種類のリボンを作ることになってカットする作業が大変だったようです。

リボンについてのライトニングトーク
リボンについてのライトニングトーク

また、KwonHan氏のライトニングトークもありました。KwonHan氏はPyCon KRの立ち上げメンバーであり、筆者の以前からの友人です。KwonHan氏がPSFPythonソフトウェア財団の2023のボードメンバーとなったことや、PyCon US 2023でのライトニングトークのことなどが語られました。

KwonHan氏のライトニングトーク
KwonHan氏のライトニングトーク

KwonHan氏のPyCon USでのライトニングトークについては以下の記事を参照してださい。

カンファレンス2日目

このカンファレンスは1日券もあるため、両日受付をする必要があります。私も受付をしなおして、2日目の名札をもらいました。名札の色が違うのでわかりやすいなと思います。リボンも付けてみました。

名札(左が2日目)
名札(左が2日目)

Pythonで安価で社内Slackbotを運営した話

Slackbotの運用の話です。FlaskBolt for Pythonでアプリを作成し、ZappaでサーバーレスアプリケーションとしてAWS API Gateway + Lambda上で動作させているそうです。

Slackのワークフロー
Slackのワークフロー

まずはrandomモジュールを使用して簡単なサイコロ機能を実装し、そこからボットを拡張していきました。Notion APIを叩いてページを検索するコマンドや、Notionページからメンバーの休みの情報を返す機能、非同期でChatGPTのAPIを叩く機能などを実装したそうです。

Slackbotでいろいろ楽しようというトークは私もPyConでしていたので、一方的に親近感を感じるトークでした。

オープンソースと一緒に成長する話

前日の飲み会で同席したJordan氏による発表です。自身がDjangoなどのオープンソースに貢献する中で、自分自身も成長していったというトークです。オープンソースにPRを送ると品質の高いレビューを受けることで、自身のコード力が上がっていきます。また、テストコード、チケット管理、CI/CD、ドキュメント、コードレビューといったよいプロジェクト運営を知ることができます。

Jordan氏の発表
Jordan氏の発表

他にも、普段は経験できないレイヤーについて学ぶ機会があり、例としてDjango ORMへの貢献をするときにDB、SQLについて深く知ることができたそうです。また、英語とコミュニケーションスキルが成長するということ、レビューしてくれた人などの関係者にグローバルのイベントで会えるかも知れないということが利点として上げられていました。

さらに、OSSへの貢献の始め方として以下のような考え方、方法がお薦めされていました。

  • 最初は、すでに存在するプロジェクトに参加して貢献をはじめる
  • コード全体が大きいときは、興味のあるコンポーネントからはじめる
  • GitHubの課題に「初心者向けの」のラベルが付いているものがある場合、その課題から着手する
  • コードを読むときにChatGPTなどを使用する

そして最後に、韓国で開催されているOSSへの貢献をはじめるイベントや、PyConのスプリントに参加することがお勧めされていました。

オープンソースへの貢献とそれが自身の成長につながるという、とてもよい発表だなと思いました。

ライトニングトーク

カンファレンス2日目もライトニングトークです。以下のような発表がありました。

2日目ライトニングトークの模様
2日目ライトニングトークの模様
  • Golang Koreaの紹介。2023年8月にGopherCon Koreaが開催されたそうです。これは韓国で最初のGoに関する大規模イベントとのこと
  • 大学に通いながらフリーランサーをしている方の発表。Pythonを中学生に教えたり、自らPythonを学びながら楽しんでお金を稼ぐというトーク
  • めっちゃハイテンションで内容がウケている人がいました。韓国語なので当然なにもわからず。あとで動画を字幕付きで見てみたい
  • Circuit Pythonでハードウェアを作る話
  • 過去のPyCon Koreaにボランティアとして参加してきた話。一人での参加だが知り合いが増えた

クロージング

イベントの最後はクロージングです。イベントに関連する数字が紹介されていました。1,458日(4年)ぶりの現地開催のイベントで、参加者は1,100名以上、43名のスピーカーなどの数値が紹介されました。

クロージングのスライド
クロージングのスライド

クロージングのあとはスタッフなどの記念撮影が行われていました。私も最後の方に韓国の友人であるKwonHan氏、Younggun氏と一緒に記念撮影をしました。2人とはPyCon US 2023でも一緒に参加し、おそらく東京で開催されるPyCon APAC 2023でも再会できると思います。また会いましょう!

KwonHan氏(左端)、Younggun氏(右端)と筆者
KwonHan氏(左端)、Younggun氏(右端)と筆者

まとめ

PyCon Korea 2023のレポートは以上です。久しぶりに参加した韓国のPyConは、活気はありましたがまだ盛り上がる余地を感じるイベントでした。今後は海外発表者や英語での発表者ももっと増えるといいなと思います(なかなか難しいようですが⁠⁠。

筆者がPyCon JP Associationとして行っているYouTubeライブ、PyCon JP TVでもPyCon Korea 2023について9月8日の回で紹介する予定です。

PyCon Korea 2023のあとはソウルから電車を乗り継いで移動し、春川(Chuncheon)市にあるLEGOLAND Koreaに行ってきました。疲れて寝坊してから、慣れない土地での電車移動はなかなか大変でしたが、LEGOLANDを楽しんできました。

LEGOLAND Koreaの入り口
LEGOLAND Koreaの入り口

おすすめ記事

記事・ニュース一覧