Сколько видосов не смотрю, все называют val константой. Но это не так. val - это read-only переменная. Для того чтобы объявить константу в котлине нужно использовать const val!
@@sergsuper открой официальную документацию, там чёрным по белому написано, что "read-only local *variables* are defined using the keyword val. They can be assigned a value only once." И отличие там существенное. Константа задаётся во время компиляции, а val можно задать во время выполнения.
Имею удовольствие поддерживать крупные kotlin проекты, так вот, это жуть как неприятно по сравнению с java проектами, сильно сказывается отсутствие декомпилятора для котлин и т.д. Крупным компаниям, заинтересованным в развитие и поддержке проекта я бы крайне не рекомендовал использовать котлин.
"разработчики пытаются вытеснить джаву и потому постарались сделать так, чтобы миграция проектов с котлина на джаву была максимально простой". причем и в субтитрах так
"отсутствие геттеров и сеттеров" прямо сейчас изучаю котлин на JetBrains Academy и в данный момент как раз на теме "Геттеры и Сеттеры" :D вроде как они есть, или я чего то не понял)))
Насчет геттеров и сеттеров "Для каждого объявленного свойства Kotlin сгенерирует поле, метод чтения (геттер) и, если надо, метод записи (сеттер).Прямо объявить поле в классе нельзя. Kotlin инкапсулирует поля, защищая данные в поле и открывая доступ к ним через методы свойств. Метод чтения свойства определяет правила его чтения. Методы чтения создаются для всех свойств. Метод записи определяет правила присваивания значения свойству, поэтому он генерируется только для изменяемых свойств, - другими словами, если свойство объявлено с ключевым словом var" пример class Rectangle(val height:Int, val width:Int) { val isSquare:Boolean get() = height==width }
@@BeBr0, это ведь логичное нововведение. Зачем нужно каждый раз генерировать геттеры и сеттеры, если в 99% они просто возвращают переменную, либо просто присваивают новое значение? Разумнее писать их только тогда, когда они отличаются от стандартного поведения. Читаемость кода выше.
не я на котлин не пойду, я только начал разбираться в java кодю уже 1.5 года а тут БАЦ ТЕБЕ котлин вылиз блин... только один вопрос, пока они делают котлин они про java не забудут?
джава еще будет жить и жить. на твой век хватит точно. говорю как человек мимо проходящий и ничего общего с программированием не имеющий. но по факту это так....
Java не умрет т.к она используется в очень многих сферах кроме Android, а Котлин же чисто под андроид подходит. Возможно там он её и заменит потом, но полностью яву не забудут)
Я сначала выучил полностью питон за месяцев так 7-8, потом джаву на 85% за месяц. Потом через пару месяцев узнал про котлин и перепрыгнул на него с джавы за неделю.
«Единственный минус Котлина - это его сложность». Котлин это свой мир, со своим компилятором - там свои баги тоже есть, с кучей стыковок с джавой - где не все гладко бывает также, хоть и заявляется почти полная совместимость - она на 99% есть, но если вы столкнетесь с этим процентом будет вам проблема лишняя, в котлин не так мало проблем, как вы думаете. Хоть и не так много как в той же скала!
У тебя примитивы хранятся в стэке , всегда , как более быстрый способ достать из памяти. Ты не можешь получить напрямую доступ к переменным, потому в heap тебя никто не пустит , даже объекты оставляют указатели на себя в стэке, где хранятся метаданные, че за объект , и где его адресное пространство в heap
Почему то когда сравнивают джаву и котлин , у всех поголовно какое то сравнение с 8 версией джавы. Где нету варов, нету рекордов и еще много всего .Даже на курсах по котлину , везде говорят одно и то же. Хоть про корутины бы кто рассказал
Он не простой, а запутанный Требует опыта, тогда как на джаве кодить проще в плане фундаментального понимания кода То есть на джаве быстрее освоишься, но если ты уже программист то котлин для тебя будет простым в том плане что писать будешь код быстрее
1995 - "я тогда еще не родился" т.е. тебе меньше 27 лет, но при этом в каком то ролике говорил "у меня 7 лет опыта преподавания" это типа не закончив бакалавр с 20 лет преподавать начал?) чет где то свистишь походу
@@Raven-lg7td а что не так, с 20 лет преподавать? Я с 14-ти лет программирую, начинал вообще с дельфи. В чём проблема? В чём суть претензии? Я это делал "абы как", а он мог целенаправленно подтягивать свои навыки и в 20 лет уже заниматься этим. Не всем же аболтусам быть
А это новое видео? Как бы в java всё это давно присутствует. var есть, Unmodifiable списки есть, авто-геттеры через record, функциональное программирование через lambda. По сути, Kotlin - это просто java без legacy, но и без обратной совместимости. Обвешанный свистоперделками, но ни одна из них не может действительно сделать Kotlin лучше, так как работа над ядерным кодом JVM всё-таки в основном направлена на java. Вот выходит Loom через 10 дней и Continuation котлиновские тоже можно выбрасывать. Понимаю, многим нравится Kotlin, но он всё же дитя тёмных лет Java, когда язык развивался медленно, а сейчас разработка OpenJDK даёт прикурить не только JVM-языкам.
Не думаю что Kotlin будет полностю заменть Java , почему ? да потому что уже моногое написно в Java , И большенство комании ищеть Java разрабов имменоо по этому !
По поводу типов в kotlin спорно, вроде бы он имеет только ссылочные типы данных (Представлен классами), но на уровне компилятора там идет адаптация под примитивный тип, который храниться целеком на стеке.
Дело не в совместимости. Классы вообще-то и в Java есть, как и в Kotlin. Итак, все примитивы в Kotlin это неизменяемые классы с соответствующими названиями. Но в теории компилятор может их менять на настоящие JVM примитивы. Так что в Kotlin нет доступа к примитивам.
Я рассматривал языки без надстроек. Зачем использовать ломбок, если можно не использовать? Ну и я надеялся, что мои зрители увидят в этом ролике очевидный посыл - любое сравнение языков программирования необъективно Всегда будут люди которым нравится джава и те, кому нравится котлин, не вижу в этом никаких проблем, особенно учитывая их совместимость
@@BeBr0как по мне котлин уже лучше и практичнее джавы, минус - это компиляцию примерно на 20-25 процентов дольше, но оно того стоит. Код начинает писаться намного быстрее и чище
@@Das.Kleine.Krokodil По умолчанию классы в контлин являются final - от них нельзя наследоваться. Это сделано для того, чтобы разработчики отдавали предпочтение композиции
@@BeBr0 За счёт простаты синтекса котлина его "трудные фичи" по типу экстеншенов и DSL даются куда проше чем в том же C++ или Паскале. Так же сильно помогает адекватная дока с примерами по языку
Котлин предназначен для android ... И как бы все. язык с динамической типизацией не способен тащить большие проекты. Убрать типизацию и поменять синтаксис это не значит сделать продолжение java- это значит сделать другой язык.