Bài viết được dịch từ trang web InfoWorld

Học lập trình web PHP trực tuyến cấp tốc
Ngôn ngữ lập trình PHP ngày càng phát triển hoàn thiện hơn.

PHP (Hypertext Preprocessor) đang thống trị trong lĩnh vực phát triển ứng dụng Web: theo thống kê của W3Techs.com thì PHP được sử dụng trên 81% website trong thế giới Internet. Tác giả của ngôn ngữ này, Rasmus Lerdorf, gần đây đã xuất hiện tại hội nghị DevBeat ở San Francisco, và ông cũng đã lên tiếng ủng hộ công nghệ HipHop của Facebook trong việc biến đổi mã nguồn PHP. "Nếu họ phát triển nó thành dạng đa mục đích (general-purpose) đủ tốt, có thể cuối cùng nó sẽ trở thành engine tiếp theo cho PHP," ông nói. Việc có một JIT (trình biên dịch just-in-time) như HipHop VM trong PHP "thì chắc chắn là có thể, và vâng, tôi thích những gì mà những gã đó đang làm. Nhưng nó không phải là một cái gì đó dễ dàng. Nó sẽ cần ít ra là một vài năm nữa để phát triển." Một loạt các công nghệ JIT khác cũng có thể xuất hiện trong PHP, ông nói.

Lerdorf, một kỹ sư danh dự tại công ty thương mại điện tử Etsy, cũng đã nói với khán giả rằng nếu ông có thể thay đổi một thứ cơ bản về cách ông đã phát triển PHP, thì nó nên ở dạng case sensitivity (các function PHP hiện nay không phân biệt chữ hoa chữ thường). "Tôi nên thay đổi nó sớm hơn, nhưng đó dường như là một điều rất tầm thường." Lerdorf cũng tỏ ra hoài nghi về việc PHP sẽ trở thành một ngôn ngữ strictly typed. Điều này sẽ là một "thay đổi rất, rất lớn," ông nói. "Tôi không nghĩ rằng điều đó sẽ xảy ra." Sau đó, Lerdorf, người vẫn đang hoạt động trong việc phát triển PHP, đã trả lời một số câu hỏi của biên tập viên tạp chí InfoWorld.

InfoWorld: Ông đã nói rằng ông phát triển PHP trong lúc đang cố gắng giải quyết một vấn đề. Vậy vấn đề mà ông đang cố gắng giải quyết vào lúc đó là gì?

Lerdorf: Vấn đề về Web nói chung, xây dựng các trang web một cách nhanh chóng.

InfoWorld: Đó là khi nào -- 1992, 1993?  

Lerdorf: Tôi bắt đầu nó vào năm 1993. Việc phát hành phiên bản công khai đầu tiên của PHP thì phải đến năm 1995, nhưng đó là sau khi tôi đã làm việc trên nó trong khoảng một năm rưỡi.

InfoWorld: Ông nghĩ gì về PHP nói chung như là những thành công và có thể cả những thất bại của nó nữa?

Lerdorf: Tôi nhìn vào những vấn đề mà nó đã giải quyết và tôi nhìn vào các dự án. Ví dụ, có một dự án gọi là Sahana, ở Sri Lanka, đó là một dự án quản lý cứu trợ thiên tai, về cơ bản là để tập trung các thông tin cứu trợ về một nơi cho dễ quản lý. Nếu một thảm họa lớn xảy ra, những chuyên gia sẽ đến. Họ cung cấp một hệ thống CNTT toàn bộ để quản lý các nơi tạm trú. Bạn lưu danh sách những người tạm trú. Sau đó có một trang web giúp các gia đình kiểm tra nơi các thành viên gia đình của họ có thể ở, nếu ai đó đã tìm thấy họ. Nó cũng quản lý những cứu trợ nhận được từ các quốc gia khác. Vâng, có lẽ bạn đã hình dung ra, liệu chúng ta có nước trong trung tâm này, chúng ta có tã lót ở kia, chúng ta có các thứ ở đây. Và bạn nhìn vào những thứ như thế và tất cả những điều này, chứ không phải là về những gã geek ngồi xung quanh để vọc vậy với những công cụ của họ, điều đó hoàn toàn không có ý nghĩa gì đối với tôi so với việc nhìn thấy phần code đó thực sự cứu được mạng sống của những người bị thiên tai.

InfoWorld: Liệu có chỗ nào trong PHP cần phải bảo mật hơn?

