Đón đầu xu thế với 5 công nghệ cho phát triển web hiện đại (2021)
Trong khuôn khổ của lập trình web, có rất nhiều ý kiến cho rằng lập trình web giờ rất lỗi thời và dễ tiếp cận...Trong bài viết hôm nay, mình sẽ liệt kê ra một số công nghệ có thể làm mưa làm gió trong tương lai của nhóm ngành công nghệ này...

Sau những kỉ dài cho một quá tình hình thành và phát triển của World Wide Web từ năm 1989, tỉ lệ cung cầu của ngành công nghiệp phần mềm này vẫn đạt ở ngưỡng chênh lệch lớn khi có rất nhiều "cung" nhưng lại thiếu "cầu" có chất lượng.

Một phần là vì hầu hết các nhà phát triển web hiện tại luôn gò bó bản thân với các tư tưởng lỗi thời và thiếu cập nhật. Điều đó dẫn đến sự thiếu tính sáng tạo và tò mò trong quá trình học hỏi.
Có một trường hợp mình hay bắt gặp đó là khi có một công nghệ mới ra đời, những lập trình viên có "kinh nghiệm" thay vì nắm bắt thời cơ và học hỏi để có cái nhìn đa chiều hơn thì họ lại giữ lỗi suy nghĩ cổ hũ rằng công nghệ họ đang sử dụng là tốt nhất. Để rồi một hay hai năm sau thì họ lại chạy theo trào lưu và bỏ đi những công nghệ mà họ từng "cháy" hết mình.
Một chút tâm tư...
Trong khuôn khổ của lập trình web, có rất nhiều ý kiến cho rằng lập trình web giờ rất lỗi thời và dễ tiếp cận. Điều này làm cho những bạn muốn đào sâu về mảng này trở nên mất định hướng và do dự không biết lựa chọn mình đúng hay sai. Nhưng với khía cạnh của mình, mình cảm thấy đây là một mảng có rất nhiều tiềm năng và màu mỡ cho các nhà phát triển khai thác.
Trong bài viết hôm nay, mình sẽ liệt kê ra một số công nghệ có thể làm mưa làm gió trong tương lai của nhóm ngành công nghệ này
Nim

Nim là một ngôn ngữ lập trình mới được phát hành phiên bản ổn định và năm 2020. Theo như Wikipedia định nghĩa:
Nim là một hệ thống bắt buộc, có mục đích chung, đa mô hình, được gõ tĩnh, hệ thống, ngôn ngữ lập trình biên dịch được thiết kế và phát triển bởi Andreas Rumpf.
Nim được đánh giá là một trong những đối thủ cạnh tranh đáng gồm của Javasript - ngôn ngữ đứng đầu cho phát triển web hiện tại bởi những đặc tính mà ngôn ngữ này sỡ hữu. Được đánh giá là
- Nhanh như C - một trong những ngôn ngữ nhanh nhất
- Hàm ý như Python - Có thể nói expressive power là một đặc tính nổi trội của ngôn ngữ kịch bản (Scripting language)
- Khả năng mở rộng như Lisp

Trong bài viết này mình sẽ không đào sâu vào ngôn ngữ Nim. Nhưng hiện nay Nim được đánh giá là một ngôn ngữ mạnh mẽ cho lập trình web cùng với số lượng lớn package được đóng góp một cộng đồng khá là vững mạnh. Để tìm hiểu thêm về Nim, các bạn có thể xem qua bài viết này.
GraphQL
Sau 2 tháng học tập và trải nghiệm GraphQL, mình phải thú thật là mình yêu GraphQL mất rồi. 😍😍😍

GraphQL là một ngôn ngữ truy vấn (query language) cho API (Application Programming Language). GraphQL được phát triển và chóng lưng bởi ông lớn Facebook do đó nó có cho mình một hệ sinh thái rất là mạnh mẽ.
Động lực để GraphQL được sinh ra là để giải quyết các vấn đề còn tồn động trong RESTful API truyền thống. Cách gọi API truyền thống dễ xảy ra tình trạng "nghẽn cổ chai" hay "bottleneck". Bỡi lẽ khi RESTful API được áp dụng cho các ứng dụng truy vấn phức tạp sẽ dấn đến việc chia ra nhiều endpoint dẫn đến việc luồng dữ liệu trả về bị xung đột. Giải pháp mà GraphQL đưa ra là đưa các luồng dữ liệu được gọi về một endpoint duy nhất.

