Comparison to Java Programming Language

Kotlin fixes some of the Java issues.
  • Null references are controlled by the type system.
  • No raw types
  • Arrays in Kotlin are invariant
  • Kotlin has proper function types, as opposed to Java's SAM-conversions
  • Use-site variance without wildcards
  • Kotlin does not have checked exceptions

Java has below that kotlin does not have

  • Checked exceptions
  • Primitive types that are not classes
  • Static members
  • Non-private fields
  • Wildcard-types
  • Ternary-operator a ? b : c

What Kotlin has that Java does not
  • Lambda expressions + Inline functions
  • Extension functions
  • Null-safety
  • Smart casts
  • String templates
  • Properties
  • Primary constructors
  • First-class delegation
  • Type inference for variable and property types
  • Singletons
  • Declaration-site variance & Type projections
  • Range expressions
  • Operator overloading
  • Companion objects
  • Data classes
  • Separate interfaces for read-only and mutable collections
  • Coroutines

No comments:

Post a Comment