รู้จักภาษา Kotlin ภาษาที่สองของโลก Android ใช้ทดแทน-ควบคู่กับ Java ได้ 100%

by mk
18 May 2017 - 09:54

ข่าวสำคัญของโลกโปรแกรมมิ่งวันนี้คือ Android รองรับภาษา Kotlin อย่างเป็นทางการ และถือเป็นภาษาที่สองถัดจาก Java

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

กำเนิด Kotlin

Kotlin เป็นผลงานของบริษัท JetBrains บริษัทซอฟต์แวร์จากยุโรปตะวันออก (สำนักงานใหญ่อยู่ที่สาธารณรัฐเช็ก แต่ก็มีสำนักงานอยู่ในรัสเซียด้วย) ซึ่งเรารู้จักบริษัทนี้ในฐานะผู้สร้าง IntelliJ IDEA ซอฟต์แวร์ IDE ชื่อดังในโลกของ Java

JetBrains เห็นข้อจำกัดของภาษา Java (ที่ถือเป็นคนละส่วนกับ Java Platform และ JVM) จึงพัฒนาภาษาโปรแกรมตัวใหม่ขึ้นมาเพื่อใช้แทนภาษา Java แต่ยังคอมไพล์เป็นไบต์โค้ดเพื่อรันบน JVM อยู่เช่นเดิม

เนื่องจากทีมของ JetBrains ที่พัฒนาภาษานี้อยู่ที่เมืองเซนต์ปีเตอร์สเบิร์ก ประเทศรัสเซีย จึงนำชื่อของเกาะ Kotlin Island ที่อยู่ตรงอ่าวหน้าเมืองเซนต์ปีเตอร์สเบิร์ก มาตั้งเป็นชื่อภาษานั่นเอง (พิกัดเกาะ Kotlin ใน Google Maps)

ภาษา Kotlin ถือกำเนิดขึ้นในปี 2011 และค่อยๆ ได้รับความนิยมเพิ่มมากขึ้นในโลกของนักพัฒนาสาย Java เคียงคู่ไปกับภาษาตระกูล JVM ตัวอื่นๆ เช่น Groovy, Clojure, Scala

Kotlin ออกเวอร์ชัน 1.0 ในปี 2016 ส่วนเวอร์ชันปัจจุบันขณะที่เขียนข่าวนี้คือ 1.1.2 ที่เพิ่งออกในเดือนเมษายน 2017

หน้าตาของ Kotlin

เกริ่นกันมาพอสมควรแล้ว เพื่อไม่ให้เสียเวลาก็โชว์หน้าตาของ Kotlin กันดีกว่าครับ

Hello World

แบบยาวขึ้นมาอีกนิด

syntax ของ Kotlin เป็นลูกผสมของภาษาตระกูล C ที่ใช้วงเล็บปีกกา {} แต่ไม่จำเป็นต้องมี semicolon (;) เป็นตัวสิ้นสุดบรรทัด (จะใส่หรือไม่ใส่ก็ได้)

จุดต่างสำคัญอีกประการของ Kotlin คือการประกาศประเภทของตัวแปร (type) จะอยู่หลังชื่อตัวแปร (variable name) โดยมีเครื่องหมาย colon (:) คั่นกลาง เช่น a: Int หรือ s: String ตรงนี้จะคล้ายกับภาษาอย่าง Go หรือ TypeScript

สำหรับคนที่อยากลองเล่น Kotlin สามารถเข้าไปเล่นได้จากหน้าเว็บ Try Kotlin ที่มี console ให้เล่นจากหน้าเว็บได้โดยไม่ต้องติดตั้งโปรแกรมอะไรก่อน

แนวคิดของ Kotlin

Andrey Breslav หัวหน้าทีมออกแบบภาษา Kotlin ให้สัมภาษณ์ว่าตั้งใจออกแบบภาษา Kotlin ขึ้นมาเป็นภาษาใหม่เพื่อใช้แทนภาษา Java ที่มีจุดอ่อนหลายอย่าง แต่ไม่สามารถแก้ไขอะไรได้มากนักเพราะต้องทำ backward compatibility

ตอนแรก ทีมงาน JetBrains สำรวจว่ามีภาษาโปรแกรมที่ตรงกับความต้องการหรือไม่ และพบว่าในท้องตลาดมีเพียง Scala เท่านั้นที่ใกล้เคียงที่สุด แต่ปัญหาของ Scala คือคอมไพล์ช้าและเรียนรู้ยาก ส่งผลให้ทีมงานตัดสินใจสร้างภาษาใหม่ที่เข้าใจง่ายกว่าขึ้นมาแทน

แนวคิดของ Kotlin คือเข้ากันได้ 100% กับแพลตฟอร์ม Java เพื่อใช้ประโยชน์จากไลบรารี เฟรมเวิร์ค API และเครื่องมือจำนวนมากที่มีอยู่แล้วของโลก Java และสามารถผสมผสานโค้ดภาษา Java/Kotlin ได้ เป้าหมายของ Kotlin คือนำมาใช้แทน Java ในโครงการใหม่ๆ โดยรักษาโค้ด Java ในโครงการเก่าที่เขียนไปแล้ว แต่ก็ยังสามารถให้มันทำงานร่วมกันได้

