Цифровой журнал «Компьютерра» 2014 № 06 (211) - страница 16
Тим Брей — жжёный программист с 30-летним опытом, наделённый совершенно уникальным талантом философского осмысления бытия. Признаюсь, других таких я вообще не встречал по жизни — ни в виртуальности, ни наяву. Гениальных программистов — сколько угодно! Гениальных метафизиков — меньше, но тоже есть. Но так, чтобы в одном флаконе и то и другое, — можно пересчитать на пальцах одной руки. Тим Брей один из них.
Пост, послуживший отправной точкой для нашего осмысления, называется весьма незамысловато — «Software 2014», что не помешало Тиму Брею в паре тысяч знаков разложить по полочкам всю проблематику современного софтостроения. Сделал он это с позиции программиста, поэтому оставляю профессиональной части аудитории насладиться нюансами технотронного жаргона самостоятельно по линку выше (бо не смею в калашный ряд :-) ), сам же попробую оценить ту же ситуацию, однако ж с другой стороны баррикад — пользовательской. То есть «Software 2014» глазами не программиста, а потребителя.
Синопсис концепции Тима Брея сводится к простой истине: код на серверной стороне выглядит восхитительно, код на стороне клиентской — приближается к катастрофе. Обосновывает свою позицию программист-философ следующим образом.
Server-side Programming:
— Все технологии отшлифованы десятилетиями интенсивных разработок и являют собой сегодня упорядоченный мейнстрим, объединённый важной характеристикой: независимо от языка программирования, среды, фреймворка и библиотек серверные программы универсально ориентированы на HTTP: они этот протокол понимают, умеют на нем общаться и создают на его основе API.
— Универсальность серверному программированию обеспечивает всеобщее признание схемы использования шаблонов проектирования Model-View-Controller (MVC, модель – представление — контроллер). Несколько портят картину языки PHP и Spring («Кое-кто ещё пытается писать на них важные приложения, но их давно уже никто не принуждает к такому выбору»).
— Существует большое число языков программирования, пригодных для создания серверных приложений, которые с лёгкостью справляются с главным трендом 2014 года — масштабируемыми системами.
Ну и так далее. Картина, одним словом, замечательная. Совсем другой коленкор —
Client-side Programming:
— Главная причина кошмара, связанного с написанием программ, которые исполняются не на сервере, а на клиентском оборудовании, кроется в одном слове — mobile! В самой мобильности, ясное дело, нет ничего предосудительного — чудовищна лишь современная реализация этого понятия. А именно: для того чтобы создавать по-настоящему универсальный мобильный клиент, программисту требуется писать три разных кода — для Web, для iOS и для Android. Перейти от одного к другому автоматически не получается, нужно именно что писать три разных программы.
— И iOS, и Android по гамбургскому счету — ужасные операционные системы хотя бы потому, что нужно пользоваться ужасными языками — Java или Objective-C. К ним можно привыкнуть, их можно принять на веру, с ними можно примириться и даже — полюбить, но это всё — от безвыходности. Эта любовь сродни любви заложника к захватившему его террористу (стокгольмский синдром). Можно, конечно, писать приложения на HTML5, но это такой же паллиатив, особенно на фоне возможностей, существующих для server-side программирования.
— Цикл обновления на мобильных платформах чудовищный. В случае с iOS речь идёт о днях, на Android — о часах. Тим Брей предлагает сравнить процедуру обновления с приложениями, основанными на браузерах (несколько секунд), чтобы понять критичность этого недостатка мобильных экосистем («Вы обнаружили в своём приложении баг, который ведёт к потере данных, нарушению целостности пользовательского аккаунта и подрыву безопасности клиента? Sucks to be you — хреново быть в вашей шкуре!»).
— Мобильному «железу», с которым приходится работать, хронически недостаёт памяти, мощности ЦПУ и заряда батареи.