Kotlin Bài 1: Giới Thiệu Về Kotlin

Posted by

Được chỉnh sửa ngày 4/7/2017.

Chào mừng các bạn đến với chuỗi bài học mới của Yellow Code Books về việc xây dựng ứng dụng Android bằng ngôn ngữ Kotlin.

Như các bạn cũng biết, vào ngày 17 tháng 5 năm 2017, tại sự kiện thường niên của Google dành cho các lập trình viên, có tên là Google I/O, đội ngũ Android của công ty này đã công bố rằng ngôn ngữ lập trình mới Kotlin sẽ chính thức lên ngôi thay thế cho người tiền nhiệm Java “cũ rích”. Họ còn đưa ra các dẫn chứng cho thấy rằng Kotlin là một ngôn ngữ mạnh mẽ, trực quan, an toàn và ngắn gọn hơn Java  – Một ngôn ngữ mà mọi lập trình viên đã từng buộc phải sử dụng để viết các ứng dụng Android của họ trước đây.

Từ đó trở đi, Kotlin đã trở thành một ngôn ngữ rất hot. Nhà nhà nghiên cứu Kotlin, người người nghiên cứu Kotlin. Một số công ty lớn như Uber, Nexflix, Trello, Pinterest,… cũng đã nhanh chóng sử dụng Kotlin, bên cạnh các ngôn ngữ khác của họ. Cũng không thể phủ nhận rằng, Kotlin ra đời không những vừa giúp các lập trình viên Android sử dụng Java cũ có cơ hội được học hỏi và nâng cấp kiến thức, nâng cấp sản phẩm của họ, mà còn giúp cho các bạn nào dự định làm quen với lập trình Android có một chọn lựa hiệu quả hơn về một ngôn ngữ chính thức dành cho hệ điều hành này.

Và Yellow Code Books cũng đã kịp tổng hợp Kotlin thành các bài học, tương tự như các bài học về Java, hay các bài học về Android (viết bằng Java) rất dễ hiểu và trực quan đang được nhiều bạn đón nhận. Vậy nếu bạn là người đã và đang tiếp cận với Java, hay bạn đang muốn làm quen với lập trình Android, thậm chí bạn hoàn toàn chưa biết gì về lập trình thì sao, bạn hãy đọc tiếp các phần bên dưới của mình để biết bạn sẽ làm gì để dễ dàng tiếp cận ngôn ngữ Kotlin này nhé.

Kotlin Là Gì?

Kotlin là một ngôn ngữ lập trình. Trước khi Google chính thức thông báo rằng ngôn ngữ này đã trở thành chính thức cho việc phát triển các ứng dụng Android, thì ẻm cũng đã ra đời khá lâu trước đó rồi, từ tháng 8 năm 2011. Ngôn ngữ này được phát triển bởi JetBrains (chứ không phải Google nhé).

JetBrains_Logo_2016

Mà bạn biết không, JetBrains chính là công ty đã phát triển ra IntelliJ IDEA, đây là một công cụ lập trình Java mạnh mẽ. Và rồi dựa trên IntelliJ IDEA này mà Google xây dựng nên Android Studio cho các lập trình viên chúng ta chuyên dùng để phát triển Android. Nói lòng vòng vậy cho bạn biết rằng “nhờ” JetBrains mà anh em lập trình chúng ta bị hai phen khốn đốn, một lần phải chuyển đổi các project (và cả kiến thức) từ nền tảng Eclipse cũ sang Android Studio (cực vô cùng như khi bạn dọn nhà í, nhưng dọn xong thì thích vì nhà mới rộng và đẹp hơn), và lần này là chuyển ngôn ngữ từ Java sang Kotlin. Hi vọng đợt chuyển đổi lớn lần thứ hai này không kém phần hiệu quả và ngoạn mục như đợt chuyển đổi lần thứ nhất.

Tại Sao Phải Chọn Kotlin Cho Android?

Nếu như ở bài học đầu tiên về lập trình ứng dụng Android (bằng Java) mình có tự hào mà nói rằng, lý do mà bạn chọn để trở thành Android developer là vì bạn có thể dùng Java, một ngôn ngữ mạnh mẽ và phổ biến nhất thế giới.

