GNU/Linux >> Linux の 問題 >  >> Linux

Pythonとは:クロスプラットフォームプログラミング言語の紹介

WalkerCahallによるPythonイラスト

ターゲットオーディエンス

この記事は、読者が少なくともプログラミング言語に基本的な知識があることを前提としています。

はじめに

コンピュータサイエンス入門コースは、Pythonについての言及がなければ不完全です。プログラミング言語のシーンでは比較的新しいように見えるかもしれませんが、1990年代初頭から使用されています。 Google、Facebook、さらにはNASAやパサデナのジェット推進研究所を含む多数の大企業がPythonを利用している組織の1つです。

Pythonのオリジンストーリー

Pythonは、1980年代後半にGuido van Rossumによって開発され、ABCプログラミング言語の改善として彼が見たものを取り入れています。彼は英国のお笑いグループであるモンティパイソンの大ファンであるため、グループのメンバーの1人であるエリックアイドルに敬意を表して、統合開発環境(IDE)をIDLEと呼んでも、この言語を「Python」と名付けました。 。

Van Rossumは、今でもこの言語の主要な著者および寄稿者の1人であり、PythonコミュニティからBDFL(Benevolent Dictator For Life)の称号を授与されています。

Pythonの特徴

Pythonはクロスプラットフォーム言語です。Macintoshコンピューターで作成されたPythonプログラムはLinuxシステムで実行され、その逆も同様です。 WindowsマシンにPythonインタープリターがインストールされている限り、PythonプログラムはWindowsコンピューターで実行できます(他のほとんどのオペレーティングシステムにはPythonがプリインストールされています)。 py2exeというアプリケーション ユーザーがPythonプログラムからWindowsバイナリを作成して、別のシステムで開発されたPythonプログラムをPythonがインストールされていないWindowsマシンで実行できるようにするものが存在します。

Pythonは、空白とインデントの使用において他の多くの言語とは異なります。他の多くの言語はセミコロンなどの行末を使用してプログラミングステートメントを終了しますが、Pythonにはそのような終了はありません。また、forなどのコードブロックも含まれません。 ループとif 中括弧内のステートメント。むしろ、Pythonはインデントを使用してコードブロックを定義します。連続する各インデントは、連続するブロックを定義します。たとえば、次のコードを調べます。

if i == 1:
    print "i = 1"
    for x in range(10):
        print "x = ", x
else:
    print "i does not equal 1"

