Ответ на пост «"Программисты не умеют программировать"»

Очередной истеричный дурачок, который не разбирается в вопросе и которому программисты соли на хуй насыпали. Так еще и в топе коммент: «в чем он не прав?»

Если коротко, то во всем. А если подробнее, то смысл в том, что в мире существует просто ебейшее количество процессоров, графических чипов, wi-fi модулей, 3/4/5g модулей, дисплеев и камер. Теперь представим возможное количество их комбинаций. Представили? И к каждому компоненту идёт свой драйвер.

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

И вот программисту ставят задачу разработать кроссплатформенное приложение, с поддержкой телефонов 10 летней давности и старых версий операционной системы, потому что новые просто не будут такой телефон поддерживать сами. И у программиста есть ровно 2 варианта.

1. Написать 2 отдельных приложения на каждую операционку, плюс их различные версии. А если кто-то не в курсе, то пишутся они абсолютно на разных языках и используют разные технологии. То есть это зачастую не выполнимая задача для одного программиста, их уже нужно минимум два, а если приложение состоит не из двух кнопок, а это сложное банковское приложение, которое должно быть защищено, совершать nfc транзакции, взаимодействовать с геолокацией, поддерживать аутентификацию faceid, то программистов нужно штук 5 минимум, им нужно параллельно написать разные компоненты программы, чтобы она в конце не развалилась и нормально работала. Времени это займёт минимум год, а то и больше, включая многоуровневое тестирование всей этой пиздалы.

2. Взять 2 программистов и написать одно приложение на кроссплатформенном фреймворке, где от программистов будет требоваться только написание бизнес-логики и создание архитектуры одного приложения. А по времени это займет в 2 раза меньше. То есть затраты составят В ПЯТЬ! раз меньшую сумму и приложение будет готово в 2 раза быстрее. Более того, поддерживать одно приложение в дальнейшем гораздо проще, быстрее и дешевле.

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

Как думаете, какой из вариантов заказчика устроит больше?

Пиздеть - не мешки ворочать.

Автор поста оценил этот комментарий

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

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Так это ж в не релизной версии а в debug билде. Было бы странно, если бы это из релиза не выключали.

4
Автор поста оценил этот комментарий

Я что-то упустил?

"Взять 2 программистов и написать одно приложение на кроссплатформенном фреймворке, где от программистов будет требоваться только написание бизнес-логики и создание архитектуры одного приложения".

Я может конечно сильно ошибаюсь, но нихера не так это работает.

Если у тебя 2 ос (ios и Android, раньше ещё Windows Phone), то приложения будет 2, а не одно кроссплатформенное. И писать его будут разные люди, как на бэке так и на фронте. И даже верификация у него будет на двух разных площадках с проверяющих двух разных степеней пиздоглазости.

Или что-то в мире мобильной разработки изменилось и теперь нужен один абстрактный программист который будет писать все и сразу и чудесный кроссплатформенный фреймворк сам все остальное сделает?

раскрыть ветку (1)
3
Автор поста оценил этот комментарий

Приложение будет одно, а вот собираться оно будет либо в xcode, либо в AS. Паблишинг на площадки совершенно разный, но это довольной быстрый и не затратный процесс в сравнении с разработкой.

6
Автор поста оценил этот комментарий

Ты про что вообще?
Все можно пробросить через API, что кстати и делают. Даже GL давно уже доступен из веба.
Face/Touchid нормально работают в браузерах.
NFC (работает на хроме, андройд): https://developer.mozilla.org/en-US/docs/Web/API/Web_NFC_API...

А если ты думаешь что банк клиент использует для передачи информации какой-то особый SSL то я тебя разочарую.

раскрыть ветку (1)
6
Автор поста оценил этот комментарий

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

показать ответы
20
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
13
Автор поста оценил этот комментарий

Действительно, нахер эти приложения вообще нужны, ведь есть же веб-версия, я верно понял? Можно же просто в браузере интернет банкинг открыть, так? Ведь открытая в браузере страница она конечно гораздо более защищенная, чем аутентификация через faceid. Кешировать пароли, оно ж пиздос, как безопасно или вводить их каждый раз заново. NFC ведь нахуй не нужен.

