JavaScript는 어떻게 대중화 되었습니까?


27

고대 역사에서 Brendan Eich는 언어 디자인을 가지고 있었고 오늘날 세계에서 JavaScript는 여러 장소에서 구현되고 사용되는 인기있는 언어입니다.

언어가 대중화되는 원인은 무엇입니까? 이전 프로그래머에게 친숙한 C 유사 구문입니까? 넷스케이프는 시장을 사용하기 위해 시장을 충분히 통제 했는가? 아니면 JavaScript가 대중적이고 다른 언어가 그렇지 않은 더 깊은 이유가 있습니까?

특히, JavaScript만큼 인기있는 언어를 만들어야한다면, 인기 증가를 재현하기 위해 어떤 초기 조건이 필요합니까?


2
자바 스크립트는 구글이 구글 맵으로 부활시킬 때까지 죽었다 (+ -2005).
Todd Moses

1
@ToddMoses 내가 논쟁하러 갔지만 일부 연구 결과에 따르면 AJAX는 Gmail (2004)과 google maps (2005)에서 영감을 받아 Javascript를 다시 주류로 만들었습니다. 그러나 (그리고 이것은 또한 위의 질문과 관련이 있습니다) javascript는 실제로 사라지지 않았습니다. Actionscript (Flash에서 사용)는 약 2000에서 나타 났으며 기본적으로 동일한 언어입니다. 브라우저 전쟁 기간 동안 Flash / Actionscript는 현재 Javascript / AJAX와 같은 기술로 사용되었습니다. 2000 년 Javascript 기술을 Actionscript로 가져 와서 2008 년 Javascript로 다시 가져 왔습니다
Darren Cook

2
Ajax는 중요하지만 IMO는 과신입니다. DOM API 및 CSS2와의 광범위한 브라우저 준 준수는 JS를 클라이언트 측에서 강력한 도구로 만드는 데 도움이되었습니다. 그것은 2002ish IIRC 주위에서 더 시작되었습니다. HTML로 적절한 도구를 만들었 으면 복잡한 UI 기능을 빠르게 구현하는 것이 완전히 새로운 공 게임이었습니다. 그러나 2005 년까지 모든 사람들이 실제로 주목하기 시작했을 수도 있습니다. 또한 2005 년 무렵에야 비판적 집단이 JS가 실제로 그 자체로는 꽤 나쁜 일반 언어라는 것을 이해하기 시작했습니다.
Erik Reppen

답변:


31

나는 이전 답변 에 대해 언급하고 있었지만 점점 커지고 있었기 때문에 이것을 돌릴 것이라고 생각했습니다.

새로운 언어는 컴퓨팅의 새로운 영역을 활용하는 경우에만 성공할 수 있습니다.

이전 예 :

  • 유닉스 용 C
  • iOS 용 Objective-C
  • 백엔드 웹 1.0 용 Perl 및 PHP
  • 백엔드 웹 2.0 용 Python 및 Ruby
  • 백엔드 인터넷 지원 엔터프라이즈를위한 Java

귀하의 질문에 대답하기 위해 JavaScript는 Netscape Navigator의 주요 언어였습니다. 특히 동적 인 프론트 엔드 개발을위한 언어였습니다.

다음 큰 언어는 또 다른 국경을 해결해야합니다. 백엔드 웹 개발 공간에는 여전히 횡령이있는 것 같습니다. 또한, 애플의 현재 지배력에도 불구하고 모바일 컴퓨팅은 완전히 해결되지 않았습니다. 또한, 다중 언어 및 클라우드 컴퓨팅이 등장하는데, 이는 Erlang 및 Go와 같은 동시 언어 또는 Haskell 및 OCaml과 같은 기능적 언어와 같이 많은 언어에서 활용하려는 것입니다.

기업가들은 "화재중인 사람을 찾아 그에게 소방 호스를 팔아"라는 문구를 따라 표현합니다. 새로운 언어를 도입하고 싶다면 누구의 불을 끄고 있습니까? 컴퓨팅의 모든 새로운 영역은 수많은 두통을 가져옵니다. 아스피린을 공급하면 황금색이됩니다.


4
거의 동의하지만 .NET 플랫폼이 어떻게 인기를 얻었는지 알 수 없습니다.
Tomasz Nurkiewicz 2018 년

5
@Tomasz Microsoft는 .NET을 새로운 Windows 플랫폼 (여전히 데스크톱 설치가 여전히 많음)으로 푸시하고 VB 6을 중단 할 때까지갔습니다.
chrisaycock

1
Perl이나 Python 모두 웹에 대한 초기 인기를 얻지 못했습니다. 이들은 sys-admins 또는 운영 체제 서비스를위한 도구를 신속하게 구축하기위한 언어로 고안되었으며 웹 개발에 더 큰 관심을 끌기 전에 해당 도메인에서 크게 성공했습니다.
SingleNegationElimination

1
@TokenMacGuy : CAD / CAE를 포함한 도메인은 Web 1.0이 시작될 때까지 상대적으로 작았습니다. 그때 서점의 선반이이 언어로 된 책들로 넘쳐나 기 시작했습니다.
hotpaw2

2
@ hotpaw2 : Perl은 가정용 인터넷 액세스가 일반적으로 사용되기 몇 년 전에 UNIX에서 스크립팅에 매우 인기가있었습니다.
케빈 클라인

38

Netscape는 브라우저에서 JavaScript 엔진을 사용했습니다. 웹에서 스크립팅을하고 싶다면 JavaScript를 사용 하십시오 . Internet Explorer는 JavaScript와 VBScript를 모두 가지고 있지만 여전히 IE 이상으로 작업하려면 JavaScript를 사용할 수밖에 없습니다.

JavaScript는 그 자체로는 훌륭한 언어이지만, HTML을 스크립팅하는 데 사용할 수있는 유일한 언어라는 사실이 아니라면 오늘날 인기가 거의 없습니다.


3
그렇다면 고급 언어가 필요한 기존 (인기있는) 소프트웨어를 피기 백함으로써?
Mathnerd314

7
@ Mathnerd314 : 그것은별로 다릅니다. JavaScript (감사, Mr. CRT : p)는 브라우저와 분리 된 적이 없습니다. Netscape가 브라우저에서 사용하기 위해 특별히 개발 한 것이기 때문에 Netscape의 인기도를 높이기 위해 "피기 백"하기로 결정한 것은 아닙니다. 인기있는 언어.
Dean Harding

2
@ Mathnerd314 C가 유닉스와 마찬가지로 컴퓨팅새로운 개척을 위한 유일한 실제 언어 인만큼 피기 백은 아닙니다 . 동적 인 프론트 엔드를 원하는 사람은 JavaScript를 사용해야했습니다.
chrisaycock

4
성공 을 재현 하기 위해서는 완전히 새로운 컴퓨팅 환경 을 찾고 새로운 언어를 필수로 만들어야합니다. 봐요 ...
Mathnerd314

2
@ Mathnerd314 현재 떠오르는 국경에는 멀티 코어 및 클라우드 컴퓨팅이 포함됩니다. 실제로 이것은 Erlang과 같은 언어가 활용할 수있는 것입니다. (또 다른 예는 스마트 폰의 출현으로 인해 Objective-C의 부상입니다. 애플이 그 분야에서 큰 선수이기 때문입니다.)
chrisaycock

7

클라이언트 측 웹에서 JS의 출현이 몇 년 동안 몇 가지 핵심 포인트로 오해되었다고 생각하기 때문에 이에 대한 업데이트를 추가 할 것입니다.

아약스 아니었다

나는 Ajax가 JS를 언어로 이해하는 데 진화하는 데 중요하지 않다고 말하지는 않지만 Ajax라는 용어가 만들어지기 훨씬 전에 클라이언트 측 브라우저 지배에 대한 싸움은 끝났다.

그것이 도시에서 유일한 게임 이었기 때문이 아닙니다.

Java 애플릿, Flash 및 VBScript가있었습니다. 나는 90 년대에 다른 스크립팅 옵션이 있다고 들었습니다 (그러나 플러그인 IIRC가 필요했습니다). 자바는 대단한 인기를 얻었지만 애플릿은 실패였다. 그들은 추악하고 종종 보안-스위스 치즈이지만 더 중요한 것은 나중에 나중에 설명 할 이유로 Java가 적합하지 않다고 생각합니다. 플래시는 매우 인기가 많았고 몇 년 동안 강력한 발판을 마련했지만 플래시에 SEO 옵션이 있었지만 플래시 사이트는 일반적으로 사용되지 않았기 때문에 플래시 사이트를 찾기가 매우 어려웠습니다. 지금도 대부분의 사람들은 정기적으로 플래시를 업데이트하여 영화를 볼 수 있지만 이것이 실제 아킬레스 건입니다. 브라우저의 독자적인 기술은 성가신 일입니다. 물론 VB는 IE에서만 작동합니다.

적시에 적절한 장소는 관련이 있지만 전체 답변은 아닙니다

그렇습니다. 웹 물결이 없다면 우리는 JavaScript 나 언어를 널리 사용하는 것처럼 보지 못했을 것입니다. 아니면 우리는 ...

