Як JavaScript став популярним?


27

У давній історії Брендан Ейх мав мовний дизайн, а в сучасному світі JavaScript - популярна мова, реалізована та використовується у багатьох різних місцях.

Що спричинило популярність мови? Чи був це синтаксис подібний С, знайомий попереднім програмістам? Чи достатньо Netscape контролював ринок, щоб змусити його використовувати? Або є якась глибша причина того, що JavaScript популярний, а інших мов немає?

Зокрема, якщо вам довелося зробити мову такою ж популярною, як JavaScript, які початкові умови вам потрібні, щоб відтворити її зростання популярності?


2
JavaScript був майже мертвим (+ - 2005), поки Google не воскресив його з картами Google.
Тодд Мойсей

1
@ToddMoses Я пішов сперечатися, але деякі дослідження показали, що ти маєш рацію: AJAX знову зробив Javascript mainstream, натхненний Gmail (2004) та google maps (2005). Однак (і це також стосується вищезазначеного питання) javascript ніколи не згасав: Actionscript (використовується у Flash) з'явився приблизно з 2000 року і в основному є тією ж мовою. У роки війни браузера використовували Flash / Actionscript для тих самих речей, що зараз JavaScript / AJAX - це технологія. Я взяв свої навички Javascript у Actioncript у 2000 році та повернув їх до Javascript у 2008 році :-)
Даррен Кук

2
Ajax важливий, але він завищений, IMO. Широка відповідність браузера API DOM та CSS2 - це те, що допомогло зробити JS потужним інструментом на стороні клієнта. Це почалося більше приблизно в 2002 році IIRC. Після того, як у нас були належні інструменти для спілкування з HTML, швидка реалізація складних функцій інтерфейсу стала абсолютно новою кулею. Однак, можливо, не було близько 2005 року, коли всі почали дійсно помічати. Я б також сказав, що лише в 2005 році критична маса почала розуміти, що JS насправді є досить загальною загальною мовою.
Ерік Реппен

Відповіді:


31

Я коментував більш ранню відповідь , але вона набирала великих масштабів, тому подумала, що я виправдаю це.

Будь-яка нова мова може досягти успіху лише за умови використання великої кордону в обчислювальних технологіях.

Попередні приклади:

  • C для Unix
  • Objective-C для iOS
  • Perl та PHP для бек-енду Web 1.0
  • Python та Ruby для бек-енду Web 2.0
  • Java для підприємства, що підтримує Інтернет

Щоб відповісти на ваше запитання, JavaScript був мовою для Netscape Navigator назад, коли це був домінуючий браузер. Зокрема, це була мова для динамічного передового розвитку.

Наступний великий язик доведеться вирішити ще одну кордон. Досі, здається, є захоплення землі у задньому просторі веб-розробки. Крім того, мобільні обчислення не повністю вирішені, незважаючи на сучасне домінування Apple. Крім того, є поява багатоядерних та хмарних обчислень, що багато мов намагаються використати (наприклад, паралельні мови, такі як Erlang і Go, або функціональні мови, такі як Haskell і OCaml).

Підприємці мають вираз: «знайти когось у вогні та продати йому пожежний шланг». Тож якщо ви хочете ввести нову мову, чий вогонь ви тушите? Кожен новий кордон в обчисленні приносить цілому ряду головних болів; тому поставте трохи аспірину, і ви будете золотим.


4
Я майже згоден, але не можу зрозуміти, наскільки платформа .NET стала такою популярною?
Томаш Нуркевич

5
@Tomasz Microsoft висунула .NET як нову платформу для Windows (яка все ще має переважну більшість встановлень на робочому столі) і пішла так далеко, щоб припинити VB 6.
chrisaycock

1
Ні Perl, ні Python справді не завдячують своїй початковій популярності в Інтернеті; вони були призначені як мови для швидкого створення інструментів для системних адміністраторів або служб операційної системи (відповідно), і вони були надзвичайно успішними в цих областях, перш ніж вони набули ще більшої тяги з веб-розробкою.
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 (спасибі, містер CRT: p) ніколи не був відокремлений від браузера: він був розроблений Netscape спеціально для використання у своєму браузері, тому це не так, як було прийнято чітке рішення про "скарбничку" на популярність Netscape, щоб зробити мова популярна.
Дін Хардінг

