VnReview
Hà Nội

Facebook ra mắt ngôn ngữ lập trình Hack

Ngôn ngữ lập trình mới của Facebook sẽ kết hợp tính dễ sử dụng của PHP với các tính năng bảo mật mạnh mẽ của các ngôn ngữ cũ như C++.

Ngôn ngữ lập trình mới của Facebook sẽ kết hợp tính dễ sử dụng của PHP với các tính năng bảo mật mạnh mẽ của các ngôn ngữ cũ như C++.

Theo PCWorld, lập trình viên PHP sẽ dễ dàng làm quen với Hack, do Hack tái tạo lại rất nhiều tính năng và đặc điểm của ngôn ngữ lập trình web quen thuộc này. Bryan O'Sullivan, kỹ sư nổi tiếng của Facebook, cho biết Hack sẽ có thêm nhiều tính năng mới để tăng khả năng làm việc.

Trong năm qua, Facebook đã chuyển đổi gần như tất cả các mã nguồn PHP của mình sang Hack và cải tạo phần lớn các thành phần trung tâm của trang web này.

Trước khi tạo ra Hack, Facebook đã thực hiện những bước tiến tương tự như khi Microsoft công bố TypeScript. Trong khi TypeScript thực chất chỉ là JavaScript đã được cải thiện để hỗ trợ gán kiểu tĩnh cho biến, thì Hack cũng cho phép gán kiểu tĩnh trên nền PHP.

Cả 2 dự án này sẽ giúp tạo ra các ngôn ngữ lập trình động mạnh mẽ hơn, cho phép các lập trình viên có thể tạo ra các ứng dụng nền web quan trọng một cách dễ dàng hơn. Các dự án nhỏ cũng có thể tận dụng Hack để tăng hiệu năng xử lý và tăng chất lượng mã nguồn.

PHP mở rộng

Hack đòi hỏi phải chạy trên máy ảo HHVM (Hip Hop Virtual Machine) của Facebook. Máy ảo HHVM có thể biên dịch PHP, vốn là một ngôn ngữ dạng phiên dịch (chuyển mã nguồn thành các lệnh do máy đích trung gian, sau đó máy trung gian sẽ chuyển tiếp lệnh này cho các máy khác thực thi).

Ngôn ngữ lập trình mới của Facebook sẽ kết hợp tính dễ sử dụng của PHP với các tính năng bảo mật mạnh mẽ của các ngôn ngữ cũ như C++.

Như vậy, Hack có thể coi là một phiên bản mở rộng của PHP với tính năng gán kiểu tĩnh, một tính năng vốn chỉ có trên các ngôn ngữ "truyền thống" hơn như C/C++ hay Java và C#. Các ngôn ngữ hướng nền web như PHP và Javascript chỉ gán kiểu động (có thể chuyển biến dạng số nguyên thành dạng chuỗi bất cứ lúc nào trong hàm của mã nguồn).

Khi gán kiểu động, "không có thông tin cụ thể nào trong mã nguồn mô tả loại thông tin mà ứng dụng này đang sử dụng", O'Sullivan khẳng định.

Ngược lại, gán kiểu tĩnh đòi hỏi lập trình viên phải chọn kiểu dữ liệu cho các biến trước khi biên dịch ứng dụng. Việc gán kiểu tĩnh sẽ giúp giảm các lỗi runtime (lỗi khi chạy) do nhập liệu sai kiểu dữ liệu, bất kể là do lỗi con người hay do máy tính.

"Có những loại lỗi và các trường hợp treo xảy ra nếu như người lập trình không cẩn thận về kiểu dữ liệu gán cho các biến. Các lỗi tiềm ẩn này có thể ẩn náu rất lâu trên các ngôn ngữ gán kiểu động".

Máy ảo HHVM được tích hợp một bộ kiểm tra cho phép đảm bảo rằng tất cả các thông tin gán kiểu là chính xác. Ngôn ngữ Hack cho phép lập trình viên có thể tạo ra các kiểu dữ liệu riêng.

"Về mặt syntax (cấu trúc ngữ pháp), Hack rất gần với PHP. Chúng tôi đã cố gắng để mã nguồn PHP và mã Hack có thể chạy song song, do đó bạn có thể dần dần chuyển mã nguồn từ PHP sang Hack", O'Sullivan khẳng định.

Một số tính năng đã bị deprecate (ngừng hỗ trợ chính thức nhưng vẫn có thể hoạt động) trên PHP sẽ không thể chạy trên Hack. Các tính năng không tương thích với gán kiểu tĩnh cũng không hoạt động tốt.

Hack có một số tính năng phụ ít thấy ở PHP. Trước hết là các Collection – các loại mảng đa năng hơn Array của PHP. Hack cũng sử dụng Lambda Expression để hỗ trợ tính năng closure, cho phép bạn có thể viết ra các bước chuyển hóa dữ liệu ngắn gọn và dễ dàng hơn.

Hiện tại, Facebook cũng đã đưa ra một số plugin trình duyệt trên trang chủ của Hack để các lập trình viên có thể tự thử ngôn ngữ này một cách dễ dàng trên nền web. O'Sullivan không cho biết liệu các cải tiến của Hack có được gửi về những người chịu trách nhiệm phát triển PHP hay không, song vẫn khẳng định "sẽ tích cực làm việc với cộng đồng mã nguồn mở" để phát triển Hack.

Lê Hoàng

Theo PCWorld

Chủ đề khác