2009-07-30 44 views
3

this question的啓發。爲什麼JavaScript有時會被視爲低級語言?

我經常看到人們將JavaScript作爲低級語言,特別是GWT和類似工具包的用戶。

我的問題是:爲什麼?如果您使用其中一種工具包,那麼您正在使自己的某些功能不再適合使用JavaScript進行編程:函數作爲對象,動態類型等等。尤其是當與諸如jQuery或Prototype之類的流行框架。

這就像調用C++低層次一樣,因爲標準庫比Java API小。我不是C++程序員,但我非常懷疑每個C++程序員都編寫自己的GUI和網絡庫。

+6

呃......不是嗎? – 2009-07-30 20:41:15

+0

@Ed:通常不會,但這是你看到的態度,似乎越來越普遍。 – Macha 2009-07-30 20:42:42

+8

它不是*永遠*。低級語言意味着靠近機器。 Javascript不以任何形式或形式靠近機器。低級別的最佳定義是:「你能寫出一個完整的操作系統內核嗎,而不需要在你的代碼和機器之間做任何調整?」如果是,那麼你的語言就是低級語言。 – Christopher 2009-07-30 20:48:50

回答

11

它是一種高層次的語言,因爲它的靈活性(功能對象等)

但要編譯,可以考慮任何通常是一個低層次的語言,只是因爲它是編譯的目標,和there are many languages that can now be compiled to JS,因爲它作爲瀏覽器的DOM控制語言的獨特角色。

其中語言(或它們的子集),其可被編譯爲JS:

  • 爪哇
  • C#
  • HAXE
  • 目的-J
  • 紅寶石
  • 的Python
1

我不認爲JavaScript是一種低級語言。它提供了許多功能和用戶體驗助推器。也許其他人可能會認爲它只是因爲用戶可以在瀏覽器選項中關閉它,但它是一種非常強大的語言,幾乎可以在幾乎所有類型的瀏覽器上運行網絡...

1

不是,它可能是你可以在普通瀏覽器編程中獲得低級別的功能,但它與Scheme或Python等功能語言相同。

我覺得偉大缺乏的Javascript缺乏名字空間或包裝和無螺紋

0

相比GWT和類似的工具包,這是低層次的,但它不是在更大的計劃的低層次的語言的東西。它提供的功能非常高級:閉包,動態類型和原型繼承僅僅是其高級功能的幾個例子。

2

這裏的「低位」與「第一次世界大戰中遭受的傷亡人數很少」,以及「減脂冰淇淋熱量低」等句子中的含義相同。當存在一個明顯的比較點時是有道理的,但是從背景來看,這很荒謬。

2

很多人都這麼說,因爲JavaScript提供的對象和結構大概就像你可以得到的一樣簡單。要開發任何類型的真實功能,您必須使用外部庫。低級別是不好的方法,因爲它已經在計算機科學中有意義。更好的方式來說這可能是因爲它沒有內置庫。

將此與Java進行比較,其中實際的語言實際上並不是很多。嘗試在沒有ArrayList的情況下創建數組,或者在沒有IO庫的情況下訪問文件系統。大多數語言不僅僅是基礎知識,它們還帶有這些額外的功能。

使用JavaScript,我們得到的唯一真正的力量來自瀏覽器引入的API,並且不屬於該語言的一部分。諸如DOM操作和Ajax之類的東西都是由瀏覽器提供的。

總結所有這一切可能會更好,因爲用像Java這樣的語言,你可以開始做一些認真的工作,而無需下載第三方庫,但是使用JavaScript,你必須下載庫或者寫一個你自己的圖書館。

3

回答「爲什麼有時候被稱爲X ...」和「不是X」的問題完全是側面問題,不是嗎?

對很多人來說,「低級」和「高級」是靈活的,抽象的想法,適用於不同的系統。對於那些過去並不都是這樣的人來說(對某些人來說,現代低級語言沒有這樣的東西),語言的高度低下通常指的是與目標機器有多接近是。這包括虛擬機,瀏覽器現在是幾天。很抱歉,所有在基礎硬件上爲asm做準備的人都是。

當您將瀏覽器視爲虛擬機時,javascript與硬件(硬件)非常接近。這是很多人稱之爲「低級別」的javascript的觀點。我認爲這是一個毫無意義的區別,人們不應該掛在什麼是低的,什麼是高的。

0

許多人喜歡編寫java來生成javascript,然後編寫javascript(即他們不公平或不喜歡),這被認爲是低層次的。很多人現在都在抱怨Java,但儘管缺乏靜態類型檢查,大多數人可能會認爲在大多數情況下ruby和python更容易編寫(java是一種相當簡單的靜態語言 - 如果沒有大型構建,設計就會更加困難在功能設置然後一個簡單的動態語言)。

與Java相比,很少有人會調用python或ruby低級別,如果人們被迫定位到python或ruby vm,那麼很難想象Java到python/ruby​​編譯器會像gwt一樣流行。

在關閉javascript時有一個圖像問題(人們有時會認爲語言越來越難,因爲他們變得更低級別,反之亦然)。

相關問題