답변:
1974 년경, 편리한 책상에 앉아서 프로그램을 종이에 오래 쓸 수 있습니다. 테스트 데이터를 사용하여 머리 속으로 걸어 테스트합니다. 프로그램이 올바른 것으로 만족하면 펀치 카드 실로 가서 프로그램을 카드 당 80 문자 줄로 펀치 카드에 기록하십시오. 또한 프로그램에 필요한 모든 데이터에 대해 카드를 펀칭 할 수도 있습니다. 그런 다음 컴퓨터에 프로그램을 컴파일하고 실행하는 방법과 사용할 입출력 장치를 알려주는 JCL (Job Control Language)의 몇 가지 엄청나게 많은 암호 카드도 사용합니다. 그런 다음 카드를 'IO Window'로 가져 가서 점원에게 건네줍니다.
당신의 차례가 왔을 때, 점원은 카드를 호퍼에 넣고 버튼을 누르면 컴퓨터가 카드를 읽도록 지시합니다. 프로그램의 출력은 일반적으로 라인 프린터 또는 드럼 플로터로 이동합니다. 프로그램이 완료되면, 점원은 카드와 하드 카피 출력물을 수집하여 비둘기 구멍에 넣습니다. 출력을 선택하고 결과를 검토 한 후 프로세스를 반복합니다. 완전한주기를 위해서는 20 분에서 24 시간이 걸립니다. 프로그램에서 구문 오류가 있음을 알려주는 유일한 출력 결과는 컴파일러에서 인쇄 된 메시지라는 것을 알았을 때 만족스럽지 않다고 생각할 수도 있습니다.
텔레타이프를 통해 컴퓨터에 액세스 할 수도 있으므로 실제로 원격 컴퓨터와의 대화식 세션을 가질 수 있습니다. 그러나 텔레타이프를 타이핑하는 것은 육체적으로 고통 스러웠으며 (매우 뻣뻣한 키와 큰 소리로) 여전히 종이에 프로그램을 작성하고 테스트했습니다.
1976 년까지 PDP 11-70과 같은 UNIX 시스템과 미니 컴퓨터가 보편화되었습니다. 일반적으로 25x80 문자 디스플레이가있는 비디오 터미널이 가득한 방에서 근무했습니다. 이들은 직렬 회선을 통해 컴퓨터에 연결되었습니다. 조잡하지만 오늘날 명령 프롬프트에서 일하는 것과 너무 다르지 않습니다. 당시 대부분의 편집자들은 꽤 엉뚱했습니다. Vi는 놀라운 개선이었습니다.
나는 1975 년 PL / 1 에서 ( IBM 370/168에서 ) 십대 시절 (1959 년에 태어났다) 프로그래밍을 배웠다 . IBM France에서 일하는 아버지를 갖는 특권이있었습니다. 그의 상사 M. Dornbush는 PL / 1 프로그래밍에 관한 책을 프랑스어로 썼습니다.
그 당시, 프로그램을 배우는 사람이 한 것처럼 프로그램은 수백 개의 펀치 카드로 구성된 패킷이었습니다. Charles E.Grant의 대답 은 프로세스를 설명합니다. 프로그램을 종이에 먼저 작성하고 매우 신중하게 확인했습니다. 그런 다음 IBM29 키 펀치 시스템에서 카드를 펀칭 하고 마지막으로 카드 데크를 펀칭 된 카드 판독기에 넣습니다. 그 당시에 는 아주 작은 곳 (수천 개의 문장으로 구성된 프로그램, 즉 천공 카드)이 매우 큰 프로그램 인 소스 프로그램에 주목하십시오 .
십대 시절, 특히 오타 수정을 제안하는 PL / 1 체크 아웃 컴파일러의 기능에 깊은 인상을 받았습니다.
다음 해 에 파리의 Palais de la Découverte 과학 박물관에서 오래된 CAB / 500 컴퓨터와 IBM / 1620 컴퓨터를 사용했습니다. CAB / 500은 1960 년대에 제작되었으며 아버지는 제가 유아 또는 유아 (1958-1962) 일 때 PAF 컴파일러 (일종의 기본 언어)를 작성했습니다.
오늘날, 나는 여전히 컴파일러와 관련된 일 ( MELT )을하고 있으며, 자신의 아버지가 컴파일러를 작성하는 것을 보았다고 주장 할 수있는 소수 중 하나입니다!
CAB / 500에서 PAF의 재미있는 점은 대화식 편집기 (물리적 tty & punched 테이프 포함)로 키워드를 완성 할 수있었습니다. 그것은 원래 IBM PC와 다소 비슷했습니다.
IBM / 1620의 재미있는 점은 키보드에 몇 자리 숫자를 입력하여 모니터와 Fortran 컴파일러를로드하여 부트 스트랩해야한다는 것입니다.
1950 년대에 일부 컴퓨터에는 카드 판독기 (AFAIK가 IBM650 및 IBM7094에서 선택 사항 임)가 없었지만 본 적이 없었습니다.
1970 년대 중반의 컴퓨터에 대한 액세스는 (비용이 많이 드는 장비이기 때문에) 큰 특권이었습니다. 아마도 오늘날에는 실리콘 제조 기계 또는 데이터 센터 규모의 컴퓨팅 성능에 액세스 할 수 있습니다.
당신이 가고 싶은 거리에 따라 다릅니다.
처럼 보였다 최초의 "프로그래밍"을 사용 펀치 카드 이 (의 코볼 그)그들은 특히 전기와의 상호 작용이 거의없이 코드를 작성 한 다음 코드를 잠시 동안 실행하고 어떤 형태의 인쇄물을 뱉어 내기 위해 건물에 한 컴퓨터에 공급했습니다 (실제로 기회가 생겼을 때) . 동일한 컴퓨터를 사용하려는 다른 사람들이 많았 기 때문에 결과가 나오기까지 며칠 동안 (실제로 바쁜 경우) 기다려야 할 경우가 종종 있습니다. 구문 오류가 발생하면 실망 스러울 수 있다고 생각하십시오. 코드의 섹션을 완전히 다시 작성하고 컴파일하기 위해 하루를 기다려야한다고 상상해보십시오. 컴퓨터는 거의 입력을 확인하지 않아도되므로 유용성 테스트 나 기타 중요한 테스트를 수행 할 필요가 없었습니다.
PDP와 그에 상응하는 프로그램이 더 보편화되면 프로그래머 (특히 대학 환경에서)는 코드를 종이에 쓴 다음 PDP로 시간을 예약하여 코드를 입력하고 몇 번 실행합니다. 그들은 작은 아침 시간에 일하지 않는 한 많은 시간을 얻지 못했기 때문에 코드를 실행하기 위해 밤새 머물러있는 사람들은 드문 일이 아니며 "실제"PDP의 시간 제한 (또는 동등한) 여러 그룹이 시간을 좀 더 확보하기 위해 자체 복제본을 구축합니다.
그 당시에는 실제로 컴퓨터 프로그램을 사용하는 것이 오늘날의 프로그램을 작성하는 것보다 약간 쉬울 수 있습니다. 오늘날 IDE는 원격 직렬 터미널이 있더라도 컴퓨터 프로그램의 사용자 인터페이스보다 훨씬 사용자 친화적입니다. 대부분의 프로그램은 문서화되지 않은 암호 키 시퀀스 또는 명령을 사용했습니다.
고대 컴퓨터 시스템에 대한 나의 유일한 경험은 구 Kodak 2610 포토 컬러 프린터입니다. 광 스트라이프 리더를 사용하여 직렬 TTY에서 부팅했습니다. 고용 기간 동안 나는 힘이 실패한 후에 한 번만 재부팅해야했습니다.
명령 제어는 직렬 vt100 tty를 통해 수행되었지만 모든 구성은 종이 줄무늬를 읽고 쓸 수있는 기계적 tty를 사용하여 저장 및 복원되었습니다.
Jerry Weinberg는 그의 블로그 중 하나에서 비슷한 질문에 대답했습니다 : http://secretsofconsulting.blogspot.com/2008/12/how-we-used-to-do-unit-testing.html
나는 이것이 당신의 질문에 약간의 빛을 가져올 것이라고 생각합니다.