показать ответы
10
Автор поста оценил этот комментарий

Как раз для решения проблем с кучей разного железа была придумана специальная программа. Операционная система называется. С аппаратной абстракцией, по-английски Hardware Abstraction Layer.

раскрыть ветку (1)
3
Автор поста оценил этот комментарий

Даладна? Я так и написал, что есть ОС, при том не одна, а много ее версий и если ты в билд включишь поддержку версий лет на 5 хотя бы назад, то твой файл станет нихерово так больше весить.

Иллюстрация к комментарию
22
Автор поста оценил этот комментарий

Ведь открытая в браузере страница она конечно гораздо более защищенная,

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

раскрыть ветку (1)
9
Автор поста оценил этот комментарий

У браузеров отслеживают уязвимости? ну эта фраза уже сама по себе смешная, особенно в контексте сравнения с фреймворками. Но при чем тут вообще браузер? Сайт банка на чем написан? Явно же не CMS иначе это был бы совсем пиздец. Ну то есть по сути может быть написан на том же самом React, который уязвимостей будет иметь не меньше, чем RN. И тем не менее, iOS куда более защищенная система, чем браузерный кеш.

6
Автор поста оценил этот комментарий
Ебать люди быстро к хорошему привыкают
лень расписывать но в РФ вот эта сфера с госумлугами, магазинами, миллионом возможностей развита ебать ебать, одна из самых передовых стран пока кое где чековые книжки юзают а чтоб бабки поменять пиздуют в банк.
так что это нытье выглядит крайне забавно. Не, косяки есть, как и везде просто хотел напомнить что и то что есть - это просто охуенно
раскрыть ветку (1)
5
Автор поста оценил этот комментарий

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

показать ответы
9
Автор поста оценил этот комментарий

и кодя на юнити ты утверждаешь , что для каждой платформы должен быть свой ЯП ? капец ты клоун

раскрыть ветку (1)
Автор поста оценил этот комментарий

Ты глаза свои разуй и прочитай еще раз, что я написал. Unity это движок, RN это фреймворк, они оба кроссплатформенные, но приложения с их использованием весят больше, чем если писать с использованием нативного api. На RN далеко не все у тебя выйдет реализовать, особенно в графическом плане. И да, блять, прикинь, тебя могут попросить писать на Java или Obj-C + swift, могут вообще посадить на поддержку легаси кода. Ну, так что, петух, расскажешь нам, кто тут клоун? А если ты свой язык в жопу засунешь и будешь молчать, то и так понятно, что ты говна поел.

193
Автор поста оценил этот комментарий

Ну, дружище, для описанного Вами частного случая можно написать приложение на С, следуя стандарту POSIX. Будет работать хоть в Linux хоть в Windows, и весить будет несколько десятков килобайт.

«Жырность» же современных приложений обусловлена тем что они в основном написаны на языках, преобразующих код в платформенно-независимый байткод/промежуточный код, и с добавлением фрэймворков для типичных задач, которые притаскивают с собой свои базовые сущности (включая ненужные под конкретную задачу) и еще пачку зависимостей…

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

раскрыть ветку (1)
12
Автор поста оценил этот комментарий

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

показать ответы
4
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
3
Автор поста оценил этот комментарий

Ну ты выше написал, что какие-то особенные требования к производительности нужны больше в 3д играх. А я написал, что видел обычный софт без 3д графики и физики, который жрал памяти больше, чем игра на Unity. Понятно, что и там и там решает качество кода, в том и суть, что накосячить даже в приложении можно так, что топовые телефоны будут греться, как утюг и память жрать вагонами.

показать ответы
17
Автор поста оценил этот комментарий

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

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

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

Т.е. вы говорите, что большой вес приложений обусловлен большим количеством данных, которые необходимы для работы приложения на разных устройствах и операционных системах и одновременно с этим мне отвечаете, что приложение не хранит эти данные на телефоне.
Мне кажется, что вы сами запутались, и уже просто несёте хуйню. И прекратите грубить!!!
В подтверждение моих слов, что через Google play вы не скачиваете всё лишнее скажу так: чекните вес одного и того же приложений одной версии после установки через Google и через рустор, вес будет отличаться раза в 2 как правило. Например озон с гугла 160 мб. С рустор 365 мб. Это вот как раз из-за того, что рустор не умеет так и не отсекает лишнее и там скачивается весь пакет, который автор залил с всеми возможными драйверами для всех устройств.

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

