5 เหตุผลที่ Android Developer ควรจะเปลี่ยนมาใช้ Kotlin

ณ ปี 2019 นี้เชื่อว่าคงไม่มีใครในสายงาน Android Developer ที่ไม่เคยได้ยินชื่อของ Kotlin แล้ว โดยล่าสุดในงาน Google I/O 2019 ทาง Android Team ของ Google ก็ออกมาประกาศว่าแนวโน้มของ Android Development จะเป็นไปในแบบ Kotlin-First หรือมีการให้ความสำคัญกับ Kotlin มากกว่านั่นเอง

“We’re announcing that the next big step that we’re taking is that we’re going Kotlin-first,” Chet Haase

รูปในงาน Google I/O 2019 ขณะที่ คุณ Romain Guy ถามว่ามีใครใช้ Kotlin บ้าง

ตัวผมเองได้เริ่มเรียนรู้และใช้งาน Kotlin มานับจากที่ทาง Google ได้ประกาศให้ Kotlin เป็น First class citizen language นับตั้งแต่ Google I/O 2017 และผมก็ขอมาตอกย้ำอีกเสียงนึงว่า Kotlin จะทำให้ ชีวิตการ Coding ของคุณดีขึ้นจริงๆนะ

ในบทความนี้ผมจะไม่ขอลงลึกด้าน Technical ถ้าจะให้ลงลึกถึงข้อดีของตัวภาษา ก็อาจจะต้องใช้เวลาเป็นวันกว่าจะบอกกล่าวกันได้หมด แต่ผมจะให้ขอข้อมูลและสาระน่ารู้เพื่อเป็นการประกอบการตัดสินใจเผื่อท่านไหนยังลังเลว่าควรจะเริ่มศึกษา Kotlin ดีหรือไม่

ผมขออนุญาตเริ่มต้นด้วย Fun Facts เกี่ยวกับ Kotlin สักเล็กน้อย

Kotlin ถูกใช้ในการทำงานบน Platform Android มากที่สุด

จากผลสำรวจล่าสุดของ Website https://pusher.com/state-of-kotlin ได้แสดงให้เห็นว่า Kotlin ได้ถูกนำมาใช้ใน Platform Android สูงที่สุด

Kotlin ได้รับการโหวตให้เป็นภาษาที่ได้รับความรักมากที่สุดเป็นอันดับ 2 ❤️

ข้อมูลอ้างอิงจาก Stack Overflow Developer Survey 2018

ข้อมูลที่กล่าวมาได้แสดงให้เห็นว่า ได้มีการใช้ Kotlin ใน community ของ Android Developer อย่างแพร่หลาย และ ยังได้รับ Feedback จาก community โดยรวมที่ดีทีเดียว


ส่วนเหตุผลหลักๆที่ Android Developer ควรจะเริ่มศึกษาและใช้งาน Kotlin ผมได้สรุปมา 5 ข้อต่อไปนี้

  1. Official Document, Sample Project และ Libraries จาก Google มีแนวโน้มที่จะ Support Kotlin มากขึ้น

นี่เป็นรูปภาพของหน้า website https://developer.android.com ที่ผมได้ Capture ไว้เมื่อปลายปี 2018

https://developer.android.com

ลองสังเกตบริเวณด้านขวาล่างของรูปภาพ (ขออนุญาตซูมให้ดูชัดๆ)

อย่างที่คุณผู้อ่านน่าจะสังเกตเห็นว่านี่มัน Icon ของ Kotlin นี่นา!

ตอนนั้นไม่แน่ใจเหมือนกันว่า Google ต้องการจะสื่ออะไรจากการใส่ Icon นี้เข้ามา แต่ ณ ขณะนี้ก็คงถือว่าชัดเจนแล้วล่ะครับ จากการประกาศในงาน I/O 2019

ขณะที่เปิด Document อะไรก็ตามในหน้า Website ของ developer.android.com/training จะมี option ให้เลือก sample code ทั้ง Kotlin และ Java แต่ Kotlin จะขึ้นมาเป็นภาษา default เลย

ยิ่งไปกว่านั้นตัว Code ของ Application Google I/O 2018 ก็ยังเป็น Pure Kotlin Project อีกด้วย https://github.com/google/iosched