Thật vậy, với Java, và với một cộng đồng sử dụng khá lớn ngôn ngữ lập trình này, bạn sẽ dễ dàng tìm được sự hỗ trợ về mặt kỹ thuật một cách tốt nhất, hơn là các ngôn ngữ mới mẻ khác. Vậy thì tại sao chúng ta lại phải chọn Kotlin? Có một điều mình muốn xác nhận ở đây là, tại sao phải chọn Kotlin, chứ không phải tại sao muốn bỏ Java, chúng ta không bỏ Java nhé, mời bạn cùng mình đi qua các ý sau để có một sự chọn lựa rõ ràng nhất dành cho bạn.

Ngoài lý do tiên quyết rằng Kotlin là ngôn ngữ chính thức để mà phát triển các ứng dụng Android, thì các ý sau đây sẽ giúp bạn có cái nhìn tốt hơn về ngôn ngữ này.

kotlin_logo

Tất Cả Đều Mã Nguồn Mở

Tất cả ở đây bao gồm ngôn ngữ Kotlin, công cụ biên dịch IntelliJ IDEA mà mình có nhắc đến ở trên, rồi thì các thư viện hay công cụ kết nối với thư viện Java đều là mã nguồn mở. Điều này mở ra cho chúng ta một sự kỳ vọng rất lớn vào sự cộng tác từ cộng đồng các nhà phát triển trong việc tìm tòi và nâng cấp, sao cho cả ngôn ngữ Kotlin lẫn các công cụ kèm theo nó sẽ ngày càng mạnh mẽ và hữu dụng hơn cho chúng ta.

Tương Thích Hoàn Toàn Với Java

Đây có thể là một tin vui cho bạn nào đã có nền tảng vững chắc về Java. Việc tương thích này giúp các lập trình viên đã và đang xây dựng các ứng dụng Android bằng Java, có thể từng bước làm quen và chuyển dịch các ứng dụng của họ sang Kotlin một cách dễ dàng. Ngoài ra thì từ sự tương thích này mà các ứng dụng viết bằng Kotlin có thể sử dụng các thư viện sẵn có được viết bằng Java, vốn đã rất phong phú và quen thuộc với nhiều người.

Vẫn Khẩu Hiệu “Viết Một Lần, Chạy Mọi Nơi”

Như bạn biết rằng, sở dĩ Java được ưa chuộng, phần lớn cũng là vì khẩu hiệu này. Làm được như vậy là nhờ Java đưa ra khái niệm máy ảo JVM (Java Virtual Machine). JVM giúp ích như thế nào? Đầu tiên JVM được cài sẵn ở các thiết bị phần cứng. Sau đó, khi bạn biên dịch một chương trình, thay vì mã nguồn sẽ được dịch trực tiếp ra mã máy như nhiều ngôn ngữ khác, thì với Java mã nguồn đó sẽ được dịch thành mã bytecode, bytecode này sẽ được bạn phân phối đến các thiết bị khác nhau, chính JVM được cài sẵn ở các thiết bị đó sẽ dịch tiếp bytecode này thành mã máy giúp bạn.

Một lần nữa, Kotlin lại mang đến cho bạn một tin vui, rằng ngôn ngữ này cũng biên dịch mã nguồn thành bytecode, và như vậy nó cũng tận dụng được chính JVM của Java. Vậy là bạn vẫn sẽ không cần phải quan tâm đến cấu trúc phần cứng mà ứng dụng của bạn sẽ thực thi lên, như đã từng như vậy với Java.

Là Ngôn Ngữ Trực Quan Và Gọn Gàng

Trực quan ở chỗ (theo lời đồn), đây là ngôn ngữ mà cả con người và trình biên dịch đều có thể dễ dàng để đọc và hiểu.

Còn gọn gàng thì có lẽ các lập trình viên đang dùng Java sẽ thấu hiểu nhất, những bài học sau, khi bạn tiếp cận với các dòng code Kotlin, thì bạn sẽ thấy rằng ngôn ngữ này tiết kiệm cho bạn rất rất nhiều dòng code so với viết bằng Java. Người ta ước tính bạn có thể giảm tới 40% các dòng code. Tuy nhiên mình có một lo lắng rằng với số lượng code ít đi, thì sẽ càng thêm khó hiểu hơn với những bạn đầu tiên làm quen với lập trình (hoặc lần đầu tiên với việc phát triển ứng dụng Android). Mình thì mình không có được trải nghiệm học Kotlin từ những viên gạch ban đầu này, vì mình chuyển từ Java qua mà, nếu bạn là người mới lập trình và có gặp bất cứ vấn đề gì trong chuỗi bài học về Kotlin của mình, thì hãy để lại bình luận bên dưới các bài học nhé.