Pythonは4行目を解釈します(print "x= ", xforの一部になる ループ– ifの一部ではなく ステートメント–インデントのレベルのため。インデントは、関数とクラスの定義も示します。

プログラミング言語またはスクリプト言語?

愛好家と批判者の間で、よくある質問が出てきます。Pythonはスクリプト言語ですか、それともプログラミング言語ですか。それに答える前に、2つを区別することの意味を確認しましょう。

プログラミング言語

プログラミング言語は、コンパイラと呼ばれる特別なプログラムによってコンパイルされます。 CやC++のような一般的な言語は、コンパイラーによって、コンピューターが読み取って処理できるマシンコード(人間には理解できない)に翻訳する必要があります。 Cでプログラムを作成してコンパイルすると、結果の.o ファイルはコンピューターが読み取るものです。コンパイルされたコードは通常、より高速なコードになり、コンパイルは1回だけ実行する必要があります(コードを変更しない限り)。一部のコンパイラは基本的な最適化を自動的に実行し、他のコンパイラには、複数のプロセッサ、さらには並列処理のためにコードを最適化するために使用できるいくつかのフラグがあります。

プログラミング言語が生成するコンパイル済みコードは、ほとんどの場合、それが記述されているハードウェア上で実行されます。 C ++で記述およびコンパイルされたプログラムは、コンパイルされたプロセッサによって直接実行されます。これによりコードの実行速度が向上しますが、コンパイル済みプログラムをプロセッサおよびマシンに依存させるという望ましくない影響もあります。特定のコンピューターでコンパイルされたコードは、ハードウェアのわずかな違いにより、別のほぼ同一のマシンで実行されない場合があります。

スクリプト言語

一方、スクリプト言語は、コンパイラが機械語ファイルを作成しなくても、実行するたびに読み取られて解釈されます。最適化は行われないため、ずさんなコードを書くと、ずさんな結果が得られ、プログラムの速度が低下する可能性があります。

スクリプト言語は、ホストプロセッサ上で直接実行されるのではなく、別のプログラムの「内部」でも実行されます。たとえば、PHPはPHPスクリプトエンジン内で実行され、bashスクリプトはbashシェル内で実行されます。 (この規則の例外はJavaです。Javaはプログラミング言語と見なされますが、Java仮想マシン(JVM)内で実行されます。)

評決

では、Pythonとは何ですか? Pythonはプログラミング言語と呼ばれることがよくありますが、技術的にはスクリプト言語です。そのコードはコンパイラを使用せず、Pythonシェルを実行するほぼすべてのデバイスで実行できます。また、プログラミング言語よりもスクリプト言語との類似点がいくつかあります。

スクリプト言語は、構文と形式に関しては、多くの場合、それほど厳密ではありません。空白はより寛容に扱われます(前述のインデントを除く)。その結果、プログラマーは、誤って配置されたセミコロンや欠落している中括弧を見つけるためにコードをデバッグするのに何時間も費やす必要がありません。多くのPythonプログラマーにとって、コードが人間によって簡単に読み取れ、必要に応じてデバッグしやすくなることは誇りです。

プログラミング言語(C ++など)は構文が複雑で習得が難しい傾向がありますが、スクリプト言語はそれほど威圧的ではありません。 C ++の「Hello、world」プログラムについて考えてみましょう。

#include <iostream>;  
using namespace std;  
int main(){  
      cout << "Hello, world!" << endl;  
      return 0;  
}


これで、Pythonの同じプログラム:

print "Hello, world!"


コンパイルされた言語ではないため、一部のプログラミング純粋主義者はPythonを軽蔑し、Pythonは遅く、効率が低下する可能性があると述べています。ただし、プロセッサの速度とアーキテクチャが向上するにつれて、コンパイルされた言語とスクリプト化された言語の速度の差はそれほど大きくなりません。深刻なパフォーマンスが問題となる場合にのみ、2つの違いが明らかになる可能性があります。

Pythonバージョンの分裂

Python環境の初心者は、言語のバージョン2とバージョン3の違いに気づき疑問に思うかもしれません。ほとんどのソフトウェアリリースとは異なり、2つのバージョンは同時に別々に存在し、相互に完全に互換性があるわけではありません。

バージョン3.0は2008年12月にリリースされ、主にいくつかのタスクを実行するいくつかの重複した方法を削除することにより、言語の特定の欠陥を修正するように設計されました。ただし、バージョン2との完全な下位互換性はなく、2.7で記述されたプログラムは、バージョン3に移植すると破損する可能性があります。短期間、その開発はバージョン2と並行していましたが、その並行開発は2011年2月にバージョン3.2で終了しました。ツール移植性と変換を少し簡単にするために存在します。

プログラマーがPythonで作業を開始するとき、使用するバージョンを決定する必要があります。この記事の執筆時点で、最も一般的に使用されているバージョンは2.7です。これは、2.xの最終バージョンでもあります。今後のリリースはすべてバージョン3.x用になります。そのため、バージョン2.7は正式に廃止されましたが、ライブラリの豊富なコレクションで人気があります。バージョン3.xの採用と使用率が上がるまで(そしてコミュニティがこのバージョンのライブラリサポートを開発するまで)、この分裂は続く可能性があります。

結論

Pythonは非常に有能な言語であり、多くのソフトウェア開発者は学ぶ価値があると感じています。その移植性と使いやすさ、そして新しいプログラマーへのアクセスのしやすさは、多くのプログラミングの問題やアプリケーションに対する非常に魅力的なソリューションになっています。

より興味深い記事やハウツー(ハウツー:Python3やCentOS6.7での仮想環境(venv)の作成など)については、必ずブログにアクセスしてください。

Atlantic.Net

Altantic.Netは、多くのVPSホスティング、マネージドクラウドホスティング、ワンクリックアプリケーションクラウドインストール、およびその他の多くのホスティングソリューションを提供します。


Linux
  1. Python2コードをPython3に変換する

  2. プログラミング言語の学習を開始する方法

  3. ポータブルシェルプログラミングのリソース?

  1. とは :-!! Cコードで?

  2. Python で C コードを使用できますか?

  3. デフォルトで、ランダムな Linux サーバーで想定できるプログラミング言語は何ですか?

  1. Cプログラミング言語-はじめに

  2. まったくの初心者が始めるのに最適なプログラミング言語は?

  3. シェルスクリプトはプログラミング言語ですか?