Сравнение Kotlin и Java in back-end development | Сергей Немчинский | Антон Гусев

Поділитися
Вставка
  • Опубліковано 16 лис 2024

КОМЕНТАРІ • 36

  • @AntonArhipov
    @AntonArhipov 2 місяці тому +2

    24:42 есть более идиоматичный синтаксис вынимания значения из мапы по ключу, вместо map.get(4), можно было написать map[4]
    35:16 один код под все платформы можно написать и скомпилировать. Просто этого в реальной жизни недостаточно и надо уметь взаимодействовать с целефой платформой, особенно это касается мобильных устройств.
    36:49 data class-ы и record-ы не совсем одно и то же. У них разные цели и семантика, не смотря на то, что синтаксичеки они очень похожи
    44:34 - перегрузка операторов к Kotlin не такая же как в С++. Можно перегружать только определённый набор операторов, и нельзя добавлять новые.
    57:11 - "Андроид это маленькие приложения" - Сергей намешил :)) Нормальные приложения для Android, то же WhatsApp, например, огромны с огромным количеством строк кода. Kotlin вынес Java на Andoid прежде всего изза лямбд - Android-разработчики устали страдать без новых языковых возможностей тк Java не обновлялась на Andoid достаточно быстро. А Kotlin со всем предлагаемым синтаксическим сахаром изначально компилировался под Java 1.6. Где Java 1.6 и где лямбды - 10 лет разницы.
    57:58 когда я слышу что кто-то переводит большой проект на Java 1 к 1му на Kotlin, я всегда сильно удивлён. Скорее всего, всё таки такой переед сопровождается изменением архитектуры или стека, а может быть и целых команд разработки. Например, Jira (которая была отдельным приложением) была переписана на Kotlin при переезде в облако.
    1:00:18 разработчики на Kotlin не стоят больше, чем на Java. Другое дело, что Kotlin может использоваться как HR-инструмент для привлечения Java-разрабочиков на перегретом рынке, когда компания не может ничем больше этих разработчиков привлечь
    1:07:02 - Groovy, Fantom, Ceylon, Gosu, Clojure, Xtend, Scala - имя им легион :) Понятно почему Сергей проводит эту параллель, но всё таки везде были свои нюансы и с Kotlin вышла сильно другая история.
    1:22:32 - Kotlin предоставляет возможность работать с null и это фича на уровне компилятора. Но это же не серебрянная пуля. Даже если вы перейдёте на Kotlin-фреймворки, проблема с null не исчезнет полностью хотя бы потому что приложение общается с внешним миром, например получает данные из БД - от туда сколько угодно нулей может придти и компилятор этого не заметит. Возможность проверки на nullable тип в сочетании с удобными синтаксическими конструкциями просто снижает возможность получить NPE, но не исключает его полностью.

