LINUX.ORG.RU

Вижу на нем все больше андроид проектов.

Ну логично, язык создан для закапывания всего вот этого java7 legacy.

Для веб разработки кто-нибудь использует?

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

Deleted
()

На reddit.com/programming раз в неделю редкий хипстерок толкнёт жиденькую тему про сабж, но таких ущербных уже даже не минусуют.

foror ★★★★★
()

Отлично поживает. Использую для финансовой разработки - полет нормальный. На жабе кодить больше желания нет.

FilosofeM ★★
()

Популярность растёт. Это я вижу по появлению новых книг на сайтах зарубежных издательств, где я обычно их покупаю. Так что может быть и станет популярнее Scala, которым пользовалась кучка оригиналов. Пусть они переходят на Kotlin. Я однако даже не изучал его и пользоваться не собираюсь, так как он предложен фирмой JetBrains, вызывающей у меня сильное отвращение. Kotlin - один из официально поддерживаемых языков для Android. Но это не кажется большим достижением, так как Andrdoid Studio основана на IDEA, поэтому добавить поддержку Kotlin в Android Studio было легко.

Partisan ★★★★★
()
Ответ на: комментарий от FilosofeM

Лучше бы javascript использовал.

anonymous
()

Я пользую для собственного проекта, работаю против spring. Подводные камни есть, решаю по мере поступления, например недавно выяснил что дефолтные методы интерфейсов в котлине != дефолтные методы в java8, в kotlin они появились раньше и были реализованы по другому, в spring репазитариях не подхватились, оказалось нужно использовать опцию компиляции:

compileKotlin {
    kotlinOptions {
        freeCompilerArgs += ['-Xjvm-default=enable']
    }
}

Еще что пришло на ум, в котлин все классы по умолчанию final если явно не декларировать open, из-за чего такие классы не проксируются, чтоб фрейморки работали и чтоб не писать постяно open, стоит использовать плагин org.jetbrains.kotlin:kotlin-allopen.

data class'ы - в спринг они бесполезны, покрайне мере при mapping'е таких клссов в json я испытал множество проблем, после чего отказался от data class'ов в пользу обычных с мутабельными (var) полями.

Был какой-то баг с дженериками из-за чего нельзя было использовать что-то из spring-test, но я как-то решил вопрос.

Aber ★★★★★
()

В android с kotlin стало сильно лучше. Язык достаточно приятный. Я постепенно вкатывался, но теперь в java возвращаться не хочется.

mono ★★★★★
()

Если не лезть ему в reflection то всё просто замечательно и удобно. Небольшие печальности решаются плагинами (про костыли для спринга написали выше).

Жалею, что под него сейчас у меня работы нет.

Deleted
()

На джавку обратно переезжать будет трудно, очень трудно.

anonymous
()

Я использовал для нескольких небольших проектов. Единственный недостаток, на мой взгляд, это отсутствие иммутабельных коллекций в стандартной библиотеке, с его функциональной парадигмой могли бы и сделать. Ну и не недостаток, как таковой, но в последние годы он сильно замедлил развитие, в язык из интересного добавили только корутины.

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

отсутствие иммутабельных коллекций

И как это провялятся в работе? Мне вот непривычно что базовые интерфейсы коллекций (List, Map, Set) имеют только read-only методы kotlin-stdlib/kotlin.collections, но да, сами имплементации это typealias на java коллекции. Только я не понял, чем это плохо, когда ты в своем коде в принципе не можешь модифицировать пришедший List не сделав явный кастинг к чему-то мутабельному, а на такие вещи можно статический анализатор натравить, чтоб в команде не допускать.

Aber ★★★★★
()
Ответ на: комментарий от Aber

Ты в тренд просто не вписался. Сейчас модно так делать.

gammaray
()
Ответ на: комментарий от ritsufag

Если нет порта, значит нет интереса. Предмет недостаточно популярен и разрекламирован, чтобы вызывать долговременный интерес у широких масс общественности.

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

Широкие массы общественности совершенно не интересуются FreeBSD. Даже для разработки на Java пользоваться FreeBSD глупо, так как нет официальной поддержки Java в FreeBSD от Oracle.

Но маргинал, программирующий на Kotlin в FeeBSD был бы супермаргиналом и вызвать этим почтение у простых маргиналов.

Partisan ★★★★★
()

Как земля.

EXL ★★★★★
()
Ответ на: комментарий от Aber

И как это провялятся в работе?

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