так лень отвечать. короче, если коротко. никакие драйвера не отрезаются, в приложение во время сборки билда добавляется поддержка разных версий операционки. вот эти вот пакеты и "отрезаются". а приложение весит дохрена из-за того, что не работает напрямую с нативным api, а имеет кучу зависимостей через фреймворк. Компонент фреймворка весит ГОРАЗДО больше, отсюда и конский вес билда.

показать ответы
7
Автор поста оценил этот комментарий

Судя по всему, автор программирует на замарине/флаттере/реакт натив. Мы, чистые нативщики, такое порицаем, потому что в 95% случаев такое поделие выглядит, работает и ощущается как говно. Исключения только в виде приложений с абсолютно стандартными графическими элементами без какой-либо кастомизации сложнее изменения цвета кнопок, и то не факт.

раскрыть ветку (1)
3
Автор поста оценил этот комментарий

Я вообще на unity писал, при том лет 5 назад. А до этого разрабатывал софт для бпла на C++. На RN у меня девушка работает. Все из приложения на RN, это графически как-раз банк или убер, не более того. Никто в своём уме не будет писать на RN фронт для казино, скажем. Хотя и такие заказы предлагали. Но эт совсем пиздец. я как-то лет 12 назад написал клон десктопного приложения pokerstars на управляемых плюсах, так вот похоже даже это не было настолько бредово, чем писать слоты на RN.

показать ответы
10
Автор поста оценил этот комментарий

А почему нельзя сделать основной АПК, который бы определял архитектуру устройства и подтягивал только нужные драйвера ?

раскрыть ветку (1)
6
Автор поста оценил этот комментарий

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

показать ответы
14
Автор поста оценил этот комментарий

Ага, особенно это важно для js программиста. Он прям сильно завязан на версии драйверов, а не на версии API. Если говорить про зоопарк смартов, то на них программируют на java, kotlin, js, swift... Все за исключением swift исполняется в абстрактной VM. Свифт за пределами яблока я что-то не видел. Прям сильно требовательно все к аппаратным драйверам и прочему.

раскрыть ветку (1)
9
Автор поста оценил этот комментарий

swift, серьезно? ты хоть раз видел, чтобы на вакансию по iOS разработке выше джуна требовался бы только swift? в любом приложении сложнее калькулятора используется obj-c. А если уж быть до конца точным, то весь перечисленный тобой стек сейчас заменяет ts+RN в большинстве случаев. А что касается js разрабов, так им как-раз таки и не нужно все это учитывать, но и приложения получаются в разы более жирные и с нихуевыми такими утечками памяти.

показать ответы
31
Автор поста оценил этот комментарий
Если вы не в курсе, то, например, Google play умеет (или она требует от авторов, хз) при скачивании и установке приложения оставлять в пакете только дрова под твоё устройство. При установке приложения ты не скачиваешь все возможные драйвера под все операционные системы, процессоры и экраны.
Есть такая поговорка "слышу звон, да не знаю где он". Вот это про вас!
раскрыть ветку (1)
8
Автор поста оценил этот комментарий

Бля, как вы заебали... Слышь, звон, при чем тут нахуй твои драйвера с гугл плеем? Сам придумал - сам ответил.

Я это все описывал, чтобы было понятно, какое количество переменных прямо или косвенно отвечает за работу приложения на устройстве. Я нигде не писал, что в приложении хранятся драйвера. Ты дохуя такой уверенный, что умнее всех тут?

p.s. остальным умникам передаю привет: глаза разуйте, прежде чем хуйню писать. не нужно свои влажные фантазии выдавать за мои слова.

показать ответы
8
Автор поста оценил этот комментарий

Ну, к слову о js/java там для того что-бы не жрать память, знание аппаратной платформы не столь критичны, как знания используемого GC. Да и вообще, на телефонах, в отрыве от 3d игр, фактически нет реально ресурсоемких приложений.

