12/08/2018, 17:44

Android: Java - Kotlin?

Bạn đang bắt đầu vọc vạch code ứng dụng android, bạn lên google search kết quả cho bạn 2 lựa chọn: Java & Kotlin, Bạn chưa biết chọn thằng nào? Đau đầu phải không? Tôi cũng vậy! Bạn lên các diễn đàn developer để hỏi. kết quả bạn nhận được là 4 ông khuyên chọn java và 3,5 ông khuyên ...

  • Bạn đang bắt đầu vọc vạch code ứng dụng android, bạn lên google search kết quả cho bạn 2 lựa chọn: Java & Kotlin, Bạn chưa biết chọn thằng nào? Đau đầu phải không? Tôi cũng vậy!
  • Bạn lên các diễn đàn developer để hỏi. kết quả bạn nhận được là 4 ông khuyên chọn java và 3,5 ông khuyên chọn kotlin, nếu bạn vọc vạch code android vào thời điểm mấy năm về trước tôi cam đoan bạn sẽ chon Java
  • Kotlin là lựa chọn của tôi
  • Tôi đã có 2 năm kinh nghiệm code Android Java và tôi quyết định chuyển sang kotlin. Nói đến đây chắc các bạn cũng sẽ nghĩ ngay rằng chắc chắn thằng kotlin phải có cái gì hơn thằng Java thì tôi mới chuyển phải không? Vậy nó có ưu điểm gì?
  • Cho dù Java là một trong những ngôn ngữ lập trình được sử dụng rộng rãi và là ngôn ngữ chính thức để phát triển Android, nhưng có rất nhiều lý do tại sao Java có thể không phải lúc nào cũng là sự lựa chọn tốt nhất cho dự án Android của bạn.

Vấn đề lớn nhất là Java không phải là một ngôn ngữ hiện đại, và mặc dù Java 8 là một bước tiến lớn cho nền tảng, giới thiệu nhiều tính năng mà các nhà phát triển đã chờ đợi (bao gồm cả tính năng lambda), tại thời điểm của bài viết Android chỉ hỗ trợ một phần của các tính năng mà Java 8 cung cấp. Có vẻ như các nhà phát triển Android không chắc sẽ sớm được hưởng lợi một cách đầy đủ từ những tính năng của Java 8, do đó, trong tương lai nếu bạn muốn sử dụng Java trong dự án Android của bạn, thì bạn sẽ gặp khá nhiều khó khăn với Java 7.

Java nhìn chung cũng có một số vấn đề về tài liệu hướng dẫn sử dụng, bao gồm các khối try-catch, thiếu khả năng mở rộng, null-unsafety (vào đó là NullPointerException), chưa kể thiếu sự hỗ trợ cho các tính năng lập trình hàm. Cho dù Java đã bắt đầu thêm một số yếu tố lập trình hàm, chẳng hạn như biểu thức lambda và giao diện hàm, nhưng về cơ bản Java vẫn là một ngôn ngữ thủ tục. Cú pháp của Java cũng là khá dài dòng, đặc biệt là khi so sánh với nhiều ngôn ngữ lập trình hiện đại.

- Có thể thay thế cho java: Một trong những thế mạnh lớn nhất của Kotlin như là một ứng viên để thay thế cho Java là khả năng tương tác rất tốt giữa Java và Kotlin — Bạn có thể thậm chí có code Java và Kotlin tồn tại song song trong cùng dự án, và tất cả mọi thứ vẫn sẽ được biên dịch một cách hoàn hảo.
- Trong thực tế, một khi dự án kết hợp Kotlin và Java của bạn được biên dịch, người dùng sẽ không thể biết những phần nào của dự án của bạn được viết bằng Java, và những phần nào được viết bằng Kotlin.

Bởi vì các lớp Kotlin và Java có thể tồn tại song song trong cùng một dự án, bạn có thể bắt đầu sử dụng Kotlin mà không cần phải làm bất cứ điều gì to tát cả giống như chuyển đổi toàn bộ dự án sang Kotlin hoặc bắt đầu một dự án mới để bạn có thể thử Kotlin.

Nhờ có mức độ tương tác cao, nếu bạn đã có một dự án, bạn có thể thử Kotlin ở một phần nhỏ của dự án mà không ảnh hưởng đến phần còn lại của nền tảng code của bạn. Và, nếu bạn quyết định có muốn tiếp tục sử dụng Kotlin hay không, thì bạn có thể hoặc di chuyển mã Java hiện có của dự án sang Kotlin mỗi lần một tập tin, hoặc để nguyên code Java của dự án và chỉ sử dụng Kotlin cho các lớp và các tính năng mới.

