1. Trang chủ
  2. » Công Nghệ Thông Tin

Lập trình là một nghệ thuật

2 820 1
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Lập trình là khoa học hay nghệ thuật?
Tác giả Phan Đình Diệu
Trường học Trường Đại Học
Chuyên ngành Lập trình
Thể loại bài viết
Định dạng
Số trang 2
Dung lượng 34 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Lập trình là một nghệ thuật

Trang 1

Lập trình là khoa học hay nghệ thuật?

Phan Đình Diệu

Lập trình là viết chương trình để giải một bài toán chotrước trên máy tính điện tử

Chương trình là một dãy các lệnh những phép toánđược viết trong một ngôn ngữ lập trình nào đó và do máy thực hiện Về nguyêntắc, máy tính có khả năng thực hiện mọi chương trình viết trong những ngôn ngữ mà máy 'hiểú được, và nếu không có chương trình thì máy không làmđược gì cả Vì vậy, từ khi có máy tính thì cũng bắt đầu có nghề lập trình, vànghề lập trình đã phát triển mạnh mẽ cùng với sự phát triển cực kỳ mạnh mẽ của máy tính điện tử trong những thập niên vừa qua Các bài toán mà con người muốn dùng máy tính để giải thì thiên hình vạn trạng, có mặt trong mọi lĩnh vực, và vì vậy, lập trình cũng hết sức đa dạng và phức tạp, chẳng có chương trình nàogiống chương trình nào, các lập trình viên (hay chuyên viên lập trình) phải tuỳtài tuỳ trí của mình mà tìm cách xoay xở Rồi từ đó, kinh nghiệm được tích luỹdần, dần dần hình thành những lý thuyết về lập trình, phát triển các ngôn ngữlập trình, cho đến gần đây việc lập trình được tổ chức sản xuất theo kiểucông nghệ, xuất hiện công nghệ lập trình hay công nghệ phần mềm, v.v Tuyvậy, có những câu hỏi về bản chất của hoạt động lập trình được đặt ra từ thuởban đầu

của kỷ nguyên máy tính như: lập trình là khoa học hay là nghệ thuật?thì cho đến nay

vẫn là một câu hỏi được sự quan tâm của không ít chuyên viênlập trình và giới Tin học nói chung Tính khoa học của hoạt động lập trình thìchẳng còn gì để hoài nghi vì công

thức chươngtrình = cấu trúc dữ liệu + thuật toántừ lâu đã được thừa nhận rộng rãi, và ai

cũng biết cấu trúc dữ liệu và thuậttoán là những đối tượng của các lý thuyết toán học, tức

là của khoa học Còntính nghệ thuật? Không phải ngẫu nhiên mà D.E.Knuth, một chuyên gia lập trìnhlỗi lạc vào bậc nhất, đồng thời là một nhà Toán học uyên bác, lại đặt cho

bộsách nổi tiếng về lập trình của mình cái tên Nghệ thuật lập trình máy tính, nghệ thuật

chứ không là khoa học, dùrằng trong bộ sách đó chứa đầy ắp các kiến thức khoa học! Vậy về thực chất, lậptrình là khoa học hay là nghệ thuật? Cần có các hiểu biết về thuật toán, về cáccấu trúc, cần có khả năng suy luận lô gích trên các cấu trúc và thuật

toán,nghiên cứu các tính chất của thuật toán và lựa chọn thế nào là thuật toán tốtnhất, v.v thì rõ ràng là khoa học rồi Nhưng đa số các nhà lập trình cónhiều kinh nghiệm cho

ta biết rằng trước một bài toán, trước khi có trong taycác thuật toán để mà phân tích, lập luận, để mà xuống tay viết các dòng lệnh,thì thường phải qua một giai đoạn suy nghĩ, vận dụng trí tưởng tượng để hìnhdung ra những bức tranh khác nhau của bài toán, những hình khối bộ phận, nhữngmối quan hệ, thường khi rất rối rắm phức tạp, và cứ để mặc cho những rối rắm đólởn vởn trong tư duy của mình, cho đến khi xuất hiện những ý tưởng bột phát gỡcho mình những rối rắm và chỉ đường đi đến những giải pháp C.Simonyi,

mộtchuyên gia lập trình người Hungari khẳng định: lập trình vừa là khoa học, vừalà nghệ thuật, hiểu biết về các thuật toán là khoa học, tưởng tượng về các kiếntrúc là nghệ thuật

Có những địa hạt mà các lập luận lô gích của khoa học khôngtiếp cận được, trong khi một chương trình, một sản phẩm phần mềm mà ta mongmuốn thì không chỉ cần cho được kết quả, giải được bài toán, mà còn cần phảihay, phải đẹp; cái hay, cái đẹp đó của một phần mềm, theo ý của một chuyên giaphần mềm khác - Bob Carr - chỉ có thể sinh ra từ thế giới của trí tưởng tượngvà những trực cảm Bill Gates, ông chủ giàu có của Microsoft,

Trang 2

có lần kể lại nhữngkinh nghiệm bản thân hồi còn hàn vi cùng ông bạn Paul Allen viết chương trìnhthông dịch ngôn ngữ BASIC cho máy vi tính, nói rằng ông chỉ ngồi vào bàn đểviết các dòng lệnh khi trong đầu đã tưởng tượng mọi chuyện về chương trình rồi.Trả

lời câu hỏi: Các ý tưởng đến từ đâu?,ông cho biết không có một quá trình hình thức nào

cho việc xuất hiện các ýtưởng cả, các ý tưởng thường đến qua những thảo luận chung và những tiếp tụcsuy nghĩ, hình dung, tưởng tượng của mỗi người Khi viết chương trình thôngdịch BASIC, ông không chỉ nhằm có một chương trình dịch được, mà là một chươngtrình dịch chỉ chiếm bộ nhớ 4K Cảm hứng sáng tạo chỉ có thể đến với ta khixuất hiện những ý tưởng độc đáo Jeb Raskin, người tham gia sáng tạo ra kháiniệm menu của

hệ điều hành cho máy Macintosh của hãng Apple, kể lại: Tôi chẳngmuốn phần cứng hay phần mềm, tôi chỉ muốn có một dụng cụ dễ dùng Và từ ý tưởngmuốn biến máy vi tính thành một dụng cụ dễ sử dụng, ông ta đã cùng các đồngnghiệp sáng tạo ra phần mềm của

hệ điều hành với những 'thực đơn'(menu), mà chỉ cần bấm nút trỏ đến các thực đơn đó ta

có thể sai khiến máy làmnhững gì mà ta muốn Ông muốn chứng tỏ với những người thích tạo nên các hệthống phức tạp một điều giản dị: còn có những cách đơn giản hơn! Trong thế giớingày càng phức tạp của những chương trình và thuật toán, tính đơn giản quả làmột vẻ đẹp đáng trân trọng!

Các bạn trẻ thân mến! Viết những dòng này tôi chỉ muốntrao đổi với các bạn một mong muốn: Làm phần mềm là một công việc vừa khoa học,vừa nghệ thuật Chúc các bạn đang sáng tạo các phần mềm hoặc đang có nguyệnvọng trở thành chuyên viên phần mềm một năm mới có đầy năng lực trí tuệ và đầytrí tưởng tượng lãng mạn để cống hiến cho đời những sản phẩm phần mềm ngày cànghay hơn, đẹp hơn, những cái hay sâu sắc và những

vẻ đẹp dung dị

PhanĐình Diệu

Ngày đăng: 10/09/2012, 15:26

TỪ KHÓA LIÊN QUAN

w