Kỷ niệm 40 năm Turbo Pascal
(blog.marcocantu.com)- Turbo Pascal do Borland giới thiệu vào tháng 11 năm 1983 đã chính thức tròn 40 năm vào tháng 11 năm 2023
- Turbo Pascal được đánh giá là sản phẩm đặt nền móng cho Borland và là môi trường phát triển tích hợp (IDE) đầu tiên được sử dụng rộng rãi trong ngành
- Vào thời điểm đó, sản phẩm để lại ấn tượng mạnh về trải nghiệm phát triển và mức độ hoàn thiện, đồng thời đạt được thành công thương mại lớn
- Embarcadero vẫn đang tiếp tục phát triển dòng trình biên dịch kế nhiệm, và trình biên dịch dòng lệnh Win32 của Delphi 12 Athens dùng phiên bản 36.0
- Vì hệ thống đánh số phiên bản hiện tại nối tiếp từ Turbo Pascal đầu tiên, cột mốc 40 năm lần này cũng gắn trực tiếp với lịch sử của dòng Delphi
Turbo Pascal khởi đầu vào tháng 11 năm 1983
- Turbo Pascal là sản phẩm do Borland phát hành vào tháng 11 năm 1983
- Tính đến tháng 11 năm 2023, sản phẩm này chính thức tròn 40 năm
Vị trí trong lịch sử Borland và IDE
- Turbo Pascal được xem là một cột mốc của ngành
- Đây là sản phẩm đã khai sinh công ty Borland
- Nó được nhắc đến như IDE đầu tiên được biết đến rộng rãi
- Theo tiêu chuẩn thời đó, đây là một sản phẩm xuất sắc và quy mô thành công cũng rất lớn
Tài liệu đọc thêm và bối cảnh của Pascal
- Có thể đọc thêm về Turbo Pascal tại bài blog gần đây của David I và Wikipedia
- Các tài liệu liên quan đến Pascal cũng được giới thiệu kèm theo, gồm bài blog về 50 năm Pascal và bài phát biểu tại Pascal World Congress đầu tiên ở Salamanca
Dòng trình biên dịch kế nhiệm tiếp nối tại Embarcadero
- Embarcadero vẫn đang tiếp tục phát triển dòng trình biên dịch kế nhiệm của Turbo Pascal
- Gần đây hãng đã phát hành phiên bản 36 của trình biên dịch này
- Trình biên dịch dòng lệnh của Delphi 12 Athens hiển thị phiên bản là
Embarcadero Delphi for Win32 compiler version 36.0 - Số phiên bản 36 này thuộc hệ thống đánh số có thể truy ngược về Turbo Pascal đầu tiên
Easter Egg kỷ niệm 40 năm
- Embarcadero đã dành Easter Egg trong sản phẩm để kỷ niệm 40 năm lần này nhân dịp ngày kỷ niệm của Turbo Pascal
- Thông điệp kết lại là “Happy 40th birthday, Turbo Pascal!”
1 bình luận
Ý kiến trên Hacker News
Một trong những trò chơi máy tính tôi yêu thích là ZZT, được viết bằng Turbo Pascal. Đó là một trò chơi chế độ văn bản kỳ lạ do Tim Sweeney của Epic Megagames tạo ra, kết hợp giữa giải đố và bắn súng, và ngay cả bản shareware miễn phí cũng có kèm trình chỉnh sửa trò chơi, thậm chí còn bao gồm cả một ngôn ngữ lập trình nhỏ tên là ZZT-OOP
Mã nguồn gốc của ZZT đã bị thất lạc, nhưng vài năm sau Adrian Siekierka đã kiên trì dịch ngược mã Pascal gốc để khi biên dịch bằng đúng phiên bản Turbo Pascal ban đầu thì tạo ra tệp thực thi giống hệt từng byte. Thật đáng kinh ngạc
https://blog.asie.pl/2020/08/reconstructing-zzt/
https://news.ycombinator.com/item?id=22609474
https://benhoyt.com/writings/zzt-in-go/
Turbo Pascal là thứ đã đưa tôi vào con đường lập trình. Tôi còn nhớ đã bỏ ra hàng trăm mark Đức cho giấy phép Borland Pascal 7.0, rồi sau đó là Delphi 1.0 và 2.0, và cuối cùng còn làm ra phần mềm “thương mại” đầu tiên mà mình bán lấy tiền
Ở thời DOS, ngoài Basic ra thì có lẽ Turbo Pascal là con đường dễ nhất để bước vào lập trình, còn trên Windows 3.1/95 thì Delphi là một công cụ mở mang tầm mắt khi cho thấy lập trình GUI có thể dễ đến thế nào
Xét trên nhiều phương diện, có cảm giác chúng ta thậm chí còn thụt lùi so với thời đó. Trình biên dịch Turbo Pascal / Delphi có thể tạo ra các chương trình GUI hoàn chỉnh dưới dạng những tệp nhị phân nhỏ gọn, nên tôi tự hỏi vì sao phần mềm ngày nay với hiệu năng tương tự lại phình to thêm đến vài bậc độ lớn như vậy
Nếu nguyên nhân chỉ là lỗi gõ sai thì sửa xong, biên dịch lại và chạy chỉ mất 1 giây. Các công cụ ngày nay thường theo một triết lý khác, buộc lập trình viên phải thực hiện thêm những thao tác không cần thiết
Ngoại lệ là SAP, bằng cách nào đó dường như đã thành công trong việc kết hợp tính thù địch với người dùng của UI thập niên 90 với mức tiêu tốn tài nguyên của phần mềm hiện đại. Ngôn ngữ tôi dùng sau BASIC cũng chính là Turbo Pascal
Điều đáng nhớ nhất ở TP là mỗi hàm đều có ví dụ mã đơn giản, dễ hiểu, được sắp xếp logic nên rất dễ tìm và sử dụng. Vì thế dù khi đó chỉ là một thiếu niên mới hiểu BASIC ở mức sơ sơ, tôi vẫn có thể tự học Turbo Pascal chỉ với IDE, không cần Internet
Nhiều hệ thống ngày nay thậm chí còn chẳng có được thứ gì gần như vậy. Tôi tự hỏi đó là nhờ đặc tính đơn giản của hệ thống x86 DOS thời ấy, hay vì tốc độ thay đổi quá nhanh, yêu cầu đa nền tảng và độ phức tạp hiện đại đã khiến việc tạo ra thứ như vậy trở nên bất khả thi
Tôi muốn nói thêm rằng vào thời đó, Processing gần như là framework lập trình sáng tạo duy nhất có tài liệu offline hoàn chỉnh. Ví dụ, OpenFrameworks đến giờ phần lớn vẫn gần như chỉ là bộ tài liệu rỗng được tạo tự động
Theo tôi, đây là một trong những yếu tố giúp Processing vượt trội hơn các lựa chọn khác trong môi trường giáo dục. Khá đáng tiếc là p5.js không hoàn toàn kế thừa truyền thống đó: muốn đọc tài liệu thì phải lên mạng, và nó cũng không còn là website tĩnh mà là kiểu khi mở ra, văn bản được render bằng JavaScript. Dù vậy, bản thân tài liệu vẫn đầy đủ, kể cả ví dụ
https://processing.org/
https://p5js.org/
Khi đó còn vài năm nữa tôi mới biết đến Internet ở trường đại học, nên chẳng có cách nào dễ dàng để tiếp cận tài liệu học tập. Trước đó tôi đã vài lần cố học C mà không thành công, nhưng sau khi học TP, tôi mới có thể chuyển những gì học được từ Pascal sang C, và lúc ấy cũng nhờ thêm một sản phẩm Borland tuyệt vời khác là C++ Builder
Turbo Pascal là ngôn ngữ lập trình “thật sự” đầu tiên tôi học, sau 6809E assembly, các biến thể BASIC có cấu trúc và batch/shell vào cuối thập niên 80. Khi vào khoa khoa học máy tính đầu thập niên 90, các lớp năm nhất vẫn dạy bằng Borland Pascal, nên kinh nghiệm đó khá hữu ích
Vài năm sau, nhờ nền tảng Pascal, tôi làm phát triển ứng dụng tùy chỉnh bằng Delphi khoảng 5 năm, rồi tiếp tục sang làm kiểm thử Kylix và IDE C++Builder tại Borland. Đó là những ngày tháng đẹp đẽ
Đến giờ tôi vẫn nhớ Delphi. Ngày nay chuyện thiếu plugin cho IDE bị xem như một khuyết điểm chí mạng là điều quá đỗi hiển nhiên, nhưng thời đó, ý tưởng về một thư viện component và môi trường lập trình có thể dễ dàng mở rộng bằng chính ngôn ngữ của nó giống như phép màu thuần túy. Việc mày mò với VCL và chính IDE thực sự rất vui
Thật tiếc khi Borland theo đuổi thị trường enterprise, bỏ lại các lập trình viên grassroots phía sau và về cơ bản đã giết chết đà tăng trưởng trong việc được cộng đồng đón nhận. Ít nhất cho đến khoảng Delphi 7, đó thật sự là một hệ sinh thái tuyệt vời
Lần đầu tôi biết đến TP là mùa đông năm 1993, lúc 14 tuổi, khi sao chép lậu nó từ một BBS warez. Cảm giác về sức mạnh nguyên sơ khi tự tay biên dịch ra EXE, thay vì chỉ chạy file .BAS, thật sự mê hoặc
Tôi bắt đầu chỉnh sửa Renegade BBS và viết các chương trình door, thậm chí còn thử làm sâu, trojan và virus dù đều thất bại. Trải nghiệm đó đã thay đổi cuộc đời tôi và tạo nên con đường dẫn tôi đến ngành công nghệ hiện nay. Với lại, tính nổi loạn thời thiếu niên của tôi giờ cũng đã sửa rồi. Tôi mang ơn Borland rất nhiều
Vài năm sau, khi 16 tuổi, tôi viết một ứng dụng nhỏ để quản lý khách hàng cho cha mình và thực sự được trả tiền, rồi dùng một phần số tiền đó để mua bản TP6 hợp pháp. Những ngày tháng thật đẹp
Free Pascal vẫn còn một chế độ trông giống IDE TP gốc. Tuy vậy, như chính họ thừa nhận, phần mã này đang dần mục ruỗng và vẫn phụ thuộc rất nhiều vào những đặc điểm kỳ quặc cũ kỹ của nền tảng MS-DOS nguyên bản
Điều đáng tiếc là chưa có một phiên bản tương tự nào có thể dùng như trình soạn thảo thông thường trong terminal kiểu neovim hay emacs, đồng thời tích hợp với các tính năng hướng IDE hiện đại như LSP, parser tree-sitter, hay Debug Adapter Protocol. Khi chỉnh sửa mã từ xa qua kết nối SSH/terminal, điều đó có thể thay đổi cuộc chơi
Khó mà nói quá về việc Turbo Pascal nhanh hơn sản phẩm cạnh tranh đến mức nào. Nó nhanh đến mức khiến người ta tưởng như có dùng mánh khóe gì đó, và chương trình được tạo ra cũng chạy nhanh hơn
Với thời đó, đây đúng là một kiệt tác, và mọi lời khen mà nó nhận được đều hoàn toàn xứng đáng
Từ đó tôi học được rằng một trình biên dịch đã trưởng thành sẽ tốt hơn trình biên dịch bản phát hành 1.0
Tôi nhớ vài năm trước đã build một phiên bản FPC dòng 2.0 trên máy Windows có 512MB RAM, và còn chưa mất đến 5 phút
https://www.tmssoftware.com/site/blogold.asp?post=759
Hồi nhỏ, một chủ cửa hàng máy tính tốt bụng đã bán cho tôi một máy tương thích PC một phần chạy MS-DOS 1.25 với điều kiện rất tốt. Cái giá cỡ như cắt cỏ cả trăm lần và trông trẻ vậy
Ông ấy bán cho tôi bản Turbo Pascal dành cho MS-DOS thông thường, tức bản không giả định có PC BIOS, trên đĩa mềm 8 inch, rồi chép sang định dạng 5.25 inch 160KB mà chiếc máy tương thích một phần của tôi dùng. Tôi mong rằng hồi đó mình đã biết ơn đủ nhiều như bây giờ cảm thấy, vì chính điều đó đã khởi đầu sự nghiệp của tôi
Đầu thập niên 80, tôi dùng Apple Pascal trên Apple ][+ và //e, tức môi trường dựa trên UCSC p-system Pascal, rồi chuyển sang Turbo Pascal trên DOS. Turbo Pascal thực sự rất phấn khích: trình biên dịch cực nhanh, phản hồi tốt, trình soạn thảo có màu, và các phím tắt WordStar mà tôi đã quen khiến trải nghiệm rất tuyệt
Tôi cũng nhớ là chương trình từng lớn đến mức phải dùng tính năng overlay. Đó là tính năng cho phép về cơ bản nạp các phần khác nhau của chương trình như các trang trong DOS
Tôi còn nhớ đã gặp David Intersimone, đại sứ tuyệt vời của Borland, vào một thời điểm nào đó trong thập niên 80, có lẽ là nửa sau. Khi đó ông đến theo lời mời của chi hội ACM địa phương ở trường đại học của chúng tôi
Kỳ lạ là Turbo Pascal lại là ngôn ngữ lập trình bậc cao đầu tiên tôi học, và môi trường đó là Macintosh Plus. Mãi sau này tôi mới nhận ra Turbo Pascal gần với thế giới PC hơn
Thời đại học, tôi dùng tiền vay học để mua chiếc máy Apple đầu tiên của mình là Macintosh Plus, rồi tình cờ thấy một bản Turbo Pascal cho Mac trong mục rao vặt của báo trường. Một giáo sư đang bán nó với giá khoảng 40 đô la, nên tôi mua ngay
May là có manual, nhưng các công cụ phát triển cho Macintosh cực kỳ sơ sài. Không có ResEdit; thay vào đó có một ứng dụng R-Maker kỳ quặc yêu cầu bạn tạo tài nguyên Macintosh bằng file văn bản rồi đưa qua công cụ để tạo resource fork
Vài ứng dụng đầu tiên tôi làm là hiện thực các thuật toán từ chuyên mục Computer Recreations của Scientific American bằng Turbo Pascal. May mắn là hầu như không cần UI, nên thường chỉ cần một cửa sổ và vài nút bấm
Sau đó tôi biết đến THINK Pascal, một IDE mang tính Mac hơn rất nhiều, và chuyển sang đó; rồi sau nữa lại nhảy sang THINK C
Dù vậy, Turbo Pascal sẽ mãi là một ký ức đầy trìu mến với tôi. Trong thời kỳ còn thô ráp khi bước vào một thế giới mới, Turbo Pascal chính là thứ đã mở cánh cửa ấy cho tôi