.NET Fest: полная программа конференции на сайте. Присоединяйся к самому большому .NET ивенту
×Закрыть

Java enterprise или Android?

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

LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Где больше алгоритмов и математики?

Мимо.
Математики больше в научном программировании(ЧМ, те кто пишут софт под обработку данных экспериментов), но туда попасть почти невозможно Чуть меньше математики и алгоритмов в разработке физ. движков и рендереров(снова привет ЧМ). Еще меньше математики в программировании под эти физ движки и рендеры(снова ЧМ). Много математики в фомальной верификации(логика и типы), но туда влезть очень проблематично. Чуть-чуть математики в лице теорката в ФП(Haskell, scala, ocaml, etc). Кое что есть в там где пишут все ml/cv либы(снова ЧМ и матстат), но опять же, попасть туда проблематично. Из всего выше перечисленного, проще устроится на хаскелиста/скалиста.

Много математики в фомальной верификации

смотрел, это не математика

Чем нет? На коке вполне себе математика. Не на коке, через крипке-структуры, системы переходов и т.д. — логика (составная часть математики), алгоритмы и т.д.

Где больше алгоритмов и математики?

Java EE и android/ios мобайл — это сплошное крудошлепство и формошлепство, какие алгоритмы и математика. За последним иди в Data Science, может и с С++ повезет, правда всегда есть риск стать Qt-формошлепом.

Data Science
алгоритмы и математика

))))))

А где потерялся комментарий про ios, в котором автор утверждал, что у «вайти» нет денег на мак, но эти деньги есть у профильного студента 3го или 4го курса?

У меня значительная часть ios/mac разработчиков переходила кто-то с android, кто-то с c++, есть даже из 1С и пхп. А для них купить мак — не проблема.

но эти деньги есть у профильного студента 3го или 4го курса

Одногруппники зарабатывали на бу макмини простой html-версткой на фрилансе.
Когда-то галеры брали студней на вырост, при чем тех, которые хоть чуть-чуть знакомы с алгоритмами и писали лабы в универе, даже если те ни разу не кодили конкретно под ios. Также джунами брали тех, кто хоть чуть-чуть ковырялся в хакинтошах, пару месяцев помучиться с xcode-ом в виртуалке/хакинтоше и все — ты готов зайти на борт галеры.

А большинству вайти даже установка хакинтоша доставляет особые проблемы, не говоря уже еще про выучить синтаксис Objective-C и Swift. А купить мак — это слишком рискованное денежное вложение, да и не факт что программирование зайдет, и не факт что получится выучить basic Computer Science, который профильные студенты как правило неплохо знают.

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

Когда-то — это лет 7 назад?)

jobs.dou.ua/...​cancies/?category=Android
vs
jobs.dou.ua/vacancies/?category=Java

Читаешь требование\описание проектов и сам себе решаешь что плюс а что минус.

мобіли тухла параша, там будеш трахатися з девайсами, версіями андроїдів, компілювати хелловорлд по три хвилини, витрачати день на оновлення андроїд студіо та фіксити код після того як гугли в черговий раз вирішили замінити своє геніальне апі.

мобільні проекти в нас це в основному або рулетки зі слотами або тухлий аутсорс «зробіть мені з сайту аплікуху»

сама суть мобільних проектів — це ще один фронт. Логіки там мінімум, туди-сюди json-чики ганяти. Звісно якщо це не інстраграм фільтри де треба шарити матан.

На бекенді тиш та благодать, тулзи не оновлюються, все давно написано і до всього є підходи, зарплати більші і так далі.

www.rozhkov.me/post/mobile-development

Кожен раз коли треба шось робити під мобіли око сіпає.

Зараз звичайно набіжуть мобільщики і скажуть шо в них все ок а я — неосілятор, але ти їм не вір. Вони просто бекендом не займалися тому не знають що можна жити по-нормальному.

мобіли тухла параша, там будеш трахатися з девайсами, версіями андроїдів, компілювати хелловорлд по три хвилини, витрачати день на оновлення андроїд студіо та фіксити код після того як гугли в черговий раз вирішили замінити своє геніальне апі.

Два чая этому господину

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

нет настолько большой фрагментации по версиям ОС

это с лихвой компенисируется когда приходит время заливать апку в апстор...

