Java VS Kotlin | Advantages And Disadvantages | Why Java Developers Switch To Kotlin?

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

КОМЕНТАРІ • 120

  • @ПолинаНоркина-л9щ
    @ПолинаНоркина-л9щ 2 роки тому +4

    Круть 👍

  • @mrMultipassport
    @mrMultipassport 2 роки тому +30

    Запомните, детишечки, разработчик языка Java - Sun Microsystems, а не Oracle. 😀

    • @phw42
      @phw42 10 місяців тому +2

      А ещё чё? Никто ведь ничего не покупал, верно? А оракл тут просто типо как хер с горы? Апдейты судя по всему тоже Sun Microsystems выпускают...

  • @aquinary.
    @aquinary. Рік тому +8

    Сколько видосов не смотрю, все называют val константой. Но это не так. val - это read-only переменная. Для того чтобы объявить константу в котлине нужно использовать const val!

    • @sergsuper
      @sergsuper Рік тому

      какая же она переменная если она read-only?

    • @aquinary.
      @aquinary. Рік тому +2

      @@sergsuper открой официальную документацию, там чёрным по белому написано, что "read-only local *variables* are defined using the keyword val. They can be assigned a value only once."
      И отличие там существенное. Константа задаётся во время компиляции, а val можно задать во время выполнения.

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

      ​@@sergsuperval может изменить значение под капотом, но сам ты не можешь изменить его

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

      ​@@sergsuperнайди выступление Михаила Левченко котлин, на 5:57

    • @ill4374
      @ill4374 9 місяців тому

      val = java final. Ты не сможешь изменить значение ссылки или значение примитива

  • @pahomidze
    @pahomidze 2 роки тому +4

    понятно и интересно)

  • @seoonlyRU
    @seoonlyRU Рік тому +1

    чотко объяснил, лайк от СЕООНЛИ

  • @flance911
    @flance911 2 роки тому +6

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

  • @BumChigaBum
    @BumChigaBum Рік тому

    Круть, прям четко и понятно что такое колин, а можешь расскрыть темы React Native - Vue всякие e;ectron, кросплатформеность..

  • @olegkabakov9196
    @olegkabakov9196 Рік тому +2

    "отсутствие геттеров и сеттеров"
    прямо сейчас изучаю котлин на JetBrains Academy и в данный момент как раз на теме "Геттеры и Сеттеры" :D
    вроде как они есть, или я чего то не понял)))

    • @BeBr0
      @BeBr0  Рік тому +1

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

  • @DmitriyYankin
    @DmitriyYankin 2 роки тому +2

    А это новое видео?
    Как бы в java всё это давно присутствует. var есть, Unmodifiable списки есть, авто-геттеры через record, функциональное программирование через lambda. По сути, Kotlin - это просто java без legacy, но и без обратной совместимости. Обвешанный свистоперделками, но ни одна из них не может действительно сделать Kotlin лучше, так как работа над ядерным кодом JVM всё-таки в основном направлена на java. Вот выходит Loom через 10 дней и Continuation котлиновские тоже можно выбрасывать.
    Понимаю, многим нравится Kotlin, но он всё же дитя тёмных лет Java, когда язык развивался медленно, а сейчас разработка OpenJDK даёт прикурить не только JVM-языкам.

  • @nonamecode256
    @nonamecode256 Рік тому +2

    По поводу типов в kotlin спорно, вроде бы он имеет только ссылочные типы данных (Представлен классами), но на уровне компилятора там идет адаптация под примитивный тип, который храниться целеком на стеке.

    • @BeBr0
      @BeBr0  Рік тому

      Это скорее для совместимости с джавой

    • @nonamecode256
      @nonamecode256 Рік тому +1

      @@BeBr0 И для этого тоже, но еще оптимизация неплохая

    • @ЛюблюТактики-ъ1к
      @ЛюблюТактики-ъ1к Рік тому +1

      Дело не в совместимости. Классы вообще-то и в Java есть, как и в Kotlin. Итак, все примитивы в Kotlin это неизменяемые классы с соответствующими названиями. Но в теории компилятор может их менять на настоящие JVM примитивы. Так что в Kotlin нет доступа к примитивам.

    • @ill4374
      @ill4374 9 місяців тому

      @@ЛюблюТактики-ъ1к Посмотрел во что компилиься котлин. Везде где можно польщуется примитивным типом

  • @syoritohatsuki
    @syoritohatsuki Рік тому

    Впарил человеку который не разу не полил котлин. Он за 2 недели освоился и спокойно без джавы пишет Майнкрафт моды. Какой у черту трудный.

    • @BeBr0
      @BeBr0  Рік тому +1

      Основы простые хоть на паскале, хоть на с++
      Идея в глубоком погружении

    • @syoritohatsuki
      @syoritohatsuki Рік тому

      @@BeBr0 За счёт простаты синтекса котлина его "трудные фичи" по типу экстеншенов и DSL даются куда проше чем в том же C++ или Паскале. Так же сильно помогает адекватная дока с примерами по языку

  • @maratb4561
    @maratb4561 2 роки тому

    Котлин предназначен для android ... И как бы все. язык с динамической типизацией не способен тащить большие проекты. Убрать типизацию и поменять синтаксис это не значит сделать продолжение java- это значит сделать другой язык.

    • @BeBr0
      @BeBr0  2 роки тому +5

      Котлин не динамически типизирован)

    • @BeBr0
      @BeBr0  2 роки тому +1

      Как раз об этом я и сказал в видео. Котлин не имеет ничего общего с динамической типизацией и многие этого не понимают. Увы

    • @syoritohatsuki
      @syoritohatsuki Рік тому

      Котлин "динамической типизацией" такая же как джава со словом var или C++ с auto

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

      откуда люди взяли, что котлин только для андроид? Типа на другое он не способен?

  • @Uniter_ua
    @Uniter_ua 3 місяці тому

    Не могу только понят kotlin сложний или нет бо в одном відео аргументи були ті самі но язик називали простим

    • @BeBr0
      @BeBr0  3 місяці тому

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

  • @Raven-lg7td
    @Raven-lg7td 2 роки тому +3

    1995 - "я тогда еще не родился" т.е. тебе меньше 27 лет, но при этом в каком то ролике говорил "у меня 7 лет опыта преподавания" это типа не закончив бакалавр с 20 лет преподавать начал?) чет где то свистишь походу

    • @BeBr0
      @BeBr0  2 роки тому

      Великолепные математические способности, молодой человек

    • @Raven-lg7td
      @Raven-lg7td 2 роки тому +1

      @@BeBr0 ну и в чем я неправ? ты типа решил иронично сьехать от ответа

    • @aquinary.
      @aquinary. Рік тому +1

      @@Raven-lg7td а что не так, с 20 лет преподавать? Я с 14-ти лет программирую, начинал вообще с дельфи. В чём проблема? В чём суть претензии?
      Я это делал "абы как", а он мог целенаправленно подтягивать свои навыки и в 20 лет уже заниматься этим. Не всем же аболтусам быть

    • @Raven-lg7td
      @Raven-lg7td Рік тому

      @@aquinary. так он же высрал язву типа я неверно посчитал, и я не пойму где я неправ по расчетам

  • @zanqar5028
    @zanqar5028 2 роки тому +7

    Тот самый момент, когда начинаешь изучать котлин с нуля🥲
    Не зная ООП☠️

    • @parviz_77
      @parviz_77 Рік тому

      Прошло 2 месяца. Как успехи?)

    • @СтраусТруп-с5н
      @СтраусТруп-с5н Рік тому +7

      @@parviz_77 забросил видимо) как и большинство с подобными комментариями

    • @arthaslizi
      @arthaslizi Рік тому

      а как тут не забросить
      @@СтраусТруп-с5н

  • @MeuVam
    @MeuVam 2 роки тому +2

    Найс ролик

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

    Программирование, ооп в джаве нужно знать не меньше, чем в котлине

  • @vladimiro2343
    @vladimiro2343 2 роки тому +2

    Насчет геттеров и сеттеров "Для каждого объявленного свойства Kotlin сгенерирует поле, метод чтения (геттер) и, если надо, метод записи (сеттер).Прямо объявить поле в классе нельзя. Kotlin инкапсулирует поля, защищая данные в поле и открывая доступ к ним через методы свойств. Метод чтения свойства определяет правила его чтения. Методы чтения создаются для всех свойств. Метод записи определяет правила присваивания значения свойству, поэтому он генерируется только для изменяемых свойств, - другими словами, если свойство объявлено с ключевым словом var" пример
    class Rectangle(val height:Int, val width:Int) {
    val isSquare:Boolean
    get() = height==width
    }

    • @BeBr0
      @BeBr0  2 роки тому

      Ты прав, мне нужно было выразиться более точно, сказав "в большинстве случаев неявное объявление геттеров и сеттеров"

    • @vladyslavtymofieiev4213
      @vladyslavtymofieiev4213 Рік тому

      @@BeBr0, это ведь логичное нововведение. Зачем нужно каждый раз генерировать геттеры и сеттеры, если в 99% они просто возвращают переменную, либо просто присваивают новое значение? Разумнее писать их только тогда, когда они отличаются от стандартного поведения. Читаемость кода выше.

    • @BeBr0
      @BeBr0  Рік тому

      @@vladyslavtymofieiev4213 как котлин разработчик, полностью с тобой согласен

  • @walcermelodia
    @walcermelodia 2 роки тому +2

    Полугодовые обновления джавы для автора шутка? Ломбок для автора шутка?
    Шутка)

    • @BeBr0
      @BeBr0  2 роки тому +1

      Я рассматривал языки без надстроек. Зачем использовать ломбок, если можно не использовать?
      Ну и я надеялся, что мои зрители увидят в этом ролике очевидный посыл - любое сравнение языков программирования необъективно
      Всегда будут люди которым нравится джава и те, кому нравится котлин, не вижу в этом никаких проблем, особенно учитывая их совместимость

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

      @@BeBr0как по мне котлин уже лучше и практичнее джавы, минус - это компиляцию примерно на 20-25 процентов дольше, но оно того стоит. Код начинает писаться намного быстрее и чище

  • @terramain2325
    @terramain2325 2 роки тому +2

    не я на котлин не пойду, я только начал разбираться в java кодю уже 1.5 года а тут БАЦ ТЕБЕ котлин вылиз блин...
    только один вопрос, пока они делают котлин они про java не забудут?

    • @BeBr0
      @BeBr0  2 роки тому +2

      У этих языков разные разработчики

    • @miafridman6952
      @miafridman6952 Рік тому +1

      Лучше Rust, все остальное хрень...

    • @КапитанУлитка-з1е
      @КапитанУлитка-з1е Рік тому

      джава еще будет жить и жить. на твой век хватит точно. говорю как человек мимо проходящий и ничего общего с программированием не имеющий. но по факту это так....

    • @sadtime4267
      @sadtime4267 Рік тому

      Java не умрет т.к она используется в очень многих сферах кроме Android, а Котлин же чисто под андроид подходит. Возможно там он её и заменит потом, но полностью яву не забудут)

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

      Я сначала выучил полностью питон за месяцев так 7-8, потом джаву на 85% за месяц. Потом через пару месяцев узнал про котлин и перепрыгнул на него с джавы за неделю.

  • @RexerNotes
    @RexerNotes 3 місяці тому

    «Единственный минус Котлина - это его сложность». Котлин это свой мир, со своим компилятором - там свои баги тоже есть, с кучей стыковок с джавой - где не все гладко бывает также, хоть и заявляется почти полная совместимость - она на 99% есть, но если вы столкнетесь с этим процентом будет вам проблема лишняя, в котлин не так мало проблем, как вы думаете. Хоть и не так много как в той же скала!

  • @ДмитрийТкаченко-ш9о
    @ДмитрийТкаченко-ш9о 3 місяці тому

    Почему то когда сравнивают джаву и котлин , у всех поголовно какое то сравнение с 8 версией джавы. Где нету варов, нету рекордов и еще много всего .Даже на курсах по котлину , везде говорят одно и то же. Хоть про корутины бы кто рассказал

  • @JarikKomarik
    @JarikKomarik 2 роки тому +2

    Var поддерживается в Java

    • @Mick_7
      @Mick_7 Рік тому +2

      Ну конечно, у Котлина украли 😁

    • @syoritohatsuki
      @syoritohatsuki Рік тому

      На уровне метода онли🙃

  • @alexkir9312
    @alexkir9312 Рік тому +1

    Спасибо. Теперь все встало на свои места.

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

    1:27 Процессору подавай не байт-код, а машинный код.

  • @Drekrosh
    @Drekrosh Рік тому

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

  • @maximshirshov9532
    @maximshirshov9532 9 місяців тому +5

    Имею удовольствие поддерживать крупные kotlin проекты, так вот, это жуть как неприятно по сравнению с java проектами, сильно сказывается отсутствие декомпилятора для котлин и т.д. Крупным компаниям, заинтересованным в развитие и поддержке проекта я бы крайне не рекомендовал использовать котлин.

    • @arctan-k
      @arctan-k Місяць тому

      Какие ограничения вызывает отсутствие декомпилятора? Котлин проекты, написаные на JVM можно декомпилировать в Java byte code. Kotlin native можно декомпилировать

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

      @@arctan-k у вас есть реальных опыт декомпиляции проектов на котлине ? Если есть, поделитесь опытом. У нас такой опыт был не очень удачный - много специфического нечитаемого текста + встречаются пустые методы, которые декомпилятор не смог разобрать. Пробовали разные декомпиляторы от jad до fernflower и добавлю, отсутствие декомпилятора не единственная причина некомфортной поддержки котлин проектов, просто не сильно интересно делиться техническими подробностями и бодаться потом с котлин-фанатами.

  • @ОлегАн-т5ж
    @ОлегАн-т5ж Рік тому +1

    Котлин сложнее джаваы? ))) Хорошая шутка, запишу.

    • @BeBr0
      @BeBr0  Рік тому +1

      Поглубже в него погрузись и поймешь почему

    • @ОлегАн-т5ж
      @ОлегАн-т5ж Рік тому

      @@BeBr0 Ну так и про джаву можно сказать, если прям погрузиться во все существующие аспекты то тоже высота за облаками.

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

      Сложнее потому что много под капотом, а у джавы как есть всё пишется

    • @ill4374
      @ill4374 9 місяців тому

      @@Das.Kleine.Krokodil Не правда)

  • @ВладимирКобозев-ц9н
    @ВладимирКобозев-ц9н 2 місяці тому

    И сколько там библиотек?

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

      столько же, сколько и джавы😅

  • @OCEH6
    @OCEH6 Рік тому

    Огонь! Котлин прекрасен ☺️ (Java тоже в моём сердце 🤣)

  • @amirak449
    @amirak449 Рік тому

    то есть для того чтобы кодить на kotlin не надо изучать java, а то большинство сайтов прям орет о том что без java вам не выжить!!!

    • @BeBr0
      @BeBr0  Рік тому

      Не обязательно, но желательно потому что он сложнее

  • @user-tw6li2kw9d
    @user-tw6li2kw9d Рік тому +1

    А вопрос такой, хочу андроид с чем писать Java & Kotlin?
    месяц изучал дарт но там документация фиговый оказался!

  • @darkemperorchik
    @darkemperorchik 3 місяці тому

    4:19 Ключевое слово var есть в Джаве ещё с Джавы 10(если не ошибаюсь)

    • @BeBr0
      @BeBr0  3 місяці тому

      Да, это как сок в пивном баре. Вроде бы есть, вот только нахуя никто не знает, потому что все приходят за чем-то более соответствующим этому месту

  • @stealth-350
    @stealth-350 2 роки тому +5

    Хм... После фразы про то, что байткод - это нули и единички напрягся)) Дальнейшая адекватность ролика оказалась под вопросом.

    • @BeBr0
      @BeBr0  2 роки тому

      Жесть, как я мог такое сказать

    • @BeBr0
      @BeBr0  2 роки тому +1

      Ошибка в сценарии, с кем не бывает

    • @user-wf6lc5jz9x
      @user-wf6lc5jz9x 2 роки тому +1

      ну так то по факту, вся информация в двоичной эвм это нули и единицы

    • @BeBr0
      @BeBr0  2 роки тому +1

      @@user-wf6lc5jz9x да но, я сказал сначала про байт код, значит не совсем верно говорить про нули и единицы в этом контексте

    • @Leg1tKenny
      @Leg1tKenny 9 місяців тому +3

      тут все видео такие

  • @mr.notere_vaseok7386
    @mr.notere_vaseok7386 2 роки тому

    Кайфуля

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

    Не думаю что Kotlin будет полностю заменть Java , почему ? да потому что уже моногое написно в Java , И большенство комании ищеть Java разрабов имменоо по этому !

  • @mikhailslnik2090
    @mikhailslnik2090 2 роки тому +1

    Минус Явы ещё и в том, что каждый класс тащит за собой огромный хвост предков, что утежеляет конечный артефакт, зато, конечно, проще Котлина.

    • @ЛюблюТактики-ъ1к
      @ЛюблюТактики-ъ1к Рік тому +6

      Чего? Вообще-то наследование уменьшает дублирование кода

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

      А в котлине нет предков?

    • @ill4374
      @ill4374 9 місяців тому

      @@Das.Kleine.Krokodil По умолчанию классы в контлин являются final - от них нельзя наследоваться. Это сделано для того, чтобы разработчики отдавали предпочтение композиции

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

      @@ill4374 вопрос в другом был

  • @Didar.Kussain
    @Didar.Kussain Рік тому

    Что выполняется быстрее?

    • @BeBr0
      @BeBr0  Рік тому +1

      Нельзя дать точного ответа, в некоторых местах Java, в некоторых Kotlin

    • @msvru
      @msvru 10 місяців тому

      То, под что заточена JVM наверное.

  • @ManWhoChoseFreedom
    @ManWhoChoseFreedom 2 роки тому +1

    Благодарю, посмотрел на одном дыхании. Хотелось бы больше здесь, а не на Бусти, но понимаю, что есть свои причины. Подписка и лайк)

  • @ladakxxx
    @ladakxxx 2 роки тому +2

    Может быть ролик про гитхаб

  • @Айбек-г3е
    @Айбек-г3е 2 роки тому +3

    Ну у Java есть более легкий вариант. JavaScript😁😁

    • @swenly8735
      @swenly8735 2 роки тому +1

      JavaScript для сайтов

    • @Айбек-г3е
      @Айбек-г3е 2 роки тому

      @@swenly8735 и не только.

    • @swenly8735
      @swenly8735 2 роки тому +3

      @@Айбек-г3е ну для говно программ

    • @flance911
      @flance911 2 роки тому

      @@swenly8735 Это не от языка зависит а от того, кто им пользуется.

    • @swenly8735
      @swenly8735 2 роки тому +1

      @@flance911 ну хз, возможно. Но врятли ты напишешь спокойно жоскую 3д игру с пост проуессингами на javascript и чтобы это скомпилилось в exe

  • @ladakxxx
    @ladakxxx 2 роки тому +3

    Котлин это внебрачный сын джавы опенсорсный