【Python】プログラミング初学者にPythonを激推しする理由

ワイ「僕の大好きなPythonを馬鹿にする記事が多すぎるので記事書く!🤓」

前提

「プログラミングについて全く何も知らないけど、とりあえず始めたいと思ってる人におすすめする」という前提にします。

「プログラミングではなくて、コンピュータサイエンスを学びたいと思っている人におすすめする」という前提であればまた話が変わってきます。この前提だと個人的にはCです。

はい。ということでPythonのメリットを書きます。

おすすめな理由

何かと手短

初学者が最も欲しているものは「プログラムを書いて、それが動作すること」です。動く喜びが重要なんです。 なので、Hello Worldをするだけなのに、おまじないとか魔法とか言われるものが出てくるとちょっと辛いわけですね。

それに実行するときにコンパイルだのトランスパイルだのがあると辛いんです。初学者はそこで躓いてしまうことも多いわけですから。 Pythonを使えばコードもサクッとかけて、実行も簡単なんです。

# 書く!
print('Hello World')

# 実行!
python3 main.py

逆にC言語を見てみましょう。 C言語は難解です

// 書く!
#include <stdio.h>

int main(void){
    printf("Hello, World!\n");
    return 0;
}

// コンパイル!
gcc main.c

// 実行!
 ./a.out

🙋🏻‍♀️「先生! この#include <stdio.h>ってなんです? int mainってなんです? voidってなんです? この文末の\nってなんですか?return 0ってなかったらどうなるんですか?コンパイルってなんですか?」
👨🏻‍🏫「😵‍💫💫✨」

それにWindows勢は大変です。

🙋🏻‍♀️「先生!コードが動かせないんですがどうしたらいいですか?」
👨🏻‍🏫「どれどれ.... あ、Windowsか... 😿」

手元の環境で動かそうとするとMinGWやWSLなりが必要で大変ですよね。簡単なコードならオンラインエディタなりPlaygroudなりを使えばいいのですがちょっと手の込んだことをしようとするとすぐ使い物にならなくなります。

他言語でもこういう事例は結構多く、初心者が学習する上での障壁になりやすいです。

無駄な手間がなければそれだけ教える量も少なくてすむのでプログラミングの教育にPythonが用いられるのは妥当だと思います。

対応してる領域が広い

プログラミング初学者はプログラミングで何が出来るのか、自分が何をしたいのかよくわかっていない人がかなり多いです。

Pythonプログラミング言語の中でも対応している領域が相当広く、Web開発・AI・機械学習・画像認識・IoT開発・デスクトップアプリ開発・データサイエンス・ブロックチェーンなどなど何でもできます。 そのため何かしたいことがなく、なんとなくでPythonを選んだ人間でもその後の選択肢が豊富で、基本困ることがありません。

競プロやCTF、Kaggleなどのプログラミングを用いる競技に興味が湧いた場合も問題ありません。

領域だけでで言えばC言語も十分広いです。そもそもC言語PHPPythonなど他の言語を作るために作られているのでそれらの言語でできることは当然できます。 ただし、C言語は目的を果たすために必要になる労力が多いく、目的をサクッと果たせないんですね。プログラミングはあくまで道具なのでそこら辺は考えて扱う必要があります。

なので対応範囲とそれらを触るために必要な労力が少ないPythonが初学者には優れていると思います。

大規模開発もいける

Pythonは大規模開発向いてないのよ...」って言う人定期的にいません? Pythonが使われている大規模なアプリケーション結構あると思うんですが...

サクッと調べただけでもYouTubeRedditDropBoxInstagramAmazon...などなど... ここまで大規模なアプリケーションだと流石にPythonだけってわけはないと思うので、バックエンドの一部だったりデータサイエンスで活用したりしてると思いますが、それでも誰もが知るようなアプリでもPythonが採用されてるという事実には変わりないです。

それにここまで大規模なアプリだと一部で使われていると言ってもかなりのスケールになってると思われます。こういった事実をもってしても「大規模開発に向いてない」と言うんですかね?

確かにPythonには結構クセがあって何かと他言語からだと理解しがたい部分もあると思います。 そういう部分を見て「大規模開発に向いてない」って言ってるんだと思いますが、結局そこら辺は書く人の技量だったり、設計とかに依存するんだろうなと思います。 逆に新しい言語使ってても設計とかがうまくできていないとカスに見えると思います。

余談ですが、前に

学生「Pythonは大規模開発向いてないと聞きます...」
Apple社員「え?そんなことないよww」

という場面に前出くわしました。

結局この話から何が言いたいかというと、大規模開発にも使えるので伸びしろ満載ということですね。初学者がPythonでプログラミングに入門してそのまま将来GAFAMでPythonを書く仕事をするみたいなのも全然あると思います。(実際にいそう) また、身近なアプリがPythonで書かれているとモチベも上がると思います。

まとめ

他にも理由はいっぱいあるんですが、文字を書くのがつかれたので一旦ここまでをおすすめな理由にしたいと思います。