Java 8 вышла в 2014 году, и умела в лямды, а Kotlin вышел лишь через 2 года в 2016 году. И только в 2017 был объявлен основным ЯП, и на тот момент лямды из Java прекрасно поддерживались АПИ Андроид. Так что пример с анонимным классом безбожно устарел и неактуален. Расширение - зачет, классная фишка. Нулл сейфти - супер зачет. Дата классы - скорее надуманная проблема, ведь никто этого не пишет руками. Alt+Insert - Generete ... И вот тебе конструктор, гетеры и сетеры, тоСтринг, иквелс и хешкод. И это лень делать - Ломбок в помощь. Перегрузка операторов - честно, как по мне это скорее минус, чем плюс, и я бы таким не рекомендовал пользоваться. Ведь когда ты видишь, как складываются 2 объекта - тебе, наоборот, нужно потратить время, чтобы разобраться, на что тут происходит. А вот будь это привычный метод с говорящим названием... Корутины - снова зачет. Хотя раз это всё один фиг компилится в такой же байт код, то CompletableFuture, которые так же появились в Java 8, не на много хуже. CompletableFuture.runAsync(this::longTimeFunction) Хотя я и не отрицаю, что Котлин крутой и в нем много фишек, описание которых очень хочется отправить в прошлое разрабам из Sun и сделать стандартом.
1) String в Java можно расширить и добавить нужньій функционал 2) появились Records 3) RxJava - всего лишь библиотека, не входящая в сдандартную поставку. За андроид не скажу, но юзать можно что-угодно, хоть родньіе єкзекуторьі.Опять же Streams. 4) от перегрузки операторов уходили специально, на сколько помню 5) Проблема null давно не проблема. Есть аннотации, есть Optional
В котлине я стартовал 1М coroutines и каждая ждала 10 секунд. Все закончилось через 11 секунд - все coroutines работали в параллели. Попробуйте это воспроизвести с threads - программа загнется на попытке создания первых тысяч threads. Executors будут работать, но это займет часы.
Проблема тредов в том что их инициализация дорогая, даже если юзать экзекьюторы - там переключение контекста между тредами в пулле дороже чем корутины.
@@VladimirTokarevS в этом нет ничего странного, так как сравниваются подходы к разработке и опыт использования различных технологий. Не стоит воспринимать всё буквально)
Как вообще можно сравнить язык и фреймворк? По каким критериям? Например Flutter, React Native или KMM можно сравнивать. Но котлин можно сравнивать с Java, C#, C++ и другими языками, но никак не с фреймворками
@@VladimirTokarevS я не знаю почему вы пытаетесь сравнить язык и фреймворк, перечитайте мой комментарий выше ещё раз) Фреймворк это набор различных библиотек, нацеленных на решение определённых задач. Android имеет множество библиотек и Kotlin является на данный момент first-class языком данной экосистемы. Почитайте о Kotlin и Android Framework подробнее, чтобы понимать о чём идёт речь)
Не говорите "Ява" , вместо "Джава"! Англоязычный человек просто не поймёт этого слова... Конечно , "Питон" - "Пайтон", но Джава - она и в Африке - "Джава"! Так уж повелось...
Даже не знаю что предложить) Если только принять чужой стиль. Мне бывало по 5 проектов в месяц попадало и каждый пишет как умеет, я научился принимать его, много времени экономит)
2 года не мог себя заставить перейти на котлин. Похоже, время пришло. Спасибо.
data - класс, очень легко покрывается библиотекой Lombok в Java
Java 8 вышла в 2014 году, и умела в лямды, а Kotlin вышел лишь через 2 года в 2016 году. И только в 2017 был объявлен основным ЯП, и на тот момент лямды из Java прекрасно поддерживались АПИ Андроид. Так что пример с анонимным классом безбожно устарел и неактуален.
Расширение - зачет, классная фишка.
Нулл сейфти - супер зачет.
Дата классы - скорее надуманная проблема, ведь никто этого не пишет руками. Alt+Insert - Generete ... И вот тебе конструктор, гетеры и сетеры, тоСтринг, иквелс и хешкод. И это лень делать - Ломбок в помощь.
Перегрузка операторов - честно, как по мне это скорее минус, чем плюс, и я бы таким не рекомендовал пользоваться. Ведь когда ты видишь, как складываются 2 объекта - тебе, наоборот, нужно потратить время, чтобы разобраться, на что тут происходит. А вот будь это привычный метод с говорящим названием...
Корутины - снова зачет. Хотя раз это всё один фиг компилится в такой же байт код, то CompletableFuture, которые так же появились в Java 8, не на много хуже.
CompletableFuture.runAsync(this::longTimeFunction)
Хотя я и не отрицаю, что Котлин крутой и в нем много фишек, описание которых очень хочется отправить в прошлое разрабам из Sun и сделать стандартом.
Всё хорошо потому что я решил перейти в IT с нелюбимой работы, и меня это завораживает)
Как успехи?
Спасибо! Ждем курс разработки на Котлин))
1) String в Java можно расширить и добавить нужньій функционал
2) появились Records
3) RxJava - всего лишь библиотека, не входящая в сдандартную поставку. За андроид не скажу, но юзать можно что-угодно, хоть родньіе єкзекуторьі.Опять же Streams.
4) от перегрузки операторов уходили специально, на сколько помню
5) Проблема null давно не проблема. Есть аннотации, есть Optional
В котлине через ? легко создавать цепочки вызовов методов, при этом не беспокоясь о null значениях возвращаемых из этих методов
@@VladimirTokarevS если в этой цепочке будет получен null, всё равно будет исключение, так что не вижу большого смысла
Почему Thread в джаве бестолковый класс? Откуда инфа про двухкратный выигрыш корутин перед rxJava?
Thread в Android бестолково, сравнение rx и корутин на медиуме, кажется, читал
@@itcult ну голые трэды согласен, бестолково использовать, их только через executor'ы надо использовать
А так внутри корутинов и rx треды, конечно)
В котлине я стартовал 1М coroutines и каждая ждала 10 секунд. Все закончилось через 11 секунд - все coroutines работали в параллели. Попробуйте это воспроизвести с threads - программа загнется на попытке создания первых тысяч threads. Executors будут работать, но это займет часы.
Проблема тредов в том что их инициализация дорогая, даже если юзать экзекьюторы - там переключение контекста между тредами в пулле дороже чем корутины.
Спасибо за видео! Что думаете на счет kotlin'а, в сравнении с react native и flutter?
Flutter на dart, который на мой взгляд специфический. React native не очень люблю)
Очень странно сравнивать язык программирования с фреймворками.
@@VladimirTokarevS в этом нет ничего странного, так как сравниваются подходы к разработке и опыт использования различных технологий. Не стоит воспринимать всё буквально)
Как вообще можно сравнить язык и фреймворк? По каким критериям?
Например Flutter, React Native или KMM можно сравнивать.
Но котлин можно сравнивать с Java, C#, C++ и другими языками, но никак не с фреймворками
@@VladimirTokarevS я не знаю почему вы пытаетесь сравнить язык и фреймворк, перечитайте мой комментарий выше ещё раз) Фреймворк это набор различных библиотек, нацеленных на решение определённых задач. Android имеет множество библиотек и Kotlin является на данный момент first-class языком данной экосистемы. Почитайте о Kotlin и Android Framework подробнее, чтобы понимать о чём идёт речь)
касательно data class они могут наследовать или быть родительскими, или абстрактными? если нет, то в чем отличие от Records в Java?
Могут наследоваться он не data классов, есть copy метод, может содержать переменные не только объявленные в конструкторе.
Супер, но было бы гораздо лучше с большим масштабом
Data classes такое себе преимущество, в java повсеместно используется lombok
Программирую на расте, у меня всё хорошо :) почти все эти фишки у нас тоже есть, кроме extension методов
А в kotlin есть adt (enum)?
Enum есть)
Есть ещё sealed class
Да, который местами даже лучше)
А на питоне все это есть
@bitmap бэкенд, фронтенд
просто Map это интерфейс, equals/hashcode там не причем, как собственно при использовании и TreeMap
Начал учить Kotlin несколько месяцев назад, других языков программирования я не изучал для программирования Android
Я как-то пропустил более глубокое изучение Java, теперь знаю почему, Kotlin, а как он, быстрее Java в работе Android приложений, или нет?
В целом, думаю, что в работе не быстрее.
почему ява? привычка или незнание-пофигизм? , вроде гуру, типа .... там явы вообще не пахнет))), там кофе джава
и главное print() есть теперь
я както было дело, перешел на груви, дак он загнулся.. вот и думаю, как бы котлин та же участь не постигла, поэтому ну его... :D
Гугл активно его пихает, поддерживает, весь jetpack compose на котлине в доках, если не ошибаюсь. Так что)
В Андроиде уже все на котлине. Он не загнётся, уж поверьте
Не говорите "Ява" , вместо "Джава"! Англоязычный человек просто не поймёт этого слова... Конечно , "Питон" - "Пайтон", но Джава - она и в Африке - "Джава"! Так уж повелось...
Не могу честно воспринимать информацию смотря на код со столь неконсистентным кодсталом. Как-будто накопирован из разных источников или код джуна
О, это вы ещё не видели как я ручкой пишу)) А представьте, что я каждый день на это смотрю))
посмотрел канал, обычный инфобизнесмен...то там то тут, ...просмотры и лайки... просмотры и лайки... просмотры и лайки...
Олег, название канала содержит в себе слово "Культура", но глядя на Ваш coding style у меня просто кровь из глаз.
Даже не знаю что предложить) Если только принять чужой стиль. Мне бывало по 5 проектов в месяц попадало и каждый пишет как умеет, я научился принимать его, много времени экономит)