2
@ Mathnerd314 Це не стільки піггітинг, скільки це була єдина реальна мова для нового кордону обчислень , як C для Unix. Кожен, хто хотів динамічний фронт-енд, повинен був використовувати JavaScript.
chrisaycock

4
Щоб відтворити успіх, мені потрібно знайти абсолютно новий кордон обчислень та зробити нову мову обов'язковою. Я бачу ...
Mathnerd314

2
@ Mathnerd314 Поточні кордони, що розвиваються, включають багатоядерні та хмарні обчислення. Дійсно, це така мова, як Ерланг, може використати велику користь. (Інший приклад - підйом Objective-C через появу смартфонів, оскільки Apple настільки великий гравець у цьому просторі.)
chrisaycock

7

Я збираюся додати оновлення до цього, тому що я думаю, що поява JS в мережі клієнтів була неправильно зрозуміла протягом кількох ключових моментів протягом багатьох років.

Це був не Аякс

Я не кажу, що Ajax не був важливим для еволюції розуміння JS як мови, але боротьба за домінування браузера на стороні клієнта закінчилася задовго до введення терміну Ajax.

Це було не тому, що це була єдина гра в місті

Були Java аплети, флеш та VBScript. Я чув, що були навіть інші варіанти сценаріїв у 90-х (але потрібні плагіни IIRC). Java користується величезною популярністю, але аплети були жахливою невдачею. Вони були некрасиві і часто-сир-швейцарські з безпеки, але що ще важливіше, я не думаю, що Java підходила з причин, на які я пітиму пізніше. Flash був дуже популярним і протягом декількох років сильно зміцнився, але навіть коли Flash нарешті мав варіанти SEO, вони зазвичай не використовувались, тому виключно Flash-сайти виявити дуже важко. Навіть зараз більшість з нас регулярно оновлює Flash, щоб ми могли дивитись фільми, але це справжня ахіллесова п’ята. Власна технологія в браузерах дратує. І звичайно VB, який би коли-небудь працював з IE, так що ні.

Правильне місце в потрібний час є актуальним, але не цілим відповіддю

Так, без веб-хвилі для їзди ми, можливо, ніколи не бачили JavaScript або мову в популярному використанні, як це, як тільки ми це зробили. А може, ми мали б ...

Це закінчилося як ідеальний інструмент для проблемного домену

Я б сказав, що близько 2000 років у нас були такі проблеми:

  • IE і Netscape тільки що погодилися почати грати добре, дотримуючись одних і тих же стандартів DOM API та CSS, і нам довелося мати справу з безладною застарілою проблемою JS крос-браузера, з тих пір, які тільки починають ставати керованими без допомоги інструментів нормалізації JS DOM, таких як jQuery post IE8
  • З'явилося ціле нове покоління веб-розробників / дизайнерів, які не всі були обов'язково важкими вагами, як програмісти, які прагнуть покращити свою гру після виходу з бульбашки, коли вони перестали приносити вам гідну зарплату за те, що ви з'явились у дверях без нічого ніж основна HTML-грамотність та деякі навички фотошопу.
  • У місті з'явився цей новий хлопець CSS, який запропонував інтригуючі можливості для того, що в кінцевому підсумку буде називатися DHTML, (більш правильним чином) DOM Scripting, (зараз недоречно) HTML5 (zomghtml5!).

Тож нам була потрібна і глибока мова, що надає можливість фактично структурувати та розробляти більш просунуте додаток з портативними / повторно використовуваними компонентами на стороні клієнта, але також доступним для людей, які мало що знають і просто потрібні речі щоб з’явитися / знову з’явитися, коли ви натиснули кнопку.

Крім того, МС, будучи звірним / некомпетентним та / або домінуючим через анти-конкурентоспроможний практикуючий схем, який вони іноді є, не вдалося дійсно торкнутися їх невідповідності реалізації DOM API протягом хорошого солідного десятиліття, хоча їм це вдалося додайте такі випадкові речі, як оригінальний об'єкт XHR та querySelectors в IE8.