Năm trước mình có đọc một bài viết của TopDev về GraphQL, lúc đó GraphQL được đánh giá là một công nghệ tiềm năng nhưng vẫn chưa có hệ sinh thái ổn định. Tuy nhiên sau một thời gian trải nghiệm và xây dựng một số dự án fullstack nho nhỏ thì mình cảm thấy GraphQL giờ đây đã trưởng thành hơn và có riêng cho mình một hệ sinh thái rất chi là đồ sộ.

Svelte

Svelte là một framework mới được sinh ra cho mục đích phát triển SPA (Single Page Application). Sự khác biệt giữa Svelte so với các framework phổ biến hiện nay như React hay Vue đó là các framework hiện nay sử lý một số lượng lớn tác vụ ngay trên trình duyệt. Trong khi đó, Svelte sẽ đem các công việc ấy xuống phần biên dịch (compile). Các đặc tính nổi trội của Svelte đó là

Svelte được cộng đồng đánh giá là một framework/library có thể vươn lên trong thời gian tới khi đã đủ trưởng thành. Bởi lẽ svelte đáp ứng được các nhu cầu của các nhà phát triển trong việc tạo ra sản phẩm bằng một cách tiếp cận không quá phức tạp như React hay Angular. Thậm chí nếu so về tốc độ, Svelte được đánh giá là nhanh nhất trong hiện tại trong cuộc đua với các ông lớn như React, Angular, Vue hay Ember.

Hiện nay, Svelte vẫn còn khá là non trẻ để có thể dùng cho một ứng dụng yêu cầu kiến trúc và độ mở rộng (scalability) lớn. Nhưng trong tương lai gần, mình tin rằng đây sẽ là một framework thịnh hành.
Deno

Deno là một Runtime Eviroment được cha để của NodeJS - Ryan Dahl - công bố ra cộng đồng vào năm 2018 để giải quyết các vấn đề mà NodeJS đang gặp phải. Mặc dù NodeJS vẫn được đánh giá là một back-end framework cực kì mạnh mẽ, tuy nhiên nó vẫn gặp những vấn đề về mô-đun (module), các gọi cài đặt phụ thuộc (dependency package) và bảo mật (security). Điểm khác biệt lớn nhất của Deno so với NodeJS có lẽ là NodeJS được xây dựng trên C++ và Deno được xây dựng bằng Rust.

Dù chỉ mới có tuổi đời hơn 2 năm tuổi nhưng Deno nhận được rất nhiều sự quan tâm từ những người sử dụng NodeJS.
Progressive Web App (PWA)
Cho đến năm nay - 2021 - thì khái niệm Progressive Web App (PWA) hay ứng dụng web lũy tiến không còn mấy là mới lạ nữa. Các chuyên gia công nghệ dự đoán rằng trong tương lai, PWA sẽ thay thế các native app desktop và mobile. Về định nghĩa của PWA
Ứng dụng web tiến bộ là một loại phần mềm ứng dụng được phân phối qua web, được xây dựng bằng công nghệ web phổ biến bao gồm HTML, CSS và JavaScript. Nó được thiết kế để hoạt động trên bất kỳ nền tảng nào sử dụng trình duyệt tuân thủ tiêu chuẩn, bao gồm cả máy tính để bàn và thiết bị di động.

Gần đây, đến cả Youtube cũng đã áp dụng công nghệ này vào ứng dụng của họ

KẾT...
Và đó là 5 công nghệ mà mình nghĩ sẽ giúp ích cho những lập trình viên Web có định hướng hơn về tương lai của lĩnh vực này. Từ đó, xác định được công nghệ nào phù hợp với mình để theo đuổi và phát triển để đón đầu các xu hướng nhé.
Các công nghệ mình liệt kê ở trên chỉ mang tính chất tham khảo. Mình không chắc chắn rắng những công nghệ ấy sẽ phát triển trong tương lai nhưng mình thấy chúng có rất nhiều tiềm năng để khai thác và phát triển. Vậy nên các bạn hãy tiếp nhận bài viết này với tinh thần tham khảo và đóng góp cho mình nhé. 😙