결국 문제 영역을위한 완벽한 도구가되었습니다.

나는 2000 년경에 다음과 같은 문제가 있다고 말했습니다.

  • IE와 Netscape는 동일한 DOM API 및 CSS 표준에 참여함으로써 좋은 플레이를 시작하기로 합의했으며, 그 이후로 관리가 가능해지기 시작한 기존의 JS 크로스 브라우저 문제를 처리해야했습니다. jQuery post IE8과 같은 JS DOM 정규화 도구를 사용하지 않고
  • 프로그래머가 더 이상 아무것도없이 문에 나타나기 위해 적절한 급여를 줄 때 post..com-bubble-burst 게임을 개선하고자하는 프로그래머로서 반드시 헤비급이 아니었던 완전히 새로운 세대의 웹 개발자 / 디자이너가있었습니다. 기본적인 HTML 활용 능력과 일부 포토샵 기술보다
  • 도시에이 새로운 CSS 키드가 있었는데, 궁극적으로 DHTML, (보다 적절하게는) DOM 스크립팅, (이제 부적절하게) HTML5 (zomghtml5!)에 대한 흥미로운 가능성을 제공했습니다.

따라서 우리는 클라이언트 측에서 휴대용 / 재사용 가능한 구성 요소를 갖춘 고급 앱을 실제로 구성하고 설계 할 수있는 기능을 제공하면서도 잘 모르는 사람들이 액세스 할 수있는 언어가 필요했습니다. 버튼을 클릭했을 때 나타나거나 다시 나타납니다.

또한, MS는 때때로 부적절하고 / 무능한 그리고 / 또는 비 경쟁적-실제 연습-스키밍 짐승 이었지만, 비 규격 DOM API 구현을 실제로 10 년 동안 제대로 건드리지 못했습니다. IE8에서 원래 XHR 객체 및 querySelectors와 같은 것을 추가하십시오.

주목해야 할 중요한 점은 2005 년 무렵에 브라우저 간 문제 처리와 관련된 복잡성을 완전히 파 묻어 JavaScript 측면에서 더 이상 심각한 문제가되지 않았다는 것입니다. CSS2를 제대로 지원하지 못하면 상당히 고통 스러웠습니다. 문제의 양과 깊이에 대한 아이디어를 얻으려면 quirksmode.org를 확인하는 것이 좋습니다 . 나는 이것이 VB가 아니라 Java의 많은 라이브러리에서 매끄럽고 매끄럽게 달성 할 수있는 위업이라고 생각하지 않습니다. 그리고 완전히 새로운 것이되어서 전체 문제를 회피하는 플러그인 전략으로는 확실히 아닙니다 귀찮은 종류.

UI에 많은 의미를 부여하는 다른 언어 기능 :

  • 퍼스트 클래스 함수 : 제 경험상, 함수를 퍼스트 클래스로 만드는 언어보다 비동기 처리 및 이벤트 중심 패러다임에 더 적합한 것은 없습니다. UI 작업에서는 두 가지 문제를 정기적으로 해결합니다.

  • 동적 유형 : 캐스팅 및 유형 검사는 JavaScript에서 매우 드물게 필요하므로 코드를 간결하고 간결하게 유지하는 데 도움이되었습니다. UI 문제는 매우 복잡하고 복잡해질 수 있습니다. 코드를 엄격하게 유지하고 데이터 흐름을 완전히 명확하게 유지하는 것은 코드를 이해하고 수정 / 유지 관리하는 데 중요합니다.

  • 그것은 보호 주의자가 아닙니다. 몇 년 동안 누군가가 자신의 실수와 다른 사람이 코드 구성으로 강하고 유연하지 않고 원래 의도와 혼동하는 것을 불가능하게하여 코드로 할 수있는 바보 같은 일로부터 자신을 보호해야한다고 설교했습니다. 저자와 함께 많은 사람들이 듣고 있습니다. 나는 그들이 항상 틀렸다고 말하지는 않을 것입니다 (생각할 수도 있습니다).하지만 그것은 웹 UI에 대한 잘못된 접근이라고 말할 것입니다. 우리가 클라이언트를 크랭크 아웃하고 유지 관리하며 수정 한 현상이라고 생각합니다. 사이드 GUI는 훨씬 더 빠른 속도로 그러한 작업보다 훨씬 쉬워졌으며 과거에는 더 제한적인 언어로 수행되었습니다. 빠르고 쉽게 변경 사항을 변경할 수 있기 때문에 엄청난 양의 간접 및 추상화 오버 헤드가 필요없는 동적 / 유체 아키텍처 체계를 훨씬 쉽게 만들 수있어 궁극적으로 코드에서 지옥이 어떤 일이 일어나고 있는지 쉽게 알 수 있습니다. 예외를 훨씬 더 깨끗하게 비우거나 처리합니다. 다른 철학에서 생각하는 것보다 훨씬 적은 코드로 당신이하는 모든 일에 더 직접적 일 수 있도록하는 단순한 미덕을 통해 유지하는 것이 더 쉽습니다.

