Ngoài những đóng góp cho thiết kế ngôn ngữ, Niklaus Wirth còn để lại một trong những trò chơi chữ hay nhất
Họ của ông vốn phát âm gần giống “Virt”, nhưng ở Mỹ mọi người đều gọi là “Worth”, nên ông đùa rằng “ở châu Âu thì được gọi bằng tên, còn ở Mỹ thì được gọi theo giá trị”
Thật ra trò đùa này phải dùng kèm cả tên thì mới trọn vẹn
Vì “by value” được phát âm theo cách nghe như ghép tên và họ thành Nickles Worth
Ông nổi tiếng là người ăn nói dí dỏm
Bên cạnh vô số thành tựu, Wirth còn là người hùng của Joe Armstrong, và có ảnh hưởng lớn đến phong cách đơn giản của Armstrong
Joe thường trích lời Wirth rằng “cửa sổ chồng lấp có thể tốt hơn cửa sổ dạng lát, nhưng không tốt hơn đến mức biện minh được cho chi phí phức tạp trong triển khai”
Việc ông trình diễn bản port Oberon mới lên một CPU tự chế chạy trên một bo mạch phát triển FPGA bất kỳ cùng thiết bị ngoại vi USB tại hội thảo mừng sinh nhật 80 tuổi ở ETH cũng rất ấn tượng, và tôi mong một ngày nào đó mình cũng được như vậy ở tuổi 80
Wirth là huyền thoại ở thái độ “không tốt hơn đến mức đó”
Quan điểm của ông về tối ưu hóa trình biên dịch cũng tương tự: chỉ nên thêm pass tối ưu hóa khi nó cải thiện thời gian trình biên dịch tự biên dịch chính nó
Oberon cũng chủ ý chỉ hỗ trợ đa nhiệm hợp tác
Theo con gái ông, ngay cả khi đã ngoài 80 rất lâu, ông vẫn tiếp tục làm và thử nghiệm đủ thứ ở nhà
Đó là một mục tiêu có thể gọi là “Wirthwhile ambition”
Ban đầu tôi viết “worthwhile”, nhưng trò chơi chữ này rõ ràng đến mức như muốn nhảy ra khỏi màn hình
Tôi thích không chỉ các ngôn ngữ của Wirth, mà cả những công trình như thuật toán + cấu trúc dữ liệu = chương trình, tinh chỉnh từng bước
Pascal là một trong những ngôn ngữ đầu đời của tôi, cũng như nhiều người khác, và đến giờ tôi vẫn thích nó dưới dạng Delphi và Free Pascal
RIP, guruji
Lý do tôi sửa guru thành guruji là vì trong tiếng Hindi, ji là hậu tố kính ngữ; dĩ nhiên bản thân guru cũng đã là một từ mang ý kính trọng
Tôi là học trò cũ của ông
Ông là một trong những người đã biến tôi, khi đó là một thiếu niên cứ gõ bàn phím để làm cho mọi thứ chạy được, thành một lập trình viên thành thạo biết suy nghĩ trước khi viết code
Ngay cả trước khi gặp ông ở đại học, tôi đã lập trình bằng Oberon vì trong cộng đồng Amiga có nhiều lập trình viên dùng các ngôn ngữ của Wirth, và tôi sẽ rất nhớ ông
Tôi cũng từng là học trò của ông, và về sau, khi là nghiên cứu sinh ở một viện khác, tôi đã gặp riêng ông vài lần
Tất cả sinh viên đại học đều kính sợ ông, nhưng có vẻ ông không đặc biệt thích các bài giảng bậc đại học
Tuy vậy, khác với một số giáo sư khác, ông không tìm cách đẩy trách nhiệm đó cho trợ giảng, và ông có vẻ có quan hệ tốt với nghiên cứu sinh
Trong môn cấu trúc trình biên dịch, ông có vẻ nhập tâm hơn; có lẽ vì sinh viên khi đó đã có thêm chút kinh nghiệm, và ông đang lặp đi lặp lại việc cải tiến thiết kế Oberon
Trong kỳ thi vấn đáp, ông yêu cầu tôi giải vấn đề dangling ELSE của Pascal, và tôi trả lời rằng sẽ tinh chỉnh ngữ pháp ngôn ngữ để loại bỏ tính mơ hồ
Ông nói có lẽ cách đó sẽ hoạt động nhưng quá phức tạp, rồi hỏi tôi lấy ý tưởng đó từ đâu; cuối cùng tôi thú nhận là đã thấy trong “Dragon Book”, cuốn gần như cạnh tranh với giáo trình của ông
Mãi sau tôi mới nhận ra đáp án ông muốn là thay đổi ngôn ngữ để yêu cầu END tường minh, như trong Modula-2 và Oberon
Khi nói chuyện riêng, ông là người thú vị và có vô số giai thoại về máy tính
Trước công chúng ông có vẻ hơi độc đoán, nhưng khi nói riêng thì khoan dung hơn nhiều với cả những “dị giáo”
Có lần nhắc đến Perl, tôi không kỳ vọng ông sẽ nói điều gì tốt đẹp, nhưng bất ngờ là ông cho rằng ngôn ngữ khớp mẫu/xử lý văn bản có một ngách sử dụng hợp lệ, và ông nhắc SNOBOL như một ngôn ngữ tiền thân cùng dòng đó
Tôi tò mò đó là những ngôn ngữ nào
Tôi vừa phục hồi một chiếc Amiga 500 cài Workbench 2.1, và muốn tưởng nhớ ông
Amiga là một trong những nền tảng có khá nhiều người dùng Modula-2, thậm chí còn hơn PC
Vì phía PC đã quá quen với Turbo Pascal
begin
Đây thật sự là một tin rất đáng buồn
Không biết có nguồn nào tốt hơn Twitter không
Sửa: https://lists.inf.ethz.ch/pipermail/oberon/2024/016856.html
Wirth là vị tông đồ vĩ đại còn lại của phần mềm đơn giản, chính xác và con người có thể hiểu được, giờ chỉ còn Hoare và Moore; có vẻ Moore cũng đã trao quyền điều hành thực tế GreenArrays cho thế hệ trẻ
Những người trẻ có thể không biết công trình của ông có ý nghĩa gì không chỉ về mặt học thuật mà cả trong thực tiễn, nên tôi để lại vài điều Môi trường phát triển tích hợp như chúng ta biết ngày nay ra đời từ Turbo Pascal; phần lớn phần mềm Macintosh thời kỳ đầu được viết bằng Pascal, và MacPaint cũng là một ví dụ
Robert Griesemer, một trong ba nhà thiết kế ban đầu của Go, từng là học trò của Wirth và lấy bằng tiến sĩ với một bản mở rộng Oberon; các ngôn ngữ của Wirth cũng là nguồn cảm hứng rất rõ rệt cho thiết kế Newsqueak
TeX cũng được viết bằng Pascal
end;
end.
Phần mềm đơn giản, chính xác và đẹp vẫn đang được tạo ra, và Wirth không phải là người cuối cùng
Chỉ là phần lớn chúng không được chú ý, và bài ca thầm lặng ấy bị tiếng ồn của những phần mềm khổng lồ phức tạp, mong manh nhưng thu hút sự chú ý lấn át
Bài ca đó chưa từng biến mất, chỉ cần chỉnh đúng tần số là được
Có vẻ vẫn chưa có nguồn tốt hơn, nhưng đây là tài khoản thật của Bertrand Meyer, người tạo ra ngôn ngữ Eiffel
Tôi đến nay vẫn rất thích luận án tiến sĩ của Michael Franz, học trò của Wirth, mà tôi đọc lần đầu vào năm 1994
Ông hiện là giáo sư tại UC Irvine, và cũng hướng dẫn luận văn của Andreas Gal về trace tree, thứ về sau trở thành TraceMonkey
Nếu nói về hạng mục tông đồ của phần mềm đơn giản, chính xác và con người có thể hiểu được, Alan Kay cũng vẫn còn ở bên chúng ta
Có một đoạn liên quan do chính Dijkstra để lại trong EWD1308
Năm 1968, Communications of the ACM đăng bài của ông với tiêu đề “The goto statement considered harmful”, và về sau bài viết đó, thật đáng tiếc, thường được các tác giả chỉ đọc tiêu đề trích dẫn; nó trở thành nền tảng cho danh tiếng của ông cũng như nguyên mẫu cho dạng tiêu đề “X considered harmful”
Ban đầu ông gửi bài với tiêu đề “A case against the goto statement”, nhưng để xuất bản nhanh hơn, biên tập viên đã đổi nó thành “thư gửi biên tập viên” và tự đặt tiêu đề mới theo ý mình; biên tập viên đó chính là Niklaus Wirth
[1] Transcription - https://www.cs.utexas.edu/%7EEWD/transcriptions/EWD13xx/EWD1...
PDF - https://www.cs.utexas.edu/%7EEWD/ewd13xx/EWD1308.PDF
Giáo sư Wirth là người đã truyền cảm hứng lớn cho tôi khi còn nhỏ
Khi ấy tôi chưa thật sự nhận ra cuốn sách của ông về Pascal tao nhã và đơn giản đến mức nào, nhưng tôi đã đọc rất chăm chú; tôi cũng hào hứng theo dõi việc phát triển ngôn ngữ Oberon và workstation Lilith
Năm 13 tuổi, ông có một buổi nói chuyện ở một nơi không xa, có lẽ là Johns Hopkins, và cha tôi đã đưa tôi đi
Đó là một trải nghiệm thật tuyệt vời; như có thể thấy trong bức ảnh được liên kết[1], ông rất tử tế và luôn khích lệ
[1]: https://mastodon.online/@raph/111693863925852135
Một ngày buồn
Ông là một người khổng lồ của ngành điện toán, và xứng đáng nhận được nhiều sự chú ý hơn những gì ông đã có
Nếu các ngôn ngữ của ông được dùng rộng rãi hơn trong phát triển phần mềm, nhiều thứ hẳn đã tốt đẹp hơn
Sau khi nghịch một chút Basic trên C64/128, ngôn ngữ lập trình “thực sự” đầu tiên tôi học là Pascal
Tôi học bằng UCSD Pascal trên Apple II ở trường và Turbo Pascal 3.0 trên IBM PC; chiếc PC đó còn chưa phải loại cao cấp như AT, mà là một PC xách tay có CRT màu hổ phách tích hợp
Khi tôi mua Amiga 500, Modula-2 rất phổ biến trên Amiga, và hệ thống M2Amiga thực sự là môi trường phát triển vững chắc nhất
Modula-2 giúp dễ tạo ra các chương trình có cấu trúc và chắc chắn, còn khái niệm module thì đi trước thời đại
Điều đó tương phản với thế giới C, vốn vẫn tiếp tục biên dịch lại các tệp header trong một thời gian dài sau đó
Ngày nay Go lấy rất nhiều thứ từ Modula-2, nên tôi bị Go thu hút ngay lập tức
Việc Robert Griesemer từng là học trò của Wirth cũng không phải ngẫu nhiên
Ngay cả trong thập niên 90, khi MS-DOS vẫn còn được dùng, Turbo Pascal là ngôn ngữ chủ lực của mọi người trên PC
Nó mạnh mẽ nhưng vẫn dễ tiếp cận với cả những người không phải nhà phát triển phần mềm chuyên nghiệp, tiếp nhận nhiều mở rộng của Modula-2, và cũng có hệ thống đối tượng tốt
Nó đạt đỉnh ở các phiên bản 6 và 7, và có lẽ đến nay vẫn là môi trường phát triển tôi yêu thích nhất nhờ tốc độ áp đảo của UI thuần văn bản
Turbo Pascal kết hợp một môi trường phát triển tốt với một ngôn ngữ đạt được sự dung hòa tuyệt vời giữa sức mạnh và sự đơn giản
Đáng tiếc là tôi chỉ biết lờ mờ về công trình về sau của ông, Oberon
Tôi từng chạy hệ thống Oberon native trên 386 và nghịch một chút; hiệu năng cùng toàn bộ GUI của nó vào thời PC còn ở kỷ nguyên DOS thực sự cực kỳ ấn tượng
Thật tiếc là nó không nhận được nhiều chú ý hơn
Nếu kịp có đà không quá muộn vào cuối thập niên 80, nó có thể đã rất thành công, nhưng đầu thập niên 90 thì Windows xuất hiện
Từ góc nhìn thuần túy, đỉnh cao là khi ông thực sự xứng với danh hiệu nhà phát triển full-stack
Bởi ông không chỉ thiết kế Oberon và hệ điều hành, mà còn thiết kế cả CPU để chạy nó
Rất ấn tượng và cũng có giá trị giáo dục lớn
END.
Wirth là nhà thiết kế chính của Euler, PL360, ALGOL W, Pascal, Modula, Modula-2, Oberon, Oberon-2, Oberon-07
Ông cũng tham gia then chốt vào việc thiết kế và triển khai Medos-2 cho workstation Lilith, hệ điều hành Oberon cho workstation Ceres, và hệ thống thiết kế・mô phỏng phần cứng số Lola
Năm 1984, ông nhận ACM Turing Award nhờ việc phát triển các ngôn ngữ này
Tôi vẫn tự hỏi thế giới công nghệ ngày nay sẽ khác thế nào nếu Wirth chỉ cần có cảm quan marketing để gọi Modula là Pascal 2
Tôi khá thích Lola
Một ngôn ngữ mô tả phần cứng dễ học chịu ảnh hưởng từ Pascal/Oberon, đối lập với Verilog lấy cảm hứng từ C hay VHDL lấy cảm hứng từ Ada
Tôi cũng thích toàn bộ software stack của Wirth
RISC-5 được triển khai bằng Lola không nên nhầm với RISC-V, và bên trên nó là ngôn ngữ Oberon cùng môi trường Oberon
Nếu tôi nhớ đúng thì Lola có thể sinh Verilog, và ý tưởng dường như là để sinh viên bắt đầu từ bo mạch FPGA rồi tự làm CPU, trình biên dịch và hệ điều hành của mình
Tôi cũng thích những câu nói dí dỏm của ông
Hình như ông từng nói đại loại: “Tôi là một giáo sư kiêm lập trình viên, và là một lập trình viên kiêm giáo sư”
Chúng ta cần nhiều lập trình viên/giáo sư như vậy hơn, và ông rõ ràng là nguồn cảm hứng cho những người làm hệ thống
Ông cũng cộng tác với Apple trong thiết kế ban đầu của Object Pascal, và các học trò của ông đã thực hiện nhiều dự án nghiên cứu phái sinh từ Oberon như Component Pascal, Active Oberon, Zonnon
Trong hai học kỳ lập trình đầu tiên ở đại học, tôi học Pascal và MODULA-2
MODULA-2 biến mất không lâu sau đó, nhưng Pascal đến nay vẫn được dùng trong các môn nhập môn lập trình
Tôi rất vui vì đây là những ngôn ngữ đã đưa tôi đến với lập trình, và Wirth có một vị trí rất đặc biệt trong lòng tôi
Các thiết kế của ông thật sự đi trước thời đại
Ngôn ngữ thứ hai tôi học sau Basic là Pascal
Tôi cũng luôn muốn học Modula, nhưng thay vào đó lại học Delphi
Tôi khởi nghiệp công ty đầu tiên dựa trên Delphi, và Delphi thì dựa trên Turbo Pascal
Wirth là nguồn cảm hứng lớn, và sự ra đi của ông tuyệt đối không phải là một mất mát nhỏ
Mong rằng công trình của ông sẽ tiếp tục truyền cảm hứng cho nhiều thế hệ lập trình viên mới trong tương lai
Một câu nói của ông là: “Người châu Âu nhìn chung phát âm đúng tên tôi là ‘Ni-klows Wirt’, nhưng người Mỹ thì không ngoại lệ, làm hỏng nó thành ‘Nick-les Worth’. Tức là người châu Âu gọi tôi bằng tên, còn người Mỹ gọi tôi bằng giá trị”
Đúng vậy
Tôi đã viết luận văn cử nhân về việc đưa tính module vào một ngôn ngữ giám sát hệ thống thời gian thực, và chịu ảnh hưởng lớn từ công trình của ông, đặc biệt là MODULA-2
Đây là một ngày buồn trong lịch sử điện toán, và chúng ta đã mất đi một nhà thiết kế ngôn ngữ vĩ đại, người đã cho nhiều người thấy một cách tiếp cận tốt hơn với lập trình hệ thống
Buồn thật, nhưng ông đã sống một cuộc đời dài và trọn vẹn mà nhiều người chỉ dám mơ
Tôi muốn nâng ly vì cuộc đời ấy, và mong ông đang ở đâu đó trong Valhalla lập trình
Tôi thì không quá buồn
Cái chết là một phần của cuộc sống
Điều buồn hơn nhiều là khi cuộc đời sụp đổ vì Alzheimer, sa sút trí tuệ, hoặc đơn giản là chậm lại và suy kiệt; khi nó kết thúc quá sớm; hoặc khi nó bị lãng phí
Ông gần 90 tuổi, và đã sống một cuộc đời dài lâu, có ảnh hưởng và trọn vẹn
Một cuộc đời như vậy đáng được tưởng niệm
2 bình luận
Kent Beck cũng đã viết một bài hồi tưởng về giáo sư Niklaus Wirth.
https://tidyfirst.substack.com/p/niklaus-wirth-1934-2024
Nghe nói cả giáo sư Joe Armstrong cũng chịu ảnh hưởng từ giáo sư Niklaus Wirth, có lẽ ông đúng là một con người thật sự vĩ đại.
Các ý kiến trên Hacker News
Ngoài những đóng góp cho thiết kế ngôn ngữ, Niklaus Wirth còn để lại một trong những trò chơi chữ hay nhất
Họ của ông vốn phát âm gần giống “Virt”, nhưng ở Mỹ mọi người đều gọi là “Worth”, nên ông đùa rằng “ở châu Âu thì được gọi bằng tên, còn ở Mỹ thì được gọi theo giá trị”
Nếu có video phản ứng của khán giả lúc đó thì tôi rất muốn xem
https://en.wikiquote.org/wiki/Niklaus_Wirth
https://lists.racket-lang.org/users/archive/2014-July/063519...
Vì “by value” được phát âm theo cách nghe như ghép tên và họ thành Nickles Worth
Bên cạnh vô số thành tựu, Wirth còn là người hùng của Joe Armstrong, và có ảnh hưởng lớn đến phong cách đơn giản của Armstrong
Joe thường trích lời Wirth rằng “cửa sổ chồng lấp có thể tốt hơn cửa sổ dạng lát, nhưng không tốt hơn đến mức biện minh được cho chi phí phức tạp trong triển khai”
Việc ông trình diễn bản port Oberon mới lên một CPU tự chế chạy trên một bo mạch phát triển FPGA bất kỳ cùng thiết bị ngoại vi USB tại hội thảo mừng sinh nhật 80 tuổi ở ETH cũng rất ấn tượng, và tôi mong một ngày nào đó mình cũng được như vậy ở tuổi 80
Quan điểm của ông về tối ưu hóa trình biên dịch cũng tương tự: chỉ nên thêm pass tối ưu hóa khi nó cải thiện thời gian trình biên dịch tự biên dịch chính nó
Oberon cũng chủ ý chỉ hỗ trợ đa nhiệm hợp tác
https://www.youtube.com/watch?v=EXY78gPMvl0
Ban đầu tôi viết “worthwhile”, nhưng trò chơi chữ này rõ ràng đến mức như muốn nhảy ra khỏi màn hình
Tôi thích không chỉ các ngôn ngữ của Wirth, mà cả những công trình như thuật toán + cấu trúc dữ liệu = chương trình, tinh chỉnh từng bước
Pascal là một trong những ngôn ngữ đầu đời của tôi, cũng như nhiều người khác, và đến giờ tôi vẫn thích nó dưới dạng Delphi và Free Pascal
RIP, guruji
Lý do tôi sửa guru thành guruji là vì trong tiếng Hindi, ji là hậu tố kính ngữ; dĩ nhiên bản thân guru cũng đã là một từ mang ý kính trọng
Tôi là học trò cũ của ông
Ông là một trong những người đã biến tôi, khi đó là một thiếu niên cứ gõ bàn phím để làm cho mọi thứ chạy được, thành một lập trình viên thành thạo biết suy nghĩ trước khi viết code
Ngay cả trước khi gặp ông ở đại học, tôi đã lập trình bằng Oberon vì trong cộng đồng Amiga có nhiều lập trình viên dùng các ngôn ngữ của Wirth, và tôi sẽ rất nhớ ông
Tất cả sinh viên đại học đều kính sợ ông, nhưng có vẻ ông không đặc biệt thích các bài giảng bậc đại học
Tuy vậy, khác với một số giáo sư khác, ông không tìm cách đẩy trách nhiệm đó cho trợ giảng, và ông có vẻ có quan hệ tốt với nghiên cứu sinh
Trong môn cấu trúc trình biên dịch, ông có vẻ nhập tâm hơn; có lẽ vì sinh viên khi đó đã có thêm chút kinh nghiệm, và ông đang lặp đi lặp lại việc cải tiến thiết kế Oberon
Trong kỳ thi vấn đáp, ông yêu cầu tôi giải vấn đề dangling ELSE của Pascal, và tôi trả lời rằng sẽ tinh chỉnh ngữ pháp ngôn ngữ để loại bỏ tính mơ hồ
Ông nói có lẽ cách đó sẽ hoạt động nhưng quá phức tạp, rồi hỏi tôi lấy ý tưởng đó từ đâu; cuối cùng tôi thú nhận là đã thấy trong “Dragon Book”, cuốn gần như cạnh tranh với giáo trình của ông
Mãi sau tôi mới nhận ra đáp án ông muốn là thay đổi ngôn ngữ để yêu cầu END tường minh, như trong Modula-2 và Oberon
Khi nói chuyện riêng, ông là người thú vị và có vô số giai thoại về máy tính
Trước công chúng ông có vẻ hơi độc đoán, nhưng khi nói riêng thì khoan dung hơn nhiều với cả những “dị giáo”
Có lần nhắc đến Perl, tôi không kỳ vọng ông sẽ nói điều gì tốt đẹp, nhưng bất ngờ là ông cho rằng ngôn ngữ khớp mẫu/xử lý văn bản có một ngách sử dụng hợp lệ, và ông nhắc SNOBOL như một ngôn ngữ tiền thân cùng dòng đó
Tôi vừa phục hồi một chiếc Amiga 500 cài Workbench 2.1, và muốn tưởng nhớ ông
Vì phía PC đã quá quen với Turbo Pascal
begin
Đây thật sự là một tin rất đáng buồn
Không biết có nguồn nào tốt hơn Twitter không
Sửa: https://lists.inf.ethz.ch/pipermail/oberon/2024/016856.html
Wirth là vị tông đồ vĩ đại còn lại của phần mềm đơn giản, chính xác và con người có thể hiểu được, giờ chỉ còn Hoare và Moore; có vẻ Moore cũng đã trao quyền điều hành thực tế GreenArrays cho thế hệ trẻ
Những người trẻ có thể không biết công trình của ông có ý nghĩa gì không chỉ về mặt học thuật mà cả trong thực tiễn, nên tôi để lại vài điều
Môi trường phát triển tích hợp như chúng ta biết ngày nay ra đời từ Turbo Pascal; phần lớn phần mềm Macintosh thời kỳ đầu được viết bằng Pascal, và MacPaint cũng là một ví dụ
Robert Griesemer, một trong ba nhà thiết kế ban đầu của Go, từng là học trò của Wirth và lấy bằng tiến sĩ với một bản mở rộng Oberon; các ngôn ngữ của Wirth cũng là nguồn cảm hứng rất rõ rệt cho thiết kế Newsqueak
TeX cũng được viết bằng Pascal
end;
end.
Chỉ là phần lớn chúng không được chú ý, và bài ca thầm lặng ấy bị tiếng ồn của những phần mềm khổng lồ phức tạp, mong manh nhưng thu hút sự chú ý lấn át
Bài ca đó chưa từng biến mất, chỉ cần chỉnh đúng tần số là được
https://twitter.com/odersky/status/1742618391553171866
Ông hiện là giáo sư tại UC Irvine, và cũng hướng dẫn luận văn của Andreas Gal về trace tree, thứ về sau trở thành TraceMonkey
Niklaus Wirth cũng là người đã đổi tiêu đề bài viết của Dijkstra thành Goto Statement Considered Harmful
https://en.wikipedia.org/wiki/Considered_harmful#cite_ref-6
Năm 1968, Communications of the ACM đăng bài của ông với tiêu đề “The goto statement considered harmful”, và về sau bài viết đó, thật đáng tiếc, thường được các tác giả chỉ đọc tiêu đề trích dẫn; nó trở thành nền tảng cho danh tiếng của ông cũng như nguyên mẫu cho dạng tiêu đề “X considered harmful”
Ban đầu ông gửi bài với tiêu đề “A case against the goto statement”, nhưng để xuất bản nhanh hơn, biên tập viên đã đổi nó thành “thư gửi biên tập viên” và tự đặt tiêu đề mới theo ý mình; biên tập viên đó chính là Niklaus Wirth
[1] Transcription - https://www.cs.utexas.edu/%7EEWD/transcriptions/EWD13xx/EWD1...
PDF - https://www.cs.utexas.edu/%7EEWD/ewd13xx/EWD1308.PDF
Giáo sư Wirth là người đã truyền cảm hứng lớn cho tôi khi còn nhỏ
Khi ấy tôi chưa thật sự nhận ra cuốn sách của ông về Pascal tao nhã và đơn giản đến mức nào, nhưng tôi đã đọc rất chăm chú; tôi cũng hào hứng theo dõi việc phát triển ngôn ngữ Oberon và workstation Lilith
Năm 13 tuổi, ông có một buổi nói chuyện ở một nơi không xa, có lẽ là Johns Hopkins, và cha tôi đã đưa tôi đi
Đó là một trải nghiệm thật tuyệt vời; như có thể thấy trong bức ảnh được liên kết[1], ông rất tử tế và luôn khích lệ
[1]: https://mastodon.online/@raph/111693863925852135
Một ngày buồn
Ông là một người khổng lồ của ngành điện toán, và xứng đáng nhận được nhiều sự chú ý hơn những gì ông đã có
Nếu các ngôn ngữ của ông được dùng rộng rãi hơn trong phát triển phần mềm, nhiều thứ hẳn đã tốt đẹp hơn
Sau khi nghịch một chút Basic trên C64/128, ngôn ngữ lập trình “thực sự” đầu tiên tôi học là Pascal
Tôi học bằng UCSD Pascal trên Apple II ở trường và Turbo Pascal 3.0 trên IBM PC; chiếc PC đó còn chưa phải loại cao cấp như AT, mà là một PC xách tay có CRT màu hổ phách tích hợp
Khi tôi mua Amiga 500, Modula-2 rất phổ biến trên Amiga, và hệ thống M2Amiga thực sự là môi trường phát triển vững chắc nhất
Modula-2 giúp dễ tạo ra các chương trình có cấu trúc và chắc chắn, còn khái niệm module thì đi trước thời đại
Điều đó tương phản với thế giới C, vốn vẫn tiếp tục biên dịch lại các tệp header trong một thời gian dài sau đó
Ngày nay Go lấy rất nhiều thứ từ Modula-2, nên tôi bị Go thu hút ngay lập tức
Việc Robert Griesemer từng là học trò của Wirth cũng không phải ngẫu nhiên
Ngay cả trong thập niên 90, khi MS-DOS vẫn còn được dùng, Turbo Pascal là ngôn ngữ chủ lực của mọi người trên PC
Nó mạnh mẽ nhưng vẫn dễ tiếp cận với cả những người không phải nhà phát triển phần mềm chuyên nghiệp, tiếp nhận nhiều mở rộng của Modula-2, và cũng có hệ thống đối tượng tốt
Nó đạt đỉnh ở các phiên bản 6 và 7, và có lẽ đến nay vẫn là môi trường phát triển tôi yêu thích nhất nhờ tốc độ áp đảo của UI thuần văn bản
Turbo Pascal kết hợp một môi trường phát triển tốt với một ngôn ngữ đạt được sự dung hòa tuyệt vời giữa sức mạnh và sự đơn giản
Đáng tiếc là tôi chỉ biết lờ mờ về công trình về sau của ông, Oberon
Tôi từng chạy hệ thống Oberon native trên 386 và nghịch một chút; hiệu năng cùng toàn bộ GUI của nó vào thời PC còn ở kỷ nguyên DOS thực sự cực kỳ ấn tượng
Thật tiếc là nó không nhận được nhiều chú ý hơn
Nếu kịp có đà không quá muộn vào cuối thập niên 80, nó có thể đã rất thành công, nhưng đầu thập niên 90 thì Windows xuất hiện
Từ góc nhìn thuần túy, đỉnh cao là khi ông thực sự xứng với danh hiệu nhà phát triển full-stack
Bởi ông không chỉ thiết kế Oberon và hệ điều hành, mà còn thiết kế cả CPU để chạy nó
Rất ấn tượng và cũng có giá trị giáo dục lớn
END.
Wirth là nhà thiết kế chính của Euler, PL360, ALGOL W, Pascal, Modula, Modula-2, Oberon, Oberon-2, Oberon-07
Ông cũng tham gia then chốt vào việc thiết kế và triển khai Medos-2 cho workstation Lilith, hệ điều hành Oberon cho workstation Ceres, và hệ thống thiết kế・mô phỏng phần cứng số Lola
Năm 1984, ông nhận ACM Turing Award nhờ việc phát triển các ngôn ngữ này
Một ngôn ngữ mô tả phần cứng dễ học chịu ảnh hưởng từ Pascal/Oberon, đối lập với Verilog lấy cảm hứng từ C hay VHDL lấy cảm hứng từ Ada
Tôi cũng thích toàn bộ software stack của Wirth
RISC-5 được triển khai bằng Lola không nên nhầm với RISC-V, và bên trên nó là ngôn ngữ Oberon cùng môi trường Oberon
Nếu tôi nhớ đúng thì Lola có thể sinh Verilog, và ý tưởng dường như là để sinh viên bắt đầu từ bo mạch FPGA rồi tự làm CPU, trình biên dịch và hệ điều hành của mình
Tôi cũng thích những câu nói dí dỏm của ông
Hình như ông từng nói đại loại: “Tôi là một giáo sư kiêm lập trình viên, và là một lập trình viên kiêm giáo sư”
Chúng ta cần nhiều lập trình viên/giáo sư như vậy hơn, và ông rõ ràng là nguồn cảm hứng cho những người làm hệ thống
MODULA-2 biến mất không lâu sau đó, nhưng Pascal đến nay vẫn được dùng trong các môn nhập môn lập trình
Tôi rất vui vì đây là những ngôn ngữ đã đưa tôi đến với lập trình, và Wirth có một vị trí rất đặc biệt trong lòng tôi
Các thiết kế của ông thật sự đi trước thời đại
Tôi cũng luôn muốn học Modula, nhưng thay vào đó lại học Delphi
Tôi khởi nghiệp công ty đầu tiên dựa trên Delphi, và Delphi thì dựa trên Turbo Pascal
Wirth là nguồn cảm hứng lớn, và sự ra đi của ông tuyệt đối không phải là một mất mát nhỏ
Mong rằng công trình của ông sẽ tiếp tục truyền cảm hứng cho nhiều thế hệ lập trình viên mới trong tương lai
Một câu nói của ông là: “Người châu Âu nhìn chung phát âm đúng tên tôi là ‘Ni-klows Wirt’, nhưng người Mỹ thì không ngoại lệ, làm hỏng nó thành ‘Nick-les Worth’. Tức là người châu Âu gọi tôi bằng tên, còn người Mỹ gọi tôi bằng giá trị”
Tôi đã viết luận văn cử nhân về việc đưa tính module vào một ngôn ngữ giám sát hệ thống thời gian thực, và chịu ảnh hưởng lớn từ công trình của ông, đặc biệt là MODULA-2
https://news.ycombinator.com/item?id=38858993
Đây là một ngày buồn trong lịch sử điện toán, và chúng ta đã mất đi một nhà thiết kế ngôn ngữ vĩ đại, người đã cho nhiều người thấy một cách tiếp cận tốt hơn với lập trình hệ thống
Tôi muốn nâng ly vì cuộc đời ấy, và mong ông đang ở đâu đó trong Valhalla lập trình
Cái chết là một phần của cuộc sống
Điều buồn hơn nhiều là khi cuộc đời sụp đổ vì Alzheimer, sa sút trí tuệ, hoặc đơn giản là chậm lại và suy kiệt; khi nó kết thúc quá sớm; hoặc khi nó bị lãng phí
Ông gần 90 tuổi, và đã sống một cuộc đời dài lâu, có ảnh hưởng và trọn vẹn
Một cuộc đời như vậy đáng được tưởng niệm