Đã bao giờ bạn tự hỏi thế giới lập trình trong vài năm trở lại đây đã thay đổi như thế nào, tại sao các công nghệ như React JS, Node JS, Angular,... lại phát triển đến vậy? Trước khi các công nghệ này ra đời thì thế giới lập trình web đã phát triển ra sao?.

 

Mời các bạn đón đọc Chương 1: Lập trình web truyền kỳ thuộc series Truyện code kỳ ảo của Ngôn từ ma thuật nhé

 

Truyện code kỳ ảo

 

Hồi 01 - Đôi tình nhân ngoại đạo

 

Sau nhiều năm bôn ba giang hồ, Javascript bấy giờ cũng đã có chỗ đứng trong thế giới tu tiên luyện web, hắn đang thong dong trên đường và nghĩ về cuốn JQuery thần chưởng (JQuery) mà hắn đã luyện thành cách đây nhiều năm về trước.

 

Thuở khai thiên lập địa, khi thế giới lập trình web vẫn còn rất hoang sơ và đổ nát, đa số các anh hùng thiên hạ đều chỉ sử dụng môn võ HTML (HyperText Markup Language) và CSS (Cascading Style Sheets) để xây dựng nên các trang web tĩnh mà không có tính năng động. Trong những năm 1990, một công pháp mới là CGI (Common Gateway Interface) được phát triển, cho phép các trang web tương tác với máy chủ. Tuy nhiên, việc sử dụng CGI không hiệu quả vì có các vấn đề về bảo mật có thể gây nguy hiểm đến nội công của người luyện web. Do đó, công pháp này nhanh chóng lụi tàn.

 

Bẵng đi một thời gian, những đại cao thủ trên giang hồ bắt đầu phát triển và luyện thành các công pháp linh hoạt và mạnh mẽ hơn. Kể từ đó PHP (Personal Home Page), ASP (Active Server Pages), JSP (Java Server Pages) và C# cũng ra đời. Các công pháp này cho phép người luyện tạo ra các trang web động, tương tác với cơ sở dữ liệu, xử lý biểu mẫu, và tạo ra các trang web phức tạp hơn.

Những bộ công pháp này nhanh chóng được giới tu tiên luyện web đón nhận tích cực, nhà nhà người người đều đổ xô tu luyện, bấy giờ PHP nhanh chóng trở thành bộ công pháp phổ biến nhất giang hồ.

 

Thuở ấy một thiếu niên 16 tuổi mới bước chân vào giới luyện web. Đen đúa, hôi hám và yếu đuối là những gì mà thiên hạ miêu tả về hắn. Tên hắn ta là Javascript. Javascript lúc đó chỉ hoạt động ở phía client-side với các chức năng hạn chế như: xử lý sự kiện, validate form, thao tác với các phần tử trên trang web. Bản thân Javascript cũng không hướng đến OOP, do đó giang hồ cũng xem hắn như một kẻ tà ma ngoại đạo, bị giới lập trình chính tông khinh rẻ.

 

Vài năm sau đó, lũ tà ma theo chân Javascript cảm thấy không thể cam chịu thêm được nữa, bọn chúng không muốn sống mãi trong bóng tối để người người đồn đoán, nhà nhà khinh rẻ. Nhưng trời không tuyệt đường người, vào một ngày đẹp trời năm Ất Dậu 2005, khi Javascript đang ngồi buồn rầu về sự kém cỏi của hắn, bỗng một cô gái với thân hình mảnh khảnh nhưng lại toát ra vẻ thông minh đã ngay lập tức chiếm trọn trái tim của kẻ si tình. Nàng không ai khác chính là Ajax (Asynchronous Javascript And XML).

Với sự giúp đỡ của Ajax, Javascript như hổ mọc thêm cánh, cho phép các trang web tương tác với người dùng một cách nhanh chóng và linh hoạt hơn. Thay vì phải tải lại toàn bộ trang web khi người dùng thực hiện một hành động, Ajax chỉ tải lại các nội dung cần thiết, giúp trang web hoạt động nhanh hơn và tiết kiệm băng thông. Với vẻ đẹp của một tuyệt sắc giai nhân, Ajax lúc đó được các đại cao thủ như Google Maps và Gmail đón tiếp một cách nồng nhiệt càng khiến cho giang hồ trầm trồ khen ngợi.

 

Kể từ khi Ajax xuất hiện, các giáo đồ của Javascript ngày càng nhiều, nhà nhà người người quay xe sang tu luyện các công pháp của Javascript. Đây cũng là bước đệm để Javascript trở thành một trong những môn phái phổ biến nhất thế giới tu tiên luyện web sau này.

Thế nhưng niềm vui thì luôn ngắn ngủi, các công pháp do Javascript và Ajax tạo ra ngày càng trở nên yếu thế trong giới, các lỗ hỏng bảo mật xuất hiện ngày càng nhiều, hiệu suất thấp khi phát triển các ứng dụng phức tạo, khả năng tương tác bị hạn chế,... Các giáo đồ tu luyện Javascript trở nên tẩu họa nhập ma, người thì quay về còn đường chính đạo tu luyện Java, C#, PHP, người lại quyết định bỏ nghề code.

 

Mặc dù các công pháp của Ajax vẫn được sử dụng rộng rãi về sau nhưng với sự phát triển quá mạnh mẽ của chính đạo phái, giáo đồ của Javascript đã không còn niềm tin vào Ajax như thuở ban đầu. Javascript lại một lần nữa đứng trước bờ vực sụp đổ. 

 

Hồi 02 - JQuery thần chưởng với mối tình thù

 

