pythonのすゝめ

2018年10月6日

スポンサードリンク

Pythonってスゲーんだぜ!

\(\) こんにちは、pythonを勉強し始めて、だいたい半年ほど経ちました。

そんな折、Pythonってやっぱ凄いんだなぁと感じる節が数多くあったので、それをいくつかご紹介します。

 

スポンサードリンク

1.めちゃめちゃ人気!!

pythonは歴史は浅いものの、昔からあるコンパイル言語のC言語やアプリ開発に特化したJavaに負けず劣らず、なんなら勝っちゃってるんじゃないかというぐらいの人気を誇っています。

 

1.1人気の理由その1:コードがすごい簡単

C言語とかを経験している人がPythonを勉強し始めると、その文法の簡単さに涙をこぼすことでしょう。

俺の今までのC言語ライフはなんだったのか・・・と

そのぐらい衝撃を与える存在なんです、pyhtonというものは。

 

例えるならば、C言語は12+32=10+30+2+2=44というぐらい回りくどく、Pythonは12+32=44というぐらい簡単です。

伝わらないですか。そうですかそうですか。とにかくやってみればわかります。

なんて単純なんだ・・・と。

1.2人気の理由その2:プログラムを逐一確認できる。

Pythonをやるまでは、C言語を大学の授業やらで学んでいたのですが、そのコードの実行までの大変さたるや、

いまになってもC言語の#include<stdio.h>を見るたびに、そのさきに待ち受けているエラーの山に頭が狂いそうになります。

 

プログラミングを学んでいくうちに、だんだんとプログラムを書いていく量が増えて行きます。

そんな時に、今自分が書いているコードは実際に動くんだろうか・・・という不安が常につきまといます。

この部分だけでも良いから、ちゃんと思った通りに実行されるのか確かめたい!という気持ちになります。

しかし、これがC言語ともなると、一度全てコードを書き終えてから、実行できるファイルにコンパイルするまで、ちゃんとできてるのか確かめることができません。

おまけに、できていなかったら、たくさんのエラーコードを吐き出されて、自分が今まで書いてきたコードと再び睨めっこしなければなりません。

プログラミング作業の8割はこのエラー処理と言っても過言ではないぐらいエラーに悩まされます。それらを全て解決して初めてプログラムが実行されるので、コードが走った時の喜びはひとしおです。

 

しかし、そのような労力を大幅に削減させてくれる機能をPythonは有しています。

PythonはC言語などと違い、インタプリタ言語です。対してC言語はコンパイル言語と呼ばれています。

?????と思う方も多いかと思いますが、簡単にいえば、インタプリタ言語は原料を加工し出荷するところまでしてくれますが、コンパイラ言語は原料を加工するところまでしかできず、出荷はこっちでやらなければいけません。

たったこれだけの違いですが、この違いは非常に大きいです。

 

なぜなら、インタプリタ言語であるPythonなら、この一部のコードが実際に機能しているのか確かめたいなーという時に、パッと実行することができます。

簡単に言えば、高度な計算機が手軽に使えるということです。

少し例をあげましょう、Python環境を構築した上で、Windowsならばコマンドプロンプトを、MacOSならターミナルを開いて『python』と打ち込むと、『>>> 』という表示に変わります。

これで高度な計算機ができました。

以下に少し遊んでみたものを乗せておきます。

 

まぁ俗にいう、世界で最も実行されているプログラム『HELLO WORLD』ですね。

よく皮肉として、プログラミングがなかなか身につかない人に対して、お前は一生世界に挨拶してろ。という決め台詞がありますね。(自戒)

 

このように、Pythonだと、コードを書いてる途中で本当にこれであってるのか?という時に簡単に確かめることができるのです。

これは、開発者にとってとてもアドバンテージになることはいうまでもありません。

 

Python利用者とライブラリが多い

2.1 利用者が多いことの利点

何事も、初心者のうちは独学で学んでいくのにはある程度の限界を感じてしまいます。

そんな時に、世界中のベテランたちに救いを求めたくなりますよね。Pythonは、今となっては利用者が増えたことにより、多くのベテランが増えました。

そのお陰で、初学者にとっては、とても学びやすい環境が整っているともいえ、速習も可能になるとも言えます。

また、ここがすごくキモなのですが、Pythonはコードが単純すぎるが故に、初学者でもベテランでも書いてるコードの難解さにさほどの差異は現れません。

