Châu Ngọc Duy Khương

Google IO (ngày 17 tháng 5 năm 2017), Google chính thức giới thiệu Kotlin là ngôn ngữ lập trình thứ 3 được hỗ trợ để phát triển ứng dụng Android sau Java và C++ trong tiếng vỗ tay hoan nghênh của các lập trình viên tham dự. Đã lâu rồi Google mới giới thiệu một ngôn ngữ lập trình mới gây hứng khởi cho các nhà phát triển Android. Vậy, Kotlin là gì và có gì đặc biệt để trở thành ngôn ngữ phát triển ứng dụng Android bên cạnh 2 ông lớn là Java và  C++ ?

image001
Google IO (ngày 17 tháng 5 năm 2017), Google chính thức giới thiệu Kotlin là ngôn ngữ lập trình thứ 3 được hỗ trợ để phát triển ứng dụng Android sau Java và C++  (Ảnh Internet)

Đầu tiên cũng phải xác nhận lại rằng Kotlin không phải là ngôn ngữ được Google tạo ra, mà là do JetBrains – một công ty cung cấp công cụ lập trình nổi tiếng như IntelliJ, RubyMine, WebStorm và Android Studio… – tạo ra vào năm 2011, hiện đang đứng 43 trong bảng xếp hạng các ngôn ngữ lập trình (theo TIOBE Index tháng 6 – 2017), quá tốt cho một ngôn ngữ mới 5 năm tuổi . Cũng vì được tạo ra từ một công ty chuyên về các IDE như JetBrains, mục tiêu mà Kotlin hướng tới làm mang đến sự dễ dàng cho các lập trình viên, điều mà JetBrains đã làm rất tốt trong bao năm qua ( điển hình như việc IntelliJ vượt qua cả Eclipse trở thành IDE Java tốt nhất). Bản thân Google cũng tạo ra rất nhiều ngôn ngữ của riêng họ như Dark, Go … nhưng hầu hết chúng đều dành cho một mục đích riêng rẽ hoặc là quá khó cho người bắt đầu, trong khi đó Java là một nền tảng mạnh mẽ nhưng cú pháp của nó trở nên lỗi thời qua từng năm, các ngôn ngữ trên JVM cũng bắt đầu nở rộ cùng với kiểu lập trình hàm function programming hay reactive như Groovy, Closure, Scala … Tất cả đều là sự bổ sung tuyệt vời dành cho nền tảng JVM, vậy tại sao cần phải có thêm Kotlin ? Tất cả đều nằm ở tính dễ sử dụng của nó, Kotlin được gọi bằng cái tên modern programming language.

Đầu tiên cần để ý rằng Kotlin là ngôn ngữ kiểu tĩnh, tức là bạn cần khai báo kiểu của biến trước khi sử dụng. Điều này có thể bạn cho là sẽ làm cho code dài hơn hoặc khó sử dụng hơn nhưng tế kiểu tĩnh mang lại thời gian compile nhanh hơn cũng như an toàn hơn khi ta thao tác với kiểu dữ liệu của biến, hạn chế thấp nhất các rủi ro khi tính toán. Các ngôn ngữ hiện đại khác như Swift hay Go cũng là kiểu tĩnh, cho hiệu suất cao hơn so với các ngôn ngữ scriptting như Python, Ruby … Kotlin kế thừa nhiều đặc tính từ các ngôn ngữ khác, với Kotlin, có 04 đặc tính nổi trội của ngôn ngữ này : concise, safe, interoperable & tool-friendly

  • Concise: Kotlin ngắn gọn hơn so với Java (chẳng hạn như loại bỏ “;”) , gíup developer tăng productivity
  • Safe : với elvis operator (?) , loại bỏ được các lỗi như null pointer exception
  • Interoperable : Kotlin có thể chạy trên 3 môi trường là JVM, Browser, và Native với LLVM
  • Tool-friendly : hỗ trợ từ các công cụ của JetBrains
  • Kotlin hỗ trợ đầy đủ các features từ OOP bên cạnh đó là các chức năng mới mẻ đến từ function programming (FP) và unblocking programming:
  • Inline function
  • Extension function
  • Higher-Order functions and Lambdas
  • Tail recursive
  • Unblocking với coroutines

….

