포스테키안

2021 봄호 /Science black box

2021-04-19 79

프로그래밍 언어를 만든 과학자들 

프로그래밍 언어를 사용해 본 적이 있으신가요? 프로그래밍 언어는 컴퓨터가 사용자의 요구에 따라 동작할 수 있도록 하는 소프트웨어를 작성하는 언어입니다.1 “Hello, world!”로 알려진 C언어는 가장 대중적인 프로그래밍 언어이며, C++, Python, JAVA 등 컴퓨터 프로그램을 하나의 객체로 보는 객체지향 언어들이 많이 사용되고 있습니다. 그렇다면, 이런 다양한 프로그래밍 언어들을 누가, 언제, 어떻게 탄생시켰는지 궁금하지 않으신가요? 이번 호에서는 프로그래밍 언어들의 탄생 배경에 대해 알아봅시다! 

 

Python의 탄생, 귀도 반 로섬 

① https://commons.wikimedia.org/wiki/File:Guido-portrait-2014-drc.jpg 

오픈소스의 사용 등이 용이한 Python을 들어보셨나요? 파이썬의 개발자는 귀도 반 로섬으로 1989년 12월 크리스마스 때 일주일 동안 취미로 프로그래밍을 해 보다가 새로운 인터프리터를 개발하게 되었다고 합니다. ‘Python’이라는 이름은 그가 좋아하는 코미디 프로그램 ‘Monty Python’s Flying Circus’에서 따왔다고 하며, Github 저장소 요소들의 이름도 각 배역의 이름이라고 합니다.2 Python은 쉽고 효율적이며 가독성을 중요시하는 언어로, 귀도 반 로섬의 말에 의하면 프로그래밍은 프로그래밍 언어를 통해 다른 프로그래머에게 자신의 아이디어를 표현하는 방법이라고 합니다. 그가 개발한 Python의 핵심 철학인 “아름다운 것이 추한 것보다 낫다.”, “명시적인 것이 암시적인 것보다 낫다.”, “단순함이 복잡함보다 낫다.”, “복잡함이 난해한 것보다 낫다.”, “가독성은 중요하다.”와 같은 말들에서 Python의 특징을 알 수 있는데요. Python은 프로그램을 하나의 객체로 취급하는 객체지향 언어로 코드의 재사용이 가능하게 만들어야 하기 때문에, 들여쓰기로 블록을 구분하는 등 명확하며 불필요한 변화를 줄인 언어를 만들었다고 합니다.3 또한, 오픈소스를 쉽게 사용할 수 있는 장점을 가지기 때문에, 본인의 아이디어를 프로그래밍 언어로 옮겨 프로젝트를 진행할 수 있어 교육기관과 기업, 연구기관까지 등에서 두루 사용되고 있습니다. 

 

JAVA의 탄생, 제임스 고슬링 

② https://ko.wikipedia.org/wiki/%ED%8C%8C%EC%9D%B4%EC%8D%AC 

전 세계에서 가장 많이 사용되는 프로그래밍 언어인 JAVA의 개발자는 제임스 고슬링입니다. 썬 마이크로시스템즈에 입사한 제임스 고슬링은 운영체제와 프로그램 사이의 가상머신을 만들어, 한 운영체제에서 개발된 소프트웨어가 다른 운영체제에서는 활용되지 못하는 문제를 해결할 호환성 높은 언어인 JAVA를 개발했습니다.4 Oak라는 언어는 원래 냉장고 등의 하드웨어에만 사용될 목적으로 개발되었지만, 웹용 개발 언어의 단점을 보완하기 위해 프로그래밍 언어를 웹과 결합한 JAVA는 어떤 플랫폼에서도 사용할 수 있게 되었습니다. JAVA는 세계에서 가장 많이 사용하는 프로그래밍 언어인 만큼, 다양한 PC 소프트웨어나 안드로이드 애플리케이션, Mojang의 마인크래프트 같은 게임들이 JAVA의 플랫폼에서 작동합니다. JAVA라는 이름은 제임스 고슬링이 평소 커피 애호가로서 자주 마시던 인도네시아 JAVA산 커피에서 유래했다고 합니다. 이는 JAVA 로고의 커피잔과 접시에서도 알 수 있습니다.5 제임스 고슬링은 사교적이지 않은 성격 때문에 대중적으로 많은 사람이 알고 있지는 않지만, 이렇게 가장 영향력 있는 프로그래머 중 하나입니다. 제임스 고슬링은 미래는 일어나는 게 아니라 선택하는 것이라고 말했습니다.6 실패를 하더라도 시도를 해봐야 하며, 다양한 도전을 통해 얻을 수 있는 경험과 가치가 있기 때문입니다. 제임스 고슬링은 오라클을 퇴사하고, 구글, 리퀴드 로보틱스에서 근무한 후 아마존 닷컴의 AWS에 합류하여 새로운 모험을 하고 있다고 합니다. 

 

