TopGit
Đánh giá repo GitHub

Kotlin: Ngôn ngữ lập trình đa nền tảng cho JVM

JetBrains/kotlin
KTopGit review image for JetBrains/kotlin
Review by Topgit.dev for JetBrains/kotlin, with GitHub repository stats and README context.
Nhận định nhanh

Kotlin là ngôn ngữ tĩnh kiểu của JetBrains, biên dịch sang JVM bytecode, JavaScript và mã native qua LLVM. Nên chọn Kotlin nếu bạn đang viết code Java hoặc Android và muốn có null safety, coroutines cùng cú pháp gọn hơn mà không phải bỏ toolchain build hiện tại. Nên bỏ qua nếu team chưa có kinh nghiệm JVM nào cả — đường học tập giả định bạn đã quen Gradle và IntelliJ IDEA từ trước.

Sao
★ 53.4k
Fork
⑂ 6.4k
Người đóng góp
👥 1.2k
Ngôn ngữ
Kotlin
Giấy phép
Xem trong repo
Chủ đề
Mobile
Cập nhật
Aug 2026
Trang chủ
GitHub

Kotlin là gì?

Kotlin là ngôn ngữ lập trình đa dụng do JetBrains tạo ra, ban đầu được thiết kế như một lựa chọn gọn và an toàn hơn Java trên JVM. Từ đó Kotlin phát triển thành ngôn ngữ đa nền tảng: cùng một codebase có thể nhắm tới JVM, Android, JavaScript và nền tảng native qua LLVM, với Kotlin Multiplatform cho phép chia sẻ logic nghiệp vụ giữa bản build Android và iOS.

Những vấn đề của Java mà Kotlin giải quyết

Code Java chạm vào một tham chiếu null có thể crash ngay lúc runtime. Hệ thống kiểu của Kotlin đánh dấu kiểu nullable bằng `?`, nên compiler chặn truy cập không an toàn ngay từ lúc biên dịch — không còn bất ngờ NullPointerException nằm sâu ba lớp gọi hàm. Data class giúp cắt bớt phần lặp lại khi phải tự viết equals(), hashCode(), toString() và getter cho một value holder đơn giản. Coroutines thay thế code callback lồng nhau cho tác vụ bất đồng bộ, nên việc gọi tuần tự nhiều network call không cần thêm một thư viện reactive riêng.

Các tính năng ngôn ngữ chính

  • Null safety — kiểu nullable được đánh dấu bằng `?`, compiler báo lỗi truy cập không an toàn trước khi chạy.
  • Coroutines — hàm nhẹ, có thể suspend, tích hợp sẵn trong ngôn ngữ cho tác vụ bất đồng bộ mà không cần lồng callback.
  • Extension function — thêm method vào một class không phải của bạn (kể cả class Java) mà không cần kế thừa.
  • Data class — chỉ một khai báo sinh ra equals(), hashCode(), toString() và copy() cho value holder.
  • Type inference kết hợp static typing — viết `val x = 5` không cần khai báo kiểu tường minh nhưng compiler vẫn kiểm tra kiểu.
  • Kotlin Multiplatform — chia sẻ logic nghiệp vụ giữa Android, iOS, desktop và web từ một codebase, theo README.
  • Tương tác trực tiếp với Java — gọi thẳng thư viện Java hiện có và biên dịch ra cùng loại JVM bytecode.
Số sao GitHub của repo này thay đổi thế nào theo thời gian. Nguồn: star-history.com.Xem lịch sử sao

Build Kotlin từ source

Repo này build bằng Gradle: chạy `./gradlew <tasks-and-options>` trên Unix/macOS hoặc `gradlew <tasks-and-options>` trên Windows. Gradle toolchains tự tải và cấu hình JDK cần thiết từ dự án Eclipse Adoptium, hoặc bạn có thể trỏ Gradle tới JDK đã có sẵn qua biến môi trường liệt kê trong gradle.properties. Trên Windows, README yêu cầu chạy `git config core.longpaths true` trước để tránh lỗi đường dẫn quá dài. Lần build đầu tiên sẽ tải `intellij-core` (API cho compiler dòng lệnh) và bản đầy đủ IntelliJ IDEA Community Edition (`idea-full`) cho module plugin — README cảnh báo các gói này khá lớn, có thể timeout nếu mạng chậm, và gợi ý tăng timeout bằng `-Dhttp.socketTimeout=60000 -Dhttp.connectionTimeout=60000`. Build Kotlin/Native được tài liệu hoá riêng trong kotlin-native/README.md, và một số artifact của Maven plugin build tách khỏi Gradle hoàn toàn — xem libraries/ReadMe.md.

Vì sao developer chọn Kotlin

  • Biên dịch ra cùng loại JVM bytecode như Java và gọi thẳng thư viện Java — không cần viết lại gì để đưa Kotlin vào codebase hiện có.
  • Null safety nằm ngay trong hệ thống kiểu, không phải một quy ước hay một linter bạn phải nhớ chạy.
  • Coroutines cắt bớt phần lặp của code bất đồng bộ so với callback lồng nhau hay phải thêm thư viện reactive riêng.
  • Kotlin Multiplatform chia sẻ logic nghiệp vụ giữa Android và iOS từ một codebase, theo README.
  • Được quản trị bởi tổ chức phi lợi nhuận Kotlin Foundation chứ không chỉ theo roadmap của một hãng, theo README.