Kotlin cũng mang tới các khái niệm về lazy, mutable, singleton bằng các từ khoá tích hợp bên trong ngôn ngữ, trong khi đó, bộ runtime của Kotlin chỉ rơi vào khoảng 900kB, nghĩa là ứng dụng Java của bạn sẽ cần thêm cỡ 1MB cho các tính năng mà Kotlin cung cấp ! So với các ngôn ngữ khác như Scala, thời gian biên dịch và bộ runtime rõ ràng nhỏ hơn rất nhiều trong khi các tính năng có được không hề thua kém thậm chí vượt trội. Bên cạnh đó, Kotlin cũng có một build tool tương tự như Maven, Gradle hay SBT tên là Kobalt.

image002
Stephanie Saad Cuthbertson – PM Director, Android Google Brown University giới thiệu về Kotlin Ảnh Internet

Tóm lại thì với các tính năng tuyệt vời như vậy chúng ta có nên lao vào Kotlin ngay luôn lập tức không? Câu trả lời sẽ là không nếu như bạn không cảm thấy một chút hứng thú nào với Kotlin. Bản thân cũng là một developer tôi thấy rằng điều quan trọng nhất trong lập trình đó là cảm hứng (inspiration), và thường rất khó ép được một lập trình viên làm việc trên công nghệ mà họ không yêu thích, đó cũng là lý do thường xuyên xảy ra các cuộc “thánh chiến” giữa Java vs dotNet hay Ruby vs Python… và tôi yêu các cuộc chiến ấy. Chúng làm cho mỗi ngôn ngữ ngày càng tốt hơn, mang đến nhiều lợi ích hơn cho lập trình viên.

Có ý kiến cho rằng chỉ cần học tốt một ngôn ngữ là được vì các ngôn ngữ khác đều giống nhau như thế, tôi cho rằng điều đó không đúng. Khi bạn học thứ gì đó bạn sẽ cần rèn luyện 2 thứ là kiến thức và kỹ năng, kiến thức là cách thiết kế phần mềm, design , cấu trúc dữ liệu, giải thuật, OOP còn kỹ năng là cách bạn debug chương trình, các tips để chương trình nhanh hơn, code clean hơn hay phong cách lập trình tùy vào từng ngôn ngữ … Kiến thức bạn có thể học qua sách vở còn kỹ năng bạn học được qua thực hành. Kiến thức là nền tảng và thường rất ít khi thay đổi trong khi đó kỹ năng thì liên tục được cập nhật. Vì vậy khi bạn học một thứ gì đó mới mẻ cũng chính là tăng phần kỹ năng.

Quay lại với Kotlin, nó tương thích Java 100% thì bạn học làm gì? Có một ai đó từng viết nếu học một ngôn ngữ mới mà không làm bạn thay đổi cách tư duy thì không đáng để học. Điều này rất đúng trong trường hợp của Kotlin – nó sẽ gíúp bạn tiếp cận với các khái niệm mới mẻ và quan trọng nhất trong giới lập trình hiện giờ mà có dịp mình sẽ trình bày ở các bài viết chi tiết sau. Bản thân mình  cũng muốn học thêm một ngôn ngữ lập trình hàm để hiểu hơn về nó cũng như cập nhật kiến thức về lập trình sau ngần ấy năm thì tôi thấy rằng Kotlin là sự lựa chọn rất tốt. Nó dạy bạn cách lập trình hàm, reactive hay unblocking bên cạnh đó vẫn sử dụng được kiến thức OOP và hoàn toàn tương thích với hệ thống viết bằng Java, thế nên bạn hoàn toàn có thể viết Kotlin bên cạnh Java trong cùng project mà theo tôi đó là điểm mạnh nhất mà Kotlin nhắm tới.

image003
Bạn hoàn toàn có thể viết Kotlin bên cạnh Java trong cùng project – Ảnh Internet

Và quan trọng nhất đó là Kotlin cho phép bạn bắt đầu lại việc học lập trình với phong cách mới, ngắn gọn, xúc tích hơn và vui hơn. Đã bao lâu rồi bạn chưa học một ngôn ngữ lập trình mới hay thậm chí là chưa từng biết lập trình thì Kotlin là lựa chọn dành cho bạn. Bạn có thể lập trình frontend, backend và mobile chỉ với một ngôn ngữ duy nhất! Còn nếu bạn ngại thay đổi tư duy lập trình, hệ thống hiện tại vẫn chạy tốt hay đơn giản việc học là một gánh nặng thì Kotlin chắc là không dành cho bạn rồi. Let’s code for fun !

Kotlin sẽ được giới thiệu tại Google IO extend 2017 – Tp Hồ Chí Minh , các bạn có thể đăng ký tại  https://ticketbox.vn/event/googleioextendedvn-65718/41617 (thông tin từ Vietnam Kotlin User Group https://www.facebook.com/groups/vnkotlin/ )