見出し画像

Pythonを勉強してたら人類ってスゲーって思った話

9月になって少し外の空気が秋っぽくなってきましたね。
秋と言えば勉強の秋、という事で今回は勉強中のPythonについての話です。

Pythonの話と言っても、プログラムの書き方がどうとか、どんな勉強法が良いとか、そういう学習モノではありません。
Pythonに限らずですが、今更ながらプログラミング言語って人類の英知ですよね!?
ってしみじみ思ったという話です。

秋の夜長に、お暇でしたら最後までお付き合いください。



なぜ今Python?

さて何故Pythonかというと、最近会社の研修で勉強を始めたからです。

「データリテラシーを高める研修」とう事でとあるサービスが導入されたので参加してみたのですが、エクセルを使った集計や分析がアッサリ終わってしまったので、上級編らしいPythonを使ったカリキュラムに挑戦してみたわけです。

こちとら中学生の頃にBASICを投げ出して以来、まともに動くプログラムなんて書いたことがありません。
HTMLは書いたりしましたが、あれは「記述言語」であって「プログラミング言語」とは根本的に異なりますよね。
ちなみに記述言語としてはAdobeのPostScript言語が最高にスゲーって思ってるんですが、それはまた別に機会に語るとして。。。

今回はPythonについて書いていきます。


Pythonってなんぞ?

まったくもってプログラムなんて見たことも書いた事も無い!という人向けに超簡単にPythonとは何ぞや?ということを説明しますと、「数あるプログラミング言語の中でAI開発に向いてるとかで最近超注目の言語」というところでしょうか?(本職のプログラマーの皆様すいません!)

で、超文系(というか出身大学が美大なので文系すら弱い自分なんですが)から見た時に何がスゴイと感じたのかを紹介します。

①エレガントで分かりやすい構文
②オープンソースという聖者のような所業
③知恵の実とも言うべき豊富なライブラリ

一つ一つ解説していきます。


見よ、この美しい構文!

長年色々なプログラミング言語を扱ってきた人には当たり前なのかもしれませんが、Pythonの構文は見事なまでに簡素で論理的です。

古株のエンジニアの人は「Pythonは関数の定義が要らないから気持ち悪い」って言ってましたが、主語も文法も怪しい日本語しか使ってこなかった自分からすると、Pythonはシンプルで無駄がなく、しかも誤解が生まれない文章構造をしています。なんと美しい・・・

例えばこんな感じ。

print("こんにちは") 
print(1+1) 

これを実行すると以下のような結果が表示されます。

こんにちは
2

なにが凄いって?
これ初歩の英語が分かる人ならだいたい結果が想像できたと思います。
だってカッコ内の内容を出力して欲しいってことでしょ?と。

そうなんです、初歩的な英語力があれば理解できるわけです。

もう1つ注目して欲しいのは、
1行目は「こんにちは」という文字がそのまま表示されましたが、
2行目は「2」という計算結果が表示されています。

つまり、Python君は文字を表示して欲しいのか、計算結果を表示して欲しいのか、ちゃーんと理解して対応してくれるんですね。
それも「print」という同じ命令で。

うーん、シンプル。
うーん、エレガント。

ちなみにこれをBASICで書くとこうなります。

10 LET A = 1 
20 LET B = 1 
30 LET C = A + B 
40 PRINT C 
50 END 

いやいや、長いわ!回りくどいわ!
プログラミング言語の進歩を感じましたね。

Pythonのエレガントさ、アインシュタインの有名な公式に通じる美しさがありませんか?
簡素にして全、そして含意は深淵。
少し大袈裟でしょうか。。。


オープンソースってすごい!

さてお次はオープンソースについてです。
オープンソースとは、その名の通り広く一般に公開されているプログラムソースなわけですが、その根底には「良いものはみんなで使おうよ」という、なんとも有難い成人君主のような気高いオーラが流れているのです。

なんでしょうかね、この開発者の人達の圧倒的な善意!?
90年代に「フリーウェア」とか「シェアウェア」という存在に出会った時も衝撃でしたが、こんなすごい物タダで配っちゃうの!?という話です。


プログラムと言えばファミコンだってプレステだって、高いお金を払って買うわけですよ。新しく開発してもらおうとしたら1行いくらみたいな感じで莫大な開発費がかかったりするわけですよ。
それはそれで理解はできます。だって莫大な時間と労力がかかっているから。

でもオープンソースな世界では、とんでもない英知が惜しみなく公開されているわけです。さらに凄いのは、それをもっと便利にしようと世界中の人が日々新しい知恵を付け加えていっているということ。

プログラム初学者の自分からすると、びっくり仰天な世界観でした。

でもまあ、少し冷静に考えてみたら、自分だってこうしてnoteにつらつらと文章を書いて無料で公開しているわけですよね。
Pythonなんかとは比べ物にならないですが、もしかするとこれはこれで誰かの役に立つ可能性だってあるわけですし。

noteだって始めたばかりの自分には偉そうなことは言えませんが、なんかそこには共通点と言うか、同じような心持と言うか、幸福感、満足感の根源的なものがあるように思います。

人はなんのためにクリエイトするのか?
みたいな。

そしてオープンな人々は、更に便利な宝箱、ライブラリを残してくれたのです。


ライブラリという名の知恵の実

