JavaScript가 때때로 낮은 수준의 언어로 간주되는 이유는 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1209209

문제

에서 영감을 받다 이 질문.

나는 일반적으로 JavaScript를 낮은 수준의 언어, 특히 GWT 사용자 및 유사한 툴킷에서 언어로 언급하는 사람들을 보았습니다.

내 질문은 내 질문인가 : 왜 그런가? 해당 툴킷 중 하나를 사용하는 경우 JavaScript를 프로그램하기에 매우 좋게 만드는 기능 중 일부를 자르고 있습니다. 객체, 동적 타이핑 등 기능. .

표준 라이브러리가 Java API보다 작기 때문에 C ++ 낮은 레벨을 호출하는 것과 같습니다. 저는 C ++ 프로그래머가 아니지만 모든 C ++ 프로그래머가 자신의 GUI 및 네트워킹 라이브러리를 작성하는 것을 의심합니다.

도움이 되었습니까?

해결책

유연성을 감안할 때 높은 수준의 언어입니다 (물체 등의 기능 등).

그러나 일반적으로 편집되는 것은 단순히 편집의 대상이기 때문에 단순히 낮은 수준의 언어로 간주 될 수 있습니다. 이제 JS에 컴파일 할 수있는 많은 언어가 있습니다. 브라우저의 DOM 제어 언어로서의 고유 한 역할 때문에.

JS에 편집 할 수있는 언어 (또는 하위 집합) 중에서 :

  • 자바
  • 씨#
  • HAXE
  • 목표 -J
  • 루비
  • 파이썬

다른 팁

"왜 x가 아닌가?

많은 사람들에게 "낮은 수준"과 "높은 수준"은 다른 시스템으로 작업 할 때 다르게 적용되는 유연하고 추상적 인 아이디어입니다. 과거에 모두 끊어지지 않은 사람들에게 (일부 사람들에게는 현대 저수준 언어와 같은 것이 없습니다) 언어의 높음 또는 낮음은 일반적으로 대상 기계에 얼마나 가까운지를 나타냅니다. 이다. 여기에는 가상 머신이 포함되어 있으며 브라우저는 이제 며칠입니다. 기본 하드웨어에서 ASM을 소나무를 소나무를 가진 모든 사람들에게 죄송합니다.

브라우저를 가상 머신으로 보면 JavaScript는 (가짜) 하드웨어에 가깝습니다. 그것이 JavaScript를 "저수준"이라고 부르는 많은 사람들이 가지고있는 관점입니다. 나는 그것이 만드는 것은 무의미한 구별이라고 생각하며 사람들은 무엇이 낮고, 높은 지에 매달리지 않아야합니다.

여기서 "낮은"은 문장에서와 같은 의미를 가지고 있습니다. 명백한 비교 지점이있을 때 의미가 있지만 맥락에서 단순히 터무니없는 것입니다.

JavaScript로 제공된 물체와 구조가 가능한 한 간단하기 때문에 많은 사람들이 이것을 말합니다. 모든 종류의 실제 기능을 개발하려면 외부 라이브러리를 사용해야합니다. 낮은 수준은 컴퓨터 과학에 이미 의미가 있기 때문에 이것을 넣는 나쁜 방법입니다. 더 나은 방법은 그것이 내장 라이브러리가 없다는 것일 수 있습니다.

실제 언어가 실제로 많이하지 않는 Java와 비교하십시오. ArrayList없이 배열을 만들거나 IO 라이브러리없이 파일 시스템에 액세스하려고합니다. 대부분의 언어는 단순한 기본 이상의 것이며이 추가 기능을 제공합니다.

JavaScript를 사용하면 우리가 얻는 유일한 진정한 힘은 브라우저에서 소개하고 언어의 일부가 아닌 API에서 나옵니다. Dom Manipulation 및 Ajax와 같은 것들은 브라우저에서 제공합니다.

Java와 같은 언어를 사용하면 타사 라이브러리를 다운로드하지 않고도 심각한 작업을 시작할 수 있지만 JavaScript를 사용하면 라이브러리를 다운로드하거나 라이브러리를 작성해야한다고 말 함으로써이 모든 것을 요약하는 것이 좋습니다. 너 자신의.

나는 JavaScript를 낮은 수준의 언어로 보지 않습니다. 많은 기능과 사용자 경험 부스터가 제공합니다. 어쩌면 다른 사람들은 사용자가 브라우저 옵션에서 꺼질 수 있기 때문에 단순히 그것을 볼 수 있지만, 거의 모든 유형의 브라우저에서 웹을 실제로 실행하는 것은 매우 강력한 언어입니다.

일반 브라우저 프로그래밍에서 얻을 수있는만큼 낮은 수준 일 수 있지만 체계 나 파이썬과 같은 기능적 언어와 동등합니다.

JavaScript의 큰 부족은 이름 공간이나 포장이없고 스레드가 없다고 생각합니다.

GWT 및 유사한 툴킷에 비해 낮은 수준이지만 더 큰 사물 체계에서는 낮은 수준의 언어가 아닙니다. 그것이 제공하는 기능은 매우 높은 수준입니다. 클로저, 동적 타이핑 및 프로토 타입 상속은 높은 수준의 기능의 몇 가지 예일뿐입니다.

Java를 작성하여 JavaScript를 작성한 다음 JavaScript를 작성하는 것을 선호하는 많은 사람들에 의해 수준이 낮은 것으로 간주됩니다 (즉, 공정하거나 부당하게 싫어합니다). 많은 사람들이 요즘 Java에 대해 불평하지만 정적 유형의 부족에도 불구하고 대부분의 사람들은 아마도 대부분의 경우 Ruby와 Python이 글을 쓰기가 더 쉬운 것으로 생각할 것입니다 (Java는 상당히 단순한 정적 언어이기 때문에 대형 건축 없이는 잘 설계하기가 훨씬 어렵습니다. -특징 세트에서 간단한 동적 언어).

Java에 비해 Python 또는 Ruby Low Level을 부르는 사람은 거의 없으며 사람들이 Python 또는 Ruby VM을 목표로 삼아 Java to Python/Ruby 컴파일러가 GWT만큼 인기가 있다고 상상하기 어렵습니다.

닫을 때 JavaScript에는 이미지 문제가 있습니다 (사람들은 때때로 언어가 더 낮은 수준이되어 그 반대가 더 어려워지고 있습니다).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top