[Article] Why Python? |
11/10/2010 09:37:38 (+0700) | #1 | 222580 |
|
oak
Member
|
0 |
|
|
Joined: 18/04/2006 09:54:00
Messages: 85
Location: Somewhere
Offline
|
|
Lời tựa: Eric Raymond có lẽ đã quen thuộc với nhiều bạn trên diễn đàn HVA thông qua bản dịch “How To Become A Hacker” do anh (chú) conmale dịch. Trong đó Eric có nhắc đến việc nên học Python để làm quen lập trình, đây là một chi tiết theo mình là khá đáng giá.
Tuy nhiên mình cũng mong các bạn tránh ngộ nhận đánh đồng việc học Python với trở thành Hacker. Thực tế ngay cả việc mình học Python cũng là từ lý do đang bắt đầu theo học chương trình lấy Python làm ngôn ngữ cơ sở để giới thiệu về lập trình chứ cũng ít liên quan đến lý do “Become A Hacker”. Và cũng do thấy trên HVA có vẻ nhiều người quan tâm đến Python nên muốn chia sẻ.
Một tài liệu khác mình đánh giá cao hơn bài “Why Python?” nhất là với những sinh viên như mình là “Why Python is a great language for teaching beginners in introductory programming classes” có tại http://www.stanford.edu/~pgbovine/python-teaching.htm. Và dự kiến sau khi dịch xong bài này và nếu được sự hưởng ứng của mọi người, mình sẽ tiếp tục dịch tài liệu này.
Do việc dịch tài liệu này liên quan nhiều hơn vấn đề rèn luyện cách hành văn và trình độ tiếng Anh nên nếu có lỗi trong phần dịch lẫn ngữ pháp mong mọi người góp ý.
Nguồn bài: Bài “Why Python?” của Eric Raymond được đăng tải trên số 73 tháng 5, 2000 trên tạp chí LINUX JOUNAL và được đăng lại trên website tại địa chỉ http://www.linuxjournal.com/article/3882
======================================================================
(Phần 1)
Cuộc gặp gỡ đầu tiên của tôi với Python giống như một sự ngẫu nhiên hơn là có chủ đích, và lúc đó cái nhìn của tôi về nó cũng chẳng giống như hiện tại. Đó là khoảng vào đầu những năm 1997, khi quyển sách Programming Python của Mark Lutz trông bộ sách O'Reilly & Asscoiates vừa mới được phát hành. Lúc này thi thoảng một vài quyển sách trong bộ O'Reilly vẫn được đưa tới trước cửa nhà tôi, có vẻ như một nhân vật bí ẩn đã chọn từ một danh sách ngẫu nhiên để tặng sách, cho đến nay tôi vẫn chưa rõ ý định của người này. Và quyển Programming Python cũng nằm trong số những quyển sách được tặng theo kiểu này.
Tôi có một thú vui khá lạ, thú vui sưu tầm các ngôn ngữ của máy tính. Tôi biết khoảng hơn một tá các thể loại ngôn ngữ lập trình, thường viết các trình thông dịch và biên dịch để giải trí, và thiết kế một số ngôn ngữ dùng cho các mục đích cà nhân như một sự đánh dấu bản thân. Một dự án tôi mới hoàn thành về thể loại này là ngôn ngữ chuyên dùng được gọi với cái tên SNG, chuyên dùng cho các thao tác trên hình ảnh có đuôi PNG (Portable Network Graphics). Độc giả quan tâm có thể ghé thăm trang chủ của SNG tại địa chỉ http://www.catb.org/~esr/sng/. Bên cạnh đó tôi cũng viết một bài nói về chi tiết các ngôn ngữ lập trình nhằm thiết lập một viện bảo tàng ngôn ngữ máy tính tại địa chỉ http://www.catb.org/retro/(1).
Những gì tôi biết về Python lúc đó chỉ giới hạn trong khuôn khổ mà ngày này người ta vẫn gọi là “ngôn ngữ kịch bản”(2). Một ngôn ngữ với trình thông dịch riêng với ưu điểm trong quản lý bộ nhớ cũng như hợp tác với các chương trình khác. Chính vì vậy tôi bắt đầu cuộc hành trình đi sâu vào Python với một câu hỏi luôn hiện ra trong đầu: “Liệu ngôn ngữ này làm được những gì mà Perl phải bó tay hay không?”
Nói về Perl, dĩ nhiên, nó là một quái vật hạng nặng trong số những ngôn ngữ kịch bản hiện đại. Có thể nói nó là sự lựa chọn hàng đầu của các quản trị UNIX trong số các ngôn ngữ kịch bản nhằm mục đích quản trị hệ thống nhờ hệ thống thư viên và các system call rất đa dạng. Bên cạnh đó là rất nhiều Module được xây dựng từ một cộng đng Perl năng động và rất tài năng. Theo thống kê thì Perl cũng là ngôn ngữ CGI đứng đằng sau hơn 85% nội dung “sống” trên mạng (số liệu đúng với năm 2000, thời điểm bài viết này ra mắt).
Nên biết rằng Larry Wall, người đã tạo ra Perl, được coi là một trong những thủ lĩnh quan trọng nhất của cộng đồng mã nguồn mở, và thường đứng thứ ba sau Linus Torvalds và Richard Stallman (3) trong tam á thần hacker (4). (5)
Cũng trong khoảng thời gian đó, tôi sử dụng Perl cho một số dự án nhỏ. Dĩ nhiên Perl rất mạnh mẽ, tuy nhiên cú pháp cùng một số khía cạnh khác của ngôn ngữ này buộc bạn phải hết sức cẩn thận nếu không muốn có những rắc rối. Chính vì vậy tôi tìm đến Python như một ngôn ngữ kịch bản thay thế và cũng vì lý do này mà trong thời gian đầu tôi luôn đặt Python bên cạnh Perl để so sánh.
Ngay lập tức tôi vấp phải một trong những điều căn bản và kỳ lạ đầu tiên của Python mà rất nhiều người mới làm quen với ngôn ngữ này gặp phải: “khoảng trắng”(6). Thực tế trong C và Perl đều có xuất hiện điều này, tuy nhiên vai trò của “khoảng trắng” chỉ có tác dụng cho đoạn code dễ theo dõi chứ không có vai trò quan trọng như trong Python. Và giống như nhiều Hacker tôi cảm thấy không mấy thích thú với việc này.
Lý do của việc này xuất phát từ những năm của thập niên 70 thế kỷ trước, lúc đó tôi đã bắt đầu lập trình thành thạo FORTRAN. Dĩ nhiên không phải thời điếm đó các Hacker mới ra đời, tuy nhiên lúc này trong văn hóa Hacker đã bắt đầu định hình văn hóa khó chịu đối với những ngôn ngữ lập trình kiểu cũ. Thay vào đó khái niệm “free format” được sử dụng nhằm chỉ các ngôn ngữ lập trình có phong cách giống như Pascal và C rất được thịnh hành, đương nhiên các ngôn ngữ kiểu này cũng được sử dụng thường xuyên. Các ngôn ngữ được thiết kế theo kiểu cũ dần dần đã bị lãng quên đi trong nhiều thập kỷ và gần như chẳng mấy ai còn có ý định nhắc tới nó. Và khó có thể đổ lỗi cho những con người trưởng thành trong văn hóa như vậy về sự khó chịu của họ đối với Python, giống như là việc đạp nhầm đống phân khủng long vậy.
Đó cũng chính xác là những gì mà tôi cảm thấy. Chính vì vậy tôi tiến hành lướt qua một lượt các mô tả của ngôn ngữ này, gần như không có sự tập trung cần thiết. Tuy nhiên tôi nhận ra rằng cú pháp của ngôn ngữ này sạch sẽ hơn hẳn so với Perl, cùng với đó thì các cơ sở lập trình GUI tạo menu, nút cũng rất tốt.
Tôi quyết định đặt quyển sách trở lại kệ, cố gắng hình dung lại về Python để chuẩn bị làm một Project nho nhỏ về GUI nhằm hiểu rõ hơn ngôn ngữ này. Nhưng cho đến tận lúc này trong thâm tâm tôi vẫn tin rằng nó chẳng thể cạnh tranh nổi Perl.
(1): theo ý kiến cá nhân của mình đoạn này lão Eric Raymond khoe của hơi nhiều, cơ mà cũng đúng là lão giỏi nên khoe thì mình cũng chỉ biết ngước nhìn hâm mộ.
(2): nguyên văn là scripting language
(3): Richard Stallman là người khởi động dự án GNU
(4): nguyên văn là Demigod.
(5): về đoạn Larry Wall và hacker này thì đúng là ông là người quan trọng trong cộng đồng mã mở. Tuy nhiên danh xưng hackers demigods thì phải nói Eric Raymond có tư chất khá tốt viết tiểu thuyết dòng fantasy của Tây phương. http://en.wikipedia.org/wiki/Fantasy.
(6): chúng ta vẫn quen gọi là "dấu cách" hay "khoảng cách" được tạo bởi Spacebar
|
|
|
|
|
[Article] Why Python? |
11/10/2010 09:53:37 (+0700) | #2 | 222581 |
|
oak
Member
|
0 |
|
|
Joined: 18/04/2006 09:54:00
Messages: 85
Location: Somewhere
Offline
|
|
[Phần2] Chuẩn bị hôm nào rảnh dịch tiếp vào đây |
|
|
|
|
[Article] Why Python? |
11/10/2010 09:54:42 (+0700) | #3 | 222582 |
|
oak
Member
|
0 |
|
|
Joined: 18/04/2006 09:54:00
Messages: 85
Location: Somewhere
Offline
|
|
[Phần 3] Dự kiến bài này đến phần 3 chắc là đủ. |
|
|
[Article] Why Python? |
07/11/2010 14:01:22 (+0700) | #4 | 224413 |
|
St Konqueror
Member
|
0 |
|
|
Joined: 08/12/2007 00:47:39
Messages: 229
Offline
|
|
Hơi off-topic xíu, nhưng mà đồng chí nào muốn chơi python thì có hội vithon của anh lamer http://www.vithon.org/
Cheers.
-stk |
|
|
[Article] Why Python? |
01/02/2012 19:24:29 (+0700) | #5 | 253020 |
|
bolzano_1989
Journalist
|
0 |
|
|
Joined: 30/01/2007 12:49:15
Messages: 1406
Offline
|
|
oak, bạn dịch tiếp đi . |
|
Kiểm tra các file bạn nghi ngờ có virus:
http://goo.gl/m3Fb6C
http://goo.gl/EqaZt
http://goo.gl/gEF8e
Nhận mẫu virus qua FB: http://goo.gl/70Xo23
HVA Malware Response Team: kiemtravirus@gmail.com
Trợ giúp diệt virus: http://goo.gl/2bqxY |
|
Users currently in here |
1 Anonymous
|
|
Powered by JForum - Extended by HVAOnline
hvaonline.net | hvaforum.net | hvazone.net | hvanews.net | vnhacker.org
1999 - 2013 ©
v2012|0504|218|
|
|