это с лихвой компенисируется когда приходит время заливать апку в апстор

Как?

Або коли вони випускають новий iOS, в якому в твоїй апці в проді чомусь відвалюється половина функціоналу, аж доки вони не випустять 3-4 патчі, а ти за той час ловиш тонну лайна в ревюшках.

OpenVPN Connect. Ми минулого року якраз випускали нову версію, а вони паралельно випустили iOS 12, в перших версіях якого ОС тупо вбивала наш процес в фоні (байдуже, що це Network Extension, який має працювати в фоні). Потім пофіксили.
А ми всім втомились пояснювати, що це не в нашій новій версії бага, а в самому iOS. Було весело.

Скотство.

А яблоко хоть шло на диалоги?

Есть подозрение, что они перед релизом пробежались по главным сценариям, а расширения, которые нечасто используются, тем более для серьёзных целей вроде вашей — у них посмотреть просто некому было :(

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

А стосовно причин цього — все просто, це жорсткі дедлайни. Сказано кожну осінь релізитити — мусять релізити, хоч і багів тьма. В разі чого юзери схавають, це ж ЕЙПЛ.

В мене подібний сценарій був зі Screen Recording Extension.
Також тікет в радарі як дублікат закривали. Пофіксили в iOS 12.2.
Довелось робити відео інструкцію для користувачів, як обійти багу:)

Что написал под Андроид? Был на конференциях спикером, писал статьи, чтобы глубоко разобраться в вопросе? Или как пассажир с «тухлыми парашами» не раздуплился толком, но при этом высказываешь свое «экспертное мнение?»

Что написал под Андроид?

Из самого сложного — кастомная реализация протокола аудио/видео звонков (не webrtc, и не sip). Из самого нелегального — залил свою прошивку на 4pda, которая изменяла креденшелы и само имя пакета приложений для рекламных модулей на мои собственные — то есть от любой показанной рекламы на девайсе хомячка (который установил мою прошивку) именно я получал деньги, а не создатели приложений)))

Был на конференциях спикером, писал статьи, чтобы глубоко разобраться в вопросе?

Нафига? Писать про то как формы шлепать, в Rx играться и снобствовать про еще один говенный способ как делать «чистую» архитектуру?
Андроид параша именно по причине зарплатных перспектив и собственно самой ОС как таковой — это с позиции разработчика. С точки зрения юзера — может лучше, эдакий линух который всегда под рукой, но производительность VM оставляет желать лучшего. Короче не жалею что свалил в ios несколько лет назад.

компілювати хелловорлд по три хвилини

ну такой херни вродь уже нету. в остальном правда.

Підписуйся на канал t.me/full_of_hatred

ми на роботі з колегами тебе читаємо. канал в тебе бомбезний!

Как мобильный разработчик плюсую.
С моей точки зрения проблемы не в инструментарии, а больше в характере мобильного рынка в принципе.
1. К нам аутсорсятся в основном трешовые проекты с достаточно маленькими бюджетами.
Изредка бывает mobile энтерпрайз, но как правило на галерах.
Конечно энтепрайз это не «крутые стартапчики», вот только на этом кровавом ынтерпрайзе и бывают нормальные зарплаты. Для крупного бизнеса апка всего лишь сервис, и им не проблема выделить нормальный бюджет.
Что касается стартапов, то инвесторы все реже дают деньги на треш вроде очередного инстаграма для еды.
2. В мобайле практически нет наработанных архитектур от Google/Apple, кроме MVC.
В последнее время есть сподвижки от Apple, но в прод пойдет это не скоро.
Я не буду комментировать самописную реализацию Redux на мобайл проектах, которую вспоминали в соседних топиках.
3. Основной конкурент найтив мобайла — кроссплатформа. Заказчики мечтают сэкономить вдвое, даже если нормальный бюджет — соблазн экономии велик. Убедить в том, что в долгосрочной перспективе лучше писать нативно достаточно непросто.

В мобайле практически нет наработанных архитектур от Google/Apple, кроме MVC

це просто брєд

1. Согласен со всем сказанным.

2. Возражу частично

Я не буду комментировать самописную реализацию Redux на мобайл проектах, которую вспоминали в соседних топиках.

Надеюсь , что засохнет и не приживётся.

В последнее время есть сподвижки от Apple, но в прод пойдет это не скоро.

