Python được Guido van Rossum tạo ra vào năm 1990, sau nhiều thăng trầm, Python ngày càng trở nên phổ biến. Cho đến năm 2016, Python là ngôn ngữ thông dụng đứng thứ 4 sau Java, C và C ++. Python là một ngôn ngữ lập trình đa chức năng, được sử dụng trong nhiều lĩnh vực khác nhau. 

Python là một lựa chọn phổ biến để viết script nhằm mục đích kiểm tra (test) và giám sát (monitor). Python cũng được sử dụng trong lập trình game, khả năng tích hợp với các ngôn ngữ khác khiến nó “ghi điểm” trong nhiều trường hợp. Python nổi tiếng một phần là do được sử dụng bởi Industrial Light and Magic của George Lucas (chịu trách nhiệm về các hiệu ứng đặc biệt trong bộ ba phim Star Wars đầu tiên) để quản lý quy trình sản xuất phức tạp của những bộ phim này.

Không giống như PHP, Python không được xây dựng chuyên cho môi trường web và không có dủ chức năng web cốt lõi cần có. Bởi vậy, chúng ta phải sử dụng web framework để phát triển ứng dụng web trên Python. Kể từ sự xuất hiện của các framework tuyệt vời như Django, lập trình viên web đã bắt đầu sử dụng Python nhiều hơn. 

Điều gì đã khiến Python trở thành ngôn ngữ ngày càng được nhiều lập trình viên lựa chọn khi xây dựng web? 

1. Tại sao sử dụng Python?

1.1. Python cho người mới bắt đầu

Python phổ biến là bởi sự tinh tế của những dòng code – đó là ngắn gọn và dễ đọc. Cùng xem cách đảo số (reverse number) của Python và Java ở ví dụ sau:

 

Python cung cấp một đường cong học tập (learning curve) ngắn hơn, nên sẽ lý tưởng cho người mới học. Ngoài ra, nếu dự án của bạn dựa trên Python và các nhà phát triển mới chưa quen với nó, thì quá trình chuyển đổi sẽ trở nên dễ dàng hơn.

Như người đồng sáng lập Quora, Adam D’Angelo đã nói về việc lựa chọn Python cho việc phát triển Quora:

“Cho đến nay, chúng tôi khá hài lòng với lựa chọn này… tất cả những nhân viên ban đầu đã từng làm việc với các ngôn ngữ khác trong quá khứ đều sẵn lòng chuyển sang Python, đặc biệt là những lập trình viên PHP trước đây.”

Hơn nữa, Python có nhiều công cụ debug dễ sử dụng. Mặc dù đã có một số công cụ debugger và IDE, nhưng công cụ mặc định vẫn là pdb - một công cụ debug tương tác cho phép lập trình viên dừng thực thi chương trình giữa chừng và đánh giá môi trường để hiểu rõ hơn về các lỗi thời gian chạy (runtime errors).

1.2. Python trên máy chủ từ xa (remote server)

Việc quản lý các gói (package) (hay module) trong Python cũng rất dễ dàng. Sử dụng trình cài đặt gói (package installer) như pip hoặc easy_install, ạn đã có thể cài đặt và gỡ bỏ package thật đơn giản. 

Python cũng rất cơ động. Việc dễ dàng chuyển môi trường phát triển của bạn sang một máy từ xa (remote machine) là một ưu điểm nổi bật của nó. Bạn chỉ cần xuất các gói, và cài đặt nó trong môi trường ảo trên máy từ xa, chỉ với hai dòng lệnh.

Một lý do nữa khiến nhiều lập trình viên chọn Python, là khả năng chạy tập lệnh (script) chưa được nhúng (embed) vào web server (không như PHP script). Python chạy script trên nhiều quá trình riêng biệt. 

2. Lập trình Web bằng Python Web Frameworks 

Python không có sẵn khả năng làm web, chính vì thế, chúng ta cần phải có một số module nhất định để đưa Python lên web. Nếu bạn muốn phát triển những ứng dụng cực kỳ đơn giản – nhưng một trang kiểm tra hoạt động của server  – bạn có thể dùng the cgi module