스크래치, MIT  미첼 레스닉 교수 

③ https://paw.princeton.edu/article/scratch 

스크래치는 초등학교 프로그래밍 교육 과정에 포함되어 있어, 많은 학생이 한 번쯤은 접해 봤을 언어입니다. 교육과정 내에서는 스크래치를 활용해 캐릭터가 움직이는 모습을 구현하거나 단순한 게임을 만들곤 했었는데요. 스크래치는 전 세계 150개국 등록 사용자 2500만 명으로, 실제로 어린이의 코딩 경험을 위해 설계된 언어입니다. 스크래치는 DJ가 레코드판을 앞뒤로 움직여 새로운 소리를 합성하는 것에서 착안했다고 합니다.7 미첼 레스닉 교수는 창의성 교육을 강조하며 어린이에게 코딩을 가르치면 주변의 기술을 습득하고 기술을 통해 다른 사람들과 소통하는 능력과 창의성을 기를 수 있다고 했습니다. 미첼 레스닉 교수는 코딩을 자신의 생각을 논리화하는 글쓰기의 연장이라고 생각했을 때 모든 사람이 전문 작가는 아니지만 글로 자기 생각을 표현하는 것처럼, 학생들이 모든 코드를 만들기보단 기존에 만들어진 여러 코드의 필요한 부분을 결합해 자신의 작품을 만들어야 한다는 생각에서 스크래치를 개발했습니다. 또한, AI의 시대가 도래함에 따라 전통적인 교과 수업보다는, 기술 변화의 흐름에 따라 교육의 융합과 프로젝트가 필요하다고 말하며, 코딩 교육의 가치를 강조했습니다. 

인공지능, 블록체인 등 최근 주목받고 있는 기술들은 모두 소프트웨어를 탑재하고 있는데요. 이러한 소프트웨어는 Python, JAVA 등의 다양한 프로그래밍 언어로 구축됩니다. 각 언어의 탄생 배경을 살펴보니, 언어들만의 특징을 더 잘 이해할 수 있을 것 같습니다. 개발자들의 이야기에서 공통적으로 찾아볼 수 있었던 것은 프로그래밍 언어는 최대한 쉽게, 인간이 생각하는 대로 쓸 수 있어야 한다는 것이었습니다. 여러분도 이러한 생각에 따라 개발된 프로그래밍 언어 중 본인에게 필요한 언어를 찾아, 자신만의 아이디어를 프로그램으로 만들어 보는 것은 어떨까요? 

 

[각주]

1 https://ko.wikipedia.org/wiki/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D_%EC%96%B8%EC%96%B4 

2 https://ko.wikipedia.org/wiki/%ED%8C%8C%EC%9D%B4%EC%8D%AC 

3 https://www.python.org/doc/essays/foreword/ 

4 https://news.skhynix.co.kr/1165 

5 https://it.donga.com/20869/ 

6 https://www.oss.kr/news/show/53a25b0c-0f97-48bf-8880-666981d9f61d 

7 https://news.joins.com/article/23052273 

 

6월 11일, [Science Black Box]의 이야기가 영상으로 공개됩니다! 

 

글. 무은재학부 20학번 26기 알리미 유현아