왜 MIT는 Scheme에서 Python으로 전환했는가

ko생성일: 2025. 7. 26.갱신일: 2025. 8. 3.

MIT의 대표적인 입문 프로그래밍 과목 6.001이 Scheme에서 Python으로 전환된 이유와 그 배경, 그리고 이에 대한 다양한 반응을 정리한 글입니다. 본문과 방대한 토론 댓글을 한국어로 번역하였습니다.

왜 MIT는 Scheme에서 Python으로 전환했는가 – Wisdom And Wonder


Costanza는 Sussman에게 MIT가 입문 프로그래밍 수업인 6.001에서 Scheme을 사용하지 않고 왜 전환했는지를 물었습니다. 이에 대한 Sussman의 답변은 인상적이었습니다. 그는 1980년대의 엔지니어링과 90년대 중후반, 2000년대의 엔지니어링은 완전히 달랐다고 했습니다. 1980년대의 우수한 프로그래머들은 많은 사고를 먼저 한 후, 최소한의, 꼭 작동할 것 같은 코드를 짜곤 했습니다. 그 시기의 코드는 하드웨어와 가까이 맞닿아 있었고, Scheme마저도 이해할 수 있는 구조였습니다. 저항기를 예로 들며, 색띠만 보면 저항값과 정격전력, 오차값, 옴의 법칙(V=IR) 모두 알 수 있듯, 6.001은 엔지니어가 작은 부품을 완전히 이해한 뒤, 간단한 기법만으로 원하는 큰 시스템을 만드는 법을 가르치고자 시작된 과목이었습니다.

그런데 오늘날의 프로그래밍은 더 이상 그렇지 않다고 Sussman은 말했습니다. 이제는 누가 만들었는지도 모르는 소프트웨어의 불친절하거나 아예 없는 메뉴얼을 뒤적거리며, 기본 라이브러리가 어떻게 동작하는지 실험해 가며 기능을 파악해야 합니다. 근본적으로 다른 직업이 되었고, 그런 만큼 다른 강의가 필요해졌습니다.

새롭게 개편된 6.001의 좋은 점 중 하나는 로봇 중심이라는 점이었습니다. 학생들은 작은 로봇을 움직이게 프로그램해야만 했습니다. 로봇은 저항기처럼 이상적으로 동작하지 않습니다. 바퀴가 미끄러지고, 환경은 계속 변하고 등등. 따라서 시스템의 견고함을 SICP가 이야기하는 방식과 다른 방법으로 넣어야만 했습니다.

그럼 왜 Python일까요? Sussman에 따르면, 아마도 로봇 인터페이스를 위한 라이브러리가 이미 Python으로 구현되어 있었기 때문일 뿐입니다.

(출처: wingolog)


당신이 관심있을 만한 추천글들

(이하 원문은 댓글로 구성되어 있습니다. 토론의 핵심 내용 일부만 발췌·요약합니다)


