日々精進

aikoと旅行とプログラミング

PyCon Kyushu 2019 Okinawa 参加記

f:id:bath_poo:20190522231337j:plain

5/18(土)に開催されたPyCon Kyushu in Okinawa 2019に参加してきた。 kyushu.pycon.jp Pythonめちゃくちゃ書く人かというとそうではないが、最近身近にPythonの機運が高まりつつあったり、Python2あたりで止まっている自分の知識のアップデートも兼ねて参加することに。 普段福井にいる学生が沖縄まで行くのは辛いのでは?という話だが、ありがたいことに遠方支援という制度があり、そのおかげで参加することができた。ありがとうございます。

以下聞いたもののメモです。

Python Webフレームワーク比較

Python超初心者の私は、聞いたことがあったフレームワークDjango, Flask, Zopeぐらいなものだった。この3つも含めて全部で9個のフレームワークを比較するというセッション。Webフレームワークに求められる機能は非常に多岐にわたり、フレームワークによってその実装度合いもまちまちである。求められる要件に応じて、適切にフレームワークを選択する必要がある。

もちろん求めている機能が実装されていることは非常に大事だが、そのフレームワークを使っていく上で、それに関する知識やノウハウといったものがどの程度蓄積されているか、周囲の知識レベルなども非常に大切な要素であると感じた。

Pythonにおける並列処理プログラミング

slideship.com Pythonで並列/並行プログラミングをする話。毎度並列と並行がごっちゃになる人間なので、セッションが始まる前にちょっと復習した記憶。 Python(正確にはCPython)にはGlobal Interpreter Lock(GIL)の制限があるため、複数のスレッドを生成しても実際に実行できるスレッドは1つに限られている。

Pythonでの開発を効率的に進めるためのツール設定

Pythonを使った開発を便利にするためのツールの紹介。ここで聞いたツールたちを後々の発表で聞くこともあった。手元の環境(例えばエディタであったりjediなどのコード補完)もそうだが、linterやformatterなどを使うことでチームでのPython開発をより良いものにしようという強い意志を感じた。「クオリティは人力であげるものではなく、機会に頼っていこう」というところに強く共感した。

ところで、import文をソートするという概念に初めて出会った。importを入れ替えて動かなくなった場合、そこに依存関係が発生しているからどうにかしたほうが良いというお話のようだった。

試行錯誤のための Docker 活用術

Dockerについての最低限の知識を持った状態で聞いていたので、流石に最初の方はわかる、となっていた。DockerはJavaという強い言葉をきいた。

データアナリスト側としては、

  • 様々な方法(ツール)を簡単に試行できること
  • 環境の再現が容易であること

のような環境があるととても嬉しくて、そういう要件にコンテナがとっても良いよというお話。環境の再現性やポータビリティといったものに関してはDockerを始めとするコンテナは非常に有用である。今nvidia-dockerとかあるんだなー、という気持ちになった。MLOpsに対する興味が湧いてきた。

開発環境の垣根を超えるLanguage Server Protocol入門

最近聞くことが増えたLanguage Server Protocolのお話。エディタとかの補完を実現するために使われているとかとか。エディタとLanguage Server間をJSON-RPCで通信することでその機能を実現しているとのこと。Pythonはもちろん、他にも70種類ほどの言語で実装されているらしい。

LSPってマイクロソフトが関わってたのをここで初めて知った。 microsoft.github.io

Pythonと型ヒントとその使い方

Type Hintsは関数の戻り値の型や引数の型といったものに対して型注釈(アノテーション?)することができる機能である。あくまでアノテーションであって、型の検査等はされない。主に静的解析用途と考えたほうが良さそう。適切な補完を出すためにも書いておくと良いし、この話はPythonでの開発を効率的に進めるためのツール設定でmypy話をしていたときにも出てきていた。ただ開発者陣は「あくまでPythonは動的型付け言語であり、Type Hintsは必須の機能にする気はない」とのこと。

Type Hints登場時から歴史をたどって(PEPをみながら)進んでいってとてもわかりやすかった。

まとめ

Pythonに関する勉強会やコミュニティといったものに初めて触れましたが、1日楽しくまた大変勉強になる知見をたくさん得ることができました。Pythonといえば今Machine Learningの分野で多く使われておりそちらよりの発表が多いのかと思いきや、Web寄りの内容も多く楽しむことができました。今後Pythonを使用する際に参考にさせていただきたいと思います。スタッフの皆さん、参加者のみなさんお疲れ様でした!

余談

PyConも楽しみましたが、人生初の沖縄も少し楽しむことができました。海綺麗すぎませんかね? f:id:bath_poo:20190522230951j:plain 三枚肉そばも f:id:bath_poo:20190522231056j:plain