Kotlin vs Java. 5 фишек Kotlin, которых нет в Java / ITКультура

Поделиться
HTML-код
  • Опубликовано: 17 окт 2024

Комментарии • 53

  • @tutaf
    @tutaf 3 года назад +11

    2 года не мог себя заставить перейти на котлин. Похоже, время пришло. Спасибо.

  • @evgenulian
    @evgenulian 2 года назад +12

    data - класс, очень легко покрывается библиотекой Lombok в Java

  • @EdwardNorthwind
    @EdwardNorthwind Год назад +1

    Java 8 вышла в 2014 году, и умела в лямды, а Kotlin вышел лишь через 2 года в 2016 году. И только в 2017 был объявлен основным ЯП, и на тот момент лямды из Java прекрасно поддерживались АПИ Андроид. Так что пример с анонимным классом безбожно устарел и неактуален.
    Расширение - зачет, классная фишка.
    Нулл сейфти - супер зачет.
    Дата классы - скорее надуманная проблема, ведь никто этого не пишет руками. Alt+Insert - Generete ... И вот тебе конструктор, гетеры и сетеры, тоСтринг, иквелс и хешкод. И это лень делать - Ломбок в помощь.
    Перегрузка операторов - честно, как по мне это скорее минус, чем плюс, и я бы таким не рекомендовал пользоваться. Ведь когда ты видишь, как складываются 2 объекта - тебе, наоборот, нужно потратить время, чтобы разобраться, на что тут происходит. А вот будь это привычный метод с говорящим названием...
    Корутины - снова зачет. Хотя раз это всё один фиг компилится в такой же байт код, то CompletableFuture, которые так же появились в Java 8, не на много хуже.
    CompletableFuture.runAsync(this::longTimeFunction)
    Хотя я и не отрицаю, что Котлин крутой и в нем много фишек, описание которых очень хочется отправить в прошлое разрабам из Sun и сделать стандартом.

  • @nikolaivetrik855
    @nikolaivetrik855 2 года назад +5

    Всё хорошо потому что я решил перейти в IT с нелюбимой работы, и меня это завораживает)

  • @ivanstrelka3448
    @ivanstrelka3448 Год назад

    Спасибо! Ждем курс разработки на Котлин))

  • @eq716
    @eq716 3 года назад +7

    1) String в Java можно расширить и добавить нужньій функционал
    2) появились Records
    3) RxJava - всего лишь библиотека, не входящая в сдандартную поставку. За андроид не скажу, но юзать можно что-угодно, хоть родньіе єкзекуторьі.Опять же Streams.
    4) от перегрузки операторов уходили специально, на сколько помню
    5) Проблема null давно не проблема. Есть аннотации, есть Optional

    • @VladimirTokarevS
      @VladimirTokarevS 3 года назад +1

      В котлине через ? легко создавать цепочки вызовов методов, при этом не беспокоясь о null значениях возвращаемых из этих методов

    • @antaki93
      @antaki93 2 года назад

      @@VladimirTokarevS если в этой цепочке будет получен null, всё равно будет исключение, так что не вижу большого смысла

  • @РусланСитников-у4м
    @РусланСитников-у4м 3 года назад +5

    Почему Thread в джаве бестолковый класс? Откуда инфа про двухкратный выигрыш корутин перед rxJava?

    • @itcult
      @itcult  3 года назад

      Thread в Android бестолково, сравнение rx и корутин на медиуме, кажется, читал

    • @РусланСитников-у4м
      @РусланСитников-у4м 3 года назад +1

      @@itcult ну голые трэды согласен, бестолково использовать, их только через executor'ы надо использовать

    • @itcult
      @itcult  3 года назад

      А так внутри корутинов и rx треды, конечно)

    • @victorspivak
      @victorspivak 3 года назад +2

      В котлине я стартовал 1М coroutines и каждая ждала 10 секунд. Все закончилось через 11 секунд - все coroutines работали в параллели. Попробуйте это воспроизвести с threads - программа загнется на попытке создания первых тысяч threads. Executors будут работать, но это займет часы.

    • @VladimirTokarevS
      @VladimirTokarevS 3 года назад +1

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

  • @Doaxan
    @Doaxan 3 года назад +2

    Спасибо за видео! Что думаете на счет kotlin'а, в сравнении с react native и flutter?

    • @itcult
      @itcult  3 года назад

      Flutter на dart, который на мой взгляд специфический. React native не очень люблю)

    • @VladimirTokarevS
      @VladimirTokarevS 3 года назад

      Очень странно сравнивать язык программирования с фреймворками.

    • @Doaxan
      @Doaxan 3 года назад

      @@VladimirTokarevS в этом нет ничего странного, так как сравниваются подходы к разработке и опыт использования различных технологий. Не стоит воспринимать всё буквально)

    • @VladimirTokarevS
      @VladimirTokarevS 3 года назад

      Как вообще можно сравнить язык и фреймворк? По каким критериям?
      Например Flutter, React Native или KMM можно сравнивать.
      Но котлин можно сравнивать с Java, C#, C++ и другими языками, но никак не с фреймворками

    • @Doaxan
      @Doaxan 3 года назад

      @@VladimirTokarevS я не знаю почему вы пытаетесь сравнить язык и фреймворк, перечитайте мой комментарий выше ещё раз) Фреймворк это набор различных библиотек, нацеленных на решение определённых задач. Android имеет множество библиотек и Kotlin является на данный момент first-class языком данной экосистемы. Почитайте о Kotlin и Android Framework подробнее, чтобы понимать о чём идёт речь)

  • @maratb4561
    @maratb4561 2 года назад

    касательно data class они могут наследовать или быть родительскими, или абстрактными? если нет, то в чем отличие от Records в Java?

    • @itcult
      @itcult  2 года назад

      Могут наследоваться он не data классов, есть copy метод, может содержать переменные не только объявленные в конструкторе.

  • @РусланКравцов-ж7т
    @РусланКравцов-ж7т 3 года назад +4

    Супер, но было бы гораздо лучше с большим масштабом

  • @AxelGt30
    @AxelGt30 3 года назад +4

    Data classes такое себе преимущество, в java повсеместно используется lombok

  • @MichaelPankov
    @MichaelPankov 3 года назад +1

    Программирую на расте, у меня всё хорошо :) почти все эти фишки у нас тоже есть, кроме extension методов
    А в kotlin есть adt (enum)?

    • @itcult
      @itcult  3 года назад

      Enum есть)

    • @MarianFotev
      @MarianFotev 3 года назад +1

      Есть ещё sealed class

    • @itcult
      @itcult  3 года назад

      Да, который местами даже лучше)

    • @ANUARKA
      @ANUARKA 3 года назад +1

      А на питоне все это есть

    • @MichaelPankov
      @MichaelPankov 3 года назад

      @bitmap бэкенд, фронтенд

  • @alexander.paderin
    @alexander.paderin 2 года назад +1

    просто Map это интерфейс, equals/hashcode там не причем, как собственно при использовании и TreeMap

  • @sergein7126
    @sergein7126 Год назад

    Начал учить Kotlin несколько месяцев назад, других языков программирования я не изучал для программирования Android

  • @MrSirus83
    @MrSirus83 2 года назад

    Я как-то пропустил более глубокое изучение Java, теперь знаю почему, Kotlin, а как он, быстрее Java в работе Android приложений, или нет?

    • @itcult
      @itcult  2 года назад

      В целом, думаю, что в работе не быстрее.

  • @faizulla5838
    @faizulla5838 3 года назад +3

    почему ява? привычка или незнание-пофигизм? , вроде гуру, типа .... там явы вообще не пахнет))), там кофе джава

  • @crazy-man
    @crazy-man 3 года назад +2

    и главное print() есть теперь

  • @kosto238
    @kosto238 3 года назад +3

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

    • @kkp559
      @kkp559 3 года назад +2

      Гугл активно его пихает, поддерживает, весь jetpack compose на котлине в доках, если не ошибаюсь. Так что)

    • @VladimirTokarevS
      @VladimirTokarevS 3 года назад +1

      В Андроиде уже все на котлине. Он не загнётся, уж поверьте

  • @MontyMoyntery
    @MontyMoyntery 3 месяца назад

    Не говорите "Ява" , вместо "Джава"! Англоязычный человек просто не поймёт этого слова... Конечно , "Питон" - "Пайтон", но Джава - она и в Африке - "Джава"! Так уж повелось...

  • @oleksiibuheria932
    @oleksiibuheria932 3 года назад +1

    Не могу честно воспринимать информацию смотря на код со столь неконсистентным кодсталом. Как-будто накопирован из разных источников или код джуна

    • @itcult
      @itcult  3 года назад +3

      О, это вы ещё не видели как я ручкой пишу)) А представьте, что я каждый день на это смотрю))

  • @faizulla5838
    @faizulla5838 3 года назад

    посмотрел канал, обычный инфобизнесмен...то там то тут, ...просмотры и лайки... просмотры и лайки... просмотры и лайки...

  • @dmitry.tupikin
    @dmitry.tupikin 3 года назад +3

    Олег, название канала содержит в себе слово "Культура", но глядя на Ваш coding style у меня просто кровь из глаз.

    • @itcult
      @itcult  3 года назад +3

      Даже не знаю что предложить) Если только принять чужой стиль. Мне бывало по 5 проектов в месяц попадало и каждый пишет как умеет, я научился принимать его, много времени экономит)