เท่านั้นยังไม่พอ ตัว Libray ใหม่ Jetpack Compose (https://developer.android.com/jetpack/compose) ที่เพิ่งเปิดตัวไปใน Google I/O 2019 ก็สร้างขึ้นมาสำหรับคนที่ใช้ Kotlin โดยเฉพาะเลย

โดยสรุปแล้วก็คือ เนื่องจาก Google ได้ประกาศว่า Android Development จะเป็นไปในทาง Kotlin-First แล้ว ดังนั้น Official Document ของ Android, ตัว Sample Project และ Library ใหม่ๆ ที่ออกมากจากทาง Google จะเอนเอียงไปทาง Kotlin มากกว่า

2. ทางทีมพัฒนามีการ Optimize Performance สำหรับ Kotlin อย่างต่อเนื่อง

อ้างอิงจาก Android Developer Blog (https://android-developers.googleblog.com/2018/08/introducing-android-9-pie.html)

มี section หนึ่งใน Blog เขียนเอาไว้ว่า

We’ve made an enduring commitment to Kotlin in Android and continue to expand support including optimizing the performance of Kotlin code. In Android 9, you’ll see the first results of this work — we’ve improved several compiler optimizations, especially those that target loops, to extract better performance.

นั่นหมายความว่า Application ที่เขียนด้วย Kotlin จะ Compile ด้วย Performance ที่ดีขึ้นในขณะที่ Run บน Android 9 โดยเฉพาะในส่วนของ code ที่เป็น Loop สิ่งที่ท่านผู้อ่านจะต้องทำก็เพียงแค่ update Android Studio’s Kotlin plugin เพื่อที่จะได้รับ Improvement ใหม่ๆเท่านั้นเอง

3. Java กับ Kotlin สามารถทำงานร่วมกันได้ 100%

https://www.simplifiedtechy.net/why-switch-to-kotlin/

ถึงแม้ว่า Project ที่ท่านผู้อ่านกำลังพัฒนา หรือ ว่า ทำงานด้วย อยู่นั้นจะถูกเขียนบน Java ทั้งหมดก็ไม่แปลว่า Project นั้นจะไม่สามารถนำ Kotlin มาใช้ได้เนื่องจาก เราสามารถเรียก Function ที่เขียนบน Java จาก Class ที่เป็น Kotlin ได้ และในทางกลับกัน เราก็สามารถเรียก Function ที่เขียนบน Kotlin จาก Class ที่เป็น Java ได้เช่นกัน

ดังนั้นในกรณีที่มี Feature ใหม่ ที่ต้องเพิ่มลงไปใน Project ของเรา เราก็สามารถสร้าง Kotlin Class เพิ่มขึ้นมาได้เลย! อีกทั้ง เราก็สามารถใช้ Library ที่ใช้ Java เขียนได้เช่น Retrofit, Glide และ Library สุดโปรดของเราอีกมากมาย

แต่ทั้งนี้ทั้งนั้น ก็จะมี Feature ของ Kotlin บางส่วนที่สามารถใช้ได้เวลาถูกเรียกจาก Class ที่เป็น Java แต่ก็ไม่ได้เป็นอุปสรรคใหญ่อะไรมากนักในการทำงาน

4. Kotlin นั้นเรียนรู้ได้ง่าย

Kotlin นั้นไม่ใช่ภาษาที่จู่ๆ ก็ถูกสร้างขึ้นด้วยหลักการใหม่แต่อย่างใด ถ้าหากท่านผู้อ่านเคยทำงานกับ Java และมีความเข้าใจ Concept ของ OOP(Object Oreinted Programming) แล้วมาลอง เขียน Code Kotlin ดูก็น่าจะเข้าใจได้อย่างไม่ยากเย็นเลย ดังตัวอย่าง Snippet ง่ายๆด้านล่างนี้

ด้วยความรู้ในภาษา Java จะเห็นได้ว่าเราสามารถอ่านและทำความเข้าใจ Snippet ด้านบนได้ โดยจะมีความแตกต่างในเรื่องการประกาศ function และตัวแปรเล็กน้อยเท่านั้นเอง

5. การเริ่มเขียน Kotlin บน Android เป็นจุดเริ่มต้นสู่สิ่งใหม่ๆ

ถึงแม้ว่าในปัจจุบัน Kotlin จะถูกใช้งานในการพัฒนาบน Platform มากที่สุด แต่จริงๆแล้วยังมีอีกหลายสิ่งหลายอย่างที่ Kotlin สามารถนำไปใช้พัฒนาได้ เช่น

  • Kotlin JS: ด้วยตัว Technology Kotlin JS จะทำให้ Kotlin สามารถ compile เป็น Javascript ได้ (https://kotlinlang.org/docs/reference/js-overview.html)
  • Kotlin/Native for Native: Technology นี้ทำให้ Kotlin สามารถ compile Native Binary Code ได้ซึ่งจะ Support การ Run บน Platform ต่างๆดังนี้ iOS(arm32, arm64, emulator x86_64), MacOS (x86_64), Android (arm32, arm64), Windows (mingw x86_64), Linux (x86_64, arm32, MIPS, MIPS little endian), WebAssembly (wasm32 )(https://kotlinlang.org/docs/reference/native-overview.html#kotlinnative-for-native)
  • Multiplatform Project: Technology นี้จะทำให้ iOS และ Android สามารถ Share Code บางส่วนร่วมกันได้

ผมคิดว่าการเริ่มต้นเรียนรู้สิ่งใหม่ๆ จากสิ่งที่เราคุ้นเคยอยู่แล้ว นั้นจะทำให้เราเรียนรู้ได้รวดเร็วยิ่งขึ้น ดังนั้นการเริ่มเขียน Application Android ด้วย Kotlin ก็จะน่าจะทำให้เราสามารถเรียนรู้ Kotlin ได้รวดเร็วยิ่งขึ้นเช่นกัน และ เราก็สามารถต่อยอดความรู้ที่มีใน Kotlin ไปประยุกต์ใช้ในการพัฒนาบน Platform อื่นๆได้ เสมือนว่า Kotlin นั้นเป็น ยานพาหนะพาเราไปสู่โลกใหม่ๆใน ฐานะ Developer นั่นเอง

สรุป

ในปัจจุบัน ผมนี้คิดว่า Kotlin เป็นอีกหนึ่ง Skill ที่ Android Developer ทุกคนควรจะเรียนรู้ และ มีติดตัวไว้ เนื่องหลายๆปัจจัย ทั้งเรื่อง ความสามารถและความสวยงามของตัวภาษา, แนวโน้มการ Support ด้าน Documentation และด้านอื่นๆ จาก Google และ การนำไปประยุกต์ใช้กับ Platform อื่นๆ

สำหรับคนที่คุ้นเคยกับภาษา Java อยู่แล้วยิ่งไม่ต้องเป็นกังวล การเริ่มต้นเขียน Kotlin นั้นไม่ใช่เรื่องยากอย่างที่คิด 😀


Leave a Reply

Your email address will not be published. Required fields are marked *