##背景
"Guido van Rossum"さんは1989年のクリスマス前後に暇つぶしでpythonを作りました。
現在、全世界で約600種類のプログラム言語があり、流行っているのは約20種類前後です。もしTIOBEプログラミングランキングをご存知であれば、各言語の人気度が分かると思います。下図は最近10年間の良く使われるプログラミング言語の変化図です。
各プログラミング言語には独自な特性があります。例えば、計算速度を追求し、ハードの性能を十分に発揮するにはC言語が良く使われます。
ソフトを開発するとき、全てのコードを自分で書くよりも既存のモジュール等を利用すると開発速度が大幅に早まります。例えば、emailのクライアントを作るために全て自分で開発した場合、1年間、2年間以上かかります。普通の開発は既存ライブラリ等を利用し、STMTPモジュール、GUIモジュール等を利用して2週間程度で開発出来ます。
Pythonは標準モジュール以外、世界中の開発者がネット、ファイル、GUI、データベース等大量なモジュールを提供しています。「batteries included」と言われています。自分で書く必要はなく、直接使えば良いです。もちろん、自分で書いたモジュールを他人に提供することも出来ます。
多くの大手ホームページはPythonで作成されています。例えば、YouTube,Instagram,Google,Yahoo,NaSAでPythonが使われています。
##Pythonはどんな開発を向いているか?
まず、ネットワーク関係です、ホームページ、サーバサービス等。
次は、一般事務用のツール等。管理システムのスクリプト開発等。
##Pythonのデメリットは?
1番は計算速度が遅いです。C言語と比べると、実行時は一行づつCPUに分かる言語に翻訳しているので、相当な時間がかかります。C言語は実行する前に、既にCPUに分かる言語に翻訳(コンパイルと言う)しているので早いです。しかし、普通のタスクでは、そこまでの計算速度は必要ないです。例えば、emailの処理ソフトで、C言語は0.001秒、Pythonは0.1秒、100倍の差ですが、ネット等の通信で1秒ぐらいかかるかもしれません。そうなると、1.001秒と1.1秒の差はホントに重要でしょうか? その計算速度の差は無視できるでしょう。
2番はソースコードは暗号化できないため、秘密性がありません。C言語はコンパイルして、Windows用のXXX.exeファイルとして配布できます。コンパイルされたXXX.exeファイルからソースコードに戻すのは不可能です。Pythonは、ソースコードのままで配布されるので秘密性はありません。幸い、単純なソフトを売る時代がもうすぐなくなります。新しい商業モデルは、ネットワークを通じてサービスを販売する時代が流行します。しかも、オップンソースの発展もどんどん進んでいます。ソースコードを公開しない会社は殆どソースコードの価値は高くなく、公開すると商品になりません。
##Pythonは何ですか?
Pythonはプログラム開発用言語。世の中にプログラム開発用言語は沢山あります。例えば、非常に難しいC言語、流行っているJava、初心者向けのBasic、Web開発のJavaScript等。
まず、プログラムの基本知識を言います。全てのプログラム開発は、PCに仕事をさせる目的です。例えば、文書を書く、ネットでショッピング等、ただPCはCPUに分かる「言語」しか対応できない。なので、全てのプログラム開発言語は、CPUに分かる「言語」に翻訳する必要がある。そこで、同じ仕事をPCにさせるため、違い開発言語の書くコード数は違います、大きな差があります。
例えば、同じタスクを実現する為、C言語は1000行のコードが必要、Javaは100行でできる、Pythonはただ20行で出来るかもしれません。
ですので、Pythonは相当な高級言語となります。
なんでコード行数が少なくで出来るの?計算速度を犠牲したためです。C言語は1秒で、Javaは2秒、Pythonは10秒必要かもしれません。
そうすると、開発言語は高級になるほど、簡単になりますか?普通に言えば、そうです。ただ、非常に抽象的な計算の中に、高級なPythonでも非常に難しいです。高級≠簡単となります。
しかし、初心者と普通なタスクに対して、Pythonは非常に簡単で使いやすい言語です。Googleでも非常に幅広く使われているので、できたら使える場面はない等の心配は必要ありません。
##Pythonで何ができるの?
普通の日常タスク(ファイルのミラーリング、アラーム設定等)、ホームページ作成(YouTube等)、ネットゲーム等、いろいろできます。
Pythonの出来ない事も当然あります。OSの作成はC言語しかできない;スマーホappはSwift/Objective-C(iPhone)とJava(Android)等しかできる;3DゲームなどはC或いはC++の方が良いかもしれません。
目次 非IT業種のITメモ
参考:廖雪峰的官方网站、「初めてのPython 第3版」