JS는 어떻게 대중화 되었습니까? 그것은 작업 시간과 시간에 대한 훌륭한 도구임을 입증했습니다. 우리가 "고착 된"언어가 아닙니다. 그것은 대중적인 언어에서 일반적으로 많은 발전을 가져 왔을 수있는 언어입니다. 그리고이를 위해, Scheme이 Java를 좋아하는 것보다 당면한 문제에 맞는 디자인 영감을 얻었 기 때문에 아이디어를 그의 머리 속에 넣는 데 도움을 준 Brendan Eich와 모든 동시대 인들에게 감사 할 수 있습니다.


2

처음에 사용 된 한 가지 전략은 "JavaScript"라는 이름으로, Java의 인기를 높이기위한 것이 었으며, 그 이후로 얼마 동안 증가하고있었습니다.


1

브라우저 간 클라이언트 측 스크립팅 언어 만이 아니 었습니까? 웹의 인기는 웹의 인기에 따라 크게 증가한 것으로 보입니다.


1

적절한 시간, 적절한 장소. 그리고 그것은 완전히 빨리 지 않았습니다.

페이스 북이이기는 이유와 같습니다.


0

제 생각에는 Javascript가 잘 지원되기 때문에 인기가 있습니다.

첫째, Netscape와 IE 모두 현재 유일한 언어입니다. "자바 스크립트 커뮤니티"가 확립되고 안정된 후에는 아무도 처음부터 구축해야하는 "또 다른 장점"에 대해 생각할 수 없었습니다. 그들은 단지 그것을 더 좋고 더 좋게 만드는 데 기여합니다.

새로운 대중 언어를 만들고 싶다면, 내가 생각하는 첫 번째 것은 누가 그 언어를 사용 하는지 결정해야 한다는 것입니다 . 첫 번째 고객은 항상 구하기 어려우므로 어떤 방식 으로든 귀하의 언어가 자바 스크립트보다 우수해야합니다. 아마도 제한된 분야 / 제한된 프로그래머 커뮤니티에서도 "예를 들어, iPhone 모바일을위한 더 좋고 빠른 자바 스크립트 엔진"이 좋은 선택 일 수 있습니다.

또한 어떤 언어가 생존 할 수 있는지 결정하는 커뮤니티이기 때문에 커뮤니티에서 언어를 쉽게 사용하고 사용자 정의 할 수 있어야합니다.


중요한 것은 그것을 "충분히"대중적으로 만드는 방법입니다. 그런 다음 자체적으로 작동합니다.
Hoàng Long

0

당신은 저를 믿지 않을 것이지만 플래시 (그리고 약간의 자바 애플릿에서)는 자바 스크립트의 인기와 언어 자체의 진화에 큰 기여를했습니다.

플래시가 등장하자 웹 애플리케이션이 고려해야 할 첫 번째 증거였다.

어떤 의미에서는 플러그인과의 경쟁에서 끊임없이 보여 주려고 시도합니다. 플러그인 없이 할 수있는 일 살펴보십시오. 자바 스크립트는 더 넓은 범위의 응용 프로그램을 가진 언어가되어 인기를 얻었습니다.


-1

사람들이 Javascript가 Java와 관련이 있다고 생각한다고 생각합니다.

(오늘처럼 모든 것이 "i"로 시작)

마케팅 / 홍보 전략은 중요한 역할을합니다.


-1

나는 그것이 C와 같은 문법 과 관련이 있다고 생각 합니다 . Wikipedia 에 따르면 Javascript는 95 년에 등장했습니다. 그 당시 C 는 항상 높았고 Java는 차세대 언어였습니다. 나는 그 구문이 정말로 매력적이라고 ​​생각하고 다음 큰 언어 인 Java 와의 이름 연관성이 우위를 점했다고 생각합니다.

그 당시 C 프로그래머는 역동적 인 언어에 쉽게 적응할 수있었습니다.

Programming Language    Dec 2010    Dec 2005    Dec 1995        Dec 1985
Java                    1           1           -               -
C                       2           2           1               1

티 오베 지수

Javascript 의 성공을 재현하기 위해 현대 프로그래머를 괴롭히는 문제를 살펴보고 익숙한 구문으로 솔루션을 제공했습니다.