Với nhu cầu ngày càng đa dạng, lập trình viên nên chuyển sang một số framework Python như Django hay Flask để có thê cho ra các ứng dụng web phức tạp. 

Đa phần những framework này cần phải đi kèm với dịch vụ web như Apache khi tiến đến quá trình sản xuất (production), và đây cũng là lúc sự tắc nghẽn xuất hiện. So với PHP, quá trình triển khai (deploy) của Python trên remote server sẽ khá khó khăn nệu bạn thực hiện lần đầu trong đời. Tuy nhiên, càng bỏ nhiều thời gian lúc đầu thì càng thu nhiều lợi ích về sau.

Các dịch vụ phổ biến như Instagram, Reddit, Quora và Disqus đều được phát triển bằng Python.

3. Django - Framework Web Python phổ biến nhất

Có một thắc mắc rằng: Tại sao lại sử dụng Python để phát triển web? Đầu tiên, đừng nghĩ là ta “chỉ dùng Python”. Còn rất nhiều framework khác như Django hay Flask tham gia vào quá trình này, khiến quá trình làm web thêm đa dạng và mạnh mẽ. Dưới đây là một số thế mạnh của Django so với các framework khác: 

  * Đường cong học tập dễ dàng: Cũng giống như Python, Django rất dễ học, không như Ruby hay Rails.

  * Tạo bảng SQL tự động: Django sẽ thay bạn làm công việc này khi bạn đã xác định được cấu trúc.

  * Tạo biểu mẫu  (form): Khi bạn đã tạo được Form class trong Django và linked đến model, form generator trong Django sẽ đảm nhận render form, xác minh và lưu trưc data.

  * Giao diện quản trị (admin interface): Tương tự SQL table, khi bạn đã xác định được cấu trúc, Django sẽ tạo một admin interface cho phép bạn quản lý cơ sở dữ liệu (không khác gì PhpMyAdmin có sẵn trong Django cả.)

  * Vỏ Django (Python Shell): Django Shell có ngay trong môi trường của Django project. Tính năng này rất hữu hiệu khi debug (thường khó thực hiện trên PHP hơn). 

Nếu bên trên chưa đủ với bạn, thì có thêm hai dịch vụ thú vị nữa trong Python là Tornado (cho các tác vụ không đồng bộ) và Celery (để lập lịch công việc). 

4. Máy chủ lưu trữ web Django (Django Web Hosting)

Khả năng Web host là chường ngại lớn nhất khiến nhiều người e ngại khi chuyển sang dùng Django. Hiển nhiên, do sự nổi tiếng của PHP, số lượng host rất lớn và chúng khá rẻ (và host rẻ thường phải chia sẻ cho nhiều người). Tuy nhiên, còn có một số host như AWS và Heroku cho phép bạn làm chủ ứng dụng Django miễn phí (với giới hạn nhất định). Với các host được chia sẻ thì sẽ có giá tiền “mềm” hơn một chút, bạn có thể tìm đến WebFaction.

Những dịch vụ má trữ đám mây (cloud hosting) phổ biến nhất hiện nay như AWS, Digital Ocean và Microsoft Azury đều cung cấp quyền truy cập root đến máy chủ, cho phép bạn tự thiết lập môi trường của mình theo cách thủ công. Thực ra, Digital Ocean đã triển khai Django chỉ bằng một cú nhấp chuột. Tuy Django không nổi tiếng như các framework của PHP, nhưng lại có nhiều tùy chọn khác nhau với những mức giá khác nhau. 

Lời kết

Mục đích của bài viết này không phải để nói với bạn rằng Python là giải pháp cho mọi vấn đề! Nó là để làm nổi bật các tham số của Python và các khuôn khổ web của nó, giúp cuộc sống của các nhà phát triển web dễ dàng hơn.

Mục đích của bài viết không phải là để thuyết phục các bạn rằng Python là lời giải cho mọi vấn đề, mà là để chia sẻ thêm những lợi ích của Python cùng với web framework, giúp công việc của các lập trình viên trở nên thuận lợi hơn.

VietnamWorks inTECH
Theo Sitepoint