Важливо відзначити, що приблизно до 2005 року нам вдалося настільки повністю поховати складність, пов’язану з вирішенням проблем із переглядачами веб-браузерів, що вже не є серйозною проблемою на фронті JavaScript. Невміння належним чином підтримувати CSS2, поки вони викликали значно біль. Для уявлення про чистий обсяг та глибину питань я рекомендую перевірити quirksmode.org . Я не думаю, що це подвиг, який можна було б досягти так само гладко і в стільки ж бібліотеках на Java, звичайно, не в VB і, безумовно, не з будь-якою стратегією плагінів, мета якої - обійти сторону всієї проблеми, ставши абсолютно новою вид неприємності.

Інші мовні особливості, які викликають багато сенсу для інтерфейсу користувача:

  • Функції першого класу: на мій досвід, ніщо не піддається асинхронізації обробки та керованих подіями парадигм, ніж мова, яка робить його функції першокласними. Обидві проблеми регулярно вирішуються в роботі інтерфейсу користувача.

  • Динамічні типи: лиття та перевірка типів - дуже рідкісна потреба в JavaScript, яка допомагає зберігати код стислим і худорлявим. Проблеми із користувальницьким інтерфейсом можуть отримати складний і брудний дуже швидко. Тримання коду та чітке розуміння потоку даних є критично важливим для розуміння та зміни / збереження його.

  • Це не протекціоніст: Протягом багатьох років хтось проповідує, що вам потрібно захистити себе від власних помилок і німих речей, які інший хлопець може робити з вашим кодом, роблячи конструкції коду дуже жорсткими і негнучкими і неможливо втручатися в початковий намір це було автор та багато людей слухали. Я не скажу, що вони завжди помиляються (можливо, це думаю), але я скажу, що це неправильний підхід до веб-інтерфейсу, і я вважаю, що це щось із явищ, які ми спрацьовували, підтримували та змінювали клієнтів, бічні графічні інтерфейси значно швидшими темпами та з більшою легкістю, ніж така робота, як правило, в минулому виконувались більш обмежувальними мовами. Можливість швидко і легко змінювати речі значно полегшує створення динамічних / флюїдних архітектурних схем, які не потребують монументальної кількості опосередкованості та абстракції, що в кінцевому підсумку полегшує зрозуміти, що відбувається у пеклі у вашому коді а також попередньо виправляти виправлення чи обробляти винятки набагато більш чисто. Легше підтримувати просто за допомогою чистої сили, яка дозволяє бути більш безпосереднім у всьому, що ви робите, та з набагато меншим кодом, ніж це було б потрібно з огляду на іншу філософію.

Як JS став популярним? Він зарекомендував себе як чудовий інструмент для роботи і знову. Це не мова, з якою ми «застрягли», це мова, яка, можливо, надихнула велику еволюцію на популярні мови взагалі. І за це ви можете подякувати Брендану Ейху та будь-яким сучасникам, які допомогли втілити цю ідею в голову, за те, що схема сподобалася дизайну, як натхнення для дизайну, підходить до проблеми, що більше подобається Java.


2

Однією з тактик, що використовувалася спочатку, була назва - "JavaScript" мав на меті популяризувати популярність Java, яка потім деякий час піднімалася.


1

Хіба це не єдиний крос-браузерний клієнтський сценарій мови? Її популярність, схоже, зросла на крок із кроком в Інтернеті, що має сенс.



0

На мою думку, Javascript популярний, тому що він добре підтримується.

По-перше, це єдина мова для Netscape та IE свого часу. Після того, як "спільнота javascript" буде створена і стала стабільною, ніхто не міг подумати про "ще одне благо", яке потрібно будувати з нуля. Вони просто вносять свій внесок у те, щоб зробити його все кращим та кращим.

Якщо ви хочете створити нову популярну мову, перше, про що я думаю, - це ви повинні визначити, хто використовує цю мову . Перших клієнтів завжди важко знайти, і ви повинні зробити так, щоб ваша мова перевершила JavaScript. Можливо, навіть у обмеженій області / обмеженій спільноті програмістів, наприклад, "кращий / швидший javascript-движок для iPhone для мобільних пристроїв" може бути хорошим вибором.

Більше того, ваша мова повинна бути простою у використанні та налаштування за спільнотою, адже саме громада визначає, яка мова могла б вижити.


Важливим є те, як зробити його популярним «достатньо». Тоді це спрацює сама.
Хоанг Лонг

