2 điểm bởi GN⁺ 2024-01-04 | 2 bình luận | Chia sẻ qua WhatsApp

2 bình luận

 
bus710 2024-01-06

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.

 
GN⁺ 2024-01-04
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ị”

    • Trò đùa này bắt nguồn từ việc Adriaan van Wijngaarden giới thiệu Wirth tại một hội nghị vào thập niên 1960
      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...
    • 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
    • Bài trình bày tại hội thảo mừng sinh nhật 80 tuổi ở ETH, nơi ông port Oberon lên CPU tự chế và bo mạch FPGA, thật tuyệt vời
      https://www.youtube.com/watch?v=EXY78gPMvl0
    • 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
    • Martin Odersky, người tạo ra Scala và là học trò của Wirth, dường như cũng xem đây là sự thật
      https://twitter.com/odersky/status/1742618391553171866
    • 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
  • 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

    • 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
    • Wirth có thể đã chấp nhận câu trích dẫn đó, nhưng thực ra nó bắt đầu từ một câu dí dỏm của ai đó khi giới thiệu ông tại một hội nghị
      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

    • 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