“Đại sư” của thung lũng Silicon

Donald Knuth không phải mẫu vĩ nhân khổ hạnh. Sống một cuộc đời như dạo chơi, ông vẫn để lại những thành tựu kiệt xuất.

“Đại sư” của thung lũng Silicon

Cha đẻ của thuật toán

Ông là tác giả của Nghệ thuật lập trình máy tính, một bộ sách đồ sộ đã xuất bản bốn tập và sẽ còn kéo dài cho đến hết cuộc đời ông. Tập đầu tiên ra mắt năm 1968 và cả bốn tập tiếp theo (được bán với giá 250 USD) đã được tạp chí công nghệ Nhà khoa học Mỹ xếp vào danh sách năm bộ sách vĩ đại đã định hình khoa học thế kỷ 20, bên cạnh Tự truyện của Charles Darwin, Lẽ phải (Right Stuff) của Tom Wolf, Mùa xuân im lặng (Silent Spring) của Rachel Carson cùng tuyển tập chuyên khảo của Albert Einstein, John von Neumann và Richard Feyman.

Với hơn một triệu bản in, Nghệ thuật lập trình máy tính được xem như “Kinh thánh” của lĩnh vực này. Giống như Kinh thánh, nó đồ sộ và toàn diện. Peter Norvig, Giám đốc nghiên cứu của Google, nói rằng không có một cuốn sách nào toàn bích đến vậy. Kết thúc 652 trang, tập một của bộ sách khép lại với lời giới thiệu rất “đắt” của Bill Gates ở bìa sau: “Bạn nên gửi cho tôi một CV (lý lịch xin việc) nếu bạn có thể đọc hết quyển sách này”. Bên trong chứa đựng các công thức đã nuôi sống thời đại kỹ thuật số, và đa số đều có dấu ấn của Knuth, như thuật toán tìm kiếm chuỗi Knuth - Morris - Pratt chẳng hạn: Được phát minh vào năm 1970, nó có thể tìm thấy tất cả các lần xuất hiện của một từ hoặc mẫu chữ cái nhất định vào một văn bản - thí dụ như khi bạn ấn Command+F để tìm từ khóa trong tài liệu.

Hiện đã 80 tuổi, giáo sư Knuth vẫn giữ thói quen ăn mặc trẻ trung như khi ông bắt đầu bước vào “vương quốc lập trình”: áo phông, mặc với quần jeans. Trong những năm sơ khởi, ông làm việc với những cỗ máy khổng lồ, lập trình bằng thứ ngôn ngữ còn thô, mã hóa bởi các số 0 và 1. Thời nay, các lập trình viên hầu như không có thời gian để chỉnh sửa và sáng tạo các mã gốc, mà thay vào đó là sử dụng luôn các mã đã được tạo ra bởi những người như Knuth.

Ứng dụng Google Trips, được viết ra vào năm 2016, là một trong số đó. Nó tránh gửi lại cho người dùng những điểm du lịch họ từng đi qua, lấy cảm hứng từ một thuật toán đã 300 năm tuổi của nhà toán học người Thụy Sĩ Leonhard Euler, người đã cố lập một lịch trình qua thành phố Koenigsberg của Phổ sao cho người ta chỉ đi qua bảy cây cầu của nó đúng một lần. Knuth đã giải quyết vấn đề kinh điển của Euler trong tập đầu tiên của Nghệ thuật lập trình máy tính, khi lập trình cho… một chiếc máy may tự động.

Nhưng Knuth không phải một con người chỉ có logic. Trái lại, ông nổi tiếng với một khái niệm gọi là “văn chương hóa lập trình”, nhấn mạnh tầm quan trọng của việc viết ra những đoạn mã mà con người lẫn máy tính đều có thể đọc được. Knuth còn đi xa đến mức cho rằng một số chương trình máy tính, giống như các bài thơ của Elizabeth Bishop (1911-1979, người Mỹ) và tác phẩm Điền dã Hoa Kỳ của Philip Roth, cũng xứng đáng được nhận giải Pulitzer cho văn học.

Song, ông không để sự lãng mạn ấy biến thành viển vông. Knuth cầu toàn khét tiếng.

