• Все
  • Видеоблог
  • Новости
  • Языки программирования
  • Переводы
  • Lifehacks
  • Карьера в IT

< Назад

Главная / Языки программирования / Почему я люблю Java?

Новости

Почему я люблю Java?

Почему я люблю Java лучше Kotlin

Почему я люблю Java?

 

Итак, я недавно закончил курс Coursera под названием «Kotlin для разработчиков Java», и поэтому я чувствую, что являюсь подходящим человеком для одного из самых актуальных вопросов «Kotlin или Java».
В настоящее время трудно найти разработчика Java, который не слышал о Kotlin, потому, что Kotlin получил большую поддержку Google.

 

1. Синтакс KOTLIN

 

Меньше строк кода, то же самое значение, простой рефакторинг, простая отладка, но все это происходит за счет большего времени компиляции. Вот пример:

 

java kotlin

 

2. Kotlin решает проблему долгого обращения с NULL.

 

Одна из наиболее распространенных ошибок во многих языках программирования, включая Java, заключается в том, что доступ к элементу пустой ссылки приведет к исключению пустой ссылки. В Java это будет эквивалентно NullPointerException или NPE для краткости.
Система типов Kotlin предназначена для исключения исключений NullPointerException из нашего кода. Единственными возможными причинами NPE могут быть:

- Явный вызов для выброса NullPointerException ()
- Использование !!
- Некоторая несогласованность данных в отношении инициализации

В Kotlin система типов различает ссылки, которые могут содержать нулевые значения (ссылки, допускающие значения NULL) и те, которые не могут содержать (ненулевые ссылки). Например, обычная переменная типа String не может содержать ноль:

 

var a: String = "abc" 
// Regular initialization means non-null by default

a = null 
// compilation error

 

Чтобы разрешить нулевые значения, мы можем объявить переменную как обнуляемую строку, написанную String?:

 

var b: String? = "abc" // can be set null
b = null // ok
print(b)

 

Есть также другие методы борьбы с нулем в Kotlin, такие как -

 

Проверка на ноль в условиях

 

Во-первых, вы можете проверить, является ли b нулевым, и обрабатывать две опции отдельно:

 

val l = if (b != null) b.length else -1

 

Компилятор отслеживает информацию о выполненной вами проверке и разрешает длительность вызова внутри if. Также поддерживаются более сложные условия:

 

val b: String? = "Kotlin"
if (b != null && b.length > 0) {
print("String of length ${b.length}")
} else {
print("Empty string")
}

 

Безопасные Звонки


Ваш второй вариант - оператор безопасного вызова, написано ?.:

 

val a = "Kotlin"
val b: String? = null
println(b?.length)
println(a?.length) // Unnecessary safe call

 

Это возвращает b.length, если b не нуль, и ноль в противном случае. Тип этого выражения - Int?


Элвис Оператор

 

Когда у нас есть пустая ссылка b, мы можем сказать «если b не нуль, используйте его, в противном случае используйте ненулевое значение»:

 

val l: Int = if (b != null) b.length else -1

 

Наряду с полным выражением if это можно выразить оператором Элвиса, написанным ?:

 

val l = b?.length ?: -1

 

Если выражение слева от?: Не равно нулю, оператор elvis возвращает его, в противном случае возвращает выражение справа. Обратите внимание, что выражение в правой части вычисляется только в том случае, если значение в левой части равно нулю.


Еще одна важная особенность, которую я хотел бы упомянуть, -

 

Стандартная библиотека Kotlin представляет собой набор стандартной библиотеки Java и собственных расширений

 

Это означает, что вы можете использовать стандартные встроенные библиотеки Java вместе с дополнительной собственной библиотекой Kotlin.
Теперь, что я чувствую после написания как минимум месяца в Котлине, так это то, что легкость этого языка делает его немного сложным для понимания.
Самое важное, что нужно учитывать при разработке языка программирования, должно быть то, насколько естественно для человека читать и писать его, и я считаю, что создатели Java проделали действительно хорошую работу здесь.
С другой стороны, с kotlin даже сейчас у меня проблемы с чтением кода; это далеко не интуитивно понятно.
Другие причины, по которым я бы предпочел Java вместо Kotlin:


Классы не являются окончательными по умолчанию

 

Каждый класс должен иметь возможность наследоваться, если явно не указано иное.

 

public class Dog {
}

public class Pomerania extends Dog {
}

 

Это ООП! Расширяются не только интерфейсы и абстрактные классы, а многие из наших шаблонов проектирования основаны на наследовании.
У Котлина этого нет. Мы вынуждены использовать ключевое слово open, чтобы явно сказать, что мы хотим иметь возможность расширять каждый неабстрактный класс, для которого мы будем создавать дочерние элементы.


C обозначение для типов

 

Это классика: тип переменная = значение; , Он читается почти как на английском, и он был там с давних пор по причине. Для функций / методов это также отлично работает: Type function () {}.
И что разработчики Kotlin решили сделать здесь? Полная противоположность, возвращаясь к временам Паскаля и помещая тип справа в качестве переменной var / val: Type = value.


Нет неявного исполняемого кода

 

В Java у нас есть полный контроль над кодом нашего приложения, и мы можем положиться на тот факт, что компилятор никогда не сходит с ума и генерирует код для нас. Это позволяет нам доверять точкам останова для любого вида отладки.
Kotlin предназначен для генерации основного конструктора, всех получателей / установщиков полей и даже равных, hashCode и toString, если вы достаточно сумасшедший, чтобы использовать классы данных.

 

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

 

Поэтому я советую изучать Java и просмотреть наши курсы программирования по Java.

 

 

Похожие

blogName

Языки программирования

Oct 20 2020

8 проектов NodeJS, которые стоит проверить

Читать дальше
blogName

Языки программирования

Jan 17 2024

В чем разница между null и undefined в JavaScript?

Читать дальше
blogName

Языки программирования

Dec 26 2023

Что такое парадигма программирования? Простыми словами

Читать дальше
blogName

Языки программирования

Oct 16 2023

Что такое Kotlin?

Читать дальше

Получай полезные статьи, новости и темы ежедневно