4

この質問に触発されました。

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

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

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

4

8 に答える 8

12

柔軟性(オブジェクトとしての機能など)を備えた高級言語です。

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

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

  • Java
  • C#
  • Haxe
  • 目的-J
  • ルビー
  • Python
于 2009-07-30T20:38:43.940 に答える
5

「なぜ X と呼ばれることがある...」という質問に「X ではない」と答えるのは、完全に質問の脱線ですよね。

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

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

于 2009-09-11T14:16:31.133 に答える
3

多くの人がそう言うのは、JavaScript で提供されるオブジェクトと構造が可能な限り単純だからです。実際の機能を開発するには、外部ライブラリを使用する必要があります。低レベルという表現は不適切です。コンピューター サイエンスではすでに意味があるからです。より良い言い方をすれば、組み込みライブラリがないということかもしれません。

これを Java と比較してください。Java では、実際の言語ではあまり機能しません。ArrayList を使用せずに配列を作成しようとしているか、IO ライブラリを使用せずにファイル システムにアクセスしようとしています。ほとんどの言語は単なる基本ではなく、この追加機能を備えています。

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

これらすべてを要約すると、Java のような言語では、サードパーティのライブラリをダウンロードしなくても本格的な作業を開始できますが、JavaScript では、ライブラリをダウンロードするか、ライブラリを作成する必要があります。あなた自身の。

于 2009-07-31T00:31:32.613 に答える
2

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

于 2009-07-30T20:45:05.550 に答える
1

私はjavascriptを低水準言語とは見なしていません。多くの機能とユーザーエクスペリエンスブースターがそれによって提供されます。ユーザーがブラウザオプションでオフにできるという理由だけで他の人がそれをそのように見るかもしれませんが、それは事実上すべてのタイプのブラウザでWebを仮想的に実行する非常に堅牢な言語です...

于 2009-07-30T20:40:02.987 に答える
1

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

Javascriptの大きな欠如は、名前空間やパッケージの欠如、そしてスレッドの欠如だと思います

于 2009-07-30T20:41:29.427 に答える
1

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

于 2009-07-30T20:43:02.810 に答える
0

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

Java に比べて Python や Ruby を低レベルと呼ぶ人はほとんどいません。人々が Python または Ruby VM をターゲットにすることを余儀なくされた場合、Java から Python/Ruby へのコンパイラが gwt と同じくらい人気になるとは想像しがたいです。

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

于 2010-10-05T12:16:47.590 に答える