Уже есть SwiftUI, есть реактивный фреймворк Combine среди системных, но:

@available(iOS 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, *)
Так что оно-то в проде есть, но никто в здравом уме не будет отсекать требуемую версию iOS до «13 и не старее», кроме рыжих бородачей, которые сначала напишут проект — а потом попадут впросак и будут чесать башку, что нарвались на ограничения, которые по своей же невнимательности не заметили.
Так если на собеседовании юный вейпер скажет, что у них проект будет на SwiftUI, спросите, не против ли заказчик и юзеры, что только iOS 13.0+.
Возможно, они в первый раз это услышат именно от вас 👍🏽
...

3. Жадность фраера погубит. Удачи найти человека, который знает тонкости обеих платформ.

Подтверждаю. До перехода в бекенд писал приложухи на Андроид. У меня было впечатление что Андроид со стороны разработки — это огромнейшая конструкция из костылей. Особенным трешем была ебля с китайскими смартфонами на которых тот же код работал не так как на других устройствах(например данные из внутренней БД SQLite нужно было забирать не по имени поля а по его номеру в таблице).

ні в якому разі не кажу, що ви брешете, тим паче, що сам працював з мобілками лише місяців зо три давно, та й то на Хамаріні. Але дещо хотів би спитати.
а) я правильно зрозумів, що за більший геморой в мобілках платять менше, ніж за менший в бекенді, всупереч логіці?
б) що ви маєте на увазі під «в беку тулзи не оновлюються»? Я дотнетчик, і мені, схоже, скоро доведеться тримати три копії проекту під різні версії НетКору (якщо спрощено сказати).
в) чисто заради цікавості — ви чули про Flutter? Знайомі кажуть, що в нього є всі шанси спростити розробку, звівши все до «3-в-1». Не знаю, чи правда, але.

а) я правильно зрозумів, що за більший геморой в мобілках платять менше, ніж за менший в бекенді, всупереч логіці?

зарплатна стата сама за себе говорить. щодо рівня гемору це суб’єктивно, але як на мене (я писав під все) то рівень пердолінгу наступний:
бекенд < фронтенд < моча < гавно <<<<<< андроїд < ios
Звісно є тіпочки яким норм з цим трахатися і вони прийдуть і будуть розповідати шо ми не шаримо і в андроїд студії вже давно немає таких проблем, і всі вже пишуть на свіфті, і різні версії XCode не треба тримати і ваще все харашо але я їм не вірю.

що ви маєте на увазі під «в беку тулзи не оновлюються»?

шо там реліз нової версії джави не значить нічого від слова зовсім. те саме з рубі, пітонами, і тд. все вже давно стабільне і не змінюється роками.

Я дотнетчик,

не знаю шо там в дотнеті, але спічуваю.

ви чули про Flutter

)))))

Знайомі кажуть, що в нього є всі шанси спростити розробку

))))))))))))))
Ну успіхів, шо можу сказати. Розробку таким чином спрощували ще в 2010 за допомогою GWT.
Я сам не використовував ні флуттери ні реакт натіви, ні ксамаріни ні іншу кросфплатформену штуку, тому обісрати їх не можу.

В iOS разработке есть две инфраструктурные проблемы, и обе касаются Xcode, где обычно трахаются:
1. Профили, сертификаты, где чёрт ногу сломает. (поэтому если в описании вакансии это требуют уметь и знать — значит, что в компании этим заняться некому и ищут героя, который наведёт порядок)
2. Xcode легко может подавиться гигантским проектом на свифте, как гуси давятся выброшенными через окно во двор презервативами. Отваливается autocomplete.

Уходящая проблема: странная эволюция свифта и ABI-совместимость, здесь навели порядок.

Неуходящая проблема:
Если тебе от эппла что-то надо, чтобы они сделали — не добьёшься , как от самых поганых бюрократов из Германии.
Глухое помешательство...
Яблоко ставит палки в колёса тому же Спотифаю.

Потенциальная проблема: помимо MVC/MVVM/VIPER, которые устаканились и всех устраивают, всякие инфлюенсеры и рыжие бородачи любящие всей своей душой new shiny things пытаются протолкнуть свои RIB/Flux/... потому что новое, свежее и от убера/фейсбука/ещё кого-то.
Не дай Б-г, а то будет зоопарк и буйство красок, как у джаваскрипт-фреймворков.

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

