kotlin fixes many of the issues a lot of people had with java and adds a lot of extra cool features that be utilized to reduce codebase size:
type inference: in java, u have to constantly type out the type of the variable, with type inference, the type of the variable is inferred by the compiler, this cuts down on the verbosity
null safety: null pointer errors are a common thing in java, u constantly have to do if (somevariable != null) checks to make sure things arent null. Kotlins way around this is, to integrate the null safety into the type hierarchy. Every type has 2 technical types, a guaranteed null safe type ie Int, and a nullable type ie Int? this makes null checking really seamless with the type system, getting rid of the nested if null checks with ?. (safe calling) or with !! (double bang) operator
data class: when u need to just hold data in a class, data classes are really nice since they do many of the common methods that u would create normally. a copy method, equals, hashcode, and getters a