Раскрытие информации: Fullstack Academy, учебный курс по программированию, ранее спонсировал Hacker Noon.

Я Кори Гринвальд, и я и мой соучастник в преступлении Джефф Басс - инструкторы в Fullstack Academy в Нью-Йорке. За годы работы в качестве инструкторов и разработчиков мы пришли к выводу, что знание того, как программировать, - это еще не все, что нужно для понимания идеи программирования. Чтобы увидеть полную картину, вам нужно изучить историю технологий и почему все работает именно так. Поэтому мы начали подкаст под названием Tech’d Out, чтобы помочь вам узнать, кто, что, когда, где и почему занимается программированием, в дополнение к тому, что вы знаете о том, как.

В первом выпуске Tech’d Out мы решили объяснить - готовы к этому? - интернет! Мы все знаем, что главное в Интернете - кошачьи мемы, так что никаких сюрпризов - но как он дошел до точки, когда любой из нас может ввести «ca-» в строку поиска Google и закончить ворчливым, отрывистым, нахальным, Дерпы, любящие чизбургеры кошачьи, которых мы хотим? Узнайте, точно, как это сделать, в разбивке нашего первого эпизода ниже, а затем подпишитесь на подкаст, чтобы узнать о других технических концепциях, таких как данные, стили, фреймворки и т. Д.

Интернет в двух словах

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

Когда вы вводите что-либо в панель в верхней части браузера, вы запрашиваете информацию - определенный тип контента или определенную страницу. Вводимый вами адрес проходит через сервер доменных имен (вы, возможно, слышали, что он называется DNS), который принимает введенный вами адрес (или «имя») и преобразует его в IP-адрес. Этот IP-адрес представляет собой числовой код, обозначающий, где можно найти интересующий вас контент. Затем ваш запрос на контент пересылается на адрес, по которому этот контент находится.

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

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

Итак, что составляет веб-страницу?

Хорошо, вот где начинается самое интересное: для того, чтобы браузер мог «рисовать» или визуально передавать запрошенную информацию, ему необходимы определенные вещи. Точно так же, как художник не может рисовать, скажем, без какого-либо холста и какой-то краски, веб-браузер не может визуально передать нам информацию без - барабанная дробь, пожалуйста! - HTML.

HTML - это аббревиатура от языка гипертекстовой разметки, который составляет основную часть содержимого любой веб-страницы. Все, что вы видите на странице - кнопки, логотипы, текст - это HTML.

После этого следует стилизация, которая делает контент красивым и не дает вашему экрану быть просто черно-белым текстом с синими ссылками. Стили представляют собой способ организации содержимого и называются CSS (каскадные таблицы стилей).

Последний кусок головоломки - это то, что позволяет вам взаимодействовать с веб-страницей. Ранее мы упоминали, что если мы зайдем в Google и введем c-a-, он предскажет, что мы будем искать что-то, связанное с кошками, и начнет давать нам поисковые подсказки. (И если вы не верите, что Интернет для кошек, вы не встречали алгоритм машинного обучения, который начал чистить Интернет и стал одержим кошками). Как веб-страница может так взаимодействовать с нами? Как он может логически мыслить о вашем поиске и предлагать полезные предложения? Ответ на это: JavaScript.

JavaScript

JavaScript - это то, что делает веб-страницу интерактивной. Но с таким большим количеством разных языков, таких как Ruby, C, Python и т. Д., Почему люди сосредоточены на JavaScript? Короткий ответ: вы не можете писать Python в браузере. К 2020 году JavaScript будет единственным вариантом интерактивности в браузере.

Эволюция Java

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

Следующие успехи произошли в начале 90-х годов с дебютом браузера под названием Mosaic, который был первым веб-браузером, в котором упор был сделан на графический интерфейс пользователя (GUI). Как вы могли догадаться по термину «графический», графический интерфейс добавляет изображения в микс и отображает их вместе с текстом. Большие изменения. Отсюда вырос первый крупный коммерческий веб-браузер от компании Netscape. Этот теперь известный браузер назывался Netscape Navigator.

Но умы, стоящие за Netscape Navigator, не останавливались на достигнутом. Они решили создать новый язык, чтобы позволить разработчикам экспериментировать со стилями и позволить пользователям взаимодействовать с веб-страницей. Первым кандидатом на этот язык была Java, появившаяся примерно в 1995 году. Взаимодействие с пользователем стало возможным благодаря встроенным программам, называемым Java-апплетами. Разработка продолжалась, и Netscape решила, что было бы неплохо иметь второй «связующий» язык - который впоследствии стал известен как язык сценариев - для помощи в таких вещах, как добавление функциональности к контенту. Эта инициатива привела к созданию JavaScript, который, важно отметить, почти ничего не имеет общего с самой Java (не считая основных синтаксических сходств). Свое название он получил не иначе как из-за того, что в то время была популярна Java. (Мы должны объявить о провале брендинга по этому поводу.)

Что может вас удивить, так это то, что отрасль изначально не поддерживала JavaScript, и разработчики тоже не тратили на это много времени, потому что он воспринимался как простой язык сценариев. А потом все изменилось.

JavaScript правит верхом

Браузеры начали борьбу за господство. Microsoft перепроектировала свою собственную версию JavaScript, которую они назвали - подождите - JScript. (Ошибка брендинга номер два.) Он был очень похож на JavaScript (как вы удивлены ?!), но не идентичен.

