ทำไมคุณถึงควรรู้จัก Kotlin ในปี 2024

TopToppy
odds.team
Published in
2 min readJun 25, 2024
Spring I/O 2024

เมื่อเดือนที่ผ่านมาผมได้มีโอกาสไปร่วมงาน Spring I/O 2024 ภายในงานเป็นงาน conference สำหรับคนที่สนใจใน Spring Framework นอกจากหัวข้อของ feature ใหม่ใน Spring Framework 6.2 และ Session ต่างๆในงาน ก็มีหัวข้อให้พูดคุยในประเด็นของ JAVA 24 vs Kotlin 2.0 ว่าเราควรใช้อันไหนดี

และผมผู้เลือก Kotlin ก็เลยอยากหาแนวร่วมเพิ่มสักหน่อย เพื่อคนอื่นๆ ที่ยังไม่รู้จัก Kotlin แล้วอยากลองใช้ มาดูกันว่า Kotlin มีดียังไงบ้าง

1. พัฒนาขึ้นโดย JetBrain

เผื่อใครที่ไม่รู้จัก JetBrain คือผู้พัฒนา IntelliJ IDEA (backup ดี มี IDE ที่ดี support)

2. Official Language สำหรับ Android Development

ในปี 2017 Google ได้ประกาศให้ Kotlin เป็น Preferred Language สำหรับการพัฒนา Android (Backup เจ้าใหญ่แสดงว่าของเค้าดี)

3. Interoperable with Java

Kotlin เป็นภาษาการเขียนโปรแกรมที่เมื่อคอมไพล์แล้วจะกลายเป็น bytecode แบบเดียวกับ Java นั่นหมายความว่า Kotlin สามารถทำงานร่วมกับ Java ได้โดยไม่มีปัญหา และยังสามารถเข้าถึง libraries มากมายของ Java ได้อีกด้วย (ทำให้การเปลี่ยนมาใช้ Kotlin สำหรับผู้ใช้ Java เป็นเรื่องง่าย)

ตัวอย่างการทำงานร่วมกันระหว่าง Kotlin และ Java:

// .java
import java.util.ArrayList;

public class JavaClass {
public ArrayList<String> makeList(String name) {
ArrayList<String> list = new ArrayList<>();
list.add(name);
return list;
}
}
// .kt
fun main() {
val javaClass = JavaClass()
val list = javaClass.makeList("Java")
list.add("Kotlin") // ใช้ lib จาก Java Standard Library ใน kotlin
for (item in list) {
println(item)
}
}// Out put: Java Kotlin
  • Java code สามารถใช้งานร่วมกับ Kotlin ได้เลย
  • Kotlin สามารถใช้ libraries ของ Java ได้อย่างเต็มประสิทธิภาพ

4. Concise Syntax

หนึ่งในเหตุผลที่คนที่ย้ายจาก Java มาเป็น Kotlin ชอบคือความสะอาดตาของ code ยกตัวอย่างเช่นการสร้าง class

// Java 17
public class User {
private final String name;
private final int age;

public User(String name, int age) {
this.name = name;
this.age = age;
}

public String getName() {
return name;
}

public int getAge() {
return age;
}
}

// Java 22
public record User(String name, int age) {}

// Kotlin
data class User(val name: String, var age: Int)
  • Java 17: ต้องสร้าง class พร้อม constructor, getters, setters (ถ้ามี), และ methods อื่น ๆ เอง
  • Java 22: เพิ่ม record เพื่อประกาศ data class ได้อย่างกระชับมากขึ้น
  • Kotlin: ใช้ data class ซึ่งมีที่กระชับและสะดวก

Note: ในตัวอย่างอาจจะไม่เห็นภาพของความแตกต่างมากนักใน Java 22 กับ Kotlin แต่จริงๆมีรายละเอียดมากกว่านี้ไว้ผมจะมาอธิบายในส่วนนี้เพิ่ม

5. Null Safety

Kotlin เป็นภาษาที่มาพร้อมกับ Null safety ซึ่งช่วยลดปัญหาเกี่ยวกับ NullPointerException ที่เกิดขึ้นบ่อยใน Java

fun main() {
var name: String? = "Kotlin"
println(name?.length) // ใช้ ? เพื่อเช็ค null และเรียกใช้ property ถ้าไม่เป็น null

name = null
println(name?.length) // Output: null
}

6. Modern Language Features

  • Kotlin Coroutines: สำหรับการเขียนโปรแกรมแบบ asynchronous programing ถือว่าเป็นของดีใน Kotlin เลยสำหรับผมมันทำให้ง่ายขึ้นและอ่านง่ายกว่าโค้ดแบบ callback หรือ Future ที่ใช้ใน Java
import kotlinx.coroutines.*

fun main() = runBlocking {
launch {
delay(1000L)
println("World!")
}
println("Hello,")
}
// "Hello,"
// "World!"
  • Extension Functions: เป็น feature ที่มีในหลายๆภาษา ช่วยเพิ่ม function ให้กับ class ที่มีอยู่แล้วโดยไม่ต้องแก้ไข class เดิม
fun String.isPalindrome(): Boolean {
return this == this.reversed()
}
// เพิ่มฟังก์ชัน isPalindrome ให้กับ class String โดยไม่ต้องแก้ไข class String เดิม

fun main() {
val str = "madame"
println(str.isPalindrome()) // Output: false
}

7. Kotlin Multiplatform:

Kotlin Multiplatform (KMP) ช่วยให้นักพัฒนาสามารถเขียนโค้ดที่สามารถรันได้บนหลาย platform เช่น Android, iOS, JavaScript และ Native ได้โดยใช้ code base เดียวกัน รายละเอียดสามารถหาเพิ่มเติมได้ที่ KMP

8. Enterprise Adoption:

หลายองค์กรเริ่มมีการใช้งาน Kotlin ใน Production มากขึ้น เนื่องจากความสามารถในการทำงานร่วมกับ Java, ความสะอาดตาของโค้ด และ ความทันสมัยของภาษา ตัวอย่างองค์กรที่ใช้ Kotlin และ KMP

จากการจัดอันดับของ TIOBE Index 2024 ล่าสุด Kotlin ได้ขยับอันดับจาก 29 ขึ้นมาเป็น 19 แสดงให้เห็นถึงการยอมรับและความนิยมที่เพิ่มขึ้น

Conclusion

Kotlin เป็นภาษาสมัยใหม่ที่มีการสนับสนุนจากเจ้าใหญ่ของวงการทั้ง JetBrains และ Google ไม่ว่าคุณจะเป็น Java Programmer, Android Developer, multiplatform Developer หรือคนทั่วไปที่มองหาภาษาที่ทันสมัย อ่านง่าย สะอาดตา และการทำงานร่วมกับ Java ได้อย่างราบรื่น ทำให้องค์กรสามารถย้ายไปใช้ Kotlin ได้โดยไม่ต้องเขียนโค้ดใหม่ทั้งหมด ดังนั้นลองศึกษาเกี่ยวกับ Kotlin วันนี้ แล้วคุณจะสนุกสนานในโลกของ software development มั่งนะครับ 😜

--

--