val l: List<String> = getSomeList()
val listSize = l.size()
printList(l)
print(l[listSize - 1])
может не сработать, если printList скастит l в ArrayList и модифицирует его. То бишь даже без всякой многопоточности нет никакой уверенности в том, что коллекция внезапно не поменяется у тебя под носом. А с многопоточностью совсем беда. Иммутабельные коллекции всё это решают. Кроме того они могут содержать ряд оптимизаций и работать оптимальней, чем тупой LinkedHashMap, например. Очень часто коллекция строится в одном месте и потом часто используется.

Мне вот непривычно что базовые интерфейсы коллекций (List, Map, Set) имеют только read-only методы kotlin-stdlib/kotlin.collections, но да, сами имплементации это typealias на java коллекции. Только я не понял, чем это плохо, когда ты в своем коде в принципе не можешь модифицировать пришедший List не сделав явный кастинг к чему-то мутабельному, а на такие вещи можно статический анализатор натравить, чтоб в команде не допускать.

В Java-коде нет read-only интерфейсов. Любое взаимодействие с Java-кодом может привести к изменению коллекции. И статический анализатор тут вряд ли поможет. Да и писать код без кастов это какая-то утопия. Я соглашусь, что ситуация не слишком частая, но если есть возможность исключить её в принципе, тем более, что дизайн языка вроде как располагает к этому, непонятно, почему этого не было сделано. Они, конечно, всегда могут их ввести, но когда уже написана куча кода и библиотек, это будет смотреться плохо. Такие базовые кирпичики должны быть в языке с релиза.

PS впрочем я перебарщиваю. Таки опциональный модуль есть: https://github.com/Kotlin/kotlinx.collections.immutable видимо он и станет официальным через какое-то время, поэтому ладно.

Legioner ★★★★★
()
Последнее исправление: Legioner (всего исправлений: 2)

Последний год пишу проект исключительно на Kotlin (Android). Из плюсов, как уже отмечали выше, очень лаконичный и чистый язык. По дефолту всё сделано в лучших пожеланиях дядюшки Боба (финальные классы, имуталебьные коллекции, етс). Хорошая поддержка языка в JetBrains IDE'шках. Самый большой для меня минус - время сборки. Я не знаю почему, но при прочих равных проект на котлине собирается в 2-3 раза медленнее аналогичного проекта на Java, ещё в минусы можно занести хреновый байткод на выходе, но это со временем должны исправить и разработчику ничего для этого делать не надо.

Jefail ★★★★
()

Это тот который - хотим писать на нормальном языке, шарп не берём из за религиозных соображений, так что мы сделали котлин?

Solexid
()
Ответ на: комментарий от Solexid

Это тот который - хотим писать на нормальном языке, шарп не берём из за религиозных соображений, так что мы сделали котлин?

Мне предлагали работу с c# но я испугался что потребуют ставить винду, реально ли найти работу с c# и работать под linux или mac без необходимости как либо заморачиваться с виртуалками? Какую ide использовать?

Aber ★★★★★
()

Для веб разработки кто-нибудь использует?

рест-хвосты --- пойдет?

ну мы например. приятно, все пока нравится.

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

Rastafarra ★★★★
()
Ответ на: комментарий от Partisan

Само существование FreeBSD доказывает тот факт, что большая часть программного обеспечения всё-таки не имеет привязки к определённому ядру или его влияние на сторонний код довольно слабо.

Даже для разработки на Java пользоваться FreeBSD глупо, так как нет официальной поддержки Java в FreeBSD от Oracle.

На FreeBSD вообще в принципе не должно много чего работать из мира GNU/Linux и Windows. Однако же работает силами сообщества, адаптирующего полезные вещи и прилады. Бесполезных вещей (типа Systemd) разве что здесь нет, так как нет горячих сторонников этого, некому поднимать хайп нужности. Так же и с Kotlin.

iZEN ★★★★★
()
Ответ на: комментарий от Aber

Ну теоретически есть Visual Studio, который бывший MonoDevelop, под мак точно есть, наверное и под линукс должен быть. Но практически скорее всего таки работа под винду.

Legioner ★★★★★
()
Ответ на: комментарий от Solexid

Если пишешь под .net core то винда вообще не нужна.

