構文として空白文字に悩まされる以外は、私は嫌いではありません。Pythonに魅了されません。
Perlの詩に感謝し、bash&kornとShebang gnuplot
で美しいWebサービスをプログラミングしました。私はtroff
でドキュメントを書き、REXXは気にしません。 tclはもう何年も前に有用なものは見つかりませんでしたPythonの大きな悪臭は何ですか?私はこれを採用した求人情報と多くの候補者を履歴書上の賞品とトロフィーとして見ています。
たぶん、個人的にはこれで売ろうとしているのですが、理由がわかりません。
Pythonは、合理的にクリーンな構文、包括的な標準ライブラリ、優れたインクルードおよびサードパーティのドキュメント、広範囲にわたる展開、および「スクリプト」スタイルの言語の即時性(つまり、明示的なコンパイル手順がない)を備えた適切に設計された言語です。
Pythonは、これまでにコードを記述した中で最も自然なプログラミング言語であることがわかりました。Pythonの前後、および多かれ少なかれ多くの言語でコーディングしました必要なことを行うには、言語と戦わなければなりません。Pythonこの闘争は大幅に軽減されます。エリックSレイモンドはそれを言いましたはるかになぜPythonなのか?
関連する点として、Pythonは急速に進化している間もそのクリーンさを維持します。これまで扱ってきたほとんどの言語では、新しい言語機能の導入により多くのしわが生じます。しかしPythonでは、主要言語でも機能(デコレータが思い浮かぶ)は、醜いハックのように感じることなく、常に追加されます。
これが皮肉に聞こえないことを願っていますが、IMO PythonはJava、C#、Objective-Cとまったく同じ理由で非常に人気があります。言語自体に素晴らしいものがあるわけではありませんが、なぜなら、彼らはそれぞれ、誇大広告、大量の広告、および多くのライブラリーと、好みの言語のサポートを生み出すことができる巨大なスポンサーを持っているからです。
私の経験では、プログラミングに真の喜びを感じる人は、学校や大学で学んだことよりも自分に合った言語を求めることがよくあります。基本的に、これはそれらがデフォルトのPHP/Visual Basic/C++/Java/C#からPythonなどのよりエキゾチックな(ビジネス/キャリアワイズ)に)移動することを意味します、Ruby、Haskell、さらにはPerl(それは巨大なハック値とあいまいさのため)。
誤解しないでくださいvery仕事とコードに大きな誇りと喜びを持っている経験豊富なC#/ VB.netプログラマーがいます(StackOverflowの連中はとても良い例です)。 pythonプログラマーになるのは、それが彼らが学校で教えたことだからです;それはあなた自身の決定でなければなりません。
Jeff Atwoordがこれについてブログに投稿したと思いますが、見つかりません。見つかった場合は、このコメントを更新します。
本当にクールで驚くべきコードゴルフオフを生み出すRubyと比較して、Pythonは、「物事を行うための明白な方法は1つ-できれば1つだけ-あるべきである、 "慣用的なPython方法を意味します。これはRubyに比べて大きな利点であることがわかりました。
PythonエリックS.レイモンドが説明しているのと同じ理由で、Pythonでプログラムを書く行為は、概念的に私の頭の中でコードを設計しています。
良いことを学ぶPythonプログラマーは私を大いにより良いC#プログラマーにしました。これにより、LINQをより簡単に理解できるようになりました。Dictionary<string, Func<T>>
のような型を採用したことがなかったかもしれません、またはPythonでクラスとジェネレータを使用していなかった場合は、yield return
を使用して快適になりました。Pythonデコレータを使用したので、AOPははるかに理解しやすくなりました。リストは続きます。
まず、Pythonでの強制インデントのような些細な言語の癖は、言語自体が強力に表現力があり、有用である場合、ほとんど問題になりません。私はそれが原因で最初は背を向けられましたが、すぐにそれを見渡すことを学び、今ではそれを邪魔だとさえ感じません。なぜなら、言語は私にとって非常に扱いやすいからです。Perlの変数の印のように、それは無害な言語の癖であり、言語に慣れている人は誰もそれを気にしないでしょう。
多くの人がPythonをすばらしいと思う理由を理解するには、その言語を試してみてください。理由はほとんどPerlと同じです。私はPythonの構文(たとえば、リスト内包表記、OOP構文など)が好きだと思いますが、それは本当に主観的であり、意見が異なる場合があります。大きなプロジェクトにはPythonを好むが、小さなスクリプトには引き続きPerlを使用する。
そしてthatがあなたの質問への答えです。 PythonをPerl、bash、tclと比較します。それはそれが公正な比較ではないということです。 bashのような言語は、一般的なタスクを自動化する小さなスクリプトを書くために設計されました。一部の人々は、コードが十分に大きくなると、Perlも扱いにくくなると考えています(適切に記述されたPerlはそうではありませんが、適切に記述されたコードは、大規模なプロジェクトでは手に入れるのが困難です)。 IMHO Pythonは、他の「スクリプト」言語とは異なり、小さなプロジェクトだけでなく、大きなプロジェクトにも非常によく対応します。 Rubyも同じ品質だと思います。
慈悲深い独裁者は彼の良いスタイルの考え[1]、彼の良いプログラミングの考え、彼のプログラミング方法の考えは私を定期的に苛立たせるべきだという哲学。ヴァンロッサムのようには思いません。しかし、彼の言葉は非ヴァンロッサムの考えを表現する試みに抵抗します。彼の考え方は機能します本当に多くの(ほとんどの)プログラマーに適しています。しかし、私は彼のプログラミング方法のモデルに適合しないようです。
そのため、Perlは優れた言語だと思います。
[1] reduce
の削除に関する彼のブログを参照してください。
2004年以降、Python=を使用して開発しました:
PythonスクリプトはWindows、Linux、Mac間でほとんど変更を加えずに移植できるため、2004年にPythonが選択の言語でした。
OSカーネルを書きたくない場合を除いて、Pythonが唯一必要なプログラミング言語です。インタラクティブな使用、ランダムなハック、システム管理、科学に適しています。アプリケーション、オペレーティングシステムツール、Webアプリケーション、GUIアプリケーション、埋め込みなどです。移植性があり、無料で、広く使用されています。他のプログラミング言語では実際にこれらのすべてのフィールドをカバーしていません。人にとって非常に優れた戦略的投資であり、会社。
エレガントで習得がとても簡単で、基本的なタイプ(特にリスト)に慣れると、生産性に制限がなくなります。アルゴリズムのプロトタイピングや、最終的にはマシンに直接置くことができる疑似コードのような言語でそれらを書くのに最適であり、反復的なジョブを実行したり、ファイルに迷惑な操作を実行したりするためのスクリプト言語として本当に優れています。私はそれをサブプロセスが互いに通信するための接着剤言語として使用します。いくつかの簡単なタスクではbashほど強力ではありませんが、コードを1行以上実行する必要がある場合ははるかに簡単です。
そして、それは関数とサブルーチンを区別しません、あなたは私の意味を知っています。
私にとってPythonは親愛なる友人でした。それはまともなスクリプトとプロトタイピング言語です。私が考えることができる主なものは次のとおりです:
多くのPython愛好家はCの環境から切り替えたばかりで、"Hello "+ "World"
は"Hello World"
のようなものに感銘を受けたようです。ですので、これは最初のスクリプト言語ではありません。難解な/特定のタグを集めて、そして乾いた森の火のように殉教した人々の間で広がっていきました。
私が少し疲れなくなったので、質問に再度取り組みます。
Pythonは、科学的なプログラミングタスクに特に適している言語です。これは、その人気が非常に高まっている場所の1つです。いくつかの理由:
プログラミング言語のすべてではなく、まともな言語ではありませんが、「まあ、問題があれば解決できるツールがあります」というまともな言語であるため、現在人気を得ているのはおそらくこのためです。
Pythonは、利用可能なフレームワーク(Django、Zopeなど)と簡単にインポートできるライブラリの両方で非常に「webby」言語であり、多くのWeb関数をカバーしています。
HTML、CSS + JSスキルセット(ここ数年で新しいプログラマーが大量に発生することもあります)から移行するWeb開発者にとって、これは非常に魅力的な提案です(同上Ruby)。
また、GoogleはMicrosoftではありません...
主な理由の1つは、Googleの90%がPythonから作られていることです。
ただし、Pythonは、学習も簡単で強力なプログラミング言語でもあります。効率的な高レベルのデータ構造と、オブジェクト指向プログラミングへのシンプルで効果的なアプローチを備えています。Pythonのエレガントな構文と動的型付け、その解釈された性質と合わせて、ほとんどのプラットフォームの多くの領域でスクリプト作成と迅速なアプリケーション開発に理想的な言語にします。
Pythonインタプリタと広範な標準ライブラリは、Python Webサイト、 http: //www.python.org/ 、そして自由に配布することができます。同じサイトには、多くの無料のサードパーティの配布とポインタへのポインタも含まれていますPythonモジュール、プログラム、ツール、および追加のドキュメンテーション。
Pythonインタプリタは、CまたはC++(またはCから呼び出し可能な他の言語)で実装された新しい関数とデータ型で簡単に拡張できます。Pythonも、カスタマイズ可能なアプリケーションの拡張言語。