こんにちは、masaです。

気づいたらもう45歳になっていました。

私は日本で働いていた時には、社内SE・プログラマーとして、毎日のようにプログラムを書いておりました。当時使っていたのはVisual Studioというツールを使い、主にC++という言語を使った開発を行っていました。

退職してオーストラリアに来てからはWebが中心になり、身の回りのプログラムというとほぼphpとjavascriptという状況でした。phpも嫌いではないのですけど、もうちょっと別なプログラムを勉強したいと常々と思っており、今年からボチボチ勉強を始めています。

Pythonに手を出してみた

今回、私が選んだのはPython(パイソン)と言う言語です。最近流行のAIなどの用途でよく使われていますので比較的新しい言語かと思っていたのですが、歴史を調べてみると最初のリリースは1991年で、今からですと27年も前になるそうです。今流行りのAI、ディープラーニングなどでよく使われています。

文法も簡単なので子ども向けの入門書も結構出ているみたいです。小学校3年になる息子の同級生がPythonでプログラムをやっているという話を聞いたので、うちでも入門書を一つ買ってみましたが、どうもMinecraftで遊ぶので精いっぱいのようです。

私も将来的にはデータ分析や、機械学習、ディープランニングのような分野にも挑戦してみたいと思っておりますが、とりあえずまずは最初にPythonの言語、環境に慣れて、自由に開発できるようになるというところを目指していきたいなと思ってます。

少しずつPythonでWebのスクレイピングや、データの加工、自然言語処理など、サンプルを参考に色々なプログラムを書いてきてますが、今までやってきた言語と大きく異なる部分としてインテントのルール化という点があります。

インデントのルール化

プログラムを書く上で書き方の揺らぎが出てしまうのは言語によってはある程度しょうがないのかなと思っていましたが、そこをルール化することで、いろいろな人が書いても同じコーディングになりというのはなかなか良いなぁと思います。

たとえば、Pythonでは、if 文というプログラムでは必ず使う条件分岐の書き方が

という感じになります。

C++では、

でもよいですし、

でもよいですし、

でも間違いではありません。

このように書く人もいれば、

というように、中かっこを改行後に書く人もいます。

こういう揺らぎが、人が書いたコードの見難さにつながる部分って確かにあると思います。それをルール化することで解消しようとしているというのは考え方として面白いと思いました。

そして行末の; が不要なところもいいですね。これが無いだけでも、なんとなくほかの言語よりもスッキリ書けるような印象です。

Pythonを仕事で使っていた友人にちょっと話を聞いてみましたがPythonのよい点として「ライブラリが充実している」「幅広い環境で使える」「情報が多い」などと言っておりました。そして、難点は・・「遅い」点だそうです。

私もまだ始めたばっかりで、人に説明できる状況では無いのですが、これまでずっとエディタで書いて、コマンドラインで実行というやり方をしていたのですが、先週、Pythonの統合開発環境のPyCharmというソフトを入れました。

統合環境のPyCharmに感動

プログラムを開発中の時っていきなりうまく動くわけではないんですね。うまく動くかどうかプログラムを書きながら少しずつ確認をしていきます。私はしばらくPHPとかJavascriptばかりしていたので、その確認のプロセスが画面に出力するしかなく、これがとても面倒でした。

ところがこのPyCharmと言う開発環境では、なんと「ブレイクポイントが使える」んです!!そして、もちろんデバッグ(ステップ実行)までできるんです。これは今までやっていたVC++の開発環境みたいで、ちょっと、いやかなり感動しました。

オレンジの丸がブレイクポイントです。デバッグを実行するとここでプログラムが停止し、メモリ上に持っている変数の値などを逐一確認することが出来ます。

ちなみにPythonとは

アイコンからしてヘビなのですが、ニシキヘビだそうです。オーストラリアにも何種類か生息しているようですね。どうでもいい話ですが。