Giúp Bạn Tự Tin Với Các Lỗi null

Phần này chỉ có các bạn đã làm qua Java mới hiểu. Tình trạng ứng dụng bị crash (dừng đột ngột) bởi một exception có tên là null pointer đối với các ứng dụng Android được viết bằng Java diễn ra phải nói là đại trà, điều này khiến cho ứng dụng của bạn trông “mỏng manh dễ vỡ” hơn, không những tạo cảm giác khó chịu từ phía khách hàng, mà các lỗi null này còn gây thêm nhiều bệnh cho các lập trình viên, như bệnh đau đầu và mất ngủ!?! Thì với Kotlin, mọi bệnh tật sẽ không còn nữa, vì đây là một ngôn ngữ “an toàn” với null, tại sao vậy, chắc chắn các bài học sau mình sẽ nói đến.

Dùng Công Cụ Lập Trình Android Studio

Bạn hoàn toàn có thể tiếp tục sử dụng Android Studio vốn đã rất quen thuộc để biên dịch mã nguồn Kotlin. Và như mình có nói, Android Studio được phát triển dựa trên IntelliJ IDEA, mà Kotlin đã từng tương thích tốt với IntelliJ IDEA, thì không cớ gì Android Studio lại có vấn đề.

Tuy nhiên nếu bạn còn sử dụng phiên bản 2.3.x của Android Studio thì bạn vẫn cần phải cài đặt thêm plugin cho IDE này để có thể hiểu Kotlin. Nhưng bạn yên tâm rằng với phiên bản Android Studio 3.0 sắp ra mắt tới đây, Kotlin sẽ là ngôn ngữ chính thức mặc định khi bạn tạo mới project, thật là quá tốt. Bài học sau mình sẽ trình bày đến việc nên cài đặt phiên bản Android Studio nào trong giai đoạn hiện nay để chúng ta cùng bắt tay vào xây dựng ứng dụng nhé.

Một điều mình thiếu sót bên bài học về Java, đó là chỉ tập trung nói về điểm mạnh của em nó, mà thiếu đi sự khách quan khi không nói về điểm yếu. Vì nhìn chung lại ngôn ngữ nào cũng có điểm mạnh và yếu khác nhau. Vậy với Kotlin thì sao? mình sẽ trình bày vài điểm mà Kotlin không thể sánh với Java được, đó là.

– Thư viện tiêu chuẩn của Kotlin khi thêm vào trong project của bạn sẽ làm tăng kích thước file .apk của bạn lên thêm khoảng 800KB. Mặc dù số lượng kích cỡ tăng cân này không quá khủng, nhưng bạn cũng nên chú ý một chút về điều này.

– Như mình có nhắc đến ở trên, tính gọn gàng của code Kotlin có thể là con dao hai lưỡi. Nó có thể trở nên quá ngắn, đến nỗi những người mới tiếp cận ngôn ngữ này đôi khi không hiểu những sự lược giản ngắn gọn. Trong khi đó, mặc dù Java có vẻ dài dòng hơn, nhưng dù sao mọi thứ cũng rõ ràng.

– Cuối cùng, khuyết điểm mình sắp nói ra đây có thể chỉ là nhất thời, khi mà cộng đồng sử dụng Kotlin còn chưa “khủng” bằng Java, thì dĩ nhiên bạn sẽ khó khăn hơn trong việc tìm kiếm dữ liệu và yêu cầu giúp đỡ. Nhưng tin mình đi, khuyết điểm này sẽ nhanh chóng bị lu mờ, và chắc chắn sẽ có lúc mình quay lại bài viết hôm nay để xóa bỏ gạch đầu dòng này đi đấy.

Tiếp Cận Kotlin Như Thế Nào?

