質問

に触発された この質問.

特に GWT や同様のツールキットのユーザーの間で、JavaScript を低レベル言語と呼んでいる人をよく見かけます。

私の質問は次のとおりです。なぜ?これらのツールキットのいずれかを使用すると、JavaScript をプログラミングするのに最適な機能の一部を利用できなくなることになります。オブジェクトとしての関数、動的型付けなど。特に、jQuery や Prototype などの人気のあるフレームワークの 1 つと組み合わせる場合はそうです。

標準ライブラリは Java API より小さいため、C++ を低レベルで呼び出すようなものです。私は C++ プログラマーではありませんが、すべての C++ プログラマーが独自の GUI やネットワーク ライブラリを作成しているとはとても思えません。

役に立ちましたか?

解決

柔軟性(オブジェクトとしての機能など)を考えると、高レベル言語です

しかし、一般的にコンパイルされるものはすべて、コンパイルのターゲットであるという理由だけで低レベル言語と見なすことができ、ブラウザのDOM制御言語としての独自の役割により、JSにコンパイルできる言語が多くなりました

JSにコンパイルできる言語(またはそれらのサブセット)の間:

  • Java
  • C#
  • ハックス
  • Objective-J
  • ルビー
  • Python

他のヒント

「なぜ何かが X と呼ばれることがあるのですか...」という質問に「それは X ではありません」と答えるのは、完全に質問を脇に置いたことになります。

多くの人にとって、「低レベル」と「高レベル」は柔軟で抽象的な概念であり、異なるシステムを使用する場合には適用方法も異なります。過去にまったくこだわっていない人にとって (一部の人にとっては現代の低水準言語などというものは存在しません)、言語の高低は通常、言語がターゲット マシンにどれだけ近いかを指します。は。これには仮想マシンも含まれますが、最近ではブラウザもそれに含まれます。基本ハードウェアの asm に憧れている皆さん、ごめんなさい。

ブラウザを仮想マシンとして見ると、JavaScript は (偽の) ハードウェアに限りなく近いものになります。これが、JavaScript を「低レベル」と呼ぶ多くの人が持っている観点です。それは無意味な区別であり、人々は何が低いか、何が高いかにこだわるべきではないと思います。

"低"ここでは、「第一次世界大戦で被った犠牲者の数は少なかった」という文章と同じ意味を持っています。および「低脂肪アイスクリームはカロリーが低い」。明らかな比較のポイントがある場合にそれは理にかなっていますが、文脈からすると、それは単にばかげています。

JavaScriptで提供されるオブジェクトと構造は、可能な限りシンプルであるため、多くの人がこれを言っています。実際の機能を開発するには、外部ライブラリを使用する必要があります。低レベルはこれを置くのに悪い方法です。なぜなら、それは既にコンピューターサイエンスで意味を持っているからです。より良い言い方は、組み込みライブラリがないことかもしれません。

これをJavaと比較してください。Javaでは、実際の言語では実際にはあまり効果がありません。 ArrayListなしで配列を作成するか、IOライブラリなしでファイルシステムにアクセスしてください。ほとんどの言語は単なる基礎以上のものであり、この追加機能が付属しています。

JavaScriptを使用すると、ブラウザーによって導入され、言語の一部ではないAPIから得られる唯一の真の力が得られます。 DOM操作やAjaxなどはブラウザによって提供されます。

これらのすべてを要約すると、Javaのような言語を使用すると、サードパーティのライブラリをダウンロードせずに本格的な作業を開始できますが、JavaScriptを使用すると、ライブラリをダウンロードするか、独自のライブラリを作成します。

JavaScriptを低レベル言語とは見なしません。多くの機能とユーザーエクスペリエンスブースターが提供されます。単にユーザーがブラウザオプションでオフにできるため、他の人がそのように見ているかもしれませんが、事実上すべての種類のブラウザでウェブを仮想的に実行する非常に堅牢な言語です...

そうではありません。通常のブラウザプログラミングで得られるほど低レベルかもしれませんが、SchemeやPythonなどの関数型言語と同等です。

Javascriptの大きな欠如は、名前空間またはパッケージングの欠如であり、スレッドがないことだと思います

GWTや同様のツールキットと比較すると低レベルですが、大規模なスキームでは低レベルの言語ではありません。提供する機能は非常に高度です。クロージャー、動的型付け、およびプロトタイプ継承は、その高度な機能のほんの一例です。

JavaScript を書くよりも Java を書いて JavaScript を生成することを好む多くの人にとって、これは低レベルであると考えられています (つまり、彼らはそれを公正または不当に嫌います)。最近、Java について不満を言う人がたくさんいますが、静的型チェックがないにもかかわらず、多くの人はおそらく、ほとんどの場合、Ruby と Python の方が書きやすいと考えるでしょう (Java はかなり単純な静的言語であり、大規模なビルドがなければ適切に設計するのははるかに困難です) -in 機能セット、次に単純な動的言語)。

Python や Ruby を Java に比べて低レベルだと言う人はほとんどいませんし、もし人々が Python や Ruby VM をターゲットにせざるを得なくなったとしても、Java から Python/Ruby へのコンパイラが gwt と同じくらい人気になるとは想像しにくいです。

最後に、JavaScript にはイメージの問題があります (言語は低レベルになるほど難しくなると考えることがありますが、その逆も同様です)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top