Công ty TNHH Dịch Vụ Công Nghệ Hoàng Hải IT

So sánh ngôn ngữ lập trình PHP và Python

13-11-2019
phân biệt 2 ngôn ngữ lập trình PHP và Python

Bài viết này được tổng hợp từ nhiều nguồn khác nhau (bằng tiếng anh) cộng với kinh nghiệm viết PHP trong 5 năm và Python trong 5 tháng của tôi :D .

I.Giống nhau :

  • Là ngôn ngữ cao cấp , thông dịch và dịch kiểu động
  • Mã nguồn mở
  • Cộng đồng lập trình viên rộng lớn
  • Dễ học (so với Java , C hay Perl)
  • Dễ mở rộng (so với Java C++)
  • Rất khả chuyển , chạy được trên nhiều nền tảng mã không phải biên dịch lại (taats nhiên rồi) hay sửa code

II.Khác nhau :

1.PHP hơn

  • PHP kế thừa các curly braces để đánh dấu code block của C và dấu $ của Perl
  • Các câu lệnh switch và vòng lặp do..while
  • Toán tử gán , increment và decrement (++ và --)
  • Toán tử ternary operator/statement (... ? ... : ...)
    • Trong Python 2.5 có câu lệnh if .. else có tác dụng tương tự ("X if C else Y")

  • array rất mạnh ,đùng cho cả list và dict
  • tham chiếu ('$a =& $b' tức là khi biến  $b thay đổi, thì biến $a cũng thay đổi)

  • Có cả private, protected và public access modifiers cho cả phương thức và thuộc tính
  • Dùng cả abstract và final modifiers cho cả classes và methods
  • Có interfaces
  • $this là đối tượng mặc định , và không cần truyền ngược self để định nghĩa method như Python ( với Python chỗ này hơi chuối để định nghĩa test là method của một lớp cần định nghĩa :                                 def test(self)
  • Hỗ trợ code trên nhiều dòng (với Python phải thêm dấu \ vào cuối dòng nếu muốn)
  • Comment sướng hơn Python (# /* //)

(Các bạn đọc có đóng góp gì cứ comment nhét)

2.Python hơn

  • Ngôn ngữ sử dụng với các mục đích chung (Python có thể dùng để lập trình hầu hết mọi thứ , trong khi PHP chỉ dùng để lập trình web hay console . Tất nhiên có thể làm được việc khác nhưng không đáng kể )
  • Sử dụng indentation (thụt vào đầu dòng, và dòng mới) thay thế cho các dấu curly braces để đánh dấu các code block . (Tất nhiên là trông đẹp hơn , nhưng không thân thiện với HTML template cho Web )
  • Có namespaces và modules (PHP 5.3 mới có namespaces)
  • Truyền biến cho hàm hiệu quả hơn PHP nhờ cặp key=value pair , hỗ trợ tốt hơn cho giá trị mặc định của biến truyền vào hàm
  • Cho phép đa thừa kế (không biết là hay hay là dở nữa)
  • Introspection tốt hơn PHP Reflection
  • Mọi thứ từ biến tới đối tượng đều có kiểu tham chiếu
  • Có Threading
  • Document tốt hơn PHP  (nhưng chắc chắn là ít TUT ,Guide,comment,... hơn PHP)
  • Có thể lập trình GUI (Tất nhiên là PHP cũng có thể nhưng không thể bằng)
  • Có thể chạy trên .Net với IronPython hay nền Java với Jython (PHP cũng có thể chạy trên Java thậm chí trong cả các Application Server)
  • Có web server,Application server riêng , 100% viết bằng Python  .
  • Có lambdas và các hàm hỗ trợ để xây dựng hàm (PHP có create_function và closure)
  • cached byte-code (PHP cũng có nhưng không tốt bằng )
  • Unicode được hỗ trợ tốt hơn
  • Kiểm soát lỗi ngoại lệ tốt hơn
  • Chạy nhanh hơn PHP (Đúng là nhanh hơn nhưng ngốn CPU và Ram khủng khiếp :D )

GỌI ĐIỆN SMS CHỈ ĐƯỜNG
Loading