Ai là lập trình viên đầu tiên?


15

Có một số sự đồng thuận giữa các nhà sử học về người lập trình đầu tiên bao giờ? Nếu vậy, đó là ai và họ đã lập trình trên cái gì?

Tôi thấy thú vị hơn khi biết nhiều hơn về những người tiên phong lập trình, bất kể họ lập trình trên máy lập trình hay họ đã tự thiết kế máy để thực hiện một số nhiệm vụ tính toán.


10
Xác định lập trình đủ chính xác để chúng tôi biết liệu chúng tôi có phải xem xét những việc như chuẩn bị băng cho máy dệt của Jacquard hay không.
AProgrammer

Người đầu tiên viết mã :)))
Songo

Tôi bỏ phiếu để đếm Jacquard.
Joshua Drake


Những người tính toán nhật thực trong lịch của người Maya, rất có thể là những lập trình viên đầu tiên. Bạn cần thiết kế một thuật toán ("chúng ta có đủ gần không?") Và thực hiện nó.

Câu trả lời:


58

Augusta Ada King , Nữ bá tước của Lovelace (1815 - 1852) được tín nhiệm bởi hầu hết các lập trình viên đầu tiên.

Chương trình đầu tiên là một thuật toán để tính toán số Bernoulli cho Charles Babbage của động cơ phân tích , và nó xuất hiện trong các ghi chú bản dịch của bà Luigi Menabrea của cuốn hồi ký "Phác thảo của Công cụ phân tích phát minh bởi Charles Babbage" , cụ thể hơn Lưu ý G . Điều đó nói rằng, toán học cần thiết để tính toán số Bernoulli đã được biết đến từ lâu trước thời của Ada, tuy nhiên thuật toán của Ada là ví dụ đầu tiên của thuật toán tính toán được thiết kế để thực hiện bởi một máy (lúc đó vẫn là giả thuyết).

Konrad Zuse (1910 - 1995) cũng là một ứng cử viên vững chắc cho việc "lập trình đầu tiên" biệt danh, đã phát minh ra một điểm nhị phân tính cơ khí nổi với lập trình hạn chế, Z1 (1936) nhưng quan trọng hơn là Z3 (1941), một hoàn Turing electro -Cơ khí máy tính.

Khi nói đến máy tính điện tử, Máy tính AtanasoffTHER Berry (được hình thành vào năm 1937, hoạt động vào năm 1942) được coi là thiết bị điện toán điện tử đầu tiên, vì vậy thật hợp lý khi nghĩ rằng các nhà thiết kế của nó, John Vincent AtanasoffClifford Berry là người tiên phong lập trình. Mặc dù vậy, máy tính AtanasoffTHER Berry không thể lập trình được, máy tính điện tử lập trình đầu tiên là ENIAC (1946).

Mặc dù các nhà thiết kế của ENIAC John MauchlyJ. Presper Eckert có thể đã chia sẻ công bằng về lập trình, nhưng hầu hết các chương trình của ENIAC đều được thực hiện bởi những người phụ nữ đáng yêu này :

Lập trình viên ENIAC, với sự giúp đỡ của Dự án lập trình viên ENIAC

Tên của họ từ trái sang phải là Kathy Kleiman 1 , Jean Bartik , Marlyn Meltzer , Kay Mauchly AntonelliBetty Holberton ở phía trước. Hai trong số các lập trình viên nữ của ENIAC, Fran BilasRuth Lichterman , bị mất tích trong bức ảnh.

Khi nói đến máy tính kỹ thuật số, cái đầu tiên là Colossus (hoạt động vào tháng 12 năm 1943), và người đứng đầu dự án Tommy Flowers (1905 - 1998) cũng nên được coi là người tiên phong lập trình, cùng với Max Newman (1897 - 1984), người chịu trách nhiệm để xây dựng các yêu cầu cho máy móc và dĩ nhiên Alan Turing (1912 - 1954), người đã thiết kế máy điện tử điện tử trước đây của Bletchley Park, Bombe (1939), và có ảnh hưởng trong thiết kế Colossus 2 .

1 Kathy Kleiman là người sáng lập Dự án lập trình viên ENIAC và rõ ràng không phải là lập trình viên ENIAC (còn quá trẻ :)
2 Lịch sử tính toán trong thế kỷ 20: The Colossus - B. Randell, Đại học Newcastle (PDF)


