JetBrains เปิดตัวภาษา Kotlin เวอร์ชัน 2.0 มีของใหม่ที่สำคัญคือ คอมไพเลอร์ตัวใหม่ K2 ที่เริ่มทดสอบมาตั้งแต่ปี 2022 และเข้าสถานะเสถียร
จุดเด่นของ K2 คือเรื่องประสิทธิภาพในการคอมไพล์ที่เพิ่มขึ้นเกือบเท่าตัว และยังทำงานร่วมกับตัว IDE (IntelliJ IDEA) เพื่อเพิ่มประสิทธิภาพของการไฮไลท์โค้ดได้เร็วขึ้น 1.8 เท่า, เติมโค้ดได้เร็วขึ้น 1.5 เท่า
K2 กลายมาเป็นคอมไพเลอร์สำหรับแปลงโค้ดภาษา Kotlin ไปใช้งานกับแพลตฟอร์มอื่นๆ แบ่งได้ 4 หมวดกว้างๆ คือ
- JVM (เช่น กรณีของ Android)
- JS สำหรับการใช้งานบนเว็บ
- Native สำหรับแพลตฟอร์มอื่นๆ เช่น iOS หรือเดสก์ท็อป
- WebAssembly (Wasm) สำหรับเป็นไบนารีประสิทธิภาพสูงในเบราว์เซอร์
การที่ K2 กลายมาเป็นคอมไพเลอร์มาตรฐานตัวเดียวของ Kotlin ทุกแพลตฟอร์ม (ก่อนหน้านี้ K2 รองรับเฉพาะ JVM แล้วค่อยๆ ขยายมาแพลตฟอร์มอื่น) ทำให้การซัพพอร์ต Kotlin ของแพลตฟอร์มต่างๆ ทั้งด้านฟีเจอร์ ประสิทธิภาพ การแก้บั๊ก ทำได้เร็วมากขึ้น
K2 ยังช่วยให้ Kotlin กลายเป็นภาษาโปรแกรมที่ทำงานข้ามแพลตฟอร์ม หรือ Kotlin Multiplatform (KMP) แชร์โค้ดข้ามกันระหว่างแพลตฟอร์มได้อย่างเต็มที่ และรองรับชุดการเขียน UI อย่าง Compose Multiplatform เต็มรูปแบบ โดยกูเกิลได้ยกคอมไพเลอร์ Jetpack Compose เข้ามาเป็นส่วนหนึ่งของ Kotlin ที่ออกโดย JetBrains ด้วย
ที่มา - JetBrains
Comments
Write once
... Anywhere
..: เรื่อยไป
run elsewhere.
ว่าจะไป flutter เต็มตัวแต่ตอนนี้เริ่มลังเลละ
ถึงจะใช้ Flutter แต่ layer ล่างก็ยังต้องรู้ภาษาอื่นอยู่ดีครับ เพราะงานบางอย่างเขียน native จะให้ผลดีกว่า ถ้าจะใช้งานจริงจังก็คงต้องเรียนรู้นั่นแหล่ะครับ Flutter มันก็ช่วยอำนวยความสะดวกในการออกแบบ UI ได้เยอะ ใส่ลูกเล่นต่างๆ ของ UI ได้โดยต้องออกแรงมากเหมือน platform อื่น แต่ถ้าจำเป็นต้องเข้าถึง library เฉพาะ หรือต้องการประสิทธิภาพสูงมากๆ จาก HW ก็คงหนีการเขียนภาษา native ของแต่ละอุปกรณ์ไม่พ้น อยากให้มองว่า Flutter มันเหมาะกับ Presentation layer ส่วน layer ล่างก็แล้วแต่สะดวก จะเหมาะสมกับงานได้มากกว่า แต่ถ้าทำงานคนเดียวไม่มีทีม เน้นใช้งานบน Android เป็นหลัก platform อื่นเป็นทางเลือก Kotlin แบบ Multiplatform ก็เป็นทางเลือกที่ดี
ส่วนผมก็ยังคงใช้ flutter แล้วใช้ภาษา native เป็น layer ล่างเอา เพราะถนัดแบบนี้ เคยลองพยายามกับ Kotlin มาหลายรอบแล้ว แต่สุดท้ายก็ไปจบด้วยเขียน Java อยู่ดี 555