А, ты про это. Забыл уже вообще за далвик) Ну всё равно я прав, вес приложения не влияет на скорость запуска. ты можешь написать приложение хоть на 500 мб, но если стартовый экран будет простой - запускаться оно будет столько же, сколько и приложение на 1.2 мб
Не будет. На далвике твое приложение грубо говоря каждый раз устанавливается в оперативку из памяти. Т.е. в памяти по сути лежит архив, который нужно распаковать при запуске. Не важно, какой будет "стартовый экран", все равно придется приложение распаковывать и уже с этим работать, но разумеется, если вырезать все красивости, приложение будет распаковываться моментально. Сейчас же у тебя в памяти телефона уже готовое к запуску приложение и процу не нужно его раскукоживать для запуска и инициализации, т.е. он может просто по мере необходимости брать нужные данные из памяти.
блин, я забыл одно предложение дописать. Далвик не используется начиная с 4.4. Я говорю про версии 5+
Верно. Но, не только это. Есть еще и подход, который вырос из требований рынка. Тот же Agile и SCRUM появились не просто так. Это ответ на запрос рынка: сделайте нам быстро и красиво, и похуй сколько это будет весить (цена производительности железа все время летит вниз), главное - сколько будет цена и скорость вывода продукта на рынок.
Жизненный цикл продукта сегодня стремительно сокращается. Скорость запуска гораздо важнее других характеристик, так как "кто раньше встал того и тапки". А продукт уже через год можно на помойку выбрасывать. Именно поэтому Agile предлагает отказаться от классической модели проектирования - водопадной. В agile нет этапов проектирования, документировании и тестирования в том объеме, который есть в водопадной модели. Это логично, ведь когда на кону стоит только одно требование - быстро запуститься, то тебе не нужно ни проектировать, ни документировать, ни тестировать - весь ЖЦП будет сопровождать одна и та же команда разработчиков. Именно это изменение модели потребовало новых специалистов-многостаночников: T-shaped и devops. Нет экономического смысла разделять труд на специальности, если продукт проживет полгода. Дешевле взять середнячка, но нагрузить его обязанностями смежными с его основной задачей, он будет жрец-жнец-и на дуде игрец. Это будет примерно как таджик-строитель. Умеет все, но по чуть-чуть, и без опыта. 95% потребностей в ИТ сегодня - это быстроживущие приложухи. Проблемы от кривого кода компенсируется отлаженными фреймворками и библиотеками, а гигансткий вес этих библиотек компенсируется дешевым железом. Ровно поэтому Курцвейл и предсказал, что в 2030 году программистов не останется, они будут не нужны - все будут делать "продвинутые пользователи" с помощью жирнючих IDE и нейросетей.
водопад сдох (а точней скорей всего и не существовал в чистом виде, минимум с 90-х) потому что людей способных задизайнить программу так чтоб хоп и перевести в код без переделок тупо нет. А возможность оперативно выкатить новую версию есть (в отличии от строительства зданий например).
Водопад был, есть и будет всегда. Но, только там, где нужны определенные цели. Каскадная модель это достижение индустрии, наравне с ООП. Военные до сих пор грузят коды с флоппи-дисков на 8". Системы управления газопроводами до сих пор работают на машинных кодах Siemens 1960-х годов. Куча банков на западе работает до сих пор на COBOL. И так далее. Там и оборудование соответствующее. Если область АСУ ПХД и развивается стремительно, то АСУ ТМ - нет. Там нужна надежность, практичность, долговечность. До сих пор никуда не делся протокол RS-485, хотя RS-232 давно сдох. По той же причине - 485 используется в промышленности, а ведь это близнецы братья.
Почему водопад не работал с 90-х? Очень просто ))) Это он у нас не работал с 90-х. На западе он не работал с середины 70-х. Просто, запад к нам пришел именно в 1991-93гг., вместе со своими моделями бизнеса, управления и производства. А что произошло в середине 1970-х? Ямайская конференция )))
С 1944 по 1976 годы в мире правила бреттон-вудская валютная система: доллар как мировая валюта, основанная на золотом запасе США (большая часть золота даже не своя, но, типа, под надежной охраной от злых коммуняк). В 1965 году Шарль де Голль нагнул США, и вывез "свое" золото из их закромов на родину. Это послужило старту новой денежной политики международных банкиров под управлением США, которая завершилась в 1976г (а окончательно утвердилась в 1978 г) на ямайской конференции (а то ведь можно и остальное золото проебать!). В чем суть "ямайского" доллара мы теперь хорошо знаем - он ничем не обеспечен ))) а значит, его можно и печатать сколько хочешь, и воровать сколько угодно. Но! Просто так воровать нельзя (по определенным причинам), надо создать инструменты. Типа, оффшоров, фондов, изменения правил работы бирж, и т.д. Это на несколько постов получится ))) поэтому, буду краток.
В экономике предприятий (микроэкономике) есть две статьи расходов: CAPEX и OPEX. Капзатраты и оперционные расходы. При этом, у нас имеется фондовый рынок, где мы можем добыть, отмыть, похоронить и т.д. любое количество денег! Возникает соблазн ))) а не спиздить ли нам денег из собственного предприятия, чтобы нам за это ничего не было? Можно! )) так рождаются целые отрасли стирки бабла. Из которых самой чистой, и при этом очень прибыльной, остается накачка капитализации компании (CAPEX). Фондовому рынку без разницы влила ли компания бабки в новый прокатный стан, или в покупку софта. Только, прокатный стан занимает цех длиной в километр, а софт - это просто лицензионный ключ, цифры на клочке бумаги. Их никто, и никогда не в состоянии проверить. Поэтому, и те и другие затраты немедленно отразятся на стоимости бумаг компании на ФР. Этим и объясняется взлет ИТ индустрии после ямайской конференции.
Теперь, когда чуть понятнее про экономику, давайте посмотрим на взлет первых ИТ гигантов. Майкрософт, САП, Оракл... Все они - выходцы из ИТ монстра, IBM. Википедия нам травит байки о гениальных инженерах, которые "почувствовали" перспективы, уволились и основали свои компании. Вики даже не скрывает тот факт, что все они вышли с наработками, которые делали внутри IBM и за деньги IBM. Это что за лоховской монстр такой? ))) Который растерял столько "талантов". А теперь посмотрите на даты создания этих компаний? С 1972 по 1976. Это не было бегство "талантов". Это был целенаправленный вывод перспективных и доходных бизнесов в офшоры, из под крыла родительской компании, которая была под строгим надзором у налоговой США. Вот и вся суть )))
Теперь детали. Та же САП, разродилась софтом, который можно тиражировать, а не писать заново под каждую компанию. При этом, ей (не случайно) удалось сохранить стоимость внедрения такую же, как и в случае разработки. Случайно это? Ну, конечно нет. Если вы технарь, то смотрите на САП со стороны инженера, а если генеральный директор, то со стороны бизнеса. Почему бизнес готов платить за проект на САП 100 000 000 долларов, а на 1С не готов? Дело не в технических деталях. А в том, что САП получив оплату, тут же занесет обратно половину стоимости проекта. При этом, никакая госслужба не сможет доебаться до сделки. Воруй, но через покупку нашего софта. Поэтому, чем дороже стоит сап, тем охотнее его будут покупать богатые компании. А, раз такое дело, то зачем нам качественно внедрять то, что уже принесло доход? Тут нюанс ))) Запад же не дикий, а цивилизованный. На каждом этапе должен быть акт приема-передачи. Поэтому, владелец компании получает возможность спиздить из оборотных средств, но он должен поделиться с генеральным директором, который ставит свою подпись. Иначе, тот сдаст владельца. Так генеральный выбирает "подрядчика", в лице доверенной консалтинговой компании, тем тоже надо спиздить, иначе на откат генеральному не хватит. И они раздувают штат консультантов. Работают пятеро, а продаются все 100 человек. По бумагам - не доебешься. Все чисто. А по факту - миллиардные проекты торчащие в жопе. Зато, и консультантам на египет хватает - с каждым годом зарплаты растут! Ведь, за консультантов на рынке серьезная драка. И это понятно, когда я работал консультантом, моя ЗП была 3000$ в месяц, но мой рабочий день для клиента стоил 1720 евро в день! Не сложно выдать рабу дольку размером с пару % )))
В итоге. С 1990х годов на "бизнес" рынке отпала необходимость что-то серьезно проектировать. Надо было откатать бабки. Серьезная школа осталась в уцелевших военных конторах и к некоторых эксклюзивных областях, но очень точечных.
Извините, за длинный комментарий )))
Мнение конечно любопытное, но на мой взгляд, вы упускаете самую главную деталь. Каскадная модель с самого начала была чуть ли не пример как делать не надо.
Винстон Ройс - автор этой модели. В 1970 году он написал статью "Managing the development of large software systems". В этой статье подобный подход был представлен. И в этой же статье говорилось, что это очень рискованный и ненадежный подход. Сам Ройс между прочим продвигал итеративный подход.
В 1988 году американский военные внедрили этот подход в своем стандарте DOD-STD-2167.
Ну и там плюс-минус после этого все расползлось везде.
Для бизнеса каскадная модель не подходит ещё по той причине, что в жизни требования постоянно меняются, и не смысла продумывать все заранее. Очень мало существует проектов, требования к которым не меняются в течении хотя бы нескольких лет. Итеративная разработка помогает эффективно корректировать развитие и разработку. А цена ошибки в каскадной модели - колоссльна. Так что вы слишком уж глубоко причины ищите.
Имхо, тут бесполезно объяснять - он либо теоретик, либо работал именно в той области которая подходит под водопад.
При прочих равных бизнесу нужны бизнес решения. А то сколько заносить и кому никаким образом не влияет на то пишется ли софт по водопаду или эджайлу. И разница между САПом и 1С отнюдь не в том что 1С это серьёзная школа дизайна (иначе зачем вы 1С привели?).
Есть парадигма "уровни абстракции" - и на уровне абстракции на котором пилятся контракты людям (имхо) вообще глубоко пофигу что там внутри у вашей программы и будете ли вы сначала дизайн писать или в конце.
А такие вещи как скорость разработки и соответствие функционала требованиям это волнует людей пониже рангом, а решают их люди ещё ниже (в конце концов скатывается к программистам) и консенсус этих решений в том что каскад удобней водопада.
Те области в которых водопад работает это либо области с идеально вылизанной, известной и неизменной логикой либо области где цена изменений неоправданно высока (какие-нибудь спутники вояджер улетевшие из солнечной системы)
Я там написал, что на ИТ можно смотреть глазами инженера, а можно глазами финансиста. Вы смотрите глазами инженера. Я никак Вам не смогу объяснить, это раз. Я не хочу портить Ваш инженерный взгляд, это два.
Давайте, я соглашусь с Вами, и на этом разойдемся? )
Я никак Вам не смогу объяснить, это раз. Я не хочу портить Ваш инженерный взгляд, это два.
А вы и не пытались. Набросили стандартной конспирологии с видом знатока и свалили в закат.
Спасибо )) не менее удивительный комментарий )))) в реальный анализ сейчас мало кто умеет.
Значит - должны были ))) просто вам в детстве говорили, что вы не должны, и вы поверили. Видимо, пришло время перепроверить детские верования )))) рад, что на моем комментарии Вас инсайтнуло )))
хотя RS-232 давно сдох
RS-232 крайне активно используется в современном сельском хозяйстве. Частично в геодезии
То есть пруфов нет и это просто конспирологическая графомания.
ЗЫ. И да, покажите класс, скажите "ну вот буду я ещё что-то доказывать/мне лень тратить на вас время/вы всё равно не поймёте/умный сам обо всём догадается/...".
Не, вы не умный, и не поймете ни в каком случае. Будете ли Вы читать сами, или буду я Вам что-то объяснять. К тому же, у Вас истерика.
Скажите сами, зачем мне что-то доказывать человеку, который "не верит"? Я поделился мыслями. А Вы можете написать свой комментарий, со своим мнением, если не согласны с моим. Вы вместо этого бегаете за мной как школьница, требуя к себе внимания.
К тому же, у Вас истерика.
У меня, ага.
А вообще, спасибо за демонстрацию - вы отлично подтвердили мои тезисы.
Офигеть. Вот именно для этого я захожу на Пикабу. Супер. Спасибо большое за то, что не обломались все это писать)
Крайне не согласен с тем, что программистов не останется. Они были, если, и будут, просто спектр задач изменится. На данный момент программисту какой инструмент не дай - найдёт миллион способов сделать плохо. И это не изменится, потому что дело не в инструментах, а в том, как их использовать, а для этого нужны навыки, внезапно, программирования (я сейчас не про циклы for / while, а более высокоуровнево).
Это да. Но нормальный программист поворчит, но воткнет более менее приемлемый костыль, обычный программист воткнет дикий костыль, а что сделает продвинутый пользователь даже думать страшно.
Программист ничего не решает. Какой смысл втыкать костыль, если, допустим, приложение решили на электроне писать.
Ну кто-то же решил его на электроне писать :) уж точно не бизнес. Но да, принимающих решение людей сильно меньше, чем тех, кому потом с этим жить.
Ну у нас был менаджыр который сам особо не шарил, но вдохновлялся передовым опытом передовых компаний. Моя игруля на первом айпаде написанная за 2 месяца 60 фпс выдавала, но потом после аудита недоделанного проекта решили переписать на юнити (наверно их напугали мои таблицы взаимодействий объектов засунутые в огромные массивы) и оно тупило даже на 4м айпаде. Переписывали командой 4 человека в течение 6 месяцев. Хз зарелизили или нет, прилага текла :-)
Аджайл, хуеджайл, именно поэтому современный софт хуже старого?
Эверноут 10 лет назад работал на 4 айфоне, а сегодня тормозит на 12-м и урезали функции. Наверное, это пользователи просили урезать функции и АДЖАЙЛ-ДЕВЕЛОПЕРЫ послушали?
Гибкое развитие блять у них! Деградация, а не развитие, никто нихуя не умеет писать софт, ебаный твиттер со штатом 10к рыл не может выпустить релиз без багов. Одни хуесосы сидят дрочат на свои библиотеки и новые методы разработки, канбаны блять.
Видел, сколько весит Quake 3 и на каком старом железе его можно запустить? А это блять полноценная 3д игра с полигонами, освещением, сетевым режимом. Это поебаться надо, чтобы такую сделать, это тебе не сидеть по вайтборду маркером елозить. А сейчас сраные сайты с двумя картинками грузятся дольше и весят больше, чем эта великая игра.
И не надо тут на меня слюной брызгать, я тебе говорю как оно работает, а не кого-то отмазываю. И сам я работаю в QA, уж поверь, я иным разрабам намного интереснее эпитеты придумаю чем ты.
где-то читал, что компании предпочитают нанимать нескольких средних программистов, вместо одного гуру. Поскольку гуру со временем начинает все больше просить, и когда уходит, то проект практически встает.
Да дело не в гуру. После приложения действительно проще и быстрее писать с фрэймворками. Во первых не надо изобретать велосипед во вторых ты получаешь готовый код почти без багов. Но весят они много это да.
И дело даже не в фреймворках, а в том, что в андроиде нет блядь способа переиспользовать ебучие либы.
У приложения А фреймворк на 50 метров, у приложения Б тот же фреймворк на 50 метров, и у приложения В тоже фреймворк на 50 метров.
Итого 150, хотя могло быть 50.
Сама ОС умеет в переиспользование. И попытки были. Но всё ломается об версионирование: даже в процессе сборки разрулить версионирование транзитивных зависимостей бывает не просто, то если попробовать повторить это уже на устройстве пользователя - полное досвидания.
Думаю, что если захотеть и напрячься - то можно, например, публиковать популярные пакеты отдельно и использовать semver для того, чтобы не держать 30 минорных версий, а хотя бы несколько мажорных. Или на крайний случай даже вручную разработчик библиотеки может указывать диапазоны совместимости.
Т.е. да, это само на халяву не сделается, и к этому надо прилагать усилия, соблюдать культуру версионирования и обратной совместимости, но мне кажется, что в рамках хотя бы нескольких самых популярных тяжелых библиотек этого достичь можно (с содействием мейнтейнеров библиотек). Никто не заставляет переиспользовать все дерево зависимостей целиком.
Это тупо не интересно бизнесу.
Мейнтейнеры всяких linux дистрибутивов тратят сотни человекочасов что бы поддержать пакеты в актуальном состоянии, и то иногда ломается. И версии не всегда очень то и актуальные. А теперь наложить это на миллион и одну либу всяких web, java, {что угодно}, которые обновляются регулярно...
Да всем просто насрать, всякие расты, голанги и веб вообще специально пишут так, что бы собирать весь код статически в один жирный бинарник, просто что бы и портабельно было и версии зависимостей можно заморозить.
пс: сейчас даже потихоньку и сами дистры linux двигаются в сторону дистрибуции приложений через жирные монолитные контейнеры, я сначала был против, но после покупки жирного ssd даже заценил.
Или на крайний случай даже вручную разработчик библиотеки может указывать диапазоны совместимости.И потом просто ахуеть, от вариативности работы конкретной версий одного приложения на зоопарке из версий либ.
И вся эта ебатьня чтобы 30мб сэкномить на устройстве.
Намного проще оптимизировать не либы а ресурсы/иконки/картинки.
Вот маленький пример как это бывает, я про версионность и популярные пакеты:
Нужно было на джаве написать парсер для json, в рамках автотестов. Полез читать про jackson, потом про gson. Обратился к другу. Друг говорит: это все хуйня, смотри, вот я сам написал свой пакет, который парсит json.
И зачем? Оперативную память это не сэкономит, место на флэшке тоже - если есть несколько приложений, требующих разные версии. Геморроя добавит выше крыши, причём всем сразу.
А самое главное тенденция уходить от общих библиотек далеко не только на андроиде - docker, snap, у MS виртуальные приложения (офис тот же), в MacOS вроде с самого начала так и т.д.
snap и AppImage - раковая опухоль на теле линукса, docker мягко говоря не для десктопа делался и на серверах он действительно оправдан (как минимум из-за наличия публичных облаков типа GKE, да и непубличных тоже).
А есть ещё, например, nixos, который делает для каждого пакета свое "виртуальное окружение", но не тупым копипастом, как в AppImage, а более-менее нормально.
Ох уж этот snap и flatpack туда же. Скачаешь аудиоплеер, но он не имеет доступа никуда: сетевые ресурсы - фигушки, монтируй их как локальные папки, глобальные горячие клавиши - фигушки, и хорошо если плеер имеет функцию их перехвата и настройки. Да и сами плееры это отдельный капец. Я, как избалованный AIMP на винде и ведроиде, офигел, покопавшись в некотором количестве популярных аудиоплееров для ubuntu и не найдя в них элементарных вещей вроде поиск по плейлисту, сортировка по дате изменения файла (есть лишь по дате в тэгах id3), отображения обложки альбома из тех же тэгов и т.д.
Или тот же телеграм, при наведении курсора на который, курсор становится черной рукой вместо белой стрелки - вроде мелочь, но немного же бесит.
Хорошо хоть phpstorm, скачанный из снапа имеет все полномочия, будто он и не из снапа вообще установлен
Потому, что не все есть в apt репозиториях, а как установить из tar я что-то не понял до сих пор, по инструкции из гугля установилось только единицы программ, остальные что-то не хотят.
snap и AppImage - раковая опухоль на теле линукса
Почему?
А есть ещё, например, nixos, который делает для каждого пакета свое "виртуальное окружение", но не тупым копипастом, как в AppImage, а более-менее нормально.
И хоть я и слышу об этом в первый раз, на 100% уверен что там свои косяки.
> Почему
Вам уже ниже написали, от себя добавлю про OpenGL и несовпадения в версиях библиотек образа и версии драйвера в хост-системе.
>И хоть я и слышу об этом в первый раз, на 100% уверен что там свои косяки
Все тупые и не лечатся, один вы умный в белом пальто стоите красивый. Куда уж там разработчикам системы до комментаторов на пикабе.
Вам уже ниже написалиТо что там написали большей частью сводится к косякам со сборкой пакетов. И это меркнет и бледнеет в сравнении с попыткой поставить каким-нибудь apt пакет из более свежего релиза линукса.
Все тупые и не лечатся, один вы умный в белом пальто стоите красивый. Куда уж там разработчикам системы до комментаторов на пикабе.
О, а давайте вы тогда будете последовательны и примете как данность snap и appimage? "Разработчики системы" делали же, куда им до какого-то комментатора с пикабу в белом пальто, да?
отправлять имя и версию софта на сервак, пусть решает что и откуда должно использоваться. там то нет таких ограничений по производительности. да и не надо каждый раз анализировать, готовых пресетов наделать, все равно можно сформировать список стороннего софта, который есть почти у всех
Ограничения не в производительности, а в том, что конфликты зависимостей надо решать лапками, и зачастую с большим использованием интеллектуального ресурса.
В ондроедах? Всегда в рантайме, если зависимость транзиитивна:
- Ваш код зависит от библиотеки А и Б.
- Библиотека А зависит от библиотеки С версии 1
- Библиотека Б зависит от библиотеки С версии 2
Дальше в зависимости от способа резолва конфликтов версий в вашей билд-системе, или же в случае ручного разрешения конфлитка, вы получаете библиотеку С версии 2.
И библиотека А радостно хрюкнет в рантайме (при условии отсутствия обратной совместимости в библиотеке С, что происходит регулярно, и часто с нарушениями соглашений минорных/мажорных релизов).
можешь привести пример, когда А и Б библиотека зависит от внешней С, и эта зависимость не прописана уже в ИХ градлах/мавенах? Именно ондроед библиотеки. Ни разу не встречал такого, что для работы библиотеки А требует библиотека С. Почему не прописать эту зависимость сразу, при написании либы? Ну и ладно, вопрос не в этом. Такие конфликты всплывут именно при сборке. В рантайме что-то может всплыть если используется рефлексия
Так они прописаны в зависимостях, и? Конфликт версий никуда не делся. И в зависимости от настроек conflict-resolution того же грэдла, стратегия их разрешения либо зафейлиться (что хорошо), либо взять старшую версию (что как минимум долгое время было дефолтным поведением, сейчас не знаю).
И даже если оно зафейлится при билде, резолвить вы будете либо ручным выбором одной из версий (и удачи вам проверить все кейсы), либо запакуете обе версии jarjar'ом или shadowjar'ом.
да, ты прав. К своему стыду не знал об этом. Думал, градл должен уметь в разные версии одной и той же зависимости
Грэдл ничего чудесного не делает. Если специально не приседать, то он просто скачает вам jar'ки, а всё остальное работает стандартными механизмами, как если бы эти jar'ки ручками сложили.
Про спички расскажите авторам таких постов и тем, кто отметился здесь в комментах, они вас наградят множеством ласковых и добрых слов. Один сбербанк, второй сбербанк - и минус гигабайт.
А про DLL hell - итерация номер два, для справки - во всех современных менеджерах зависимостей есть такое понятие, как "версия". А у разработчиков библиотек, как минимум, у самых основных и популярных, есть такое понятие, как прямая и обратная совместимость Уже 20 лет как не один вы знаете о такой проблеме.
Про спички расскажите авторам таких постов и тем, кто отметился здесь в комментах, они вас наградят множеством ласковых и добрых слов. Один сбербанк, второй сбербанк - и минус гигабайт.
Ой какой ужас. Аж 300 мегабайт съели, вместо 250.
А про DLL hell - итерация номер два, для справки - во всех современных менеджерах зависимостей есть такое понятие, как "версия".
Ага, и как много "современных менеджеров зависимостей" способны работать с множественными установленными версиями библиотек (ну, кроме винды)? Потому что вроде любая попытка поставить что-то, не скомпилированное конкретно под этот релиз линукса всегда была болью. Пока не появились snap'ы.
Ну да, уже несусь ставить все зависимости на продакшн и компилировать там. Или вручную собирать пакеты.
Зависимости в любом случае ставить, но либо только лишь отсутствующие либо тащить всей кучей лишние либы.
Меня лично пиздец злит, что современный одностраничник весит как ебаный Мега-портал 10 лет назад. IPB весил 200мб весь, если мне память не изменяет. Сейчас лендинг может весить 500
Поставь в виртуал бокс клон боевой системы, скомпилируй там пакет.
И на каждом сервере так. Зачем мне всё это счастье, если я могу просто один раз написать скрипт докера и потом всё устанавливать одной командой?
Меня лично пиздец злит, что современный одностраничник весит как ебаный Мега-портал 10 лет назад. IPB весил 200мб весь, если мне память не изменяет. Сейчас лендинг может весить 500
И что с того? Стремиться минимизировать размер - это какая-то борьба ради борьбы, никакой пользы сейчас от этого (в 99.9% случаев) нет.
Вот ты сам и есть этот мемный программист. Старые прогеры знают про DLL-hell и зачем придумали COM.
Я прекрасно знаю, что такое DLL hell, и потому мой комментарий ниже целиком посвящен вопросам версионирования.
Ну и как ты узнаешь, есть ли на телефоне клиента нужная либа? И как ты будешь её подтягивать туда, если нет?
Включишь её в инсталлер? И вуаля, вот твои 350 метров установщика.
Именно поэтому на андроиде это сейчас невозможно и именно по этому это должно решаться средствами пакетного менеджера, тобишь, гугл плея и соответствующих сервисов в системе. И отдельного репозитория с либами (ну или как-то прикостылить к имеющемуся гугл плею).
Задача которых будет как раз в том, чтобы взять список нужных зависимостей и версий, сравнить со списком установленных, догрузить недостающее и так далее. А пока все будет, как сейчас - попытки выделять библиотеки действительно бессмысленны.
Как в линуксе, да?
Как в линуксе же?
Когда ты скачиваешь пакет, который тебе нужен и если есть возможность и есть пакет в репозитории, то он качается оттуда.
Потому что в рамках установки одного пакета может обновиться другой уже установленный, после чего внезапно какие-то приложения работать перестанут.
Один метод изменили, второй объявили Deprecated, в третьем исправили баг, в результате чего тоже что-то сломалось.
Не удивительно, что в Андроиде сразу пришли к монолитным пакетам, перенести туда весь механизм никсов по установке зависимостей - и никогда бы эта платформа не взлетела.
Воу-воу, полегче. Ты себе сам представляешь подобный репозиторий?
Во-первых, КОМУ он будет принадлежать?
Во-вторых, КТО согласится, чтобы в фоновом режиме что-то там к нему на телефон подтягивалось само?
Во-вторых, КТО согласится, чтобы в фоновом режиме что-то там к нему на телефон подтягивалось само?КЕК
вообще пахую, я в итоге удаляю те приложения которые не жизненно важны мне, значит ли это что если будет плохое приложение у банка что я уйду к конкурентам? - да.
Гуру это мастер. А мастер это тот, кто уже совершил все возможные ошибки, и на них научился их не повторять )) сегодня они не нужны. Весь софт собирается как лего. А дом из лего может собрать даже конченый даун. Просто, в домостроительстве этот подход не используется, так как принципы противоречат: нужно качественно, дешево и надолго. Если было бы качественно, надолго, пусть и дорого, то уже давно строили бы лего-кубиками и 3Д-принтерами. Эти технологии уже есть, но они не по карману рядовому гражданину. А бизнесу - по карману! Поэтому в инфосфере этот подход уже давно и полным ходом.
Чувак, в строительстве кирпич изобрели хуй когда ! А железобетон и готовые изделия из него тоже больше 100 лет назад, как железные изделия стали дешевыми. Пятиэтажку из панелей собирали на глазах.
Вот за что я обожаю пикабу. Пока не разжуешь, в рот не положишь, не проверишь что "все поняли" - нельзя быть уверенным, что тебя не обольют говном.
Если ты в курсе, что строительство из кирпича сегодня, это едва не самая сложная стройка. Пряморуких мало стало. А есть, например, блоки с пазами (не пазогребень), которые собираются за день в каркас одноэтажника почти без клеящих средств одним инвалидом, там просто не промахнешься, даже если ты клинический дебил. Бетон изобрели вообще-то древние римляне (для твоего образования), но принтер печатающий дома - только десяток лет назад! Хоба! Эксперимент с блочным строительством (инновация СССР) я тоже, знаешь ли, застал ))) да. Даже жил в таком доме.
Но, повторюсь, я все время забываю разжевывать и класть в рот. Надеюсь, что кто-то тут все же умеет думать.
Не понимаю твоего сарказма. Дом можно и из бетона отлить целиком. Принтер для печати дома это не дома строить, а демонстрировать возможности принтеров. Строительство это как раз та область, где как правило собирают из готовых блоков и модулей разной степени сложности.
Если распотрошить приложения на либы и куски копрокода JNI, то одно и то же, в разных версиях и ипостасях, встретится количество раз равное или большее, чем число самих приложений.
бля, я думал фреймфорк это когда он в системе стоит и приложуха его пользует. т.е. сама приложуха его в себе не содержит. откуда блядь там 400Мб?
Не, такой подход хейтить начали с самого начала ) И гемора огромное количество. Сча наоборот практически всегда его с собой тащат, так проще и надежнее
Более того, с контенерезацией, там ещё тащиться хорошая часть прикладного по, от хоста только ядро нужно. Просто обычному пользователю нудно что бы работало сразу нажав одну кнопку, но при этом хочет, что бы все это весело как раньше, когда ещё кучу зависимостей надо подтянуть, я посмотрел бы сколько людей пользовались бы андройдами и айфонами, если сложность установки ПО там была бы как в линуксе, до массового прихода пакетных менеджеров )
Apt/apt-get довольно хорошо ставит любые приложения. Хорошие гуи пакетники так же работают через apt.
Snap я видел в Гайдах еще 10 лет назад, но все равно использовал апт вместо него.
Зависимости подтягиваются автоматически, в чем проблема то
Кроме того, что зависимости не всегда подтягиваются автоматически (в репе может не быть нужной версии, а иногда и пакета вообще) основная проблема в версионности - если все пакеты новые, тогда без проблем, а если нужно обновление существующего?
Когда место на HDD было дорогим, это имело смысл, сейчас практичней к каждому приложению иметь набор библиотек нужной версии, чем решать проблемы с несовместимостью разных версий пакетов, когда при установке одного приложения через тот же apt внезапно может перестать работать другое.
И это ещё если не упоминать обновление самой системы, когда в новом релизе из репозитария могут просто убрать нужную версию библиотеки (или вообще библиотеку целиком).
Я под никсы не разрабатываю, а с некоторого времени и не использую почти, поэтому сам так пакеты не подберу, а те, с которыми я ловил ошибку, уже давно десять раз обновились.
Проблема с dwb например была - в рамках другого пакета обновлялся хромиум, после чего dwb стабильно падал с SEGFAULT при запуске.
Сам разработчик на него забил в какой-то момент из-за этого, потому что надоело править проблемы, которые возникают из-за новых версий движка.
Круто, чо. Это как раньше сохраняешь флешку, swf которая, в ехе, так он туда весь мать его адоб мастер коллекшн запихивает.
А фреймворк типа тоже весь в приложение пихают, только нужные компоненты, не?
По разному бывает, фреймворки разные, среды разные и требования тоже. Просто все это делается не со зла, а потому что так надежнее, быстрее и дешевле (с точки зрения бизнеса). Ну и потребители софта вполне довольны, ибо платить много почему-то никто не хочет за софт )
Вы когда нибудь ставили приложение под тот же Линукс из исходников? Это сейчас вам пакетный менеджер все зависимости в большинстве случаев подтянет, а из тар бола будь добр сам поставь нужные библиотеки нужных версий, которые тоже требует зависимостей часто. Сейчас из больших ресурсов стараются от этого уйти в первую очередь, что бы пользователю было удобней, тот же голенг в компилированном виде имеет почти все зависимости в бинарнике и установить его на голую машину почти всегда просто скопировать бинарь
Если внешний апи не используется никакой, то и зависимостей особо не будет, и всякие библиотечки в бинарник влезут. Когда дело касается ос-специфичных проектов, то опять возвращаемся к установке зависимостей вручную. Попробуйте на голанге ui сделать в оси, придется использовать внешний апи и приложения будут требовать их наличие от пользователя.
А вы готовы платить не условные 300 рублей за приложение на телефон, а, скажем, 3к?
Т.к. сложность разработки без готовых фреймворков и библиотек вырастает минимум на порядок. Скорость разработки напрямую влияет на итоговую стоимость продукта. Вот сейчас сделать приложение, допустим, того же сбербанка но весом в 10 метров - и кому оно надо будет при тех затратах на разработку, если чтоб отбить затраты за него ценник выставят в 500 рублей, а за 350 мегабайт - бесплатно?
Ну дак вместо оптимизаций чтоб прилага грузилась за секунду мы лучше потратим бюджет на ебучие анимации которые будем показываеть пока прилага тупит пытаясь запуститься.
Сравнение некорректно.
1) анимации жрут мало ресурсов системы, и тупят не потому что тяжёлые, а потому, что в это время происходит загрузка приложения. Если убрать анимацию, оно запустится максимум на полсекунды быстрее.
2) многое зависит от железа. В современных телефонах до сих пор во многих стоит довольно медленная память, отсюда и долгие загрузки.
3) на отрисовку этих, как вы выразились "ебучих анимаций" разработчик тратит считанные часы. Оптимизация же может занимать месяцы. Абсолютно несравнимые по затратам категории.
4) в процессе разработки НЕИЗБЕЖНЫ факапы и некоторый процент костылей. И не всегда их потом можно дёшево и быстро отрефакторить.
Вообще, интересная область - программирование. Почти как футбол - все знают, как лучше было сделать разработчику, при этом поголовно считают его тупым, криворуким и жадным идиотом.
сами ж потом будут ныть а че это все лагает, вылетает и прочее. наш софт по сравнению с западным получше будет, особенно в банках
потому что ебучее пространство на телефоне не стоит нихуя. Хотите оптимизированные приложения -- получите подписку на интернет-банк за 1000 рублей в месяц и обновления два раза в год.
К тому же постоянно выходят обновления, если каждый раз после этого оптимизировать - двойная работа получается.
1. фреймворки и библиотеки весят ровным счетом ничего
2. Если кодеры начнут писать код без фреймворков и библиотек это увеличит время и стоимость разработки если кто-то сейчас меня попросит написать код (фронт)на ванильном js без использования библиотек, то я во первых попрошу за это наверное в 5, а то и 10 раз больше денег за разработку, а во вторых увеличу время разработки в 5-10 раз и в третих я даже не возьмусь за это.
3. Для того что бы об этом писат нужно хоть немного понимать в этом
4. Вес приложения формирует не библиотеки и фреймворки, а количество картиночек и остальных няшных плюшек которые просит сделать бизнес для того, что бы тупенькие юзеры смогли разобраться во всем, приложуху можно сделать очень легкой, но она будет не информативной и тогда все побегут звонить и доставать бизнес с вопросами «а какую кнопку нажать, я че-то не пойму, тут картинок нет, подсказок нет»/«а че приложение не отображает списания»/«а че приложение не напомнило мне заплатить кредит вовремя» и т.д.
5. Современные телефоны имею предостаточно памяти для приложений, нынешний юзер забивает всю память телефона видюшечками и фоточками, а когда место кончается начинает винить приложения, а сам даже на может воспользоваться банальным дропбоксом(или другим облачным хранилищем), что бы хранить свои приколюшечки не локально.
По второму пункту ещё тот момент, что написание приложение без фрэймворка выливается в создание своего фреймворка (<картинка про стандарты.jpeg>). Только он будет хуже, будет содержать больше ошибок, и найти программистов знакомых с ним по понятным причинам будет невозможно.
Вес приложения формирует не библиотеки и фреймворки, а количество картиночек и остальных няшных плюшек которые просит сделать бизнес для того, что бы тупенькие юзеры смогли разобраться во всем, приложуху можно сделать очень легкой, но она будет не информативной и тогда все побегут звонить и доставать бизнес с вопросами «а какую кнопку нажать, я че-то не пойму, тут картинок нет, подсказок нет»/«а че приложение не отображает списания»/«а че приложение не напомнило мне заплатить кредит вовремя» и т.д.
картинки в основном векторные, т.е. не весят вообще нихуя. Все формы/цвета/стили делаются кодом и весят примерно столько же. О чём ты?)
Юзверь в любом случае побежит спрашивать какую кнопку нажать, даже если будет одна кнопка Ok, все равно будут спрашивать что нажимать.
Ну или сами тупые юзвери(((
На самом деле, я говорю это имея 8 летний опыт работы в поддержке. Не от того, что я какой-то там супер пупер разработчик, а вокруг тупые. А потому, что сталкивался с этим на практике.
ну да, я тоже погорячился, назвав их тупыми. Они не тупые, просто у них нет столько опыта взаимодействия с различными интерфейсами, чтобы уже абсолютно любой интерфейс был интуитивно понятен
которые при этом условно простой язык засирают могзовыносящими конструкциями ради того, чтобы на сферической кнопочке в вакууме можно было добавлять кастомные иконки, надпись в 2 строки и анимации