@ Говорит сделайте мне программку чтобы стабильно работала и мало весила.
@ Ему считают смету с написанием своих библиотек, чтобы мало весило, потому как в готовых решениях много лишнего, что собственно и ест место, плюс время на отладку всего этого добра. Это уж не говоря о том, что время разработки увеличивается в несколько раз
@ Заказчик смотрит на смету.
@ Говорит хуй с ним с весом, давайте на готовых библиотеках.
@ Анонимы пишут в интернетах, что программисты не умеют программировать.
Простой пример. В приложении нужна функция. Можно взять сторонний компонент и потратить неделю на его внедрение, но компонент реализует еще много ненужных функций, которые вместе с нужной формируют избыточный объем. А можно не брать сторонний компонент и потратить год, чтобы самостоятельно с нуля разработать нужную функцию и оптимизировать ее под твое приложение, и она будет весить копейки. Каким путем пойдут разработчики очевидно, так как за год работы платить никто не будет. Есть еще вариант, что избыточный объем формируют ресурсы внешние, картинки, музыка и т.д. Но там тоже нужна адекватная задаче оптимизация, будут ли на это потрачены ресурсы разработки - это отдельный вопрос.
Берешь условный "hello world". Добавляешь библиотеку для работы, скажем, с дропбоксом. Хуяк — и приложение "подросло" метров эдак на 10. Вот просто так, на ровном месте.
Добавил библиотеку для работы с AR: условно +50 мегабайт. Если банковская шняга, то там будет еще дофига всякой всячины для входа с биометрией, для BankID, для всяких ApplePay/GooglePay... Не забудем про кэш.
В том, что приходят эффективные менеджеры и требуют React Native везде :) А как говорится, есть спрос - есть предложение :) И их можно понять - их задача - потратить меньше денег на разработку. Потом приходят артисты и у тебя появляется куча ресурсов, которые должны быть доступны вот прям всегда. Потому что тебе вот эту картинку надо показать при первом запуске (и только при нем), даже если нет интернета. Иначе ууу, никто не узнает про модную фичу.
Бонусом - если речь про Android - то все, что NDK - будет лежать собранным под несколько архитектур со всеми сраными зависимостями :) Потому что Google очень красиво решил проблему ABI стабильности С++ - он просто забил на нее хер.
Большая часть того же приложения Альфы, которую поминали в коментах - кордова + картинки. Есть одна классная, весом больше мегабайта, например.
Если честно - от слова оптимизация нервный тик уже. Сидишь такой, выжимаешь сранные такты - а потом приходит умник, которое слово "оптимизация" на дваче услышал и начинает рассказывать, что никто в оптимизацию не умеет.
За оптимизацию не платят. Все хотят "выкатите нам продукт побыстрее" и чтобы он "хоть как-то работал". И часто это оказывается оправданно, потому что важно не упустить окно и занять нишу. Если вылизывать приложуху, оптимизировать и тп - рискуешь опоздать к раздаче и выкатить ее когда рынок уже поделен и никому ты нахрен не упал.
Более адекватный вариант сначала выйти с говнокодом, а потом когда ты уже стоишь на ногах - заниматься оптимизацией, если есть пользовательский запрос на это. И вот тут другие затыки... если изначально архитектура - говно, то много ты не наоптимизируешь...
На самом деле никто не любит работать с говнокодом и с неоптимизированным говном. Но убедить заказчика выделить время(и соответственно бабки) на оптимизацию можно лишь в том случае, когда он теряет бабки от отсутствия оптимизации.
С учетом того что затолкать 32 гб оперативы сейчас в комп вообще просто - мало кто парится.
Особенно тупой вк с его мини приложениями. Скачиваешь соц сеть что бы общаться, а тебе уже накидали магазинов, доставок еды и прочей фигни. Зачем мне это?
Просто сейчас никто не изобретает велосипед заново, берут тяжеловесные фреймворки с готовыми типовыми решениям, дописывают свою логику и в продакшн. Вот и имеем, что имеем.
Я как программист обьясняю. Само приложение весит 10-20мб. 300мб весят всякой аналитики, крашрепорты и всякое другое говно. Кароч вот захотел ты крашрепорт запилить от гугла, но нельзя просто засунуть крашрепорт, нужно тащить за собой все говно что там гугл сделал, и большую часть ты не используешь.
Плюс бывают разные версии архитектуры процессоров. И вот у тебя приложение состоит из 2 билдов самого приложения и 2 билдов каждого фреймворка, под каждую архитектуру.
На самом деле много кто еще виноват помимо программистов.
Заказчики (банки, например) хотят "сильный брендинг" - всё в своем стиле => тонна графики.
Экраны на телефонах с критично разным дпи => либо вектор (лаги), либо дублируем на все варианты растр.
Можно было бы скачать только один вариант растра, но к современным смартам можно подключать монитор и всякие samsung dex, да и просто масштабы крутить в настройках => все дубли нам нужны.
Еще нам нужна поддержка планшетов => дублируем разметку.
Можно было бы дубль не качать, но тут пришли дуал-скрины => лучше скачать.
Еще заказчики хотят АБ тестирование => нужно задублировать реализацию.
Можно было бы лишнюю не качать, но они хотят иметь возможность переключать варианты реализации и включать новые фичи по рубильнику с сервера => придется скачать.
Еще несмотря на то что дизайнеры вроде как учились и вроде как хорошо оплачиваются, заказчик им не верит и хочет статистику - что где кликали, куда сколько смотрели и у него есть договор с какой-нибудь даунической платформой у которой библиотека весит как полприложения.
Вряд ли чтобы приложения стали снова по 40Мб нам нужно заменить ТОЛЬКО программистов.
1. Старые игры довольно просто устроены, для сомневающихся есть исходники игр id, которые можно как-нибудь поизучать на досуге: https://github.com/id-Software
2. Сложность программного обеспечения выросла настолько, что если раньше у вас в одном проекте мог условно "шарить" один программист, то теперь и их целый отдел до конца не знает, как оно работает на самом деле, в работе присутствует изрядная доля магии по типу "этот код не должен работать, но почему-то он работает". Приложения раньше были значительно проще, а сейчас у нас на среднем вебсайте ехала адаптивная вёрстка с красивыми анимациями под все устройства от мобильника до телевизора, чатбот, нейронка для изучения вкуса покупателей, рекламные библиотеки, фейсбук-контейнер и ещё черт знает что.
3. Чтобы унять постоянно растущую сложность программных систем, в кодовую базу вносят теперь системы для логгирования, аудита изменений, юнит- и прочее тестирование, чтобы поймать ошибки раньше чем они попадут в прод, потому что системы стали настолько сложны, что без дополнительного кода отследить все потенциальные подводные камни уже просто не представляется возможным.
Разработанный код по максимуму переиспользуются, городятся дополнительные абстракции типа тех же паттернов проектирования, у которых, очевидно, есть оверхед.
4. Долго и качественно никого не интересует, всем нужно максимально быстро, потому что пока там твои программисты выдрачивают идеальную архитектуру и упражняются в имплементации всего по заветам отцов-основателей CS, конкуренты выкатят кривую поделку и займут весь рынок.
5. Среднее приложение эпохи конца девяностых-начала нулевых было написано под крайне узкий список платформ, пресловутые 512кб покемон под консоль нинтенды запускались, сюрприз, на одной платформе, что позволяет простую примитивную игру просто отполировать до блеска. Сейчас же всем нужна кроссплатформа, какой-нибудь Mono тащит за собой зоопарк платформозависимого кода в каждую сборку.
В общем, могу сказать, что это не проблема образования, это проблема того что программируемые системы стали сильно "больше" того, чем способен объять человеческий разум отдельно взятого индивида.
Проблема некомпетентности очень серьезна в нашем обществе. Образование, которое пошло по п*зде в 90-е, да и после было не лучше. Плюс тотальная коррупция того времени от блата до покупных дипломов. Люди во всех сферах сидят и не вдупляют, что они делают, стараясь не отсвечивать.
"Проблема некомпетентности " это да, приходят всякие данженмастеры, которые ни разу предметно с темой не сталкивались и начинается "да тут же просто, хули так дорого, хули так долго, вы учились наверное плохо"
Никакого отношения к современной разработке не имеет.
Этому никогда нигде толком не учили ("факультеты компьютерных наук" и прочая прикладная информатика - это прямо очень далеко от продакшена, это даже не джуны), и все еще толком не учат - отрасль развивается быстрее, чем успевает система образования, максимум, что дает даже нормальный курс CS/SE в каком нибудь приличном вузе - теоретическую базу. Писать приложения, как тут верно уже несколько раз заметили, там не научат.
Ага. Только несёшь ты полнейшую пургу. Во первых система IT образования слегка другая. Во вторых не то чтобы приложения которые сделаны в россии сильно больше по размеру.
У меня в опыте пока чаще всего встречалось долго, дорого, криво - можно выбрать 2 любых или даже 3. 1 раз попадался "очень дорого, качественно и быстро" и 1 раз взяли студента после техникума и он за неделю выкатился первый релиз, а через месяц полный проект. За зарплату далеко не в 100к. Сейчас я там не работаю, но насколько знаю его продукт без поддержки живёт уже лет 5. Для сравнения, одна московская крупная контора, для изменения в своём софте (поддержка qr кода) выкатила счёт на 3 месяца разработки.
Конец спринта, все показывают что сделано Продакт Овнеру. Пришла очередь программиста Васи. Менеджер говорит:
- В этом спринте на Васе была очень востребованная фича - кнопка-свистоперделка.
Но Вася насмотрелся мемесов про плохих программистов:
- Вместо кнопки-свистоперделки я две недели занимался оптимизацией, и уменьшил размер приложения на 23 мегабайта! - гордо сказал Вася.
Размер приложения очень сильно влияет на конверсию. Так что ты несёшь бред. За две недели уменьшить размер на 10% или больше с огромной вероятностью важнее любой кнопки-свистоперделки.
На прошлой работе и больше чем две недели тратили на уменьшение размера. Но есть ограничения физического мира. И до тех пор, пока будет расти разрешение - будет расти размер приложений.
PS. Вообще пока на всех 3х предыдущих работах мы дохера времени тратили на уменьшение размера.
Если каждому долбоебу писать кастомные либы вместо готовых решений с лишним функционалом, то долбоебы начнуть выть какие погромисты ахуевшие и так получают 200к наносек.
Чтоб мало весило, быстро работало и все было заебись - надо дохуя времени и, следовательно, бабла.
Библиотеки для библиотек для библиотек. Ну и картиночки в разрешении повыше, а то несолидно на шестидюймовом 4к-экране иконки низкого разрешения показывать (наверное, на самом деле без понятия, в каком разрешении делают иконки для мобилок).
Вот когда будут платить за оптимизацию, тогда и будут программы "по 40 мегабайт".
А пока от программеров требуют код на гора, да ещё вчера, то будет работать принцип "хуяк-хуяк и в продакшин".
Потому, что сейчас с нуля мало кто пишет. Хочешь какую-то одну функцию - подключай целую библиотеку на 80 функций, со своими зависимостями. Хочешь кроссплатформенность - используешь кроссплатформенный IDE со своими зависимостями и тяжёлыми библиотеками.
Есть уже целые сайты, которые предоставляют SaaS по "разработке" приложений - заливаешь лого, выбираешь название, тыкаешь галочки напротив механизмов авторизации, какие есть возможности и пр., на выходе получаешь готовый apk/ipa, который китайцы ещё и сами в магазин загрузят и отзывы проставят, только дай им пароль от аккаунта разработчика.
И даже проблема не в том, что это пользователи хотят слишком много новых функций как можно скорее. Мне лично в клиент банке не нужны ни красивые обои при запуске, ни голосовой помощник, ни анализатор ежемесячных трат, ни встроенный магазин и смайлы, ни биржа с акциями и активами, ни антивирус. Нужны только баланс, перевод на карту и оплата ЖКХ, и полагаю этого будет хватать большинству людей.
PS Работал в крупной софтверной компании, основной упор всё же шёл на оптимизацию, и при наличии i7 у каждого программиста, всё же были в штате и четвёртые пеньки с гигом оперативки, на которых буквально заставляли работать в своём же ПО, тормозит - исправь.
Ни кто не мешает заглянуть внутрь апк сбера: 13 файлов с "кодом" в среднем по 8 мегабайт каждый, около 40 мегабайт ресурсов, всякое мелочи еще на мегабайта 4. Рядом лежит apk с либами, в которой одни лишь карты занимают 50мб (мне лень открывать so-шки), а вообще библиотек там на 101мб (даже opencv-core есть). Не забываем что из-за особенностей android все это должно "оптимизироваться" (я не помню как этот процесс в виртуальной машине андроида называется) под ваше устройство и получаем. Вот вам и 300-400 мегабайт на устройстве.
Вопрос в цене разработки, обратной совместимости и еще в том, что все эти приложения пытаются совмещать себе какой-то безумный функционал.
Потому что сейчас "программирование" это настолько просто что берут вообще кого угодно.
Оно и раньше было просто и и раньше брали кого угодно. И и раньше жаловались, что приложения чот много жрут и долбоёбы-программисты нихуя не оптимизируют.
Потому что слишком много мощностей, особенно на смартфон ах где они растут быстрее всего, и не нужно заморачиваться.
Да бро. Мощностей где? На Redmi Note 6 и Samsung'ах A? Напиши мне без оптимизации приложение сложнее калькулятора, которое на этом говне будет стабильно 60ФПС давать при всех переходах. Да, если пилить под топенд снепы - картина маслом, но их незначительное количество на нашем рынке.
Какого хуя этим идиотам так много платят, если эти мудаки элементарно не могут блять ОПТИМИЗИРОВАТЬ???
Проблема в том, что нынче платят не за то, чтобы ОПТИМИЗИРОВАТЬ.
Плюс, это не настолько "элементарно" как кажется, учитывая как сейчас аппы делаются - огромными командами, на протяжении долгих лет и поверху тысячи толстых фреймворков, на решение использовать или не использовать которые "эти мудаки" особого влияния, скорее всего, не имели.
Библиотеки, Кэш, Логи, Аналитика - это из основного. Вы еще не знаете сколько «не собранный» проект весит. Там может быть и 5-10 гб. Иконки все «рисуются» разные под каждую плотность пикселей. Как iOS разраб - в айфонах их три плотности , а в Андроид их еще больше. Все из-за поддержки разных устройств одна и та же прога должна идти на основных устройствах + планшеты .
Иногда они весят так, так как фреймворки имеют предустановочник который может очень много весить и часть файлов туда идут автоматически которые решили не убирать (мол вдруг сломается если оттуда выкинуть что-то)
Программисты с большим опытом все с нуля делают и оптимизируют. Но одни программисты уходят (увольняются) и вместо них приходят новые и все ложится друг на друга.
Спасает грамотный DevOps и SecOps в больших компаниях, но на такое обычно не тратятся и пытаются в аутсорс.
Помню, как еще в прошлом веке (гигабайты тогда вообще представить было страшно) знакомые разрабатывали ПО для анализа сердечной деятельности, сделали, отдают заказчику результат на дискетке, он смотрит на объем и говорит - а что так мало напрограммировали? несерьезно, чуть ли платить не отказался, пришлось вкомпилить ему несколько левых библиотек, чтобы объем приложения увеличить в 10 раз чтобы клиент остался доволен.
А если серьезно - объем - плата за скорость разработки и функциональность ПО.
Код пишется на фреймворках, которые написаны на фреймворках, которые написаны на библиотеках, которые написаны на более низкоуровневых библиотеках,...
Можно писать и в машинных кодах,, но не уверен, что вы обрадуетесь стоимости разработки приложения такого же функционала, да и сроки будут ого-го, не говоря уже о количестве багов в таком "самописе".
Да в основном приложения весят много, потому что тянут зависимости объемные. Файрбейс там всякий, Фейсбук сдк и тд.. Заказчики ещё часто хотят дохрена сервисов аналитики, типо слать ивенты в Гугл аналитику (файрбейс), фейсбук, амплитуд, яндекс и тд.. Вот уже сотка мегабайт, в лучшем случае..
Сам код приложения обычно занимает очень и очень мало объема после компиляции
Соглашусь. И так не только на мобилах, даже на ебучем Маке за пару лет работы скопилось ненужных кэшей и логов (в т.ч. от удаленных программ) на десятки гигабайт. Какого хрена, черт побери?
Не полезь я случайно посмотреть, почему разрослась система, так и сидел бы как лох.
Я помнится поставил Kingdom Rush на комп. Я чуть не поперхнулся, когда обнаружил, что она весит 2 гигабайта. Третьи Герои весили чуть больше 700 мегабайт! Но каков был мой ужас, когда я обнаружил, что Kingdom Rush на моем компе запускается 15 минут...
Возьмём к примеру 1с. На старой работе были работы с 1с. Пришёл один товарищ, потрати 4 часа, с говнокодом и багами. Пришёл второй, сказал - что это за говорит и написал за пол часа без багов. Наверное их работодателю второй, если с ним он заработает меньше? Или посмотреть на софт написанный в результате тендеров? Тендеры это прям конкурс звездоболов. Да и в целом где прогресс а тех же средствах разработки? Ну примерно того уровня как ООП или SQL?
Разделяю полностью. 3000 лет назад лично оптимизировал игры для Nokia Series 40. Размер архива с игрой - максимум 64Кб. Памяти меньше мегабайта. Как-то помещались.
Вы не поверите, но в Сбере не могут завести расчетные счета контор, чтоб принимать оплату в мобильном приложении, например. Говорят, что у них там "памяти не хаатает"☝️
Отличный доклад на эту тему от небезызвестного Джонатана Блоу (Braid, The Witness). Правда только английский. Если коротко - мы обречены. https://www.youtube.com/watch?v=ZSRHeXYDLko
Ну и в чем он не прав?
@ Приходит заказчик
@ Говорит сделайте мне программку чтобы стабильно работала и мало весила.
@ Ему считают смету с написанием своих библиотек, чтобы мало весило, потому как в готовых решениях много лишнего, что собственно и ест место, плюс время на отладку всего этого добра. Это уж не говоря о том, что время разработки увеличивается в несколько раз
@ Заказчик смотрит на смету.
@ Говорит хуй с ним с весом, давайте на готовых библиотеках.
@ Анонимы пишут в интернетах, что программисты не умеют программировать.
В том, что за оптимизацию никто и не платит, чтобы она была.
Главное, чтобы работало, да побыстрее.
Простой пример. В приложении нужна функция. Можно взять сторонний компонент и потратить неделю на его внедрение, но компонент реализует еще много ненужных функций, которые вместе с нужной формируют избыточный объем. А можно не брать сторонний компонент и потратить год, чтобы самостоятельно с нуля разработать нужную функцию и оптимизировать ее под твое приложение, и она будет весить копейки. Каким путем пойдут разработчики очевидно, так как за год работы платить никто не будет. Есть еще вариант, что избыточный объем формируют ресурсы внешние, картинки, музыка и т.д. Но там тоже нужна адекватная задаче оптимизация, будут ли на это потрачены ресурсы разработки - это отдельный вопрос.
Берешь условный "hello world". Добавляешь библиотеку для работы, скажем, с дропбоксом. Хуяк — и приложение "подросло" метров эдак на 10. Вот просто так, на ровном месте.
Добавил библиотеку для работы с AR: условно +50 мегабайт. Если банковская шняга, то там будет еще дофига всякой всячины для входа с биометрией, для BankID, для всяких ApplePay/GooglePay... Не забудем про кэш.
Вот так с миру по нитке — голому веревка.
В том, что приходят эффективные менеджеры и требуют React Native везде :) А как говорится, есть спрос - есть предложение :) И их можно понять - их задача - потратить меньше денег на разработку. Потом приходят артисты и у тебя появляется куча ресурсов, которые должны быть доступны вот прям всегда. Потому что тебе вот эту картинку надо показать при первом запуске (и только при нем), даже если нет интернета. Иначе ууу, никто не узнает про модную фичу.
Бонусом - если речь про Android - то все, что NDK - будет лежать собранным под несколько архитектур со всеми сраными зависимостями :) Потому что Google очень красиво решил проблему ABI стабильности С++ - он просто забил на нее хер.
Большая часть того же приложения Альфы, которую поминали в коментах - кордова + картинки. Есть одна классная, весом больше мегабайта, например.
Если честно - от слова оптимизация нервный тик уже. Сидишь такой, выжимаешь сранные такты - а потом приходит умник, которое слово "оптимизация" на дваче услышал и начинает рассказывать, что никто в оптимизацию не умеет.
За оптимизацию не платят. Все хотят "выкатите нам продукт побыстрее" и чтобы он "хоть как-то работал". И часто это оказывается оправданно, потому что важно не упустить окно и занять нишу. Если вылизывать приложуху, оптимизировать и тп - рискуешь опоздать к раздаче и выкатить ее когда рынок уже поделен и никому ты нахрен не упал.
Более адекватный вариант сначала выйти с говнокодом, а потом когда ты уже стоишь на ногах - заниматься оптимизацией, если есть пользовательский запрос на это. И вот тут другие затыки... если изначально архитектура - говно, то много ты не наоптимизируешь...
На самом деле никто не любит работать с говнокодом и с неоптимизированным говном. Но убедить заказчика выделить время(и соответственно бабки) на оптимизацию можно лишь в том случае, когда он теряет бабки от отсутствия оптимизации.
С учетом того что затолкать 32 гб оперативы сейчас в комп вообще просто - мало кто парится.
в том, что размер приложения - это картинки. код в таком приложении весит с 10-30 мб
Особенно тупой вк с его мини приложениями. Скачиваешь соц сеть что бы общаться, а тебе уже накидали магазинов, доставок еды и прочей фигни. Зачем мне это?
Хорошо хоть есть кейт и аналоги
Я сегодня весь день на кртворукий активижн бомблю
Комментарий недоступен
Просто сейчас никто не изобретает велосипед заново, берут тяжеловесные фреймворки с готовыми типовыми решениям, дописывают свою логику и в продакшн. Вот и имеем, что имеем.
насколько смертельна эта проблема в принципе?
я, как программист, в каждый свой проект прячу по несколько файлов ~100Мб
"А чего это наше приложение всего 80 метров весит? Это не солидно, добавь пару пустышек"
Тру стори
Скажи, что это порнокомиксы и я тебе не вьебу минус
с хуйцами надеюсь?
Все так
чекни .kkrieger
Комментарий недоступен
Клавиатура с буквами...
Картинка каждой буквы в HD.
ну так она еще с контекстными подсказками, скользящим вводом, проверкой орфографии, голосовым вводом, рукописным вводом...
Что-то слабовато, букавы от гугла 160.
Я ниже написал оно так весит. TLDR: один апк на все платформы, два встроенных в приложение словаря.
Я как программист обьясняю. Само приложение весит 10-20мб. 300мб весят всякой аналитики, крашрепорты и всякое другое говно. Кароч вот захотел ты крашрепорт запилить от гугла, но нельзя просто засунуть крашрепорт, нужно тащить за собой все говно что там гугл сделал, и большую часть ты не используешь.
Плюс бывают разные версии архитектуры процессоров. И вот у тебя приложение состоит из 2 билдов самого приложения и 2 билдов каждого фреймворка, под каждую архитектуру.
вообщем-то вот
Вы там документацию от гугла не пробовали читать? Например Android App Bundles. Если мы про андройд
На самом деле много кто еще виноват помимо программистов.
Заказчики (банки, например) хотят "сильный брендинг" - всё в своем стиле => тонна графики.
Экраны на телефонах с критично разным дпи => либо вектор (лаги), либо дублируем на все варианты растр.
Можно было бы скачать только один вариант растра, но к современным смартам можно подключать монитор и всякие samsung dex, да и просто масштабы крутить в настройках => все дубли нам нужны.
Еще нам нужна поддержка планшетов => дублируем разметку.
Можно было бы дубль не качать, но тут пришли дуал-скрины => лучше скачать.
Еще заказчики хотят АБ тестирование => нужно задублировать реализацию.
Можно было бы лишнюю не качать, но они хотят иметь возможность переключать варианты реализации и включать новые фичи по рубильнику с сервера => придется скачать.
Еще несмотря на то что дизайнеры вроде как учились и вроде как хорошо оплачиваются, заказчик им не верит и хочет статистику - что где кликали, куда сколько смотрели и у него есть договор с какой-нибудь даунической платформой у которой библиотека весит как полприложения.
Вряд ли чтобы приложения стали снова по 40Мб нам нужно заменить ТОЛЬКО программистов.
tl;dr - заказчик не понимает, чего он хочет. Еще хуже то, что он даже может сформулировать что ему нужно.
Самый правдивый и адекватный ответ
Аргументированная и взвешенная позиция
1. Старые игры довольно просто устроены, для сомневающихся есть исходники игр id, которые можно как-нибудь поизучать на досуге:
https://github.com/id-Software
2. Сложность программного обеспечения выросла настолько, что если раньше у вас в одном проекте мог условно "шарить" один программист, то теперь и их целый отдел до конца не знает, как оно работает на самом деле, в работе присутствует изрядная доля магии по типу "этот код не должен работать, но почему-то он работает". Приложения раньше были значительно проще, а сейчас у нас на среднем вебсайте ехала адаптивная вёрстка с красивыми анимациями под все устройства от мобильника до телевизора, чатбот, нейронка для изучения вкуса покупателей, рекламные библиотеки, фейсбук-контейнер и ещё черт знает что.
3. Чтобы унять постоянно растущую сложность программных систем, в кодовую базу вносят теперь системы для логгирования, аудита изменений, юнит- и прочее тестирование, чтобы поймать ошибки раньше чем они попадут в прод, потому что системы стали настолько сложны, что без дополнительного кода отследить все потенциальные подводные камни уже просто не представляется возможным.
Разработанный код по максимуму переиспользуются, городятся дополнительные абстракции типа тех же паттернов проектирования, у которых, очевидно, есть оверхед.
4. Долго и качественно никого не интересует, всем нужно максимально быстро, потому что пока там твои программисты выдрачивают идеальную архитектуру и упражняются в имплементации всего по заветам отцов-основателей CS, конкуренты выкатят кривую поделку и займут весь рынок.
5. Среднее приложение эпохи конца девяностых-начала нулевых было написано под крайне узкий список платформ, пресловутые 512кб покемон под консоль нинтенды запускались, сюрприз, на одной платформе, что позволяет простую примитивную игру просто отполировать до блеска. Сейчас же всем нужна кроссплатформа, какой-нибудь Mono тащит за собой зоопарк платформозависимого кода в каждую сборку.
В общем, могу сказать, что это не проблема образования, это проблема того что программируемые системы стали сильно "больше" того, чем способен объять человеческий разум отдельно взятого индивида.
Не означает ли это, что средства разработки говно, которое не соответствует реалиям современности?
Проблема некомпетентности очень серьезна в нашем обществе. Образование, которое пошло по п*зде в 90-е, да и после было не лучше. Плюс тотальная коррупция того времени от блата до покупных дипломов. Люди во всех сферах сидят и не вдупляют, что они делают, стараясь не отсвечивать.
"Проблема некомпетентности " это да, приходят всякие данженмастеры, которые ни разу предметно с темой не сталкивались и начинается "да тут же просто, хули так дорого, хули так долго, вы учились наверное плохо"
Я тебе больше скажу — оно и "до" было не сахар, если судить по безграмотным, дебилам и безграмотным дебилам в возрасте 50+.
Никакого отношения к современной разработке не имеет.
Этому никогда нигде толком не учили ("факультеты компьютерных наук" и прочая прикладная информатика - это прямо очень далеко от продакшена, это даже не джуны), и все еще толком не учат - отрасль развивается быстрее, чем успевает система образования, максимум, что дает даже нормальный курс CS/SE в каком нибудь приличном вузе - теоретическую базу. Писать приложения, как тут верно уже несколько раз заметили, там не научат.
Комментарий недоступен
Ага. Только несёшь ты полнейшую пургу. Во первых система IT образования слегка другая. Во вторых не то чтобы приложения которые сделаны в россии сильно больше по размеру.
Приходи в it, тебе объяснят, кто ты и где твоё место. Покажешь свою компетентность.
Ну да, в универе тебя бы научили разрабатывать приложения
Комментарий недоступен
Старый баян, как всегда, актуален. Угадайте, какой сектор почти всегда выбирают заказчики?
"Бесплатно + качественно" бывает. Blender3D, LMMS, Xonotic как примеры. Так что да, верю!
У меня в опыте пока чаще всего встречалось долго, дорого, криво - можно выбрать 2 любых или даже 3. 1 раз попадался "очень дорого, качественно и быстро" и 1 раз взяли студента после техникума и он за неделю выкатился первый релиз, а через месяц полный проект. За зарплату далеко не в 100к. Сейчас я там не работаю, но насколько знаю его продукт без поддержки живёт уже лет 5. Для сравнения, одна московская крупная контора, для изменения в своём софте (поддержка qr кода) выкатила счёт на 3 месяца разработки.
Конец спринта, все показывают что сделано Продакт Овнеру. Пришла очередь программиста Васи. Менеджер говорит:
- В этом спринте на Васе была очень востребованная фича - кнопка-свистоперделка.
Но Вася насмотрелся мемесов про плохих программистов:
- Вместо кнопки-свистоперделки я две недели занимался оптимизацией, и уменьшил размер приложения на 23 мегабайта! - гордо сказал Вася.
Васю уволили нахуй.
Размер приложения очень сильно влияет на конверсию. Так что ты несёшь бред. За две недели уменьшить размер на 10% или больше с огромной вероятностью важнее любой кнопки-свистоперделки.
На прошлой работе и больше чем две недели тратили на уменьшение размера. Но есть ограничения физического мира. И до тех пор, пока будет расти разрешение - будет расти размер приложений.
PS. Вообще пока на всех 3х предыдущих работах мы дохера времени тратили на уменьшение размера.
Комментарий недоступен
Тут же дети
Хорошо, что нод модули полностью идут в прод *нет, слава богу*
Стим 9 мегабайт, а альфабанк ебаный 320.
А что стим игры на телефоне запускает?
Он через вебвью вроде.
Потому что стим — это такой браузер.
Качал сегодня очередной 50ти гиговый патч для Колды и прям ровно такие-же эмоции испытывал! XD
С учетом того, что несколькогиговая Modern Warfare 2 по сей день играется лучше )
Фактически, это игра заново скачивается. То, что разучились патчи делать, конечно, удивительно.
Там две трети игры, наверное - это донатные скины заблокированные.
Как и в Сидже.
Комментарий недоступен
Комментарий недоступен
...и которые потом забиваются кэшем мессенджеров и тех же стриминговых приложений (если вдруг захочется послушать музыку с нестабильным интернетом).
Комментарий недоступен
Если каждому долбоебу писать кастомные либы вместо готовых решений с лишним функционалом, то долбоебы начнуть выть какие погромисты ахуевшие и так получают 200к наносек.
Чтоб мало весило, быстро работало и все было заебись - надо дохуя времени и, следовательно, бабла.
Сбермобайл под полгига весит, при этом, чем дальше - тем больше всякой хрени добавляют
Библиотеки для библиотек для библиотек. Ну и картиночки в разрешении повыше, а то несолидно на шестидюймовом 4к-экране иконки низкого разрешения показывать (наверное, на самом деле без понятия, в каком разрешении делают иконки для мобилок).
Вот когда будут платить за оптимизацию, тогда и будут программы "по 40 мегабайт".
А пока от программеров требуют код на гора, да ещё вчера, то будет работать принцип "хуяк-хуяк и в продакшин".
Майкрософт за дополнительные куски кода даже доплачивает
вот, насколько всё хуёво у нас
Потому, что сейчас с нуля мало кто пишет. Хочешь какую-то одну функцию - подключай целую библиотеку на 80 функций, со своими зависимостями. Хочешь кроссплатформенность - используешь кроссплатформенный IDE со своими зависимостями и тяжёлыми библиотеками.
Есть уже целые сайты, которые предоставляют SaaS по "разработке" приложений - заливаешь лого, выбираешь название, тыкаешь галочки напротив механизмов авторизации, какие есть возможности и пр., на выходе получаешь готовый apk/ipa, который китайцы ещё и сами в магазин загрузят и отзывы проставят, только дай им пароль от аккаунта разработчика.
И даже проблема не в том, что это пользователи хотят слишком много новых функций как можно скорее. Мне лично в клиент банке не нужны ни красивые обои при запуске, ни голосовой помощник, ни анализатор ежемесячных трат, ни встроенный магазин и смайлы, ни биржа с акциями и активами, ни антивирус. Нужны только баланс, перевод на карту и оплата ЖКХ, и полагаю этого будет хватать большинству людей.
PS Работал в крупной софтверной компании, основной упор всё же шёл на оптимизацию, и при наличии i7 у каждого программиста, всё же были в штате и четвёртые пеньки с гигом оперативки, на которых буквально заставляли работать в своём же ПО, тормозит - исправь.
Абсолютно, полностью, сргласен. Имбецильность в абсолюте, ещё и платят дохуя.
Как хорошо что я один из них)
А раньше была Демосцена и шедевры графики и производительности на одной-двух дискетах
Сейчас буд то демосцен не существует
Тоже горит с этого гребаный сбербак весит почти 700 мб
переходи на тьникоф
Ни кто не мешает заглянуть внутрь апк сбера: 13 файлов с "кодом" в среднем по 8 мегабайт каждый, около 40 мегабайт ресурсов, всякое мелочи еще на мегабайта 4. Рядом лежит apk с либами, в которой одни лишь карты занимают 50мб (мне лень открывать so-шки), а вообще библиотек там на 101мб (даже opencv-core есть). Не забываем что из-за особенностей android все это должно "оптимизироваться" (я не помню как этот процесс в виртуальной машине андроида называется) под ваше устройство и получаем. Вот вам и 300-400 мегабайт на устройстве.
Вопрос в цене разработки, обратной совместимости и еще в том, что все эти приложения пытаются совмещать себе какой-то безумный функционал.
Комментарий недоступен
Оно и раньше было просто и и раньше брали кого угодно. И и раньше жаловались, что приложения чот много жрут и долбоёбы-программисты нихуя не оптимизируют.
Таких только для проприетарщины и берут.
Поэтому я юзаю линукс.
Да бро. Мощностей где? На Redmi Note 6 и Samsung'ах A? Напиши мне без оптимизации приложение сложнее калькулятора, которое на этом говне будет стабильно 60ФПС давать при всех переходах. Да, если пилить под топенд снепы - картина маслом, но их незначительное количество на нашем рынке.
Тут не поспоришь
Проблема в том, что нынче платят не за то, чтобы ОПТИМИЗИРОВАТЬ.
Плюс, это не настолько "элементарно" как кажется, учитывая как сейчас аппы делаются - огромными командами, на протяжении долгих лет и поверху тысячи толстых фреймворков, на решение использовать или не использовать которые "эти мудаки" особого влияния, скорее всего, не имели.
Но в целом с мыслью согласен, впрочем.
У автора память на телефоне закончилась.
Злой маркетолог-продаван, который решил залезть в менеджмент/разработку че-то опять бомбанул.
Выбирай любые 2:
1. Дешево.
2. Мало весит.
3. Стабильно работает.
В случае с играми:
1. Не тормозит.
2. Мало весит.
3. Графоний.
Комментарий недоступен
Тоже бомбит. Приложение, состоящее из нихера и нихера весит 300 метров. Чего там столько? Там ни графики нет, нихрена. ЧТО там столько весит?
Библиотеки, Кэш, Логи, Аналитика - это из основного. Вы еще не знаете сколько «не собранный» проект весит. Там может быть и 5-10 гб. Иконки все «рисуются» разные под каждую плотность пикселей. Как iOS разраб - в айфонах их три плотности , а в Андроид их еще больше. Все из-за поддержки разных устройств одна и та же прога должна идти на основных устройствах + планшеты .
По фактам
Я как обыватель не понимал, почему они столько весят, оказывается все просто - руки из жопы
@Andrey Apanasik тебя раскрыли
Иногда они весят так, так как фреймворки имеют предустановочник который может очень много весить и часть файлов туда идут автоматически которые решили не убирать (мол вдруг сломается если оттуда выкинуть что-то)
Программисты с большим опытом все с нуля делают и оптимизируют. Но одни программисты уходят (увольняются) и вместо них приходят новые и все ложится друг на друга.
Спасает грамотный DevOps и SecOps в больших компаниях, но на такое обычно не тратятся и пытаются в аутсорс.
DevOps рукожопую индусятину не спасёт. Как DevOps Lead говорю )
Щас бы костылить свое и с нуля, когда есть фреймворки.
Комментарий недоступен
Помню, как еще в прошлом веке (гигабайты тогда вообще представить было страшно) знакомые разрабатывали ПО для анализа сердечной деятельности, сделали, отдают заказчику результат на дискетке, он смотрит на объем и говорит - а что так мало напрограммировали? несерьезно, чуть ли платить не отказался, пришлось вкомпилить ему несколько левых библиотек, чтобы объем приложения увеличить в 10 раз чтобы клиент остался доволен.
А если серьезно - объем - плата за скорость разработки и функциональность ПО.
Код пишется на фреймворках, которые написаны на фреймворках, которые написаны на библиотеках, которые написаны на более низкоуровневых библиотеках,...
Можно писать и в машинных кодах,, но не уверен, что вы обрадуетесь стоимости разработки приложения такого же функционала, да и сроки будут ого-го, не говоря уже о количестве багов в таком "самописе".
Да в основном приложения весят много, потому что тянут зависимости объемные. Файрбейс там всякий, Фейсбук сдк и тд.. Заказчики ещё часто хотят дохрена сервисов аналитики, типо слать ивенты в Гугл аналитику (файрбейс), фейсбук, амплитуд, яндекс и тд.. Вот уже сотка мегабайт, в лучшем случае..
Сам код приложения обычно занимает очень и очень мало объема после компиляции
Соглашусь. И так не только на мобилах, даже на ебучем Маке за пару лет работы скопилось ненужных кэшей и логов (в т.ч. от удаленных программ) на десятки гигабайт. Какого хрена, черт побери?
Не полезь я случайно посмотреть, почему разрослась система, так и сидел бы как лох.
Я помнится поставил Kingdom Rush на комп. Я чуть не поперхнулся, когда обнаружил, что она весит 2 гигабайта. Третьи Герои весили чуть больше 700 мегабайт! Но каков был мой ужас, когда я обнаружил, что Kingdom Rush на моем компе запускается 15 минут...
Возьмём к примеру 1с. На старой работе были работы с 1с. Пришёл один товарищ, потрати 4 часа, с говнокодом и багами. Пришёл второй, сказал - что это за говорит и написал за пол часа без багов. Наверное их работодателю второй, если с ним он заработает меньше? Или посмотреть на софт написанный в результате тендеров? Тендеры это прям конкурс звездоболов. Да и в целом где прогресс а тех же средствах разработки? Ну примерно того уровня как ООП или SQL?
Разделяю полностью. 3000 лет назад лично оптимизировал игры для Nokia Series 40. Размер архива с игрой - максимум 64Кб. Памяти меньше мегабайта. Как-то помещались.
Комментарий недоступен
Комментарий недоступен
Кажется, уважаемый пользователь, вы вышли из себя, жаль
это очень тухлый баян
Правильный ответ уже был?
(В дистриб входит антивирус)
Все так. Щас будут оправдания что это для совместимости и т.д., но мы-то знаем.
Дело в том что каждое такое приложение - комбайн с тонной функционала. И всё.
Аминь))) полностью поддерживаю
Ещё вспомнил бы, что есть игра, весящая 96kb, называется .kkrieger
Комментарий недоступен
Комментарий недоступен
Программистам доплачивают за вес)
Начало по описанию очень напоминало Варзону с её 200 гб.
Вы не поверите, но в Сбере не могут завести расчетные счета контор, чтоб принимать оплату в мобильном приложении, например. Говорят, что у них там "памяти не хаатает"☝️
Отличный доклад на эту тему от небезызвестного Джонатана Блоу (Braid, The Witness). Правда только английский. Если коротко - мы обречены.
https://www.youtube.com/watch?v=ZSRHeXYDLko
Комментарий удален модератором
Комментарий удален модератором
Комментарий удален модератором
это база
По фактам.
Блять
Я промазал
Да эт сторы козлы, а не разрабы. Ты качаешь одно приложение 300 мб а внутри 3 разных 1 стабильная и 2 бета версии по 100 каждые