Я влюбился в JavaScript задолго до того, как он стал крутым. Я не уверен в точной дате и времени, но определенно до StackOverflow и, вероятно, после того, как GMail объявил о своей бета-версии. В свое время он использовался в основном для захламления невинных веб-сайтов никому не нужными наворотами. Как эти январские вальсирующие снежинки, напоминающие вам, что Рождество закончилось, и бурбон тоже, и у вас нет друзей.

У моего соседа по комнате были друзья, и он познакомил меня с парнем, который был глубоко увлечен этим возникающим интерфейсом. И этот парень рассказал мне два самых больших секрета JavaScript: это не Java и не скрипт. Что ж, все это знают сейчас, но в то время знание того, что у вас есть полноценный мультипарадигмальный язык практически в каждом браузере в мире, было похоже на оживление городской легенды. Это было похоже на то, как если бы вы узнали, что ваша любимая зубная паста на самом деле сделана из кокаина, вы просто недостаточно сильно втираете ее в вмятины.

Я подсел. И я писал довольно причудливые вещи на JavaScript. Подобно оптимизатору многомерных функций, который может выводить имена переменных из строкового выражения, а затем находить их значения в локальном оптимуме. Все менее чем в 100 строках кода. Но не потому, что мне действительно пришлось, а потому, что я мог. Язык, сочетающий динамическую типизацию с функциональными возможностями, JavaScript был, пожалуй, самым универсальным, наиболее «легким для выполнения странных вещей» языком среди основных.

Теперь, конечно, все сделано из кокаина. Теперь каждый основной язык является мультипарадигмальным, у каждого есть функциональное программирование; и динамически типизированные имеют аннотации типов, а статические типизированные имеют типы переменных. И это подводит нас к неприятному выводу. JavaScript уже не так интересен как язык.

Хорошие идеи теперь не привилегия, а товар. Они свободно переходят от одного комитета по стандартизации к другому, делая все основные языки все более и более похожими. Если я завтра начну бегать трусцой и перейду в алкоголь на морковный сок, я смогу дожить до того времени, когда все основные языки программирования станут одинаковыми.

JavaScript слишком долго удерживал доминирующее положение во фронтенде. По сути, вся его слава исходит не от гениального дизайна, а от той простой вещи, что он стал де-факто стандартом на волне роста пропускной способности и мощности процессоров. Теперь, когда все больше внимания уделяют производительности и экономии энергии, все это переделывается.

Если подумать, то, как все работает сейчас, довольно глупо. Я имею в виду, что для того, чтобы на вашем экране были депрессивные снежинки, вы должны получить исходный код JavaScript с сервера, затем запустить на нем лексический анализ, синтаксический анализ и семантический анализ, а затем кучу машинно-зависимых оптимизаций; и только потом самая важная часть - оптимизация машинного уровня и компиляция машинного кода. Почему мы хотим делать все это на каждом клиенте, если не для каждого запроса, когда мы можем сделать большую часть работы один раз и на стороне сервера?

И вот решение. WebAssembly решает именно эту проблему. Это двоичный исполняемый формат для браузеров. Он обещает сделать все лучше, быстрее, прочнее, надежнее и удобнее в обслуживании. И это также делает JavaScript неактуальным.

Теперь каждый язык, который может компилироваться в WebAssembly, а это практически любой компилируемый язык когда-либо, будет работать для фронтенд-разработки. Java, Python, C #, C ++, даже Фортран, если хотите. Так что в ближайшее время JavaScript не станет единственным вариантом. Впервые за время своего существования он столкнется с конкуренцией в своей сфере.

Не то чтобы конкуренция обязательно убила JavaScript. Технически Свифт не убивал Objective-C. Он по-прежнему довольно популярен, совсем не так, как в старые добрые времена. И Delphi не был полностью уничтожен C #. И машины на Лиспе не сразу полностью проиграли Unix. И, возможно, вы мне не поверите, но Фортран все еще активно развивается.

Вы только должны понимать, что любой выбор карьеры - это азартная игра. Точно нет ничего. И ничего на всю жизнь. Ну, если только вы не собираетесь прожить совсем недолго. JavaScript сейчас на вершине своей игры. Он выглядит большим, блестящим и многообещающим. Но технологии меняются. Все делает.

WebAssembly определенно изменит правила игры в мире JavaScript. И я даже не уверен, что мир JavaScript появится лет через 5-10.

Если вам понравилась эта статья, возможно, вам понравится и моя электронная книга. Он называется "Так вы думаете, что знаете C?" И еще десять коротких эссе по языкам программирования. Это весело, коротко и бесплатно: https://wordsandbuttons.online/SYTYKC.pdf

Хакерский полдень - это то, с чего хакеры начинают свои дни. Мы часть семьи @AMI. Сейчас мы принимаем заявки и рады обсуждать рекламные и спонсорские возможности.

Чтобы узнать больше, прочтите нашу страницу о нас, поставьте лайк / напишите нам в Facebook или просто tweet / DM @HackerNoon.

Если вам понравился этот рассказ, мы рекомендуем прочитать наши Последние технические истории и Современные технические истории. До следующего раза не воспринимайте реалии мира как должное!