Вкатываемся в новый язык на превосходно отточенной jvm с богатейшим набором библиотек от java.
>Что имеем: У нас есть синтаксический сахар поверх джавы, немного ФП (удобные лямбды), корутины с асинхронщинной, DSL и многое другое. В синтаксисе можно встретить много WTF-решений (как же без них), но в целом, плюсы перевешивают минусы. Так-то, во всех языках есть что-то что раздражает. Параллельно jvm платформы пиляться kotlin-js (котлин для javascript) и kotlin-native (компилируемый в нативный код котлин), а возможность языка в DSL позволяет писать на HTML и CSS (типобезопасно), если кому-то это надо. Котлин имеет полный интероп с джавой, от чего его не совсем корректно сравнивать его со scala.
>Хайп: Язык был подкреплен гуглом в связки мобильной разработки, а с недавних пор рекомендован как основной язык для андроида, из-за чего начался рост популярности языка. Также для языка был создан фонд, чтобы в случае покупки создателей не повторилась судьба с джавой. Вероятно условия гугла. В связи с этим, котлин очень популярен в мобильной разработке, порой даже раздражает, что весь свежий контент пишут именно о телефонах. Но нужно помнить, котлин это та же джава и сейчас мы видим, многие фреймворки предлагают решения сразу на двух языках (как минимум пишут примеры, но в целом котлин имеет хороший интероп и так).
>Производительность. Не забываем, что java (с JIT) одна из самых производительных платформ. Она делит топ 10 наравне с многими другими производительными платформами. Также у джавы хорошо оптимизированный драйвер базы данных, что видно по тестам. https://www.techempower.com/benchmarks/#section=data-r18&hw=ph&test=query Нередко именно база-данных является узким местом в веб-приложениях.
>Q: ...кококо, котлин уничтожит джаву! A: Нет. Котлин сильно завязан на джаву и не заменяет её, а скорее дополняет (как typescript дополняет javascript). Джаву никто и ничто не заменит в ближайшие 10-15 лет, у этого языка чрезвычайно огромный капитал написанного кода, поэтому переживать за неё не стоит. В любом случае конкуренция это хорошо, джава стала развиваться (попутно завозя годноту в байткод).
>IDE - среда разработки. Бесплатная community edition - обычно более чем достаточно (и работает шустро), но можете попробовать триал-версию. https://www.jetbrains.com/idea/download/
>Telegram В телеге есть чаты по котлину. Это полу-белорусское комьюнити, которое клонирует пачками чаты (раньше про джаву - JavaBy и KotlinBy в Gitter). Крайне не рекомендую посещать это рассадник из ЧСВ макак. В чатах лобызаются одни и те же лица и если ты им не понравишься (а ты им не понравишься) будут постоянно тебя подстрекать пассивной агрессией или принуждать к анальным правилам, которые они вспоминают только тогда, когда пишешь ты. Конечно, ты можешь терпеть и сидеть в этой помойке, но если не хочешь словить негатив и получить ложное представление о ру-комьюнити, не рекомендую посещать этих ребят. Лично видел как токсично слили пчела за расспрос про api java. Если можешь в ангельский, лучше сразу нырнуть в слаку. https://kotlinlang.org/community/#kotlin-online-resources Но лично я рекомендую не заниматься херней в чатиках, а спрашивать сразу на StackOverflow, тем самым ты сразу поможешь тысячи другим пользователям (и себе в будущем, если забудешь): https://stackoverflow.com/questions/tagged/kotlin Там можно спрашивать даже банальные вещи (кроме неопределенных), они потом хорошо гугляться и превращаются в простой справочник. Серьезно, анон, прекращайте спрашивать на древних форумах, бестолковых чатах, и даже двачах. Если уж совсем плохо с английским и не можешь в переводчик, то там есть ру-язычная версия сайта, но это так себе идея
>>1705352 Питухон хорош пока пишешь маленькие скрипты, как только приложение вырастает, начинается боль и страдание, ибо динамика есть динамика. Ну еще этот йоба синтаксис, не рекомендовал бы начинать с него, так как языков с Си-подобным синтаксисом больше (из популярных). Это кажется фигней, но на самом деле очень важно, я видел как людей ломала после питона и руби, у них усиленная утиная болезнь.
>>1705245 Как по мне учить котлин не зная джаву самоубийство. Все книжки написаны по типу "вот это работает как в джаве, только чуть чуть подругому". Базовые вещи вообще не обьясняются Короче удачи и терпения)
>>1706401 Сейчас качество книг такое, что учить по книжками становится самоубийством тупо развод на бабло по завышенной цене, куча ошибок, куча воды, устаревшие техники и приемы, порой изложения материала усложняет даже сам материал. И такие книги еще в топах рекомендациях на всяких нубо-форумах
>>1706762 3 года в вебе- JS, NodeJS, React. Вот думаю расширить кругозор андроид разработкой и статически типизированным языком, тем более есть вариант отчуиться за счет компании
Кстати чем моложе соискатель, тем меньше вероятность, что его возьмут на работу, современная молодежь абсолютно бесполезна. За последний месяц уволили сразу 2 молодых и шутливых, обоим по 20 лет, разговоров о призвании и горящих глазах было до жопы, а как дошло до дела, оба начали проебываться, пиздеть и нихуя не делать.
>>1706604 А вот и секта свидетелей мягкого знака пожаловала, бывшая секта свидетелей буквы "ё", "кофе" и "запасный".
Вы никогда не думали, что орфография искусственно усложнена, видимо просто по приколу, чтобы крестьяне не вкатились легко. Особенно радуют надуманные исключения в виде стеклянный, оловянный, деревянный. Или избыточные запятые для слов разделителей а, но, что...
>>1706755 Взять котлин точенный и снести js перченый, заменяя на kotlin-js мудреный. А вообще nodejs лютая шляпа, реальная её популярность в js мире будет небольшая, все ваннаби программисты сидят на фронтенде и придумывают себе фреймворки, чтобы платили больше
>>1706913 >nodejs и я не понял причем тут фронтенд, по сути nodejs это контейнер для v8, расширяющий движок методами для создания сервака/отправки хттп запросов/etc. нода для того и предназначена, чтобы на бэке работать, используя js.
>>1707031 Ну раз мы начали по стэковерфлоу мериться адепт, с мягким знаком тут все норм??, то смотри как получается, доля тегов с nodejs не такая большая в массе самого js (см. картинку).
А вообще рейтинг SO представляет собой отражение популярности инфоцыганных языков. Отсюда кстати и финомен популярности динамических языков, вкатывальщиков лучше всего на них развезти. Тоже самое надо смотреть на дотнет и политику мягкий по внедрению курсов дотнета студентам.
Есть еще веселые динамически графики на ютубе, которые показывают как с годами менялся интерес к языкам. И самое забавное это всплеск вопросов в период сессий у некоторых языков.
Так что засунь себе SO в любое место (как и рейтинги по поиску), дабы не оказаться в каком-нибудь говне типа питона, пхп или жабаскрипт.
>>1707283 Вообще, если есть чуточку мозгов, то надо вкатываться не в самый популярный язык гуглящийся студентами. А в язык с хорошой оплатой. Выбирая, скажем, питухон, ты неожиданно можешь оказаться с тем, что на одно место будет сотни джунов готовых работать за еду. Пробуй, конкурируй. Там уже требования такие, которые 10 лет назад были на уровне синьера-помидора.
Остерегайтесь псевдо-хайповых языков. Ищите языки, которые будут кормить жаба мир, дотнет мир, системщики... итд
>>1707407 Если в окно успеешь, но уже открыто и скоро закроется Если ты не понял, то джуному нужно быть уже сегодня тк уже через год за место джуна будут собеседовать под куполом смерти
>>1707407 Кормить будет жаба и бэкенд. В мобильную разработку я сильно не верю, сегодня там платформа андроид есть, завтра лет через 10 её может и не быть.
Но я старый енотик полоскун и что я могу понимать в том, как правильно чилить, кекать, панчить, флексить и рофлить.
>>1707760 Поясню. Жаба мир, это устойчивое место, с накопленным большим капиталом кода. Его так много, что кушать его будут даже твои дети (или внуки, если ты знатный олд). Но жаба сама по себе уже топорна и неудобна, да, там, конечно, обещают в 2024 что-то завести, но натянуть сову на глобус будет проблемно. Поэтому нужны альтернативы.
Скала, это высер очередного мечтателя, практичности там нет. Груви, это динамо-машина, которая удобна в одних случаях (скрипты), но костыль в других. Так уж вышло что сейчас не 2000 годы и скрипты порой представляют маленькие приложения-утилиты. Поэтому надобность в типах , ощущается даже в небольших утилитках и на динамико-дрисне писать становится трудозатратно никто не говорит, что невозможно, я говорю что не рационально
Получается, до текущего времени, не было рабочей лошадки для JVM мира, на котором нужно было просто удобно работать и вот котлин таким дополнением и стал. Так что если хочешь котлин и хорошую зарплату, нужно все равно вляпаться в котлин, в бэкгрануд жабы. Может быть лет через 10 джава будет моветоном и нужен будет только котлин, но точно не сегодня.
>>1707782 Посмотри графики, как в разного рода ИТ сферах менялись монополисты. В свое время мягкие даже распустили группу разработчиков IE6, потому что тот отжал 80-90% рынка и они думали что "все", победа, пока лиса, а потом хром не изменил все в корню. Так же и андроид, слишком узкая платформа, в отличие от ставшего стандартом IBM-PC и тем более серверных решений (бэкенд устойчив, а платформа мобильников еще может меняться, даже сам гугл там что-то новое пилит, хотя скорее всего обосрутся снова).
>>1707793 ну не будет андроида, выпустит гугл свою фуксию и что, мобильная разработка от этого никуда не денется, 2 млрд устройств не испарятся. короче, хуйню какую то несешь, оторванную от реальности, старина
>>1707802 Другая платформа, другие особенности разработки, твои знания об андроид станут ненужны и устаревшими. И весь капитал кода, который удерживал язык - помножиться на ноль
>>1707804 >Другая платформа лол, какая? фуксия- просто новая ос для смартфонов > твои знания об андроид станут ненужны и устаревшими понятия, принципы мобильной разработки будут на месте, ну и котлин никуда от переезда на новую ос не денется
перестать поддерживать 2млрд устройств- нереально, если кто то думает, что возможны настолько радикальные изменения, то ему следует вернуться в детский сад
>>1707815 Система слишком сложная, твои понятия и принципы объясняются за 30 минут, а вот детали и тонкости, на которые ты потратил месяцы станут другими, исчезнут.
Я вот помню общие поняти UI и событий, что такое модальное окошко и прочие, но это не говорит что я могу сейчас десктоп приложение написать на разных фреймворках. Общие знания бесполезны, они лишь ускорят немного твое обучение к новому и все.
>>1707817 Если общие знания помогают изучать новое, так ли они бесполезны, рассуждая в контексте твоих мыслей о том, что технологии переменчивы и непредсказуемы? Сам себе противоречишь. Всё как раз наоборот - если область твоих знаний позволяет работать только в одном стеке, что бывает довольно часто, каждый раз делая одно и то же, следуя привычному скрипту действий, со сменой технологий неизбежно возникнут проблемы. Это похоже на боль многочисленных C++ олдов, которые пачками выгорали, не желая изучать новое и расширять свои знания.
>>1707861 >Если общие знания помогают изучать новое, так ли они бесполезны Тебе сказали, объем твоих знаний и опыта может быть равен годам. Объем общих знаний пригодный для двух систем может быть равен часу обучения, ну может дню обучения.
От чего ты там выиграл то? Теряя многолетние знания (инвестиции своего времени).
Как только ты садишься учить что-то с нуля (именно заменяя новым, а не расширяя старые), ты уже проиграл. Не выдумывай этому оправдания, цени свои инвестиции, не будь информационной шлюхой, твой ресурс не бесконечен реально не бесконечен
>>1707861 >Если общие знания помогают изучать новое, так ли они бесполезны Если говорить языком игр, тебя это бустанет на процентов 1-5% от объема других новый знаний. Ты даже будешь путаться в новом UI, так как старые привычки будут замусориваться с новыми.
Хорошо когда ты сам решил перекатиться, на что-то новое, ты делаешь выбор. Но в других случаях тебя просто кидают на твой опыт.
Так что олдускульные прогеры понимают что делают, ресурс обучения конечен. Буст от молодости скоро пройдет и печально будет, когда твой пласт знаний станет ненужным.
>>1707887 >>1707890 >Теряя многолетние знания (инвестиции своего времени) теряя какие знания, ты о чем вообще? очередной оторванный от реальности пук, хоть примеры бы привел, а мы бы посмеялись
>Если говорить языком игр, тебя это бустанет на процентов 1-5% от объема других новый знаний это ты откуда взял, почему не на 50% или не на 10%?
>Ты даже будешь путаться в новом UI в каком UI блять, это просто интерфейс, он может быть каким угодно, че ты несешь нахуй, причем тут блять UI. при работе с субд например с тем же постгресом(SQL) или касандрой(NoSQL) я хз, тебе вообще не надо никакого UI, все запросы можно писать в терминале, тупо подключившись к субд. ты вообще понимаешь, что такое UI? приведи пример того о чем этот взвизг
>Как только ты садишься учить что-то с нуля, ты уже проиграл и зачем ты ссышь на голову самому себе
>Но в других случаях тебя просто кидают на твой опыт кто тебя кидает, на какой опыт, о чем ты вообще?
> олдускульные прогеры это которые software engineer или по русски инженеры-программисты? ну иди расскажи им как им не нужно постоянно учить что то новое. я тебе открою великую тайну, есть только задачи, которые нужно решать, а ЯП и платформа значения не имеют, ну можешь съебать на мороз, если не способен выполнять работу инженера
ты походу верстала какой то, который вообще о программировании ни сном ни духом. детский лепет, который ты пытаешься пафосно подавать смотрится убого, в каждом предложении какие то пространные оторванные от реальности размышления школьника
>>1707887 >твой ресурс не бесконечен Согласен, просто знания нужно оптимизировать. Изучая что-тохотя это же относится и к имеющимся знаниям, нужно чётко видеть его место в хронологии развития, понимать причину изменений и результат, читай цель, ради которой изменения происходят. Языки различны синтаксисом и, не побоюсь этого слова, незначительными особенностями, которые поддаются категоризации как на концептуальном уровне, так и на прикладном. Алгоритмы и архитектура универсальны, но допустимость их реализации определяется предметной областью. Я это к тому, что имея более-менее осмысленные знания/способность анализировать и перекатываясь, невозможно делать это с нуля. Ты в любом случае будешь опираться на имеющиеся знания и опыт, от которых и зависит то, насколько быстро и грамотно ты способен "въехать". >>1707861 >старые привычки будут замусориваться с новыми Видишь разницу между "Теперь надо делать вот так, раньше я так не делал" и "Там я делал так, а здесь надо вот так. Тут похоже, а это отличается."? >в других случаях тебя просто кидают на твой опыт Тем не менее, никто тебя не лишит права выбора. Хотя я знаю опытных сидельцев за зп, в чей отдел спускают поручение сверху и им приходится падать в незнакомый стек и барахтаться в нём, пока начальство не придумает что-то ещё. Они и раньше ничего толком не знали, а тут им действительно надо с нуля пытаться осилить хоть что-то, чтобы создать видимость деятельности. Как так вышло? Их ценность стремится к нулю, они просто не могут позволить себе уйти, потому что им нечего предложить, а вкатываться ещё куда-то слишком накладно, ведь придется начать делать хоть что-то. Но не стоит забывать, что это их выбор.
>>1707930 >это ты откуда взял, почему не на 50% или не на 10%? Это образный пример, чтобы показать как мало. В реале, можно даже посчитать, обобщенный (общий) объем информации для платформ и количество новой, которую нужно будет освоить (все API, все новые классы, методы, директивы и т.д.). Там реально будет где-то 0,01-0,001% твоих знаний которыми ты гордишься сейчас.
Очень легко прочувствовать это, просто перекатись с андроида на макось. Потом расскажешь сколько потребовалось времени чтобы поднять уровень до текущего уровня андроид разработчика и как тебе твои знания андроида помогли.
Я хотел тебе отвечать дальше, но ты нихера не понял мою мысль, начал зачем-то про SQL писать и общий опыт разработчика, когда мы говорим про мобильные платформы. забавно, что разные ORM фреймворки, в разных языках реализованы по разному, и зная один, тебе все равно придется изучать другой, перекатываясь
Ты слишком туп чтобы оценить свое вложенное время и силы и осознать, что новая платформа (не обязательно фукцсия) помножить твои знания почти на ноль и ты заново начнешь учиться, но уже конкурируя со следующими зумерами.
>>1707961 >твой ресурс не бесконечен >Согласен Твоя задача с минимум усилий, получить максимум. Инфоцыгани вам уже на кинетическом уровне внушили, что надо расширять кругозор и осваивать 100500 языков и прочее. Нет, надо становится специалистом в своей области иначе будет мидлом, но в нескольких.
Ты живешь в физическом мире где все ограниченно и твои мозги тоже. Ты должен их использовать максимум эффективно, а не сделать его библиотекой с пылящимися книгами. У тебя есть буст с 10-25 лет, а дальше все знания будут даваться по утроенной цене. на самом деле на учебе выгорают раньше, выгорание можно назвать момент, когда сосуд "знаний" заполнен
>>1707992 Первые симптомы, это падение мотивации, мозг как уставшая мышца, дает знать, что она истощена. Но в отличие от мышц, мозг больше не растет (и некуда). Так что в свободная время у вас появиться мысли - не изучить ли питон или раст, знай, что в переполненном мозгу, новые знания будут давать за счет старых и с трудом.
Я, например, уже с трудом помню молодость и школьное время, даже лица одноклассников. Не особо нужная инфомации, но страшно осозновать, что постоянная учеба стирает твою жизнь и память о прошлом.
>>1707998 Неожиданно в старости получиться так, что в голове останется память не о том, как ты в 20 лет машку за ляжку таскал, а том что в питоне join надо выполнять от строки, а не от списка. Это повлияет и на тебя как на личность, ты станешь биокалькулятором для дяди
>>1707978 >Это образный пример вообще не аргумент, можно перевести так- это я наманяфантазировал
>ты нихера не понял мою мысль так нет же никаких мыслей, просто пространная дичь про UI. и это как раз ты не понял мою мысль, манюнь, т.к. я не просто так подписал SQL/NoSQL
>помножить твои знания на ноль о каких знаниях речь?
>ты заново начнешь учиться прикинь, школьник, многие делают это по много раз в течении жизни.
>Очень легко прочувствовать это, просто перекатись с андроида на макось очередная тупая хуйня, детектящая в тебе неразбирающегося васька. с андроида на iOS, тут да, есть смысл. но опять же, при переходе с Kotlin на Swift например, никаких проблем не будет, тем более в пределах одного проекта. не говоря уже о том, что эти языки очень похожи
кстати ни на один вопрос ты не ответил по итогу, чего и следовало ожидать
>>1707961 >Они и раньше ничего толком не знали >спускают поручение сверху и им приходится падать в незнакомый стек ты сам себе противоречишь, очередной манюнь. если компании и потребуется кого то переводить на новый стек, то поручат это лучшим, а не тем кто нихуя не может
>>1707992 Попробуй сначала прочитать то, что я написал, а потом ответить. Я согласился с тем, что есть предел, но ты чересчур утрируешь. до такой степени, что это больше походит на стёб, особенно про классы и методы 0,01-0,001% ты совсем уж неудачно взял с потолка, потому что это уровень человека, который впервые взял в руки смартфон. Во-первых, что ты считаешь "пылящимися книгами"? Если ты считаешь бесполезным знание математики, я всё равно не пойму ход твоих мыслей. Во-вторых, ощущение отвращения к деятельности во время учебы может возникнуть и в голове без малейшего намёка на знания. Вообще, если ты пишешь всё это только из-за того, что конкретно у тебя что-то не получается, попробуй подумать над тем, что ты делаешь не так, и изменить подход. Про твою грамотность и слова не скажу, но это своеобразный маркер. Дружище, нужно быть открытым к иному мнению и задумываться о собственных недостатках, признавая их, а не переводить стрелки на инфоцыган, которые тут вообще ни при чём. Осилить можно почти всё, уложившись в лимит ресурсов, если правильно думать. Даже грамоту.
>>1708016 Лучшие не будут ныть из-за того, что при очередной реструктуризации их выгонят и "что делать дальше, куда идти, я ничего не знаю". Тут нет противоречий, потому что в дерьмо окунают тех, кто на большее не способен, они как чернорабочие, а на хороших спецов рассчитывают, зная их уровень. Со своими манюнями можешь пойти нахуй в ньюфаг-тред, там обитают токсики вроде тебя.
>>1708040 ребенок, ты хотя бы логику данного поступка отслеживаешь? какой здравомыслящий работодатель/PM/exec будет переводить людей на новый стек, очевидно на новый проект, при этом зная, что это неумехи и как ты там взвизгнул, чернорабочие на которых похуй. какой в этом смысл, алло? они же все сломают, сделают криво и проебут все полимеры.
вот пример из реальной жизни одной из контор в которой я работал- основной проект достиг своего пика и в конторе решили делать еще несколько, но с новым стеком и на новой платформе, десктоп/iOS/Android. для этого выбрали самую продуктивную команду и перевели её на этот новый проект. эти парни составили всю необходимую документацию, оформили фундамент для последующей разработки и выкатили версию 1.0, только после этого перевили еще 2 команды.
а ты, тупо малолетнее чмо, которое ни к какой разработке отношения не имеет, ни тем более к менеджменту, по сути ты профнепригоден
проигрываю с хуйни в треде, такое ощущение, что собралась кучка студентов, которые ни дня в жизни не работали и рассуждают о вещах с которыми им только предстоит познакомиться
у меня такой вопрос к вам, есть проект, энное время вы над ним работаете, но по сути это легаси, которое не плохо бы переписать и вот приходит день, когда PM говорит вам, парни, перепиливаем! изучите вот это, это и еще это покурите. я правильно понимаю, что вы, школотуны, тут же проявите независимый характер, плюнете и скажете- "НИТ! МЫ НОВАЕ НИ УЧИМ, ЭТО ВО ВРЕД НАШИМ КАРЬЕРАМ АРЯ!!"- и тут же пойдете искать другую работу?
>>1708012 Все забываю что с вкатывальщиками общаюсь. Я тебе говорю, у тебя реальный шанс пощупать что такое другая платформа это слезть с андроида на айос
Я тебе говорю про разное API платформ, а мне джуны рассказывают как легко с котлина на свифт пересесть. Конечно, ведь надо изучить только синтаксис
Мои макаки пересели с джавы на котлин, у них производительно по времени просела 2-4 раза, особенно в первые недели, как джуны копошились. Только спустя, примерно, 3-4 месяцев набили руку и начали писать как на жабе. То что ты легко можешь между языками скакать - это бред, изучить синтаксис не значит набраться опыта.
>>1708049 >какой в этом смысл, алло? Такой, что это происходило в крупной компании, где неумёхам спускали проекты по принципу "зайдёт/не зайдёт". Мне плевать на твои примеры, хоть я и не отрицаю, что это правильный подход, потому что в жизни не всё сводится к принципу здравомыслия, тому и приведённый пример, знакомый лично мне. Я это дерьмо презираю. >а ты, тупо малолетнее чмо, которое ни к какой разработке отношения не имеет, ни тем более к менеджменту, по сути ты профнепригоден Ути-пути, какой ты злой, аж страшно за твоих коллег. Хотя на работе ты, вероятно, самый тихий. >>1708053 Конечно, ведь по факту сказать нечего, "вывсёврёти".
я даже не поднимаю вопроса о том, что сам проект может быть на одном языке, но какой то смежный сервис лучше написать на другом, т.к. тупо удобнее. как рандомный пример- какой то сервис со статистикой, кучей запросов к бд и кучей вычислений будет лучше написать на питоне, а не на ноджс. и вот вам упала такая задача, вы наверное инфаркт схватите и умрете фонтанируя поносом
>>1708081 >Только спустя, примерно, 3-4 месяцев набили руку и начали писать как на жабе что и требовалось доказать >Мои макаки пересели с джавы на котлин >>1708040 тоже тестили на бесполезных макаках зайдет-не зайдет?
>>1708026 Какой смысл говорить с человеком, если у него представление объема знаний API разных платформ, это разница между синтаксисом котлина и свифта??
Это как те долбаебы, которые говорят что между жабой и си шарпом легко перекатиться, не подразумевая, что там бэкграунд знаний между инфраструктурой джавы и дотнета - два разных мира. Да даже эта разница между линуксом и виндом я сейчас не говорю про core или mono, если оно живо еще. То есть, они реально воспринимают всю сложность между платформами только по объему знаний синтаксиса языка, которые реально похожи. не узнаешь тут себя??
>>1708053 Да еще сам с собой говоришь, малолетнее чудо.
>>1708087 >неумёхам спускали проекты по принципу "зайдёт/не зайдёт" еще раз спрашиваю, какой в этом смысл, кто блять будет оплачивать часы неумехам, чтобы потестить "зайдет-не зайдет"?
да и как оно в принципе может зайти, если работал над этим неумеха. не бачу логики. да и нет её в твоем высере
>я и не отрицаю, что это правильный подход только таким подходом и будут руководствоваться здравомыслящие люди. а то что ты приводишь в пример- тупорылый высер не имеющий смысла. никто не будет вкладывать в неумех, покажите мне такого руководителя, который будет, хочу смеяться 5 минут
>>1708080 Хоть ты еще глупенький, но вот тебе тоже аналогия. Работаешь ты гинекологии в больнице, у тебя 10 лет опыта и 7 лет учебы, а потом приходит глав отделения и говорит что сейчас тренды в проктологии, бросайте эту херню, будет у нас отделение проктологов, быстро все переучитесь (за свой счет, конечно).
Нелепо, да? Хотя казалось бы, какая разница, ведь там дырка и там дырка? Наверное учить немного :) Но вот айтишников так дурят и благодаря твоей тупизне, это прокатывает до сих пор.
>>1708109 более детского примера придумать невозможно.
вот тебе другой пример- монтажники привыкли работать с перфораторами фирмы Makita, но теперь им купили перфораторы фирмы Bosch. и че, теперь они массово будут уходить не желая работать с новым перфом, только из за того, что у него внутренности по другому расположены и кнопка "пуск" с другой стороны?
яп- не более чем инструмент, если ты программист конечно, а не верстальщик типа тебя
>>1708094 У меня хорошие ребятки, я их в шутку так зову. Они сами попросили и мне тоже зашло. Реального профита эффективности не особо много, но вот удобство людям добавило. Не люблю аналогии, но это как после плохого неудобного инструмента (например, затупленной пилы), взять удобный инструмент (например, пилу с хорошим заточенным полотном).
>>1708110 Этому барану говоришь про API платформ, а он все синтаксис сравнивает. Между фронтендом и бэкендом легко перекатиться? Между бэкендом и иос легко перекатиться? Между формашлепаньем в десктопе и кодом управление балестических ракет - легко перекатиться? Но ведь легко же? Да? Я же знаю уже Qt5
>>1708123 >>1708124 да, легко, даже в геймдев легко вкатиться из веба, не говоря уже о перекате на андроид или iOS. еще раз повторяю, если ты программист, то такого вопроса даже не стоит, ты просто изучаешь новый инструмент и используешь.
>API платформ охуеть блять, квантовая механика, съеби из /pr, тебе тут нехуй делать
>>1708123 >Между фронтендом и бэкендом а зачем перекатываться, когда можно и нужно становиться фулстеком, нынче даже к джунам фронтендерам предъявляют требования по знанию ноды при приеме на работу. хуя вы тут отсталые чучмеки
Немного оффтопа, но по теме вкатывальщиков. Помню в ранней юности взял толстую книгу по С++, первый мой язык. Она такая толстенная была и я думал, что прочитав её, я стану полноценным программистом (ну реально, толстенная же какая). Оказалось там только про синтаксис (и то не весь) и это только начало пути.
Местная детвора верит, что если изучит свифт после котлина, они станут иос разработчиками.
Блин, я изучил котлин, но не стал андроид разработчиком, что я делаю не так :(
>>1708143 за мое переобучение платит работодатель, иначе оно мне нахуй не упало. НО, могу сказать точно, что cv в котором 5 лет JS < cv в котором 3 года JS и 2 года Kotlin
>>1708099 Есть такая вещь, как ООП, благодаря знанию которой ты можешь понять структуру наследования компонентов и их реализации. Ты читаешь документацию, детектишь структуру базовых компонентов и у тебя уже складывается представление о том, как всё устроено, учитывая то, что твой ленивый мозг проводит параллели с тем, как ты реализовывал подобное на другой платформеесли был такой опыт. Никто, блять, не выдумывает структуру таким образом, чтобы её было сложнее понять. Напротив, построение происходит так, чтобы хуйлуша, который думает, что не справится, увидел, что не всё так страшно и есть определённые закономерности, которые позволяют минимизировать время, необходимое для понимания. >Да еще сам с собой говоришь, малолетнее чудо. Делать мне больше нечего >>1708107 Задавай этот вопрос эффективным управленцам, которые это допускают. Если тебя, бездаря, когда-нибудь посадят в кресло, не делай так, как они. Хотя тебя даже спрашивать не будут, так-то. >покажите мне такого руководителя Сейчас бы деанонить корпоративных царьков ради того, чтобы что-то доказать взрослому человеку с наивным мышлением ребёнка. Не повезёт - ты сам с таким столкнешься, а если нет - считай, что повезло. >>1708123 >балестических В голос
>>1708178 Лол, это настолько ущербно и по малолетнему звучит, что мне даже смеяться противно.
То есть, ты сейчас сказал, что надо вот только знать ООП, наследование компонентов и их реализации чего? и на этом строится все программирование и все сложности решаются? "Кококо, надо только вкатиться в ООП, дальше пойдет как по маслу." Норм :)
>балестических Я бухой и ни разу это слово не писал, так что норм. Иди пердолься с тем сектантом с мягким знаком, стеклянный, деревянный ты наш.
>>1708248 Глупышка, >Есть такая вещь, как ООП, а не >надо вот только знать ООП Напрягись немножко, разницу поймешь. >их реализации Структура реализации наследуемых компонентов. Это когда ты складываешь домик из палочек и видишь, что одна палочка подходит сюда, а другая туда. >Я бухой и ни разу это слово не писал, так что норм. Манёвры. Будь аккуратнее, последние полтора нейрона помрут и туши свет.
>>1708298 >Структура реализации наследуемых компонентов Реферат что ли пишешь?
>Это когда ты складываешь домик из палочек А ты так себе строитель. Но вот фантазер и любитель придумывать свои понятия шизик отменный, поэтому теперь тебя будут кличать "Строитель домов, мастер над палочками и магистр ООП, родом из котлин-треда".
>>1708760 Скорее всего он имел ввиду это https://pl.kotl.in/xYU6iJnII Собственно в описание говориться, что присваивание это не выражение. Это сделано чтобы избежать сложно уловимой (и порой плавающей) ошибки, когда вместо "==" случайно написал "=" в if. может еще где-то кейс есть, я уже не помню.
>>1708806 Ты высрал дичь, в твоем примере возвращается два разных значения и это совсем другая фича.
>>1709588 Ввиду того, что точка с запятой является опциональной, код чувствителен к переносу строк, потому стоит соблюдать Java-стиль, дабы избежать непредсказуемого поведения - например, когда ты переносишь скобку и тело не детектится, возникает ошибка. Такое редко случается, просто следи за скобками.
>>1710381 Добавь в условие длинные имена переменных, которые не умещаются в строку и которые ты переносишь по привычке разделителем слева (+ varname) и получишь такую валидную ошибку.
Такого рода ошибки свойственны не только котлину, это цена за опциональный ";"
>>1710538 А зачем вообще нужно было отказываться от ; и вводить эти сюрпрайзинг поведения, я ещё не всю их доку прочитал, это у них задокументировано, эти потенциальные возможности обосраться? Понятно дело что можно тут возразить, пиши как тебе сказали и не будет проблем, а точка с запятой это в большинстве случаев избыточно и ничего не значит, но всё таки.
Во всех хипстерских языках пытаются победить точки с запятой, и у всех одинаковые последствия. Вон в пщ то же самое. Пытались и в JS, но никто не оценил. Ну а в питоне синтаксис вообще прибит гвоздями к отступам.
>>1710826 >зачем вообще нужно было отказываться от ; и вводить эти сюрпрайзинг поведения Ошибки детектятся легко, возникают редко, но писать без ; намного удобнее и быстрее. Когда пишу на Java или C#, частенько забываю их ставить, т.к. отсутствие ; вызывает сильное привыкание, уж очень удобно. >>1710855 >в питоне синтаксис вообще прибит гвоздями к отступам А вот это сильно раздражает, особенно в длинном коде. Иной раз приходится декомпозировать функцию, дабы не было спагетти.
Ведротред утонул, спрошу тут. Подскажите термин для оплаты с приложения, где номер карточки вводишь и все такое. Пытаюсь понять как это все реализуется, но по запросу mobile payment гугл сует какие-то рекламные посты о том, как такая оплата - это круто и прочее блабла.
И сразу вопрос: какая модель ООП применена в этом языке. Как в свифте и скотлине - описываем все в классах а их потом в рантайме ебут в жопу (петушиная модель). Или нормальная - класс как конструктор объекта, который мы потом используем и ебем где хочем и как хочем?
>>1711011 >А вот это сильно раздражает, особенно в длинном коде. Иной раз приходится декомпозировать функцию, дабы не было спагетти. Желающим поругать питон за отступы рекомендую освижить в памяти однострочники на перле, и подумать так ли уж глуп был создатель пихона.
>>1716777 Постоянно освежают в питон-треде. Вместо 2-3 понятных строчек всё пытаются сделать в одно выражение на 150 символов из генераторов списков, лямбд и прочей хуйни, будто их хаскеллисты покусали.
>>1716777 Он вроде сам говорил (или какой-то большой хер из питона), что отступы, возможно не лучший выбор и можно было так гвоздями не прибивать синтаксис к ним.
Вообще, практика показывает, что нельзя сажать за дизайн языка человека с бурной фантазией, надо чтобы были люди из вне, которые могли бы макать мордой в говнище, которую плодить разум "гения". Кому язык инструмент самовыражения, а кому-то надо потом сопровождать эту радость.
js, python, php и прочее, не пригодны для сложного приложения. Никто не говорить нельзя, я говорю что не стоит. Надо понимать что все они создавались в эпоху где нормой было 1000 строк кода настучать для домашней странички или утилитку написать для линукса. Но никак не для программирования вообще.
Вы пробовали разобраться в ООП коде PHP-фреймворка? ООП в динамико-говне просто нечитаемо.
Пора уже признать эти языки - недо-языками, ваннаби-языками, квази-языками. Понятно, что какому-то инженеру проще там звезды двигать через питон, чем через си. Но он и пишет чаще именно скрипты, а не приложения.
>>1716820 > Да всё это не нужно > Python С парой пунктов можно поспорить, но да похуй.
Всякие небольшие лендинги/интернет-магазины/сайтики с курсами так и будут писать на динамикодрисне, благо что кода там немного, а толку от них мало. На джавашарпах их писать мало кто будет, слишком дорого и долго. Там заказчикам главное - побыстрее и подешевле выйти на рынок, а не надёжность.
>>1716836 То что нормальный джавист стоит дороже макаки, это понятно. Но почему на джавашарпах дольше писать, когда весь стек ты пару строк в каком-нибудь мавене подгружаешь (спринганутые вообще тебе расскажут как в две строчки сайт развернуть)
>>1716843 Ну может и не дольше. Просто в той же пыхе программирование местами доведено до примитивизма, когда даже не кодишь, а настраиваешь виджеты с шаблонами, хуяк-хуяк - и готовый сайт. В джаве так делать в целом не принято.
>>1716807 А я голую джаву почти не видел. Это вообще нормально в мире жвм что данные в глобалах хранить некомельфо так как их гарбажколлектор подчищает?
>>1716860 Он ничего не подчистит, если это будет какой-нибудь public static объект. Но да, так делать не принято, это по сути глобальная переменная со всеми вытекающими. Данные обычно грузятся из базы, на уровне приложения хранится максимум кеш.
>>1716867 А понял про что ты, про всякие виджеты к CMS'кам. Я просто на мгновение подумал, что появились какие-то фрейворки и появились какие-то полноценные компоненты, которые как модули добавляешь на сайт.
>>1716860 Почему когда видишь вкатывальщика в жабу, у них сразу вопросы про ГЦ, как не гадить в памяти. Но при этом вкатывальщик в жс или питон вообще не думает не о каких-то там сборщиках мусора и что это такое, как-будто сборка мусора это лишь жабовский какой-то недостаток.
>>1716873 Значит все таки все жвм бейзт такие. Без обид но я впервые испытал отвращение к тому что я делаю. В аду меня будут черти заставлять писать на этом прикладные приложения, да впрочем и веб приложения наверняка наверняка не легче.
>>1716895 Потому что я же туда вот строку положил, а во время работы там нульпоинтер. Где строка? Спиздили! Гарбажколлектор спиздил строку, сука! В жс вкладка закрылась, объекты удалились вот и весь гарбажколлектор. И вообще там на некоторых объектах стали по сишному добавлять методы типа free()/destroy() URL.createObjectUrl(blob) -> string //создает глобальный url адрес блоба URL.removeObjectUrl(string) //удаляет блоб из памяти
>>1716928 Впервые о таком слышу. GC никогда ничего не удалит, если у тебя есть хоть малейшая возможность добраться до этого объекта. Это где-то на уровне Unsafe или JNI надо намудрить, чтобы подобное случилось.
>>1716925 Ну я не с позиции фронтенда а вообще, си/плюсы увлекают, жс/питон тоже, но вот джаваподобные производят впечатление наоборот, може правда мой моск испорчен си подобными.
>>1717275 Это когда в твоей переменной нет объекта, то есть null. Это всегда ошибка на стороне юзера (где-то не проинициализировал или где-то не проверил).
Господа котлинисты, может ли кто-то рассказать о своём опыте работы одновременно с корутинами и реляционной БД? Просто хочется знать, как это сделать, чтобы не было больно. Если юзать Hibernate, то переключение между саспендящимся и блокирующим кодом уродское (да и выгода от реактивности снижается). Если без Hibernate, а например, через спринговый DatabaseClient, то больно грузить саязи и к ним обращаться.
>>1706908 >Вы никогда не думали, что орфография искусственно усложнена Вообще-то, она ещё и искусственно создана, причём любая. Но разумеется, поэты-писатели-лингвисты-этнографы изъёбывались как могли, выжимая всё возможное из языка и обогащая его, именно для того, чтобы потомки копротивлялись за право быть долбоёбами, не читающими в своей жизни никаких книг и переизобретающими правописание путём угадывания его на слух, как дети ёбаные.
>>1706908 Да естественные языки - это самое что ни наесть легаси, которое тащит любое говно из прошлого, потому что так повелось и никто не будет переучиваться
>>1717311 Ну вот я как то так и решил вроде - держал строку в какой то глобальной структуре, в виде объекта-блоба. Теперь вот в ходе дискуссии между строк улавливаю что "не объекты" похоже что в жабе не живут и запись в глобальную переменную это на самом деле была запись в локальную неинициализированную. Окей, последний неудобный вопрос - что происходит если я не ставлю в коде проверок на нульпоинтеры (ну типа специально хочу чтоб он прилетел и сломал программу) - видно будет откуда и где стрельнуло или просто как в си жидко пукнет и обмякнет не проронив ни слова. То есть проверка и генерация исключений на совести программиста?
>>1717345 > и запись в глобальную переменную - это была запись в неинициализированную переменную внутри вызываемого метода класса. fix. (Может быть такое? )
>>1706908 А вот и секта противников буквы "ё", но свидетелей букв "е", "ю" и "я". >Вы никогда не думали, что орфография искусственно усложнена Думали, но правила существуют для того, чтобы текст, написанный разными людьми, выглядел единообразно, благодаря чему разные люди оказываются способны понять друг друга. Плохие правила, хорошие, переусложнённые, не переусложнённые — но они есть и ты им следуешь. Не нравится — cilre la .lojban. , и говори там по тамошним простым как валенок правилам, но коль говоришь на языкнейм, то будь добр хотя бы расстрельные ошибки фильтровать.
>>1717347 Ну если ты в методе объявил локальную с таким же названием, как глобальную, то может быть такое. При этом на такой прикол чаще в питоне натыкаются, где переменные декларировать не надо, и если просто написать x = 1, думая, что x глобальная, то потом удивишься, что в глобальной x - None. (чтобы работало надо в функции явно написать global x).
>>1717345 Если ты про Kotlin, то ты получишь NPE, если попробуешь вызвать метод на null, который null'ом быть не должен. Например, такие фокусы возможны, если через рефлексию в not-nullable поле записать null. Если хочешь посмотреть на приколы с null-ами в Kotlin, рекомендую посмотреть https://www.youtube.com/watch?v=mKnY_uI3Z9Q
>>1717362 Не, я же написал "неинициализированную", то есть локально такую же не объявляли. Ясно в общем, спасибо. Может правда вкатится в котлин заранее пока изучивших его мало, судя по описанию не такой отвратительный как скалка или свифт.
>>1717340 Сейчас бы высеры древних графоманов чтить. Язык должен быть простым, логичным, информативным. Век, когда можно было подрочить под лучами свечи, попукивая с мыслью какой же ты охуенный, закладывая свои испражнения в умы таких же читателей, прошли, настал информационный век. Каждый байт на счету!
>>1717345 Ну получишь исключение, NPE это обычное исключение. А где оно произошло увидишь по стектрейсу.
Как в си не падает, это был и есть главный поинт джавы в свое время. Ну еще ты можешь NPE и другие исключения поймать и залогировать (даже особо сложные исключения, современные логеры продуманные)
>>1717514 Да есть драйвера, даже целых 3: R2DBC, vert.x и этот. Только Hibernate не умеет в них, а без него работать очень больно, так как надо как-то подгружать связи, и переходить по ним.
>>1717358 Ты наверное из тех людей которые будут себе елку в жопу засовывать, если это станет правилом? Ну да, неудобно, но что же теперь, за то мы елочники друг друга понимаем
>>1717538 К сожалению, довольно мало на эту тему. И то решение, которое есть (явное использование withContext для перехода на тредпул для операций с БД), мне не нравится, потому что уродство писать этот withContext в каждом сервисе. Поэтому и спрашиваю опыт анонов.
>>1717542 Не совсем я понимаю, но так наоборот же круто, что у тебя есть отдельный контекст и тредпул. Гоферы вон варятся в куче (смешались люди, кони), а ты тут можешь отдельно держать пул потоков, в котором пул корутин (скажем для хттп, для бд, для записей в файл, для тяжелых операций, например парсинг картинок).
>>1717556 > Гоферы вон варятся в куче В случае, если блокирующих вызовов нет в принципе, то это ничем не плохо.Ну разве что на парсинг картинок может быть нужно как-то ресурсы ограничить.
А плохо, потому что меня раздражает контекст переключать явно, вроде мелочь, но раздражает.
> чтобы потомки копротивлялись А ещё потомки "копротивлялись" за равные права, отмену рабства и уничтожение сословий. Чёт не вижу вскукареков снобов, дрочащих на тех, кто всё это напридумывал.
>>1717572 Так кажется, пока не начнешь писать приложение по серьезному. В го приходится вместо пула потока делать целый лишний микросервис (с очередным лишним API)
>>1717723 Ну так расскажи, с какими проблемами столкнулся, разрабатывая серьёзное приложение, и почему пришлось переносить в микросервис. Может даже на статью на хабр инфы наберёшь.
>>1717726 >хабр Спасибо что не ЖЖ. Как там в 2010?
>Ну так расскажи, с какими проблемами столкнулся Тебе сказали, нет возможности контролить потоки ОС, неожиданно какая-то числодробилка может положить поток с простыми хттп запросами или другим чем-то важным есть там костыль для ОС-потоков, конечно, но для других целей и реально костыль.
>>1718182 >хабр Никогда не понимал феномен, как взрослые и технически образованные люди, писали/пишут статьи на хабре ради лайков? И ведь там реально бывают работы на которые тратиться не один день. Интересно смеются ли они над девушками, которые выкладывают фото ради лайков в соцсетях?
>>1718192 По такому определению взрослых людей вообще единицы. Все так или иначе пытаются самоутвердиться, кто-то за лайками гонится, кто-то на пишет провокационные посты на двачах. На то мы и человеки.
> Интересно смеются ли они над девушками, которые выкладывают фото ради лайков в соцсетях? За обсуждение такого там обычно минусуют, но да.
>>1718192 Может у тебя еще и ученые в журналах публикуются ради лайков и внимания? Статья на хабре которая набрала много лайков не хуже для поиска работы чем зеленый гитхаб.
>>1718478 >Мне из-за комментов на хабре работу предлагали Наверное, тогда тебе это самооценку подняло, да? Лол, стоит только засветить где-то свои данные и у тебя уже пачка писем от хрюш, которые хотят тебя в базу свою засунуть.
Интересно почему решили использовать угловые скобки, а не @. Похоже я чего-то ещё не догнал. Я думал сначала что эт-ом обозначается блоки исполняемого кода в фигурных скобках, потом им ещё классы определяются, а в другом месте угловые скобки появились .
>>1719082 Первый случай это наследование. Второй случай это уточнение для всяких inner классов и прочих лямбда выражений. Но если объединить момент наследования и вот этого уточнения, может получиться адок? Не?
>>1719247 >Больше разных синтаксисов для одного и то же. В каком месте это одно и тоже? 1. Случай доступа к методам родительского класса. 2. Второе решение проблемы затенения переменной, потери контекста (чаще для this).
Если у тебя наследуется класс и в нем еще inner класс, да еще с пересекающими названиями - ты получишь "PEN-PINEAPPLE-APPLE-PEN", то есть жопу. А так у тебя будет возможность явно указать что ты хочешь. мне правда лень пример печатать, надеюсь текстом дойдет
>>1721055 > Дурачок, как он нацелиться на независимость от своей основы. На сайте написанно у них, компилируются в Жабу, ПарашаСкрипт и нейтив ещё какой то там ллвм вроде.
>>1721063 >ПарашаСкрипт Умеют примерно все, да и нахуй не нужно с приходом васма. >нейтив ещё какой то там ллвм вроде Ага, а родовые жава-травмы (вроде крешей при попытке изменения констант в рантайме) остались. Ещё какая-то мутная модель памяти, которая без гц работает так ахуенно, что из-за неё в к/н 2+ года пытались протащить мультитрединг (кекус).
Тут уж либо надо рвать с жвм и делать нормальный нативный язык, либо жрать кучу говна ради совместимости с жвм которая нахуй не нужна сейчас полезут аргументы про мобильную кроссплатформу, но что ты там нахуй сделаешь кроссплатформой? Запросы на сервер? Чтобы написать к каждому сервису ещё по биндингу и ебаться с форматами данных/тредами/итд?
>>1721073 > нахуй не нужна Нахуй не нужна в нативной разработке. Хотя хз кому она вообще вне жавы может понадобиться. Написать утилитку которую можно будет и на сервере с JIT-ом гонять, и на клиенте без прогрева запускать? Ахуеть.
>>1721073 > Умеют примерно все, да и нахуй не нужно с приходом васма. Ничего не понял. Но со всем остальным согласен. А вопрос то был чего они тогда непереносимый код генерируют для ПОЖО если есть претензия на крос-питушение.
>>1721073 > нахуй не нужно с приходом васма В васме нет доступа к DOM, принципиально. Годится исключительно для тяжёлых вычислений без интенсивного обращения к функциям JS.
>>1721073 > ради совместимости с жвм которая нахуй не нужна То есть высрать очередной язык без инфраструктуры, тулинга и либ? Котлин создавался как улучшенная джава, а не как новый язык, и одна из основных целей - сохранение совместимости с джавой. Это как C и C++.
>>1720879 >> if (javaClass != other?.javaClass) return false
О боже мой, нет.. НЕЕЕТ... ну нахуя они это сделали name?.obj!.test() - я не понимаю в чем смысл, если name нульпоинтер то оно мимо этой проверки пройдет и я не буду знать почему у меня нихуя не работает, а на obj нульпоинтер оно просто встанет и все. Хуяк и программа умерла (может кстати из за этого переменные терялись) кому вот это жизнь упрощает? Нет ладно бы еслиб это опция была, но в свифте том же если вот эту говнину не расставлять оно или ворниншует или не компилит вообще.
>>1721147 Ты дурачок какой-то. Принудительно извлекая что-то ты литерали говоришь я знаю что делаю, но судя по крашу нихуя ты не знаешь, и язык, который позиционирует себя как типобезопасный, пытается защитить тебя от этого обращая внимание на проблемные места. Подумай нахуя в замыканиях свифта везде заставляют селф расставлять и почему нет казалось бы такой очевидной вещи как доступ к символу строки по целочисленному индексу.
>>1720879 То есть, разрабатывая под платформу на jvm ты хочешь чтобы платформеный код запускался на javascript, а javascript запускался для jvm? Семен, ты перепил.
Сам язык мультиплатформенный. Один синтаксис, одна стд, одна любовь. Понятно что у тебя не получиться писать под ардуину на jvm, или чтобы jvm вдруг неожиданно появиться браузерный DOM.
>>1721489 Очередной пук-среньк, не имеющий к реальности ничего общего (см. пикчу).
Просто инфоцыгане не очень грамотные технологически и если берут котлин то проводят "прямую" только для андроид. Но в реале, даже мобильные приложения, нередко требует для себя сервер (бэкенд). Ну и надо быть дебилом необязательно малолетним, чтобы зная котлин не писать бэкенд на котлине, тем более когда там есть родные корутины теперь не надо плакать и страдать кушая всякое громоздкое реактивное программирование, или куда страшнее, писать на го
Лично я к мобильной разработки не имею никакого отношения, сейчас пишем все на котлине, причем поверх старой жабы если рефакторим, то сразу в котлин
>>1723071 А что там еще должно быть? Я просто не в курсе, может уже появилось место где что-то обещают и ты разочаровался?
Скажи, что там должно быть еще, чтобы это стоило твоего внимание? Совместимость с .NET? Компиляция в го-рантайм? Автокомплит по голосу? Совместимость с TI-99/4A?
>>1723102 >>1723118 Да хуй знает, ощущение что для каких-то паттернов просто придумали новые кейворды, а в остальном та же джава. Лямбы только действительно круто сделали и externsion functions. Корутины я еще в глаза не видел.
>>1723865 Собственно этого в джаве и не хватало. Никто не хочет вторую скалу, нам просто хочется работать в инфраструктуре джавы, но только чтобы было удобнее.
>>1723994 Я не совсем понимаю о чем ты. Но думаю, тут речь не про "написал один раз, работает везде", эту похлебку покушали за тебя другое поколение. Тут речь, что ты на одном языке пишешь под разные платформы. Согласен что код на ардуино будет совсем другой чем код для DOM браузера? Но согласен, что на ардуино или в браузере будет приятнее писать на котлине (чем на квази С++ и жабаскрипте)
>>1725815 Мне не надо ничего дергать, мне надо объекты сравнить.
Дочитал я до инлайн функций и не локальных return-ов, впечатление двоякое. Было бы конечно хорошо, если бы они инлайнились в рантайме, но это похоже не возможно, я ведь правильно понял они инлайнятся во время компиляции? У меня не складывается в уме как дела обстоят с динамически подгружаемыми библиотеками.
>>1726512 Для заглушки неиспользуемых типов в генериках, такой void-для-генериков.
Вот есть у тебя например какой нибудь модный реактивный поток Publisher<Data, Error>, а ты знаешь что в нём не нужно хэндлить ошибки и суешь в Error Nothing. inb4: void это полноценный тип и компилятор его не может игнорить.
>>1726512 >>1726523, и кидает исключение. Честно говоря зачем нужно для этого ещё и метод помечать как возвращающий нотхин' не знаю, не постиг ещё этих тайных знаний. Загугли и мне расскажи )))
>>1726538 Объяснили выше. Например, если функция всегда кидает исключение. Полезно для всяких вспомогательных функций, формирующих исключение и кидающих его.
Пример использования: fun throwException(): Nothing fun doSomeComplexOperation(): Int { if (some condition) { return <some complex expression>; } else { throwException(); } }
Если бы throwException имел тип Unit, пришлось бы после его вызова явно писать return. А с Nothing компиляор понимает, что после вызова throwException произоёдет исключение, и не требует return.
>>1726553 Если страшна то просто не надо усердствовать со всякими операторами, иначе будет хаскель.
>И in\out вместо ламповых extends/super тоже Ты же понимаешь, что уже готов кушать каки просто из-за того, что привык? Зачем делать новый язык и тащить туда всё говно?
>>1726260 Как ты их сравнишь код? Тебе нужен общий код для двух и более решений и только его ты можешь на всех сторонах сравнить. Вообще иди читай уже, у тебя каша в голове, ты словил триггер на сравнение там, где не надо
>>1726596 Мотивация понятна. Но я в приципе не понимаю, как такое можно было бы реализовать с поддержкой нелокальных return (а без них смысла в inline-функциях особо нет).
>>1726604 Так основной смысл инлайна в котлине не в увеличении производительности, а в возможности менять локальные переменные из коллбэков, переданных в инлайн-функцию. В C++ это есть и без инлайна, так как в лямбде можно захватить локальные переменные по ссылке и менять сколько хочешь, только это немного опасно тем, что лямбда может вызваться после выхода из функции, локальные переменные которой модифицируются.
>>1726621 Ого, а ведь это круто. Я думал, что в котлине так же как в Java - не-инлайн-лямбды могут использовать только effectively-final переменные. Оказывается, что не так: вместо этого компилятор оборачивает локальную переменную в контейнер, ссылку на который передает лямбде.
Ну тогда да, плюсами inline остаются только reified и non-local return. Что касатеся C++, то reified там просто везде, потому что только так работают темплейты. А non-local return там нет в принципе.
Только что посмотрел примеры использования reified тут: https://kotlinlang.org/docs/reference/inline-functions.html Не могу понять, почему они обязательно требуют inline? Ведь то же самое можно сделать автоматическим добавлением параметра KClass. То есть так, как это сделано с неявным TypeTag в Scala.
>>1726631 Рассчитывается на интероп с джавой. Ну и нельзя нарушать абстракцию байткода, придется создавать целый слой костылей над костылями, погоняя костылями (причем даже там где это не нужно). Я уже молчу про производительность, с такими метеоданными можно получить второй питон.
>>1726702 У мобильщиков каникулы, ближе к сентябрю вернуться. без шуток, мобильная разработка это центр притяжения юных вкатывальщиков школьно-студенческого возраста.
>>1728148 > Рассчитывается на интероп с джавой Методы с reified-типами и сейчас не могут быть вызваны из Java > Ну и нельзя нарушать абстракцию байткода Ничего от этого не нарушается. Просто в сигнатуру метода добавляется ещё один параметр типа KClass. > Я уже молчу про производительность Довольно часто метод делают reified чисто для того, чтобы использовать рефлексию на типе. В этом случае никаких проблем с производительностью не будет. Но так не всегда, да. Например, filterIsInstance, он бы действительно потерял в производиельности.
Аноны, подскажите. Можно ли как-то прервать delay внутри корутины? И саму корутину во время делея, потому что проблема именно в том, что делей тащит за собой оставшееся тело. Пробовал cancel() и return@launch, но чего-то я, видимо, не понимаю. Либо есть смысл просто скипать часть тела и поднимать вне корутины, но не хотелось бы мусорить.
>>1728446 > но чего-то я, видимо, не понимаю А что получается? По идее delay должен кинуть CancellationException, и если ты его нигде случайно не поймал, то корутина должна завершиться.
>>1728168 >Методы с reified-типами и сейчас не могут быть вызваны из Java Никто не обещал интероп с котлином. О чем ты? Сейчас бы повозмущаться тому, что жабаскрипт не может в фичи тайпскрипта, например получить доступ к типам
>Ничего от этого не нарушается. Ты просто тупенький.
>Просто в сигнатуру метода добавляется ещё один параметр типа KClass. Действительно, просто. кстати, зачем добавлять в сигнатуру, когда можно добавить информацию сразу в тело функции?? Но это тупо, даже не хочу объяснять. Другая фишка это добавлять к объектам мета-данные. Но тут мы пришли к динамическому программированию и его проблемы производительности
>Довольно часто метод делают reified Нужен для того чтобы делать красивой API, и не для попыток натянуть сову на глобус.
>>1728472 > Никто не обещал интероп с котлином. О чем ты? Ну ок. Тогда неясно, как такой способ реализации reified нарушает интерпоп с Java.
> Ты просто тупенький. Это не аргумент.
> когда можно добавить информацию сразу в тело функции Речь идёт о реализации reified без требования inline. В этом случае так не сделать, так как функция может быть вызвана с любым типом.
>>1726631 > Не могу понять, почему они обязательно требуют inline? Ведь то же самое можно сделать автоматическим добавлением параметра KClass.
KClass не передает всей возможной информации о типе. В некоторых случаях этого достаточно, но если ты хочешь узнать например nullability типа или его дженерик-аргументы, то через KClass это не сделать.
Могли бы передавать KType, но его сложно сконструировать. В большинстве случаев это был бы оверкилл.
>>1728741 > Могли бы передавать KType, но его сложно сконструировать. В Scala есть TypeTag и ClassTag, и можно выбрать, что конструировать. Аналогичные выбор можно было ввести и в Котлине. К тому же конструировать надо всего один раз за время работы программы. А вообще, из дискуссии тут и размышлений, похоже на то, что reified сделали требующим inline тупо для простоты и производительности. Всё же inline - не такая и большая проблема. Да и reified нужен нечасто, а для функций, которые не просто получают KClass из reified и передают его другой функции - ещё реже. Кстати, как можно просто найти все reified-функции в исходниках или в байткоде? Понятно, что можно найти парсер языка, натравить его, и обработать результаты. Ну в рантайме через classpath scanning и рефлексию. Но может есть что-то, позволяющее сделать такое в 2 клика.
>>1728465 Решил проблему. Перенёс часть кода в invokeOnCompletion и вынес инициализацию Job из оверрайд геттера. Сначала, правда, пофиксил иначе - добавил булевый volatile для проверки состояния, но это слишком грязно.
>>1705096 (OP) В чем кардинальное преимущество котлина перед явой? У скалы была-есть серьезная поддержка ФП, которая обеспечила ей определенную узкую популярность, икоторая дает возможность пользоваться преимуществами ФП парадигым. А у котлина то что, все никак не въеду. Чуть подкрашенный синтаксис и корутины - это все?
>>1729507 Код-стайл нужен для улучшения сопровождения кода (твоего восприятия кода).
Запись "= Unit" больше выпендреж возможностей котлина, чем реальная потребность. Поэтому новичок или уставший человек может подвиснуть на этом участке кода, когда в действительности этот человек должен за один взгляд проглотить и побежать дальше.
Поэтому, с моей точки зрения, "{}" лучше и привычнее, но поверь, найдутся тимлиды, которые будут топить ровно наоборот, потому что они победители по жизни победители специальных олимпиад. И если это хер будет из какого-нибудь гугла, то это станет станет стандартом де факто. А пока это не стало - используй то что понятнее, возможно даже через год, читая свой код ты сам на нем случайно не запнешься.
>>1729535 >У скалы была-есть серьезная поддержка ФП, которая обеспечила ей определенную узкую популярность Нет, нихуя. Скала взлетела потому что жава в то время обновлялась раз в 5 лет, и то нихуя нового в сам язык не добавляли, а из конкурентов на жвм были только всякие кложа (говно говна) и груви (годный язык, если бы там были нормальные типы а не динамичкское скрипто-испражнение — скала бы так и осталась в своей швейцарской консерватории а котлина бы никогда и не было).
Сейчас же, когда каждые пол года выкатывают новую джаву с самыми сочными плюшками — ни скала, ни котлин никому нахуй не упёрлись. Только гуглу, который нагнул оракл до очередного всплеска NIH-синдрома и очередного го-дарта-2.0.
>>1729535 Если твой разум не видит для себя преимущества, то их значит и нет. Прекращай мучить себя странными вопросами. Этот язык не нужен тебе. Мы не секта по типу сообщества го или раста, мы не собираем адептов. Тут просто люди, которые тупо попробовали и им зашло. Никакой магии нет.
Забавно, что несколько лет назад я поплювался от котлина и не стал даже особо играться с ним, а вот сейчас я кроме него уже не могу ни на чем писать.
>>1729568 Че за демагогию ты развел? Я вприцнипе не смотрел на этот язык, кроме пары статей, и спрашиваю у тех, кто пользуется им давно - в чем преимущество. Прочитанное в обзорах меня вообще не убедило, выглядит как беттер-джава с подкрученным синтаксисом, как будто бы явовский плох. Странно, что для человека, занимающегося технарством, этот вопрос непрозрачен.
>>1729535 Забавно что в 2020 до сих пор есть люди, которые воспринимают мегакорпорации как единую человекоподобную личность. Поверь, в гугле 100500 загонов, где одновременно могут пилить го, дарт, андроид, фуксию, V8 и коммитить в котлин. Ресурс компании позволяет, компания потом тупо выбирает что выстрелит с моей точки зрения идиотский подход, где гугл больше закрепляет позиции по брошенным проектам.
Котлин не гугловый проект. Откуда вы такие лезете, тоже непонятно, видимо где-то появился очередной пастух-ютубер, который вам заливает.
>>1729566 Кардинальные плюсы котлина - он убирает бойлерплейт джавы, сохраняя нормально интероп, при этом оставаясь практичным языком, а не потоком говно фантазий очередного гения. Даже тот же груви местами вызывает изумление, про скалу вообще молчу (а за кложу просто страшно).
Другой момент, джетбрейнс пытаются воплотить самые влажные мечты любого тру-программиста, это сделать один язык для всех платформ. И это круто, не факт что получиться, но к этому уже нужно стремиться, а то как кустари каждый в своем загоне, на своем языке пилим одни и теже велосипеды, 21 век как никак.
>>1729571 >Странно, что для человека, занимающегося технарством, этот вопрос непрозрачен. Странно что ты себя считаешь технарем. Открой любую книжку или конфиренцию двухлетней давности и там будет вводная глава "почему котлин". А если хочешь технарский ответ, давай конкретнее по свойствам и мы с тобой обсудим.
>>1729588 >Да я как бы нигде этого не утверждал, ты снова не можешь в информацию и логику. Ну вот видишь, поэтому я с тобой и говорил как с гуманитарием. и это было правильно, раз ранее прочитанные технические факты тебя не убедили совсем
>>1729581 >с моей точки зрения идиотский подход, где гугл больше закрепляет позиции по брошенным проектам А с точки зрения гугла — во всём нужна конкуренция. Тащемта, у тебя нормальный взгял среднего совка.
>Котлин не гугловый проект. Если бы не гугл с андроидом у котлина не было бы и трети текущей популярности, ты о чём вообще?
>Даже тот же груви местами вызывает изумление Какими, например? Он не взлетел просто потому, что а) никому кроме апача нахуй не нужен, б) это динамический язык на крайне консервативной платформе. Но в своё время был просто ебать какой бомбой, в отличие от котлина, который от жавы серьёзно отличается только наличием null safety и пропертями, которые уже очевидно, что затащат в джаву ещё через год-другой. Котлин без андроида ещё лет через 5 мы обсуждали бы точно так же.
>Другой момент, джетбрейнс пытаются воплотить самые влажные мечты любого тру-программиста, это сделать один язык для всех платформ Так они уже есть, их аж 2 — жс и ц++. Надеюсь эта универсальность хоть кому-то что-то хорошее в жизнь привнесла, кроме испорченной крови и посаженных нервов, лол.
>>1729591 >Беттер джава Хорошо не хуже, как говориться, и на том спасибо.
Ты же понимаешь что программирование сложная штука, а наш мозг ограничен в восприятии? Вот смотри, у меня есть друг, ему котлин нравится за красивые лямбды "{...}" и возможность писать DSL. У него такая работа, он там грубо конфиги пишет и ему это нравится. Ему так же нравится что не нужно больше писать на говно-питоне. Его не втыкают там корутины, ему не нужно было писать геттеры или сеттеры. У него свое восприятие плюсов языка, но как факты это все сомнительно, да?
Если ты ничего для себя не нашел и тебе кажется что это сахар поверх жабы, то так оно и есть (для тебя), что ты от нас то хочешь услышать? Неведомую скрытую серебряную пулю, которые скрыли от тебя маркетологи и евангелисты языка?
>>1729601 >Тащемта, у тебя нормальный взгял среднего совка. Что за бред? Кладбище проектов, рождает пониженный интерес к новым, а значит к убыткам там, где их возможно не было бы. Каким местом тут совок вкрался, когда тут проблема маркетинга, я хз. Но раз ты такой шизик, то кормить я тебя больше не буду.
>>1729605 Я привел пример скалы, которая фундаментально отличается от явы наличие либ, позволяющих писать код без сайдэффектов и тд. Тебя, как я понял, задел ярлык беттер джавы - но по описанию это так. ЧТо же, судя по всему эта ниши всегда будет, ее кто то должен занимать. Не понимаю, в чем ваша проблема с принятием этой нишевости.
>>1729610 Ты сейчас ахуеешь, но победа в конкуренции — это когда конкуренты сдохли. Да, это не эффективно на старте, но эффективно на долгой дистанции. А если твой проект начинает задыхаться — значит он проиграл и его легче добить. Стоимость гугла (Alphabet Inc) как бы сама за себя говорит.
Тащемта, посмотри на космическую отрасль США. Там сейчас на коне SpaceX, а правительство уже активно кормит его конкурентов. Это эффективно? Нет. Где эффективный Роскосмос у которого 0 конкурентов и 20 лет монополии на рынке? Пускает ракеты которые разработаны несколько десятков лет, зато эффективненько, лишних денег на конкуренцию не тратится.
Тащемта, и так во всём, правда никто не понимает что проблема-то в головах.
>>1729601 >Если бы не гугл с андроидом у котлина не было бы и трети текущей популярности, ты о чём вообще? Поверь для бэкенд разработчика от этого ни тепло ни холодно порой даже мешает.
>>1729605 >Вот смотри, у меня есть друг, ему котлин нравится за красивые лямбды "{...}" и возможность писать DSL Ты ему покажи груви, откуда котлин это всё позаимствовал. Он ахуеет ещё сильнее.
>>1729614 Меня ничего не задело, я просто пытаюсь общаться с каждым на их уровне. Если котлин можно назвать "лучшей джавой" то это хорошо. Потому что скалу, я так назвать не могу. Не скажу что хуже, скажу что она "налево".
>>1729617 Только если этот бэкэндер работает в стартапе и сам решает на чём писать. В любой большой компании менеджмент хотя и так почти везде пошлёт тебя послал бы нахуй, если бы котлин не бампнул бы рейтинги и кол-во вакансий с "Kotlin" в названии за счёт гугла, ведь и не было бы аргумента что "найти разраба на котлине относительно легко".
>>1729618 Я ему это по началу и говорил. Ему как раз зашел типизированный DSL. Это тот случай, когда маркетологи попали точно в цель. возможно единичную, но блин, такие вот кейсы оказывается бывают. Он даже мне объяснял почему DSL на динамических языках это не очень удобно и почему котлин тут ему помог. Хотя не отрицаю тут у него вау-эффект.
>>1729620 Ты очередной диванный HR. Поверь, снизить усталость ребят от жабы, которую они ябут 10-15 лет и уже краем глаза смотрят как устроить мне очередную текучку кадров, это порой важнее, чем найти жабиста и натянуть на него котлин (который хорошо натягивается, в отличие от совы).
>>1729628 Ты сам написал >Ты очередной диванный HR. хотя про них там не было ни слова, а сам высрал типичный эйчарский аргумент в пользу стартапов "мы не можем заплатить конкурентную зарплату, но технологии нескучные!".
>>1729637 Проблема в том, что программисту не объяснишь, что на следующей работе его ждет очередное легаси. А тут есть шанс освежить свое говно чем-то новым, при этом вменяемым, если вспоминать скалу. Мы явно не модные и молодежные стартаперы, просто программисты выгорают.
А так это реально целая проблема, куда не посади программиста, он превращает все в легаси. Сделай язык, который убирает энтропию кода для программиста - станешь известным новаторам тысячелетия, может даже богатым.
>>1729596 Я говорю, "ты плохой технарь", ты возражаешь и говоришь что "не говорил что технарь". Раз это возражение и у нас всего два состояния (технарь или не технарь), а по технарю ты возразил, то я смело могут делать вывод что ты гуманитарь. И не важно, что ты там подразумевал, тут как сказано так и понято.
>>1729689 То есть, по де-факто правилу (хз какому там), ты должен был уточнить, чтобы я тебя правильно понял. Но представь как этого глупо выглядело бы -"Я не говорил что я технарь, но я технарь". Абсурд, да?
>>1729689 >Я говорю, "ты плохой технарь" >Странно что ты себя считаешь технарем. Вранье не тянет даже на демагогический прием, прекрати свой позор, ты обосрался уже давно и много раз.
>>1729560 Что за чушь? Каким образом Unit портит читабельность, если это явное указание на возвращаемое значение и ошибиться в этом случае просто невозможно, какой бы ни сложной не была функция?
>>1729767 Потому что автовывод сигнатуры функции (возвращаемого значения) зло и хипстерство: fun foo(x: Int) = someFun(x) Когда должна быть допустим только такой вариант fun foo(x: Int): String = someFun(x)
Это удобно в некоторых случаях, но дай только такую возможность, начнут срать везде
>>1729950 У всего есть своя цена, но я согласен, что джава код можно бегло без IDE прочитать на каком-нибудь гитхламе.
Правда это справедливо для небольшого кода, а серьезно читать код без IDE, это уже идиотизм. Поэтому не особо большая потеря, за удобства автовывода и более чистого кода (визуально).
Исключение, конечно, сигнатуры функции. Это то еще зло.
>>1729947 Стоп, речь не об этом. Я ответил на это: >Запись "= Unit" больше выпендреж возможностей котлина, чем реальная потребность. >Поэтому, с моей точки зрения, "{}" лучше и привычнее А в том виде, который описал ты, это действительно лишнее, но только в том случае, если этого не требует нуллабельность(например, когда возвращаемое значение автоматически преобразовывается в Type!) или вариантность - когда происходит приведение к верхнему объекту, если отсутствуют ограничения проецирования. В таких случаях тип нужно указывать явно.
>>1729950 >наглядно все написано и читается лучше, чем во всяких котлино-скалах Кстати говоря, соглашусь с тем, что джава хороша с точки зрения наличия защиты от дурака. В Котлине чистота кода во многом зависит от тебя самого, от соблюдения правил написания читабельного кода. Не знаю, правда, можно ли считать это плюсом, это скорее особенность. Так или иначе, это ещё одно требование, в отношении которого ты должен быть компетентен, говоря о Котлине.
>>1730006 Очевидно что "= Unit" заглушка для будущей процедуры (функции которая не возвращает значение). А значит в любом случае она будет описана тело через "{}". Поэтому и понты.
Моя главная претензия в том, что функции и методы должны всегда явно описывать сигнатуру. Не писать явно сигнатуру зло. И куда хуже если завтра вообще будет там не Unit, а другая функция которая возвращает тип.
В любом случае ты залипаешь на эту функцию, тратя свое время, потому что в ней ты не видишь ни сигнатур ни API.
В третьих, нельзя оставлять валидные заглушки. Всегда нужно ронять исключением, в котлине вроде даже есть TODO-сахарок-функция.
>>1729978 Самое первое что в голову пришло и вспомнилось - визитор, потокобезопасный синглетон. А вообще я даже тебе картинку сделал, ибо мальчик уже взрослый и можешь сам гуглить.
>>1730012 То что сейчас в джаве воспринимает стильно, создавалось кровью и потом. Сходите к плюсовикам, там до сих пор не договорились о стиле. То есть, заслуга эта не джавы, а комьюнити. А то до сих пор бы сейчас встречали код с публичными полями вместо геттеров и сеттеров.
>>1730036 Когда ты уточняешь что-то, это ты ставишь себя на ранг ньюфага. А вот, отвечающему по кайфу чувствовать превосходство своего интеллекта. На всем этом и держится вся эта форумная или SO фигня, тешить свое самолюбие отвечая на очевидные вопросы (поэтому на сложные вопросы фиг когда ответа дождешься, а в чатиках максимум помогает по синтаксису, ибо это легко и быстро).
Ты думаешь что ты победил, но на самом деле ты просто покормил мое самолюбие, и где-то подсознательно ты это почувствовал, написав такой оскорбительный пост, чтобы в ответ задеть мои чувства. Но нет, я уже насытился и ощущаю превосходство над тобой. Как-будто ты лежишь у меня в ногах и что-то там пытаешься тявкнуть.
>>1730038 Согласен, но всё равно считаю, что в самой Джаве больше ограничений. >>1730023 Пиши как угодно, если это не во вред, вот и всё. Все те случаи, которые ты описываешь, сводятся к тому, что код должен быть достаточно информативным, поэтому нужно использовать все средства, которые доступны. Функции/методы должны быть описательными, не вызывающими лишних вопросов. Увы, некоторые этим пренебрегают, но от этого никуда не деться, сам понимаешь. Тут даже дело не столько в языках, сколько в людях, которые пишут код. Тем не менее, на Котлине можно писать чисто. И, разумеется, нужно.
>>1730403 >>1730404 Сейчас уклон в около модульную архитектуру. У тебя есть хттп сервер к нему прикручиваешь разные модули. Спринг, конечно, модульный тяжеловес. Но в целом кушать монолиты не нужно.
И пососы с факапами на интерконнекте при малейшей нагрузке. А при чуть более сильной - лавинообразное складывание всех микросервисов у БУТЫЛОЧНОГО ГОРЛА.
И это самое смешное во всей этой микросервисной кухне - по сути взяли хипстанов и заставили заниматься по-сути тем же, чем занимаются на протяжении всего своего существования джунипер и циско.
Только вместо ебейших седых инженеров с годами опыта создания всех этих интернетов и его протоколов за плечами - хипстеры со стремительно ТЕРЯЮЩИМИ МОДУ СТЕКАМИ.
>>1705245 Ну, как и говорили, я обосрался без знания джавы. Не знаю что делать, смотрю и в вакансиях ее еще требуют, а котлин в довесок идет. Джава же огромная, там учить можно бесконечно.
>>1732823 Что в джаве огромное - так это библиотеки, включая стандартную. Сам синтаксис в джаве простейший, фишечек там минимум. Проще, наверное, только в сишке и го. Даже JS сложнее.
>>1732823 Обосрался в каком смысле этого слова? Не осилил мануалы, где всё сводится к "в отличие от Java..." хи-хи От Java-джуна требуется знание SE с фишечками из восьмёрки, sql. ООП Плюсом будет, если ты хоть сколько-то поковырял EE и осилил сервлеты, что-то знаешь о Спринге и используемом стеке как таковом (зачем и почему). Паттерны и иные концептуальные вещи ситуативны и напрямую зависят от серьёзности задач на предлагаемой должности. Важно то, что в энтерпрайзе ты не можешь не знать Java.
>>1732953 > От Java-джуна требуется знание SE с фишечками из восьмёрки, sql. ООП > Немного сервлеты и спринга Правда ли, что для джуна этого сейчас достаточно? Я вот смотрю одну из вакансий на джуна и вижу, что требуется опыт в Hibernate и Spring. Но неясно, какого размера опыт требуется. Одно дело написание TODO-листа, другое дело написание относительно крупного проекта с использованием advanced-фич Spring и Hibernate (например, для Spring собственные BeanPostprocessor, scope, для Hibernate какие-то ебанутые маппинги с кастомными типами на несколько столбцов). С требованиями SQL тоже неясно. Одно дело - уметь простые select+join+group by. Другое дело - ебанутые запросы с window-функциями, при том умение их оптимизировать, а также хорошее знание реализации изоляции транзакции в конкретной БД,
>>1732971 Они пишут это для того, чтобы кандидат имел представление о том, с чем придется работать, и ожидают, что ты имеешь достаточный уровень знаний, чтобы решать ту часть задач, которую тебе делегируют. Очевидно, что тебе не будут давать сложные задачи, потому что это просто невыгодно, так что бояться этого не нужно. Размер опыта условен и предполагает лишь то, что человек способен ориентироваться в рабочем процессе и не потеряется на пустом месте. Тут нужно не гадать, а пробовать свои силы на интервью, заодно и свои пробелы найдёшь.
>>1733047 > и ожидают, что ты имеешь достаточный уровень знаний, чтобы решать ту часть задач, которую тебе делегируют Ну так кандидатов, которые имеют достаточный уровень знаний для решения задач, существенно больше, чем число вакансий, разве нет? Поэтому чтобы устроиться на работу надо знать больше, чем реально нужно для решения задач. Особенно сейчас с карантином, зашёл на hh и поразился, как мало стало джунских вакансий.
>>1733079 А я и не говорил, что не нужно знать больше. :) Я говорил о требованиях работодателя, а не о конкуренции, которая является отдельной темой. Возвращаясь к требованиям, важно понимать и то, что границы размыты слишком сильно, равно как велико и количество факторов, которые влияют на положительный результат трудоустройство в той или иной степени. Дело тут вот в чём: "достаточность" собственных знаний условную готовность довольно сложно оценить, поэтому нужно начать пробовать собеседоваться на определённом этапе, когда ты понимаешь, что можешь вникнуть в суть проекта и что-то предложить. Кандидатов всегда будет много, но если ты усердно трудишься, тебе достанется место того, кто трудился хуже тебя.
> better Java > стандартная либа отдельным пакетом > "стандартные" корутины отдельным пакетом > рефлексия отдельным пакетом > скрипты .kts не могут импортировать друг друга > для юзания фреймворков, использующих кодогенерацию, нужно опциями компилятора отключить final by default > отдельный плагин компилятора для поддержки спринга > отдельный плагин коомпилятора для поддержки JPA > ::class.java > @JvmStatic Нет, спасибо, вернусь к вам через пару лет.
>>1735563 >отдельным пакетом А как должно быть? Зачем тянуть то, что может не использоваться? >для юзания фреймворков, использующих кодогенерацию Например? >отдельный плагин компилятора для поддержки спринга >отдельный плагин коомпилятора для поддержки JPA Не проблема. В целом, работать удобно.
>>1735652 > А как должно быть? Зачем тянуть то, что может не использоваться? Ну бля, это же стандартные вещи, которые с большой вероятностью будут использоваться везде, и они просто в силу стандартности должны быть из коробки, иначе стандартными их называть нельзя. Всё равно каждый первый проект их тащит. Так можно до каких-нибудь крестов докатиться, где без сторонних библиотек максимум с файлами можно поиграться. Вообще, сильная привязка к тулингу, сложно запустить простые тестовые примеры без долгой предварительной конфигурации, а даже для хеллоуворлда с корутинами нужно создавать помник на полсотник строчек. В реальном проекте без этого не обойтись, но обучению не очень способствует.
> Например? Собственно, спринг, хибернейт, да хоть Java EE. Некоторые аннотации генерят код, чтобы под капотом унаследовать какие-то классы и что-то с ними делать. Причём делается это в рантайме, ибо компилируется без ошибок, а при запуске стектрейсит.
> Не проблема. В целом, работать удобно. Непрозрачно. Не получается абстрагироваться от деталей реализации, приходится держать их в голове. Да и то, что приходится писать плагины для ядра языка, чтобы поддерживать сторонние фреймворки, выглядит странно. Неужели для каждого нового фреймворка нужно писать по плагину, чтобы доделать язык под них, потому что стандартных средств не хватает?
Впрочем, это всё с непривычки, возможно. Но некоторые решения вызывают очень много вопросов.
>>1735655 Я понял ход твоих мыслей и не буду что-то доказывать, что вывсёврёти, потому что в чём-то сложностей действительно больше. Те же плагины, например, необходимы для того, чтобы не просто добавить поддержку языка давайте просто будем использовать better java , как такового, но и адаптировать новые возможности языка под фреймворк, исключая ограничения, которые могут возникнуть как со стороны системы-реципиента, так и со стороны внедряемого, потому что многие вещи, которые были сильно переработаны в Котлине а в контексте стабильности системы это очень значительно, являются основой реализации фреймворков на Java. >Неужели для каждого нового фреймворка нужно писать по плагину, чтобы доделать язык под них, потому что стандартных средств не хватает? Если говорить о Спринге и его структурной сложности, плагин - наименьшее зло.
>>1735563 > стандартная либа отдельным пакетом > "стандартные" корутины отдельным пакетом > рефлексия отдельным пакетом Это норма. Тебе может еще в СТД спринг добавить?
>скрипты .kts не могут импортировать друг друга Хз что там, но скрипты должны быть скриптами, а не библиотеками питона на тысячи строк. Если уж надумал настрогать утилиту, будь добр пиши как есть в jar с менеджером пакетов. Но в тоже время соглашусь, было бы неплохо если бы это выглядело лучше.
> для юзания фреймворков, использующих кодогенерацию, нужно опциями компилятора отключить final by default > отдельный плагин компилятора для поддержки спринга > отдельный плагин коомпилятора для поддержки JPA Прекращайте юзать фреймворки с кодогенирацией, спринг и JPA. Тут они конечно обосрались, но в то же время мне это говно не нужно, всегда пытаюсь котлиновский стэк собрать. >@JvmStatic Потому что совместимость.
Пацаны, 2 года в екомерс жава тырпрайзе. Захотелось чего-то нового, захотелось пощупать мобилки с возможностью частично перекатиться во фриланс. Поясните за подводные камни.
>>1737289 Думал, что там будет про конкретные проблемы в дизайне языка, прочитал, хуй там. Вообще, речи в таком духе выдают авторы любых взлетевших технологий, и все говорят только про организационную составляющую, а самой сути нет. Да, он уже отвечал на все вопросы много раз, но смысл от подобных статей, их на хабре сотни по одному шаблону, меняются только имена участников и название технологии.
Вообще, я раньше не понимал, почему все гонят на хабру, теперь, похоже, начинаю догонять.
>>1737371 Тот момент, когда лучше бы он молчал. Со временем, субъективно сложилось мнение, что у него какие-то психологические проблемы, пускай не сильные, но мешающие ему и, мол, от этого, он даже ударился в психологию (такое я часто видел). Это не говорит о нем, как о плохом инженере, но слова о том, что в первое время надо было набрать команду, натолкнуло меня на мысль об очередном "Гвидоподобном гении одиночки" который видит мир через свою призму правильного и не правильного. Но вроде, со временем, он это и сам понял.
Другой момент, сложилось впечатление, что он от него уже устал. В принципе, это нормально, даже у гоферов меняли там людей, хотя он простой как палка.
>>1737371 О проблемах и не говорят. Как бы себя программисты не считали сторонниками точных наук или инженерами, а языки инструментами (ага). Реальность такова что человек субъективно и по своим вкусам выбирает ту или иную технологию (а чаще просто по популярности, чтобы в рынок вписаться) и в конечном счете у него образуются догматические убеждения. И если начать говорить о недостатках, то можно отпугнуть оставшихся (мало кто понимает, что недостатки есть всегда).
При всей моей любви к котлину, он не получился таким уж гладким как хотелось бы. Конечно, с большими оговорками, но я считаю у котлина наилучший синтаксис на сегодня (имхо) и ближайщее лет 5 точно фиг кто переплюнет. Но этот синтаксис скорее натянут на сову или глобус, чем выглядит продуманной архитектурой. Котлин бы реально зашел за новую мажорную версию java, чем за новый язык.
Вторая проблема, я не вижу чтобы котлин набирал обороты в мире бэкенда. Да, там на телефонах радуются, но у них там маня-мир на отшибе, со своими блэкджеком. Все эти котлин нейтив, котлин js, multiplatform, их понесло не туда.
Но я был бы фанбоем-говнарем, если бы не отметил тот факт, что интерес к дарту на SO возрос. То есть, он догнал и обогнал котлин. Походу скоро на телефонах будет такой же бардак языков как на бэкенде.
Насколько мертвая затея выучить Kotlin без знания явы, чисто котлин? чтоб писать под андроид. и чтоб вообще яву не учить, ну типо если надо какой модуль который на яве написан то скачиваешь его с гита и просто и пользуешься его методами, но в яву не вникать вообще. Прогать умею на питоне и на плюсах
Не учить джаву, уча котлин, это как слизать сливки с кофе, но не пить само кофе. Или как купить хороший телевизор, но не включать его.
Именно наличие бэкграунда джавовских либ (дохера их), делает тебя "сильным" программистом. Даже в сравнение с петухоном.
Котлин тебе нужен лишь для того, чтобы писать на джаве более практично и с удовольствием. пока язык не стал по настоящему мультиплатформенным (если станет)
>>1737959 Не забывай про байт-код, в котором можно утонуть без знания Джавы. Все эти "можно ли сразу в Котлин" - несерьёзно, потому что ты работаешь с JVM и твоя задача - знать всё, что тебе нужно для комфортной работы с ней.
>>1737967 Дополню, забыл ответить анону >>1737941 Я Андроид дев и я ответственно заявляю, что это действительно мертвая затея. Когда ты работаешь со старыми версиями API, ты идёшь в документацию и видишь там код для реализации на Джаве. Когда у тебя что-то падает из-за кодогенерации, ты читаешь сгенерированный код на джаве, где видишь отнюдь не Котлиновский синтаксис, потому что у тебя появляются новые модификаторы, конструкции, всё выглядит незнакомо и хочется плакать, потому что ты вкатывался в Котлин . И придется тебе тратить уйму времени на то, чтобы разобраться. Не стоит забывать о том, что часто приходится работать с Джавовским легаси. Короче, это до такой степени изъезженная тема, что нет сил и желания что-то в очередной раз писать.
>>1738033 Не будь занудой. >>1738060 Ничто не мешает попробовать, не так уж всё страшно, если у тебя есть опыт программирования. В действительности же, соотносимость Джавы и Котлина построена на закономерностях, вытекающих из некоторых недостатков или ограничений первой (только с точки зрения Котлина, предлагаемых им решений и идиом, потому что он, в свою очередь, тоже имеет ограничения, но не об этом), многие из которых довольно очевидны. Вообще, их сравнение является основой всех ныне существующих книг по Котлину. Я прочитал, как мне кажется, почти все изданные книги и везде первостепенной задачей было показать концептуальную различность. (Что вполне понятно, ведь далеко не все готовы рисковать, говоря о бизнесе, которому не нужны лишние сложности) Я это всё к тому, что разобраться в этом реально, важно лишь помнить о том, что ты: 1) работаешь с JVM, 2) с большой вероятностью будешь работать с легаси. Пробуй, может легко ухватишься за суть и всё пойдет.
>>1738122 Спасибо, только не пойму почему буду работать с легаси, работать котлинистом я не планирую, просто хочу приложения/игры на андроид попробывать написать, а значит я типо волен выбирать свежие библиотеки/фреймворки для своего проекта
Смотрите, ЭППЛ СИЛЛИКОН ебошит в небо, по тестам и производительности АРМ архитектура как минимум убивает х86 в ноутбуках, но это как минимум.
Сраный проц, позапрошлого айпада в транзит ките уделывает последний I5, Шиндовс пытается в АРМ, но вторая попытка тоже завяла.
И вот я задумался, у нас стоит проблема e-waste и global warming, ну и еще low income countries с poor power grid
То есть, мобилы стали гораздо более производительны к операция/ватт/$ в 4-6 раз чем десктопы и ноутбуки. Сраный ZTE за 8 тыщ рублей в целом имеет железо для поддержки 4 4к дисплеев и полный пакет браузинга-рендеринга-офис джоба-гейминга
Почему бы Андройду не сделать нормальный десктоп мод? тыкнул как ночной мод свитч, подключил к монитору, собпряг уши, мышь, клаву и готово, десктопный браузер-офис-рендеринг-гейминг, миллионы приложух которые будут перепилены под десктоп за полгодика, вот и виндовс пойдет нахуй на свалку.
Через год МакОСь будет запускать все приложухи эпплстора, половину из которых успешно перепишут на десктоповый функционал и экосистема будет намного богаче чем сраный шиндовс.
1) миллиарды бедных людей хотят девайсы и активно уничтожают окружающую среду в попытке заработать на них деньги 2) сами девайсы превращаются в мусор через 10 лет и активно уничтожают окружающую среду
Ну то есть в любой мобиле начиная с 14 нанометрового тех. процесса есть столько лошадок, что она одновременно может выступать персональным компьютером без изъянов, почему бы просто не допилить андройд до уровня ПК? подключаешь мобилу к монитору и вклчаешь полноценный ПК режим, только реально нормальный с нормальным браузером и рабочими приложухами.
Мне кажется это надо форсить прямо сверху кнутом, прямо как аппл просто кнутом делает транзит на свои процессоры, рыночек не хочет, рыночку сложна.
>>1738984 Ты сам себе отвечаешь на вопрос. 1) миллиарды бедных людей хотят девайсы и активно уничтожают окружающую среду в попытке заработать на них деньги 2) сами девайсы превращаются в мусор через 10 лет и активно уничтожают окружающую среду
Зачем что-то менять, когда и так все идеально. 10 лет ты конечно загнул, мне сейчас топ менеджер сказал менять телефон раз 2 года
>>1738936 > почему бы просто не допилить андройд до уровня ПК? Андроид настолько ущербен в сравнении с настольными ОС, что вместо допиливания андроида легче взять эти ОС и сделать так, чтобы на мобилках они запускались в урезанном облегчённом режиме.
Вообще, уже был Ubuntu touch с десктоп модом, но хз, что там с ним сейчас.
Напишите на котле UI-конвертер из пальчикового андроида в тачпадоклавный десктопный, как раз для будущих арм-ноутов с интеграцией со смартфоном (не тольео эпл их будет делать) и вас купит гугол!
По сути, всё движется к тому, что в скором времени смартфоны смогут стать полноценной заменой пк не забываем о том, что для тяжёлых задач можно задействовать технологию облачных вычислений, чье развитие будет только ускоряться, но проблема в том, что успешность этого процесса обусловлена унификацией на уровне технологических стандартов, потому что так устроен рынок - крупнейшие игроки тянут на себя одеяло, форсируя инициативы на основе денежных вливаний и преследуя свои цели. На мой взгляд, чтобы это стало реальностью, необходимы новые технологии, чья "революционность" будет неоспорима ровно в той мере, чтобы идти по пути индивидуальной инициативы было максимально невыгодно. Нужна некая обобщающая парадигма, которая даст возможность развиваться каждому, не выходя за её рамки.
>>1739015 >Или ты хочешь чтобы у всех были твои андроид-пэкашки и миллиарды бедных перестали покупать девайсы?
Проблема в том, что продажа каждый год несколько новых миллиардов девайсов не совсем сустейнабл, после 5-6 таких циклов всё вокруг люто засрется если только робототехника не сможет в 99.9% переработку девайсов, но чет особых движений в эту сторону нет.
>>1739213 Во-первых, я рассуждаю в пределах ближайших десятилетий, во-вторых, речь идёт о массовом продукте, вероятность убыточности которого сведена к минимуму. Так что, хочется этого или нет, пока ни о каких голограммах и очках в качестве недорогой и конкурентноспособной альтернативы не может быть и речи. Бизнес любит определённость.
>>1739233 >Q: Стоит ли сразу вкатиться в котлин минуя джаву? A: Нет. Не стоит. Есть точка зрения, что котлин позиционируется как "удобная/лучшая джава", подразумевая то, что ты хочешь писать на джаве, но более современно и практично. Да и глупо игнорировать джавоский мир, который является в топе по числу библиотек и решений, где тебе все равно придется погрузиться когда-то в его синтаксис.
>Q: Но если меня интересует только разработка под андроид, стоит ли вкатываться в джаву? A: Стоит. Доки старого API на джаве, кодогенерация, байткод близкий к джаве. Ну и легаси, оно тоже на джаве.