IMO 병렬 프로그래밍은 프로그래머가 직면 한 다음 큰 문제입니다. 기능적 언어가 실제로 그 장애물을 극복하는 데 큰 도움이된다고 생각합니다. 다음 Javascript 를 작성하려면 공통 플랫폼 으로 기능 언어를 작성하십시오 . 또한 나는 그것이 훌륭한 언어가 될 수있을만큼 유연해야하지만 훌륭한 프레임 워크를 사용하여 정적으로 유형이 지정된 언어 일만큼 강력해야한다고 생각합니다.

모든 사람이 동의 할 수는 없지만 F # 은 앞으로 많은 장점을 가질 수 있다고 생각 합니다.


2
@씨. CRT : Turbo Pascal을 만든 Anders Hejlsberg는 C # 및 .NET 프레임 워크에 큰 영향을 미쳤습니다. 넷스케이프가 파스칼을 채택했다면 파스칼을 할인하지 않았을 것입니다. 맹세하는 델파이 개발자는 여전히 많습니다.
snmcdonald

3
죄송합니다. 답변하기 전에 내 의견을 삭제했습니다. 어쨌든 풍자적 인 의미 였으므로 특별히 도움이되지 않았습니다. 기존 프로그래머가 "물에 발가락을 담그는"데 도움이되었지만 C와 유사한 구문은 성공을 보장하는 것이 아닙니다. Objective-C를 생각해보십시오. 10 년이 넘는 상대적인 모호한 상황에서, Apple은 NeXT를 구입하여 모든 종류의 재미있는 작은 장치를위한 기반으로
삼았습니다

1
@씨. CRT. 매우 흥미로운 의견. 기존 프로그래머에게는 이것이 중요하다고 생각하지만, 구문은 반드시 전부가 아닙니다. Objective-C는 나에게 C와 같은 느낌이 들지 않습니다. 아마도 그것이 처음에는 이륙하지 않은 이유 일 것입니다. 그러나 Java가 90 년대에 있었던 것과 같이 차세대 기술과 관련이있을 수도 있습니다. 구문에 관해서는 차세대 프로그래머가 기능적이고 역동적 인 언어에 익숙해 졌다고 생각합니다.
snmcdonald

@씨. CRT : 또는 구글과 파이썬, 등 ... 나는 일반적으로 언어와 함께 할 조금있다 (널리에서와 같이) 그 "인기"를 말할 것 자체가 모든 후, [예를 들어, 하스켈 매우 인기가 많은 환상적인 언어가 ( , Erlang] 및 기타 사람들에게 인기가 많은 것들 (예 : PHP)
Dean Harding

@Dean Harding : PHP를 정말 좋아하기 때문에 재미있는 의견입니다. 라이브러리 함수 이름은 C-Library와 유사하지만 sigil 복수로 방해하지 않고 Perl과 같은 구문을 채택합니다. 동시에 나는 Perl과 PHP에서 OO의 구현이 막판 생각으로 비판을 이해합니다. PHP는 C와 Perl (아마도 더 많은 언어)과 비슷한 문법을 ​​가지고 있는데, 이는 많은 프로그래머에게 친숙하지만 매우 인기있는 도메인을 위해 설계되었습니다. 나는 그것이 구문과 대중적인 기술의 조합이라고 생각합니다.
snmcdonald

-1

JavaScript는 AJAX 및 Firebug와 같은 훌륭한 검사 도구로 인해 대중화되었습니다. 물론 모든 주요 브라우저에서 작동했으며 DHTML을 수행하는 유일한 방법이라는 사실은 도움이되었습니다.

기본적으로 가장 어리석은 언어를 성공적으로 만들려면 다른 언어로는 할 수없는 정말 유용한 일을 할 수 있어야합니다. 또한 프로그래머가 파이어 버그 이전의 자바 스크립트에서는 그렇지 않은 언어를 제어 할 수있는 도구를 제공해야합니다.


2
JavaScript는 AJAX (그리고 아마도 2 차라고 생각하지만 Firebug라고 생각합니다.
wyatt

-4

Javascript는 디자이너가 원하는 것처럼 웹 페이지를 표시하기위한 HTML 마크 업의 단점을 극복하기위한 해킹으로 널리 사용됩니다. Javascript가 없으면 모든 웹 페이지는 다음과 같습니다-HTTP 1.1 . 고퍼 프로토콜 에서 거의 향상되지 않습니다 .


2
프로토콜! = 디자인! = 스크립팅. HTTP 1.0을 사용하여 자바 스크립트없이 아주 아름다운 페이지를 만들 수 있습니다.
deceze
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.