Kotlin – Ngôn ngữ lập trình mới cho phát triển ứng dụng Android

K

Kotlin là một ngôn ngữ lập trình có thể sử dụng cho nhiều nền tảng, nó có thể được chạy cho Server side , Javascript, Native, Android. Trong blog này mình tập trung vào Kotlin cho ứng dụng Android. Như chúng ta đã biết tại sự kiện Google I/O diễn ra ngày 17/05/2017 tại California, Mỹ, Google đã tuyên bố Kotlin chính thức trở thành ngôn ngữ lập trình được hỗ trợ trên Android, bên cạnh Java và C++. Cho đến thời điểm hiện tại, một số nhà phát triển như Expedia, Pinterest, Square và Flipboard đã và đang trong quá trình dùng Kotlin để phát triển nền tảng ứng dụng của mình.

1. Kotlin là gì?
Kotlin là một ngôn ngữ lập trình dạng statically typed, chạy trên Java Virtual Machine (jvm), Kotlin biên dịch tới JVM bytecode hoặc JavaScript, giống như Java,Kotlin là ngôn ngữ do JetBrains phát triển. Và tính đến thời điểm hiện tại, Google đã phát hành Kotlin đến phiên bản 1.3.

2. Ưu điểm của Kotlin:
Dù không thiếu các ngôn ngữ biên dịch sang Java bytecode, nhưng có một vài yếu tố làm cho Kotlin nổi bật hơn cả. Sau đây mình xin liệt kê một số ưu điểm của ngôn ngữ lập trình kotlin:

  • Kotlin cũng giống như nhiều ngôn ngữ lập trình không phải Java khác, tức là cũng sẽ chạy trên JVM và sử dụng các công cụ và thư viện hiện có của Java. Và ngược lại Java cũng có thể sử dụng các item được xây dựng trong Kotlin.

  • JetBrains đã luôn chú trọng đến tính tương hợp với Java. Mặc dù Kotlin có một số tính năng hoàn toàn mới chẳng hạn như một type system được thiết kế để ngăn chặn các bug như các null pointer reference, nhưng quan trọng là nó làm việc cùng với code và cơ sở hạ tầng hiện có của Java. Kotlin không có trình quản lý gói và build system của riêng nó, do Java đã có sẵn.

  • Kotlin là một ngôn ngữ dễ học, cú pháp trong sáng, dễ hiểu. Có nét giống Scala nhưng đơn giản hơn.

  • Kết hợp những gì tốt nhất của lập trình hàm và thủ tục. 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. 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.

  • Code ngắn gọn hơn so với ngôn ngữ java.

  • Ưu điểm so với java, với cơ chế null-safety, Java developer sẽ không còn lăn tăn với khái niệm NullPointerExceptions (NPE).

  • Được hỗ trợ chính thức trên IDE Android Studio.

3. Nhược điểm của Kotlin:
Không có ngôn ngữ lập trình nào là hoàn hảo! Bên cạnh những ưu điểm, ngôn ngữ hiện đại này cũng có những nhược điểm, mặc dù Kotlin có rất nhiều thứ để cung cấp cho các nhà phát triển Android, nhưng ngôn ngữ vẫn là mới và có những nhược điểm nhất định, đó là:

  • Thời gian chạy Runtime, thư viện tiêu chuẩn của Kotlin và runtime sẽ làm tăng kích thước tập tin .apk của bạn. Mặc dù nó chỉ tương đương với khoảng 800KB, nhưng nếu ứng dụng của bạn đã lớn sẵn rồi thì 800KB phụ có thể làm nó phình to và khiến người dùng nghĩ lại trước khi tải về ứng dụng của bạn.

  • Không hẳn là code dễ đọc đối với beginner, 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. Ngoài ra, nếu sử dụng không hợp lý, quá tải toán tử của Kotlin có thể dẫn đến số code đó có thể khó khăn để đọc.

  • Vì mới ra mắt không lâu nên cộng đồng phát triển ứng dụng cũng nhỏ hơn rất nhiều so với java. Nếu bạn chuyển đổi sang Kotlin, thì bạn có thể không truy cập được vào một số hướng dẫn, bài đăng trên blog, và tài liệu hướng dẫn sử dụng, và có thể nhận được ít sự hỗ trợ từ cộng đồng tại những nơi như các diễn đàn và Stack Overflow. Vào thời điểm bài viết, tìm kiếm cho Kotlin trong Stack Overflow chỉ trả hơn 4.600 được dán nhãn Kotlin – so với hơn 1.000.000 bài viết có chứa các từ khóa Java.

