Common Lisp이 이제 최고의 프로그래밍 언어인 이유

17 hours ago 3

LLM이 코드 작성 속도를 높이면서 개발의 병목은 프로그램이 실제로 작동하는지 확인하는 피드백 루프로 옮겨감. Common Lisp은 실행 중인 프로그램의 함수를 바로 교체할 수 있어 재빌드와 재시작에 드는 대기를 줄임 디버거에서 수정 후 실행을 재개하는 방식은 LLM이 충돌 로그를 읽고 코드를 고친 뒤 프로그램을 다시 실행하는 반복을 줄임 코드와 데이터를 같은 리스트 구조로 다루고 매크로로 언어를 확장할 수 있어, 제품의 설계 원칙을 담은 도메인 언어 위에서 LLM이 사용자별 변경을 수행하게 할 수 있음 매크로로 반복 패턴을 추상화하면 코드가 짧아져 토큰 비용을 줄이고 더 많은 코드를 컨텍스트 윈도에 넣을 수 있음 1994년 이후 바뀌지 않은 표준은 안정성 측면에서 장점이 있음. 작은 라이브러리 생태계와 개발자 채용의 어려움에는 각각 LLM을 통한 구현/이식, 학습 능력 중심의 채용을 대안으로 권함 LLM 시대의 병목은 코드 작성보다 검증임 LLM은 코드를 매우 빠르게 작성하므로, 이제 느린 단계는 프로그램이 실제로 작동하는지 확인하는 과정임 확인하기 전에 다시 빌드해야 하며, 이 과정에 몇 분이 걸릴 수 있음 사람이 코드를 작성할 때는 작성 시간이 컴파일과 실행 대기보다 훨씬 길어 대기의 중요성이 상대적으로 낮았음 코드 작성이 빨라진 지금은 피드백 루프의 길이가 개발 속도를 결정함 실행 중인 이미지와 재개 가능한 디버깅 Common Lisp은 프로그램을 메모리의 실행 중인 이미지로 유지하므로, 새 함수가 기존 함수를 즉시 대체하고 재시작할 필요가 없음 Paul Graham의 「What Made Lisp Different」 에 따르면 읽기 시점, 컴파일 시점, 실행 시점 사이에 실질적인 구분이 없음 오류 처리에서도 디버거를 통한 실행 재개가 LLM 개발 흐름에 유리함 대부분의 언어에서는 오류로 프로그램이 종료되면 LLM이 충돌 로그를 읽고 수정한 뒤 다시 실행해야 함 Common Lisp에서는 실행을 멈추고 전체 스택과 변수에 접근할 수 있는 디버거를 열어, LLM이 수정한 뒤 실행을 이어가게 할 수 있음 이 기능을 모두 갖춘 주류 언어가 Common Lisp뿐이라는 평가는 개인적으로 아는 범위에 한정됨 리스트와 매크로로 문제에 맞는 언어를 만듦 Lisp은 List Processing의 약자이며, Common Lisp 코드는 리스트로 작성됨 (+ 1 2)는 두 수를 더하는 프로그램인 동시에 기호 +와 숫자 1...

Read Entire Article