По мере того, как все больше браузеров начали использовать функциональные возможности, предлагаемые языками сценариев, был разработан ECMAScript. Думайте об этом как о формализации JavaScript - языка в его идеальной форме, в котором исчерпывающий подход к лучшим практикам JavaScript. Видите ли, разработчики теперь согласились, что среди браузеров должен быть стандарт (индустрия браузеров резко выросла, и все они сильно различались), и это было целью этого нового ECMAScript. Без такого стандарта код любой данной веб-страницы мог бы работать только в одном или двух браузерах, в результате чего пользователи других браузеров не могли получить доступ к этим веб-страницам. Поэтому, когда вы слышите термин «ES5» или «ES 2015», это означает ссылку на E CMA S cript. Теперь, когда появился стандарт , основанный на JavaScript, неудивительно, что JavaScript оказался языком, наиболее соответствующим этим стандартам, или что теперь он находится на пути к господству в Интернете.

Примерно в 2000 году был представлен Web 2.0. Сама по себе это не была новая версия Интернета, но поскольку JavaScript теперь позволял взаимодействовать со страницей, разработчики теперь могли реализовывать функциональность за кулисами на любой странице, а это значит, что веб-страницы становились все более популярными. динамический. Web 2.0 с его динамическими страницами еще более ясно показал, что с JavaScript отпала необходимость в апплетах Java или Flash. Именно тогда другие языки начали постепенно исчезать, и JavaScript действительно получил шанс засиять как язык Интернета.

Но не все шло гладко. Браузеры по-прежнему реализуют JavaScript по-разному. Несмотря на ECMAScript, были несоответствия на уровне JavaScript и в способах взаимодействия Java с HTML и CSS. Разработчикам все еще приходилось бороться за достижение одинаковой производительности в разных браузерах, и этот процесс часто требовал, чтобы каждая веб-страница имела свой набор кода для каждого типа браузера.

К этому времени Microsoft Explorer уничтожил Netscape Navigator, и из его пепла вырос Mozilla Firefox - так началась еще одна серия войн браузеров, тремя крупными игроками были Explorer, Firefox и Opera. На этом этапе веб-сайты также превратились в веб-приложения . Сайты больше не были статическими страницами прошлого, а стали самостоятельными приложениями.

jQuery выравнивает игровое поле

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

Второстепенным эффектом jQuery было то, что он дал больше шансов конкурентам Internet Explorer. До jQuery небольшие группы разработчиков, которые могли позволить себе разработку только для одного браузера, обычно выбирали Explorer, делая его все более и более мощным. Но jQuery выровнял игровое поле - если разработчики следовали стандартам jQuery, им все равно нужно было написать свое веб-приложение только один раз, но оно будет работать на всех браузерах, и тогда пользователи смогут выбрать браузер, который им больше всего нравится, вместо того, чтобы ограничиваться браузером, большинство приложений работали с ними, независимо от того, насколько они удобны для пользователя.

JavaScript становится языком Интернета

К настоящему времени JavaScript действительно стал языком Интернета - или, по крайней мере, интерфейсом Интернета, частью, с которой взаимодействует пользователь. Но там, где есть интерфейс, есть и серверная часть, которая фактически извлекает запрашиваемый вами контент. А back-end, в отличие от front-end, может быть написан практически на чем угодно, от Django до Spring. Так что это значило для JavaScript?

Google Chrome вступает в бой

В 2008 году к конкурсу присоединился один из крупнейших игроков в браузерной игре: Google Chrome. Что сделало Google Chrome на порядки лучше, чем предыдущие браузеры, так это его производительность, которая стала возможной благодаря разработанному ими движку JavaScript.

Все, что делается на компьютере, будь то рабочий стол или просто смартфон, должно происходить на двоичном уровне.

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

Таким образом, движок Google Chrome V8 смог взять код JavaScript и скомпилировать его на машинный язык в реальном времени. Это было очень эффективно и очень быстро, а также сделало JavaScript намного быстрее. До сих пор разработчики и пользователи жаловались, что JavaScript работает медленно, но все изменилось с появлением движка Google V8.

JavaScript становится полным стеком

А затем в 2009 году с JavaScript произошло нечто большее. Один разработчик-одиночка взял движок Google V8 и установил его на свой компьютер. Он добавил к нему кое-что еще и дал людям возможность писать JavaScript непосредственно на компьютере, а не только в браузере, как JavaScript всегда работал. Да, теперь его можно было запускать прямо на компьютере, и он больше не был привязан к среде браузера.

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

С выпуском Node.js то, что когда-то было чисто интерфейсным языком, теперь можно было запускать на стороне сервера и прислушиваться к запросам пользователей, преобразовывая JavaScript в язык full-stack, который поддерживает оба интерфейса: -конечная и back-end разработка.

Так что ты думаешь ?!

Какая поездка, а? Кто знал, что существуют войны браузеров или что JavaScript когда-то был второстепенным языком? Кто знал, что Интернет был создан для того, чтобы ученым не приходилось копаться в кипах бумаг, чтобы провести какое-либо исследование? Кто знал, что мемы с кошками не являются конечной целью? Если вы ушли с сегодняшнего урока истории, чувствуя себя умнее, чем когда начинали, то регулярно присоединяйтесь к нам и узнавайте, сколько вы можете узнать из подкаста. Tech’d Out доступен в iTunes и Anchor.