w , ,

FajneFajne Dobre!Dobre! ŚwietnieŚwietnie Że co?Że co? WnerwWnerw SmuteczekSmuteczek

Kotlin dla początkujących – czym jest i jak zacząć?

kotlin

Kotlin – jest to statycznie typowany język programowania ogólnego przeznaczenia, który stawia na wieloplatformowość. Język jest opracowywany przez firmę JetBrains, a nad znakiem handlowym Kotlina pieczę sprawuje Kotlin Foundation.

Kotlin został zaprojektowany do współdziałania z Javą. Dlatego w ramach jednego projektu opartego na JVM można łączyć te dwa języki.
Inferencja typów (potocznie znana jako wnioskowanie typu na podstawie przypisywanej wartości) w Kotlinie pozwala na bardziej zwięzłą składnię. Kotlin celuje głównie w JVM, ale także można go skompilować do JavaScriptu bądź też kodu natywne binarnego (wykorzystując kompilator LLVM). Co daje możliwość uruchomienia go na urządzeniach wbudowanych lub uniemożliwiających obsługę JVM.

Kotlin a Java

Kotlin jest potężnym, nowoczesnym językiem programowania, który jest bardzo ekspresyjny i znacznie bardziej zwięzły niż Java. Dlatego Java zyskała reputację technologii, przy pomocy której tworzyć możemy solidny i niezawodny multiplatformowy. Jednak każdy kto pracował z Java ten wie, że brakuje jej wielu ficzerów i powoli staje się przestarzała, co sprawia, że Kotlin jest świetnym kandydatem do zastąpienia jej.

Java vs Kotlin - porównanie języków programowania

Kotlin – podobieństwa do innych języków

Kotlin pod względem swoich pomysłów i celów jest bardzo podobny do języka Apple Swift wykorzystywanego do tworzenia aplikacji na macOS i iOS. Przede wszystkim podobieństwa między tymi dwoma językami pomogą programistom przenosić aplikacje z iOS na Androida, zachowując kluczową wydajność oraz sens kodu.

Podsumowując ten fakt w połączeniu z restrykcyjną polityką wykorzystywania bezpłatnie Javy spowodowały, że community Androida znacznie częściej wybiera Kolina do tworzenia aplikacji.

Zalety języka

Jeśli chodzi o zalety ściśle technologiczne, dostarcza on nam bogate wsparcie do programowania funkcjonalnego. Poza tym firma JetBrains wbudowała zabezpieczenia przed błędami związanymi z null’ami bezpośrednio w system typu. To sprawia, że język ten jest znacznie bardziej odporny na błędy, a tym samym łatwiejszy i tańszy w utrzymaniu. Osobiście uważam, że to jeden z topowych przewag Kotlina nad Javą.

Kotlin – zastosowanie

Oprócz Androida (a ostatnio również iOS), Kotlin jest również świetny do rozwoju kodu JVM, co ułatwia budowanie aplikacji desktopowych, internetowych i backendowych serwerów przy pomocy ogólnie stosowanych frameworków Javy takich jak Hadoop, Spark czy też Spring!

Spring Boot i Kotlin

Podobnie jak z Javą – Spring świetnie integruje się z językiem Kotlin. Tworząc aplikacje w Spring Boot możemy nawet łączyć oba języki do budowy aplikacji.

Na przykład przyjrzyjmy się kontrolerowi, który zwraca imię z licznikiem wywołań:

@RestController
class HelloController {

    val counter = AtomicLong()

    @GetMapping("/hello")
    fun greeting(@RequestParam(value = "name", defaultValue = "World") name: String) =
            Hello(counter.incrementAndGet(), "Eluwina, $name")

}

data class Hello(val id: Long, val message: String)

Data class to klasa modelowa będąca odpowiednikiem Records znanych z Java 14.
Kody źródłowe porównujące ten sam kontroler napisany w Java i Kotlinie znajdziesz na moim GitHubie.

Wnioski

Mimo lekkiego narzutu przy uruchamianiu aplikacji wykonanej w Kotlinie zauważyć możemy, że kod napisany w Javie jest o wiele bardziej złożony składniowo. Podobnie można wysunąć wniosek, że Kotlin ułatwi pracę programistom, którzy chcą pisać złożone oprogramowanie zachowując jak największą czytelność. Musimy też wiedzieć, że język jest w ciąż w fazie intensywnego rozwoju, więc możemy spodziewać się dalszych popraw jego funkcjonowania. Twórcy języka opracowują Kotlin/Native, które kompiluje kod Kotlina do bibliotek natywnych, aby umożliwić kompilację dla platform, na których maszyny wirtualne nie są pożądane lub możliwe, na przykład:

  • iOS (arm32, arm64, simulator x86_64)
  • macOS (x86_64)
  • watchOS (arm32, arm64, x86)
  • tvOS (arm64, x86_64)
  • Android (arm32, arm64, x86, x86_64)
  • Windows (mingw x86_64, x86)
  • Linux (x86_64, arm32, arm64, MIPS, MIPS little endian)
  • WebAssembly (wasm32)

Jakie są Twoje doświadczenia z Kotlinem? Czy warto się go uczyć?

Źródła:
https://kotlinlang.org
https://www.netguru.com/blog/kotlin-pros-and-cons

Napisane przez Przemysław Bykowski

Aktywny programista i energiczny trener. Specjalizuje się w Spring Boot i uczę go w ramach AkademiaSpring.pl. Po godzinach udzielam się na YouTubach. Więcej o mnie.

Dodaj komentarz

HTTP Client w Java! Gson, OkHttp, REST Assured, Retrofit – Co wybrać?

programista w Norwegii

Rzuciłem pracę konsultanta, wykładowcy i przeprowadziłem się do Norwegii