Java đang ngăn cản sự phát triển của Android và Kotlin không phải là cách giải quyết

Tôi ngồi trong căn phòng của mình, tất cả đều chìm trong bóng tối và im lặng. Nhưng đó là điều tôi muốn bởi dòng sáng tạo chảy trong mình, và đôi tay tôi gõ ra những dòng code cuối cùng cho tựa game Chromecast. Bỗng tôi nghe thấy tiếng động lạ phát ra từ chiếc máy tính. Nếu mà có người ngoài nghe thấy thì họ sẽ phát hoảng lên bởi cứ như chiếc laptop muốn nổ tới nơi, nhưng sự thật là chiếc Macbook Air của tôi chỉ là đang chật vật khi phải chạy tớIi 200 dòng code vào Android libraries. Tuy nhiên thế cũng đủ để ngắt mạch suy nghĩ và khiến tôi nhớ về quá trình phát triển của Android từ 5 năm về trước.

Java quá là rườm rà

Hồi đó, tôi đã muốn nổ con mắt khi cố gắng đọc mấy cái tài liệu của Android về Cast Remote Display Service và mua in-app. Tất nhiên là tôi bỏ cuộc nhanh chóng và quyết định cứ copy/pasted đoạn code luôn. Nói cách khác, bình thường thì tôi sẽ dùng 2 phương pháp calls để làm nó nhưng với Java thì lại phải OOP rất nhiều cho cái solution rồi chạy code generation bởi với Google thì đó là cách duy nhất cho in-app purchase API. Như vậy, với một ngôn ngữ mà bạn không thể nào dùng callback khi thiếu class và platform (phụ thuộc rất nhiều vào hành vi không đồng bộ) thì kết quả là một đống code hỗn tạp lộn xộn.

Mặc dù Kotlin có giúp cho mọi chuyện bớt phức tạp hơn khi sử dụng cấu trúc nhôn ngữ hiện đại hơn. Tuy vậy, Android APIs vẫn được thiết kế để sử dụng với Java. Để cho công bằng thì Google thật sự đã cố gắng để đưa ra nhiều cải thiện với Java 8 support cho Android Studio 3.0 tuy nhiên nó sẽ cần mất nhiều năm nữa chúng ta mới thấy được thành quả của chúng.

Bản chất chậm chạp của Java khiến cho việc phải bỏ nhiều công sức hơn vào quá trình phát triển của một app

vòng đời hoạt động/dịch vụ/phát triển của các Android events quá phức tạp. Rất nhiều developer không hiểu rõ về nó cũng như bạn sẽ chẳng thể yêu cầu ai cũng bỏ quá nhiều thời gian chỉ để sử dụng chúng một cách rành rọt. Trong thời đại mà các ngôn ngữ đề cố gắng đơn giản hóa mọi thứ như iOS hoặc Windows Phone thì Java lại khiến mọi thứ phức tạp hơn.

Kotlin thì thêm overhead vào runtime, thế nhưng nó lại khiến cho ta phải bỏ ra thêm nhiều công sức hơn. Hị vọng rằng vớiAndroid reactive librariesmới cùng tính năng automated app lifecycle sẽ giúp khác phục vấn đề trên.

Ứng dụng nặng với quá trình xử lí phức tạp khiến cho việc thực hiện các iteration nhanh trở nên bất khả thi và làm cho Andiord không thân thiện với người dùng

Nếu bạn muốn ứng dụng của mình sử dụng được Google APIs, Firebase hay một libraries của nhóm thứ 3 mà vẫn giữ được tốt độ lặp nhanh (iteration) thì phải có một workstation với CPU và SSD cực khủng. Google hiện vẫn đang tập trung đầu tư phát triển Java nhưng nó vẫn chưa thật sự thích hợp cho máy tính phổ thông chạy tốt ở thời điểm hiện tại. Như vậy các developer sẽ phải chi tiền ra để nâng cấp máy tính của mình và như vậy phần lớn bộ phận người dùng sẽ bị cho ra rìa. Theo tôi, các ngôn ngữ lập trình phải thật đơn giản và tiện lợi cho người dùng để họ có thể tạo sản phẩm phù hợp với mình chứ không thể đi theo hướng ngược lại khi mà bắt họ phải tự bơi hoặc là chết chìm được.

Kotlin cũng hỗ trợ các libraries cũng đòi hỏi việc ta tốn nhiều chi phí nếu bạn thật sự muốn nó đoàng hoàng. Ít ra thì Google cũng đang cố gắng giải quyết vấn đề trên bằng cách cải thiện quá trình tối ưu hóa của nó.

Web Apps

Tôi luôn tin tưởng vào mobile web applications và phải nói rằng là tôi thấy rất vui khi Google I/O tung bố Android web app integrations. Google có lẽ đã hiểu rằng để Android có thể phát triển thì phải tập trung vào mảng web apps cho nó.

Nói đơn giản, tôi lo sợ rằng trong tương lai không xa thì sẽ không ai dùng Java hay Kotlin để làm app cả. Tuy nhiên tôi cũng hiểu được rằng Google đang rất nổ lực để cải thiện tình hình trên khi hãng liên tục hỗ trợ cộng đồng lập trình viên của Java. Và tôi hi vọng web app sẽ trở lại một cách huy hàng trên ngôn ngữ lập trình Java và Kotlin.

Nguồn: Topdev via Hackernoon