Не буду сюда тащить всякий маркетинговый буллшит, который вы и без меня слышали, напишу лишь глазами обывателя почему именно котлин, а не скажем язык "N".
Почему не C# На самом деле дотнет и шарп великолепная альтернатива java/kotlin миру, но если поскрести, то мы увидим дешевый маркетинг и снова плохую игру в EEE (гуглите что это). Если с вебом все хорошо (если вас устраивает ASP.NET и Blazor), то с остальным окружением как-то сомнительно. Мобильная разработка - местами костыливарение. Это не проблема шарпа, это проблема написания универсальных кроссплатформенных решений. Игры/Юнити - на самом деле там свой компилятор C#, а значит свои костыли (и это отставания по версиям официального шарпа и потенциальное отсутствие части фич основного шарпа итд). Машинное обучение - какая-то обертка над питоном (просто ради маркетинга?) MAUI - выпилили линукс. То есть, из xamarin.forms просто взяли выкинули линукс, который там был (привет ЕЕЕ, и это на фоне релиза "Compose Multiplatform"). IoT - не знаю что там, но возможно опять просто какая-то обертка и костыли ради маркетинга, чтобы показать что есть (сомнительное решение - VM язык натянуть на глобус). Я так понял, чтобы юзать 10 шарп, нужна последняя IDE, а она в свою очередь, вроде, только на десятке (сам не пробовал, но видел слезы. Если это правда, то это ппц). Официально есть поддержка 7 винды, но в реале нет поддержки компиляции в один файл (то есть полной поддержки на деле нет, давай покупай десятку уже). Стоит помнить, что Net Core появился сравнительно недавно и как по мне разнообразие библиотек сравнительно мало. Какой-нибудь клон Netty тупо прокис и заброшен (и вообще вроде не под core, хз).
Почему не Java Джава древний топорный язык, который исторически как-то забуксовал в развитие. Благо тонущий Sun успел его открыть людям раньше чем МС свой шарп, от чего он несмотря на топорность получил сильное развитие. Появление котлина и некоторый его успех, вероятно, заставило джаву как-то двигаться в ногу со временем, но все это поверх старого синтаксиса смотрится не очень. Как по мне, лучше бы джава оставалась в своей 8 версии, многих "надежный старый молоток" устраивал.
Почему не Rust Раст превосходная альтернатива С/С++ если вы раньше не писали на С/С++, но вам стало очень надо. Правда сами плюсы это отдельный мир системной/эмбеддед разработки. То есть, даже если вы прониклись мыслью написать что-то очень быстрое, то мало просто взять С++, на нем надо еще уметь быстро и оптимизировано писать (это, наверное, уже к сотне разного рода хитростей и хаков), при этом те же VM языки по производительности идут вровень (или с некритичным отставанием) с неуправляемыми языками. А вот если разница по производительности не сильно большая, то разработка на системной языке будет отнимать у вас солидную часть мозгового ресурса. Это не так выразительно и просто как хотелось бы, даже на расте.
Питон и динамические языки Еще проще писать, чем на плюсах, расте и VM языках это писать на динамических языках. Но мир это уже не 10.000 строк кода и как-только ты выходишь за зону комфорта стандартной либы, начинает адок. Если в типизированных языках ты можешь тыкнуть по методу (в IDE) и посмотреть его сигнатуру (и если повезет получить доку), в край код. То в динамических языках, не ты, не IDE, вообще не понимают что тут происходит, пока ты это не принтанешь в рантайме. В общем, скрипты нужны для скриптов. А скрипты с анатациями типов это уже даже не смешно. Если ты планируешь кодить многолетний проект, выкинь скрипты сразу после прототипа (на самом деле котлин настолько выразительный, что можно прототипировать на нём, а автовывод компилятором (и IDE) типов не даст отстрелить себе свою змею).
Go Язык хорошо прижился в миркосервисах. И вообще идеально подходит для написания чего-то небольшого (причем мало весит и мало жрет ОЗУ). Но синтаксис реально настолько примитивен, что я бы не хотел на нем писать многолетний проект и потом этот сплошной бойреплейт сопровождать (да, можно, но оставим это фанатикам). Надо понимать, что текущая индустрия, это код на десятки миллионов строк и нужен инструмент, который помог бы абстрагировать этот код. И без полноценного ООП, сахара - жить трудно (можно, но не стоит). Вот простой пример почему не пригоден. У тебя упал код в функции/методе "N", он упал на продакшене, в какой-то случайный момент. Этот метод вызывается в коде под разными условия десятки тысяч раз (и это еще мало). И где именно, в каком из этих случаев (списке вызовов) он упал - непонятно. В джаве/котлине, шарпе итд, тебе высреться огромнейшей стектрейс по которому ты поймешь где именно, в какой последовательности вызовов произошла эта ошибка. То есть, исключения и стекстрейс - это эволюция в развитии программирования. Это эволюция для многолетних и многомиллионных (по коду) проектов. Мы не живем уже в программах на 10К строк, в которых можно за несколько часов разобраться в контексте вызова функции.
Котлин критика и здравый смысл Вы замечали, что современный маркетинг очень глупый? Он глупый потому-что пытается врать умным людям. Я считаю, что именно буллшиты тормознули в свое время котлин в бэкенде и даже развитие раста (в том же расте можно со всех мест слышать про безопасность, а потом в стандартной библиотеке найти ансейвы и словить фрустрацию). Мы технически сложные люди и мы вполне можем переварить сложную не бинарную информацию, а вот фрустрацию переварить не может. Отсюда появляется феномен, что язык либо любят, либо сразу ненавидят (хотя нормальное состояние это просто потерять интерес).
У котлина весьма хороший синтаксис, но не все так гладко как хотелось бы. Правда я вообще не видел, чтобы где-то было все гладко (может только хаскель?). У вас неизбежно будет WTF реакция на некоторые решения в синтаксисе, но и хорошее моменты тоже там будут. В общем, набив руку и уже описывая свое API и даже свои DSL, будет ощущаться невероятный комфорт (без пафоса). Конечно, читаемость кода может немного упасть, когда у тебя лесенка лямбд со всеми кишками наружу. Но они (лямбды) настолько шикарные, что просто приятно ими выражать свои мысли, а читать код без IDE даже на джаве сложно (то есть, IDE хорошо помогает читать весь это переслащенный код и это справедливо для всех языков, даже IDE для Go делает его менее противным).
Котлин пахнет джавой. Если в мобильной разработке люди еще пишут что-то свое с нуля и это не похоже на многослойный кровавый энтерпрайз, то в бэкенде придется местами нюхать энтерпрайзные либы (хотя уже не так сильно). Я в свое время пошел по пути джедая, то есть по пути говнокода и писал какие-то свои решения на котлин и был этим весьма доволен. Когда пишешь котлин на котлине, это очень удобно (я не призываю все писать с нуля, просто старайтесь искать что-то свежее, а не писать на котлине джаву).
Котлин дольше компилируется, чем джава. Эта проблема была и у скалы. Сахарок требует соответствующего парсинга. Кому-то это может быть важным и критичным. Трудно сказать насколько, я еще столько кода не написал, но люди жаловались. Исполняется, он вроде как, на уровне джавы, типа для тормозов байткода там мест не много (кроме каких-то проверок).
Котлин нет своей JVM. Тут риск не в том, что потеряют JVM (есть openJDK и Sun перед закрытием успел открыть миру VM). В общем, проблема была в том что они его не разрабатывают. Я в свое время опасался, мол они не осилят эту ношу, так как заявили о полном интеропе (а это невероятный труд). Но время показало, все хорошо. Также, отсутствие своего JVM накладывает некоторые ограничения, ну опять же затирание типов в байткоде и вроде я слышал есть некоторый затык с рефлексией (но это не точно).
Медленное развитие. Котлин позиционирует себя везде и всюду и я тоже надеюсь, что это когда-то случиться. Но реальность нам показывает немного другое, все это развитие идет медленно и чтобы от этого не "фрустануть", надо это понимать. Все еще идет возня с native, вот вроде зарелизили Compose Multiplatform, но там как бы еще нет поддержки макоси. В общем, так-то он полноценный язык и по коду может все, что может джава (на самом деле уже наделали немало портов на чистом синтаксисе котлина, поэтому он все меньше пахнет джавой). Но вот попытка охватить всё и вся, она как идея великолепна, но ресурса, вероятно, не так много и все идет не так быстро, как хотелось бы. То есть, надо понимать что это не МС и не Гугль. Но, в тоже время, эти парни взяли и решились сделали кроссплатформенные гуи, когда уже даже самые сытые не решались. И за это им респект, потому как гуи все равно нужны, даже написать какие-то тулзовины для себя (лучше когда есть, чем не есть).
(Пока все, если что-то еще вспомню, добавлю потом)
Как это все учить. Сложна, сложна, сложна... Если с синтаксисом все понятно и даже инфоцыгане наклепали тонну видео контента о том как писать if и for. То вот с либами и фреймворками не все бывает так просто. У котлина много портов и много проектов с нуля. Чаще там там поверхностная документация. Это не проблема котлина, это проблема менее популярных решений во всех языках. По какому-то спрингу ты найдешь целый книги, а по ktor может быть поверхностная дока и примеры (может сейчас лучше, хз). Как решать эту проблему? Нужно начинать читать код проекта, который тебя интересуют. И не просто читать, а запускай его в отладке, идти по пятам отладчика и смотреть что и когда дергается, может даже вставлять свой код (поиграться). Также не забывать читать сигнатуру классов и в конечном итоге откладывать в голове общую архитектуру (а дальше пойдет как по маслу). Тут ты не только прокачаешь скилл в текущей либе/фрейме, так еще прокачаешь скилл по самому котлину (или другому языку), а также скилл по отладке и прочим полезным вещам уровня сеньера или лида (писать тоже важно, особенно чтобы потыкать в разные вещи, типа корутины или там дженерики, или там где не понимаешь. А так же писать полезно, чтобы запомнить это все). Главно еще надо понимать, что по началу будет сложно и возможно это будет долго, но со временем даже если ты тупой как я, сможешь нехило так прокачаться в теме.
Ангельские языки Каждый тупой разраб тебе скажет, что надо здесь и сейчас учить английский, а то никак вообще. Английский язык ты полюбому выучишь (и я тоже, думаю, выучу когда-нибудь до конца). Но пока не трать всю мотивацию на английский, иначе сразу выгоришь (сожжешь всю мотивацию разом и не туда). Сейчас в браузере тонна плагинов с переводчиками, есть даже переводчики по наведению мыши (или выделению слова/предложения), а так же есть софт с переводом даже с картинок. В общем, это нормально, и многие так делают. Не стоит себя лишать айтишечки из-за английского, но реальность такова, что лучше изучать именно английский материал, просто потому как ру-говорящие сообщество очень лениво и редко переводит, да и чаще бросает переводы (оправдывая свою лень, что типа это не нужно и, мол, проще выучить английский - все это ложь, проще С++ выучить чем английский).
>>2296882 (OP) >Я так понял, чтобы юзать 10 шарп, нужна последняя IDE Чтобы писать на шарпе не нужна IDE, а нужен установленный последний рантайм, хоть на винде, хоть на линуксе, проверяй методичку.
>Официально есть поддержка 7 винды, но в реале нет поддержки компиляции в один файл Я сижу на Линуксе, не буду опровергать либо подтверждать данное высказывание, так как 10+ летними операционными системами от корпорации не интересуюсь и в основном пишу под веб.
>Стоит помнить, что Net Core появился сравнительно недавно и как по мне разнообразие библиотек сравнительно мало Каких библиотек? .NET5/6 сейчас основной рантайм платформы, все ключевые проекты уже давно портированы, осталось только легаси, которое не портируется потому что нахуй никому не нужно.
>Если с вебом все хорошо (если вас устраивает ASP.NET и Blazor) Тут ты прав, только Blazor убирай - это очередной высер корпорации для фронта, который забросится через n лет. Обычно рожу пишут на одном из big3 angular/react/vue.
>Игры/Юнити Не интересуюсь, это вообще другой мир разработки нежели обычный дотнет.
>Машинное обучение Очередной высер корпорации для инфоцыган, который забросится через n лет вместе с питоном и прочей петушней.
>MAUI Очередной высер корпорации для десктопа и мобилок, который забросится через n лет.
>xamarin.forms Не интересуюсь легаси ГАВНОМ.
>IoT Очередной высер корпорации для байтоебов, который забросится через n лет, даже не пробовал и пробовать не буду.
ASP.NET Core и C# - лучшая платформа и язык для бэкенд разработки.
>>2297269 Голанг - это таки альтернатива дотнету на бэкэ, но он изначально делался как инфраструктурный, а не бизнес язык программирования, поэтому если отбросить хайп и resume driven development, то я не думаю, что голанг является прямым конкурентом шарпу.
Нахуярить микросервисы быстро или инфраструктурный проект - да, но судя по тому, что я вижу, он хуёво подходит под написания бизнес приложений.
Единственный конкурент .NET/C# на бэк, в своей категории - это Java.
Python/PHP - сразу нахуй.
PHP - я могу ещё отдать дань предкам, но Питон на бэкэ - это признак хуёвой кампании и околоцыганства.
Я вообще ненавижу Python, любая псевдонаучная хуетень обязательно будет написана на этом дырявом языке. К другим языкам отношусь нормально, тут уже дело вкуса что выбирать - C# или Java, я выбрал C#.
>>2297269 А почему я должен выбирать го вместо дотнета, даже если мне нужен только веб? Ладно я бы понял, если ты какой-нибудь девопс и пилишь инфра проекты. Тогда го уместен. А если ты, как и 90% остальных бекендеров, просто копаешься в недрах бизнес-логики и грузишь джейсоны, то нах тебе го?
>>2298081 Что мешает писать абстрактные фабрики на питоне? Как только выбираешься из стандартной либы или стека, начинается динамический адок, где вообще непонятно что за тип и как даже его исходники глянуть.
>>2298201 Ничего не мешает, но не пишут. А в жабах пишут. Даже если в своём проекте можно не заниматься этой хуйнёй, всё равно придётся ебаться с либами и фреймворками, которые целиком состоят из абстрактных фабрик.
>>2298217 >>2298217 Кто пишет? Проснись ты обосрался. Абстрактные фабрики это паттерн ООП, его пишут когда он нужен. В петухоне против ООП паттернов? Или что? Что за троллинг тупостью?
>>2297611 Чел, если ты думаешь, что вот эти все ML, MAUI, IoT будут писать на шарпе, ты сильно ошибаешься. Место шарпа в бекенде кровавого энтерпрайза, и нигде более. Десктоп разработка в 2022 году переехала на Qt или вовсе закончилась, для IoT есть куда более подходящие инструменты, ML - это Python, C++ и немного Scala, Julia, R. А вот asp.net core это будущее шарпа. Все остальное - мусор.
>>2298282 Ограниченное восприятие это плохо. Откуда вы победители над десктопом вылезаете? Конечно, ведь тырпрайзу очень нужен тонкий клиент в виде бразуера, он очень удобен.
>>2298291 >ведь тырпрайзу очень нужен тонкий клиент в виде бразуера Представь себе, да. Сегодня это так и делается - на том же сервере где раньше хостилась только база данных, теперь хостится и веб приложение, и больше не нужно обновлять десяток, а то и сотню машин.
Никому десктоп не нужен сегодня, а там где он нужен - нужен обычно перфоманс или кроссплатформа, и используется C++.
>>2298311 >обновлять десяток, а то и сотню машин. Ты, наверное, из тех кто до сих пор руками браузер обновляет? Наслушаются своих подкастов от успешных стартаперов, и ходят потом всем рассказывают как толстый клиент ненужон.
>>2298323 А зачем нужен толстый клиент, когда есть тонкий? Лично мне гораздо удобнее ввести url в браузер и сразу залогиниться, чем сначала искать .exe файл, потом его скачивать, устанавливать, и т. д. Да и вся логика так или иначе на сервере будет крутиться. Какая разница, где формы заполнять и на кнопочки жать?
>>2298358 >Какая разница, где формы заполнять и на кнопочки жать? Это так до тех пор, пока не нужно поддержать какое-нибудь многопользовательское редактирование.
>>2299466 >Стоит учить Котлин первымя языком? Языки всегда стоит учить в сторону понижения градуса (скажем с java - kotlin, C++ - Java - js), но не в коем случае в обратную сторону.
>Часто встречаю мнение что надо сначало Джабу освоить, а потом Котлин. Лучший вариант, это поверхностно освоить синтаксис джавы и глубоко котлин. Но больше зависит от твоего стека. Если там уже один котлин, то и джава не нужна. Но первый затык будет все равно в гредле.
>На котлине сразу можно написать мобиьной приложение? Хз что там, но насколько я слышал, на мобильной разработке джаву уже вспоминают редко, уточняй у них (но все равно синтаксис джавы даст тебе буст всегда, ибо нюхать джаву где-нибудь да придется).
>Т.е. и фронт и бэк на нем одном? Только во влажных мечтах неопытных менеджеров. На фронтенде js все еще мастхев, а там потом сам решишь хватает тебе котлин/js или нет. Бэк можно хоть на жаба-стеке, хоть на котлин стеке.
>>2299614 PS если бы я выбирал первый яп, я бы выбрал C#, а котлин юзал бы только на андроид по необходимости (мобильная разрботке мне не важна). В С# тебе не нужно изучать два языка, а сам язык это де-факто целая платформа и все заточено под него. Котлин фичи в какой-то мере реализованы и в шарпе, только местами другим подходом (в котлине удобнее/красивее).
>>2296882 (OP) Люди здесь вообще зеленые, и даже не понимают что пишут, кроме ОП поста, который к слову написан каким то легким мидлом.
Поясняю. Речь пойдет про мобил разрабу. Почему? Потому что залетные петухи думают, что мультиплатформа победит. Люди никогда не писали под хамарин, под флаттер, нативно под андроид и иос. Но с чувством важности рассуждают, что как котлин все пофиксит. Долго разъяснять не буду, но все это параша. Кодить без боли в заднице можно только на иос на божественном свифте, в который шагает семимильными шагами, в отличии от котлина и их "ой обратная совместимость кококо, аккуратно деплоим" Пока чады просто берут и ломают сука некоторые моменты, Но, спешу вас обрадовать, такого в свифте уже нет 2+ года.
Итак, что мы имеем. Божественную иос платформу, с языком свифта, или загневающий андроид\котлин, котлин\мультиплатформа\хамарин и прочее говно. Думаю выбор чевиден.
IoT, к слову, можно писать только на 2 языках. го и эликсир. Но тут уже на выбор.
Подумайте, прежде чем вкатываться в эту котлиновскую хуйню дважды. Иначе время ваше не вернут.
>>2300035 Никакие. JVM это только банк и нужно понимать всем своим нутром. Да, есть исключения, но большинство все таки банк. Хочешь что то другое - иди в рельсы\питон.
>>2302054 У го есть одно преимущество неявная асинхронщина. Но в тоже время нет возможности (кроме откровенных хаков) повлиять и создать пул своих системных потоков (то есть, вообще, как-то этим управлять). Во всем остальном, это ужаснейший яп если твои задачи выходят за простой crud микросервиса.
Если ты раб на галерах, то микросервисы это цела религия, если ты чуть умнее или же колупаешь свои проекты, то го сразу выпадает из области практичного инструмента. Да, стартовать может быстрее, не надо месяцами стек изучать, но изучив нужные стеки ты уже просто сходу экономишь в каждом проекте 1000 человека часов (если бы такое же писал ручками сам).
>>2302094 А ну еще преимущество, для кого-то, это явный бинарь (если операционка не ругает за неподписанное ПО). Котлин/жабу тоже можно запихнуть в бинарь (в край в толстый единый jar), но не из коробки (в жаба мире многое не из коробки, исторически так сложилось, даже крутой хотрелоад есть и профайлер, но все это стороннее).
Буквально на днях вентилировал этот же вопрос: что учить в 2022 году для разработки >бэкэнда<. Несколько дней гуглил, читал статьи и прочее. Краткие выводы к которым я пришёл для себя (на истину в последней инстанции не претендую):
1) Ванильная Java - уже фактически труп. Учить её сейчас с нуля нет смысла, новых проектов на ней никто уже не начинает. Большое кол-во вакансий и высокие ЗП в данный момент, обусловлены её славным прошлым, большому кол-ву кровавого энтерпрайза в финтехе, телекомах и тп который нужно поддерживать и дорабатывать, и тем, что молодые разрабы в большинстве своём проходят мимо неё в результате чего имеется серьезный дефицит разработчиков.
2) C# медленно, но верно загибается, МС судя по всему будет продолжать активно развивать его, в результате чего он имеет шансы обогнать Java со временем. Т.е. проще говоря он будет терять свою долю рынка медленнее чем Java. Тем не менее учить его с нуля в 2022 тоже нет смысла, главный аргумент тут: он не используется в core-сервисах крупнейших IT компаний мира (разумеется, сама МС не в счет). Пока гугл, амазон или мета не перепишет свою инфраструктуру на C#, смотреть в его сторону тоже не стоит.
3) Думаю, что следующая троица: node+ts, kotlin и golang в течение нескольких лет практически полностью вытеснят java и c# с бэкэнда везде, включая банки, телекомы и тп. В конечном счете всё будет переписано на данных языках. Старые технологии местами останутся, если серьезные доработки не требуются, но с нуля разрабатывать на них уже не будут.
Поскольку, последние 5 лет я пишу исключительно на node+ts (до этого, немного разрабатывал на c#), в этом году я решил изучить golang. Думаю, что спрос на golang разработчиков вырастет в разы в ближайшие годы.
>>2302230 Яркая проблема котлина это то, что он прокси язык. Начнет тонуть джава, утонит и котлин (и все полуживые другие яп на платформе). То есть, начнут забрасываться многие проекты и прочие, а на самом котлине мало что еще своего написано. Джава плотно сидит в кровавом. А вот котлин захватил только мобилки. Они проебали главный хлеб. У котлина нет JVM, они не могут сделать такую же мощную горячую перезагрузку как в новом дотнете. То есть, им неизбежно придется тащиться за тем, что может JVM и не смогут добавить туда модных фич. А вот МС видит будущее и может быстро подстроиться. Удачно подстроится или нет, это другой вопрос, но факт что возможность есть. И пока котлин мечтает о мультиплатформе и нюхают webassembly, дотнет уже там "product ready" (готов для продакшена).
Тонкий клиент и электрон с Blazor - мощное бизнес решение по замени толстого клиента в том же бизнесе. Понятно что местный анон видит только свой компьютер и ему кажется странным десктоп решения, но надо понимать у бизнеса очень большая потребность в толстом клиенте, а браузер (тонкий клиент) много лет был тупо костылей. С появлением вебсокетов, вебассембли и таких решений как blazor меняет все. Удобный тонкий клиент (но весьма костыльный) стал по функционалу как толстый. Надо понимать еще что эти приложения в браузере (тонком клиенте) не является привычным вебом (и их тупо сравнивать, но они очень родственны).
То что у шарпа 100500 UI решений говорит об эволюции, такое же происходит в опенсорсе, многое отмирает или живет узких кругах и многое не взлетает. Посмотрим что выйдет с MAUI (который, вероятно, будет подружен с blazor), но фишка в том что они делают и пробуют и все это за свои, а не твои деньги. Так что странно упрекать МС в том, что он забивает на разработку, когда их команады конкурируют и ищут лучшее для разрабов.
Ставить ставку на typescript можно только если твоя область только касается веб. Но опять же, ts прокси языки и все равно придется ковыряться в кишках js (на самом деле doc-описания типов хватает за глаза и код чище). Учить два языка по цене одного - удаль зумеров. Лучше, имхо, погрузиться в кишки js и стать там мастером, чем учить прокси язык, который без js не яп.
Node.js вообще тухлая технология. Как и пхп она сейчас приносит деньги, но просто потому, что сейчас в вебе все приносит деньги. А так у него ужасная архитектура, которую пытаются допилить годами, а сама нода, в сравнение с мягкими или котлином вообще почти никак не развивается и не будет развиваться никогда (это технический тупик, временная удачная бизнес затычка). В общем, если быть объективным нода становится тупо тулкитом для вебпака, для фронта и все.
Го - идеальная штука для микросервисов, но писать больше чем crud, когда ты кодил на чем-то нормальном, вызывает тот еще зуд.
- Если выбирать между нодой и го, то 100% го. - Если выбирать между го и котлином - тут явно котлин (но не 100%). - Если выбирать между шестым дотнетом и котлином - тут уже вопрос холивара, но если не полениться и покопать в шарп, можно заменить тенденцию роста во все стороны. Пока "полтора разработчика" котлин ели пилят нейтив, новый компилятор, UI, трансляторы в js, кторы и тулзовины в виде сериализации и API даты - дотнет занимает прямо технологиями и щупает все подрят.
Так что большой вопрос, куда стоит еще запрыгнуть. Но очень рекомендую погрузиться немного в мир дотнета, чтобы увидеть, что там активнее идет развитие, чем это может казаться. Но уж точно не прыгать в ноду.
PS в рантайме дотнетаа 6.0.3, который еще не вышел, но уже принято на гитхабе, они пофиксили компиляцию в один файл для 7 винды, если кому важно.
>>2302372 При этом я пишу на дотнете и котлине и котлин для меня приятнее по синтаксису, а дотнет приятнее как технология и платформа. А то, быть может, я покажусь евангелистом дотнета.
>>2302372 >Если выбирать между го и котлином - тут явно котлин (но не 100%)
Котлин на бекенде всегда в связке с жабой идет. А там, где жаба, там будет спринг и опционально легаси. По сути пишешь на том же спринге, но с чуть более продвинутым синтаксисом.
Го как язык очень беден. Да, есть горутины, но остальное... После жабы сильно не хватает стримов. Понятно, что все удобно делать циклами, но тем не менее. Но с другой стороны пользоваться го в целом удобно, нет такого слоя магии и хмл конфигураций.
Дотнет вроде кажется перспективной платформой, но не раньше лет чем через 5-7. Пока что вся инфраструктура больших компаний написана на помойных легасных языках, дотнета в крупняке почти нигде нет. На рынке нужны дотнет фуллстеки, а не просто бекендеры.
>>2303203 Котлин. Хз что там сейчас в го, но в свое время все писали свои костыли и это даже было правильным. Сначала кажется это годным, ибо свои решения проще и легче, конкретно под пару задач. А потом через год-два смотришь и думаешь, что тут происходит (ни документации, ни примеров, ничего, да еще код через одно место).
>>2299614 >Языки всегда стоит учить в сторону понижения градуса (скажем с java - kotlin, C++ - Java - js), но не в коем случае в обратную сторону. Ты скозал?
Можно сделать так, чтобы экстеншен функция имела доступ к методу другого класса?
Т.е. нужно сделать что-то вроде Query.filter, вот только BaseRepo - класс из либы. Знаю, что могу отнаследоваться и написать функцию уже в своем классе, но интересует именно возможность сделать это через экстеншен
>>2322244 Некоторые идеи в котлине были хороши, некоторые ужасны. Но в целом кроме мобилок не выстрелило. Шарп выглядит солиднее как платформа, у них своя виртуальная машина и они всегда подкорректируют где надо под язык, а котлин скорее прокси язык.
После того как после обновления у меня каким-то образом стал цепляться run-экстеншен из котлиновской библиотеки, вместо run-метода класса с дефольным параметром, я понял что для прода я его не хочу. Самое забавное, run-экстенен вообще не подходила по сигнатуре с моим методом, и на это ругался компилятор. Но лог был такой, что я вообще не сразу понял, почему мое приложение собиралось годами и вдруг упало.
>>2324538 >Можно сделать так, чтобы экстеншен функция имела доступ к методу другого класса? Если метод не у компанейского объекта, то тебе нужен экземпляр объекта. Откуда его по твоему надо брать?
>>2325241 Да, я понимаю. Думал, что можно как-то пробрасывать контекст, в котором вызывается экстеншен функция. Что-то вроде экстеншена к BaseRepo, который содержит экстеншен к Query
>>2332579 Никакой паскаль они не делали. Сама сишка больше похожа на паскаль, чем котлин. Сделали, очевидно, своё видение нормального синтаксиса, хоть видение и ошибочно.
>>2332855 Ты ещё учишься и не видел других языков, да?
>Переменные объявляются Потому что: 1) Сишный синтаксис — говно времён отсутствия вывода типов, и вводить ещё 2 помойных кейворда чтобы тебе было удобно работать в блокноте никому не всралось; 2) Удачи парсить это говно.
>>2332855 Ты про var спереди? fun еще, аргументы функций. Бреслав в каком то интервью говорил что это тупо просто парсить и естественно читать. Хотя судя по скорости компилятора и лагов идеи так не скажешь, а остальное дело привычки, если это не хескел.
Как там ваш котлин себя чувствует в тырпрайзе? Получил хоть какое-то признание? Я так понял в мобильной разработке теперь надо знать сразу два языка джаву и котлин (за ту же зарплату)?
>>2360111 Ну так нагло спиздили дизайн у лучшего языка, но в силу уебищности, неисправимости JVM и экосистемы из жабьего навоза времен пузыря доткомов, то получили никому неинтересный высер. Карма андроид макакены могут поспорить, но там альтернатив нет
С шарпом тоже жопа. Сам язык хорош, но политика мягких просто ппц. Все новые версии дотнета только под последнюю студию, 5 дотнет уже выпилен, лол. Тоже самое и про операционки, на бумаге есть фулл поддержка 7, на деле частичная и тонна подводных. В очередном новом гуи (с ебучим названием мауи) выпилили линукс, хотя он (Xamarin.Forms) там был изначально.
МС сделали годный продукт, но продолжают натягивать юзера. Хотя согласен, что JVM экосистема воняет тырпрайзом. Лучше бы котлин был бы поверх Го рантайма. Синхронные языки на многоядерных системах, это уже даже не смешно (а затрахивающий асинк/авей пускай себе в жопу засунут).
С шарпом тоже жопа. Сам язык хорош, но политика мягких просто ппц. Все новые версии дотнета только под последнюю студию, 5 дотнет уже выпилен, лол. Тоже самое и про операционки, на бумаге есть фулл поддержка 7, на деле частичная и тонна подводных. В очередном новом гуи (с ебучим названием мауи) выпилили линукс, хотя он (Xamarin.Forms) там был изначально.
МС сделали годный продукт, но продолжают натягивать юзера. Хотя согласен, что JVM экосистема воняет тырпрайзом. Лучше бы котлин был бы поверх Го рантайма. Синхронные языки на многоядерных системах, это уже даже не смешно (а затрахивающий асинк/авей пускай себе в жопу засунут).
>>2360572 Ощущение слабой популярности языка, заставляющий неосознанно нести "луч света" в каждый уголок "тьмы". Или попытка самоутвердиться за счет своего выбора, когда есть внутренние сомнения и фрустрации.
У шарпа синтаксис устарел, говно LINQ - отдельный синтаксис языка, оказывается легко заменяется ФП и лямбдами и не надо коверкать язык. Безумная точка запятой от дремучих древних разработчиков парсера, политика мягких всегда всех нае...
Недавно пришлось сделать маленькое приложение на Kotlin+Ktor+SQLDelight. И могу сказать, что это гораздо проще и приятнее чем Java+Spring. В свое время, я 3 дня угробил на то чтобы защитить эндпоинт с помощью JWT токена, та библиотека у них деприкейтед, а по новой нет тьюториалов и функционал там не полный пока реализовали. А в Ktor все завелось за 2 часа по гайду с официального сайта.
>>2296882 (OP) > Игры/Юнити - на самом деле там свой компилятор C# > отсутствие части фич основного шарпа итд А нахуя тебе в разработке игры последние фичи сишарпа? Тем более если сам движок не переписывается при этом. В 2021 версии юнити c# 9 версии. Но можно спокойно писать хоть на C# 4 версии.
>>2417966 Конкретно, что тебе дадут последние фичи сишарпа при разработке игры на юнити? Сам движок не меняется, не переписывается. Добавляют только новые фреймворки, типа ECS, который позволяет иначе писать код игры. Но с фичами языка это никак не связанно.
>>2418324 Я хочу сишарп, а не продукт с имитацией вкуса сишарпа.
>Конкретно, что тебе дадут последние фичи сишарпа Хз что там у вас, но вот в недавно там родили нормальные неймспейсы без идиотских отступов, потом работа с нуллами. В общем, я не хочу лесть в доку и читать что там поддерживается или нет, мне сказали шарп и я хочу сишарп, а не продукт с имитацией вкуса сишарпа.
>>2417962 >имплаинг что десяток аннотаций @InjectHuiny и @ZdelayZaebis легче поддерживается. Любое бездумное использование технологий делает код не поддерживаемым. Но тут то у тебя, хоть все связывается явно, через код и все find usage, go to definition - у тебя работают. В отличии от Спринга, где аннотация связывается с кодом обработчика магией Спринга.
>>2418767 Так они уже так делают, размазывая кишки по всей длине лямб. Одно дело прочитать название метода и даже доку и понять что происходит в её вызове, другое дело уведеть каскад лямбд и чтобы понять что происходит, пройтись по всем кишкам.
>>2422110 Ну у меня весь бек на котлине. Проблема котлина в том, что он не приносит ничего нового. Просто пару патчей на жаву, без которых в большинстве своем можно жить
>>2422110 А смысл менять язык фактически ради синтаксического сахара? Те же старые фреймворки, те же подходы, плюс несколько новых либ, которые и для жабы пишут.
>>2422251 я бы не сказал, что проблема в джвае, скорей во всей jvm. Объясни причину по которой при наличии у котлина Ktor, http4k вакансий на написание микропенисов на goвне все равно сильно больше. Хотя оба языка новые, но при этом за котлином стоит весь jvm
>>2422110 Ну смотри, тебе платили 5К за стек джавы и её подводные камни и нюансы, а теперь у тебя добавился котлин , с новыми подводными и нюансами, но зарплата осталась так же. Вопросы?
Начал изучать котлин, пытаюсь пока понять основы. Встал вопрос, как безопасно ввести числовой массив? Слепил реализацию пикрил, но чет говнокод какой-то. Есть ли другие способы кроме catch?
>>2422110 Потому что зачем? У тебя такой же джава стайл код на беке останется. Его разве что в проектах с вебфлаксом имеет смысл прикручивать ради синтаксиса
>>2419761 И ещё раз: >Любое бездумное использование технологий делает код не поддерживаемым. Надо просто пиздить запрещать кодстайлами лямбда больше пары строк. Надо 5 строк кода - сделай метод или класс, благо сахара для этого выше крыши.
>>2422517 Потому что: 1. Инерция, куча СТО привыкло к жаве. 2. Разрабов с опытом в беке на котлине не мобилки мало, а жависты начинают херачить как на жаве.
Посоны а подскажите какой-нибудь годно написанный бекенд проект на котлине, чтобы проникнуться? Может есть какие-нибудь примеры, скелетоны и тп. Только не helloworld, а что-нибудь погуще. мимо сеньор с другого стека, думаю перекатиться
>>2426336 Взяв шарф, ты даже чисто на уровне хобби можешь игрушки на юнити попилить, а на жабе ты сможешь попилить только свой анус.
JCobol не нужен, котлин чисто еще один узкий яп для мобилок, а с гредлом все мозги сломаешь. Высрали язык и не осилили даже систему сборки, которая удобно бы с IDE сочеталась.
>>2426336 Вторая, как по мне, - отсутствие возможности определять свои значимые типы (аля шарповые структуры). Из-за этого приходится сильно чаще дергать хип и GC. Вроде как в рамках project Valhalla пытаются это добавить.
Здравствуйте, дорогие друзья. Помогите разобраться с проблемой. Значит, установил я библиотеку Kotlin-statistic для того, чтобы научиться решать свои прикладные задачи по работе. Работа с ойти не связана. Проверяю я работоспособность с помощью маленького кода (пик 1). Изначально в IDEA нет оператора медиана. Библиотека добавляет этот оператор. Во время ввода он сам мне предлагает дописать этот median(), то есть он его видит. При этом дописывая сверху Import библиотеканейм (пик 2). После чего он выдаёт ошибку (пик 3). В блокноте DataLore эта библиотека предустановлена, и всё прекрасно работает, но мне хочется понять, почему он тут ругается.
При ответе учитывайте следующее, пожалуйста: Я нуб, жёсткий, так что будьте проще. Я никуда не собираюсь вкатываться, так что будьте проще. Спасибо.
>>2435552 А вот сейчас на работе открыл, на рабочем компе, закачал ту же либу, воткнул её туда же, всё нажал точно в таком же порядке, как и дома, и зарабаотало. Так что пока вопрос снимаю.
>>2439284 У жабистов такая же, не переживай (откуда её шарп и позаимствовал). Я не про дату блядь выпуска виртуальной машины, а про сам уровень технологий.
>>2439296 Сейчас такие потребности, что приложуха стартует 4 часа с прогревом кэша и перезапускать по каждому пуку нельзя. А твои примитивные неуправляемые языки фрагментируют память моментом на реально больших данных. Так что не известно кто соснул. Виртуальная машина с 2-3 поколениями и зонами для оптимизации или неуправляемая перделка эпохи Брежнева.
>>2439284 >>2437831 JVM и CLR реально Legacy, тут уже ничего не поделать, просто очень старое легаси, куда тяжело впиливать нужные фичи. Сами разработчики OpenJDK признают что их проект помойное легаси.
Вот к примеру GC для шарпа. Разобраться в этом поделии почти невозможно, нужен специальный отдел, который будет вопросами памяти заниматься и пилить один только GC.
>>2439955 >>2439296 Как минимум у Go в разы более примитивный GC, но при этом уровень перфоманса в разы больше чем у шарпа или джавы.
>>2439831 >Сейчас такие потребности, что приложуха стартует 4 часа с прогревом кэша и перезапускать по каждому пуку нельзя Как раз-таки все сейчас ровно наоборот - в эпоху микросервисов, cloud native и serverless нужен максимально быстрый старт. Ждать по 4 часа пока там прогреется что-то в здравом уме никто не станет.
>>2440078 >но при этом уровень перфоманса в разы больше чем у шарпа или джавы. И ты даже готов поставить анус? Ака принести бенч GC где говно рвет C# и Java?
>>2440078 Мальчик опять пересмотрел на ютубе инфоцыган и возомнил, что го быстрый. Нет, это жопа при своей нищете в возможностях фреймворков (и нищете кода) ппц как тормозит в сравнение с мастодонтами шарпом (и жабой с обрызганными фреймворками)
>>2440352 Проблема еще в том, что ASP это фрейм с полной поддержкой http от официального разработчика самой платформы, а у жабы или го в этом списке, либо неизвестная экзотика (там на жабе был фрейм который зависал при 404 ошибки и автор 3 месяца это фиксил, то есть перделку создали только для тестов), либо огрызки http протокола (олды помнят как гошники подкручивали создавая костыльный http фрейворки).
>>2440078 Жаба действительно некий кобол с легаси, который вывозят за счет адвокатов (ранее евангелистов) на зарплате.
> нужен специальный отдел, который будет вопросами памяти заниматься и пилить один только GC Если тебе трудно вернись в жопоскрипт, не мучайся. Я думаю, мягкие могут себе позволить отдел хороших С++ специалистов. Вот развивается ли жабье jvm, это вот реально отдельная тема.
>>2440364 >Вот развивается ли жабье jvm Туда спустя 5 лет наконец-то впилили виртуальные потоки, так что какое-то развитие есть. Уже этой осенью в JDK19.
>>2440352 >>2440356 В чем причина такого перфоманса у asp.net? Что там за магия низкоуровневая под капотом происходит?
>>2440414 >В чем причина такого перфоманса у asp.net? Что там за магия низкоуровневая под капотом происходит? Это просто обычная топ производительность, у многих решений плюс минус так же. Тут вопрос скорее, что с другими не так.
А так шарп/дотнет/asp постоянно оптимизируют (звучит как очередной маркетинговый трёп, но это действительно так).
>>2440838 Тебе про это и говорят. Но там много квази веб-серверов для тестов, особенно у жабы, там даже есть кустарный "v". А asp это реально продукт, который и в бизнес не стыдно взять.
Так же график показывает, что нет смысла страдать на С++ или Rust, управляемые языки не чуть не хуже (кроме жабы, хоть экзотика и показывает хорошие результаты и жаба очень быстра тоже, но там просто ужасная жирнющая энтерпрайз экосистема либ, за исключением только драйверов к бд)
>>2440867 В мире кобол-тырпрайза проще кластер серверов докупить, чем нанять (найти?) профессиональных программистов. В мире же малого бизнеса или инди-разрабов все это архиважно, особенно если все сам оплачиваешь.
Для меня мир жабы оказался миром перманентной фрустрации, на пхп в 2010 году больше задумывались над оптимизацией чем в жабе тогда и сейчас. Причем сама жаба и рантайм весь этот, довольно шустрый, работа с бд самая шустрая в неуправляемых языках, но вся это экосистема либ, это тотальный ужас.
В общем, я немного надеялся на котлин, что на нем начнут писать свое окружение, но пока я этого не ощутил. Котлин все еще пахнет жабой (если говорить про бэкенд).
>>2441791 >на пхп в 2010 году больше задумывались над оптимизацией чем в жабе тогда и сейчас
Все так и есть, на пхп пишут там, где бюджет ограничен, а значит просто взять и попросить пару десятков миллионов на новые сервера не выйдет. С жабой ситуация несколько другая. У банков и энтерпрайзов деньги бесконечные. А еще в энтерпрайзе редко где есть реально нагруженные места. Скорее всего на большинстве проектов максимум несколько тысяч запросов в сутки, это я про CRM/ERP говносистемы для каких-то там офисных работников хуй пойми где. И тут тоже в целом похуй на перфоманс, можно брать самый жирнющий блокирующийся спринг и ни о чем не думать.
Но тем не менее на собесах регулярно ебут всякими поколениями и регионами GC и какой-то совсем уж лоулевел многопоточкой с дрочкой Memory Model. Даже в тех случаях, когда на проекте вообще вся многопоточка глубоко под капотом спринга спрятана, а GC никто не тюнит.
>>2441835 Конечно не честно сравнивать асинхронный режим с блокирующим, но почему то именно в plantext нету spring webflux, наверное совсем там плохо. Да и ktor как-то печалит, а там же уже их корутины.
>>2442085 >Да и ktor как-то печалит, а там же уже их корутины. Хотя, скорее всего, драченный и точенный нетти оказался тормознутым тырпрайз говном, но это чисто мои мысли. Там в ktor не очень то и много фич, чтобы обосраться в перформансе.
Почему идешки от житбрейнс сходят с ума, если их запускать под чрутом? Открытие терминала/запуск любой build/run не отрабатывают, вместо них вылезает процесс который тупо в вечном цикле закрывает несуществующие хендлы.
>>2296882 (OP) Как в этом говне сохранить массив классов на диск? Я заебался гуглить!! Почему на с++ можно найти любую инфу за пару секунд, а под это говно вообще ничего нет?
>>2443072 Если скала такая годная дороботка джавы, почему она до сих пор не заменила её на беке? Хотя бы чтобы больше половина новых проектов на нём начинали...
>>2443381 Я хочу просто сделать кнопочки в андроед приложухе через компост, оказывается мне теперь ещё и жабу ебаную нужно учить. Нахуй вообще эти сойбойские языки если один хуй не пукнуть без Явы? Как же горит жопа, я хуею. Бог им дал c++, нет блядь хотим жрать говно, хотим учиться всю жизнь, хотим приложения по 10гб на телефон. Как же все это заебало.
>>2443383 > Нахуй вообще эти сойбойские языки если один хуй не пукнуть без Явы? Тупо ради более модного синтаксиса. > Как же горит жопа, я хуею. Бог им дал c++, нет блядь хотим жрать говно, хотим учиться всю жизнь, хотим приложения по 10гб на телефон. Как же все это заебало. Двачую.
Сап, Котлин. Подскажите, пожалуйста, как бы вы реализовали решение задачи. Есть дата класс с именем сотрудника, возрастом из которого создаётся коллекция. Нужно написать отдельную функцию, которая посчитает средний возраст, вторая функция посчитает минимальный возраст. В функциях нужно использовать цикл for. В курсе вроде понял, как работает for, но в задаче какая-то хуета.
Котлинисты-ведроисты, как найти первую работу? Я хуярю, хуярю, но не зовут на собес. На ХХ на весь ДС 300 вакансий (вычитай отсюда еще нерелевантные, где просто попадается слово Android или Kotlin). Как выжить сука?
>>2444798 Как видишь, дегер тут ты https://pl.kotl.in/r6eghezLB Шел уже хер знает какой год, а главный плэйграунд до сих пор глючит при редактировании.
Ты пишешь многолетний проект, тонна труда и исследования (и это бесценно). И какие гарантии взамен?? Если у мс тонна продуктов завязана на шарпе, даже совместно с С++ написана IDE , то что есть у котлина? Переписали ли они на котлин они свои продукты? Если нет, то почему? Почему я должен рисковать в своих инвестициях труда и времени, а они не нет? На кого это расчитанно? Они реально думали на фанбоях (которые всегда временны) поднять технологию?
>>2447429 >Если у мс тонна продуктов завязана на шарпе, даже совместно с С++ написана IDE И при этом вижла до сих пор не портирована на Linux и macOS.
>Переписали ли они на котлин они свои продукты? Если нет, то почему? Переписывать с нуля не костэффектив, новые вещи в IDEA пишутся на Котлине, Fleet пишется на Котлине, там где можно идет переход на Котлин.
>Они реально думали на фанбоях (которые всегда временны) поднять технологию? Основной язык разработки для Андроид это - Котлин. Это уже огромный пласт разработчиков. В Европе много стартапов выбирают Котлин как основной язык.
>>2447678 >новые вещи в IDEA пишутся на Котлине Пруфы? Они сами говорили что основная масса там на джаве и не особо разработчики хотят видить котлин.
>И при этом вижла до сих пор не портирована на Linux и macOS. А почему она должна быть на линуксе и макоси? Сам факт что они переписали львиную долю на шарп дает гарантии. Это не просто какая-то пробная свистелка, это один из основных продуктов. То есть, они сами не переписывают на свой язык, а бизнес должен рисковать?
>Основной язык разработки для Андроид это - Котлин И что? Там гугл новую ось пишет без вирт машины жабы. Где будет твой котлин потом? Написали прокси язык для гугла и гугл как бы и не против, но это не его язык.
>>2447678 >В Европе много стартапов выбирают Котлин как основной язык. Вообще перестал о нем слышать последнее время, или ты про андроид? 10 раз подумаю, перед тем чтобы взять в микросервисы жаба-легаси. Так и вижу стартапы на спринге, лол.
>>2447740 > И что? Там гугл новую ось пишет без вирт машины жабы И когда это произойдёт? Я уже успел за это время поступить в вуз, закончить, вкатиться в работу и стать миддлом. А потом ещё и будут 15 лет переписывать всё, что написано под андроид.
>>2447678 > И при этом вижла до сих пор не портирована на Linux и macOS. Так там основной тормоз прогресса не на шарпе, а на плюсах. Вижлу не то что на линукс - даже на 64 bit портировать не могут.
>>2447802 > В любой момент. Старая песня > Твои все знания обнулятся. Ни одна технология мгновенно не умирает. За те 15 лет можно стать профи в любой области.
>>2447762 Вроде сделали 64 битную, не пишу на ней, тут идея в том что они топ продукт переписали, а джетбрейнсы с их полным интеропом - нет, что создает нехорошие впечатления.
Если продуктовая компания создает ЯП совместимый со своим основным и не переписывают под свой язык, зачем я буду тогда его брать, я что бесплатный бета-тестер?
>>2447740 >Пруфы? Я с ними общался по поводу вакансии разработчика Fleet, говорили что новые вещи стараются писать на Котлине. Без фанатизма конечно, все выбрасывать и переписывать никто не станет, но если есть новый изолированный функционал - он пишется на Котлине.
>А почему она должна быть на линуксе и макоси? Ну Шарп же заявлен как кроссплатформенный, почему бы вместо того недоразумения что сейчас предлагается как вижла под макось, не портировать полноценную вижлу?
>И что? Там гугл новую ось пишет без вирт машины жабы. Где будет твой котлин потом? Это все домыслы, что конкретно планирует и что получится - никто пока не знает. Гугл много чего пишет и потом бросает. У Гугла есть Дарт и когда-то планировалось что хром напрямую будет его исполнять и весь веб будет на нем. Но не взлетело, в вебе все забили на Дарт и юзают ТайпСкрипт. Теперь его пропихивают в связке с Флюттером и той самой Фукусией. А в случае с Андроидом все еще хуже, там есть: 1. ОГРОМНОЕ количество существующих приложений и библиотек. 2. Большое количество сторонних вендорово которые выпускают девайсы и разрабатывают под них прошивки, магазины приложений и т.п. и эту огромную инерцию придется преодолевать Гуглу чтобы все перешли на новую ось. Да нахер им это надо.
>>2447747 >Вообще перестал о нем слышать последнее время, или ты про андроид? Нет, про бекенд. Zalando, Trade Republic, Personio, N26, Spotify, Revolut - юзают Котлин на беке.
>>2448084 >Мне сказали по секрету. Ясно, так и поверил, лол.
>Ну Шарп же заявлен как кроссплатформенный Потому что там на Windows.Forms. Это надо портировать целую гуи платформу, никто не будет за бесплатно портировать продукт где его не купят, а для всего остального есть vs code. Шарп действительно кроссплатформенный, иди и пиши свою гуйку для 1,5 программиста для линукса (но все написано за нас, есть авалония). Линукс это серверная ось, чтобы сидеть там как в десктопе, надо иметь пристрастия к мазахизму.
>Это все домыслы Котлин не язык гугла, ему насрать. Сделали им язык, молодцы, но спасать его они не обязаны, у них есть свой дарт, который уже обгоняет котлин.
>ОГРОМНОЕ количество существующих приложений и библиотек. Именно поэтому так долго и готовиться замена.
>>2448084 >Нет, про бекенд. Zalando, Trade Republic, Personio, N26, Spotify, Revolut - юзают Котлин на беке. Ноунеймы юзают ноунейм язык. А вообще загуглил Spotify и увидел что там только андроид. Где-то ты нас пытаешься обмануть.
>>2448702 >Ясно, так и поверил, лол. Да мне пох веришь или нет.
>Потому что там на Windows.Forms. C# кроссплатформенный язык.
под кроссплатформенностью понимается возможность запусть Hello World приложение на всех поддерживаемых платформах.
>Котлин не язык гугла, ему насрать. Сделали им язык, молодцы, но спасать его они не обязаны, у них есть свой дарт, который уже обгоняет котлин. Опять твои фантазии про "спасать". Есть язык, Гугл в него прилично вложился: сделал поддержку в Андроид Студии, написал примеры кода и прочей документации. Куча команд перешла на него. И тут они бросят успешный проект, потому что так на двачах сказали. Уж скорее Котлин нейтив допилят чтобы от ART лет через 10 избавиться.
>Именно поэтому так долго и готовиться замена. 1. Ты опять выдаешь свои фантазии за планы Гугла. 2. Можно подготовить гугловые сервисы и приложения к миграции, но это никак не может решить проблему с миграцией сторонних приложений и библиотек. 3. Кто сказал что разработчики китайских телефонов захотят мигрировать свои прошивки? В конце концов исходники Андроида открыты - форкай и развивай сам. ib4: в Китае гугловые сервисы нахуй не уперлись, стимулов переписывать все нет.
>>2448705 >Ноунеймы юзают ноунейм язык. Да, в Барнауле эти компании не представлены, но в Германии это одни из самых топовых. Zalando - №1 по продаже вещей в инторнете. Trade Republic - самый крупный брокер для непрофессионалов Personio - крупный автоматизатор HR N26, Revolut - одни из самых крупных европейских необанков пояснение для барнаульцев аналог Тинкофф
>А вообще загуглил Spotify и увидел что там только андроид. Где-то ты нас пытаешься обмануть. Я там работал. Котлин не сильно распространен, но пилот внедрения идет, в основном из-за корутин.
>>2449754 >Да мне пох веришь или нет. Тогда зачем этот наивняк пишешь?
>C# кроссплатформенный язык. Да. Прикинь у кроссплатформенных языков есть не кроссплатформенные либы. У меня где-то на петухоне пару штук таких.
>под кроссплатформенностью понимается возможность запусть Hello World приложение на всех поддерживаемых платформах. Какая наивная глупость и этот чел нам рассказывал как с разбработчиками ИДЕИ разговаривал. Да, дотнет может не только хеллоу ворд на топ платформах.
>Я там работал. Ты устойчиво создаешь образ малолетки, который пытается самоутвердится за счет лжи.
>>2448852 Чел про нетбинс упоминает, говорит что он в разы хуже дотнета что за хуйня?, про с++/cli говорит, советует учить вижуал бейсик. Причем видео снято после 2017 года походу, так как про студию 2017 он тоже упоминает, лол. Еще оказывается дотнет в индии платный был, а в США бесплатный, лул. Как будто бы visual studio express (а позже vs community) никогда не существовало.
В общем реально какой-то толстый троллинг тупостью и наброс говна.
>>2448966 >джава стухла бы еще тогда Нет, потому что альтернатив для энтерпрайз бекенда под линуксом тогда не было, да и сейчас стало не сильно больше если честно.
Кроссплатформенных формочек winforms тех же на линуксе никогда не будет, это факт. Просто потому что winforms это обертка над winapi и не более.
>>2447740 >Там гугл новую ось пишет без вирт машины жабы. Где будет твой котлин потом? Я думаю от андроида никуда не уйдут еще очень очень долго. Каких--то внятных преимуществ у фуксии по сравнению с андроидом нет, какие были у андроида и ios перед симбианом. Ну и котлин не одним андроидом ограничен, бекенд на нем вполне себе пишут.
>>2449836 >чел нам рассказывал как с разбработчиками ИДЕИ разговаривал Ну с тагиром валеевым можно в джава чате поговорить просто так, да и в jb очень много челов из РФ работает, у меня самого было 2 знакомых из спбгу, которых взяли туда на стажировку. Один в команду идеи, второй в команду райдера. Тот, что идеей занимался, остался у них в штате и сейчас где-то в германии живет.
>>2449986 А что тут за кухня? То, что в jb много чего пишется на котлине, уже давно известный факт. Все знакомые, кто там работал, в первую очередь уже на котлине писали, и в меньшей степени на жабе.
>>2449985 Все еще нет каких-либо киллер фич по сравнению с жабой. Я вот не вижу ни одной причины по которой я должен сменить свой java/kotlin + spring + hibernate стек на .NET. Все фишки не более чем синтаксический сахар, хоть и очень прикольные.
Реальная тема была в Go, где тебе и компиляция в бинарник без каких-либо зависисмостей от libc, быстрая компиляция, быстрое время старта, легковесные виртуальные треды с каналами, отсутствие перегруженного ООП. Вот это можно назвать какими-то изменениями. Шарп, увы, навсегда останется Microsoft Java с тяжелым рантаймом, пусть туда хоть тысяч синтаксических фишек напихают.
>Я вот не вижу ни одной причины по которой я должен сменить свой java/kotlin + spring + hibernate стек на .NET. Говноед, смотри пикрил.
>компиляция в бинарник Шарп может линковаться в один файл, может юзать AOT-компиляцию, имеет честный хот-релоад, имеет настоящие дженерики итд. Ты говноед, который жрет допотопную жабу и ничего другого не видит. Если жаба зависла на месте, а котлин навернул только сахарку, то дотнет реально все эти года развивался.
>>2450017 >Говноед >Ты говноед Говно жру я, но бобмит у тебя. Не находишь странным такое совпадение?
>>2450017 >смотри пикрил Вижу, что aspcore пукает 200 быстрее, чем спринг. Больше не вижу ничего. Опять же, если бы мне нужно было очень часто отправлять 200, то я бы взял какой-нибудь drogon, или что там сейчас на вершине рейтинга находится. Но у меня задачи другие, за пердеж плейнтекстом мне никто не платит. Ты с этими рейтингами носишься по всей борде больше года в тредах джавы, котлина, го и раста, что ты пытаешься этим доказать?
>>2450017 >AOT-компиляцию, имеет честный хот-релоад, имеет настоящие дженерики итд Ну и где здесь киллер фичи? Жабу можно тоже в бинарник запаковать так-то, graalvm сейчас активно пилят, дальше то что? В Го новые фичи были, те же виртуальные треды с малым оверхедом и удобными каналами. Ты же просто приводишь как пример то, что есть во многих других технологиях. По итогу у тебя так или иначе будет жирная CLR запускаться.
>>2449836 >Да. Прикинь у кроссплатформенных языков есть не кроссплатформенные либы. Есть либы, а есть .NET Framework и внезапно WinForms это часть этого самого Framework. Т.е. майки с самого начали пиздели про потенциальную кроссплатформенность, но в лучших традициях продолжали клепать код намертво прибитый к винде.
>Какая наивная глупость и этот чел нам рассказывал как с разбработчиками ИДЕИ разговаривал. >Ты устойчиво создаешь образ малолетки, который пытается самоутвердится за счет лжи. Не проецируй, если тебя никуда кроме Рога и Копыта не звали, это не значит что все такие лузеры как ты.
>>2450550 Лол, говорил что был на собесе и с ними общался, а теперь оффер что работает. Нефига ты сказочник, определись уже. >Я с ними общался по поводу вакансии разработчика Fleet
>>2450008 >где тебе и компиляция в бинарник Поражаюсь уровнем деградации зумеров. В чем вообще фича компиляции в бинарник, типа ты руками деплоешь на сервак или что? Откуда была эта радость, в чем отличие от одного jar-ника или dll? Такое ощущение что пришли с питона или пхп и в противовес увидели что надо все лишь один файл залить на сервак и ходили этим восхищались (да, дотнет тоже может, причем сразу вирт машину засунуть всю в файл, но кому это нужно когда дотнет на линукса ставиться apt install dotnet6)
>>2450066 >graalvm сейчас активно пилят Его еще пилили когда я на жабе писал, сколько уже лет, не протух он?
>В Го новые фичи были Асинхронного программирование в дотнете было еще до твоего го. Но в отличие от твоего говна ты не можешь никак (кроме костыли) управлять системными потоками, а оказалось это нужно. В котлине вообще хер поймешь с этими корутинами, еще специально под IDE заточили синтаксис.
>По итогу у тебя так или иначе будет жирная CLR запускаться. Только в бомжатской джаве, шарп можно скомпилировать под определенную платформу со всеми зависимости. Рантайм будет жирнее намного, но и го это кусок огрызка на котором кроме круд-микросервисов больно что-то писать (если ты не отбитый фанбой).
Вот тут хорошая демонстрация новой горячей перезагрузки. Сначала показывают как было в дотнете5 потом новый из дотнета6. Англ знать не обязательно, там все и так понятно по номеру процесса. https://www.youtube.com/watch?v=4S3vPzawnoQ
Для пиления любой визуалки (веба, мобилки, десктопа, игр) - офигенная штука.
>>2450658 >жабист думает, те костыли, которые надо сделать чтобы ограниченный кусок говна перегрузился и все это не посыпалось портянкой эксепшенов - это и есть настоящий hot reload.
>>2450658 На жабе горячая перезагрузка это как на пхп разработка десктоп приложений. Вроде возможность есть, но ну его нахрен. На котлине, как помню, вообще после 8 версии непонятно как работает, да еще и через костыль-службу гредла (который сам по себе большой костыль, лол).
>>2450645 >Лол, говорил что был на собесе и с ними общался, а теперь оффер что работает. Нефига ты сказочник, определись уже. >Фоткает мерч с какой-то конфы, ппц ты жалкий. Ты очень тупой и очень упрямый. Был бы не таким упрямым давно бросил бы докапываться по мелочам, если по сути сказать нечего. Был бы умнее давно понял бы что обосрался и лучше промолчать благо мы на анонимной борде.
>>2450649 >Но в отличие от твоего говна ты не можешь никак (кроме костыли) управлять системными потоками
Мьютексы, кондвары, барьеры и семафоры и в жабе, и в шарпе есть. В жабе есть все для управления потоками. Вся беда с асинхронностью, потому что completablefuture хоть и решают проблему callback hell, но все равно не так удобны как синтаксический сахар async-await. Впрочем в жабе решили переключить внимание на виртуальные треды, чтобы вообще не париться по поводу того, что блокируется, а что нет.
>>2450649 >В котлине вообще хер поймешь с этими корутинами Там по итогу механизм под капотом не слишком сильно от async-await отличается, тот же конечный автомат по факту.
>>2450652 Насколько такая фича работоспособна в каком-нибудь фреймворке, который под капотом создает у себя некоторые сущности, хранит их где-то как ключи в хешмапах, итд? По идее может все разом развалиться, пусть даже этот самый хотрелоад на лету подтягивает изменения.
>>2451619 Программный код видит все сущности, это ты думаешь что "спрятал" их. Хотрелоад нужен больше когда работаешь с визуалом (сайт(обычный или вебассембли), мобилку рисуешь, гуи, графику, игру). https://www.youtube.com/watch?v=uBdINGe1aj0&t=194s
>>2453350 Это жава. Конкретно перехват класса отрисовываемого гуи майнкрафта через ивенты форжа и его обертка в другой класс, который оверрайдит метод отрисовки фона и подсвечивает клетки инвентаря с предметами. А на видео уже показана горячая замена числовых констант с цветом на возвращаемые значения метода только что созданного объекта, читаемого из только что созданного поля класса обертки, с только что созданным типом иннер класса перехватчика. И это все в одном инстансе класса обертки гуи.
>>2453798 Это костыль, как я уже говорил он крашит, но хер бы с ним, ты же не поверишь мне, поэтому главное не в этом, так как это кустарная перделка, она никогда не будет поддерживать последнюю версию, на моей памяти она работала только с восьмеркой. С ко-котлином непонятно будет ли вообще работать.
В общем, это чисто показать что что-то есть, но оно нафиг такое нужно (как и разработка десктопа на пхп), обычно носятся инфоцыгани, а тот кто юзал, обычно молчат.
Жаба старейшие говно, его даже кустарные перделки не вывозят.
Насчет хот релоада пожалуй соглашусь с шарпошизиком, MS всегда была на шаг впереди в этом плане, даже для С++ у них есть поддержка хот релоада в дебаггере, в то время как в обычном CLion/gdb я такой фичи не заметил. Про хот релоад в жабе я как-то и не задумывался никогда особо, и похоже что этой фичей никто не пользуется почти что ибо кроме как в дебаге на ходу править код оно никаких удобств не приносит.
>>2453860 Где краш на видео? Для версий выше 11 есть OpenJDK форк от JetBrains. Молчат, потому что все, кому это нужно, уже давно пользуются и тут не о чем говорить. Это в сиське в приемлемом виде только ввели, поэтому из каждого утюга орут.
>>2453868 А какие тебе удобства нужны? Это инструмент чисто для разработки.
>>2453894 >А какие тебе удобства нужны Ну вообще хотелось бы чтобы прямо в обычной стандартной обыкновенной openjdk hotspot jvm была возможность фулл хотрелоада с интеграцией в idea. В студии это получше сделано, она сама предлагает тебе зарелоадить код если ты его изменил. В идее же нужно лезть куда-то там в меню run -> debugging actions. Но в общем и целом фича мне почти никогда не пригождалась, так что хз.
>>2453901 В стандартной jvm хватает и изменения метода - все остальное нужно для еще большего удобства, когда у тебя тяжелое приложение, которое достаточно долго и муторно перезапускать. Так это проблема идеи. В эклипсе, например, достаточно ctrl+s нажать.
>>2453894 >Где краш на видео? Не показал же. >Для версий выше 11 Нужен костыль, один костыль меняешь на другой. >А какие тебе удобства нужны? Это инструмент чисто для разработки. Дно, которое, естественно, не пользуется хотреолпдом даже не понимает преимущество и несет какие-то свои предположения для чего это нужно.
>>2453901 Редко встретишь в жаба мире адеквата, который может признать что хотелось бы лучше. И только фанбои пытаются натянуть костыли на реальность.
>>2454572 >Не показал же. Как я могу показать то, чего нет? Замена успешно сработала и это видно на видео.
>Нужен костыль, один костыль меняешь на другой. По такой логике любая сторонняя либа - костыль.
>Дно, которое, естественно, не пользуется хотреолпдом даже не понимает преимущество и несет какие-то свои предположения для чего это нужно. Ну раз ты пользуешься, то объясни мне, непонимающему, преимущества и назови пару реальных случаев из своей практики.
А потом поддерживай сотню различных версий и сиди черипикай изменения, а то и вовсе переписывай фиксы под каждую версию, потому что кодовая база уже разъехалось. Все что можно сделать через браузер, нужно делать через браузер.
>>2454736 Ты мне скажи, зачем ты ходишь по всем тредам и вступаешь со всеми полемику? Судя по характеру ответов, не думаю что ты вообще имеешь отношение к профессии программиста. Ты типа очередной вкатун, который не смог? Или просто тебе очень скучно живется и ты готов с каждым сраться просто так? У тебя настолько ничтожная жизнь?
Как вы пишете только эти корутины с оглядкой на то куда полетит и где будет поймано исключение (и не дай бог перехватывать CancellationException) Это же дичь какая то - верхний/не верхний уровень в разных скоупах разное поведение.
Как писать чтобы "сегодня исключение летит сюда, а завтра код добавили и уже не пробрасывается"?
>>2463986 ну так я и спрашиваю. я прочитал это https://habr.com/ru/post/664444/ и там какая то непонятная жуть - то исключение полетит так, если async верхнего, а если не верхнего то этак. Что за дичь??? А если сегодня он такой, а завтра кода добавили и оно стало другим и что будет то
Конечно сейчас отвечу на старый пост, но просто уже бомбит от таких мифов
>>2302372 > Го - идеальная штука для микросервисов, но писать больше чем crud, когда ты кодил на чем-то нормальном, вызывает тот еще зуд. Фулл тайм пишу на го, кодовая база уже почти миллион строк составляет, полёт нормальный. Просто нужно нормально дизайнить код и больших отличий от разработки на джаве не будет.
А если вам говорят, что <языкнейм> "хорош для микросервисов", то смело плюйте ему в лицо, потому что 1 Никто не знает, что такое микросервисы, чёткого определения нет, все понимают по-своему 2 Если микросервисы - это что-то небольшое, то вам подойдёт любой язык, просто потому, что проблемы всегда проявляются в сложных случаях, а простые небольшие задачи эффективно решаются любым современным инструментом
Далее.
Чем го лучше джавы и иже с ним? 1 Он очень эффетивен с точки зрения рантайма и гц 2 Многопоточность и ассинхронщина сразу и под капотом 3 Удачная утиная типизация и композиция вместо наследования реально удобнее 4 Из-за того, что идиоматика языка другая, на го не принято писать гигантские фреймворки, вместо этого используется unix-way, много мелких библиотек, из которых ты сам собираешь себе решение. В итоге проект не жирный, без магии и делающий ровно то, что тебе нужно. Никаких логгеров с ВНЕЗАПНО интерпретацией выражений под капотом ты не встретишь.
Чем го хуже джавы/котлина? 1 Язык довольно беден хотя дженерики уже зарелизили, стало сильно лучше 2 Не хватает безопасности в виде нормальной nullability, постоянно приходится полагаться на то, что тебе никто вместо интерфейса не передаст nil, что конечно фу 3 ГЦ и рантайм практически не тюнятся 4 В мире го куча сишников, которые тянут свои мерзкие байтоёбские практики туда, куда их не просят. А код у них говно. 5 Так как подход го не подразумевает фреймворков, точнее, ты собираешь себе его сам, то требования к скиллу разработчиков на го выше, чем в джаве! Если кто будет говорить, что го - отличный язык для вката или новичков или для перехода на него без опыта, опять же, плюйте ему в лицо, это откровенный миф и пиздёж.
Субъективно, у го был хороший старт и в отличие от других языков, заметен рост его популярности и востребованности, при этом в своём развитии он реально закрывает свои слабые стороны, те же дженерики впилил. Так что есть надежда, что самые большие вопросы к языку у большинства разработчиков снимутся и из го получится уже совсем полноценная замена джавы.
>>2464365 >Фулл тайм пишу на го, Жопочтец. Тебе и не говорили что нельзя, тебе сказали что не очень эффективно это в сравнение с другими языками. Даже в сравнение топорной отсталой жабой. Если ты этого сейчас не видишь, то просто у тебя еще ограниченный опыт, со временем поймешь.
>>2464365 >Никто не знает, что такое микросервисы Что за бред с ютуба? Микросервис это юнит-задача. ВСЕ!, этакий unix-way подход, но в рамках приложения.
Микросервисы не значит маленькие, они вообще к размеру не имеют отношения (только у ньюфагов на слух). У нас микросервис на ~80гб оперативки, но он по прежнему является одним юнитом, исполняет одну свою роль.
>>2302372 Хуету спизданул, шарпошизик, как оказалось блазор и мауи просто были пиздежом не по делу. По факту жаба все еще жива, но ее кое-как пытаются заменять на котлин. А го наоборот только стал популярнее, так как позволяет писать код без магии жирных фреймворков.
>>2464365 >много мелких библиотек, из которых ты сам собираешь себе решение Часто натыкаюсь на гошные либы, где последний коммит был в 2019-2020, то есть они по факту заброшены давно. Что с таким делать? Вот была у вас небольшая либа, а потом ее просто дропнули. Какие подводные?
>>2466110 >блазор Тот вариант который с вебассемблер годнота и уже понятно что выстрелило (если варишься в этом). И я рад что такую технологию пилят не ноунеймы на гитхламе.
>так как позволяет писать код без магии жирных фреймворков. Жирные фреймворки там больно писать, а то что без магии это звездеж додиков с ютуба, кодогенарация порой страшнее чем рефлексия.
>По факту жаба все еще жива Сам даже акцент на этом ставишь. Кобол тоже жив и кода там дофига еще.
>>2466276 Не используй такие. Как правило под любую +- распостраненную задачу есть несколько живых библиотек на выбор. И даже если какая-то из них умирает, кто-то просто делает форк и продолжает поддержку. И да, если либы маленькие и особенно если ты прячешь их за интерфейсами, хотя бы просто по месту применения, то как раз заменить одну либу на другую не составит труда. А когда у тебя один монофрейморк на всё, то заменить один его компонент на другой или обновить мажорную версию - это всегда адский гемор.
>>2466634 Ппц у тебя влажные представления о кодинге. На практике хер что к чему подходит, даже когда люди пытаются какой-то стандарт придумать, а тут у тебя интерфейсы у 100500 либ сошлись.
>>2466761 У меня на сто процентов реальные представления о кодинге. Никто не говорит о совпадении интерфейсов, просто если не закладываться на конкретные типы, то к новой либе всегда можно херануть адаптер, который бы соответствовал существующему интерфейсу и замаскировал бы изменение, собственно, интерфейсов библиотеки.
>>2466796 Ну вот и пошли у нас адаптеры к сотне мелких тулзовин от разных авторов. А так как нет наследования, будешь ручками каждый окучивать и в этоге получиться у тебя монолит франкенштейн. https://www.youtube.com/watch?v=HEM7kLmK0t8
>>2466799 Ты дурачок что ли? Или на го никогда не программировал? Во первых, тулзовин не сотни. Во вторых, наследование не особо помогает. В третьих, никаких франкенштейнов не получается, заменить concreteClient на abstractClient прям по месту проблем вообще никаких не вызывает. В четвертых, это даже не везде нужно, поскольку тулзы маленькие, то заменять их нормально и без интерфейсов, с интерфейсами просто зачастую удобнее. Короче, не пизди о том, чего не знаешь.
>>2452331 Так маня выше же действительно скинула пруфы в виде html'ки и фото мерча, лол. Может, долбоеб реально думает, что никто не знает, как править html'ку за две секунды и как легко набирается мерч на конфах, и что это все железобетонные пруфы. Довольно потешно выглядит, особенно с этой подорванной сракой и рвением доказать кому-то что-то на харкаче. Собственно, типичный ваннаби-вкатотусик, ору.
>>2467180 >Потому что ты джве недели срал своим котлиным у нас в шарпотреде. это был не он, а я только есть нюанс - я критиковал шарп (на что имею полное право, ведь шарп мой основной язык), просто приводя в пример аналогично в котлине (для понимания альтернативного подхода и пользы от этого)
К котлину у меня не меньше критики, но 80% времени я шарпист - а 18 питонист
>>2467180 Я оп треда, на шарпе уже пару лет, бывший жабист самого ужасного легаси, так же потыкал палкой в го пока был хайп. Это я тот хер, который рассказывает что выкинули го, когда они самовольно поменяли сборку мусора, просто забили болт на оптимизацию и разработку нормального ГЦ, они взяли и разменяли остановки на проц, от чего мы охерели (так что пропретарный отладчик на шарпах это цветочки, когда тебе завозят +10-30% просадки производительности).
Я все ждал что котлин начнут активно натягивать на бэкенд, но авторы, вероятно, посчитали что лучше потратиться на "котлин адвоката", чем на инфраструктуру котлина. (ну а че, у жабы же получалось столько лет жить только на искусственном хайпе, выбрали этот путь)
Ну вот. Очередная статья на хабре, как с исключениями в котлине все просто и даже последний даун не сделает ошибки (сарказм) https://habr.com/ru/post/689256/
>>2468039 Забавно, что статья не про мобилки совсем, но в тегах сплошной андроид. Видимо, никто и не думает о котлине иначе, чем как о языке для андроида.
>>2468039 Аффтар специально пишет говнокод, а потом героически преодолевает сложности. Хочешь прозрачную обработку ошибок - пиши suspend fun и catch будет работать как ожидается. Запускаешь новую корутину - ебись с CoroutineExceptionHandler.
>>2468564 >А если нужно 2+ параллельно запускать? А тогда как должен работать catch блок? Что должно быть если одна успешно завершилась, а вторая сфейлилась, или первая сразу сфейлилась, а вторая даже не успела запустится, или обе сфейлились. Очень неопределенное поведение получается, лучше явно регистрировать CoroutineExceptionHandler.
>>2468732 >Так без запуска не будет параллелиться же?? Одну корутину нельзя распаралелить, а suspend функция и так может быть остановлена и выполнена позже. Т.е. в случае с одной функцией, с т.з. распаралеливания, разницы между запуском корутины и suspend функции нет. А если 2 и больше тогда да, но там есть проблемы, смотри выше.
>>2472107 Все это полумеры, представь себе огромное полностью фулл-асинхронное программирование. Без нормально обработки ошибок, это все выглядит как полумеры. Как вариант надо будет ловить внутри и ручками пробрасывать через кортежи (их вроде в котлине нет, тогда через подобие резалт-типов, давно не кодил на котлине)
>>2296882 (OP) Котлин - язык для андроида, и все. Больше он нигде не прижился и не приживется. Язык для андроида, потому что так сказал гугол. А еще гугол недавно говорил, что игровой облачный сервис Stadia это круто, молодежно, надолго, что это за слухи такие, он не закроется, твердо и четко. И теперь его закрывают. С котлином ситуация плачевная: разрабатывают его не гуглы, а мелкокомпания, которой гугл может сказать "все, идите нахуй, вы теперь не язык ведроида, мы просто вас использовали как промежуточный вариант, откисайте", тут и фуксия на подходе. https://killedbygoogle.com
>>2479419 у стадии есть альтернативы и получше... с нулевым порогом входа.
А изучить яп это не в игрушки играть. Во первых протолкнуть свою ось убунту уже пыталась и никому не нужно оказалось без приложений. Либо фуксия будет поддерживать приложения из маркета (а значит и язык на котором оно написано ибо ради 0.0!% девайсов никто не будет изучать новый язык вида дарт или свифт - не говоря уже про убогость данных языков), либо умрет как стадия.
То есть гугл может сказать "все, идите нахуй"...и сам туда пойдет
Так что никуда котлин не денется. Язык то неплохой, но вот рантайм...говнище адовое.
>>2479572 Как только гугл обкашляет все вопросы с ораклом, вернется обратно старая добрая джава. Учитывая, что там добавили виртуальные треды, то смысла в котлине больше нет
>>2479583 да как бы жава никуда не уходила. рантайм то один. Просто на котлине сильно удобнее, вот народ и сваливает с жавы. И виртуальные треды погоды не сделают. Это небо и земля.
>>2479596 сове больно. Это график показывает рост типа популярности. Но он не отражает суть. А суть в том, что в котлин идут жависты (потому что все в мире лучше жавы) и тут профит перехода очевиден А в дарт вообще левые люди, то есть линия дарта к миграции жавострадальцев никак не относится.
А вот с котлина валить на другой язык намного сложнее - ведь котлин не говно как жава. Фичастостью и удобством тут уже не взять (тем более убогому дарту), а "ради 0.01% пользователей" нах надо.
>>2479585 Судя по последним вскрикам с исключениями, корутины еще не очень удобны (и понятны) для фулл-асинхронного кодинга. Если у жабы там с этим все намного лучше, то котлин реально всосал.
А пока жаба трахает гадюку, у шарпа завезли (NET 7) AOT с двукратным приростом производительности и экономии по памяти. Я еще помню котлин пытался в godot, но в 4 версию там завезли официальную поддержку NET 6, а котлин там мимокроком на тухлом комьюнити. Так что разработки игр на котлине не светит так же.
Гуглу котлин вообще "бесплатно" достался, так как флаттер онли на дарте, то мало верю в будущее котлина в гостях у гугла.
>>2479583 > Учитывая, что там добавили виртуальные треды, то смысла в котлине больше нет Ещё ж не добавили
Как там кстати kotlin native поживает? Я просто не представляю, как они свой рантайм напишут хотя бы сравнимый с джавовым по производительности и фичам, при том, сколько денег и времени уже вбухано в jvm
>>2479652 Так в самой фуксии тоже полно раста, у тебя логика потекла куда-то, маня.
>>2479583 Расскажешь всем юзерам восьмой джавы, например андроидерам.
>>2479825 Нормально поживает, просто область узкая.
> Я просто не представляю, как они свой рантайм напишут хотя бы сравнимый с джавовым А там такой цели и нет, по факту нэйтив пилится под KMM (ибо единственная область, где котлин реально выстрелил) — т.е. для того, чтобы шарить код с логикой между приложульками на мобилках. А какая логика на мобилках — сам понимаешь, всем похуй как медленно оно будет работать.
>>2479655 > Если у жабы там с этим все намного лучше, то котлин реально всосал. Нет, там вообще прошлый век, ни намёка на асинхронность, всё дедовские тредпулы, куда кладёшь коллбек с таской и идёшь дальше. Только что завезли виртуальные треды, которые как горутины из Go, но пока превью и в проде не обкатано.
>>2479655 >корутины еще не очень удобны (и понятны) для фулл-асинхронного кодинга ну в итоге я разобрался. так то редко нужно делать параллельные вещи, а не просто асинхронные и там менее удобно это но скоупы это удобство для flow и в общем то все делаю через flow
>>2480463 именно так. задачи, где нужно ловко манипулировать потоками, очередями и т.д. просто нет - все упирается в банальное "сходи асинхронно в сеть/базу данных" Вот если писать либы, то там может быть, а в прикладом программировании увы формошлепство.
>>2480523 Конкретно асинхронность такого типа больше нигде нахуй и не нужна, самый сложный кейс для неё — это сервер обрабатывающий ебучие соеденения, лул.
>>2480810 Я как столкнусь с реальным "коммьюнити", так начинаю охуевать от количества дегенератов. Как на программач не зайду, так тут истории истории одна охуительнее другой обсуждаются . Полезно всё-таки иногда выходить из своего "сеньор-помидорского" пузыря.
Уже и асинк им не нужен =/
Как раз недавно я дико рофлил с треда https://twitter.com/nikitonsky/status/1576286043774468096 > > Что бы вы делали, если у вас был компьютер с 10 ядрами, а ваш язык программирования мог использовать максимум одно? > запущу 10 процессов параллельно
Ладно убежденные пехапешники, с ними-то всё понятно как раз, долбоебы, но джависты-то куда поехали кукухой?
>>2522202 Мягкие там еще не загибают вас? Я думаю после того как выкинули линупс с кроссплатформенной гуишки, надо было срочно перечитать EEE и выкинуть на помойку сие говно.
>>2524463 Можешь и дальше себе успокаивать. Они же по фану ресы в мауи вкладывают, так от делать нечего, ой и линупс тут ненужон. Иди читай ЕЕЕ, прав был тот анон, который предупреждал про попенсорсный кор. Чем глубже ты себе сейчас это поделие в задницу вставляешь, тем сложнее будет потом вытащить, а звоночки уже пошли.
Чюваки. У меня тут нужно кафку прикручивать, а у нас все наколбасено на корутинах. Есть ли какой-то true-подход к этому?
Я почитал про кафка стримы, типа это удобная надстройка над чуть более низкоуровневым апи. Но там апишка как будто полностью блокирующая, т.е. лямбды возвращают сам результат а не какую нибудь Future. Получается их мне юзать не стоит?
>>2574423 >Го Бойлерплейтный хайп, который так и остался на дне индустрии, вроде даже начали заливать, что-то из нормального мира программирования, типа дженериков и пакетного менеджера, но поверх хренового дизайна, ты навернешь только еще большего говна. Писать миллионы строк на бесконечных бойлерплейтах, способен только самый одаренный.
>Джава Тухлая говнина, обмазанная еще более протухшим тырпрайзным хламом, который жрет ресурсы кластерами, а делает ровно столько же, что программист на пхп написал за неделю. и я почти не шучу, это звездец
>Котлин Котлин пахнет джавой, кривой дизайн некоторых решений, скажем в корутинах (и еще чем-то, что я забыл), ставит вообще болт на языке. Вывозит пока за счет мобилок.
>JS Костыль живущий только за счет монополии, быстро сдохнет если в вебассембле станут завозить графические движки и html станет вдруг ненужон.
>C# Неожиданно неплохой язык, от компании, которая все не угомониться и начала страдать своим EEE, не дав языку подняться, когда был реальный шанс выстрелить в попенсорсе. Жадность и слабоумие, девиз языка. И даже каким-то хером скрипты на шарпе в юнити (что само по себе лол), не смогут вытащить этот язык.
Могу продолжить обоссывать любо язык, ибо все они реально кустарное говно. И вытянет нас только ИИшка.
>>2579183 >Vale С появлением LLVM только ленивый не высрал свой язык.
Когда реальный язык требует дохилиард вложенных ресурсов (особенно времени) не только в синтаксис и дизайн, но и инфраструктуру, это говно будет тухнуть на дне гитхаба, как тухнут все другие кустарные перделки, тратить даже внимание на это не стоит.
Отдельное одаренность, это назвать язык программирования, когда существует реально разговорный язык с таким именем
Почему не C#
На самом деле дотнет и шарп великолепная альтернатива java/kotlin миру, но если поскрести, то мы увидим дешевый маркетинг и снова плохую игру в EEE (гуглите что это).
Если с вебом все хорошо (если вас устраивает ASP.NET и Blazor), то с остальным окружением как-то сомнительно.
Мобильная разработка - местами костыливарение. Это не проблема шарпа, это проблема написания универсальных кроссплатформенных решений.
Игры/Юнити - на самом деле там свой компилятор C#, а значит свои костыли (и это отставания по версиям официального шарпа и потенциальное отсутствие части фич основного шарпа итд).
Машинное обучение - какая-то обертка над питоном (просто ради маркетинга?)
MAUI - выпилили линукс. То есть, из xamarin.forms просто взяли выкинули линукс, который там был (привет ЕЕЕ, и это на фоне релиза "Compose Multiplatform").
IoT - не знаю что там, но возможно опять просто какая-то обертка и костыли ради маркетинга, чтобы показать что есть (сомнительное решение - VM язык натянуть на глобус).
Я так понял, чтобы юзать 10 шарп, нужна последняя IDE, а она в свою очередь, вроде, только на десятке (сам не пробовал, но видел слезы. Если это правда, то это ппц).
Официально есть поддержка 7 винды, но в реале нет поддержки компиляции в один файл (то есть полной поддержки на деле нет, давай покупай десятку уже).
Стоит помнить, что Net Core появился сравнительно недавно и как по мне разнообразие библиотек сравнительно мало. Какой-нибудь клон Netty тупо прокис и заброшен (и вообще вроде не под core, хз).
Почему не Java
Джава древний топорный язык, который исторически как-то забуксовал в развитие. Благо тонущий Sun успел его открыть людям раньше чем МС свой шарп, от чего он несмотря на топорность получил сильное развитие. Появление котлина и некоторый его успех, вероятно, заставило джаву как-то двигаться в ногу со временем, но все это поверх старого синтаксиса смотрится не очень. Как по мне, лучше бы джава оставалась в своей 8 версии, многих "надежный старый молоток" устраивал.
Почему не Rust
Раст превосходная альтернатива С/С++ если вы раньше не писали на С/С++, но вам стало очень надо. Правда сами плюсы это отдельный мир системной/эмбеддед разработки. То есть, даже если вы прониклись мыслью написать что-то очень быстрое, то мало просто взять С++, на нем надо еще уметь быстро и оптимизировано писать (это, наверное, уже к сотне разного рода хитростей и хаков), при этом те же VM языки по производительности идут вровень (или с некритичным отставанием) с неуправляемыми языками.
А вот если разница по производительности не сильно большая, то разработка на системной языке будет отнимать у вас солидную часть мозгового ресурса. Это не так выразительно и просто как хотелось бы, даже на расте.
Питон и динамические языки
Еще проще писать, чем на плюсах, расте и VM языках это писать на динамических языках. Но мир это уже не 10.000 строк кода и как-только ты выходишь за зону комфорта стандартной либы, начинает адок. Если в типизированных языках ты можешь тыкнуть по методу (в IDE) и посмотреть его сигнатуру (и если повезет получить доку), в край код. То в динамических языках, не ты, не IDE, вообще не понимают что тут происходит, пока ты это не принтанешь в рантайме.
В общем, скрипты нужны для скриптов. А скрипты с анатациями типов это уже даже не смешно. Если ты планируешь кодить многолетний проект, выкинь скрипты сразу после прототипа (на самом деле котлин настолько выразительный, что можно прототипировать на нём, а автовывод компилятором (и IDE) типов не даст отстрелить себе свою змею).
Go
Язык хорошо прижился в миркосервисах. И вообще идеально подходит для написания чего-то небольшого (причем мало весит и мало жрет ОЗУ). Но синтаксис реально настолько примитивен, что я бы не хотел на нем писать многолетний проект и потом этот сплошной бойреплейт сопровождать (да, можно, но оставим это фанатикам).
Надо понимать, что текущая индустрия, это код на десятки миллионов строк и нужен инструмент, который помог бы абстрагировать этот код. И без полноценного ООП, сахара - жить трудно (можно, но не стоит).
Вот простой пример почему не пригоден.
У тебя упал код в функции/методе "N", он упал на продакшене, в какой-то случайный момент. Этот метод вызывается в коде под разными условия десятки тысяч раз (и это еще мало). И где именно, в каком из этих случаев (списке вызовов) он упал - непонятно. В джаве/котлине, шарпе итд, тебе высреться огромнейшей стектрейс по которому ты поймешь где именно, в какой последовательности вызовов произошла эта ошибка. То есть, исключения и стекстрейс - это эволюция в развитии программирования. Это эволюция для многолетних и многомиллионных (по коду) проектов. Мы не живем уже в программах на 10К строк, в которых можно за несколько часов разобраться в контексте вызова функции.