web-dev-qa-db-ja.com

言語設計:PythonやCoffeeScriptなどの言語は本当に理解しやすいですか?

http://ryanflorence.com/2011/case-against-coffeescript/の "Verbally Readable!== Quicker Comprehension"引数 は本当に強力で興味深いです。私と他の人はこれに反対する証拠に非常に興味があると確信しています。これには明確な証拠があり、私はそれを信じています。人は自然に単語ではなく画像で考えるので、英語やフランス語など、人間の言語に似ていない言語を設計する必要があります。

「読みやすい」という方が速い理解。ウィキペディアのほとんどの記事は、長く、退屈で、乾燥していて、だらだらしていて、非常に冗長なので、読めません。ウィキペディアは大量の情報を文書化しているため、より実用的で有用で関連性のある情報を含むサイトと比較した場合、特に役立ちません。 PythonやCoffeScriptのような言語は、英語の構文に近いという点で「言葉で読むことができます」。最初に、主にPythonでプログラミングしたので、これが本当に良いことだとは思いません。

2つ目の興味深い議論は、CoffeeScriptは仲介者であり、2つの目的の間のステップであるため、バグの可能性が高まる可能性があるということです。

CoffeeScriptには他にも実用的な利点がありますが、この質問は特に、言語の「読みやすさ」の反例に対するサポートを示す証拠を要求します。

6
kittensatplay

JavaScriptとCoffeScriptの関係に関しては、この記事にポイントがあると思います。

私はJavaScriptを非常に読みやすいと個人的に感じており、構文の別の層を上に貼り付ける意味がわかりません。

私はJava/Groovyでも同様の経験があります。Groovyは素晴らしいです。非常に表現力があり、Javaに比べて多くの無駄な退屈なタイピングを省略します。ネイティブSQLサポートのような「エクストラ」は本当に価値があります。しかし、私が最後にデバッグを使用したときは苦痛でした。自分のコードに戻る前に、無限のあいまいな内部Groovyクラスをステップ実行してしまうことになります。

一方、Pythonは完全に自立した環境であり、それは独自の言語であり、他の言語の上にタックされていません(ただし、Python自体はCで記述されており、記述されたものとの優れた統合性がありますCまたはC++)には独自のデバッガーがあるため、ほとんどの場合、記述したpythonコードをデバッグします。

Pythonの設計者は、言語の表現力と構文の一貫性にこだわっています。いったん慣れると、それは非常に読みやすくなります。Python同じ問題を解決するために他の言語を使用する場合と比較して、よく書かれているPythonコードは明確で明確です。

唯一の欠点は、ほとんどの動的言語と同じように、IDEでうまく機能しないことです。また、その素敵な高レベルの表現力は、無駄のない平均実行に解釈されません。

4
James Anderson

私は、自然な言葉よりも(そしてより迅速に)通信する記号と構造についての議論が非常に説得力があると思いますが、私のお気に入りの言語はSchemeなので、そうするでしょう。

1
itsbruce

「やや」と答えます。

公平を期すために、私たちはまず個人的な偏見(つまり、キーワード、構文、構成に精通している)を排除し、これまでに見たことのない言語のみを判断する必要があると思います。 (より人気のある言語を判断するには、その言語が初めて導入されたときに新しいプログラマーからの回答のみを受け入れることができます。)次に、いくつかの言語で同じ実装を行う場合、提起される質問は「どちらが簡単か」です。理解する」?

構文のハードルが多ければ多いほど、このシナリオでは言語のスコアが低くなる可能性が高く、構文がより明確で明確な言語が優先されます。

プログラマーの意図を伝える可能性がはるかに高いのは、変数名の選択と、もちろん含まれていたコメントであり、これはほとんどすべての言語を超えています。

1
duanev

私はコードを読みません。パターンが見えます。

結局これは私が学ぶすべての言語に当てはまります。

「読みやすい」問題が発生するウィンドウは非常に短く、慣用的な言語であっても多くても数日です。

1
Steven A. Lowe

人々は自然にイメージで考える

その記事の著者は皆のために話すべきではありません。 Some人々は自然にイメージで考える、他のものはより言葉/シンボリックです。その上、彼の例は、口頭対象徴的なものです。 &&andも画像ではありません。どちらも絵ではなく象徴的であり、どちらも脳の同じ側で処理されます。シンボリックな推論は、空間的な推論よりも言葉による推論にはるかに近いものです。

私は絵画プログラミングの大ファンではありません。コミュニケーションが取れない。私はフローチャートが好きではありませんでした。 UML図は必然的に両方の世界で最悪の事態を招くため、嫌いです。写真は素敵な漫画になり、経営者にアイデアを提示するのに最適です。これらは、プログラミング、数学、または物理学(これらはすべて象徴的なものです)で有意義な作業を行うのにあまり適していません。

時々、写真はそれをカットしません。シンボルは写真よりも強力です。無限次元のヒルベルト空間の絵を描いてみてください。

1
David Hammen