20 phát minh vĩ đại nhất trong lập trình máy tính
Trong một trong những cuộc trò chuyện tôi đã có với biên tập viên cao cấp của chúng tôi, tôi đã được hỏi câu hỏi, “Các lập trình viên đầu tiên đã lập trình như thế nào?” Điều này dẫn đến một cuộc thảo luận về Babbage và Ada Lovelace, cuối cùng, tôi được phân công nghiên cứu làm sao nó tất cả bắt đầu - nó là lần đầu tiên trong lịch sử điện toán.
Tôi tìm hiểu các cuốn sách và trang web và đã gặp nhiều tiết lộ: Babbage không phải là kỹ thuật người phát minh của máy tính, FORTRAN chắc chắn không phải là ngôn ngữ lập trình cấp cao đầu tiên và chúng tôi thường sử dụng bút stylus cho màn hình CRT (thực sự).
Tôi cũng ngạc nhiên khi tìm hiểu làm thế nào các cuộc chiến thiết yếu đã thúc đẩy sự phát triển nhanh chóng của máy tính, cộng với sự đóng góp của nhiều phụ nữ mà sách giáo khoa của chúng tôi đã chọn bỏ qua. Do đó, để lấp đầy những khoảng trống trong lịch sử máy tính và chương trình, tôi đã kết hợp 20 lần đầu tiên trong thế giới điện toán, từ bóng bowling đến WW2 và tất cả những gì ở giữa.
1. Máy tính đầu tiên: “Động cơ khác biệt” (1821)
Các “Động cơ khác biệt” là một máy tính cơ học được đề xuất sử dụng để xuất các bảng toán học. Được ủy quyền bởi chính phủ Anh, Charles Babbage (còn gọi là Cha của Máy tính) bắt đầu làm việc với nó, nhưng do chi phí sản xuất cao, việc tài trợ đã bị dừng lại và máy chưa bao giờ hoàn thành.
2. Máy tính mục đích chung đầu tiên: “Công cụ phân tích” (1834)
Các “Công cụ phân tích” cũng là một máy tính cơ học được đề xuất, đầu vào của nó được cho là thẻ đục lỗ, với các chương trình và dữ liệu được bấm vào chúng. Một đứa con tinh thần khác của Charles Babbage, cỗ máy này cũng chưa hoàn thành.
3. Chương trình máy tính đầu tiên: thuật toán tính các số Bernoulli (1841 - 1842)
Ada Lovelace (lập trình viên máy tính đầu tiên trên thế giới) bắt đầu dịch các hồ sơ của nhà toán học người Ý Luigi Menabrea trên công cụ phân tích của Babbage vào năm 1841. Trong quá trình dịch, cô bắt đầu quan tâm đến máy và để lại ghi chú với bản dịch của mình. Một trong những lưu ý - lưu ý G, chứa thuật toán để tính toán các số Bernoulli bằng công cụ phân tích, được coi là chương trình máy tính đầu tiên.
4. Máy tính lập trình làm việc đầu tiên: Z3 (1941)
Konrad Zuse (Nhà phát minh máy tính) đã có một máy tính cơ học Z1 hoạt động nhưng nó chỉ hoạt động trong vài phút mỗi lần. Việc sử dụng một công nghệ khác - rơle, dẫn đến Z2 và cuối cùng là Z3. Z3 là một máy tính điện từ mà chương trình và dữ liệu được lưu trữ trên các băng đục lỗ bên ngoài. Đó là một dự án bí mật của chính phủ Đức và được Viện nghiên cứu máy bay Đức đưa vào sử dụng. Cỗ máy ban đầu đã bị phá hủy trong vụ đánh bom Berlin năm 1943.
5. Máy tính điện tử đầu tiên: Máy tính Atanasoff-Berry (ABC) (1942)
Được tạo bởi John Vincent Atanasoff & Clifford Berry, do đó có tên Atanasoff-Berry Computer hoặc ABC đã được sử dụng để tìm giải pháp cho các phương trình tuyến tính đồng thời. Đó là máy tính đầu tiên sử dụng hệ nhị phân để biểu diễn dữ liệu và công tắc điện tử thay vì cơ học. Tuy nhiên, máy tính không thể lập trình được..
6. Máy tính điện tử lập trình đầu tiên: Colossus (1943)
Bức tượng khổng lồ được tạo ra bởi Tommy Flowers, là một cỗ máy được tạo ra để giúp người Anh giải mã các tin nhắn tiếng Đức được mã hóa bởi mật mã Lorenz, trở lại trong Thế chiến II. Nó được lập trình bởi các công tắc và phích cắm điện tử. Colossus đã mang thời gian để giải mã các tin nhắn được mã hóa từ vài tuần xuống chỉ còn vài giờ.
7. Máy tính điện tử có thể lập trình mục đích chung đầu tiên: ENIAC (1946)
Được tài trợ bởi Quân đội Hoa Kỳ, ENIAC hoặc Tích hợp số điện tử và máy tính được phát triển trong Trường Kỹ thuật Điện Moore, Đại học Pennsylvania bởi John Mauchly & J. Presper Eckert. ENIAC rộng 150 feet và có thể được lập trình để thực hiện các hoạt động phức tạp như các vòng lặp; lập trình được thực hiện bằng cách thay đổi các công tắc và cáp điện tử của nó. Nó sử dụng đầu đọc thẻ cho đầu vào và thẻ đục lỗ cho đầu ra. Nó đã giúp tính toán tính khả thi của quả bom hydro đầu tiên trên thế giới.
8. Trackball đầu tiên: (1946/1952)
Tại sao hai năm cho trackball đầu tiên? Cho phép tôi giải thích.
Năm đầu tiên là năm được đưa ra bởi một Ralph Benjamin, người tuyên bố đã tạo ra trackball đầu tiên trên thế giới khi ông đang làm việc trên một hệ thống giám sát cho máy bay bay thấp vào năm 1946. Phát minh mà ông mô tả đã sử dụng một quả bóng để điều khiển tọa độ XY của một con trỏ trên màn hình. Thiết kế đã được cấp bằng sáng chế vào năm 1947 nhưng không bao giờ được phát hành vì nó được coi là một “bí mật quân sự”. Quân đội đã chọn cho các phím điều khiển thay thế.
Ứng cử viên thứ hai cho môn bóng ném đầu tiên trên thế giới, được sử dụng trong hệ thống DATAR của Hải quân Canada vào năm 1952 được phát minh bởi Tom Cranston và đồng nghiệp. Thiết kế trackball này có một mock up sử dụng một quả bóng bowling Canada quay trên “vòng bi” (xem hình dưới đây).
9. Máy tính được lưu trữ chương trình đầu tiên: SSEM (1948)
Để khắc phục những thiếu sót của bộ nhớ dòng trễ, Frederic C. Williams và Tom Kilburn đã phát triển thiết bị lưu trữ kỹ thuật số truy cập ngẫu nhiên đầu tiên dựa trên CRT tiêu chuẩn. SSEM (Manchester Máy thí nghiệm quy mô nhỏ) đã được sử dụng để thực hiện thiết bị lưu trữ đó để sử dụng thực tế. Các chương trình được nhập ở dạng nhị phân sử dụng 32 công tắc và đầu ra của nó là CRT.
10. Ngôn ngữ lập trình cấp cao đầu tiên: Plankalkül (1948)
Mặc dù Konrad Zuse bắt đầu làm việc trên Plankalkül từ năm 1943, nhưng chỉ đến năm 1948, ông mới xuất bản một bài báo về nó. Thật không may, nó đã không thu hút nhiều sự chú ý. Phải mất gần ba thập kỷ sau, một trình biên dịch sẽ được thực hiện cho nó, một trình biên dịch được tạo bởi Joachim Hohmann trong một luận án.
11. Trình biên dịch đầu tiên: “Đơn đặt hàng ban đầu” cho EDSAC (1949)
Trình biên dịch mã là một chương trình chuyển đổi ghi nhớ (mức thấp) thành biểu diễn số (mã máy). Các đơn đặt hàng ban đầu trong EDSAC (Lưu trữ điện tử độ trễ tự động) là người đầu tiên của một hệ thống như vậy. Nó được sử dụng để lắp ráp các chương trình từ đầu vào băng giấy vào bộ nhớ và chạy đầu vào. Các chương trình là mã mnemonic thay vì mã máy, làm “mã ban đầu” trình biên dịch đầu tiên từng bằng cách xử lý mã chương trình mức thấp tượng trưng thành mã máy.
12. Máy tính cá nhân đầu tiên: “Simon” (1950)
“Simon” bởi Edmund Berkeley là máy tính kỹ thuật số giá cả phải chăng đầu tiên có thể thực hiện bốn thao tác: bổ sung, phủ định, lớn hơn và lựa chọn. Đầu vào là giấy đục lỗ, và chương trình chạy trên băng giấy. Đầu ra duy nhất là thông qua năm đèn.
13. Trình biên dịch đầu tiên: A-0 cho UNIVAC 1 (1952)
Trình biên dịch là một chương trình chuyển đổi ngôn ngữ cấp cao thành mã máy. Hệ thống A-0 là một chương trình được tạo ra bởi Grace Hopper huyền thoại để chuyển đổi một chương trình được chỉ định là một chuỗi các chương trình con và đối số thành mã máy. A-0 sau đó đã phát triển thành A-2 và được phát hành cho khách hàng với mã nguồn khiến nó có thể trở thành phần mềm nguồn mở đầu tiên.
14. Autocode đầu tiên: Autocode của Glennie (1952)
Autocode là ngôn ngữ lập trình cấp cao sử dụng trình biên dịch. Autocode đầu tiên và trình biên dịch của nó xuất hiện tại Đại học Manchester để làm cho việc lập trình của máy Mark 1 trở nên dễ hiểu hơn. Nó được tạo ra bởi Alick Glennie, do đó cái tên Glennie Autocode.
15. Máy tính hiển thị đồ họa thời gian thực đầu tiên: AN / FSQ-7 của IBM (1951)
AN / FSQ-7 được dựa trên một trong những máy tính đầu tiên cho thấy đầu ra thời gian thực, Whirlwind. Nó trở thành huyết mạch cho hệ thống phòng không Hoa Kỳ được gọi là Môi trường mặt đất bán tự động (SAGE). Các máy tính hiển thị các dấu vết cho các mục tiêu và tự động hiển thị các phòng thủ nào trong phạm vi. AN / FSQ-7 có 100 bảng điều khiển hệ thống; đây là một (hình ảnh bên dưới), Màn hình tình huống OA-1008 (SD), với một khẩu súng nhẹ được sử dụng để chọn mục tiêu trên màn hình để biết thêm thông tin.
16. Ngôn ngữ lập trình cấp cao được sử dụng rộng rãi đầu tiên: FORTRAN (1957)
Nếu bạn kiểm tra sách giáo khoa, bạn sẽ thấy FORTRAN được liệt kê là ngôn ngữ lập trình cấp cao đầu tiên. Nghĩ đến bởi John W. Backus, người không thích các chương trình viết và quyết định tạo ra một hệ thống lập trình để giúp cho quá trình này dễ dàng hơn nhiều, việc sử dụng FORTRAN đã giảm đáng kể số lượng câu lệnh lập trình cần thiết để chạy máy. Đến năm 1963, hơn 40 trình biên dịch FORTRAN đã có sẵn.
17. Chuột đầu tiên (1964)
Đó là khi đang ngồi trong một phiên hội thảo về đồ họa máy tính, ý tưởng về một con chuột đã đến với Douglas Engelbart vào năm 1964. Ông nghĩ ra một thiết bị có một cặp bánh xe nhỏ (một chiều quay theo chiều ngang khác) có thể được sử dụng để di chuyển con trỏ trên màn hình. Một nguyên mẫu (xem bên dưới) được tạo ra bởi kỹ sư trưởng của anh, Bill English nhưng cả tiếng Anh và Engelbart không bao giờ nhận được tiền bản quyền cho thiết kế vì về mặt kỹ thuật, nó thuộc về SRI, chủ nhân của Engelbert.
18. Máy tính để bàn thương mại đầu tiên: Programma 101 (1965)
Còn được gọi là Perottina, Programma 101 là PC thương mại đầu tiên trên thế giới. Nó có thể thực hiện phép cộng, phép trừ, phép nhân, phép chia, căn bậc hai, giá trị tuyệt đối và phân số. Đối với tất cả những gì nó có thể làm, nó có giá 3.200 đô la (đó là một thời điểm rất khác biệt) và quản lý để bán 44.000 đơn vị. Perottina được phát minh bởi Pier Giorgio Perotto và được sản xuất bởi Olivetti, một nhà sản xuất Ý.
19. Màn hình cảm ứng đầu tiên (1965)
Nó trông không giống lắm nhưng đây là màn hình cảm ứng đầu tiên mà thế giới từng biết đến. Đó là bảng điều khiển màn hình cảm ứng điện dung, không có độ nhạy áp lực (có tiếp xúc hoặc không tiếp xúc) và nó chỉ đăng ký một điểm tiếp xúc duy nhất (trái ngược với cảm ứng đa điểm). Khái niệm này đã được thông qua để sử dụng bởi các kiểm soát viên không lưu ở Anh cho đến những năm 1990.
20. Ngôn ngữ lập trình hướng đối tượng đầu tiên: Simula (1967)
Dựa trên khái niệm về cấu trúc lớp của C. A. R. Hoare, Ole-Johan Dahl & Kristen Nygaard đã cập nhật “SIMULA tôi” ngôn ngữ lập trình với các đối tượng, lớp và lớp con. Điều này dẫn đến việc tạo ra SIMULA 67 trở thành ngôn ngữ lập trình hướng đối tượng đầu tiên.
Suy nghĩ cuối cùng
Nhiều như bài đăng này là về những gì chúng ta có thể tìm hiểu về nhiều lần đầu tiên trong lịch sử điện toán, thật khó để đắm mình vào lịch sử. Kết quả là, ít nhất là đối với tôi, chúng tôi trở nên đánh giá cao hơn về công việc được thực hiện bởi các thế hệ trước chúng ta, và chúng ta có thể hiểu rõ hơn điều gì thúc đẩy nhiều thay đổi hình thành nên thế giới mà chúng ta đang sống ngày nay.
Tôi hy vọng bài viết này truyền cảm hứng cho bạn nhiều như nó đã truyền cảm hứng cho tôi. Chia sẻ suy nghĩ của bạn về những điều đầu tiên này và nếu tôi bỏ lỡ bất kỳ điều gì, điều mà tôi chắc chắn là tôi đã làm, hãy thêm chúng vào phần bình luận.