12/08/2018, 16:44

Tổng quan về Kotlin, "Swift của lập trình viên Android"

Kotlin là một ngôn ngữ lập trình mới từ JetBrains. Nó xuất hiện lần đầu tiên vào năm 2011 khi JetBrains công bố một dự án mới có tên là "Kotlin". Giống như Swift, Kotlin là một ngôn ngữ mã nguồn mở. Giống như Java, C, và C++, Kotlin cũng là một ngôn ngữ kiểu tĩnh, "statically typed programming ...

Kotlin là một ngôn ngữ lập trình mới từ JetBrains. Nó xuất hiện lần đầu tiên vào năm 2011 khi JetBrains công bố một dự án mới có tên là "Kotlin". Giống như Swift, Kotlin là một ngôn ngữ mã nguồn mở.

Giống như Java, C, và C++, Kotlin cũng là một ngôn ngữ kiểu tĩnh, "statically typed programming language". Ngôn ngữ kiểu tĩnh là những ngôn ngữ mà các variable cần phải định danh trước khi được sử dụng. Có nghĩa là variable cần phải khai báo và khởi tạo trước.

Về cơ bản thì kiểu Static typing không có nghĩa là chúng ta cần phải khai báo toàn bộ variable trước tiên. Chúng có thể được khởi tạo ở bất cứ đâu trong ứng dụng và các lập trình viên phải làm việc đó, để sử dụng những variable ở nơi mà mình cần. Xét ví dụ như sau:

/* Java Code */
static int num1, num2; //explicit declaration
num1 = 20; //use the variables anywhere
num2 = 30;
/* Kotlin Code*/
val a: Int
val b: Int
a=5
b=10

Bên cạnh lập trình hướng đối tượng thì Kotlin cũng hỗ trợ lập trình hướng thủ tục. Giống như Java, C, C++, fucntion đầu tiên mà Kotlin sẽ chạy là main. Các file được viết bằng Kotlin có đuôi là .kt và .kts

/* Kotlin Code*/
/* Simple Hello Word Example*/

//optional package header
package hello 

//package level function, which return Unit and takes an array of string as parameter
fun main(args: Array < String > ) { 
 val scope = “world”
 println(“Hello, $scope!”) //semicolons are optional, have you noticed that? :)
}

Và vào ngày 17 tháng 5 năm 2017, tại hội nghị Google I/O keynote, team phát triển Android đã thông báo rằng Kotlin sẽ là ngôn ngữ lập trình chính thức của Android.

  • Kotlin biên dịch tới JVM bytecode hoặc JavaScript, giống như Java, Bytecode ở đây nghĩa là sau khi biên dịch code sẽ được chạy qua một máy ảo thay vì là bộ vi xử lý của máy tính. Bằng cách này thì source code có thể chạy trên mọi nền tảng. Sau khi chương trình Kotlin được convert thành bytecode, nó sẽ được tải qua network và thực thi bởi JVM(Java Virtual Machine).
  • Kotlin có thể sử dụng toàn bộ những Framework và thư viện sẵn có của Java. Điểm đặc biệt nhất về Kotlin là nó có thể dễ dàng kết hợp với Maven, Gradle và các hệ thống build khác.
  • Kotlin là một ngôn ngữ rất dễ học, cú pháp rất trong sách và dễ hiểu. Kotlin có nét giống như Scala nhưng đơn giản hơn.
  • Kotlin mã nguồn mở
  • JetBrains cũng đã đính kèm tính năng tự động chuyển đổi Java thành Kotlin, qua đó tiết kiệm được rất nhiều thời gian cho lập trình viên.
  • Giống như Swift, thì Kotlin cũng là một ngôn ngữ an toàn, với cơ chế null-safety, sẽ không còn khái niệm NullPointerExceptions nữa.
val 	name: String = null 	// tries to assign null, won’t 	compile.
	
fun 	getName() : String = null 	// tries to return null, won’t 	compile.
  • Tương tự với optional trong Swift, chúng ta cũng có thể thêm "?" vào trong các variable và ở ví dụ dưới đây, chúng ta sẽ thấy là Kotlin sẽ không biên dịch và sẽ thrown ở run-time:
val name: String? = null	 	 //assigned 	null and it will compile 	also.
	
fun getName() : String? = null	//returned null and it 	will compile too.
/* won’t compile */	
  val name: String? = null
  val len = name.length	

/* correct way */	
  val name: String? = null	
  val len = name?.length

Tính linh hoạt

Như các bạn thấy ở bức hình dưới thì Kotlin rất linh hoạt và có thể lập trình ở nhiều nền tảng.

Sự khác biệt cơ bản giữa Kotlin và Java

  • Null Safety — Như đã nói ở trên thì sự khác biệt lớn nhất giữa hai ngôn ngữ là Kotlin tránh được lỗi NullPointerException.
  • Data Classes —Trong Java thì có một vài Data Class sẽ dẫn đến việc tự động tạo ra những đoạn code dài và cồng kềnh như equals, hashCode, toSTring, getter/setter..vv. Còn Kotlin thì cú pháp sẽ ngắn gọn hơn.

Trên đây là những điểm cơ bản nhất của ngôn ngữ lập trình Kotlin. Hi vọng bài viết có thẻ giúp ích cho các bạn.

0