Tác giả Ben Brubaker là cây bút chuyên trách mảng khoa học máy tính của Tạp chí Quanta. Ông có bằng tiến sĩ vật lý tại Đại học Yale và từng nghiên cứu sau tiến sĩ tại Đại học Colorado, Boulder.
Edsger Dijkstra, nhà khoa học máy tính tiên phong từng giành Giải A.M. Turing năm 1972, cha đẻ của thuật toán Dijkstra nổi tiếng, được biết đến với những quan điểm mạnh mẽ đầy cá tính. Ông không giấu sự ác cảm dành cho một số ngôn ngữ lập trình, chẳng hạn có lần ông gọi ngôn ngữ lập trình Fortran là "chứng rối loạn dớ dẩn", và tuyên bố thẳng thừng rằng "việc sử dụng ngôn ngữ lập trình COBOL làm tê liệt trí óc, vì vậy việc giảng dạy nó nên được coi là một hành vi phạm tội".
Lý giải sự khó chịu của mình với việc sử dụng máy tính trong công việc nghiên cứu, ông viết: "Các nhà nghiên cứu y khoa đâu có bị yêu cầu phải mắc những căn bệnh mà họ nghiên cứu."
Thiết kế ảnh: Kristina Armitage
Tôi lần đầu bắt gặp những phát ngôn sắc bén của Dijkstra gần bốn năm trước, không lâu sau khi viết về khoa học máy tính tạp chí Quanta. Khi ấy, lĩnh vực này còn mới mẻ với tôi - trước đó tôi là một nhà báo vật lý, và trước nữa là một nhà khoa học vật lý - và tôi sớm nhận ra rằng phần lớn mọi người không biết nên hiểu cụm từ "nhà báo khoa học máy tính" như thế nào.
Trong diễn ngôn đại chúng, khoa học máy tính gần như đồng nghĩa với lập trình hay viết mã, nhưng tại Quanta, chúng tôi viết về khía cạnh lý thuyết ít được biết đến hơn của lĩnh vực này. Rồi tôi tình cờ gặp tuyên bố đáng nhớ được cho là của Dijkstra: mục đích của khoa học máy tính chẳng liên quan đến máy tính, cũng như mục đích của thiên văn học chẳng phải là kính thiên văn.
Cách nói ấy đủ ngắn gọn và khiêu khích để chỉ ra khác biệt giữa báo chí khoa học máy tính và báo chí công nghệ. Và không phủ nhận rằng nó khiến tôi cảm thấy được nâng tầm, rằng lĩnh vực tôi theo đuổi nói về một điều gì đó sâu sắc, trường tồn và vượt ra ngoài những đổi mới công nghệ đơn thuần.
Tôi dần có thói quen thường xuyên viện dẫn phép so sánh ấy - kể cả trong một tập của The Quanta Podcast - nhưng đồng thời cũng bắt đầu nghi ngờ nó. Tôi quyết định thử tìm hiểu đến tận cùng. Khoa học máy tính có phải là khoa học về máy tính không? Và nếu không, chính xác thì nó nghiên cứu điều gì?
Khoa học máy tính là ngành nghiên cứu máy tính?
Đây là một cuộc tranh luận đã có từ rất lâu. Các nhà nghiên cứu bắt đầu xây dựng một lý thuyết toán học về tính toán vào những năm 1930. Rồi các kỹ sư chế tạo ra những máy tính điện tử đa dụng đầu tiên vào những năm 1940. Trong những thập niên tiếp theo, khoa học máy tính nổi lên như một ngành học độc lập, hội tụ các dòng chảy nghiên cứu toán học và kỹ thuật, và người ta bắt đầu tranh luận về bản chất của lĩnh vực mới này.
Năm 1967, ba nhà khoa học máy tính nổi tiếng gồm Allen Newell, Herbert Simon (hai ông nhận giải Turing năm 1975), và Alan Perlis (người đầu tiên nhận giải Turing, năm 1966) đã trình bày quan điểm của mình trong một bức thư đầy nhiệt huyết gửi ban biên tập đăng trên tạp chí Science. "Ở đâu có hiện tượng, ở đó có thể có một ngành khoa học để mô tả và giải thích những hiện tượng ấy," họ viết, có lẽ với một chút bực bội. "Máy tính tồn tại. Do đó, khoa học máy tính là ngành nghiên cứu máy tính."
Newell, Perlis và Simon viết bức thư này một phần nhằm đáp lại những người chỉ trích cho rằng bất kỳ ngành nào gọi là khoa học đều phải nghiên cứu các hiện tượng tự nhiên. Họ phản bác bằng những ví dụ về các hiện tượng nhân tạo vẫn được xem là đối tượng nghiên cứu chính đáng trong những ngành khoa học đã có vị thế vững chắc, chẳng hạn hóa học. Trong cuốn The Sciences of the Artificial (Các khoa học về cái nhân tạo) xuất bản năm 1969, Simon còn đi xa hơn và chủ động đề cao sự khác biệt này: ông lập luận rằng chính việc tập trung vào những hệ thống nhân tạo được thiết kế có chủ đích là điều khiến khoa học máy tính trở nên đặc biệt.
Khoa học máy tính là ngành nghiên cứu các thuật toán?
Năm 1974, nhà khoa học máy tính Donald Knuth, người viết Tex - hệ thống dàn trang cho các tài liệu toán học và bộ sách The Art of Computer Programming (Nghệ thuật lập trình máy tính), đưa ra một cách nhìn khác về lĩnh vực này, nhấn mạnh vào quá trình tính toán thay vì bản thân máy tính. Ông định nghĩa khoa học máy tính là ngành nghiên cứu các thuật toán, tức những quy trình chính xác từng bước mà máy tính sử dụng để hoàn thành nhiệm vụ.
Thuật toán có thể được triển khai bằng nhiều ngôn ngữ lập trình khác nhau, cũng giống như một ý tưởng có thể được diễn đạt bằng tiếng Anh, tiếng Quan Thoại hay tiếng Ả Rập, không chỉ để giải các bài toán, mà còn để giải quyết các vấn đề, ví dụ như bố trí sắp xếp các đồ vật. Từ góc nhìn này, toán học nằm bên trong hoạt động tính toán mới là yếu tố trung tâm; bản thân máy tính chỉ có ý nghĩa vì chúng là công cụ giải quyết những vấn đề mà con người chúng ta không đủ thời gian hoặc sự kiên nhẫn để tự mình xử lý.
Định nghĩa Knuth đưa ra nghe có vẻ hấp dẫn, nhưng chúng ta cũng khó có thể phủ nhận sự minh giản trong định nghĩa của Simon và các đồng nghiệp. Tuy nhiên, dường như cả hai định nghĩa này cũng như bất kỳ định nghĩa nào khác đều chưa đạt được sự đồng thuận rộng khắp trong giới nghiên cứu.
Tại sao lại như vậy? Tôi hỏi William Rapaport, giáo sư danh dự về khoa học máy tính và triết học tại Đại học Buffalo, người đã ghi chép rất đầy đủ về vô số định nghĩa từng được đề xuất cho khoa học máy tính. Ông cho rằng sự bất đồng rốt cuộc bắt nguồn từ xuất thân liên ngành khác thường của lĩnh vực này.
"Khoa học máy tính có hai bậc cha mẹ," ông nói với tôi. "Một bên là toán học, một bên là kỹ thuật, và thực chất nó là sự lai ghép giữa hai lĩnh vực đó."
Rapaport coi trọng tính thống nhất của khoa học máy tính - nó không đơn thuần chỉ là toán học và kỹ thuật khoác chung một chiếc áo. Theo ông, khoa học máy tính nghiên cứu hai câu hỏi trung tâm, và mỗi phân ngành giải quyết chúng theo cách riêng của mình: "Cái gì có thể tính toán được, và bạn tính toán nó bằng cách nào?".
Lần lại lịch sử vấn đề
Rõ ràng có những nhánh của khoa học máy tính trong đó phần cứng và phần mềm máy tính là thiết yếu, chẳng hạn thiết kế hệ điều hành hay nghiên cứu quản lý bộ nhớ. Nhưng rốt cuộc vẫn phải hiểu khía cạnh lý thuyết của lĩnh vực, nơi các nhà nghiên cứu thậm chí không cần chạm tay vào một chiếc máy tính thực sự. Liệu máy tính có đóng một vai trò khái niệm thiết yếu trong công việc lý thuyết này không?
Hãy bắt đầu với câu hỏi đầu tiên của Rapaport: Cái gì có thể tính toán được? Để có thể bắt đầu trả lời câu hỏi này từ góc độ lý thuyết, trước hết bạn cần một hình thức toán học cho hoạt động tính toán - các nhà nghiên cứu gọi là một mô hình tính toán. Trong những năm 1930, các nhà nghiên cứu đề xuất một số mô hình tính toán khác nhau và bắt đầu nghiên cứu những hệ quả của chúng.
Sau đó, trong một bài báo nổi tiếng năm 1937, nhà toán học Alan Turing xây dựng một mô hình dựa trên những cỗ máy giả định có khả năng đọc và viết các ký hiệu được in trên một dải băng vô hạn theo một tập hợp những quy tắc đơn giản. Turing và những người khác nhanh chóng chứng minh rằng mô hình "máy Turing" có ảnh hưởng sâu rộng này tương đương về mặt toán học với các mô hình do những nhà nghiên cứu khác đề xuất. Vậy là, thay vì có nhiều định nghĩa riêng biệt, các nhà nghiên cứu đột nhiên có được một lý thuyết tính toán duy nhất và phổ quát.
Thế nhưng lý thuyết tính toán của Turing thực ra không nói về máy tính, ít nhất là lúc ban đầu. Khi Turing viết bài báo có tính khai phá của mình, không những ông không có trong tay một máy tính đa dụng, mà động lực nghiên cứu của ông cũng chẳng phải mong muốn tìm hiểu xem những cỗ máy tương lai như thế có thể hoạt động ra sao. Thay vào đó, ông đang cố gắng giải quyết một vấn đề trung tâm trong nền tảng của toán học. Ông chỉ coi cỗ máy của mình như một cách mô hình hóa hoạt động tinh thần của một con người đang thực hiện các phép tính.
Hơn thế, lý thuyết tính toán có thể áp dụng rộng rãi cho những thứ mà chúng ta sẽ không nhận ra là máy tính. Các nhà nghiên cứu thường nghiên cứu các quá trình tự nhiên bằng cách mô hình hóa chúng như những phép tính rồi phân tích chúng bằng toán học. Họ sử dụng lăng kính tính toán này để phơi bày hành vi không thể dự đoán trong các hệ vật lý, phân tích động lực tiến hóa, và giải những câu đố về hấp dẫn lượng tử, cùng nhiều ứng dụng khác. Trớ trêu thay, lĩnh vực mà những năm 1960 Simon từng ca ngợi là một "khoa học về cái nhân tạo" thì ngày nay lại đóng vai trò trung tâm trong cách chúng ta hiểu thế giới tự nhiên.
"Bạn có thể nhìn các ngành khoa học khác thông qua tính toán," theo Tom Gur, một nhà khoa học máy tính lý thuyết tại Đại học Cambridge. "Đó là một khuôn mẫu logic nền tảng biểu hiện gần như ở khắp mọi nơi."
Câu trả lời cho câu hỏi đầu tiên của Rapaport dường như củng cố khá vững chắc cho câu nói của Dijkstra. Nhưng rồi còn câu hỏi thứ hai của Rapaport: Một khi đã quyết định muốn tính toán một thứ gì đó, chính xác thì bạn làm điều đó như thế nào?
Với các nhà khoa học máy tính lý thuyết, câu trả lời nằm trong bản chất toán học của thuật toán. Cuối những năm 1960 và đầu những năm 1970, họ bắt đầu xây dựng một khuôn khổ để xác định thời gian mà các thuật toán cần để giải những bài toán khác nhau, ở một cấp độ toán học trừu tượng, không cần xét đến các chi tiết về phần cứng máy tính.
Họ nhanh chóng nhận ra rằng có những khác biệt quan trọng về chất giữa các bài toán có thể nảy sinh trong những ứng dụng thực tế, chẳng hạn như lập tuyến đường qua các mạng lưới hay phân tích số thành thừa số. Về nguyên tắc, tất cả những bài toán này đều có thể được giải bằng thuật toán. Thế nhưng chỉ một số trong đó có những thuật toán thông minh có thể nhanh chóng đưa ra lời giải. Với những bài toán khác, các thuật toán duy nhất mà người ta biết lại chậm đến mức khổ sở. Những nỗ lực tìm hiểu tận gốc sự khác biệt này đánh dấu sự ra đời của lý thuyết về độ phức tạp tính toán, một phân ngành của khoa học máy tính lý thuyết nghiên cứu độ khó nội tại của các bài toán khác nhau, đồng thời tạo nền tảng cho các hệ thống mã hóa hiện đại.
"Các bài toán có một cấu trúc cơ bản khiến chúng dễ hoặc khó giải hơn nhau về mặt định tính," Cristopher Moore, nhà khoa học máy tính lý thuyết tại Viện Santa Fe, nói. "Đó không phải là vấn đề máy tính của bạn nhanh đến đâu, cũng không phải là vấn đề bạn thông minh đến mức nào."
Nếu theo một nghĩa nào đó, toán học là ngôn ngữ của thực tại, thì việc lập bản đồ cấu trúc ẩn này có thể mang lại cảm giác như "khám phá các định luật của vũ trụ".
Những lĩnh vực vượt ra khỏi chuyện tính toán
Những phát triển sau này trong lý thuyết độ phức tạp còn hướng tới những lĩnh vực dường như thậm chí ít liên quan hơn đến tính toán. Gur lấy ví dụ về những khái niệm mới về chứng minh toán học xuất hiện từ lý thuyết độ phức tạp trong những năm 1980 và 1990. Bằng cách hình dung lại chứng minh như một quá trình tương tác, các nhà khoa học máy tính lý thuyết phát hiện rằng có thể chứng minh một mệnh đề là đúng mà không tiết lộ bất kỳ điều gì về lý do tại sao nó đúng, và cũng có thể xác minh một số chứng minh là chính xác chỉ bằng cách kiểm tra một vài đoạn cực nhỏ.
"Đột nhiên chúng tôi nghĩ ra những loại câu hỏi hoàn toàn mới," Gur nói. "Chúng tôi nói đến những điều vượt xa khỏi chuyện tính toán."
Dường như tất cả những điều này hợp thành một viễn cảnh đầy sức thuyết phục về khoa học máy tính không cần máy tính. "Ở đây có những câu hỏi nền tảng mà người ta hoàn toàn có thể đặt ra từ hàng trăm năm trước," Scott Aaronson, nhà khoa học máy tính lý thuyết tại Đại học Texas ở Austin, đồng thời là thành viên hội đồng cố vấn của Quanta, nói. "Chỉ có điều chẳng mấy ai nghĩ đến việc đặt ra chúng."
Ít nhất đã có một người từng nghĩ đến việc đặt ra những câu hỏi nền tảng ấy. Nhà bác học đa lĩnh vực thế kỷ 19 Charles Babbage, người hình dung ra một cỗ máy tính toán đa dụng mà ông gọi là Analytical Engine (Máy Phân tích), từng suy đoán trong cuốn tự truyện của mình rằng cỗ máy mới sẽ đòi hỏi một lý thuyết thuật toán mới đi kèm. "Bất cứ khi nào người ta muốn thu được một kết quả nhờ sự trợ giúp của nó," ông viết, "câu hỏi khi ấy sẽ nảy sinh - Máy phải đi theo quá trình tính toán nào để đạt được những kết quả này trong thời gian ngắn nhất?"
Babbage không bao giờ hoàn thành Máy Phân tích, và cũng không rõ ông định giải quyết câu hỏi quan trọng ấy như thế nào. Có lẽ ông hình dung rằng các chi tiết kỹ thuật trong thiết kế của cỗ máy sẽ khiến một số phương pháp nhanh hơn những phương pháp khác; không có bằng chứng nào cho thấy ông đã dự đoán được một thứ gì tương tự cấu trúc toán học phong phú mà các nhà lý thuyết độ phức tạp sau này khám phá được.
Nhưng theo tôi, có lẽ đó chính là điểm mấu chốt. Câu hỏi trung tâm của lý thuyết độ phức tạp - tại sao một số bài toán dường như không có thuật toán nhanh - thoạt nhìn có vẻ không quá sâu sắc. Chiều sâu của nó chỉ trở nên rõ ràng khi bạn bắt đầu khám phá nó - và phải đến khi các nhà nghiên cứu bắt đầu mày mò với những chiếc máy tính thực sự vào những năm 1960, câu hỏi ấy mới có vẻ đáng để nghiên cứu.
Tôi nghĩ đây rốt cuộc chính là điều còn thiếu trong một bức tranh về khoa học máy tính xem nhẹ vai trò của máy tính: trong lịch sử thực tế, những câu hỏi lý thuyết sâu sắc thường giao thoa với những câu hỏi thực tiễn về việc chế tạo những cỗ máy tốt hơn.
Matti Tedre, nhà khoa học máy tính tại Đại học Eastern Finland và là tác giả một cuốn sách về bản sắc ngành học của lĩnh vực này, không thích cách người ta thường hiểu câu nói của Dijkstra.
"[Dijkstra] hoàn toàn đúng; chỉ có điều ông đã sai về tầm quan trọng của kính thiên văn đối với thiên văn học," Tedre nói. "Chúng ta sẽ chẳng biết gì về vũ trụ nếu không có kính thiên văn."
Từ đây có thể gợi ra những bài học về cách chúng ta nhìn nhận tiến bộ khoa học nói chung, không chỉ lĩnh vực khoa học máy tính. Theo một quan niệm phổ biến, những đột phá trong khoa học cơ bản thúc đẩy các tiến bộ công nghệ: hãy nghĩ đến vật lý lượng tử dẫn tới transistor, hay thuyết tương đối giúp GPS trở thành hiện thực. Nhưng lịch sử khoa học máy tính gợi ý một mối tương tác tinh tế hơn giữa cái sâu sắc và cái thực tiễn, điều cũng tương đồng trong các ngành khác. Aaronson lấy ví dụ về định luật thứ hai của nhiệt động lực học, theo đó entropy - một đại lượng đo mức độ hỗn loạn - có xu hướng tăng theo thời gian.
"Có lẽ đó là điều nền tảng nhất mà bạn có thể nói về sự tiến hóa của toàn bộ vũ trụ," ông nói. "Thế nhưng chẳng ai nghĩ ra điều đó cho tới khi người ta bắt đầu chế tạo động cơ hơi nước."
Hay như Ryan Williams, nhà lý thuyết độ phức tạp tại Viện Công nghệ Massachusetts, diễn đạt: "Những vấn đề thực tiễn đủ thú vị sẽ sản sinh ra những câu hỏi lý thuyết lớn."
Kim Dung dịch
Bài viết được đăng lại theo thỏa thuận xuất bản với tạp chí Quanta, một ấn phẩm độc lập về mặt biên tập thuộc Quỹ Simons, hoạt động với sứ mệnh nâng cao nhận thức khoa học của cộng đồng thông qua việc cập nhật các thành tựu và xu hướng mới nhất trong toán học, khoa học vật lý và khoa học sự sống.
Có thể đọc bản gốc của bài viết tại: https://www.quantamagazine.org/does-computer-science-need-computers-20260828/
[1] Thông tin về Edsger Dijkstra. https://amturing.acm.org/award_winners/dijkstra_1053701.cfm
[2] Thuật toán Dijkstra. https://www.quantamagazine.org/computer-scientists-establish-the-best-way-to-traverse-a-graph-20241025/
[3] The Quanta Podcast. www.quantamagazine.org/for-algorithms-a-little-memory-outweighs-a-lot-of-time-20250521/
[4] Bức thư của ba nhà khoa học máy tính Allen Newell, Herbert Simon và Alan Perlis. Allen Newell et al. ,Computer Science.Science157,1373-1374(1967). DOI:10.1126/science.157.3795.1373.c
[5] Thông tin về Donald Knuth. www.quantamagazine.org/computer-scientist-donald-knuth-cant-stop-telling-stories-20200416/
[6] Định nghĩa khoa học máy tính là ngành nghiên cứu các thuật toán. Knuth, D. E. (1974). Computer Science and its Relation to Mathematics. The American Mathematical Monthly, 81(4), 323–343. https://doi.org/10.1080/00029890.1974.11993556
[7] Thông tin về William Rapaport. www.buffalo.edu/cas/philosophy/faculty/emeritus/rapaport.html
[8] Ghi chép của William Rapaport. https://cse.buffalo.edu/~rapaport/Papers/whatiscsapa-20170127-edited.pdf
[9] Thông tin về cỗ máy giả định. www.quantamagazine.org/alan-turings-most-important-machine-was-never-built-20230503/
[10] Vấn đề trung tâm trong nền tảng của toán học. www.quantamagazine.org/alan-turing-and-the-power-of-negative-thinking-20230905/
[11] Sử dụng các phép tính toán đề phơi bày hành vi không thể dự đoán trong các hệ vật lý, phân tích động lực tiến hóa, và giải những câu đố về hấp dẫn lượng tử. www.quantamagazine.org/next-level-chaos-traces-the-true-limit-of-predictability-20250307/
[12] Thông tin về Cristopher Moore. www.santafe.edu/people/profile/cristopher-moore
[13] Thông tin về Valentine Kabanets. www.cs.sfu.ca/~kabanets/
[14] Bài toán mở nổi tiếng trong lý thuyết độ phức tạp. www.quantamagazine.org/complexity-theorys-50-year-journey-to-the-limits-of-knowledge-20230817/
[15] Những khái niệm mới về chứng minh toán học. www.quantamagazine.org/computer-scientists-combine-two-beautiful-proof-methods-20241004/
[16] Thông tin về Scott Aaronson. https://www.cs.utexas.edu/people/faculty-researchers/scott-aaronson
[17] Thông tin về Matti Tedre. www.tedre.name/
[18] Cuốn sách về bản sắc của lĩnh vực khoa học máy tính. https://dl.acm.org/doi/book/10.5555/2700545
[19] Định luật thứ hai của nhiệt động lực học. www.quantamagazine.org/what-is-entropy-a-measure-of-just-how-little-we-really-know-20241213/
[20] Thông tin về Ryan Williams. https://people.csail.mit.edu/rrw/