Pythonには豊富なライブラリが揃っている、という言い方をよくします。
ライブラリというのは、一連の処理をまとめたプログラムソースの塊で、これまたオープンソースで誰もが利用できるように公開されているのです。

お勉強で出てきたものを挙げるとこんなライブラリがありました。

pandas:データ分析に必要なDataFrameという道具を扱うためのライブラリ
numpy:数値演算で必要なライブラリ
matplotlib:グラフを作成する可視化ライブラリ
seaborn:グラフを作成する可視化ライブラリ(matplotlibよりも記述が簡単)
scikit-learn:機械学習のライブラリ

いや、これ普通に凄くないですか?
データ分析や数値演算はまだしも、グラフ作成からさらには機械学習まで! いやはや、先人の方たちよ、なんて太っ腹なんだ!
そしてこれらのライブラリが「import」という魔法の呪文を唱えるだけで使えるようになるのです。 もう「出てこい!ピカチュウ!!」みたいな感覚です。

演習では、これらのライブラリを使って、Jリーグの入場者数予想だとか、テレマーケティングの獲得予想だとか、株価予想といったテーマをやりました。
んー、すごい。
んー、簡単。


プログラムって人類全体の宝よね?

こうしてPythonを勉強していて改めて思ったのが、『プログラムって人類の宝だよな〜』という素朴な感慨でした。

そもそも「言語」「文字」というものは、離れた場所や次の世代に知識や知恵を伝えることができるわけですが、「プログラミング言語」は書いてある内容をコンピューターに伝えると、ものすごく複雑な処理をパパっとやらせることができるわけです。

こうした「ふるまい」さえも文字の形で残せるところが、自然言語を超えた知恵の塊だと思えました。


さらにライブラリというカタチで一連の処理をパッケージ化する発想、これも素敵ですよね。
映画「マトリックス」でヘリコプターの操作プログラムを脳にインストールすると途端に操縦できてしまう場面がありますが、あんなイメージです。

「巨大なデータを扱いたいよ」→「はいPandasがあるよ」
「集計結果をグラフにしたいよ」→「はいmatplotlibがあるよ」
「AIで未来予測がしたいよ」→「はいscikit-learnがあるよ」

一体世の中にはあとどれだけ素敵なライブラリがあるのでしょうか?


ChatGPTとPythonの勉強をするのも有効

最近ブームのChatGPTはPythonも得意です。
自分で書いたプログラムがエラーを出したときにChatGPT先生に「間違いを教えて~!」と貼り付けると、サラサラ~と間違いを指摘して修正版のプログラムを提示してくれます。

最初から「〇〇をするプログラムを書いて」と頼んでも何かは書いてくれますが、それでは勉強にならないし、そもそも書いてあることが理解できないと、どうやって動いているのかが分かりません。
まあまあ間違っていて動かないこともあるみたいですし。

自分の場合は課題を解きながら、つまずいたらChatGPTに質問してコードを修正する、という勉強に使ってます。
Eラーニングの中で人に質問することもできますが、いつ返事が返ってくるか分からないし、「こんな初歩的なこと聞いて大丈夫かな?」とか変に気を遣っちゃうので、ChatGPTの方が気楽で早くて良いですね。


今後の人類に思いを馳せる

最近はノーコード開発といって、プログラムを書かなくてもカンタンなシステムなら開発できるようになってきました。

ホームページを作成する、という作業も、昔だったらサーバを用意してOSを入れて、HTMLとJavascriptで処理を書いて、という作業が必要だったものが、noteではそんな裏側の仕組みを理解しなくてもホームページを作成して公開できてますよね?
これもある種のノーコード開発と言っても良いと思います。

またChatGPTやBardといったAIでは、「オセロゲームのプログラムをPythonで書いて」と日本語でお願いすると、スラスラ―とソースコードを出してくれます。
もちろん間違っている場合もあるので実際に動かしてみてエラーが出ないか確認が必要ですが、エラーが出たら出たで「こんなエラーが出たから修正して」と追加でお願いをすれば修正したソースコードを出してくれます。

本職のエンジニアの方たちも劇的に開発の仕方が変わった、という記事を書いているようなので、本当に今後はシステム開発も自然言語で指示をしながらできちゃうのかもしれませんよね。


まとめ

今回は、「言語としてのPythonの秀逸さ」「多くの先人が積み上げてきた英知の結集」という話をしました。
もちろんPythonに限らず、あらゆる言語が、もっと言うと言語以外の全ての文化が過去の人類の積み重ねでできているんですよね。
そう考えると、21世紀に生きる我々はなんという壮大な英知の結集を日々当たり前の様に享受しているんだろうという事に気づかされます。
ありきたりですが、生きててよかった笑

これで秋の夜長のPython談義は終了です。


おまけ

Pythonの名前の由来を調べて見たら、なんと『空飛ぶモンティ・パイソン』からきているとか!
あー、もう余計にPythonが好きになっちゃいました。
空飛ぶモンティ・パイソンと言えば・・・・・
いや、この話は長くなるのでまた別の機会にしましょう。


ここまで読んでいただき、ありがとうございました。
またお時間ある時にでも立ち寄っていただけたら幸いです。

この記事が参加している募集

AIとやってみた

この記事が気に入ったらサポートをしてみませんか?