Kotlin

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

Сам язык им это делать даёт. С идеологией у котлина изначально всё сложно, это же pragmatic general-purpose язык (aka пишите как хотите, мы не мешаем). За это и любим, конечно, за это и ненавидим. Это неправильно понимают. Рекомендаций в документации от JB не хватает, почему-то все начинают изобретать свои велосипеды вместо любой конструкции языка.

Да, я опять смотрю на тех, кто использует a?.let {} вместо if (a != null) {}, для кого a?.let { b } ?: run { c() } любимая конструкция из stdlib, ведь if/else для них нечитаемый код, а это в самый раз 🤡.

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

Или ещё много раз видел тех, кому try/catch или when в связке с sealed классами чем-то не угодили и чей код превращается в "функциональный" execute().onSuccess{}.onFailure{}, где забыть ветку проще простого.

Или есть странные ребята, кто пишет collection.forEach { c -> } вместо for (c in collection) {}. Ноль идей зачем этот экстеншн вообще в стандартную библиотеку добавили. Успехов вам break/continue/return из лямбды поделать.

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

Чем людей не удовлетворяет синтаксис языка? Зачем они это делают? Зачем вы адовые однострочники пишете с кучей ограничений? Другого объяснения кроме того, что у вас за количество строчек или символов из зарплаты вычитают я не могу придумать.

А у вас есть такое? Что самое любимое вспомните?