PHP 8: đợi chờ là hạnh phúc?
PHP sẽ được nâng cấp lên phiên bản 8 vào chính xác ngày 23/9/2021, liệu đợi chờ có hạnh phúc khi mà Python và Nodejs đã trở nên quá thịnh hành trong lập trình web những năm vừa qua? Hãy cùng Fullstack Station điểm qua những thành tựu và ngóng chờ tương lai của PHP 8 xem như thế nào nhé.
Trước khi tìm hiểu PHP 8, nếu bạn chưa biết PHP 7 có gì mới, thì hãy xem bài này.
Nội dung chính
Đế chế PHP
PHP là ngôn ngữ lập trình của năm 2004 (theo Tiobe Index), đã trải qua 25 năm (từ 1994) phát triển, chỉ duy nhất 1 lần đạt danh hiệu “Ngôn ngữ lập trình của năm” của Tiobe (tuổi đời PHP>Tiobe), tuy nhiên độ phủ cao với việc luôn nằm trong top 10 ngôn ngữ lập trình được sử dụng và những thành tựu mà PHP mang lại cho lập trình web thật to lớn với 79% website sử dụng PHP (theo w3techs). PHP là một đế chế hùng mạnh!
Những công ty lớn sử dụng PHP
Các công ty Google, Yahoo, Facebook, Wikipedia, WordPress đều sử dụng PHP, và đặc biệt nhất có lẽ là Facebook mạng xã hội lớn nhất hiện nay, sử dụng PHP ngay trong những ngày đầu và đã tạo ra ngôn ngữ Hack tương thích với PHP, và vẫn còn lượng lớn mã code sử dụng PHP cho đến nay.
Liệu PHP có biến mất?
PHP sẽ tồn tại ít nhất 10 năm nữa, mình tin là như vậy. Phải nói PHP giúp chúng ta tạo ra web rất nhanh và cần ít kinh nghiệm, cũng như các điều kiện để vận hành đơn giản nhất. Đó là lý do vì sao các công ty lớn ở trên vẫn còn sử dụng PHP, và khoảng 79% website đang sử dụng PHP, vậy tại sao phải lo PHP sẽ biến mất?
Dù công nghệ nào ra đời, công ty nào ra đời họ cũng cần có 1 website, là bộ mặt, là nơi kết nối mọi người. Hãy nhớ: mạng xã hội chỉ là nơi chia sẽ thông tin tóm lược, website là nơi chứa thông tin chi tiết. Còn website, còn PHP!
So sánh PHP với Node và Python, thì hiện tại Python đang khá mạnh. Tuy nhiên, PHP vẫn hơn Nodejs, và chỉ thua Python không nhiều lắm.
Đế chế PHP sẽ còn tồn tại lâu lắm, nếu bạn còn lập trình PHP thì hãy xem thêm bài “Những lỗi lập trình viên PHP hay mắc phải“
PHP 8 sẽ có Just In Time (JIT)
Just In Time (JIT) là gì
“JIT” viết tắt cho Just In Time. JIT là một kĩ thuật giúp hệ thống tối ưu lại những đoạn code.
Jit compiler chạy sau khi chương trình được khởi tạo và biên dịch lại những đoạn code (thường là bytecode hoặc là một dạng tương tự để các Virtual Machine có thể hiểu được) giúp cho ứng dụng chạy nhanh hơn. Jit có thể truy xuất vào các câu truy xuất tại thời điểm “Runtime” trong khi các compiler khác không thể và từ đó chọn lọc được ra những function mà thường xuyên được sử dụng từ đó có thể tối ưu giúp chương trình thực thi hiệu quả và nhanh hơn.
Zeev, một trong những core developer của PHP đã có một demo khá là trực quan cho những gì JIT có thể mang lại.
Tại sao PHP cần JIT
PHP đã phát triển hết mức có thể
Đã có rất nhiều cải tiến cho PHP từ phiên bản 7.0 như tối ưu HashTable (một kiến trúc lưu trữ data trong php), đặc biệt tối ưu Zend VM cho opcodes và nhiều chức năng khác (xem thêm bài tìm hiểu PHP 7). Sau tất cả những cải tiến đó, PHP đã đến cực đại để có thể phát triển thêm. Vì vậy PHP 8 với JIT có thể sẽ là người thay đổi cuộc chơi.
PHP dành cho những tác vụ khác
Nói tới PHP, ta nghĩ ngay tới một ngôn ngữ dành cho phát triển Web. Tuy nhiên, những tác vụ liên quan tới việc tính toán cần sử dụng CPU ở cường độ cao thì ít khi được sử dụng. Với việc đưa vào hỗ trợ JIT, PHP có thể được sử dụng cho nhiều mục đích khác không phải web, có thể tập trung vào CPU nơi mà lợi ích về hiệu năng là rất quan trọng.
Phát triển các tính năng khác cho PHP
Với việc sử dụng JIT, đội ngũ phát triển có thể sử dụng chính PHP để tạo ra các tính năng mới thay vì sử dụng ngôn ngữ C mà không có sự khác biệt quá nhiều về hiệu năng. Điều này giúp cho giảm thiểu sự ảnh hưởng trong việc quản lý bộ nhớ, tràn bộ nhớ và các vấn đề liên quan tương tự khi phát triển dựa trên C.
Cần làm gì để trở thành lập trình viên PHP giỏi?
Vì điều kiện để trở thành lập trình viên PHP tương đối thấp và khả năng triển khai website bằng PHP đơn giản nên thường thì lập trình viên PHP là lập trình viên tồi, vì tính mì ăn liền, đơn giản, uyển chuyển của ngôn ngữ. Nhiều lập trình viên rất ghét PHP, đặc biệt là các bạn từ các ngôn ngữ C, C++, Java, Rust, Go (static typed), hãy “kệ người ta”, đừng bắt con cá leo cây, nó sẽ tưởng mình ngu cả đời, đây là website là đất diễn của PHP. Sau đây là một số tiêu chí và định hướng để trở thành lập trình viên và lập trình viên PHP giỏi mà mình tổng hợp muốn chia sẽ với các bạn.
Kỹ năng lập trình
Kỹ năng lập trình bao gồm thuật toán, cấu trúc và dữ liệu, kiến thức về hệ thống, lập trình hướng đối tượng OOP, kỹ thuật tối ưu, kỹ thuật viết code sạch, sáng sủa, khả năng viết test, unit test. Những kỹ năng này thì lập trình viên cho mảng nào cũng cần (Xem thêm Các chiêu thức trong lập trình).
Cao hơn thì quản lý máy chủ, CI/CD; quản lý, sử dụng vận hành docker, ví dụ sử dụng docker trong môi trường phát triển. Nghiên cứu về bảo mật (xem Công cụ tìm lỗi bảo mật)
Hiểu rõ ngôn ngữ PHP
Bạn cần nắm vững các hàm, cách thức tối ưu trong PHP, hạn chế các lỗi mà lập trình viên PHP hay mắc phải, ví dụ Các lỗi khi làm việc với mysql lập trình viên PHP, hay phân biệt isset(), is_null(), empty().
Phải sử dụng các công cụ như PHPMD, PHPCS để viết code hiệu quả, tăng cường tính dễ đọc, dễ bảo trì, hiệu quả thực thi cho code.
Sử dụng framework hiệu quả
Có rất nhiều PHP Framework như: CodeIgniter, Zend, Symfony, Laravel, Yii,.. cao hơn là CMS như WordPress, Joomla, Drupal… Sử dụng framework hay CMS nào là cái duyên của mỗi người, ví dụ bạn thích mà công ty đang không sử dụng thì cũng chịu. Ví dụ mình chưa bao giờ sử dụng Laravel, hơi sốc khi biết Laravel nắm khoảng ~40% thị phần PHP Framework nhưng tới giờ vẫn chưa có dự án nào dùng Laravel.
Việc biết, sử dụng nhiều framework là không tốt, vì kiến thức bị phân mảnh. Kiến thức từ các framework thực sự khá khác biệt nên khó tận dụng được kinh nghiệm từ framework trước. Bạn cần xác định rõ con đường mình muốn đi ra sao, nếu muốn đi làm việc tại quốc gia nào, thì tìm hiểu framework thịnh hành tại quốc gia đó. Tốt nhất là đừng chạy theo framework, đừng nghe ai đó nói Framework này tốt, cái kia tốt. Tập trung 1 cái thôi, rồi học các kỹ năng lập trình thêm.
Fullstack Station Tip
Có nên học PHP không?
Mình có dự án đầu tiên, công việc đầu tiên và đi làm việc ở Nhật nhờ ngôn ngữ lập trình PHP, tất nhiên đó là câu chuyện của 10 năm trước, nhưng với sự phát triển khá mạnh mẽ của WordPress, công việc bằng ngôn ngữ lập trình PHP sẽ rất nhiều. Ít nhất là hiện tại ở Nhật Bản, PHP vẫn được ưu chuộng và khá dễ kiếm việc.
Vì vậy câu trả lời là có.
Ngoài ra, kế hoạch ra đời PHP 8 minh chứng cho sự phát triển không dừng lại của PHP. Mặc dù trong lĩnh vực không phải là web, thì PHP không thực sự mạnh, nhưng PHP 8 có thể sẽ thay đổi cuộc chơi. PHP 7 được ra mắt đã giúp PHP lấy điểm trở lại trong lĩnh vực lập trình web với tốc độ cải thiện hơn 50% so với 5. PHP 8 sẽ còn nhanh hơn PHP 7, vậy còn gì tuyệt hơn?
Ngày nay, sự phát triển của công nghệ quá nhanh chóng, trào lưu AI và Blockchain nở rộ, việc học PHP có thể được xem như lỗi thời. Nhưng mình nghĩ công nghệ gì cũng cần phải no bụng đã, PHP là lựa chọn không hề tệ để dễ dàng kiếm việc. Việc làm trong AI và Blockchain không hề đơn giản, có thể lương cao, nhưng cạnh tranh cũng rất khốc liệt. Mài dũa kỹ năng lập trình với PHP, rồi học tiếp thêm các ngôn ngữ khác, công nghệ khác tuỳ theo nhu cầu và thời điểm.
Tham khảo
https://react-etc.net/entry/php-8-0-0-release-date-and-jit-status
Nguyễn Nhân
5