単純すぎるため、もうそう書かざるを得ないということです。これがどれほど初学者にとって助かるかはいうまでもありません。

 

C言語ともなると、その人なりの書き方や癖というものが如実に現れ、初学者がベテランのコードを見ると、とても簡潔に書かれているもののどうしてそうなるんだ?という疑問しか持てず理解が1ミリも進まないです。いや、マジで。

 

2.2 ライブラリが豊富ってどういうこと?

ライブラリと聞いてピンとこない人は結構いるかと思います。

簡単に言えば、パッケージです。わざわざ難しいコードを書かなくても、これを使えば、簡単なコードで書けるよ。というものです。
具体例をあげましょう。

\(\)

指数関数:$$y = \exp^x$$

を使いたいとき、もちろんそのままでは$$\exp^x$$なんてコードで書き表せませんよね。

 

科学計算が得意な人ならば$$\exp^x = \sum^{\infty}_{n=0}\frac{xⁿ}{n!}$$で表せられるので、

近似値を求めてその値を使えない訳でもないですが、プログラムがやや煩雑になってしまうのは避けられません。

 

そんな中、numpyというパッケージがPythonには用意されており、先ほどの指数関数の式は、y = numpy.exp(x) で直感的な数式で表すことができるんです。

まぁ。この手のライブラリはC言語やその他のプログラミング言語にも通常備わっているので、そんな大層なものでもないですが、Pythonには科学計算のみならず、ファイル処理関数、webスクレイピング、機械学習深層学習、ファイナンス、グラフ描画に至るまで、数多くのことができるライブラリが備わっていて、文字通り本当になんでもできます。

 

Pythonが人工知能開発で人気の理由も納得です。

 

スポンサードリンク

3.環境構築がめちゃくちゃ簡単!!!

自分が初めてプログラミングを学んだのは、大学一回生の頃で、C言語でした。大学の授業では、もうすでにC言語を実行できる環境が整っていたのですが、自分のノートパソコンでもC言語を実行できるようにしたと思い、開発環境を整えようとしました。

しかし、当時はプログラミング初心者どころか、パソコン初心者で、ダウンロードとインストールの違いもわからない、ディレクトリってなに?PATHってなに?っていう状態で、ググりにググり倒して5時間苦戦してやっとC言語をコンパイルできる環境を構築できました。

それ以来、環境構築と聞くと頭が痛くなります。

 

しかし、そんな難しい開発環境構築を、Pythonなら一瞬でできてしまうのです!!そう!本当に一瞬です!!!!本当にこれでいいの・・・?と思ってしまうほどです。

やり方は簡単、ググると、pyenvだのbrew install ホニャホニャだの玄人どもが知識をひけらかしていますが、我々初心者は『anaconda3』

これをググって、インストールすれば一発でPythonが使えるようになります。難しいPATHの設定なんかも全て自動でやってくれます。

 

なんて簡単なんだ!感動しますよね!!!

この環境構築の簡単さも、Python利用者が多い秘訣なのかもしれません。

 

Python唯一の欠点

ここまで、Pythonを褒めちぎってきましたが、個人的に唯一感じてしまう欠点は、遅さです。

Pythonはインタプリタ言語と言いましたが、このコードを加工して実行までしてくれるのは、開発者側からすると助かるには助かるのですが、なに分今までこっちがやってきた実行部分もやらせる訳ですから、当然処理速度も結構落ちます。

普通に学んでいく分には、それほど遅さというものは感じないのですが、機械学習などのプログラムを組み始めると、その遅さが際立ってきます。

そこがPython唯一の欠点と言えましょう。

 

対して、C言語やFortranなどは、大規模科学計算に特化したプログラミング言語で計算処理速度が他のどのプログラミング言語よりも段違いで早いので、今でも科学者の間ではC言語やFortranはメジャーな言語です。

おかげさまで、私の研究内容もFortranを用いた大規模なシミュレーションとなってしまった訳です。トホホ…

 

最後に

Pythonは、計算速度こそは遅いものの、様々な分野に精通したパッケージが豊富に揃っていることからも、Python言語を用いた開発の需要はこれからどんどん増えていくことは間違い無いでしょう、

今から始めてもそう遅くは無いので、何か挑戦したいものがあるのなら、Pythonを使うことを強くお勧めします。

Pythonにはそれだけ豊富な道具が揃っているので、きっとあなたのお眼鏡に叶うパフォーマンスを見せてくれるでしょう。。。

ではでは

 

スポンサードリンク