Lerdorf: Bảo mật ư, vâng. Chúng tôi có số lượng báo cáo về vấn đề bảo mật nhiều hơn những ngôn ngữ lập trình khác. Rất nhiều trong số chúng được phát hiện trong quá trình sử dụng. Những ngôn ngữ không có người dùng thì sẽ chẳng có những báo cáo về vấn đề bảo mật, và rất nhiều trong số chúng là những vấn đề mà chúng tôi đã cố gắng giải quyết trong khi không cần thiết phải làm như vậy. Mặc dù không có ngôn ngữ nào khác cố gắng giải quyết lỗ hổng kiểu đó. Rất nhiều trong những thứ này về cơ bản là các khai thác nội bộ, nghĩa là bạn phải ở trên cái máy chủ đó và phải có khả năng lập trình PHP thì mới hack được.

InfoWorld: Điều gì là lợi thế của một ngôn ngữ PHP strictly typed trái ngược với việc nó là loosely typed?

Lerdorf: Điều đó làm cho nó trở nên cứng nhắc hơn, nhưng nó cũng đồng nghĩa là mọi người bây giờ sẽ phải quan tâm về các kiểu (types) nhiều hơn, đó là một sự thay đổi rất lớn cho một ngôn ngữ loosely typed. Và tôi nghĩ rằng đây không phải là một sự thay đổi sẽ giúp ích cho hầu hết mọi người. Tôi đã nói trong buổi nói chuyện về sự mở rộng của PHP, chúng ta thu hẹp hay mở rộng nó, và điều đó sẽ có thể giúp ích cho 1/3 người dùng, nhưng 2/3 còn lại sẽ la lên "Ôi, trời ơi. Cái chết tiệt gì đang diễn ra thế này? Tại sao code của tôi không hoạt động chút nào nữa?" Bởi vì giờ đây mọi thư viện tôi gọi đột nhiên nói rằng, "Không, anh đã truyền cho tôi một string, trong khi tôi mong đợi một số integer cơ." Bạn đang đẩy trách nhiệm làm công việc đó tới những người không cần thiết phải hiểu sự khác nhau giữa string và một số integer, ngược lại cái gã mà đã viết ra thư viện đó thì hiểu một cách hoàn hảo: "Hey, tôi biết là tôi cần một số integer. Tôi có thể kiểm tra cái chuỗi string chết tiệt này. Nếu nó trông giống một số integer thì tôi sẽ sử dụng nó như là một số integer." Đó chính là thứ mà một ngôn ngữ loosely typed làm.

InfoWorld: Có phải ông nói PHP là một trong những ngôn ngữ dễ lập trình nhất?

Lerdorf: Vâng. Tôi nghĩ là vậy. Đó là một sự cân bằng khó khăn để đạt được. Bạn không muốn ẩn đi vấn đề quá nhiều bởi vì mọi người vẫn cần phải hiểu được cấu trúc cơ bản của Web. Vì vậy, chúng tôi đã có một số giải pháp khác trong quá khứ, nơi mà bạn vẽ nên ứng dụng của mình mà hầu như không thực sự biết nó làm việc như thế nào. Rất khó để cân bằng giữa việc đơn giản hóa vấn đề nhưng không làm cho nó trở nên quá đơn giản đến mức mà mọi người không hiểu được bản chất của một HTTP request và response, do đó các đặc trưng cơ bản của web vẫn phải tồn tại. Bạn không thể viết một ứng dụng có hiệu quả trừ khi bạn thực sự hiểu được bản chất của request/response của một Web request.

Khóa học PHP 7 dạy theo hình thực Flip Learning gồm video, quiz trắc nghiệm, bài tập lập trình với nhiều ví dụ mẫu, dự án mẫu trực quan. Học viên có thể hỏi đáp với giảng viên.

InfoWorld: Khi ông tạo ra PHP thì ông có nghĩ rằng nó sẽ phổ biến rộng rãi như bây giờ không?

Lerdorf: Không. Hoàn toàn không. Đây là một công cụ cho tôi sử dụng. Lúc đó tôi phải tự tạo ra cây búa của riêng mình bởi vì tôi không thể tìm thấy một cây búa nào vào thời điểm đó.

InfoWorld: Có điều gì khác mà ông muốn khuyên những lập trình viên PHP nên quan tâm?

Lerdorf: Họ nên nâng cấp lên phiên bản mới nhất một cách thường xuyên. Chúng tôi có rất nhiều người đang sử dụng các phiên bản PHP cũ, điều này đôi khi dẫn đến một chút bực bội, và người ta sẽ phàn nàn về những tính năng không được như ý muốn hoặc còn thiếu. Sau đó bạn hỏi họ thì mới biết là họ đang sử dụng phiên bản PHP 5.1, và đúng là tính năng đó có bug, nhưng chúng tôi đã giới thiệu nó 4 năm về trước. Nhưng vì họ không cập nhật lên những phiên bản mới hơn. Họ vẫn viết code theo kiểu từ 8 năm về trước.