Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

Kotlin 1.2 ออกมาแล้ว เน้นเรื่องการ share code ระหว่าง platform

$
0
0

เมื่อวันที่ 28 พฤศจิกายนที่ผ่านมา Kotlin 1.2 ถูกปล่อยออกมา เป็นอีกก้าวที่สำคัญของ Kotlin คือการ reuse code ระหว่าง JVM และ JavaScript โดยที่ Kotlin 1.1 เน้นในเรื่องของ JavaScript เป็นหลัก ดังนั้นทำให้นักพัฒนาสามารถเขียน business logic ด้วยภาษา Kotlin ส่วนการทำงานอื่น ๆ เช่น frontend, backend และ Android app สามารถใช้ code เหล่านี้ได้เลย

โดยที่ Kotlin 1.2 นั้นถูกเพิ่มเข้ามาใน IntelliJ IDEA 2017.3

ซึ่งจะถูกปล่อยออกมาในสัปดาห์นี้ แต่ถ้าใช้งาน Android Studio หรือ IntelliJ IDEA เก่า ๆ ต้องทำการติดตั้งเอง โดยเข้าไปที่เมนู Tools -> Kotlins -> Configure Kotlin Plugin ใน Kotlin 1.2 นั้นมีความสามารถมากมายที่มาจาก contributor ภายนอก ทำให้เห็นว่าชุมชนของ Kotlin โตขึ้นเป็นอย่างมาก มาดูความสามารถที่น่าสนใจกัน

Multiplatform Projects

สามารถทำการสร้างระบบงานต่าง ๆ ทั้ง Backend, Frontend และ Android app จาก code ชุดเดียวกันได้ ซึ่งในแต่ละ project ประกอบไปด้วย
  • Common module สำหรับ code ที่ใช้ในทุก ๆ platform
  • Platform module สำหรับ code ของแต่ละ platform เช่น JVM และ JavaScript โดยสามารถเรียกใช้งาน code จาก common module ได้
แสดงโครงสร้างของ project ดังรูป ในส่วนของ common module นั้นจะมี common code จาก common library ของ Kotlin ประกอบไปด้วย
  • kotlin.test  สำหรับการทดสอบ
  • kotlinx.html สำหรับ Isomorphic rendering หรือ render HTML
  • kotlinx.serialization สำหรับการ marshal พวก Kotlin object ทีส่งไปมาระหว่าง platform ซึ่งสนับสนุนพวก JSON และ PhrotoBuf
ปล. ความสามารถนี้ยังอยู่ในขั้นการทดลองเท่านั้น (experiment) นั่นหมายความว่าพร้อมใช้งาน แต่อาจจะมีการเปลี่ยนแปลงอีก แต่ถ้าเป็นอย่างนั้น ทีมพัฒนาจะมีเครื่องมือในการ migrate ให้

Compilation Performance

ใน Kotlin 1.2 นั้นทำการปรับปรุงเวลาในการ compile ให้รวดเร็วขึ้น โดยเร็วกว่า Kotlin 1.1 ประมาณ 25% และจะทำการปรับปรุงให้เร็วขึ้นใน minor release ต่อ ๆ ไปอีกด้วย รูปแสดงความเร็วในการ compile ของ Kotlin ในระบบงานใหญ่ ๆ ของ Jetbrains

การปรับปรุงความสามารถของภาษาและ library ต่าง ๆ

มีการปรับปรุงบ้างเล็กน้อย ประกอบไปด้วย
  • ปรับปรุง syntax สำหรับการส่ง multiple argument ผ่าน annotaiton
  • สามารถใช้ lateinit สำหรับ property และ local variable ได้แล้ว
  • เรื่องของ Smart cast และ Type inference
  • เพิ่ม package kotlin.math เข้ามาใน standard library
  • เพิ่ม function ใหม่ ๆ สำหรับการทำงานกับ sequence และ collections
สามารถดูข้อมูลและ code ตัวอย่างเพิ่มเติมที่ What’s New in Kotlin 1.2

มาดูความเคลื่อนไหวของ Kotlin

หลังจากที่ในเดือนมีนาคมได้ปล่อย Kotlin 1.1 ออกมา มีการนำไปใช้งานจำนวนสูงขึ้นอย่างมาก มีงาน Kotlin Conference ครั้งแรก ซึ่งมีคนมาร่วมงานประมาณ 1,200 คนจากทั่วโลก สามารถตามไปดู VDO ต่าง ๆ ได้เลย

ที่สำคัญภาษา Kotlin นั้นเป็นอีกภาษาหนึ่งที่ใช้พัฒนา Android app ได้

เป็น Official language สำหรับการพัฒนา Android app โดยใน Android Studio 3.0 นั้นสนับสนุนภาษา Kotlin เลย โดยไม่ต้องทำการติดตั้งอะไรเพิ่มเติม สามารถอ่านเอกสารจากทาง Android ได้อีกคือ ตัวอย่าง code และ Style guide

ข้อมูลที่น่าสนใจจาก Android Studio 3.0 คือ

มี project ที่สร้างด้วยภาษา Kotlin ถึง 17% กันเลยทีเดียว

ในฝั่ง Server side ก็ไม่น้อยหน้า

Spring Framework 5.0 ก็สนับสนุนความสามารถต่าง ๆ ของภาษา Kotlin รวมทั้ง vert.x 3.4.0 ก็สนับสนุนเช่นกัน ฝั่ง Gradle ก็สามารถเขียน Kotlin DSL ได้อีกเช่นกัน

มาดูข้อมูลจาก Github พบว่าจำนวนบรรทัดของ code

ที่เขียนด้วยภาษา Kotlin มีมากกว่า 25 ล้านบรรทัดแล้ว รวมทั้งข้อมูลจาก StackOverflow ก็สูงขึ้นมาเช่นกัน

ยังไม่พอนะ community ก็มีมากกว่า 100 กลุ่มทั่วโลก

สำหรับผู้เริ่มต้นศึกษาสามารถเรียนรู้ได้จากหนังสือต่าง ๆ เช่น

  • Kotlin in Action
  • Kotlin for Android Developers
  • Modern Web Development with Kotlin
อีกทั้งยังมี online course และเอกสารต่าง ๆ ลองไปศึกษากันดูนะ

ถ้าต้องการ upgrade Kotlin สามารถทำได้ดังนี้

เริ่มด้วยการศึกษาผ่าน online คือ Try Kotlin ส่วนช่องทางอื่น ๆ เป็นดังนี้
  • สำหรับ Apache Maven, Gradle และ npm ให้ทำการระบุ version 1.2.0 สามารถอ่านเพิ่มเติมได้
  • สำหรับ IntelliJ IDEA 2017.3 จะมี Kotlin 1.2 มาด้วยอยู่แล้ว ส่วน version ก่อนหน้าต้องทำการ update Kotlin plugin 1.2 เอง
  • สำหรับ Android Studio ให้ทำการติดตั้งและ update ผ่าน Plugin Manager
  • สำหรับ Eclipse IDE ให้เข้าไปยัง Marketplace
  • สำหรับ command-line compiler ให้ทำการ download จาก Github

สุดท้ายเรื่อง compatibility หรือความเข้ากันได้กับ version ก่อนหน้า

ยังคงใช้งานได้ปกติ รวมทั้งยังสามารถปิดความสามารถใหม่ ๆ ได้อีกด้วย ขอให้สนุกกับการเขียน code นะครับ

Viewing all articles
Browse latest Browse all 1997

Trending Articles