Ông sẵn sàng trả 2,56 USD cho mỗi lỗi sai bị phát hiện trong các quyển sách của mình (lý do là vì theo Knuth, 256 xu là 1 USD theo hệ thập lục phân). Sau này, tạp chí Nhìn lại Công nghệ (Technology Review) của Viện Công Nghệ Masachusetts đã đánh giá những tấm séc 2,56 USD ấy “nằm trong số những chiến lợi phẩm quý giá nhất của giới tin học”.

Ở tuổi 19, Knuth đã xuất bản bài báo kỹ thuật đầu tiên của mình, có tên Hệ thống trọng lượng và đo lường Potrzebie, trên tạp chí Mad. Ông trở thành một nhà khoa học máy tính trước cả khi ngành này tồn tại, đã tự viết lại phần mềm cũng như sách giáo khoa sử dụng trong lớp sau khi phân tích những bất cập trong các mẫu chương trình được dùng cho IBM 650, một trong những hệ thống máy tính đầu tiên trong lịch sử. “Ngứa ngáy tay chân”, Knuth còn vận hành một dự án phụ cho một… đội bóng rổ - ông phân tích các số liệu thống kê và viết một phần mềm, sau này đã giúp CLB vô địch giải đấu. Trong kỳ nghỉ hè, ông kiếm được nhiều tiền ngang với một giáo sư lao động trong một năm, bằng cách viết các phần mềm biên dịch ngôn ngữ lập trình, điều sau này cũng tự phát triển thành một lĩnh vực mới quan trọng của khoa học máy tính.

Dạo chơi giữa đời

Việc nào vào tay Knuth cũng nhẹ nhàng như một trò chơi, và cái gì ông tìm ra cũng trở thành nền tảng vững chắc cho khoa học sau này, đến nỗi mà người ta phải gọi ông bằng một cái tên nghe có vẻ hơi phóng đại: “Đại sư” của thung lũng Silicon. Knuth không phải mẫu vĩ nhân khổ hạnh. Ông hài hước, có nhiều thú vui, không bao giờ quá tải vì công việc, và “đáng buồn” là hầu như chẳng có ai vượt qua được ông. Knuth có một bộ óc vượt xa những người cùng lĩnh vực đến nỗi không ai buồn chất vấn vị trí số một của ông, dù như đã nói, mọi thứ với ông chỉ như một cuộc dạo chơi.

Trong cuốn Nghệ thuật lập trình máy tính tập 3 (xuất bản năm 1973), ông đề một đầu mục trong Mục lục có tên “Tiền nhuận bút, việc sử dụng, trang 405”. Trang này không hề nói gì đến số tiền hoa hồng, mà chỉ có bức hình một chiếc… đại phong cầm. Có lẽ tiền nhuận bút tập 3 này đã được dùng mua chiếc đại phong cầm ở trong nhà ông. Knuth ngày nào cũng chơi đàn, một cách say mê. Điều này thiêng liêng dường như chỉ sau… giấc ngủ trưa của ông, một “nghi thức” thường kéo dài từ 1 giờ chiều đến 4 giờ chiều hằng ngày.

“Tôi không bao giờ biết tất cả mọi thứ” - Knuth nói trên tờ Thời báo New York. “Cuộc sống của tôi sẽ thật tồi tệ nếu không có gì tôi không biết đáp án, và nếu không có gì tôi không rõ câu trả lời”. Một câu bộc bạch khá “hại não”, nhưng nhẹ nhõm và hài hước. Knuth đã dành nhiều thập niên cuộc đời ngụp lặn trong một lĩnh vực rất khô khan, nhưng cho đến giờ, tâm trí ông chưa bao giờ già cỗi, và luôn bám lấy những phần nhân bản nhất, chứ không nhường điều đẹp đẽ đó cho những cỗ máy, trong kỷ nguyên trí tuệ nhân tạo. “Tôi lo lắng rằng các thuật toán đang trở nên quá phổ biến trên thế giới” - Knuth nói. “Ban đầu, các nhà khoa học máy tính cứ lo ngại rằng chẳng ai lắng nghe mình. Giờ thì tôi lại lo lắng vì có quá nhiều người lắng nghe”.

May mắn là vẫn còn Knuth giữ lấy “phần người” của khoa học lập trình. Ông dự kiến sẽ mất 25 năm nữa để hoàn thành nốt bộ Nghệ thuật lập trình máy tính. Với Knuth, đó là một nghệ thuật, như là thú vui chơi đại phong cầm. Chỉ có nghệ thuật mới lập trình được máy tính, theo một cách “con người” nhất. Như là con người Knuth.