댓글 중 주요 의견들

  1. 오늘날 소프트웨어가 혼란스럽다는 이유로 학생들에게 무력함과 무작위 실험정신을 첫수업부터 강요한다니 참담하다
  2. 믿기 어렵다
  3. (핑백) 소프트웨어가 왜 우울한지 (관련 블로그)
  4. Scheme 기반 수업을 읽으며 '진짜 프로그래머'가 되기엔 C나 VB 같은 언어보다 Scheme이 훨씬 낫다는 생각을 했다. Python으로의 전환은 결국 MIT의 경제적 이익만 커질 것 같아 씁쓸하다
  5. Python은 실용적이고 접근성이 높다. 그러나 Scheme의 그 우아하고 완전히 이해한 뒤 구성하는 맛은 아쉽다
  6. Python은 입문과 더 깊은 내용을 가르치기에 효과적. C나 Java로 했으면 더 나빴을 것
  7. MIT조차 실무에서 쓰지 않는다며 언어를 바꾼 걸 보면 실망스럽다. 기본 개념이 더 중요하다
  8. 라이브러리의 동작을 실험해가며 파악해야 하는 건 Python같이 타입 시스템이 허술하고 컴파일러가 없는 언어의 문제다
  9. Scheme 역시 동적 타입 시스템이다
  10. Python은 초보자에게 오히려 혼란을 주기도 한다(예: 함수와 연산자, statement의 차이, 괄호의 용례 등)
  11. 프로그래밍 언어 자체를 수업에서 가르치는 것은 비효율적이라는 주장도 있다. 데이터 구조, 시스템 사고 등 개념이 더 강의에 적합함
  12. (반론) 언어를 경험해 봐야 제대로 구현하고 활용할 수 있다
  13. MIT 출신. 실용성과 편의성, 정치적인 배경도 작용했다
  14. Python의 tuple 구문, 문자열 타입 표시의 간편함 등은 장점
  15. Scheme에서 느꼈던 사고의 확장, 패러다임의 전환 경험은 Python에도 그대로 기대하기엔 어렵다
  16. Scheme/Lisp의 핵심 아이디어는 다른 수업(예. 계산역학, 6.945 등)에서 일부 유지된다. 열정 있는 학생은 여전히 배울 수 있다
  17. 90년대/2000년대 MIT의 컴퓨터공학과는 순수 이론보단 시스템엔지니어링과 실무 중심으로 바뀌었다는 회고도 있음
  18. 로봇을 프로그래밍하는 일은 재밌다! 지금 한다면 Haskell로 하고 싶다
  19. Scheme으로 함수형 사고를 배운 것이 큰 자산이었지만, 현업에선 점점 상태변희 중심 언어가 일반화됨을 아쉬워하는 목소리
  20. Scheme으로 입문했던 학생들은 처음에는 어렵지만, 결국 새로운 언어들(C++, Python 등)도 금방 익히고 적응함
  21. 대학 입문 언어 선택은 현실적으로 언어 난이도, 실용성, 수업 기간 내 학습효과 등 다양한 요소가 작용
  22. Python은 람다, 클로저, 제너레이터 등 Scheme과 상당히 유사한 개념을 담고 있다
  23. C나 Java 등 기계 친화적인 언어가 아닌, 적절히 단순한 언어가 교육에 더 적합하다는 의견도 여럿
  24. 실제 6.001, 6.034와 같은 수업이 Java 또는 Python 등으로 교체되며 Scheme/Lisp가 MIT 기초 커리큘럼에서 사라진 맥락도 소개
  25. 컴퓨터 과학 기본 개념은 언어에 상관없이 꾸준히 익혀야 한다는 입장
  26. 실무 프로그래밍은 Python이 더 친숙하고 수요가 많아진 시대적 상황 반영
  27. Scheme은 배우기 어렵지만 진정한 사고, 즉 문제 자체를 재발견하고 접근하는 힘을 길러준다
  28. Python이 초보자에게 쉽고, 문법적 복잡함보다 의미와 개념에 집중할 수 있게 해준다는 주장
  29. 결론적으로 어떤 언어도 처음에는 친숙하나, 요소들을 쉽게 조화시킬 수 있는지가 진짜 해당 언어의 가치를 결정한다는 회의적인 의견도 있음
  30. Scheme의 명확한 문법, 일관된 구조는 초보자에게 개념적 일관성을 줘서 두고두고 도움이 됐다는 주장
  31. Python은 실용적이고, 배우기 쉽고, 훌륭한 일반 프로그래밍 언어라는 찬사도 많음
  32. MIT의 전환 결정은 옳았다는 주장, Python 커뮤니티와 생태계의 확대 긍정 평가
  33. 여러 시각이 혼재하지만 본질은 문제 해결 방식을 가르치는 교육에 대한 고민임

맺으며

MIT가 Scheme에서 Python으로 입문 프로그래밍 언어를 교체한 배경에는 시대 변화, 실습 환경, 실용적 이유, 커리큘럼 전체의 변화 등이 복합적으로 작용했습니다. 이에 대해 아쉬움을 표하는 목소리와, 현실을 인정하면서 변화에 공감하는 반응이 함께 존재합니다.


Post navigation


Wisdom And Wonder 개인정보처리방침 | [WordPress 기반 사이트]