Tại sao các dev thường ghét PHP?
PHP là ngôn ngữ được sử dụng rộng rãi nhất trên thế giới trong lập trình web. Nó cũng bị ghét nhất. Nhưng tại sao nhiều developer lại ghét nó đến vậy? Hôm nay chúng ta hãy cùng tìm hiểu lý do xem chúng có thuyết phục không nhé ^_^
Ghét vì đam mê
Nếu mình nói rằng PHP bị cả thế giới ghét bỏ thì đó không phải là ý kiến cá nhân của mình. Trong cuộc khảo sát mới nhất trên stackoverflow, các developer từ khắp nơi trên thế giới đã xếp PHP vào top 5 ngôn ngữ đáng sợ nhất. Cuộc khảo sát mới nhất của Hired đưa nó vào top 2 bị ghét nhất. Còn rất nhiều thứ nữa và mình thậm chí không nói về những gì đang diễn ra trên Reddit.
Mình đã làm qua rất nhiều dự án với Laravel, và mình thích cũng rất thích Laravel. Thành thật mà nói, nó khá tốt. Lúc ấy mình đã tự đặt câu hỏi: tại sao mọi người lại có quá nhiều ác cảm với PHP?
Quá khứ rắc rối của PHP
Để hiểu điều gì sẽ xảy ra tiếp theo, chúng ta có thể cần xem lại lịch sử một chút.
Năm 1994, Rasmus Lerdorf đang phát triển một bộ tookit bằng C. Bộ công cụ này được sử dụng để quản lý trang web cá nhân của anh ấy. Rasmus làm điều đó chỉ vì nhu cầu của chính mình vào thời điểm đó. Anh ta không hề muốn biến nó thành một ngôn ngữ lập trình. Không có gì trong bộ công cụ này được thiết kế để trở thành một ngôn ngữ lập trình.
Một năm sau, Rasmus phát hành bộ công cụ mã nguồn mở này được gọi là: PHP / FI. Và nó trông như thế này:
<!--include /text/header.html-->
<!--getenv HTTP\_USER\_AGENT-->
<!--ifsubstr $exec\_result Mozilla-->
Hey, you are using Netscape!<p>
<!--endif-->
<!--sql database select \* from table where user='$username'-->
<!--ifless $numentries 1-->
Sorry, that record does not exist<p>
<!--endif exit-->
Welcome <!--$user-->!<p>
You have <!--$index:0--> credits left in your account.<p>
<!--include /text/footer.html-->
Đối với phần còn lại của câu chuyện:
- Code được tiếp quản bởi một nhóm phát triển và PHP / FI2 được phát hành vào năm 1997.
- Năm 1998, một phần core được viết lại, sau đó PHP3 được phát hành.
- Năm 1999, phần core của PHP được viết lại hoàn toàn để tạo ra Zend.
- PHP4 tiếp nối vào năm tiếp theo và PHP5 được phát hành vào năm 2004 với Zend2.
- PHP6 đã bị hủy bỏ vì quá trình phát triển đã biến nó thành một đống hổ lốn.
- PHP7 được phát hành vào năm 2015 sau một bản refactor core siêu to khổng lồ.
Nhưng ban đầu, Rasmus chỉ đang code thứ của riêng mình. Năm 2003, anh ấy đã thực hiện một cuộc phỏng vấn và kể một số điều khó tin.
Tôi thực sự không thích code. Tôi đã xây dựng công cụ này để code ít hơn, và cũng để tôi tái sử dụng code dễ dàng hơn… Tôi không biết làm thế nào để dừng nó lại, tôi chưa bao giờ có ý định viết một ngôn ngữ lập trình […]. Tôi không biết làm thế nào để viết một ngôn ngữ lập trình cả [...].
Mẹ nó, thật sự là méo hiểu chuyện gì đang xảy ra - Rasmus =)).
Thiếu nhất quán và thiết kế tồi
Các developer ghét PHP vì nó là một ngôn ngữ không nhất quán về mặt kỹ thuật đi kèm với một thiết kế tồi tệ. Khi bạn so sánh nó với các ngôn ngữ khác, sự tương phản là rõ ràng.
Nếu sau khi tìm hiểu về nó, bạn vẫn không thể thừa nhận rằng PHP có một số vấn đề, thôi toang - PHP đã trở thành tín ngưỡng của bạn, và thuyết phục một kẻ cuồng tín là điều bất khả thi.
Sử dụng PHP, rất dễ tạo ra smell code. Các ngôn ngữ khác có nhiều phương pháp hạn chế điều này hơn. Chúng ta cũng thấy rất nhiều vấn đề về bảo mật với PHP.
Tuy nhiên, bạn sẽ không gặp lỗ hổng bảo mật hay phải chịu cảnh smell code nếu bạn viết code PHP đúng cách. Các developer ghét PHP vì họ có nhiều khả năng gặp lỗi khi làm việc với một ngôn ngữ có quá ít ràng buộc.
Bị ghét bởi vì quá thành công
Có một yếu tố quan trọng khác xung quanh sự thù hận này. Các developer ghét PHP vì nó được sử dụng ở mọi nơi. Blog này cũng đang chạy trên PHP7 - Laravel. PHP giúp mình thực hiện công việc một cách đơn giản.
Bản thân ngôn ngữ không phải là tốt nhất, nhưng ai quan tâm chứ? Nó đáp ứng nhu cầu của mình một cách nhanh chóng và dễ tiếp cận. Cũng vì lý do này mà 80% web chạy bằng PHP.
Với sự ra đời của WordPress, thứ thống trị Internet theo đúng nghĩa đen, hầu hết các developer mà mình quen đều sẽ từng chơi với PHP.
Bên cạnh đó, mình đang nói với bạn như thể ngôn ngữ này chỉ có thể làm một vài website đơn giản như cái blog này của mình, nhưng rõ ràng không phải như vậy.
Facebook, Wikipedia, Yahoo, Flickr, Tumblr tất cả các trang web này đều chạy bằng PHP và chào đón hàng triệu người dùng mỗi tháng mà vẫn phẻ re. PHP đã và sẽ làm rất tốt điều này trong một thời gian dài.
Tương lai phát triển
Tầm năm 2011, lúc mình mới bắt đầu lên TP HCM đi học, mình đã nghe nói:
PHP sắp chết rồi, mày học nó làm gì?
Hay một vài câu nói mông lung hơn:
PHP là cái thứ ngôn ngữ vừa chậm chạp lại vừa cẩu thả. Học nó làm gì cho tốn thời gian?
Oh ho. Vậy mà nó vẫn ở đây. Bất chấp thời gian và công nghệ mới nhất, nó vẫn chưa chết.
Thực sự mà nói, một công nghệ chỉ thực sự chết đi "khi đã không còn tương lai phát triển" hoặc "không còn ai sử dụng nó nữa".
Trong suy nghĩ của nhiều developer, PHP vẫn ở phiên bản 4 - khi ngôn ngữ này còn không ổn định, hiệu suất cùi bắp và không hỗ trợ OOP. Các developer ghét PHP vì họ tin rằng ngôn ngữ này đã quá trì trệ trong suốt hơn 20 năm qua. Nhưng PHP ngày nay đã khác xa với PHP4.
PHP7 nhanh hơn Python và Ruby. PHP cũng hỗ trợ strongly typed nếu bạn muốn.
Công cụ cũng đang phát triển với các bộ static parsers đã xuất hiện trong những năm gần đây.
Các framework như Laravel, Symfony hoặc Zend buộc bạn phải follow kiến trúc chuẩn.
Các phiên bản mới được phát hành hàng năm với một lịch trình chính xác.
PHP7.4 hiện tại có hiệu suất thậm chí còn cao hơn.
Mình sẽ không liệt kê mọi thứ đang xảy ra trong PHP hiện tại vì quá dài. Nếu bạn muốn biết mọi thứ mình mời bạn đọc bài viết này. Đã đến lúc thay đổi cách nhìn của bạn về thứ ngôn ngữ không liên quan gì đến nó trước đây.
PHP tuy còn nhiều điểm hạn chế, nhưng thực sự nó vẫn có rất nhiều thứ tốt khác và phù hợp cho hầu hết thể loại websites.
Với việc miễn phí bộ .NET Core đến từ Microsoft, rất nhiều developer lo lắng về vị thế và nhu cầu của PHP trong tương lai, nhưng thực sự mà nói điều đó thật sự rất khó, ít nhất là trong tương lai gần.
Hầu hết các developer ghét PHP đều ghét nó vì chủ nghĩa hoàn hảo hoặc thiếu hiểu biết. Dù bằng cách nào thì điều đó cũng thật ngu ngốc. Bạn phải chọn một công nghệ dựa trên những gì bạn cần. PHP rất hữu ích và mạnh mẽ trong nhiều trường hợp. Nếu bạn loại bỏ nó chỉ vì danh tiếng của nó (trước đó) thì chắc chắn không phải là một ý kiến hay.