Vì Kotlin là hoàn toàn tương thích với Java, bạn cũng có thể sử dụng phần lớn các thư viện Java và các framework trong dự án Kotlin của bạn—thậm chí nâng cao các framework dựa vào chú thích xử lý.

  • Kotlin nhằm mục đích là một nâng cao đối với Java, chứ không phải hoàn toàn viết lại, rất nhiều các kỹ năng bạn đã có và mài dũa trong suốt sự nghiệp Java của bạn vẫn được áp dụng đối với dự án Kotlin của bạn, và nếu bạn đã và đang code Java thì tin tôi đi việc chuyển sang với Kotlin đối với bạn chỉ như việc chuyển ăn cơm bằng đũa sang ăn cơm bằng thìa mà thôi =))
  • Hiện đang có một số lý thuyết lập trình được sử dụng rộng rãi, nhưng khi nói đến các câu hỏi về "phương pháp nào là tốt nhất", thì không dễ để có câu trả lời. Mỗi kiểu lập trình có tập hợp điểm mạnh và điểm yếu của nó, do đó, mặc dù không thiếu các kịch bản mà lập trình hàm có một lợi thế, thì cũng có rất nhiều vấn đề nơi mà một cách tiếp cận lập trình thủ tục sẽ hiệu quả hơn.

Vậy tại sao bạn cần phải lựa chọn giữa hàm và thủ tục? Giống như nhiều ngôn ngữ lập trình hiện đại khác, Kotlin nhằm mục đích mang lại cho bạn những gì tốt nhất của cả hai bằng cách kết hợp các khái niệm và các yếu tố của lập trình thủ tục và hàm.

  • Kotlin được phát triển bởi JetBrains, công ty đứng sau IntelliJ—IDE mà Android Studio dựa trên nó. Không có gì bất ngờ, rằng Android Studio hỗ trợ tốt cho Kotlin. Một khi bạn đã cài đặt plugin Kotlin, Android Studio làm cho việc cấu hình Kotlin trong dự án của bạn trở nên đơn giản giống như mở một vài menu.
  • Một khi bạn đã thiết lập plugin Kotlin cho Android Studio, IDE của bạn sẽ không gặp vấn đề gì việc hiểu, biên dịch và chạy code Kotlin. Android Studio cũng cung cấp việc gỡ lỗi, tự động hoàn tác, điều hướng code, unit testing, và tái cấu trúc cho Kotlin. Một khi dự án Android Studio của bạn đã được cấu hình để hỗ trợ cho Kotlin, bạn thậm chí có thể chuyển đổi toàn bộ một tập tin mã nguồn Java thành một tập tin Kotlin, với chỉ một vài cú nhấp chuột.
  • Nếu bạn so sánh một lớp Java và một lớp Kotlin cho ra cùng một kết quả, thì cái được viết trong Kotlin thường sẽ gọn gàng hơn nhiều và nhỏ gọn hơn so với những gì được viết bằng Java . Và như mọi nhà phát triển đều biết, code ít hơn có nghĩa là ít lỗi hơn!
  • Kotlin đặc biệt tốt trong việc giảm số lượng code mà bạn cần phải viết, làm cho việc viết code trong Kotlin trở thành một trải nghiệm thú vị hơn nhiều, so với việc viết code trong nhiều ngôn ngữ khác như Java.

Đặc biệt, các extension của Kotlin Android (mà chúng ta sẽ khám phá trong các phần tiếp) càng làm cho code của bạn trở nên ngắn gọn và đẹp mắt hơn rất nhiều so với Java

  • Tính dễ đọc của code: Mặc dù cú pháp ngắn gọn của Kotlin là một trong những thế mạnh lớn nhất của ngôn ngữ, nhưng bạn có thể thấy một số khó khăn ban đầu, đơn giản bởi vì có rất nhiều thứ đang được thực hiện trong một số lượng nhỏ code đó. Java có thể dài dòng hơn, nhưng ngược lại tất cả mọi thứ đều rõ ràng, có nghĩa là những người không quen code Java có xu hướng dễ dàng hơn để hiểu so Kotlin
  • Trên đây chỉ là những chia sẻ nhỏ của mình để các bạn hiểu hơn về kotlin, trong loạt bài tiếp theo mình sẽ đi vào cụ thể về những cải tiến của Kotlin so với Java.
0