Чего нет:
Такого, что на одном айфоне работает камера , а на другом — приложение вылетает при попытке доступа к ней.
Хотя выше был пример с OpenVPN.
(на андроиде же так: на самсунге с25 — ок, на с15 — странные артефакты, на хуавей хз4 — медленно, но ок , на престижио, купленном в эльдорадо — вылет)
То, что собираются выбрасывать из iOS — о нём сообщают заранее, а не вчерашним числом.
Если на телефоне нет 3D-touch, то самое худшее что будет — не крэш, а отсутствие контекстного меню на давних моделях телефонов.

Разные версии Xcode — это лишь для рвачей, бегущих вперед паровоза со скоростью человека, которого на вокзале застал понос, а поезд — уходит через 10 минут.
Вот и ставят ß-версии, потому что невтерпёж.
Для обычных команд — это не нужно или ставит один человек и проверяет, что всё хорошо, просто на всякий случай.

Xcode легко может подавиться гигантским проектом на свифте, как гуси давятся выброшенными через окно во двор презервативами. Отваливается autocomplete.

Позвольте. Это не уникальная проблема Xcode или Swift. Точно также существуют Java, Cpp и .Net проекты, которые легко ставят на колени eclipse и VS. Это проблема вязких монолитных код баз, в которых любое изменение провоцирует переиндексацию (во время которой не будет autocomplete) и сборку всех 100500 файлов. Добавьте к этому необходимость выведения сложных типов, как в Swift, и получите поминутно захлёбывающийся компилятор.

Разбивайте проект на модули в пару десятков файлов. Изменяйте, запускайте и тестируйте модули в изоляции. А сборку всего приложения оставьте для CI. Последний раз, когда я запускал всё приложение был когда мне нужно было поработать с AppDelegate.

MVC/MVVM/VIPER, которые устаканились и всех устраивают

Но это просто неправда. Нельзя натянуть одну MVVM-сову на все глобусы. Существует немало причин, по которым проект будет вынужден отказаться от любой из этих архитектур и начнёт делать свой RIB/Flux или позаимствует его у убера. И не всегда эти причины сугубо инженерные — они могут быть операционными. Проекты на 5 инженеров и на 200 требуют разных архитектур. Даже если оба проекта — car sharing app.

всякие инфлюенсеры и рыжие бородачи любящие всей своей душой new shiny things пытаются протолкнуть свои RIB/Flux/... потому что новое, свежее и от убера/фейсбука/ещё кого-то.

Я не совсем понимаю, в чем тут проблема. Если только это не рыжие бородачи-хакеры, которые взламывают чужие репозитории и переписывают чужие проекты под shiny new things.

Уберы и фейсбуки со своими RIB/Flux — это замечательно, потому что люди решили уникальные проблемы уникальным способом и поделились этим. Я уверен, что нашлось немало проектов, для которых RIB удовлетворил 95% потребностей, и на которых высокий уровень developers happiness.
И я не утверждаю, что вашему проекту не подойдёт MVVM или что MVVM плох. Это идеальный паттерн для большинства мобильных приложений.

С остальными утверждениями я согласен.

Яблоко ставит палки в колёса тому же Спотифаю

У яблока есть же свой маркет музыки? Конечно будут мешать другим :)

не знаю шо там в дотнеті, але спічуваю

... Могу ошибаться, но мне тоже почему-то дот.нет кажется ...опой
Разубедите, плз

1. По пустынному пляжу идет здоpовенный небpитый мужик с кувалдой. Видит, загоpает миниатюpная девушка. Подошел к ней, в затылке почесал, да кааак е...т ей кувалдой по спине.
Д.: ААААА !!!
М.:(pазводя pуками): Ой, посмотpите какие мы нежные!

Это я о масштабе проблем. Представьте, на секундочку, как в инструментальном плане живется тем, кто пилит сам Xcode или, например, iOS. И ничего, не жалуются.

2. Там, где

тиш та благодать, тулзи не оновлюються, все давно написано

очень слабо берится, чтобы были

зарплати більші

.

И ничего, не жалуются.

