Siêu thị PDFTải ngay đi em, trời tối mất

Thư viện tri thức trực tuyến

Kho tài liệu với 50,000+ tài liệu học thuật

© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Lập trình nghệ thuật
MIỄN PHÍ
Số trang
2
Kích thước
88.7 KB
Định dạng
PDF
Lượt xem
809

Lập trình nghệ thuật

Nội dung xem thử

Mô tả chi tiết

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, 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

Tải ngay đi em, còn do dự, trời tối mất!