This is my slides and speech for NodeSchool report in Chernivtsi about JavaScript.
Всім привіт, мене звати Сергій і сьогодні я розкажу вам коротко про JavaScript і де його використовують.
Ну і раз так прийнято, давайте почнемо з самого початку, коли, ким і для чого був створений JavaScript?
У 1995 році в компанії Netscape, де на той час працював Брендан Айк, працювали над тим, щоб впровадити в браузер Netscape мову програмування.
Scheme.
Коли його перевели в команду, яка працює над клієнтською частиною він почав розробляти концепцію нової мови програмування.
Спочатку, мову назвали Mocha.
Тоді її перейменували у LiveScript.
Але оскільки на той час була дуже популярна така мова програмування, як Java. LiveScript перейменували у JavaScript, оскільки це мало б принести йому більше популярності. Але JavaScript немає ніякого відношення до Java.
У 1996 році компанія Microsoft випустила аналог мови JavaScript, та назвали вони його JScript.
Тоді Netscape провели стандартизацію і назвали її ECMAScript.
Особливості ядра мови JavaScript визначені у стандарті під назвою ECMA-262. Мова, яку визначає цей стандарт, називається ECMAScript, з якої JavaScript у браузерах та оточенні Node.js є надбудовою. У той час, коли браузери та Node.js можуть розширювати можливості за допомогою додаткових об’єктів та методів, ядро мови залишається таким, яким воно визначене у ECMAScript, тому розвиток ECMA-262 є життєво важливим для успіху JavaScript в цілому.
У 2007 році JavaScript опинився на роздоріжжі. Популярність Ajax породила нову епоху динамічних веб–додатків у той час, коли JavaScript не змінювався зі своєї третьої редакції ECMA-262, опублікованої у 1999 році.
TC-39, комітет відповідальний за розвиток ECMAScript, зібрав великий проект специфікації ECMAScript 4. ECMAScript 4 був всеохоплюючим, вносячи у мову як маленькі так і великі зміни. Нововведення включали новий синтаксис, модулі, класи, класичне наслідування, приватні методи, можливість оголошувати власні типи та інше.
Зміни, що охоплювали ECMAScript 4 викликали розкол у TC-39: деякі учасники вважали, що четверта редакція надто радикальна. Група лідерів з Yahoo, Google, та Microsoft запропонували альтернативу наступній версії ECMAScript, яку спочатку назвали ECMAScript 3.1. Версія «3.1» мала демонструвати поступові зміни у існуючому стандарті.
ECMAScript 3.1 вводив кілька синтаксичних змін, але не фокусувався на властивостях атрибутів, вбудованій підтримці JSON, додаванні методів до вже існуючих об’єктів. Хоча спочатку були спроби узгодити ECMAScript 3.1 та ECMAScript 4, зрештою це не вдалось, оскільки обидва табори мали вкрай різні погляди на те, в якому напрямку повинна розвиватись мова.
У 2008, Брендан Айк, творець JavaScript, анонсував, що TC-39 зосередить свої зусилля на стандартизації ECMAScript 3.1. Вони вирішили, що представлять мажорні синтаксичні та функціональні зміни ECMAScript 4 тільки після того, як нова версія ECMAScript буде стандартизованою, і всі члени комітету будуть працювати для того, щоб зібрати найкраще з ECMAScript 3.1 та 4 разом — ці зусилля були названі ECMAScript Harmony.
Зрештою, ECMAScript 3.1 був стандартизований п’ятою версією ECMA-262, також відомою як ECMAScript 5. Комітет ухвалив рішення не випускати стандарт ECMAScript 4, щоб уникнути плутанини зі стандартом, який мав таке ж ім’я, проте припинив своє існування.
Потім розпочалась робота над ECMAScript Harmony, а ECMAScript 6 став першим стандартом, випущеним у цьому новому «гармонійному» руслі.
ECMAScript 6 досягнув функціонально завершеного статусу у 2015 році та був офіційно названим «ECMAScript 2015» (хоча цей текст досі називає його ECMAScript 6, оскільки така назва більш звична розробникам). Нововведення варіюються від повністю нових об’єктів та патернів до синтаксичних змін, нових методів вже існуючих об’єктів. Найцікавіша річ у ECMAScript 6 — це те, що всі ці зміни спрямовані на проблеми, з якими безпосередньо зустрічаються розробники.
Пару слів про підтримку ECMAScript 6 браузерами.
Ну і звісно, куди без jQuery. Хотілося би відмінити участь цієї бібліотеки у розвитку JavaScript. І з однієї сторони це добре, що вона допомогла JavaScript змінитися в кращу сторону. Але я бачу деякі мінуси в її шаленій популярності. Вона стала такою популярною, що навіть зараз можна зустріти людей, які порівнюють JavaScript та jQuery. Або взагалі не вчать JavaScript а переходять зразу до jQuery. jQuery це всього навсього бібліотека. І без знань JavaScript її вивчати неможна. Хоча можливо це не мінус, можливо просто нам потрібно бути акуратнішими, коли ми хочемо вивчити щось нове і дуже швидко.
То де можна використовувати JavaScript? Та чому він такий унікальний?
JavaScript можна виконувати не тільки в браузері, взагалі ми можете його виконувати де завгодно, лиш вам для цього потрібна спеціальна програма - інтерпретатор.
Можливо ви чули такі слова як компіляція та інтерпретація. В чому різниця?
Компіляція - це коли вихідний код програми, за допомогою компілятора, перетворюється на іншу мову, зазвичай - в машинний код.
Інтерпретація - це коли вихідний код виконується "на ходу".
В усіх сучасних браузерах є інтерпретатор для JavaScript.
І до 2009 року його використовували лише у браузерах. Але...
У 2009 році на європейській конференції JSCONF. Чувачок, по імені Райан Дал розказав, як можна писати серверну частину сайту на JavaScript.
І тоді появився пакетний менеджер. NPM (Node Package Manager)
Також ви можете писати на JavaScript десктопні програми, для цього є Electron, писати нативні додатки, наприклад на React Native.
А в чому його унікальність?
Перша і основна причина його унікальності - він є у всіх браузерах, і для браузера можна писати лише на JavaScript. Є мови, які створювалися як заміна для JavaScript, наприклад CoffeeScript, TypeScript чи Dart. Але в кінці вам все рівно прийдеться транспілювати код на CoffeeScript, TypeScript чи Dart у код на JavaScript. Тому знання JavaScipt дуже важливі для веб-розробника, і взагалі без нього нікуди.
JavaScript повністю інтегрований з HTML/CSS.
З ним дуже легко працювати.
Майже.
Про підводні камені, на які ви можете натрапити вам розкаже Террі.
Якщо когось цікавлять слайди або оглядовий текст моєї доповіді. Ось QR-code для слайдів.
І ось саме посилання на книжку, яку перекладає Денис. Про новий стандарт ECMAScript 6.
Всім дякую за увагу.