Kotlin เป็นภาษาแบบ statically-typed หรือต้องประกาศชนิดของตัวแปรอย่างชัดแจ้งเสมอ ด้วยเหตุผลเรื่องความปลอดภัยจากปัญหาหน่วยความจำ (type safety) และประสิทธิภาพ ต่างไปจากภาษา Groovy, Jython, Ruby ที่เป็น dynamically-typed

จุดเด่นอีกประการของ Kotlin เหนือ Java คือสั้นกระชับกว่า ตัวเลขของ JetBrains ระบุว่าสามารถลดจำนวนโค้ดลงได้ 40% ถ้าเปลี่ยนโปรแกรมเดียวกันจาก Java เป็น Kotlin

ตัวอย่างโค้ดภาษา Java

ตัวอย่างโค้ดเดียวกันในภาษา Kotlin

ข้อมูลเพิ่มเติมอ่านได้จาก Infoworld, Oracle Technology Network

ใครใช้ Kotlin บ้าง

แพลตฟอร์ม

เดิมที Kotlin ออกแบบมาสำหรับแพลตฟอร์ม Java และคอมไพล์เพื่อรันบน JVM เป็นหลัก (Kotlin/JVM) แต่ในภายหลัง Kotlin ก็ขยายรูปแบบการใช้งานมาสู่ Android และแปลงเป็น JavaScript ได้ (Kotlin/JS)

ตอนนี้ทีมงาน Kotlin กำลังพัฒนาให้โปรแกรมภาษา Kotlin สามารถคอมไพล์ได้แบบเนทีฟ (Kotlin/Native) โดยไม่ต้องรันผ่าน virtual machine แต่อย่างใด

IDE

เครื่องมือ IDE ที่สนับสนุน Kotlin ก็หนีไม่พ้น IntelliJ IDEA ของบริษัท JetBrains เอง, มีปลั๊กอินสำหรับ Eclipse และปลั๊กอินสำหรับ Android Studio (ใน Android Studio 3.0 จะผนวกมาให้เลย ไม่ต้องมีปลั๊กอิน)

บริษัทที่นำ Kotlin ไปใช้งาน

บริษัทไอทีชื่อดังหลายราย ต่างนำ Kotlin ไปใช้งานในบางโปรเจคต์ เช่น Pinterest, Evernote, Uber, Pivotal, Atlassian, Expedia, Square เป็นต้น

ทำไมกูเกิลถึงสนับสนุน Kotlin

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

เหตุผลอื่นๆ คือฟีเจอร์ของภาษา Kotlin เองทั้งในเรื่องความปลอดภัยและประสิทธิภาพ รวมถึงการยอมรับจากชุมชนนักพัฒนาด้วย

ประเด็นเรื่องเครื่องมือพัฒนาก็เป็นสิ่งที่กูเกิลให้ความสำคัญ เนื่องจาก Android Studio มีรากฐานมาจาก IntelliJ IDEA ที่เป็นโอเพนซอร์ส ทำให้มั่นใจได้ว่าการสนับสนุน Kotlin ใน IntelliJ IDEA จาก JetBrains ซึ่งเป็นบริษัทเดียวกัน ย่อมเดินหน้าต่อไปได้เป็นอย่างดี

สถานะของ Kotlin ในโลกของ Android

JetBrains จะเป็นฝ่ายเข้าไปพัฒนาฟีเจอร์ด้าน Kotlin ให้กับ Android Studio ร่วมกับทีมงานของกูเกิล และทั้งสองบริษัทจะร่วมกันตั้งมูลนิธิกลางมาดูแล Kotlin ต่อไปในฐานะองค์กรอิสระ (JetBrains ยืนยันว่าไม่ได้ขายบริษัทให้กูเกิลแน่นอน)

สถานะของ Kotlin ใน Android จะเป็นภาษาที่รองรับอย่างเป็นทางการเทียบเท่า Java (first-class supported language) ส่วนฟีเจอร์ของตัว IDE คือ Android Studio (เช่น autocomplete, refactorings) จะรองรับอย่างสมบูรณ์ในเวอร์ชัน 3.0

Kotlin ยังจะเรียกใช้โค้ด C++ ผ่าน JNI ได้เช่นเดียวกับ Java และตัว Android Studio จะสามารถแปลงโค้ด Java เป็น Kotlin ผ่านเมนู Code > Convert Java File to Kotlin File

กูเกิลยอมรับว่าตอนนี้เอกสารและคู่มือของภาษา Kotlin ยังไม่สมบูรณ์ แต่ก็จะทยอยปรับปรุงเอกสารเหล่านี้ให้ดีขึ้นเรื่อยๆ

ตัวอย่างโค้ด Android ในภาษา Kotlin

เริ่มต้นกับ Kotlin

ผู้ที่อยากเขียน Kotlin เฉยๆ สามารถเข้าไปดูรายละเอียดได้จาก เว็บไซต์ Kotlin

สำหรับคนที่อยากเขียนแอพ Android ด้วย Kotlin ตอนนี้ต้องดาวน์โหลด Android Studio 3.0 ที่ยังมีสถานะเป็นรุ่นทดสอบ (canary) แล้วเลือกให้รองรับภาษา Kotlin ได้เลย

ข้อมูลเพิ่มเติม:

Blognone Jobs Premium