Khi kỹ sư phần mềm nổi tiếng của Square Valeriy Ovechkin cùng với các cộng sự của mình bắt tay vào dự án phát triển ứng dụng Caviar, ứng dụng này được viết hoàn toàn bằng Java bởi đơn giản khi xét đến nhiều phương diện khác nhau, không có bất cứ ngôn ngữ lập trình nào tốt hơn Java ở thời điểm đó. Trên thực tế, Java là một trong những ngôn ngữ lập trình được sử dụng rộng rãi nhất trên thế giới tính đến thời điểm hiện tại. Ngôn ngữ này ban đầu được sáng tạo ra vào năm 1995 bởi công ty Sun microsystems và sau đó đã được Oracle mua lại, nó thường được sử dụng để viết cơ sở dữ liệu và ứng dụng Android.
Tuy nhiên, theo ý kiến của nhiều nhà phát triển, ngôn ngữ lập trình 24 năm tuổi này khá rắc rối và phức tạp, khiến nó đôi khi khó có thể theo kịp được tình hình phát triển của thế giới lập trình hiện đại. Trong khi “ông già” Java đang ngày càng phải hứng chịu những lời phàn nàn từ công đồng lập trình thì một cái tên khác “trẻ, mạnh mẽ, và đầy tham vọng” đang nổi lên như một kẻ thách thức khó chịu, đó chính là Kotlin. Ngày càng có nhiều kỹ sư Android chuyển sang sử dụng loại ngôn ngữ lập trình nguồn mở mới mẻ này để viết các ứng dụng của họ. Google, Square và Atlassian đang trong cuộc đua nước rút chuyển sang sử dụng Kotlin, và theo thư viện nguồn mở GitHub thì Kotlin chính ngôn ngữ lập trình có tốc độ phát triển nhanh nhất trên thế giới ở thời điểm hiện tại. Vậy thì điều gì khiến ngôn ngữ lập trình non trẻ này có thể “thu phục” được cả những ông lớn khó tính trong lĩnh vực phần mềm? Chúng ta sẽ cùng nhau tìm hiểu ngay sau đây.
Điều gì làm nên sự thành công của Kotlin?
Điều gì làm nên sự khác biệt của Kotlin
“Bản thân Kotlin là một ngôn ngữ lập trình hiện đại. Tôi đã thấy những tính năng có thể thực sự tạo nên sự khác biệt trong Kotlin, giúp cho công việc lập trình vốn nổi tiếng đi đôi với sự nhàm chán nay đã trở nên thú vị hơn rất nhiều. Kotlin dễ lựa chọn và cảm nhận hơn, do đó, viết cùng một mã trong Kotlin thường dẫn đến ít dòng mã hơn”, kỹ sư Valeriy Ovechkin chia sẻ.
Trong vài năm trở lại đây, Kotlin đã nhanh chóng đạt được sự tăng trưởng vượt bậc về mức độ phổ biến. Đây là ngôn ngữ phát triển nhanh số 1 thế giới theo GitHub - diễn đàn được nhiều chuyên gia ví von là "Facebook dành cho lập trình viên", với mức tăng trưởng gấp hơn 2.5 lần chỉ tính riêng trong năm 2018 vừa qua. Chưa dừng lại ở đó, Kotlin đã được bình chọn là một trong năm ngôn ngữ lập trình được yêu thích nhất theo Stack Overflow, một trang web nổi tiếng nơi các nhà phát triển trên toàn thế giới đặt và trả lời các câu hỏi về mã.
"Có thể nói điều tạo nên sự thú vị của Kotlin là về cơ bản, nó giúp thúc đẩy và áp dụng tốt hơn những kỹ năng hiện có của các nhà phát triển Java, và đồng thời mang đến sự thay đổi phù hợp để thông qua đó, cung cấp các tính năng mới, những thứ giúp các nhà phát triển Java đạt hiệu quả cao hơn trong công việc mà không cần phải quá lao tâm khổ tứ”, Kỹ sư Pivotal Sébastien Deleuze chia sẻ về Kotlin trong một cuộc phỏng vấn với trang tin Business Insider.
Một dự án bắt nguồn từ đam mê
Kotlin ban đầu được tạo ra vào năm 2010 bởi công ty công cụ phần mềm JetBrains với mục đích khắc phục một vài nhược điểm khó chịu của Java.
"Quay lại quãng thời gian khi chúng tôi bắt đầu bắt tay vào dự án Kotlin, Java nói chung là một ngôn ngữ lập trình rất dài dòng, rườm rà, hay cũng có thể nói vui là “cồng kềnh”. Nói như vậy là bởi để có được mã lập trình, sẽ có rất nhiều điều mà bạn phải làm và những điều này ảnh hưởng đến tiến độ công việc nói chung. Do đó, chúng tôi đã quyết định phát triển Kotlin dựa trên cơ sở cống gắng giữ lại đến mức tối đa những điểm mạnh của Java, trong khi cũng làm hết sức để khắc phục tận gốc sự rườm rà của ngôn ngữ lâu đời này. Chính những điều tưởng chừng như đơn giản đó đã biến Kotlin trở thành ngôn ngữ được mọi người bắt đầu để ý và dành nhiều thiện cảm hơn”, Hadi Hariri, phó chủ tịch JetBrains cho biết.
- Các lập trình viên Trung Quốc sử dụng GitHub làm “chiến trường” phản đối điều kiện làm việc khắc khổ
Tuy nhiên, ngôn ngữ lập trình này chỉ thực sự phát triển bùng nổ sau tháng 5 năm 2017, tức là sau thời điểm mà Google trao cho Kotlin một con dấu phê duyệt khi nhóm phát triển Android công bố Kotlin trở thành ngôn ngữ được hỗ trợ số 1 trên nền tảng hệ điều hành này.
Theo kỹ sư Jerry Cheng, người đứng đầu bộ phận phát triển di động tại Atlassian, thì đó cũng chính là lý do khiến nhóm phát triển di động của Atlassian quyết định chuyển sang sử dụng Kotlin bởi ban đầu, có đôi chút do dự về việc sử dụng Kotlin cho các sản phẩm của Atlassian, và nếu không có sự hỗ trợ đầy đủ của Android, nhóm đã nghĩ rằng việc đầu tư vào Kotlin là một quyết định quá mạo hiểm.
Thế nhưng như đã biết, sau khi Google tuyên bố sẽ chính thức hỗ trợ Kotlin cho Android, Atlassian như được “bật đèn xanh” để triển khai quyết định của mình một cách tự tin hơn. Hiện tại, Atlassian đang sử dụng Kotlin cho tất cả các ứng dụng Android trên nhiều sản phẩm nổi tiếng của mình như Trello, Jira và Confluence.
“Chúng tôi đã gặp may khi Kotlin là một cái tên tương đối mới mẻ với các nền tảng điện thoại di động. Atlassian đã nắm lấy cơ hội làm chủ ngôn ngữ lập trình này khá nhanh chóng và rộng rãi với rất nhiều lợi thế rõ ràng. Kotlin cô đọng hơn, ổn định hơn và thực sự vượt trội trong việc duy trì. Kể từ khi chuyển sang sử dụng gôn ngữ lập trình này, mọi thứ đều tuyệt vời với Atlassian”, ông Jerry Cheng chia sẻ.
Tương tự với trường hợp của Atlassian, Valeriy Ovechkin đã quyết định viết lại ứng dụng Caviar với nền tảng Kotlin như một "dự án của sự đam mê". Ông đã đề xuất ý tưởng này cho nhóm phát triển của mình và thuyết phục họ rằng Kotlin sẽ là trợ thủ đắc lực giúp Square phát triển nhanh chóng và mạnh mẽ hơn nữa.
Vào tháng 9 năm 2017, Valeriy Ovechkin và nhóm của mình đã triển khai dự án chuyển đổi sang Kotlin đầu tiên của mình với ứng dụng Caviar. Kể từ đó trở đi, Square đã viết các tính năng mới bằng Kotlin, và dần dần họ cũng bắt đầu chuyển đổi phần còn lại của ứng dụng sang ngôn ngữ lập trình mới mẻ này.
“Có một điều thực sự tuyệt vời đó là quá trình chuyển đổi đã được triển khai êm đẹp mà không gây ra bất cứ ảnh hưởng đáng chú ý nào đến khách hàng”, Michael White, trưởng nhóm kỹ thuật Caviar tại Square, chia sẻ trong một cuộc phỏng vấn với Business Insider.
Những "sai lầm tỷ đô"
Với Kotlin, các đoạn mã sẽ trở nên ngắn gọn hơn, từ đó dẫn đến việc cơ sở mã được thu gọn và dễ quản lý hơn. Thay vì bị mắc kẹt cả ngày với những vấn đề về cú pháp, các kỹ sư có thể dành thời gian tập trung vào những nhiệm vụ phức tạp hơn, với quy mô lớn hơn. Theo ước tính của Ovechkin thì với việc sử dụng Kotlin, code base có thể được thu nhỏ hơn từ 15-25%.
Lại nói về Java, khi làm việc với ngôn ngữ này, các nhà phát triển phần mềm thường gặp phải một lỗi gọi là "null pointer exception". Trong Java, các biến có thể mặc định là "null", nghĩa là nó không có bất kỳ giá trị nào được đính kèm. “Null pointer exception” xảy ra khi mã tham chiếu đến một biến, nhưng biến lại không có giá trị khi ứng dụng đang chạy. Kết quả là ứng dụng sẽ không có bất kỳ tùy chọn nào ngoại trừ việc báo lỗi. Nhà khoa học máy tính Tony Hoare, tác giả của các quy chiếu null, đã từng gọi đây là "sai lầm tỷ đô" của mình.
Tuy nhiên, Kotlin có thể đảm bảo các nhà phát triển sẽ không gặp phải vấn đề này. Kotlin sẽ giả lập các biến không thể là "null" trừ khi nhà phát triển cố gắng thực hiện theo cách đó. Điều này góp phần giúp cho những ứng dụng viết bằng Kotlin hoạt động ổn định và ít có khả năng bị “sập” hơn.
Mặc dù việc chuyển đổi ứng dụng sang Kotlin không hề đơn giản và tiêu tốt khá nhiều thời gian cũng như công sức, nhưng với tác dụng mà ngôn ngữ lập trình này mang lại, theo Valeriy Ovechkin thì đây thực sự là một quá trình chuyển đổi “rất đáng để hy sinh”.
"Nếu bạn là người chỉ tin tưởng vào kết quả, hãy yên tâm rằng sẽ không có bất cứ rủi ro nào trong đề xuất này. Đó là một khoản đầu tư mà bạn nên thực hiện, và đồng thời cũng là một lộ trình học tập cần thiết", ông Valeriy Ovechkin chia sẻ.
Trộn lẫn và kết hợp
Một lợi ích khác không thể không nhắc đến đó chính là khả năng tương thích tuyệt vời của Kotlin với Java - ngôn ngữ gốc mà các ứng dụng Android thường được viết. Về cơ bản, các nhà phát triển có thể trộn lẫn và kết hợp giữa cả hai ngôn ngữ lập trình này cùng một lúc. Ngoài ra, cũng bởi Kotlin hoàn toàn tương thích với Java, do đó các nhà phát triển cũng có thể chuyển đổi dần dần các ứng dụng của họ từ Java sang Kotlin và thậm chí là ngược lại mà không gặp phải quá nhiều khó khăn.
Trong khi Square viết lại hoàn toàn ứng dụng Caviar của mình trong Kotlin, thì Atlassian lại chọn vẫn giữ lại các ứng dụng viết bằng Java, đơn giản là vì nó có thể tương thích với Kotlin. Tuy nhiên, đối với những tính năng mới, các nhà phát triển sẽ sử dụng Kotlin. Jerry Cheng cho rằng nhóm Atlassian của ông không nhìn thấy giá trị thực sự nào trong việc dành thời gian viết lại hoàn toàn các ứng dụng chỉ để chuyển đổi chúng sang Kotlin, nhưng đồng thời ông cũng nhận thấy rằng Java đang dần bị loại bỏ theo thời gian.
"Cách Atlassian định vị bản thân là ở chỗ chúng tôi tuy thực sự yêu thích Kotlin, nhưng không thấy cần thiết phải viết lại mọi thứ chỉ để đạt được sự tương đương không quá quan trọng như vậy”, Jerry Cheng chia sẻ.
Giống như Atlassian, Capital One không có kế hoạch chuyển đổi hoàn toàn các ứng dụng cửa mình từ Java sang Kotlin, vì cả hai ngôn ngữ này đều hoạt động "độc đáo với nhau", Keith Forsythe, phó chủ tịch kỹ thuật tại Capital One nói. Hiện tại, Forsythe cho biết, khoảng một nửa số kỹ sư Android tại công ty của ông đang sử dụng Kotlin và nửa còn lại sử dụng ứng dụng ngân hàng di động Capital One viết theo Java.
Sự ra đi của Java
Tại Square, Kotlin không chỉ giúp viết ứng dụng - nó còn có thể giúp ích trong việc tuyển dụng. Michael White, lãnh đạo kỹ thuật của Caviar, nói rằng Square muốn đi đầu trong việc sử dụng Kotlin, và chính điều này có thể trở thành "điểm khác biệt" cho Square khi tuyển dụng nhân tài về với đội ngũ của mình.
Giám đốc Jerry Cheng của Atlassian cũng nghĩ rằng Kotlin đang góp phần hạ thấp rào cản giữa các bạn trẻ đối với ngành công nghiệp phần mềm vốn nổi tiếng với sự phức tạp và khô khan. Kotlin là một ngôn ngữ hiện đại, dễ sử dụng hơn, và nó có thể tạo ra một cái nhìn mới cho ngành lập trình, qua đó thu hút nhiều người trẻ tham gia vào lĩnh vực này hơn.
"Hiện đại hóa ngôn ngữ lập trình và quan tâm đến những thách thức của lập trình máy tính sẽ giúp cải thiện khía cạnh cung ứng nguồn nhân lực trong lĩnh vực lập trình, hay nói đơn giản hơn là giúp khắc phục tình trạng khan hiếm của những người có thể học cách viết chương trình và phần mềm như thế nào", ông Cheng nói.
Vậy thì liệu các nhà phát triển có quay trở lại sử dụng ngôn ngữ Java “vang bóng một thời” hay không? Kỹ sư Valeriy Ovechkin cho rằng điều này sẽ rất khó xảy ra. Cả ông và White đều không nhìn thấy nhiều lợi ích trong việc quay trở lại sử dụng Java tại Square, và họ hy vọng được chứng kiến một sự ra đi trong “yên bình” của Java theo thời gian.
Bạn đã từng sử dụng Kotlin chưa? Bạn có suy nghĩ gì về ngôn ngữ lập trình thú vị này? Hãy để lại ý kiến bình luận bên dưới nhé!