1:23:38 Ktor - это не замена Spring. Это даже не фреймворк. Это набор библиотек для разработки HTTP приложений и он не предлагает "всё из коробки".

  • @MrDexis01
    @MrDexis01 8 місяців тому +2

    Антон привет! Учился у тебя, учил джаву, сейчас перешел на котлин. 😊

  • @ITisonline
    @ITisonline 8 місяців тому +1

    Kotlin был создан Питерскими ребятам, назван в честь острова Котлин рядом с Питером.

  • @DVBLEX
    @DVBLEX 8 місяців тому +5

    Як бекенд та андроїд розробник, можу сказати що Котлні найкраща та найкрутіша мова. Якщо потрібно використати найменше памяті і найвищу швидкість для Ентейрпайзу тоді краще використовувати Java, в усіх інших випадках Kotlin кращий.

    • @Rorkr27R
      @Rorkr27R Місяць тому

      Можна вчити тільки Kotlin чи без Java ніяк не обійтися ?

  • @arty8461
    @arty8461 8 місяців тому +13

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

    • @artemmm095
      @artemmm095 8 місяців тому +5

      У многих комментаторов, даже тех которые считают себя суперкрутыми экспертами, есть одна общая ошибка - вести себя по-хамски и вечно что-то предъявлять вместо того, чтоб спокойно и культурно объяснить

    • @pavel6398
      @pavel6398 8 місяців тому

      Диагональю*

    • @qwertyuseradmin
      @qwertyuseradmin 8 місяців тому

      ​@@artemmm095 и где нахамил автор этого комментария? Где написал риторический вопрос про 80" телевизор? 🤡

    • @nikulin_vrn
      @nikulin_vrn 6 місяців тому +1

      С одной стороны, претензия имеет место быть: тем, кто хочет посмотреть с телефона - некомфортно. С другой - ряд контр-аргументов:
      1. Контент делается для тех, кто его хочет смотреть. Всё. Не нравится - никто не принуждает.
      2. Всё, что связано с кодом лучше смотреть в рамках ПК, т.к. можно сразу поиграться в IDEA, посмотреть на адекватность тезисов, сделать заметки и т.п. Всё таки это не на 100% развлекуха, технический уклон материала как-будто намекает на некоторый перекос в сторону полезности.
      Ну, в целом это так: на вентилятор набросить и попытаться по-уворачиваться 😀Всем добра!

  • @zhennik263
    @zhennik263 8 місяців тому +2

    Обьясните пожалуйста, какая разница на сколько долго писать код? На всех проектах ты думаешь и ходишь на миты 7 часов в день, а пишешь прям пишешь код 1 час от силы хорошо если.

    • @Das.Kleine.Krokodil
      @Das.Kleine.Krokodil 8 місяців тому

      Писать, да. Но потом ещё же читать его неоднократно

    • @zhennik263
      @zhennik263 8 місяців тому

      @@Das.Kleine.Krokodil ну так и как было сказано Java читается на много проще. Даже когда там появляются var гребанные- сразу виден след индусов

    • @Das.Kleine.Krokodil
      @Das.Kleine.Krokodil 8 місяців тому

      @@zhennik263когда ты регулярно пишешь на котлине, то он читается отлично, нет никаких проблем

  • @sergiyscherban219
    @sergiyscherban219 8 місяців тому +1

    На стрімі розповідали що якщо декомпілювати код скомпільований з котліна то важко зрозуміти що він робить. А як виглядає пошук помилок типу OutOfMemoryException на jvm де виконується програма, яка зкомпільована з kotlin? Чи можна легко зрозуміти об'єкти яких класів зараз там виконуються? Якщо jvm напише stacktrace то його можна завантажити в ide і проаналізувати одразу в сорсах?

    • @humancorrector-473
      @humancorrector-473 6 місяців тому

      Чтобы диагностировать OutOfMemoryError надо делать HeapDump и смотреть в динамике по нескольким дампам какой класс неадекватно растёт в экземплярах и смотреть где он используется в коде, возможно по последним коммитам в случае, если раньше всё было ок.
      Про способы поиска утечек через байт-код слышу впервые

  • @baer126
    @baer126 6 місяців тому

    Хотел бы выучить kotlin надо ли учить Java , а потом kotlin ?

    • @faang29488
      @faang29488 6 місяців тому

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

  • @sergiyscherban219
    @sergiyscherban219 8 місяців тому

    Чи можна підключатись remote дебагом до jvm з студії з проектом kotlin?

  • @prayer4675
    @prayer4675 6 місяців тому

    var в Java - это не замена типа, а ровно то же самое, что и в Котлине, то есть объявление локальной переменной с типом, который приходит справа.

  • @seka1309
    @seka1309 7 місяців тому

    Без знания джавы стоит ли учить котлин?

    • @Lt.aldo_raine
      @Lt.aldo_raine 5 місяців тому

      Конечно полегче будет зная джаву учить Котлин, но нет ничего невозможного в том, чтоб без джавы его выучить

  • @annahnidenko8020
    @annahnidenko8020 8 місяців тому +1

    Что делать с дилемой как стать андроид програмистом если нравится Kotlin и бесит Java 😅

    • @Das.Kleine.Krokodil
      @Das.Kleine.Krokodil 8 місяців тому +5

      В чем дилема?

    • @K11-s6x
      @K11-s6x 8 місяців тому +1

      плакать

    • @СергейБезногов-т6у
      @СергейБезногов-т6у 7 місяців тому +4

      Бежать надо не туда где находится шайба а туда где она будет. Учить надо Котлин!

    • @Georgggg
      @Georgggg 2 місяці тому

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

  • @VolodymyrKvashenko
    @VolodymyrKvashenko 8 місяців тому

    Привіт
    Використовую Kotlin ще з версії 1.2.
    Ледве стримуюся дивитися вас хлопчики.
    Не знаєте для чого можна використати інфікси, ви серйозно?
    Java головного мозку )))
    А про таку штуку як DSL хтось з вас чув?
    Перегрузка операторів, теж більш зручно для написання DSL.
    Так, це дійсно дужне потужна штука, а потужними речами треба користуватися обережніше, вмикаючи мізки, а не кричати, "ой Боже, коли я останній раз бачив це в С++... як лайняно це було".
    Kotlin чемпіон для написання різних DSL.
    Людям хто хоче зрозуміти що таке Kotlin і для чого він, дуже не ражду починати з цього відео.
    Навіть для того щоб зробити оцінку Kotlin, теж не ражду.
    Це фейл.
    Багато подробиць пропущено.
    Якщо дійсно зацікавлені в тому щоб вчити Kotlin, шукайте інших людей з іншими матеріалами.
    Шукайте відео розробників Kotlin, де вони розповідають чому вони зробили так, а не інакше.
    Віджимайтесь хлопчики )))
    Від мене дізлайк )
    па-па

  • @kdannothere
    @kdannothere 8 місяців тому +2

    А я перейшов з котліна/android (через бюрократію в плеймаркеті і складності підтримки різних версій андроїда) на js/ts/ангуляр. P.S. чекаю стрім з ангулярщиком))

  • @NorthSea-xb7jk
    @NorthSea-xb7jk 8 місяців тому

    Антон много пьет кофе?

  • @9-260
    @9-260 8 місяців тому +1

    Согласен почти со всем что сказал Сергей однако хотел бы немного поделиться своим мнением.
    Каких то прям жутко новых синтаксических фич котлин практически не предлагает однако как Антон говорил последние версии JetBrains заняты компилятором поэтому стоит дождаться версий после k2. Как мне кажется основная проблема начать новый проект на нем это отсутствие хороший решений как с java. Ну вот например ktor, он конечно позволяет написать одно и то же приложение написав меньше строк чем spring однако если ты не писал на spring-е то можешь писать на нем говнокод, а строгость и читаемость и есть одной из причин за которое джаву и выбирали. Далее перейдем к orm. Самый популярное котлин решение тут exposed. Но он как по мне не удобный и на самом деле не я один так думаю.
    Так же Антон не рассказал про kotlin native который еще находится в разработке и потенциально он должен сделать kotlin быстрее java(но быстрее ли чем с graalvm хз). И вот если б на нем замутить enterprise решение то получилось бы интересно. Конечно для java есть quarkus, но тут возникает ситуация что одно и то же приложение будет работать одинаково, но ты возьмешь тот фрейм который написан на более хорошем языке. Что касается легаси тут все так уже обсуждали довольно спорно, однако реаль любого ринка это то что потребительские привычки меняются редко и не охотно поэтому, как правило, вы находите новых потребителей. И вот сейчас даже для таких новых потребителей котлин увы ничего не предлагает. Поэтому нужно дождаться когда его выбор даст тебе больше чем просто синтаксический сахар над джавой.

    • @AntonArhipov
      @AntonArhipov 8 місяців тому

      > потенциально он должен сделать kotlin быстрее java
      Сделать что-то что будет реально быстрее JVM будет требовать координально другого подхода к дизайну технологии. Kotlin Native интересен больше как целевая платформа, что позволяет переиспользовать код на Kotlin между платформами (например в случае мобильной разработки)
      Про производительность будет интереснее говорить в контексте Wasm.

    • @9-260
      @9-260 8 місяців тому

      @@AntonArhipov А для бекенда планируется какая то технология? Вы можете уточнить у меня что я имею ввиду, как я выше упоминал GraalVm от Oracle из коробки поддерживается в quarkus. Ну не плохо было бы иметь такое для kotlin, хотя я только учусь на backend разработчика поэтому возможно я мог привести плохой пример.

    • @AntonArhipov
      @AntonArhipov 8 місяців тому

      Если под технологией подразумевается фреймворк, то вполне можно использовать Java фреймворки: Spring, Quarqus, Micronaut -имя им легион. Но есть и фреймворки написанные полностью на Kotlin: Ktor, http4k - их тоже сообщество очень любит и тоже можно собирать GraalVM native image.

  • @95thh
    @95thh 8 місяців тому +1

    Первый