PyCon JP 2019 カンファレンスレポート

1日目:独学プログラマが語る「なぜPythonが世界を席巻しているのか?」

この記事を読むのに必要な時間:およそ 5.5 分

PyCon JPとは

PyCon JPは日本国内外のPythonユーザーが一堂に会し,互いに交流を深め,知識を分け合い,新たな可能性を見つけられる場所として毎年9月中旬に開催される国際カンファレンスです。

PyCon JP 2019は2019年9月14日のスプリント(HENNGE株式会社⁠⁠,9月15日のチュートリアル,9月16日〜17日のカンファレンス(大田区産業プラザPiO)と4日間の会期で開催されました。来場者は4日間で約1160人と昨年を上回る大盛況で,Pythonへの注目が年々増していることがわかります。

今回は16日に行われたカンファレンスの中から,注目セッションやイベントの様子と感想について運営スタッフがレポートします。

基調講演「Why Python is Eating the World」― Cory Althoff

(牛窪翔)

1日目の基調講演は,Cory Althoff氏による講演でした。

登壇しているCory氏

登壇しているCory氏

Cory氏は政治学の学位を取得後にソフトウェア開発の世界に飛び込み,独学でプログラミングを学んだ後ソフトウェアエンジニアとして働きました。彼自身の経験を基にした著書,『The Self-Taught Programmer』でも有名です。

Cory氏はかつて別の言語でのプログラミングをし挫折した経験があります。再びプログラミングをしたいと思ったときにPythonを知り,そこからPythonの世界にのめり込みます。独学の後,フリーランスのエンジニアとして仕事を得てから実績を積み重ね,シリコンバレーのスタートアップにて自分にとって最高の環境で仕事をするまでになりました。

これまでのキャリアから,何もない状態からここまで自分を高めてくれたPythonに対して恩返しをしたい,他の人にも伝えたいという気持ちが芽生え,今ではPyConはじめ様々なコミュニティで活動を行っています。

Cory氏は本セッションのテーマとして,⁠なぜPythonが世界を席巻しているのか」を説明していました。その理由として

  1. 初学者への導入が素晴らしい
  2. 企業側の需要が高まっている
  3. 素晴らしいコミュニティが多い

の3つを挙げています。

1つ目の理由はPythonが初学者にとってわかりやすく,いろいろなエンジニアリングのパスが用意されていることを他言語と比較をしつつ説明していました。

2つ目の理由は,Pythonが国内外問わず他言語に比べて急成長しており,企業側の需要が高まっていることを説明していました。

3つ目の理由は,Pythonに関わるエバンジェリストやさまざまな素晴らしいコミュニティを紹介していました。

発表の中ではさまざまなデータやエバンジェリスト・コミュニティの紹介もしていました。

セッション動画にて,当日の会場の皆様を席巻するようなCory氏の登壇の様子をぜひご覧ください!

ビギナーセッション「Python開発を円滑に進めるためのツール設定」― Atsushi Odagiri

(横山直敬)

Atsushi Odagiri氏によるビギナーセッション「Python開発を円滑に進めるためのツール設定」をレポートします。

ビギナーセッションとは,Pythonの初心者が次のステップに踏み出すきっかけづくりを目的としたセッションです。

「Python開発を円滑に進める」と聞いてどのようなイメージを持つでしょうか?Odagiri氏は,つまらないミスを減らすことと言います。

ビギナーセッションを行うOdagiri氏

ビギナーセッションを行うOdagiri氏

Python開発を支えるツールには大きく分けて3つの種類があります。

1.linterツール: コーディング規約に沿ったコードになっているかチェックする
  • 例. flake8, black
2.型アノテーションツール: Pythonは動的型付け言語ですが,型アノテーションツールを使うことで変数や戻り値に想定外の型のデータが使われていないかチェックする
  • 例. mypy
3.テストツール: ユニットテストを実行する(複数のPythonバージョンを指定できるツールもある。)
  • 例. pytest, tox

こうしたツールは開発速度ではなく品質を上げる目的で使われます。どんなに意識しても人間はミスをするので,ツールを使って機械に任せるのが重要です。ビギナーセッションでは以下のツールの使い方・おすすめの設定が解説されました。

  • flake8
  • black
  • mypy
  • pytest
  • tox

各ツールの使い方・設定の詳細についてはセッションの動画をご覧ください。

ツールはCI時に実行したり,Gitのpre-commitに設定してコミット前に実行することもできますが,最も望ましいのはエディタ上で自動実行することです。そうすることでコードの編集や保存時にツールからの警告が出たり,コードのフォーマットが自動に行われるように設定することができます。エディタ上で自動実行されることの利点はツールからの警告をすぐにコードに反映できることにあります。Visual Studio Code,emacs,vim,PyCharmといった主なエディタはツールの自動実行に対応しています。

特に設定しておくと良いのは,以下の3つです。

  • 編集中のlinterツール(flake8やmypy)の警告を出す
  • コードの保存と同時にblackでフォーマッティング
  • テスト実行結果からエラー箇所へのジャンプ

退屈なこと(コーディング規約や型アノテーションのチェック)は機械(ツール)に任せることで,よりプログラムの本質に迫ったレビューや議論ができるようになります。その結果として開発全体が効率化されます。

最後にOdagiri氏は,豊富なアドオンがあるテストツールpytestについて各自のプロジェクトに導入できそうなアドオンを調べてCIに導入してみることを提案しました。

著者プロフィール

牛窪翔(うしくぼしょう)

事務局チームでメディアスポンサーを主に担当。PyCon JPにはPyCon JP 2019で初めてスタッフとして参加。Pythonに関しては,大学院にて機械学習,社会人にてDjangoでのシステム開発経験があり,プログラミング言語の中で一番好き。

前職はAndroidアプリエンジニア,現在は株式会社サポーターズにてエンジニア専門の中途エージェントとして転職支援やキャリア相談をしている。また,自社勉強会プラットフォームのサポーターズCoLabでマネージャーとして勉強会やハッカソンの企画・運営・自身の登壇を行っている。

ポートフォリオ:Ussy's portfolio
Twitter:@shoushi12


横山直敬(よこやまなおたか)

コンテンツチームでレビューとポスターセッション(コミュニティ)及びオープニング・クロージングとLTの司会進行を担当。PyCon JP 2017から3年間スタッフとして参加している。

また,毎月開催されている「みんなのPython勉強会」に企画スタッフとして関わり,登壇者の推薦や企画の主催を行っている。

普段は株式会社ビープラウドでPythonエンジニアとして受託開発のプロジェクトに参加する他,オンラインPython学習プラットフォームPyQの問題作成にも携わっている。

Twitter:@NaoY_py


平尾元紀(ひらおもとき)

コンテンツチームでトーク周りのレビューや連絡を担当。PyCon JPにはPyCon JP 2016に初めて一般参加し,2019年は初めてスタッフとして参加。2018年はLT,2019年はポスターで発表と,スタッフとして活動する傍ら発表者としても活動しています。

現在は株式会社いい生活でPythonエンジニアとして日々WebAPIの開発に携わる一方で,外部へのアウトプットを増やすべく技術広報としての活動もしています。ちなみにPyCon JP経由でPythonを書く仕事に転職できたという経歴を持っているため,人々が繋がる場所としてPyCon JPが発展していくよう活動しています。

Twitter:@__yumechi


nikkie(にっきー)

コンテンツチームでトークのレビューやビギナーセッションの企画,会場チームで託児室の準備・運営と,初スタッフながら精力的に活動。株式会社ユーザベース所属のデータサイエンティスト。自然言語処理の研究開発に従事している。

プライベートでは,締め切り駆動で積極的に勉強会で登壇している。また,新橋で毎月開かれる「みんなのPython勉強会」のスタッフをしたり,Django Girls Tutorialの翻訳に参加したりWorkshopでコーチとして教えたりして,Pythonコミュニティへの感謝を表している。

Twitter:@ftnext

バックナンバー

PyCon JP 2019 カンファレンスレポート