Thomas E. Kurtz, đồng phát minh BASIC, qua đời
(computerhistory.org)- Thomas Eugene Kurtz là nhà toán học và nhà khoa học máy tính người Mỹ, người cùng John Kemeny tạo ra BASIC và Dartmouth Timesharing System; ông sinh ngày 22/2/1928 và qua đời ngày 12/11/2024
- Vào đầu thập niên 1960, lĩnh vực điện toán học thuật thiếu một ngôn ngữ lập trình dành cho người không chuyên mà sinh viên đại học có thể dễ dàng sử dụng, và BASIC được tạo ra để lấp khoảng trống đó
- Kurtz và Kemeny cùng phát triển DTSS để sinh viên có thể truy cập BASIC qua các thiết bị đầu cuối Teletype trong khuôn viên trường; cả hai hệ thống được công bố vào ngày 1/5/1964
- Vào mùa thu năm 1964, hàng trăm sinh viên đã sử dụng BASIC trên 20 thiết bị đầu cuối ở khuôn viên Dartmouth, và sau đó nó lan rộng sang nhiều thế hệ máy tính
- Ảnh hưởng của Kurtz tiếp tục thể hiện qua giáo dục và tổ chức vận hành điện toán tại Dartmouth, việc chuẩn hóa BASIC, việc thành lập True BASIC, và ông được chọn làm ACM Fellow năm 1994
BASIC và Dartmouth Timesharing System
- Thomas Eugene Kurtz, cùng với John Kemeny, đồng phát minh ngôn ngữ lập trình BASIC và Dartmouth Timesharing System(DTSS)
- Trong môi trường điện toán học thuật đầu thập niên 1960, còn thiếu một ngôn ngữ lập trình đơn giản dành cho người không chuyên mà sinh viên đại học có thể sử dụng, và BASIC được tạo ra với nhóm người dùng này trong tâm trí
- Hai người cũng cùng phát triển DTSS để cung cấp BASIC cho sinh viên trong khuôn viên trường
- DTSS là cách chia sẻ quyền truy cập máy tính thông qua mạng
- Cần có nền tảng như vậy để nhiều sinh viên có thể truy cập BASIC
- DTSS trở thành một trong những hệ thống chia sẻ thời gian quy mô lớn thời kỳ đầu thành công
- General Electric, công ty đã tặng máy tính cho Dartmouth, mở rộng DTSS thành kernel cho các dịch vụ trực tuyến như Genie
- DTSS và BASIC được công bố vào ngày 1/5/1964
- Vào mùa thu năm 1964, hàng trăm sinh viên đã sử dụng BASIC trên 20 thiết bị đầu cuối trong khuôn viên trường
Học vấn và trải nghiệm điện toán ban đầu
- Kurtz sinh tại Oak Park, bang Illinois; sau khi tốt nghiệp Knox College năm 1950, ông nhận bằng tiến sĩ toán học tại Princeton University năm 1956
- Năm 1951, ông có cơ hội sử dụng máy tính SWAC tại UCLA
- SWAC là Standards Western Automatic Computer do National Bureau of Standards chế tạo
- Đây là một trong những máy tính điện tử thời kỳ đầu của Mỹ, dưới sự giám sát của Harry Huskey, 2013 CHM Fellow
Sự lan rộng của BASIC và kỷ nguyên máy tính cá nhân
- BASIC tiếp tục được sử dụng qua nhiều thế hệ máy tính
- Mainframe và minicomputer trong thập niên 1960
- Microcomputer trong thập niên 1970–80
- Máy tính Raspberry Pi kích thước bằng thẻ tín dụng ngày nay
- Năm 1978, hai sinh viên Harvard Bill Gates và Paul Allen viết phiên bản BASIC đầu tiên cho microcomputer dành cho người chơi máy tính như sở thích MITS Altair 8800
- BASIC này đã biến Altair, vốn là một chiếc hộp nhấp nháy gần như không có tính năng, thành một máy tính hữu dụng
- Trong kỷ nguyên máy tính cá nhân, mức độ phổ biến của BASIC lại tăng mạnh
Hoạt động giáo dục và tổ chức tại Dartmouth
- Kurtz gắn bó lâu dài với giáo dục và vận hành điện toán tại Dartmouth
- Từ 1966 đến 1975, ông làm director của Kiewit Computation Center
- Từ 1975 đến 1978, ông làm director của Office of Academic Computing
- Năm 1979, cùng Stephen J. Garland, ông tổ chức chương trình thạc sĩ chuyên ngành Computer and Information Systems, với một phần kinh phí được hỗ trợ bởi khoản tài trợ của IBM
- Năm 1983, ông cùng Kemeny và 3 cựu sinh viên Dartmouth thành lập True BASIC, Inc.
- Mục tiêu là phát triển phần mềm giáo dục chất lượng cao và trình biên dịch BASIC độc lập nền tảng
- Sau khi chương trình CIS kết thúc, ông quay lại giảng dạy vào năm 1988 và nghỉ hưu tại Dartmouth năm 1993
Chuẩn hóa BASIC và đóng góp cho điện toán học thuật
- Kurtz tham gia nhiều tổ chức điện toán học thuật và hoạt động chuẩn hóa
- Ông hoạt động với vai trò council chairman và trustee của EDUCOM
- Ông tham gia Pierce Panel của President's Advisory Committee
- Ông tham gia steering committee của 2 hoạt động được NSF và ARPA hỗ trợ
- Ông làm chủ tịch hội nghị CCUC đầu tiên về instructional computing
- Ông cũng đóng vai trò then chốt trong việc chuẩn hóa BASIC
- Ông góp phần hình thành American National Standards committee X3J2, đơn vị tạo ra tiêu chuẩn ANSI cho BASIC, và làm chủ tịch từ 1974 đến 1985
- Ông là thành viên ISO committee SC22/WG8 về tiêu chuẩn quốc tế của BASIC, và làm convener từ 1987 đến 1993
- Năm 1994, ông được chọn làm ACM Fellow
1 bình luận
Các ý kiến trên Hacker News
96 tuổi, ông đã sống một cuộc đời trọn vẹn. RIP
Khoảng năm 1986~1990, hồi 12 tuổi ở Bangalore xưa, tôi dùng QBASIC rất nhiều; khi đó ở Ấn Độ không có Mac hay Unix, Windows, chỉ có MSDOS
Tôi nhét đĩa mềm 5.25 inch vào máy 386, khởi động bằng
command.com, rồi vàoGWBASIC.EXEvà dùng những đoạn mã nhưSOUND 2000+i, jđể phát âm cao tần, làm khổ gia đình và bạn bè; nếu cho vào vòng lặpWHILE WENDthì mọi người náo loạn vì không biết tắt thế nàoMột ngày nọ, đột nhiên MS WINDOWS 3.1 xuất hiện thay cho DOS, phải nhét viên bi trắng vào chuột để nhấp vào biểu tượng; GWBASIC biến mất, còn QBASIC và trò rắn thì xuất hiện
Từ việc vẽ hình trên CGA bằng
SCREEN 2,LINE,CIRCLE, tôi nâng cấp lên VGA, dùng 640x480 củaSCREEN 12và làm cả chương trình có phát âm thanh; nhờ BASIC mà tôi đã có một tuổi thơ tuyệt vờiTừ BASIC tôi đi tiếp sang CLIPPER, FOXPRO, rồi dùng FOXPRO làm hệ thống quản lý kho và nhận được những đồng rupee thật; sau đó qua MFC và Borland C++ cho đến hôm nay, nhưng tất cả đều bắt đầu từ BASIC. Cảm ơn, Dr. Kurtz
Thật thú vị khi nhắc đích danh GWBASIC, vì đó cũng là bản BASIC mà tôi có thể tiếp cận, và ở Mỹ dường như biến thể đó không phổ biến lắm
Tôi cũng học CLIPPER và làm nhiều công cụ cùng ứng dụng nghiệp vụ; thứ này cũng có vẻ lan truyền khá mang tính khu vực
Ngôn ngữ đầu tiên tôi học lập trình là BASIC. Khi thiết kế D, tôi nhớ đến việc xử lý chuỗi trong BASIC dễ dàng và tự nhiên đến mức nào, còn xử lý chuỗi trong C thì là một đầm lầy đầy lỗi ra sao
Việc làm cho chuỗi trong D trở nên dễ dùng và đúng đắn là một ưu tiên lớn, và như lịch sử cho thấy, tôi nghĩ điều đó đã thành công
Khi review mã C, trước tiên tôi nhìn vào phần xử lý chuỗi, vì khả năng tìm thấy lỗi ở đó gần như chắc chắn. Với những ai phản đối, xin hỏi: không tra cứu, bạn có thể nói
strncpy()xử lý kết thúc bằng 0 như thế nào không?Cảm ơn, Thomas Kurtz
Qua điện thoại, ừm, hình như tôi đã hỏi về C; ông trả lời lịch sự, nhưng tôi có cảm giác như ông đang nghiến răng
Cuối cùng tôi chọn C, và hệ điều hành đó đã được đưa vào thứ này: https://www.youtube.com/watch?v=u8ZEUwwOYxo&t=72s
Đến giờ nghĩ lại cuộc gọi đó tôi vẫn rùng mình
Có lẽ hàng chục nghìn người đã cùng lúc tự gõ lại những trang đó, và chắc cũng có những người mừng vì đã học lớp đánh máy ở trung học
Rồi nó trở thành “mình muốn thử cái này”, và nếu thành công hoặc đi tìm một bản BASIC mạnh hơn, người ta sẽ lần tới
PEEK,POKE, thậm chí cả assembler. Thật sự rất hào hứng, và đem lại cảm giác mình có thể tự làm được điều gì đó rất lớnCảm ơn, Thomas Kurtz
strncpy()sao chép tối đanbyte và nếu trong đó có byte null thì sẽ bao gồm nó, nhưng nếu byte thứnkhông phải null thì nó không thêm nullVì vậy phải tự đặt byte cuối thành 0, dù là cấp phát
n+1byte hay cắt ở byte thứnDi sản của BASIC thật lớn lao. Hồi nhỏ tôi may mắn được dùng Atari 800XL, và vì phần cứng có BASIC ROM nên tôi đã học BASIC
Nó dễ đến mức một đứa trẻ hoàn toàn không có ai xung quanh biết về máy tính cũng có thể học chỉ bằng các chương trình ví dụ ở cuối sách hướng dẫn
Tôi chưa từng gặp trực tiếp Kurtz, nhưng tôi mang ơn ngôn ngữ đó rất nhiều vì nó đã cho tôi tiếp cận gần như vô hạn khả năng sáng tạo mà máy tính và lập trình mang lại
Nó không phải ngôn ngữ tốt nhất cho các công việc quy mô lớn, phức tạp, nhưng đủ để một đứa trẻ làm game phiêu lưu văn bản và vẽ pixel lên màn hình. Khoảng 10 năm sau tôi mới biết
INTkhông phải là số nguyên mà là interruptViệc hồi thiếu niên tôi chơi đùa với TI-BASIC, làm các game máy tính bỏ túi cho lớp học, cũng có ảnh hưởng tốt đến quá trình trưởng thành thành lập trình viên của tôi, và đó là ví dụ đầu tiên về trải nghiệm “giống mà khác” thường gặp trong lập trình. May mắn là nó còn dẫn tôi tới sự nghiệp ban đầu trong phát triển game
Trước hôm qua có lẽ tôi chưa nhận ra cái tên Thomas E. Kurtz, nhưng chỉ cần nghe đến BASIC là hàng chục ký ức đẹp ùa về. Tôi vẫn còn giữ chiếc Atari 800XL thời thơ ấu, và từ nay mỗi lần nhìn nó chắc tôi sẽ nhớ đến ông
Nếu nhớ không nhầm thì tôi đã viết dòng BASIC đầu tiên vào năm 1976
Khi đó tôi 15 tuổi, đi cùng cha đến một hội chợ thương mại, và ở gian hàng IBM có người mời tôi thử chơi trò hạ cánh lên Mặt Trăng. Đó là IBM 5100
Tôi hỏi cha những chữ cuộn lên phía trên màn hình rồi biến mất thì sẽ ra sao, và cha tôi, người hoàn toàn không quan tâm đến kỹ thuật, đã nhờ một kỹ sư IBM giải thích. Lúc đó tôi biết đây chính là con đường của mình, và ngay tại đó tôi đã lần đầu viết vài dòng BASIC
Năm sau, ở gian hàng Hewlett Packard, tôi thấy một chiếc máy có vẻ là HP-9825A đang dùng plotter vẽ các hình Lissajous và mê mẩn nhìn nó
Năm kế tiếp, tôi làm việc trong mọi kỳ nghỉ để mua HP-25, rồi năm sau nữa thì có được TRS-80 Model 1 Level II và bắt đầu lập trình bằng BASIC
Hồi đó tôi chẳng biết nhiều, đến mức còn tưởng rằng nếu mua Editor/Assembler thì độ phân giải màn hình sẽ tăng lên
Sau đó tôi dùng Megamax C và GFA BASIC trên Atari ST, rồi trải qua nhiều ngôn ngữ khác nhau trên PC
Điều luôn khiến tôi kinh ngạc là có những người chỉ trong vài ngày, vài tuần, vài tháng đã tạo ra những ngôn ngữ mà hàng triệu người dùng cả đời. Đó là sức ảnh hưởng khổng lồ
Thưa thầy Kurtz, có thể thầy không tạo ra ngôn ngữ hay nhất, nhưng thứ thầy tạo ra đã mang lại niềm vui và cảm hứng cho cả một thế hệ lập trình viên trẻ. Ngày nay niềm vui đó có vẻ hơi phai nhạt, dù có lẽ nếu lập trình bằng Rust thì là ngoại lệ
Đó là hệ thống dùng màn hình plasma, có 1000 terminal, có mạng xã hội, airfight — tiền thân của Microsoft Flight Simulator, và pedit5/dnd — trò chơi dungeon đầu tiên
Tôi cắt cỏ và rất muốn mua một chiếc máy tính của riêng mình, như máy tính HP-25 hoặc SR-52, hoặc IMSAI 8080
Sau này tôi còn làm cho PLATO mô phỏng trò chơi bóng bầu dục bỏ túi, và viết chương trình BASIC bằng một interpreter đồ chơi, nhưng khi phiên làm việc kết thúc thì không có cách nào lưu chương trình
Năm 2010, tôi đã phỏng vấn Thomas Kurtz tại nhà ông cho luận án tiến sĩ về tầm nhìn computer utility trong thập niên 60–70
Tầm nhìn đó hình dung một thế giới nơi các tiện ích máy tính lớn cung cấp dịch vụ điện tử giống như AT&T hay các công ty điện lực
Khi ấy ông đã nghỉ hưu từ lâu nhưng vẫn sống trên những ngọn đồi ở New Hampshire gần Dartmouth; hiện tôi không tìm được ghi chú phỏng vấn, nhưng vẫn nhớ ông rất tử tế và hiếu khách
Những gì ông và John Kemeny làm ở Dartmouth thật sự đáng kinh ngạc. Với họ, công nghệ — tức time-sharing và BASIC — là phương tiện để giáo dục và trao quyền cho sinh viên, và cuối cùng là củng cố toàn xã hội
Cảm ơn vì đã chia sẻ. Tôi rất mong được đọc nó
Tom Kurtz, John Kemeny và BASIC cũng đã thay đổi cuộc đời tôi
Tôi viết chương trình BASIC đầu tiên vào năm 1970, và từ năm sau đó, khi học trung học, tôi đã dành hàng giờ lập trình BASIC trước chiếc Model 33 Teletype trong phòng máy của trường, thông qua hệ thống time-sharing HP-2000 của học khu
Cuối cùng tôi quyết định vào Dartmouth vì triết lý về máy tính dành cho sinh viên đại học ở đó
Thời ấy, được tiếp cận máy tính dưới bất kỳ hình thức nào cũng là chuyện lớn, và khả năng lập trình là một năng lực khiến bạn khác biệt rõ rệt so với bạn bè đồng trang lứa khi nộp hồ sơ cao học hoặc xin việc
Vì vậy tôi có cảm giác mình đã tiếp tục cưỡi trên làn sóng đầu thập niên 1970 ấy cho đến tận bây giờ, dù số người trẻ thành thạo đã bùng nổ
Đó là một giai đoạn vừa kỳ diệu vừa ngắn ngủi. Nếu bây giờ 13 tuổi, tôi không chắc công nghệ tương tự nào có thể dễ dàng đẩy một người tiến lên như thế
Chương trình đầu tiên của tôi là:
10 LET N=5^2.5,20 PRINT N,30 ENDKết quả, một giá trị hơi lớn hơn 55, giống như một sự khai sáng. Khi đó tôi chưa biết logarit nên ý nghĩa của số mũ phân số hoàn toàn là điều bí ẩn, và tôi phải hỏi giáo viên toán ý nghĩa của đáp án đó
Tôi nhập “5 to the power of 2.5”, bấm vài lần, và nhận được kết quả như thế này, với ‘math solver’ hiện trong ô tìm kiếm: https://www.google.com/search?q=5%5E(2.5)
Có cả nút hiển thị các bước giải, còn câu trả lời trên Quora thì đưa ra hai cách giải dùng quy tắc lũy thừa
Hay thật. Giờ tôi phải ôn lại toán phổ thông rồi
Liệu chúng ta có thể treo thanh tưởng niệm màu đen cho Dr. Kurtz không?
Di sản của BASIC trong ngành chúng ta có nhấn mạnh bao nhiêu cũng không đủ. Ngôn ngữ đó và sứ mệnh của nó ở Dartmouth khi ấy thật sự mang tính cách mạng
Đặc biệt, chỉ riêng việc nó là ngôn ngữ lập trình đầu tiên mà vô số người dùng máy tính mới tiếp xúc vào buổi bình minh của máy tính cá nhân đã tạo ra những hiệu ứng thứ cấp không thể đo đếm
Tôi hơi sa vào hoài niệm rồi, nhưng đây là tài liệu tham khảo Dartmouth BASIC bản 1964: http://web.archive.org/web/20120716185629/http://www.bitsave...
Nó thật sự rất cuốn hút và cho ta cảm nhận được chút không khí thời đó
Tôi đặc biệt thích câu “TYPING IS NO SUBSTITUTE FOR THINKING” ở trang 21
BASIC là lối vào dễ dàng để bước vào lập trình, và đã khiến vô số người, bao gồm cả những đứa trẻ thập niên 70–80 như tôi, say mê điện toán. Ông đã góp phần tạo ra tương lai chẳng kém bất kỳ ai
Vì không có ổ đĩa để lưu, tôi dán nhãn lên dây cáp và cầu mong không ai rút điện
Vài năm sau, trong thời kỳ bùng nổ dot-com, khi còn là sinh viên năm nhất đại học, tôi có công việc đầu tiên dùng VB, và điều đó đúng nghĩa đã thay đổi cuộc đời tôi, đưa tôi lên con đường có điều kiện sống tốt hơn bố mẹ
Vì vậy mới có những câu như
F0R X=1 T0 1OONăm 1964 thật sự viết ngược như vậy sao?
Nếu ý là di sản của BASIC rất to lớn, thì nói rằng dù có nói thế nào cũng khó mà phóng đại được mới đúng
Còn “couldn't be understated” thì lại có nghĩa là dù có nói nó tầm thường đến mức nào thì điều đó vẫn đúng. Chắc đó không phải ý bạn
Vì vậy bình luận của emptiestplace cũng không đáng bị downvote đến mức đó
Như nhiều lập trình viên thuộc thế hệ tôi, ngôn ngữ đầu tiên tôi học là BASIC
Trong thập niên 80–90, BASIC thật sự có mặt ở khắp nơi, và gần như mọi máy tính đều đi kèm một dạng BASIC nào đó
Ngay cả sách giáo khoa toán lớp 6 của tôi cũng có phụ lục gồm các trò chơi toán học giáo dục dưới dạng danh sách mã nguồn BASIC
Vĩnh biệt, và cảm ơn vì tất cả những con cá, Dr. Kurtz
Nhớ ngay được là BASIC, BASICA, QBASIC, nhưng giờ tôi không còn nhớ khác biệt giữa các biến thể nữa
Tôi biết đó là một câu nói và cũng đã đọc qua, nhưng muốn nghe con người giải thích hơn là Google
Tôi cũng bắt đầu lập trình bằng BASIC
Lần đầu là trên Apple ][ ở trường, rồi sau đó ở nhà tôi có một chiếc Vic-20
Khá nhiều game xịn hơn trên Vic-20 được nhập bằng cách chép nguyên một lượng dữ liệu số nguyên khổng lồ từ tạp chí, nên cũng không mang tính giáo dục lắm
Sau đó tôi được dùng một hệ thống HP có Rocky Mountain BASIC, đó là một hệ thống khá tuyệt
Vài năm sau, tôi có công việc chuyên nghiệp đầu tiên với vai trò tester trong dự án port RM BASIC sang HP/UX, và khoảng 5 năm sau lại quay về RMB khi xây dựng một hệ thống quản lý kiểm thử sản xuất tên là Functional Test Manager
Mấy hôm trước tôi còn ăn trưa với một người từng làm việc cùng thời đó. Viết đến đây mới nhận ra BASIC là một phần cốt lõi trong sự nghiệp của mình. RIP Thomas
Điều thú vị là một trong những lý do Pascal bị chế giễu là vì các hạn chế của hệ thống ban đầu và sự không tương thích giữa các bản triển khai được đưa ra thị trường
Trong khi đó, có thể xem BASIC là trụ cột của ngành minicomputer và microcomputer trong suốt 20 năm, dù các bản triển khai và tính năng của nó thì cực kỳ khác nhau
Những BASIC tôi từng dùng hầu như không tương thích với nhau, ngoại trừ các phần cơ bản như biểu thức và kiểu dữ liệu cốt lõi; mà ngay cả những phần cơ bản đó thì xử lý chuỗi cũng mỗi nơi một kiểu
Thực tế cũng chẳng có phần mềm lớn nào được viết bằng phiên bản Pascal gốc
Pascal được thiết kế như một ngôn ngữ biên dịch có khả năng viết các hệ thống quy mô lớn, nhưng ở khía cạnh đó nó có những hạn chế nghiêm trọng
BASIC là ngôn ngữ giáo dục, và dù người ta đã đẩy nó đi xa để xây dựng các hệ thống thực tế, ai cũng biết nó vẫn là một ngôn ngữ giáo dục đã phát triển quá mức
Nó cũng được dùng cho công việc nghiêm túc, nhưng vẫn là một ngôn ngữ “đồ chơi”, và không ai kỳ vọng các chương trình nghiêm túc viết bằng BASIC sẽ có tính di động
Pascal cũng bắt đầu là ngôn ngữ giáo dục nhưng được nhìn nhận như một ngôn ngữ “nghiêm túc” hơn nhiều, và thực tế có cấu trúc điều khiển tốt hơn BASIC rất nhiều
Nhưng nó không đạt được chuẩn mực do các kỳ vọng đó đặt ra, vì những lý do đã nói ở trên
Cùng một ứng dụng viết bằng BASIC có thể viết bằng Pascal không? Gần như chắc chắn. Làm vậy có tốt hơn không? Chắc chắn
Có lẽ khác biệt là BASIC dễ tiếp cận hơn. Một đứa trẻ 10 tuổi cũng có thể mày mò, còn Pascal thì gần với thứ sinh viên đại học mày mò hơn
Vì thế Pascal gánh kỳ vọng cao hơn, và những hạn chế cùng loại cũng bị xem là phá vỡ kỳ vọng lớn hơn