0

Ви не повірите мені, але флеш та (трохи пізніше Java аплети раніше) внесли величезний внесок у зростання популярності javascript та еволюцію самої мови.

Коли на місце події з’явився спалах, це було першим свідченням того, що веб-додатки варто щось думати.

У деякому сенсі конкуренція з плагінами, постійні спроби показати - подивіться, що ми можемо без плагінів, зробили javascript мовою з більш широким спектром програм, а отже, зробили її популярною.


-1

Я подумав, що люди думали, що Javascript повинен щось робити з Java.

(Як і нині все починається з "я")

Стратегія маркетингу / рекламної діяльності відіграє значну роль.


-1

Я дійсно думаю , що це пов'язано з його C-подібний синтаксис . Згідно з Вікіпедією, 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, мав великий вплив на C # і .NET-систему. Тож я б не скидав Паскаль, якби Netscape прийняв Паскаль. Є ще багато розробників Delphi, які присягаються.
snmcdonald

3
Вибачте, видаливши мій коментар, перш ніж ви відповіли - це все одно означало сарказм, і тому не особливо корисно. Я мушу сказати, що, незважаючи на користь для того, щоб діючих програмістів «занурити пальці ніг у воду», синтаксис, подібний С, навряд чи є запорукою успіху. Поміркуйте з Objective-C: більше десятиліття відносна незрозумілість, тоді Apple купує NeXT і робить їх основою для всіляких веселих маленьких гаджетів ...
Shog9

1
@Містер. ЕЛТ. Дуже цікавий коментар. Синтаксис - це точно не все, хоча, я думаю, це важливо для існуючих програмістів. Objective-C мені не дуже подобається С. Можливо, тому спочатку вона не знімалася. Тим не менше, можливо, асоціація з наступними технологіями, що надходять, робить її актуальною, як, наприклад, Java була у 90-х. Що стосується синтаксису, я думаю, що наступне покоління програмістів стає більш комфортним з функціональними та динамічними мовами.
snmcdonald

@Містер. CRT: Або Python з Google, і т.д ... Я б сказав , що «популярність» (як, поширений) , як правило , має мало спільного з мовою самого ( в кінці кінців, є багато фантастичних мов, які не дуже популярні [наприклад , Haskell , Ерланг] та інші, які є потворними та надзвичайно популярними [напр. PHP])
Дін Хардінг

@Dean Harding: Цікавий коментар, тому що мені дуже подобається PHP. Я розумію, що назви функцій бібліотеки мають схожість із Бібліотекою С і все ж приймають синтаксис, схожий на Perl, не затінюючи його множиною sigil. У той же час я розумію критику, оскільки бачу реалізацію ОО і в Perl, і в PHP як в останню хвилину. PHP має схожий синтаксис як на C, так і на Perl (можливо, більше мов), який знайомий багатьом програмістам і при цьому розроблений для дуже популярного домену. Я дійсно думаю, що це поєднання синтаксису та популярних технологій.
snmcdonald

-1

JavaScript став популярним завдяки AJAX та хорошим інструментам перевірки, наприклад Firebug. Звичайно факт, що він працював на всіх основних браузерах і був лише способом зробити DHTML.

В основному, щоб зробити навіть найпотворнішу мову успішною, вона повинна вміти робити дійсно корисну річ, яку не зможе жодна інша мова. Крім того, вам потрібно надати інструменти, які дозволяють програмістам відчувати, що вони контролюють мову, що не було для JavaScript перед firebug.


2
JavaScript отримав нову оренду на життя з AJAX (і, мабуть, Firebug, хоча я думаю, що це другорядне), але він виграв війну ще до того, як почався (і майже п'ятнадцять років тому), оскільки в його просторі не було конкуренції.
wyatt

-4

Javascript популярний як хак для подолання недоліків розмітки HTML для створення веб-сторінок таким чином, як дизайнери хочуть, щоб вони з'являлися. Без Javascript всі веб-сторінки виглядали б так - HTTP 1.1 . Ледь не крок від протоколу gopher .


2
Протокол! = Дизайн! = Сценарій. Ви можете зробити досить красиві сторінки без Javascript за допомогою HTTP 1.0.
декабря о 10:31
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.