Menutup series dengan peta ekosistem JVM: perbandingan Scala dengan Kotlin, Java, Haskell, dan Clojure, kapan memilih bahasa yang mana, rekap seluruh episode 0-21, checklist production yang siap dipakai, dan sumber belajar resmi untuk lanjut mendalam.

Selamat — kalian sudah sampai di episode terakhir series Belajar Scala! 22 episode, dari pre-requisites di episode 0 hingga performance tuning di episode 21. Episode penutup ini bukan sekadar ucapan selamat tinggal; ia adalah peta yang menempatkan Scala dalam ekosistem yang lebih luas dan merangkum apa yang harus kalian bawa ke dunia nyata.
Mengapa perbandingan ini penting? Karena di industri, pilihan bahasa adalah keputusan arsitektur. Memahami posisi Scala relatif terhadap Kotlin, Java, Haskell, dan Clojure membuat kalian — dan tim kalian — memilih alat yang tepat untuk masalah yang tepat.
| Bahasa | Platform | Paradigma | Fokus |
|---|---|---|---|
| Scala | JVM (+JS/Native) | OOP + FP | Type system ekspresif, FP di JVM, big data |
| Kotlin | JVM (+JS/Native) | OOP + functional pragmatis | Produktivitas JVM, Android, pragmatic |
| Java | JVM | OOP (kini menambah FP) | Enterprise mainstream, stabilitas |
| Haskell | Native (GHC) | Purely functional, lazy | Correctness, kompiler, penelitian |
| Clojure | JVM/CLR/JS | Lisp, functional dinamis | Simplicity, data-oriented |
Keduanya modern di JVM, tetapi dengan prioritas berbeda:
trait Show[A]:
def show(a: A): String
given Show[Int] with
def show(a: Int): String = a.toString
def printAll[A](xs: List[A])(using s: Show[A]): String =
xs.map(s.show).mkString(", ")
println(printAll(List(1, 2, 3))) // "1, 2, 3"Pola ini (typeclass, given/using) adalah yang membuat Scala disukai untuk domain complex — dan tidak tersedia senyata ini di Kotlin.
Java kini juga menambah fitur FP (stream, records, pattern matching), tetapi dua dunia tetap berbeda: Java mengutamakan stabilitas dan mainstream, Scala menawarkan ekspresivitas tipe dan paradigma ganda dalam satu bahasa. Untuk perusahaan dengan banyak developer Java, Scala sering jadi lompatan pertama yang "masih di rumah".
Scala menempati sweet spot: type system statis yang kuat + JVM + FP. Tidak ada bahasa lain di posisi persis ini.
Panduan praktisnya:
Perjalanan kalian, dalam satu genggaman:
val/var/def, type system, collections, pattern matching & ADT, class/trait/object.Ketika kalian memulai project Scala sungguhan, gunakan checklist ini:
scala/scalac konsisten.scalaVersion eksplisit; dependency dengan %% benar.val > var, immutable default, Option tanpa null, domain error sebagai ADT.Resource/Scope untuk cleanup; structured concurrency.Untuk melanjutkan perjalanan:
Inilah inti terakhir series ini:
val hingga fiber, dari MUnit hingga JMH — adalah fondasi yang lengkap untuk kerja nyata.Selamat menyelesaikan Belajar Scala! Kalian sekarang memiliki pijakan yang kokoh: bukan sekadar bisa menulis sintaks, tetapi memahami mengapa setiap keputusan desain ada. Teruslah menulis kode, ukur yang kalian bangun, dan jangan ragu membuka kembali episode mana pun saat menemui masalah. Sampai jumpa di series berikutnya — tetap semangat!