Emacs tròn 50 tuổi: Trình soạn thảo đã định hình cả nền công nghiệp phần mềm

Công nghệ28 tháng 10, 2026·5 phút đọc

Ra đời năm 1976 tại Phòng thí nghiệm AI của MIT, Emacs đã trải qua nửa thế kỷ phát triển và vẫn được hàng triệu lập trình viên sử dụng. Ít ai biết rằng chính cộng đồng chia sẻ phần mềm quanh Emacs đã góp phần khai sinh phong trào phần mềm tự do và hệ điều hành GNU/Linux ngày nay.

Emacs tròn 50 tuổi: Trình soạn thảo đã định hình cả nền công nghiệp phần mềm

Lập trình ngày nay khác xa những ngày đầu của ngành máy tính. Những lập trình viên đầu tiên thậm chí không viết mã theo nghĩa chúng ta hiểu, mà cấu hình trực tiếp các công tắc, dây cáp và bảng cắm trên cỗ máy ENIAC tại Đại học Pennsylvania năm 1946. Phải đến khi các kỹ sư MIT lập trình cho Whirlwind bằng băng giấy đục lỗ, khái niệm "chương trình được lưu trữ" mới thực sự hình thành.

Trình soạn thảo Emacs qua các thời kỳTrình soạn thảo Emacs qua các thời kỳ

Đến đầu thập niên 1960, lập trình viên đã có thể dùng "trình soạn thảo theo dòng" trên máy teletype — gõ từng dòng mã và lưu vào ổ đĩa cứng to như chiếc máy giặt. Nhưng công cụ cho phép nhìn và sửa nhiều dòng cùng lúc trên màn hình thì vẫn chưa tồn tại. Đó chính là khoảng trống mà EMACS lấp đầy, và năm nay nó tròn 50 tuổi.

Từ TECO đến một chuẩn mực chung

Gốc rễ của EMACS là TECO — viết tắt của "Tape Editor and Corrector" — do Dan Murphy tạo ra năm 1962 cho máy PDP-1 tại MIT. Người dùng gõ "I" để chèn văn bản, "D" để xóa ký tự. Khi băng từ nhường chỗ cho ổ đĩa dùng chung, chữ "T" trong TECO chuyển thành "Text". Dần dần, TECO trở thành một ngôn ngữ đầy đủ để lập trình viên tạo ra các macro tùy biến cho việc soạn thảo.

Năm 1971, Carl Mikkelsen bổ sung Control-R, cho phép hiển thị tức thì các thay đổi trên màn hình video thay vì phải in lại từng dòng. Hạn chế duy nhất là màn hình chỉ hiện được vài dòng mã.

Bước ngoặt đến năm 1976, khi Richard M. Stallman — nhà nghiên cứu tại Phòng thí nghiệm AI của MIT — tận mắt thấy trình soạn thảo toàn màn hình mang tên E tại Đại học Stanford. Trở về MIT, ông cải tiến Control-R với thay đổi then chốt: mỗi phím bấm chạy một macro riêng, giúp việc tùy biến trở nên đơn giản hơn nhiều.

"Mục tiêu của tôi không phải tạo ra một trình soạn thảo văn bản vĩ đại mới. Tôi đang cố giải quyết một vấn đề mang tính xã hội." — Guy Steele Jr., người góp công chuẩn hóa bộ lệnh EMACS

Chính sự bùng nổ các biến thể Control-R khiến Guy Steele phải đứng ra làm trung gian. Cùng với David Moon và Stallman, nhóm đã thống nhất một bộ lệnh chuẩn dựa trên phím Meta có sẵn trên bàn phím của phòng lab: Meta-F tiến tới một từ, Meta-B lùi lại một từ... Kết quả được đặt tên là EMACS, viết tắt của "Editor Macros" hoặc "Editing Macros".

Từ "cộng đồng chia sẻ" đến phong trào phần mềm tự do

Điểm đáng chú ý là EMACS không chỉ giỏi về mặt kỹ thuật. Theo ghi chép của Bernard S. Greenberg, người "chưa từng có kinh nghiệm kỹ thuật" cũng có thể học soạn thư, email hay thậm chí lập trình chỉ trong vòng vài phút đến một giờ, trong khi những người dùng lão luyện lại thấy nó vượt trội hơn mọi công cụ trước đó.

Stallman phân phối EMACS cho bất kỳ ai gửi cho ông một cuộn băng từ kèm phong bì đã dán tem. Trong bản hướng dẫn năm 1981, ông viết:

"EMACS không tốn phí; thay vào đó, bạn đang gia nhập cộng đồng chia sẻ phần mềm EMACS. Điều kiện thành viên là bạn phải gửi lại mọi cải tiến mà mình thực hiện."

Trong khi đó, Greenberg viết phiên bản EMACS riêng cho hệ điều hành Multics của Honeywell và đoạt giải nhất tại Hội nghị Phần mềm Quốc tế Honeywell năm 1980. Honeywell bắt đầu bán sản phẩm này, còn James Gosling — người sau này dẫn dắt việc phát triển ngôn ngữ Java — cũng tạo một phiên bản thương mại.

Chính việc phần mềm chuyển từ miễn phí sang tính phí đã thôi thúc Stallman khởi động Dự án GNU nhằm xây dựng một hệ điều hành tự do, mô phỏng theo Unix của Bell Labs. Ứng dụng lớn đầu tiên của dự án là GNU Emacs. Hệ điều hành GNU/Linux còn nhiều năm nữa mới ra đời, nên GNU Emacs ban đầu chạy trên Unix và sau đó lan rộng sang nhiều nền tảng khác.

Dấu ấn còn lại đến ngày nay

Năm 2001, khi Apple ra mắt Mac OS X dựa trên Unix, GNU Emacs được đóng gói sẵn trong hệ điều hành. Apple ngừng phân phối từ năm 2019, nhưng vẫn duy trì chương trình mg ("Micro GNU Emacs") hỗ trợ phần lớn lệnh EMACS, dù thiếu ngôn ngữ lập trình tích hợp.

Đáng chú ý hơn, nhiều phần của macOS vẫn âm thầm hỗ trợ phím tắt kiểu EMACS: dù bàn phím không có phím Meta, tổ hợp Control-Option-B vẫn lùi một từ và Control-Option-F tiến một từ.

Nửa thế kỷ sau, EMACS vẫn là minh chứng cho một triết lý đơn giản mà bền vững: công cụ tốt nhất không chỉ là công cụ mạnh nhất, mà là công cụ được cộng đồng cùng nhau hoàn thiện và chia sẻ. Với lập trình viên Việt Nam, câu chuyện này cũng là lời nhắc rằng những dự án mã nguồn mở nhỏ bé hôm nay có thể gieo mầm cho cả một hệ sinh thái công nghệ ngày mai.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