4. Đặc điểm của ngôn ngữ Kotlin:
Sau đây là các đặc điểm của ngôn ngữ lập trình Kotlin mà mình nhận thấy sau một thời gian tìm hiểu:

  • Null-Safety: Một trong những cạm bẫy phổ biến trong các ngôn ngữ lập trình, bao gồm cả Java là cho phép 1 thành phần nào đó được Null. Nếu không chắc chắn thành phần đó được phép Null hay không sẽ rất dễ xảy ra lỗi không lường trước được, gây nguy hiểm cho hệ thống của bạn. Cụ thể, trong java sẽ gây ra 1 exception là NullPoiterException hoặc viết ngắn gọi là NPE. Kotlin nhằm mục đích xóa bỏ NullPoiterException trong code của chúng ta. Ngay khi khai báo biến với Kotlin, bạn đã phải chỉ rõ biến đó có được phép Null hay không. Có 2 trường hợp được phép đó là : không thể Null và có thể Null.
    – Khai báo 1 biến cho phép null
    var b: String? = "abc" // có thêm dấu ? sau kiểu của biến
    b = null // compilation ok
    val l = b.length // not safe
    – Khai báo biến không được phép Null
    var a: String = "abc"
    a = null // compilation error
    val l = a.length // safe
    Chúng ta có thể thấy Kotlin đã khắc phục được NPE trong Java. Các biến cho phép Null hay không được phép Null đã được xác định ngay trong quá trình khai báo biến, các IDE sẽ giúp chúng ta phát hiện ra lỗi ngay khi compile. Việc phát hiện ra lỗi sớm khi compile sẽ tốt hơn so với khi runtime. Nó giúp hệ thống của chúng ta an toàn hơn.
  • Khai báo Biến:Có 2 từ khóa khai báo biến trong Kotlin là var và val
    – Từ khóa var sử dụng khi giá trị của biến thay đổi,val sử dụng khi giá trị của biến không thay đổi.
    – Từ khóa val giống như readonly trong C# hoặc final trong Java.
    – Biến val phải được khởi tạo lúc khai báo
    – Từ khóa Void trong java hay C# sẽ được thay thế bằng Unit trong Kotlin

  • String template: String trong kotlin có thể chứa các biểu thức template, tức là những kết quả trả về hoặc biến có thể được nối vào trong 1 String. Một biểu thức template bắt đầu với $$ và tên biến. Ví dụ:val apples = 4 println(I have $apples apples“)

  • Kế thừa và override: Ngôn ngữ Kotlin vẫn mang những tính chất của lập trình hướng đối tượng.
    – Mặc định class trong Kotlin đều là final nghĩa là không được phép kế thừa.
    – Trong class final (tức là không có từ khóa “open”) thì việc khai báo các hàm, thuộc tính open bị cấm.
    – Ở 1 lớp con khác, hàm được đánh dấu là override thì chính nó là open (lại được kế thừa từ lớp khác), nếu muốn chống override thì lại sử dụng từ khóa final.

  • Chỉ định truy cập Visibility Modifier:
    – Có 4 loại Visivility Modifiers trong Kotlin: private, protected, internal, và public .
    – Nếu không chỉ rõ thì mặc định là public.
    – Các chỉ định truy cập : private, protected và public giống cách sử dụng trọng java.
    – Riêng internal ta có thể sử dụng trong cùng module.

  • Truyền tham số trong hàm, Kotlin cho phép chúng ta thay đổi vị trí tham số trong hàm.

5. Tương lai của ngôn ngữ Kotlin
Kotlin liên kết với Java và cung cấp sự thay đổi không ngừng của mã và hệ thống cấp cao sang Java và cung cấp cách Migration dễ dàng từ Java với khả năng tương thích ngược. Với các tính năng như nhiều khai báo hơn, ít mã, cơ sở dữ liệu ngôn ngữ hỗn hợp và diễn cảm hơn Java, Kotlin sẽ là tương lai cho các ứng dụng doanh nghiệp và di động thời gian tới.

6. Kết luận
Cuối cùng, chúng ta đã tìm hiểu được phần nào về ngôn ngữ Kotlin, tất nhiên đó là một phần rất nhỏ mà mình đã tìm hiểu được về ngôn ngữ hiện đại này và còn rất nhiều những cái ưu, nhược, đặc điểm của của ngôn ngữ Kotlin mà mình chưa tìm ra. Thông qua những hiểu biết về ngôn ngữ Kotlin thì chúng ta có thể cân nhắc ngôn ngữ này có thể là ứng viên sáng giá thay thế cho java được hay không?

Nguồn tham khảo: https://viblo.asia/

 

Tagcloud

Posts