Критическое мышление. Как думать под давлением - Василий Николаевич Пимкин. Страница 9


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

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

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

Клиентские и серверные приложения

Итак, все теперь понятно нам в Интернете: серверы принимают на входы и выдают с выходов данные, которые по двум слоям стека протоколов – Internet и Transport – передаются на клиентские устройства. Клиентские устройства из полученных данных строят видимые и доступные человеку интерфейсы (UI, User Interface). Пользователи воспринимают передачу данных по четырем уровням стека протоколов через два разнонаправленных межсетевых экрана как прозрачную, бесшовную и естественную, и формируют свой пользовательский опыт (UX, User eXperience), сосредотачиваясь на содержании и смысле передаваемых данных и, как правило, не отвлекаясь на эффекты самого процесса передачи.

Пользовательские интерфейсы теперь, как правило, по умолчанию графические, так что собственно термин GUI, Graphic User Interface теперь применяется только в контексте работы технических специалистов как противоположность текстовому интерфейсу командной строки. Они существуют и широко применяются в эксплуатации серверов, в том числе доступных в Интернете. Это мы, возможно, рассмотрим в подробностях позже, сейчас же нам важно не отвлекаться от специфики пользовательских интерфейсов.

Все браузеры – клиенты, но не все клиенты – браузеры. Браузеры всеядны и стремятся быть пригодными для работы с любыми сайтами в Интернете. Небраузерные клиенты, как правило, специально настраиваются для взаимодействия с определенными серверами. Широко представлены и известны клиентские (как правило, мобильные) приложения, содержащие встроенный браузер, ограниченный настройками и так же специально сконфигурированный для определенных целевых серверов. Такие браузеры лишаются всеядности и используются в составе специфического клиентского приложения как наборы готовых реализаций базовых функций построения пользовательских интерфейсов. Для большинства проектов создание собственной реализации этих базовых функций нецелесообразно, поэтому приложения, технически представляющие собой браузеры одного сайта, очень распространены.

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

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

На сервере мы можем использовать абсолютно любой язык программирования по нашему выбору. Задачи упаковки данных в понятный браузерам комплект HTML–CSS-JS решены на массе современных сколько-нибудь зрелых языков программирования. Передавать чистые данные для всех прочих клиентов в формате JSON, JavaScript Object Notation, и некоторых других, не исключая прямых двоичных (binary), и того проще.

Здесь самое большое значение имеет выбор между интерпретируемыми и компилируемыми языками программирования. Для интерпретируемых на фактических железных серверах запускаются виртуальные машины с готовыми наборами реализаций базовых функций. Это дает некоторое ускорение разработки и делает ее удобнее и проще. Компилируемые системы более сложно и трудоемко собираются для каждой операционной системы, фактически установленной на каждый железный сервер. Это дает выигрыш в скорости исполнения кода за счет прямого доступа к системным ресурсам, представляя уже примерно понятные сложности в разработке и развертывании.

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

Превосходная степень текстов

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

Технически гипертекст – это примерно все содержание Интернета. Это первые две буквы любой ссылки на любой сайт, начинающейся с указания протокола https://. Даже если нужный нам сайт тестовый или по какой-то другой причине использует не защищенный средствами Transport Layer Security протокол передачи гипертекста, http:// все равно остается. Если открыть код любой страницы любого сайта, первое, что мы там увидим, будет открытие тега <html>, а последнее – его закрытие </html>.

При этом гипертекст всегда передается в виде совершенно обычного текста, который мы можем, в случае чего, сами прочитать, без всякого браузера. Только никакой вот этой гипер-магии при этом не случится, мы будем только постоянно спотыкаться о странную пунктуацию, сопровождающую относительно человеко-понятное содержимое этого текста обильно и постоянно. Дополнительным вызовом для профессионалов веб-разработки может быть попытка в уме применить каскадные стилевые таблицы CSS или прикинуть примерно, как отработает код на языке JavaScript. Впрочем, непосредственно к языку разметки гипертекста HTML, HyperText Markup Language, ни CSS, ни JS не относятся. Разве что к этой загадочной гипер-магии. И CSS, и JS обязательно должны быть приделаны к HTML странице, а то чуда не будет.

То есть, сам по себе HTML – просто текст, который просто статически отображается на странице браузера, и будет оставаться неизменным. Банальная эрудиция пользователя Интернета прямо-таки взывает добавить сюда продолжение «до тех пор, пока мы не обновим страницу». Но сделаем над собой усилие и отставим пока в сторону эту новомодную механику обновления

Перейти на страницу: