Tôi có nên học PHP vào năm 2019 không? Nó vẫn còn giá trị chứ? – Phần 2: Sức mạnh của PHP

 Tuesday, 28/05/2019

Tôi có nên học PHP vào năm 2019 không? Nó vẫn còn giá trị chứ?  – Phần 2: Sức mạnh của PHP

Vaibhav Kaushal, lập trình PHP đã được gần 7 năm. Thật dễ dàng để học: Nếu con lừa có ngón tay, chúng nó cũng có thể viết được PHP. Và […]

Vaibhav Kaushal, lập trình PHP đã được gần 7 năm.

Thật dễ dàng để học:

Nếu con lừa có ngón tay, chúng nó cũng có thể viết được PHP. Và tại sao bạn lại cố làm điều tương tự với cách khó khăn hơn? Nếu bạn muốn học Java hoặc C++ bạn thì bạn có thể làm những cách khó khăn để học ngôn ngữ đó, nhưng vơi PHP thì dễ hơn nhiều.

Hỗ trợ cộng đồng:

Một số người cho rằng PHP phát triển được bởi vì một thằng ngu đã sáng tác ra cho nhiều thằng ngu viết. Nhưng thực tế 75% số lượng web đang chạy bằng PHP. Ngu ngốc? Từ các nền tảng vlog nhỏ đến các hệ thống tinh vi tuyệt vời – PHP làm tất cả. Và vì lí do đó, khi bạn tìm kiếm “tôi có thể làm gì với PHP”, thì sẽ có những bài blog hướng dẫn rất hay dành cho bạn, tận hưởng nhé.
Nguồn tài liệu đa dạng:
Nếu bạn cho rằng tài liệu của PHP rất kém cỏi, đó là vì bạn còn chưa đọc qua Python hoặc Ruby. Mỗi ngôn ngữ đều có những cách suy nghĩ khác nhau, và với một ngôn ngữ đơn giản như PHP, dành cho hầu hết tất cả mọi người, thì nó cần phải viết thực sự dễ hiểu.
[ Da Vinci từng nói: Đơn giản là tinh tế ]

[ Da Vinci từng nói: Đơn giản là tinh tế ]

PHP không thiếu các tính năng hiện đại:

Tính năng hiện đại nào trước đã? Về phía khách hàng – hầu hết sự phát triển của HTML5 là về phía JavaScript. Nếu bạn cho rằng bạn không thể viết được non-blocking server ( như NodeJS ), hãy tham khảo vòng lặp sự kiện của React, hoặc Icicle hoặc các thư viện tương tự khác.
Kể từ khi Closures ra đời, bạn có thể viết non-blocking server bằng PHP dễ dàng. Thư viện PHPws được xây dựng ( và có nhiều thư viện khác, tôi chỉ liệt kê những thứ tôi dùng ) cho phép bạn chạy websockets. Chúng ta có bỏ lỡ tính năng hiện đại nào không?

PHP an toàn:

Và ngôn ngữ nào thì không an toàn nhỉ? Bảo mật hay không thì phải phụ thuộc vào lập trình viên, ngôn ngữ nào cũng vậy. Bất cứ ngôn ngữ nào cũng sẽ có điểm yếu và những điểm đó có thể bị thường bị tấn công. Ví dụ nếu tôi là một thằng ngốc, thì dù tôi dùng ngôn ngữ nào đi chăng nữa cũng sẽ có đầy điểm dễ bị tấn công thôi.PHP cũng như các ngôn ngữ khác, PHP cung cấp cho bạn các công cụ, mẹo và API để bảo vệ điều đó.
Bạn cần phải học các nghiên cứu sâu vấn đề hơn là ngồi đổ lỗi cho ngôn ngữ.

PHP có kiểm tra các tham số và giá trị trả về:

PHP đã từng không có các dữ liệu kiểm tra nghiêm ngặt cho các giá trị vô hướng trong các hàm tham số và các hàm của nó không bao giờ trả về một loại dữ liệu nhất định, nhưng với PHP7 đã có hỗ trợ cho chuyện đó.
Tôi đã thấy nhiều người ( thậm chí trên Quora ) nói rằng “toán tử 3 cấp ( === ) trong PHP? Đang đùa chắc?”. Tôi chắc chắn rằng người nói câu này đã đọc quá nhiều bài viết về click-baity trên web.
Nếu bạn thậm chí đã ở mức độ phát triển web trung cấp và đã làm một số việc bằng Javascript, bạn sẽ biết toán tử ba cấp được sử dụng khá rộng rãi trong JS.
Còn nếu bạn chưa từng làm việc đó, thì bạn chưa biết rõ về web.
PHP không thể dạy bạn cách tất cả mọi thứ hoạt động. Trên thực tế, những gì bạn có thể học từ PHP là các tính năng ở cấp độ “ngôn ngữ”.
Nếu bạn muốn học lập trình web mà không cần phải quá chi tiết, PHP là sự lựa chọn tốt nhất. Nhưng nếu bạn muốn biết nhiều hơn, ví dụ như cách mà một hệ thống hoạt động ( hệ điều hành, ứng dụng và bộ nhớ ) bạn nên học thêm về C/ C++. Với bộ 3 này bạn sẽ làm hầu hết được mọi thứ, PHP cho web, C C++ cho bất kì loại ứng dụng nào bạn có thể tưởng tượng, thậm chí bạn muốn viết ra một HĐH hoặc bất kì thứ gì khác – bộ 3 này cân được hết !
Hãy nhớ rằng quan trọng nhất không phải là loại ngôn ngữ bạn học, mà là tư duy lập trình của bạn để ra lệnh cho máy móc làm những gì bạn muốn.
Bàn một chút về lịch sử của PHP, PHP không phải là một ngôn ngữ lập trình chính thức.
PHP chỉ là một hack nhỏ trong việc lập trình một trang web động. Nó được thiết kế cho những người không lập trình vào khoảng thời gian mà CC++ là ngôn ngữ phổ biến nhất, hơn cả Java.
Thời điểm đó, nó được cho là loại ngôn ngữ chỉ dành cho những người không nghiêm túc trong việc lập trình web. Ngay cả người tạo ra nó, Rasmus Lerdoff nói rằng ông ta không có ý định xây dựng một ngôn ngữ lập trình. Thay vào đó, ông ta chỉ muốn viết một công cụ để viết kịch bản cho các trang web và tiếp tục thêm các tính năng; và nó đã phát triển thành ngôn ngữ.
     Như vậy ta thấy được nền tảng của PHP khá lung lay – nó là một ngôn ngữ mà trước đây không được công nhận. Qua một thời gian dài trưởng thành, nó được thiết kế để cạnh tranh với các ngôn ngữ khác trong phiên bản 7.
PHP 7 có thể xử lí mọi thứ được viết trong PHP5 mà không gây ra xung đột. Cứ thử hỏi một người chuyển từ Python 2.x sang phiên bản 3.x và bạn sẽ hiểu được vấn đề.
Nhưng không thể phủ nhận PHP cũng có những phần không tốt nhưng bạn phải hiểu điều này: bạn càng muốn một ngôn ngữ linh hoạt hơn ( hoặc những thứ ngoài đời sống ), nó phải càng trở nên ít nghiêm ngặt hơn. PHP, trong quan niệm cá nhân của tôi thì ngôn ngữ này vừa nhu cương linh hoạt
– đặc biệt là với phiên bản 7. Bạn sẽ là người quyết định phần nào mạnh phần nào yếu trong chương trình của bạn, phần còn lại phụ thuộc vào trình độ lập trình.

Bổ sung: Bây giờ là 2015, nhưng khi đọc lại tôi vẫn thấy không có gì sai cả. Ngoài ra PHP7 sẽ nhanh hơn 70%. API cũng sẽ phù hợp hơn. Một chút bảo mật và các tính năng mới sẽ được giới thiệu. Vì vậy cứ tiếp tục PHP.

 

Bổ sung: Bây giờ là 2016PHP vẫn hoạt động, PHP đang nhanh hơn rất nhiều và nhiều người đang chuyển mã của họ sang phiên bản mới. Nó vẫn chạy ngon lành.

 

Bổ sung: Bây giờ là 2017. Tôi quyết định cập nhật câu trả lời về PHP7 trong tâm trí.

 

Bổ sung: Bây giờ là 2019. Câu hỏi tôi có nên học PHP này đã được hỏi vào 2014. Tôi đã học thêm Ruby on Rails, JavaGo. Nhưng PHP vẫn là thứ mà tôi cho rằng tốt nhất cho web.

Comments


Image

Hỏi tư vấn viên