เหตุใดทีมจึงเลือก Kotlin

ทีมมักจะนำ Kotlin มาใช้ด้วยเหตุผลทั้งของมนุษย์และทางเทคนิค: นักพัฒนาเขียนต้นแบบน้อยกว่าใน Java ระบบประเภทตรวจจับข้อผิดพลาดของตัวชี้ null ณ เวลาคอมไพล์ และ Coroutines เสนอแบบจำลองที่มีโครงสร้างสำหรับ async I/O โดยไม่มี callback hell สำหรับ Android การรับรองของ Google และไลบรารี Jetpack เอียงโครงการใหม่ไปสู่ ​​Kotlin บนเซิร์ฟเวอร์ เฟรมเวิร์กใช้ Kotlin เพื่อให้คุณรักษาการดำเนินการและไลบรารีของ JVM ไว้ในขณะที่ปรับปรุงไวยากรณ์ให้ทันสมัย สิ่งเหล่านี้ไม่จำเป็นต้องมีการเขียนซ้ำครั้งใหญ่ — Kotlin และ Java คอมไพล์เป็นไบต์โค้ดเดียวกันและสามารถอยู่ในโมดูลเดียวได้
พิธีการน้อย: คลาสข้อมูล, args เริ่มต้น, การอนุมานประเภท
ความปลอดภัยแบบ Null มีอยู่ในประเภทต่างๆ
Coroutines สำหรับ async/การทำงานพร้อมกัน
Interop: ใช้ไฟล์ต่อไฟล์
Kotlin กับ Java — แพลตฟอร์มเดียวกัน การยศาสตร์ที่แตกต่างกัน
การเปรียบเทียบระดับสูง (ไม่ครบถ้วนสมบูรณ์)
หัวข้อJava ทั่วไปKotlin ทั่วไป
ค่าว่างไม่จำเป็น<T>; การอ้างอิงที่เป็นโมฆะง่ายต่อการนำไปใช้ในทางที่ผิดที กับ ที? บังคับใช้โดยคอมไพเลอร์
ผู้ให้บริการข้อมูลPOJO + getters/setters/เท่ากับ/hashCodeคลาสข้อมูลในหนึ่งบรรทัด
ฟังก์ชั่นวิธีการภายในชั้นเรียน ผู้ช่วยแบบคงที่ฟังก์ชั่นระดับบนสุด ไวยากรณ์นิพจน์เดียว
สวิตช์เปิดสวิตช์ดั้งเดิม / สตริงเมื่อแสดงออกสมาร์ทร่าย
สตริงการต่อข้อมูลหรือ String.formatเทมเพลตสตริง $name ${expr}
อะซิงก์การโทรกลับ, CompletableFuture, libs แบบโต้ตอบระงับ + coroutines (ไลบรารี)
การใช้ทรัพยากรลองกับทรัพยากรใช้ส่วนขยายอินไลน์ {}
ข้อดีในทางปฏิบัติ
ขยายการ์ดแต่ละใบ
สิ่งที่ Kotlin ไม่ได้แก้ไขอย่างน่าอัศจรรย์

Kotlin ยังคงทำงานบน JVM (เว้นแต่คุณจะกำหนดเป้าหมายแบ็กเอนด์อื่น) ดังนั้นการรวบรวมขยะหยุดชั่วคราว ความซับซ้อนของคลาสพาธ และปัญหาระบบแบบกระจายยังคงอยู่ การเรียนรู้ไวยากรณ์ Kotlin นั้นรวดเร็ว การเรียนรู้สำนวน Kotlin — API ส่วนขยาย, ขอบเขต Coroutine, ขอบเขตหลายแพลตฟอร์ม — ต้องใช้เวลา โดยทั่วไปประสิทธิภาพจะเทียบได้กับ Java ในสภาวะคงตัว เลือกอัลกอริทึมและรูปแบบ I/O ก่อน

การโยกย้ายแบบค่อยเป็นค่อยไปโดยทั่วไป
ชวาที่มีอยู่
โมดูลการผลิต
เพิ่มคอตลิน
ปลั๊กอิน Gradle
รหัสใหม่ใน .kt
การทดสอบหรือคุณสมบัติ
แปลงเส้นทางร้อน
ไม่จำเป็น
หนึ่งขวด
การผสมไบต์โค้ด
ใช้เอกสารอย่างเป็นทางการ (kotlinlang.org) และคู่มือสไตล์ Kotlin สำหรับการตั้งชื่อ — ความสอดคล้องมีความสำคัญมากกว่าไวยากรณ์การเพิ่มประสิทธิภาพแบบไมโคร