Mãi hơn một năm sau, khi chúng giáo đã hoàn toàn bỏ rơi Javascript, trong cơn tuyệt vọng nhất, hắn đã gieo mình xuống đỉnh núi Stackoverflow tự sát. May thay, trời không tuyệt đường sống của ai bao giờ, hắn không chết, chỉ bị què 2 chân, nhưng cũng nhờ đó mà hắn trở nên mạnh mẽ hơn bao giờ hết. Hắn vùi đầu vào luyện công, sáng bò xuống núi tối lại vào hàng, sau bảy bảy sáu mươi chín ngày, đến mùa thu năm 2006 một con ma đầu đã thực sự thức tỉnh. Javascript đã luyện thành chưởng pháp kinh thiên động địa khiến ma thần đều phải khiếp sợ mang tên JQurey thần chưởng. Jquery lúc bấy giờ có chưởng pháp nhẹ tựa lông hồng chỉ vọn vẹn 19KB nhưng sức mạnh lại vượt xa nhân thế với các đặc tính:

  1. Dễ học và sử dụng: jQuery rất dễ học và sử dụng, ngay cả đối với những người mới bắt đầu với JavaScript.

  2. Viết mã ngắn gọn: Nhờ sử dụng các chức năng tiện ích, jQuery giúp cho việc viết mã JavaScript ngắn gọn hơn, giúp tăng tốc độ phát triển.

  3. Tương thích với đa số trình duyệt: jQuery hỗ trợ tất cả các trình duyệt phổ biến, giúp cho việc phát triển trang web trở nên thuận tiện hơn.

  4. Cung cấp rất nhiều plugin: jQuery có một cộng đồng phát triển plugin rất lớn, giúp cho việc tạo ra các tính năng mới trên trang web trở nên dễ dàng hơn.

  5. Hiệu suất tốt: jQuery được thiết kế để có hiệu suất tối ưu trên các trình duyệt khác nhau, giúp tối ưu hóa thời gian tải trang và cải thiện trải nghiệm người dùng.

Sự ảo ma của JQuery nhanh chóng khiến giới tu tiên luyện web dậy sóng, các bậc cao nhân đã hơn 100 năm tuổi cũng không thể ngồi yên mà vùi đầu vào nghiền ngẫm càng khiến cho JQuery trở nên mạnh mẽ. Thuở ấy, các anh hùng thiên hạ chỉ cần luyện thành Javascript và Jquery là đã có thể hành tẩu giang hồ, hô mưa gọi gió.

Mặc dù sở hữu sức mạnh kinh người nhưng JQuery thời đó vẫn chỉ là một môn ngoại công chưởng pháp, chỉ có thể tác động phía client chứ không thể chạy ở phía server được. Do đó nhiều nhân sĩ thời ấy vẫn phải luyện thêm các công pháp nội công như: PHP, .NET hoặc Java ( lập trình phía server) để có thể xưng bá giang hồ, tụ tập quần hùng, những kẻ ấy được giang hồ phong danh Fullstack Developer. Các chưởng pháp của JQuery có thể kết hợp với các chưởng pháp nội công như PHP, .NET và Java để phát triển một trang web hoàn chỉnh, giang hồ lúc đó xem như tạm thời thái bình...

 

Hồi 03 - Gã quét rác khiến giang hồ dậy sóng

Thế gian vận đổi sao dời, sự thái bình thịnh thế không còn giữ được bao lâu bởi những tin đồn về một gã quét rác trước ngôi chùa trên đỉnh Javascript. Người ta đồn rằng phía trước đỉnh núi nơi mà giáo chúng Javascript quy tụ, có một tên quét rác vẫn ngày ngày nghe kinh phật và luyện tập các công pháp của Javascript. Hắn kế thừa được những sức mạnh của Javascript mà vẫn có thể chạy được ở phía server-side, điều mà giới giang hồ thuở ấy xem là bất khả thi. Không ai khác hắn chính là gã quét rác Node JS.

 

Node quét rác

 

Node.js được xây dựng trên mã nguồn của Google Chrome V8 JavaScript Engine, cho phép Node JS chạy mã JavaScript rất nhanh và hiệu quả. Node JS cũng cung cấp một số thư viện mạnh mẽ để giải quyết các vấn đề phổ biến của ứng dụng web như phát triển API, xử lý dữ liệu trên máy chủ và thao tác với cơ sở dữ liệu. Node JS cũng cho phép xử lý hàng nghìn kết nối đồng thời mà không gây ra tình trạng block (tức là tất cả các kết nối đều được xử lý cùng lúc, chứ không phải chờ đợi cho tới khi một kết nối xử lý xong mới tiếp tục xử lý kết nối tiếp theo).

 

Với sức mạnh của mình, hắn nhanh chóng tụ tập các đại ma đầu xây dựng nên các ứng dụng đặc thù như real-time chat, ứng dụng phân tán và hệ thống giám sát. Giáo chúng của Javacript thì vô cùng hứng khởi với sức mạnh của Node JS, giờ đây chỉ cần biết Javascript là các giáo đồ đã có thể dời núi lấp biển, xây dựng cả backend và frontend. Trong khi đó giáo chúng của các ngôn ngữ chính thống như PHP, C#, Java thì phản ứng kịch liệt. Chúng cho rằng Node JS chỉ là một tên quét rác, chỉ phù hợp cho các dự án nhỏ, không thể phát triển các hệ thống có tính năng phức tạp và yêu cầu sự kiểm soát chặt chẽ về bảo mật.

 

Tranh cãi đạt đến đỉnh điểm khi giáo chúng của bên nào cũng cho rằng võ công của ta là nhất, ta là thiên hạ vô địch, không bên nào chịu thua bên nào. Giang hồ lại một lần nữa rơi vào đại loạn...

Hết hồi 03

(Tu be con tờ niu)