Універсальний JavaScript

На початку був Netscape. І забажав Netscape виконувати Scheme-код в браузері Netscape Navigator. І найняли вони Брендана Айка (Brendan Eich), щоб він у поті чола свого працював над цим. Але потім вони передумали і вирішили, що Java хочуть вони. І ось, народжений був JavaScript. І було це досить добре.

Божевільна ідея оволоділа Райаном Далом (Ryan Dahl) роки потому: подружити движок V8 з бібліотекою libev, щоб програмісти могли виконувати свій JavaScript-код за межами браузера. І виник Node.js. І npm. І люди зраділи.

І стали люди писати веб-сервера на JavaScript, і запускати вертольоти з JavaScript на борту, і ставити його на планшети і смартфони, і вбудовувати його у термостати і холодильники, так і у все, у що їх душа бажала. І поширився JavaScript вельми і вельми широко. І зневажали Нормальні Програмісти™ (Serious Developers) простих людей, які пишуть на JavaScript, але прості люди продовжували писати на JavaScript все більше і більше.

І чекали люди Слово, здатне вмістити в себе всю широту проникнення JavaScript, бо слово «JavaScript», як воно є, більше не вміщало тієї широти. І промовив Чарлі Роббінс (Charlie Robbins) думка, що терміном «Isomorphic JavaScript» можна назвати JavaScript-код, що виконується і в браузері, і на сервері. І ніхто нафіг не розумів значення цього, але, замість просто програмування на JavaScript, люди стали програмувати на изоморфном JavaScript.

Секундочку, що?

Вводячи термін «Isomorphic JavaScript», Роббінс пояснює, що він має на увазі (майже) будь-який рядок коду, здатну виконатися і в браузері, і на сервері. Але, якщо ми уважно подивимося на значення слова «изоморфный», ми побачимо, що це є «подібний за формою і структурою». Іншими словами, дві різні сутності, що виглядають однаково. Хороші приклади ізоморфних сутностей є у нас:
jQuery
та
jZepto
або
Underscore
та
lodash
. Бібліотеки ці схожі за формою (однаковий API), але різні в плані лежать в їх основі ідей та філософії.

Коротше, нам потрібно Слово для одного і того ж коду, здатного виконуватися в різних оточеннях. Бо в даний час ми виконуємо JavaScript-код не тільки на серверах та браузерах, але і на мобільних/вбудованих пристроях. На Raspberry Pi, Wii U і айФонах. Однак, це суто инженероориентированные аргументи. Ясне розуміння Слова — ось що більш значуще.

Все дуже суб'єктивно в цьому світі, звичайно ж. Нещодавно Райан Флоренс (Ryan Florence) і я (Michael Jackson, автор) почали вести курси по React.js. Ми вже навчили кілька сотень програмістів, і багато з них не розуміли значення Слова і запитували, що означає «изоморфный». Як показала практика, коли ми говорили «універсальний» замість «изоморфный», подібних питань не виникало. Це типу як Apple говорив «універсальний» про програми, які виконувалися на двох архітектурах у часи переходу з PowerPC на Intel.

Бо сказано, в Computer Science є дві великі проблеми. Ми говоримо про другу, бо хороші Слова аццьки важливі, і говорять вони про цілі (purpose) та обов'язки (responsibility). І нехай поміркує про це на дозвіллі кожен.

Що ж, давайте назвемо наш JavaScript-код зрозумілим усім Словом. Реальним Словом, замість вкидання в наш программистский, і без того засмічене, словник слова, якому не місце в ньому. І так буде Слово не тільки про сервера і браузери, але про все.

І так буде Словом Universal JavaScript.

Моє спасибі наступним товаришам: Ryan Florence, Pete Hunt, Peter Cooper, Dan Abramov і Mark Dalgleish за рецензування. Також, спасибі Райану за вичитку цього поста.
У світлі вышепереведенного / вихідного поста / власної думки я голосую за

/>
/>


<input type=«radio» id=«vv68345»
class=«radio js-field-data»
name=«variant[]»
value=«68345» />
Isomorphic
<input type=«radio» id=«vv68347»
class=«radio js-field-data»
name=«variant[]»
value=«68347» />
Universal

Проголосувало 208 осіб. Утрималося 89 осіб.


Тільки зареєстровані користувачі можуть брати участь в опитуванні. Увійдіть, будь ласка.


Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.