9
'Lập trình viên' là một đống rác rưởi được các blogger mơ ước.
Alan B

5
@Malcolm Đó là một câu hỏi rất hay. Điều bạn cần nhớ là Công cụ phân tích đã không được xây dựng trong suốt cuộc đời của Babbage và Ada đã không khám phá toán học cho thuật toán của mình, nhưng đã dịch toán thành một dạng có thể hoạt động cho Công cụ phân tích (đó là điều kiện đủ điều kiện thuật toán của cô là phần mềm chứ không phải toán học). Không thể tưởng tượng rằng Babbage đã đưa ra một chương trình trước đó, nhưng không bao giờ ghi lại nó. Tuy nhiên, ông đã làm tài liệu về sự tham gia của Ada, trong p. 136 đoạn văn từ cuộc đời của một triết gia :
yannis

2
(tiếp ...) "Sau đó tôi đề nghị cô ấy thêm một số ghi chú vào hồi ký của Menabrea, một ý tưởng đã được thông qua ngay lập tức. Chúng tôi đã thảo luận cùng nhau các minh họa khác nhau có thể được giới thiệu: Tôi đã đề xuất một số nhưng lựa chọn hoàn toàn là của cô ấy. là đại số giải quyết các vấn đề khác nhau, ngoại trừ, thực sự, liên quan đến các con số của Bernoulli, mà tôi đã đề nghị làm để cứu Lady Lovelace những rắc rối. Điều này cô ấy đã gửi lại cho tôi để sửa đổi, đã phát hiện ra một sai lầm nghiêm trọng mà tôi đã thực hiện trong quá trình này. "
yannis

2
(tiếp ...) Và mặc dù có vẻ như Babbage đang yêu cầu ít nhất một số tín dụng (sẽ công bằng khi hai người làm việc cùng nhau), anh ta không bao giờ tranh luận về ghi chú của Ada trong cuốn hồi ký, chỉ mang tên cô.
yannis

5
Năm 1941, Zuse đã thuê một nhà toán học mù tên Arnold Fast để lập trình máy tính của mình. Anh chàng này có lẽ là lập trình viên chuyên nghiệp đầu tiên trên thế giới .
Mackie Messer

12

Archimedes cũng có thể đủ điều kiện

Kể từ khi ông được tạm khấu trừ với việc tạo ra các cơ chế Antikythera (một ví dụ về một đầu máy tính analog ) khoảng 2000 năm trước, tại một số điểm ông phải đã thực hiện các quyết định để tính toán một sự kiện đặc biệt.

Hành động đó có thể được coi là một chương trình, do đó anh trở thành một lập trình viên.


5
Cơ chế không được lập trình.
Oded

4
Mặc dù mối liên hệ với Archimedes được ngụ ý, nhưng tuyên bố rằng anh ta "được ghi nhận tạm thời với việc tạo ra cơ chế Antikythera" là một điều khá táo bạo (vâng, tôi đã không bỏ lỡ một cách ngập ngừng).
yannis

4
@Gary: Một điểm khác biệt quan trọng đối với khả năng lập trình, ít nhất là như ngày nay nó hiểu, là chương trình tồn tại độc lập với phần cứng. Cơ chế Antikythera được "mã hóa cứng" để tính toán một thứ, nhưng không có cách nào để nhập các chương trình khác.
Mason Wheeler

3
Có vẻ như chúng ta đang tranh luận nhiều hơn về CHƯƠNG TRÌNH LÀ GÌ. Ai đó tạo ra một cơ chế nhúng vào nó một số logic không phải là một lập trình viên? Tôi tin là anh ấy, bạn không thể nói khác chỉ vì bạn không thể thay đổi logic đó
abx78

4
Tôi tranh luận rằng cơ chế Antikythera là một máy tính, do đó nó không phải bàn cãi !! Một thiết bị tuyệt vời như nó vốn có, nó thực sự chỉ là một chiếc đồng hồ rất thông minh. Đó là công nghệ chế tạo máy đã đi trước khoảng 500-1000 năm, nhưng nó không phải là "lập trình". Đồng hồ không phải là máy tính.
Jim ở Texas
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.