Мы делаем веб приложения ради экономии — но этот путь ведет нас во тьму

в 15:30, , рубрики: Блог компании VDSina.ru — хостинг серверов, веб-версия, Разработка веб-сайтов

Мы делаем веб приложения ради экономии — но этот путь ведет нас во тьму - 1

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

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

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

Когда он об этом сказал, я уверен, пришли всякие плюсисты, и стали ворчать — ничего не получится, веб это веб, а приложения это приложения. Ворчунов никто слушать не стал — они вечно всем недовольны, а мир как-то надо двигать вперед. Идея ведь заманчивая — зачем делать пять приложений, если можно сделать только одно сразу на все платформы. Сделать его на фронтенд стеке, где каждый сам себе папа, и любой хрен из гаража «Создатель someGreatShit.js, rambda.js contributor, shit.js committee». Технологии и библиотеки на любой вкус, а инструменты обновляются каждый день, и писать тут код — очень модно.

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

Когда они считали, сколько денег и времени им сэкономят их web-apps, они забыли посчитать, насколько они хуже обычных приложений. Они начали их делать, весь остальной мир начал обезьянничать, и теперь, когда ты пытаешься сделать по хорошему приложению на каждую платформу — тебе крутят пальцем у виска. Ты что идиот — зачем ты делаешь лишнюю работу?!

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

Что сами ограничения браузера — такие как адресная строка, рестрикты по безопасности, встроенные девтулзы, отданное пользователю изменение размеров окна — и кучу всего ещё — не ложаться на все концепции ПО.

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

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

А проекту то уже год, переписывать на нативки — не вариант. Он теперь ВСЕГДА будет таким.

Но ничего страшного — ведь у всех наших конкурентов то же самое. Когда на рынке есть штука, которая удешевляет очень дорогой процесс разработки в несколько раз — в мире не будет вещи, которая остановит бизнес от выбора. И пользователи могут теперь сколько угодно ныть, что у них ничего не грузится, а кнопки на айосе не реагируют на тапы. Братан, ной сколько влезет, лишняя команда разработки для нативного приложения под твой сраный андроид стоит полмиллиона долларов в год. Ты и твои проблемы обходятся намного дешевле.

Самое страшное — эта парадигма идеологически верная. На высоком уровне, ПО — это автоматизация процессов. Гораздо лучше, если программисты будут заниматься сложной работой по этой автоматизации, а не разруливать специфику платформ, и делать одно и то же приложения пять раз.

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

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

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


На правах рекламы

Нужен сервер для разработки или для любых других целей? Эпичные серверы от VDSina с современными и мощными процессорами от AMD прекрасно подойдут. Широкий выбор конфигураций с посуточной оплатой. Рекомендуем попробовать прямо сейчас!

Автор: Philipp Ranzhin

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js