08/10/2026 · VietTechies · Biên tập

Đầu thập niên 1970, Alan Kay không cố tạo ra một chiếc terminal văn phòng tốt hơn. Ông hình dung một chiếc máy tính mà trẻ em có thể mang theo, khám phá và tự lập trình — một “phương tiện động mang tính cá nhân”, thay vì chỉ là cỗ máy chạy phần mềm đã hoàn thiện. Ý tưởng đó dẫn tới khái niệm Dynabook và góp phần định hướng công việc của Learning Research Group tại Xerox PARC.
Điểm đáng chú ý là ngôn ngữ lập trình không phải đích đến cuối cùng. Smalltalk chỉ là hạ tầng cho một cược lớn hơn nhiều về việc máy tính cá nhân nên được trải nghiệm như thế nào.
Máy tính như một phương tiện
Nền tảng của Kay trải rộng từ toán học, sinh học, âm nhạc, đồ họa tới khoa học máy tính. Khi đến Xerox PARC, ông nhìn máy tính không chỉ như thiết bị tính toán mà như một loại phương tiện người dùng có thể tự định hình lại. Đề xuất Dynabook năm 1972 mô tả một máy tính cá nhân di động dành cho học tập và sáng tạo. Phần cứng thời đó chưa thể tạo ra thiết bị mỏng, rẻ và nhẹ như ông tưởng tượng, nhưng các workstation Alto ở PARC đã cho nhóm một nơi để thử nhiều ý tưởng bằng phần mềm.
Với Kay, một máy tính không trở nên “cá nhân” chỉ vì nó thuộc sở hữu của một người. Người dùng phải có khả năng thay đổi cách máy hoạt động. Yêu cầu đó đẩy nhóm tới một môi trường lập trình đủ đơn giản để thử nghiệm tương tác, nhưng cũng đủ mạnh để xây chính môi trường ấy.
Smalltalk được tạo ra để thay đổi một hệ thống đang sống
Các hệ Smalltalk đầu tiên xuất hiện năm 1972 trong Learning Research Group của Kay, với phần triển khai quan trọng do Dan Ingalls thực hiện và đóng góp lớn từ Adele Goldberg, Ted Kaehler, Diana Merry cùng nhiều người khác. Smalltalk kết hợp ngôn ngữ lập trình, môi trường phát triển và giao diện đồ họa. Thay vì xem việc viết phần mềm là chu trình dài gồm sửa mã, biên dịch, liên kết rồi khởi động lại, hệ thống khuyến khích lập trình viên quan sát và sửa đổi một thế giới vẫn đang chạy.
Điều đó quan trọng vì giao diện và ngôn ngữ hỗ trợ lẫn nhau. Cửa sổ, menu, browser, đồ họa và thao tác trực tiếp không phải những demo rời rạc. Chúng là các phần của một môi trường trong đó object phản hồi message và có thể được thay đổi khi hệ thống vẫn hoạt động. Các phiên bản sau, đặc biệt Smalltalk-76 và Smalltalk-80, tiếp tục tinh chỉnh mô hình trở nên nổi tiếng bên ngoài Xerox.
Nhóm đã thực sự thay đổi điều gì
Smalltalk giúp bình thường hóa nhiều ý tưởng mà ngày nay ta coi là quen thuộc. Mã nguồn có thể được khám phá bằng browser. Đối tượng đồ họa có thể thao tác trực tiếp. Lập trình viên có thể đổi hành vi và nhìn thấy kết quả gần như ngay lập tức. Hệ thống thúc đẩy thiết kế hướng đối tượng, nhưng Kay về sau nhấn mạnh rằng điều ông quan tâm nhiều là message và late binding, chứ không đơn thuần là gom dữ liệu và phương thức vào class.
Khác biệt này quan trọng vì “hướng đối tượng” sau đó trở thành một nhãn rất rộng. Ảnh hưởng của Smalltalk không chỉ là công thức xây cây kế thừa class. Nó là nỗ lực làm hệ thống phần mềm dễ uốn hơn bằng cách chia thành những phần giao tiếp với nhau và khiến chính môi trường lập trình cũng có thể được quan sát, kiểm tra và sửa đổi.
Câu chuyện nổi tiếng về PARC lớn hơn một buổi demo
Các bản kể phổ biến thường thu gọn Xerox PARC vào khoảnh khắc kỹ sư Apple nhìn thấy giao diện đồ họa rồi mang ý tưởng về hướng Macintosh. Chuyến thăm đó có ý nghĩa, nhưng lịch sử rộng hơn nhiều. Các nhà nghiên cứu PARC cùng lúc làm màn hình bitmap, cửa sổ, Ethernet, in laser, hệ thống tài liệu và máy tính cá nhân nối mạng. Smalltalk nằm trong hệ sinh thái ấy. Bài học thú vị không phải “một công ty phát minh tương lai rồi công ty khác sao chép”, mà là một môi trường nghiên cứu có thể khiến nhiều công nghệ hỗ trợ lẫn nhau cho tới khi một cách dùng máy tính hoàn toàn mới trở nên rõ ràng.
Nhóm của Kay cũng xem trẻ em là người dùng nghiêm túc. Nếu trẻ em được kỳ vọng sáng tạo với máy tính thay vì chỉ tiêu thụ nội dung, hệ thống cần một dạng dễ tiếp cận khác — không chỉ nút bấm dễ hơn, mà là các khối cấu tạo đủ dễ hiểu để tự tạo ra thứ mới.
Ảnh hưởng không đi theo một đường thẳng
Smalltalk không trở thành ngôn ngữ thống trị máy tính cá nhân. Tuy vậy, nhiều hệ thống về sau vay mượn hoặc diễn giải lại các ý tưởng của nó: công cụ phát triển đồ họa, ngôn ngữ hướng đối tượng, IDE, mô hình Model-View-Controller, khả năng inspect trực tiếp và lập trình tương tác. Computer History Museum mô tả Smalltalk như sự kết hợp giữa ngôn ngữ, môi trường và GUI đã góp phần định hình máy tính cá nhân hiện đại. Năm 2003, ACM trao cho Kay A.M. Turing Award vì các ý tưởng tiên phong ở nền tảng của lập trình hướng đối tượng hiện đại, vì dẫn dắt nhóm phát triển Smalltalk và vì những đóng góp nền tảng cho máy tính cá nhân.
Sự ghi nhận đó không nên biến câu chuyện thành việc tôn thờ một cá nhân. Kay làm việc trong một mạng lưới nhà nghiên cứu, và lịch sử triển khai Smalltalk không thể tách khỏi Ingalls, Goldberg, Kaehler, Merry cùng nhiều người khác. Mẫu hình hữu ích nằm ở tổ chức: một tầm nhìn mạnh là quan trọng, nhưng cũng cần một đội có khả năng biến abstraction thành hệ thống người thật có thể dùng và thử.
Mô hình tư duy đáng giữ lại
Ý tưởng lâu dài của Kay là máy tính nên tiếp tục mở cho người dùng sửa đổi. Phần mềm hiện đại thường đi theo hướng ngược lại: bóng bẩy hơn, an toàn hơn, tiện hơn và ngày càng khó nhìn vào bên trong. Có những lý do chính đáng cho sự thay đổi ấy, đặc biệt khi phần mềm phục vụ quy mô toàn cầu. Nhưng câu chuyện Smalltalk vẫn giữ lại một câu hỏi quan trọng cho người xây phần mềm.
Khi chúng ta đơn giản hóa một sản phẩm, ta đang làm cho sự phức tạp trở nên dễ hiểu hơn, hay chỉ giấu nó đi? Một máy tính cá nhân có thể dễ dùng vì người dùng không bao giờ thấy cơ chế bên trong. Phiên bản tham vọng hơn của Kay thì khác: làm cho cơ chế ấy đủ dễ tiếp cận để người dùng có thể học cách thay đổi nó.
Đọc bằng ngôn ngữ khác: English · Español · Deutsch · Français · Português (Brasil) · Tiếng Việt
