Python cho người Việt

Python cho người Việt

Entries tagged “python”

Giới thiệu Python

written by vithon, on Nov 25, 2009 9:16:00 PM.

Python là một ngôn ngữ lập trình năng động với nhiều tính năng được sử dụng trong một loạt các ứng dụng. Python thường được so sánh với Tcl, Perl, Ruby, Scheme, hoặc Java. Một vài tính năng đặc trưng của nó gồm:

  • cú pháp rất trong sáng, dễ đọc
  • các khả năng tự xét (introspection) mạnh mẽ
  • hướng đối tượng trực giác
  • cách thể hiện tự nhiên mã thủ tục (procedural code)
  • hoàn toàn mô-đun hóa, hỗ trợ các gói theo cấp bậc
  • xử lý lỗi dựa theo ngoại lệ (exception)
  • kiểu dữ liệu động ở mức rất cao
  • các thư viện chuẩn và các mô-đun ngoài bao quát hầu như mọi việc
  • phần mở rộng và mô-đun dễ dàng viết trong C, C++ (hoặc Java cho Jython, hoặc các ngôn ngữ .NET cho IronPython)
  • có thể nhúng trong ứng dụng như một giao diện kịch (scripting interface)

Python mạnh… và nhanh

Những người hâm mộ Python dùng câu “kèm theo pin” để nói đến bộ thư viện chuẩn, trong đó chứa mọi thứ từ việc xử lý không đồng bộ cho tới các tập tin ZIP. Bản thân ngôn ngữ là một nhà máy linh động có thể giải quyết hầu hết mọi vấn đề. Viết máy chủ web cho riêng bạn với ba dòng mã. Viết mã theo hướng dữ liệu với khả năng tự xét mạnh mẽ và khả chuyển và những tính năng như siêu lớp (meta-classes), kiểu vịt (duck typing)trang hoàng (decorators) của Python.

Python giúp bạn viết mã bạn cần, thật nhanh. Và, nhờ vào trình biên dịch đã được tối ưu hóa, và những thư viện hỗ trợ, mã Python chạy nhanh hơn đa số các ứng dụng cần.

Python hòa hợp tốt với các thứ khác

Python có thể kết nối với các đối tượng COM, .NET, và CORBA.

Với những thư viện Java, sử dụng Jython, một cài đặt của Python cho máy ảo Java.

Với .NET, thử IronPython, cài đặt Python mới của Microsoft cho .NET, hoặc Python for .NET.

Python cũng được hỗ trợ bởi Internet Communications Engine (ICE) và nhiều công nghệ kết nối khác.

Nếu bạn nhận ra một vài điều Python không thể làm, hoặc nếu bạn cần sự thực thi nhanh của mã mức thấp, bạn có thể viết mô-đun mở rộng trong C hoặc C++, hoặc gói mã đang có bằng SWIG hoặc Boost.Python. Các mô-đun đã gói được sử dụng y như những mô-đun Python. Người ta gọi là kết nối ngôn ngữ đã giản đơn. Bạn cũng có thể đi đường ngược lại và nhúng Python vào ứng dụng của bạn, đem lại cho người dùng ngôn ngữ mà họ sẽ say mê.

Python chạy khắp nơi

Python có cho mọi hệ điều hành: Windows, Linux/Unix, OS/2, Mac, Amiga, và những hệ khác. Thậm chí có cả những phiên bản chạy trên .NET, máy ảo Java, và điện thoại di động Nokia Series 60. Bạn sẽ rất hài lòng khi biết rằng cùng một mã nguồn sẽ chạy không khác nhau trên mọi cài đặt.

Hệ thống của bạn không có trong danh sách ở đây? Không sao, nó vẫn có thể chạy Python được nếu có một trình biên dịch C trên hệ thống. Hỏi ở news:comp.lang.python - hoặc cứ thử tự biên dịch Python lại.

Python gần gũi… và dễ học

Nhóm tin Python được biết đến như là một trong những nhóm thân thiện nhất. Cộng đồng nhà phát triển và người dùng mở một wiki, chủ trì các hội thảo quốc tế và địa phương, đứng lớp dạy phát triển, và đóng góp vào kho lưu trữ mã trực tuyến.

Python cũng có kho tài liệu đầy đủ, vừa tồn tại trong bản thân ngôn ngữ lẫn trên mạng. Những tài liệu trên mạng nhắm vào cả lập trình viên chuyên nghiệp lẫn người mới. Tất cả đều được thiết kế nhằm giúp bạn sản xuất nhanh hơn. Và sự có mặt của những quyển sách làm quá trình học tập đầy đủ hơn.

Python mở

Cài đặt Python dùng giấy phép nguồn mở nên được sử dụng và phân tối tự do, ngay cả trong việc thương mại. Giấy phép Python được quán xuyến bởi Python Software Foundation.

Hãy xem qua các lĩnh vực ứng dụng mà Python được dùng, hoặc tự dùng thử bản mới nhất.

Python và PHP

written by vithon, on Jan 30, 2009 10:01:00 AM.

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 và Python của tôi.

I. Giống nhau

  • Là ngôn ngữ cao cấp, thông dịch và định 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 (tất 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 (++--)

  • 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, dù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, để định nghĩa test là method của một lớp cần định nghĩa: def test(self))

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 rõ 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 tài liệu trên mạng 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ó lambda 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 (nhanh hơn nhưng tốn CPU và RAM)

Hãy học Python cho đời còn lại của bạn nhé!

(Bài viết được chuyển từ diễn đàn do bạn kaka đóng góp)