กำเนิด Kotlin
Kotlin เป็นผลงานของบริษัท JetBrains บริษัทซอฟต์แวร์จากยุโรปตะวันออก (สำนักงานใหญ่อยู่ที่สาธารณรัฐเช็ก แต่ก็มีสำนักงานอยู่ในรัสเซียด้วย) ซึ่งเรารู้จักบริษัทนี้ในฐานะผู้สร้าง IntelliJ IDEA ซอฟต์แวร์ IDE ชื่อดังในโลกของ Java
JetBrains เห็นข้อจำกัดของภาษา Java (ที่ถือเป็นคนละส่วนกับ Java Platform และ JVM) จึงพัฒนาภาษาโปรแกรมตัวใหม่ขึ้นมาเพื่อใช้แทนภาษา Java แต่ยังคอมไพล์เป็นไบต์โค้ดเพื่อรันบน JVM อยู่เช่นเดิม
เนื่องจากทีมของ JetBrains ที่พัฒนาภาษานี้อยู่ที่เมืองเซนต์ปีเตอร์สเบิร์ก ประเทศรัสเซีย จึงนำชื่อของเกาะ Kotlin Island ที่อยู่ตรงอ่าวหน้าเมืองเซนต์ปีเตอร์สเบิร์ก มาตั้งเป็นชื่อภาษานั่นเอง
ภาษา 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
ทำไมกูเกิลถึงสนับสนุน 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 ได้เลย