Якшо хтось добровільно їсть кал, то це не значить що іншим потрібно робити те саме, і ще й бити по руках тих, хто піднімає проблему калопоїдання та хоче перейти на нормальну їжу.
Те що в Індії немає води в селах не значить що я не можу скаржитися та піднімати проблему поганої води з-під крана в Києві.

очень слабо берится, чтобы были

не вір далі, а ми, джава-ентерпрайз тіпи будемо отримувати космічні бабки за ненапряжну роботу.

Вони гадають, що то саме Kopi Luwak))

екендом не займалися тому не знають що можна жити по-нормальному.

AbstractProxySingletonFactoryBean, сервлеты в томкате, спринги — это по вашему нормально?

Как будто что-то плохое.

Java уже уходит постепенно на второй план в мире Андроида, начинает преобладать Kotlin. Backend проекты не так скоротечны в отличие от мобайла, поэтому, там чуть больше инертность, с мобайлом держать нужно себя в тонусе постоянно.

судя по количеству вакансий по сравнению с джавой, он никому не надо

удя по количеству вакансий по сравнению с джавой

Легаси же.

Разве что во влажных снах жидбрейнса.

Все новые (2017+) проекты стартуют на Котлине. Оф. документация для андроида пишется сначала на Котлине. На Джаву в Андроиде уже смотрят как на что-то устаревшее

Да пускай.

На Джаву в Андроиде

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

И причем тут это? Посмотрите на начальный комментарий, он о Kotlin’е в Android был, а не о сравнении глобального рынка Java.

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

згадайте скільки проектів запускав гугл і скільки з них не взлетіло і тоді можна буде говорити про фуксію. + на відроїді тоже бувають великі проекти(не такі як на бекенді, але все одно) і запускаються вони не завжди на флагманах. їх на якомусь жс не напишеш(як мінімум лаги, дропатимуться фрейми і тд).
на рахунок котліна, то думаю 99% бекенд проектів можна сміло на ньому писати. тільки нашо, якшо чувак уже знає джаву і пише на ній швидко.
Котлін класний на мобайлі через то, шо в нас гавняча джава там використовується(ні тобі Optional, ні стрімів). хоча комусь і цього вистачає. тут питання смаку

це далеко не так. є деякі компанії, які стартують всі нові проекти на Котліні, але це навіть не половина від всього ринку(думаю навіть не 30%, якшо ми говоримо про Україну). а навіть там, де проекти на котліні, питання на співбесіді переважно все одно по джаві
+ різниці на чому писати особо нема. Котлін класна заміна Джавки на мобайлі(бо на мобайлі джава не так швидко апдейтиться, як на бекенді і вона в нас трошки адова. навіть не на всіх проектах 8 джавка з лямбдами і куртизанками стоїть(а навіть, якшо і стоїть, то куртизанками — Optional і всякі такі штучки — можна користуватись тільки з 6 андроіда(24 апі))), але все одна це той же байткод джави в кінцевому результаті. хоть пиши зразу на двох мовах, аби зручно було в тому болоті копирсатись

Интересно. А почему они используют Java, и почему нельзя продвинуть там Котлин? В одной из компаний в которой я работал, я так и сделал. Главным аргументом стало то, что есть под десять причин почему писать на Kotlin вместо Java, и ни одной причины почему писать на Java а не Kotlin.
Вопрос смерти полной смерти Java на андроиде это только вопрос времени, не более. Не в этом году, так в следующем.

цілком погоджуюсь. я, наприклад, котлін вивчив і не проти на ньому писати, але тут багато залежить від команди. якшо команда з 5 андроїдів і я буду знати котлін, а інші нє, то проект буде писатись довше в рази. принаймні на перших етапах. бізнесу все одно на то, шо ти хочеш, шоб тобі було зручніше — йому треба здати проект в визначений термін
деякі проекти стартуються на котліні, якшо знайдуться компетентні люди. чуваки, які його поки не знають будуть просто фігачити гамнокод

На самом деле, при хорошем уровне знаний Java и достаточном опыте, переход на Kotlin достаточно быстро происходит. Из личного опыта скажу.

Да неужели, ты для начала разберись, почитай, а потом заливай! На — android-developers.googleblog.com/...​nces-on-Android-Play.html, секция про Kotlin, а то снова ненагуглишь и будешь делать безапелляционные заявления.

Подписаться на комментарии