Mục này mình sẽ nói đến cách thức tiếp cận với Kotlin trong các bài học của mình, để các bạn có được một sự chuẩn bị tốt nhất trước khi bắt tay vào học tập.

Đối Với Các Bạn Mới Tiếp Cận Android

Những bạn nào mới vừa tiếp cận Android, hoặc chưa từng lập trình, mà muốn sử dụng Kotlin để phát triển ứng dụng Android, thì mình khuyên các bạn nên biết Java và thử sử dụng qua ngôn ngữ này trong lập trình Android là như thế nào. Về ngôn ngữ Java thì bạn có thể xem loạt bài viết ở đây, còn vận dụng Java vào Android thì xem ở đây.

Tại sao bạn nên biết Java?

– Thứ nhất, Java được mình viết rất kỹ, và vận dụng Java vào Android cũng được mình viết kỹ không kém. Điều này sẽ rất tốt với các bạn mới làm quen với lập trình, khi đó một nền tảng ngôn ngữ lập trình tốt giúp bạn dễ dàng tiến xa hơn. Và khi mà bạn đã biết Java rồi thì chuyển sang Kotlin là một điều nhanh chóng.

– Tiếp theo, về các bài học bên Kotlin của mình, mình chắc chắn sẽ nói cụ thể về cách sử dụng Kotlin, nhưng là Kotlin thực tế cho Android chứ không nói thuần về ngôn ngữ. Và còn có nhiều so sánh giữa hai ngôn ngữ Java và Kotlin với nhau nữa. Cho nên để thêm phần thú vị, bạn hãy nên biết Java để cùng bình luận ở các bài học. Mặt khác, sẽ có một số bài học của Kotlin giống hoàn toàn với bài học bên Android Java, và mình sẽ chỉ trỏ ngược link về phía đó và có nói thêm một chút mà thôi.

– Thực ra hai ý trên như nhau, đều là về phía blog của mình, còn lý do nào khách quan hơn không? Vâng, lý do bạn nên biết Java nữa, đó chính là Java vẫn đang được sử dụng khá nhiều, bạn sẽ dễ học tập và tìm thấy các hướng dẫn cụ thể từ cộng đồng Java trên toàn thế giới. Ngoài ra thì bạn cũng nên đọc hiểu các thư viện bằng ngôn ngữ Java vẫn còn đang rất hot, mà chưa kịp chuyển sang Kotlin.

Đối Với Các Bạn Đã Rành Về Java

Thật vui vì bạn đã biết Java. Bạn sẽ dễ dàng chuyển sang Kotlin một cách nhanh chóng. Việc của bạn lúc bấy giờ là.

– Nếu như bạn vẫn chưa thực sự hiểu rõ về nền tảng Android SDK, thì hãy tiếp tục đào sâu học tập về nền tảng này. Khi đã hiểu rõ nền tảng, thì việc bạn tiếp cận Kotlin là một điều nhanh chóng. Đừng vội chuyển sang Kotlin ngay nếu như bạn đang làm quen Android một cách dở dang.

– Các bài viết trên blog của mình cần bạn phải kết hợp nỗ lực thực hành. Bạn không thể biết tường tận Kotlin ngày một ngày hai nếu như không bắt tay vào xây dựng một sản phẩm thực tế. Chính vì vậy mình cũng sẽ mang ToutNote, một project được mình mang ra để các bạn có cơ hội được thực hành xây dựng một ứng dụng Android Java hoàn chỉnh. Thì Kotlin cũng vậy, bạn phải luôn cùng mình xây dựng TourNote bằng Kotlin.

Trên đây là các ý kiến mở đầu cho một loạt các bài viết về Kotlin sau này. Bài viết hôm nay không mang tính “vỡ lòng” như các bài mở đầu cho Java hay Android trước kia, mà là bài viết dành cho các bạn đã am hiểu về lập trình. Còn các bạn mới bước chân vào lập trình, như mình có khuyên, nên tiếp cận Java bạn nhé.

Bài Kế Tiếp

Chúng ta sẽ cùng nhau cài đặt các công cụ cần thiết để có thể phát triển Android bằng Kotlin, rồi sau đó cùng nhau tạo project TourNote với Kotlin nhé.

Advertisements
Rating: 5.0. From 1 vote.
Please wait...

3 comments

Gửi phản hồi