Команда пишет вроде rest сервисы, меня позвали, каковые шансы того что мне винда не понадобится? Я просто не знаю можно ли сложные сервисы писать только на .net core? Я так понимаю никто windows для хостинга веб сервисов не использует, теоретически наверное все должно быть платформенно независимое, это так? Просто девелоперы там сидят под виндой, потому они не смогли мне ответить.

Visual Studio Code

VSCode можно довести до состояния близкое к eclipse или idea? мне нужно отображение и навигация по иерархии классов, outline, поиск всех имплементаций, найти все места обращающиеся к конкретному методу и кодогенерация. Я сам использую vscode против ts, я такие фичи нам не увидел, но как бы frontend пишут по другому, коллекций можно сказать нету как и глубокой иерархии.

Aber ★★★★★
()
Ответ на: комментарий от Aber

data class'ы - в спринг они бесполезны, покрайне мере при mapping'е таких клссов в json я испытал множество проблем, после чего отказался от data class'ов в пользу обычных с мутабельными (var) полями.

Можно подключить небольшую библиотеку и spring будет работать с data class на отлично. Минута гугла и всё.

KivApple ★★★★★
()
Ответ на: комментарий от KivApple

Ну раз ты мне не скинул ссылку, то буду гуглить как нибудь в другой раз, когда выделю время на рефакторинг.

Aber ★★★★★
()
Ответ на: комментарий от Aber

Rider можешь юзать, если идею любишь так. А так коре умеет всё абсолютно что требуется для rest уж точно и давно.

Solexid
()
Ответ на: комментарий от Solexid

Это тот который - хотим писать на нормальном языке, шарп не берём из за религиозных соображений, так что мы сделали котлин?

Я еще не видел более практичных и прагматичных разработчиков чем создатели Kotlin (общался с создателем Kotlin Native).

anonymous
()
Ответ на: комментарий от gammaray

Вообще не понимаю чем это лучше теплой ламповой Java'ы где дак уютно и комфортно...

оно хорошо зашло в андроид разработку, куда от 8 жабки только какие-то обрывки в виде лямбд и стримапи дошли, да и те с оговорками и не целиком. про что-то более всежее народ уже даже не мечтает.

der_looser ★★
()
Ответ на: комментарий от der_looser

оно хорошо зашло в андроид разработку

IMHO, после наезда Оракла на Гугл, гуглы решили выкинуть Java на мороз, потому и сделали Kotlin официально поддерживаемым языком. Теперь Java на мобилках вообще не жилец.

С такими понтами Ларри Элисон останется только со своей базкой, которая нужна исключительно в нише очень высокопроизводительных SQL (и эта ниша будет только уменьшаться). В остальных задачах Postgres уже хорошо справляется. Другие ниши для него закроются (не сами, конечно).

anonymous
()

Для веб разработки кто-нибудь использует?

Нельзя так жестко троллить кульхацкеров.

В enterpriZe народ консервативный, оценивает риски перехода на недоязычок, для которого даже нет нормальной IDE, а есть тормознутый на устаревшем Swing'е текстовый редактор от маленькой, но гордой компании.

Bioreactor ★★★★★
()
Ответ на: комментарий от anonymous

IMHO, после наезда Оракла на Гугл, гуглы решили выкинуть Java на мороз, потому и сделали Kotlin официально поддерживаемым языком. Теперь Java на мобилках вообще не жилец.

Фантазия. Выкидывание Java пока невозможно и Google об этом не заявлял. Разработал свой язык Go (он же Golang), предназначенный в основном для распределённых серверных приложений. Его область применения частично пересекается с Java, но не полностью: так, он не приспособлен для разработки приложений для Android.

Поддержка Kotlin со стороны Google сводится к поддержке в Android Studio. Но это не значит, что сам Google собирается его использовать. Поддержку в Android Studio было добавить легко, вот и добавили. Android Studio основано на IDE IDEA фирмы, извиняюсь за выражение, JetBrains. Эта же фирма разработала Kotlin и добавила его поддержку в IDEA. Таким образом, Google только предоставляет возможность пользоваться Kotlin для Android. Но Google не выражала заинтересованности в нём. Вряд ли многие программисты воспользуются этой возможностью. Когда появляется новый язык, всегда находятся дкрачки с чрезмерным энтузиазмом. Я долгое время читал российский журнал RSDN, но перестал из-за того, что огромная его часть была посвящена языку Nemerle. А в их форуме я вычитал фанатское мнение, что «фирма Microsoft перейдёт на Nemerle, как только узнает о нём». Такое же фанаство было по поводу Scala. Но если кому не фанатствовать, а работать, то по-прежнему пользуются Java, а не Scala и не Kotlin.