Hạn chế đã biết

  • Lần build từ source đầu tiên tải cả bản đầy đủ IntelliJ IDEA Community Edition (`idea-full`) lẫn `intellij-core` — README gọi các gói này đủ lớn để timeout nếu mạng chậm.
  • Build trên Windows cần thêm bước `git config core.longpaths true` mà bản Unix/macOS không cần.
  • Hướng dẫn build Kotlin/Native nằm ở một README riêng (kotlin-native/README.md) thay vì tài liệu build chính, và một số artifact Maven plugin build tách hẳn khỏi Gradle.
  • Repo chỉ tài liệu hoá cách build compiler từ source, không nói cách cài Kotlin để viết ứng dụng hàng ngày — phần đó không được đề cập ở đây.
Xem trên GitHubTrang chủ

Kotlin so với Java, Scala và các ngôn ngữ JVM khác

Java — cùng target JVM và tương tác đầy đủ, nhưng hệ thống kiểu không có null safety và nhiều boilerplate hơn cho một data holder đơn giản.Scala — cũng chạy trên JVM với hệ thống kiểu biểu cảm hơn, nhưng đường học tập dốc hơn và compile chậm hơn Kotlin.TypeScript — bước đi tương tự cho codebase JavaScript nếu target là browser hoặc Node thay vì JVM/Android.Swift — lựa chọn của Apple cho team ưu tiên iOS; Kotlin Multiplatform chia sẻ logic với iOS nhưng UI native vẫn cần viết riêng bằng Swift.

Khi nào Kotlin là lựa chọn phù hợp

Kotlin là lựa chọn hợp lý cho team đã có code Java hoặc Android muốn giảm lỗi null-pointer và boilerplate mà không phải đổi runtime — nó biên dịch ra cùng JVM bytecode và gọi thẳng thư viện Java hiện có. Kotlin cũng hợp với team làm cả Android lẫn iOS muốn dùng chung một lớp logic nghiệp vụ qua Kotlin Multiplatform thay vì duy trì hai codebase riêng. Nó là lựa chọn yếu hơn cho dự án làm mới hoàn toàn, không ràng buộc JVM, nơi một ngôn ngữ không mang theo di sản cũ có thể dễ tuyển người hơn.

Câu hỏi thường gặp về Kotlin

Kotlin có miễn phí sử dụng cho mục đích thương mại không?

Kotlin được phát hành theo Apache License 2.0, theo README của repo, nên dùng cho mục đích thương mại không tốn phí bản quyền.

Tôi có thể đóng góp cho Kotlin compiler không?

Kotlin chào đón đóng góp từ bên ngoài — repo dẫn người đóng góp tới tài liệu hướng dẫn contributing trước khi gửi thay đổi.

Kotlin hỗ trợ những nền tảng nào?

Kotlin biên dịch ra JVM bytecode, JavaScript và mã native qua LLVM, phủ Android, iOS, desktop, server và web.

Kotlin Multiplatform hoạt động như thế nào?

Kotlin Multiplatform cho một codebase chia sẻ logic nghiệp vụ giữa Android, iOS, desktop và web, còn mỗi nền tảng vẫn có code UI native riêng — Compose Multiplatform mở rộng việc chia sẻ đó sang cả UI.

Sự khác biệt giữa Kotlin/JVM và Kotlin/JS là gì?

Kotlin/JVM biên dịch code Kotlin ra JVM bytecode để dùng trong backend Java hoặc app Android, còn Kotlin/JS biên dịch cùng ngôn ngữ đó ra JavaScript cho browser hoặc Node.js.

Kotlin có hỗ trợ chính thức Gradle và Maven không?

Kotlin tự build bằng Gradle và còn tài liệu hoá một đường build riêng bằng Maven cho một số artifact, chủ yếu là Maven plugin, theo libraries/ReadMe.md của repo.

Trường hợp sử dụng tốt nhất

  • Phát triển ứng dụng Android — ngôn ngữ Google khuyến nghị cho code Android mới, tương tác đầy đủ với module Java sẵn có.
  • Chia sẻ logic nghiệp vụ giữa Android và iOS — Kotlin Multiplatform gánh phần logic dùng chung, mỗi nền tảng vẫn giữ UI native riêng.
  • Backend chạy trên JVM cần đứng cạnh code Java cũ mà không phải viết lại toàn bộ.
  • Script build Gradle và plugin viết bằng Kotlin DSL thay vì Groovy.

Cách sử dụng

Một số Gradle task hữu ích sau khi checkout xong: `clean` xoá kết quả build, `dist` đóng gói bản phân phối compiler vào `dist/kotlinc/`, `install` build và publish các artifact công khai vào Maven repository cục bộ, còn `coreLibsTest`, `gradlePluginTest` và `compilerTest` lần lượt chạy bộ test của stdlib/reflect/kotlin-test, test cho Gradle plugin, và toàn bộ test của compiler. Muốn tái tạo build giống TeamCity thì thêm `-Pteamcity=true` — build local mặc định bỏ qua proguard và không nén jar. Ai cần bản compiler mới nhất có thể dùng bản `-dev` bằng cách thêm Maven repository `https://redirector.kotlinlang.org/maven/bootstrap` rồi chọn version từ danh sách metadata. README không nói tới một đường cài đặt đơn giản cho việc viết ứng dụng Kotlin hàng ngày — muốn vậy thì dùng plugin Kotlin của IntelliJ IDEA mà README dẫn link tới.

Repo liên quan

Nguồn & ghi công

Thông tin, trích dẫn và hướng dẫn build lấy từ repo GitHub JetBrains/kotlin (github.com/JetBrains/kotlin) và README của repo.

Dữ liệu GitHub · đồng bộ lần cuối 14 thg 8, 2026Đánh giá bởi Henry
Về TopGit

Muốn nghe thêm một ý kiến về kotlin?

Hỏi một AI đọc được trang này — một cú bấm là có ngay nhận định về kotlin.

GitHub