раскрыть ветку (1)
4
Автор поста оценил этот комментарий

Ооо, вот тут я не соглашусь, так как мое основное направление - разработка 3d игр для телефонов. А подруга моя пишет приложения на RN. Так вот я у них видел такие утечки памяти, что симулятор зависал. Там приложение достаточно комплексное, как-раз на уровне банка, но даже для него это перебор. Вот когда новый прогер в команде заливает на прод такую срань, это да - руки из жопы, тут не поспоришь. А вес приложения, это не прям критично. На Unity вон тоже "игра" с пустым экраном весит в тысячу раз больше, чем когда я писал на direct3d полноценную трехмерную сцену с освещением и шейдерами. Но на Unity я могу сделать за месяц игру, которая на java + opengl писалась бы год.

показать ответы
42
Автор поста оценил этот комментарий

мысл в том, что в мире существует просто ебейшее количество процессоров, графических чипов, wi-fi модулей, 3/4/5g модулей, дисплеев и камер. Теперь представим возможное количество их комбинаций. Представили? И к каждому компоненту идёт свой драйвер.

На уровне приложения ваще похуй на процессоры, чипы и модули. Потому что с древних времен существует такое понятие, как Hardware abstraction layer. И существует он независимо от твоего софта, как компонент ОС. По существу, на уровне приложения все сводится к вызову системных функций. Поэтому ты хуйню спорол.

раскрыть ветку (1)
5
Автор поста оценил этот комментарий

Это на уровне нативного приложения ты будешь вызывать системные функции. А в приложении на RN там еще прослойка размером с кабана. Раз уж на то пошло.

показать ответы
128
Автор поста оценил этот комментарий

UPD и не умеют оправдываться.

раскрыть ветку (1)
21
Автор поста оценил этот комментарий

ну если ты, как заказчик, готов заплатить +400% к стоимости, потратить в 2 раза больше времени, ради того, чтобы твое приложение скачали за 30 секунд, а не за пару минут, и чтобы у Васи на старом мейзу было на 300 мегабайт больше, то тебе так и напишут, главное плати. Вопрос - зачем?

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

Хочешь качественного кода и многолетней разработки, ну так это в opensource, а не в коммерцию.

показать ответы
294
Автор поста оценил этот комментарий

Прочитал. Я не программист и и у меня вопрос к ТС вот за этот абзац

"Если коротко, то во всем. А если подробнее, то смысл в том, что в мире существует просто ебейшее количество процессоров, графических чипов, wi-fi модулей, 3/4/5g модулей, дисплеев и камер. Теперь представим возможное количество их комбинаций. Представили? И к каждому компоненту идёт свой драйвер."

За вот это всё отвечает ОС и прграмма прежде всего с ней взаимодействует.

Где-то, на мой взгляд, логика нарушена.

раскрыть ветку (1)
8
Автор поста оценил этот комментарий

Логика там нигде не нарушена, там как-раз следующим абзацом идет текст про ОС и то что далеко не факт, в конкретной версии будет нужный драйвер.

показать ответы
104
Автор поста оценил этот комментарий

, который не разбирается в вопросе

Ну ты-то просто охуеть как разбираешься, ага. Хардварные драйвера у него в инсталляшке. Пиздец.

раскрыть ветку (1)
5
Автор поста оценил этот комментарий

либо ты сейчас сюда скидываешь цитату, где я такое написал, ну, либо ты пиздобол. удачи ;)

показать ответы
59
Автор поста оценил этот комментарий
Ага. А песню о драйверах вы начали петь просто так, для красоты?
раскрыть ветку (1)
12
Автор поста оценил этот комментарий

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

показать ответы
245
Автор поста оценил этот комментарий
Логика нарушена в том месте, где автор начал утверждать, что в каждое приложение нужно "засунуть" драйвера для сотен разных устройств. Автор не знает, что это забота операционной системы.
Короче, поумничать хотел, но...
раскрыть ветку (1)
15
Автор поста оценил этот комментарий

Если читать не по диагонали, то можно в следующем же абзаце прочитать про драйвера и про ОС. Так что поумничать хотел разве что ты, но напердел в лужу.

показать ответы