Partisan ★★★★★
()
Ответ на: комментарий от Aber

Но Вы на пути к успеху.

Правда, публика, фанатеющая от зомбоящика, не знает, что такое vim и emacs.

И даже про проприетарное поделие «Идея» не знает.

А в Штатах и Канаде даже программисты, особенное enterpriZe, про это проприетарное поделие «Есть Идея - есть Икея»(С)(R) тоже ничего не знают - у них там сплошной IBM -

https://en.wikipedia.org/wiki/Object_Technology_International

Bioreactor ★★★★★
()
Ответ на: комментарий от Bioreactor

Чем хороши кульхацкерские недоязычки - так это тем, что они отвлекают неадекватов от enterpriZe программирования.

Неадекват здесь только ты, со spring и hibernate головного мозга. То-то enterprise-сообщество медленно и уверенно выпиливает JavaEE отовсюду, заменяя его более легковесными и модульными решенями.

FilosofeM ★★
()
Ответ на: комментарий от Partisan

Самое интересное, что в книге «Java. Новое поколение разработки. Техники Java 7 и многоязычное программирование» был хайп скриптовых недоязычков для JVM в enterpriZe.

https://www.chitai-gorod.ru/catalog/book/690036/?utm_source=google&utm_me...

Сейчас это, к счастью, признано ересью и кулькакерством.

Bioreactor ★★★★★
()
Ответ на: комментарий от FilosofeM

enterprise-сообщество медленно и уверенно выпиливает JavaEE отовсюду

Вы хоть спеку EE читали?

JPA, JMS, JAAS, JNDI, JTA где спецификации определены?

Или Вы просто сегодня работаете на форуме дежурным клоуном?

Bioreactor ★★★★★
()
Ответ на: комментарий от Bioreactor

Я не только читал спеку, я еще и разрабатывал ПО для Swiss Re, пока ты, оленина пятизвездочная, еще на бейсике калькуляторы писал.

Ты чего мне тут тыкаешь аббревиатурами? Тебе еще раз говорят, отсталому джуниору, которого допускают в лучшем случае для поддержки кровавого легаси - EE и его реализации выпиливают отовсюду. Даже Oracle спихнул Java EE Эклипсу.

И следи за базаром, животное. Недоязык - это у тебя в пасти, которым ты мелишь и флудишь. А Kotlin - прекрасный продуманный язык.

FilosofeM ★★
()
Последнее исправление: FilosofeM (всего исправлений: 1)
Ответ на: комментарий от Partisan

Такое же фанаство было по поводу Scala. Но если кому не фанатствовать, а работать,

Я на жабе кодил больше 10 лет в коммерческих проектах. Меня удивляет когда я слышу фразы про «инвестирование своего времени в изучение языка», как будто для этого нужно год тратить, kotlin язык приятный, кодить удобно, поддержка в ide отличная. Java8 тоже не плоха, но то что kotlin имеет больше абстракций это факт. Я банальности про язык писать не буду, все про язык в доке можно найти. Но вот как я переосмыслил идею dto посредством function type with receiver (псевдокод, но похоже на то что у меня в rest сервисе):

@GetMapping
fun getUserState() {
    val userInfo = // session attribute
    val state = userStateRepo.findByUserId(userInfo.id)
    return UserState {
        nickname: userInfo.getNickname()
        screen: UserState.Screen {
            perspective: state.getPerspective()
        }
    }
}

А если глобально подумать, ну закопают котлин, перейду на что-то другое. Этож фан, а иначе можно выгореть.

Aber ★★★★★
()
Ответ на: комментарий от Bioreactor

У тебя сейчас в профиле увдиел gwt, я на нем 2.5 года проект писал, когда мне понадобилось сделать SPA, мне не захотелось заново изучать gwt, т.к. комьюнити практически нет, непонятна была игтеграция с ide и билд системами, но больше всего смущало то, что по опыту я помннил как мы (разработчики) избегали влазить в JS, искали существующие gwt либы или биндеры к нативным либам, и выбор был ограничен. После раздумий я решил изучить webpack+ts+react+redux, теперь что угодно могу использовать на фронтенде, любой компонент, ts позволят кодить как на java, bootstrap позволяет получить приятный ui, webpack может так же бандлить как gwt. Правда нету rpc, приходится самому придумывать и писать rest.

Aber ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.