2020.12.11

'자바, 파이썬, 자바스크립트'··· 초보자가 시작하기에 좋은 언어 3종 따라잡기

Peter Wayner |
컴퓨터를 다루는 좋은 방법은 컴퓨터가 이해할 수 있도록 컴퓨터 언어를 사용하는 방법을 배우는 것이다. 판타지 소설을 좋아하는 사람들은 때론 마법의 주문과 주술을 배우는 상상을 한다. 그렇지만 프로그래머들은 숫자와 데이터의 논리적 구조를 표현하되 기반이 더욱 튼튼한 언어를 사용한다. 어느 경우이든, 컴퓨터가 은유의 고리를 뛰어넘고, 가상의 춤을 추게 만들 키스트로크와 마우스 클릭의 순서를 이해하는 것이 중요하다.

모든 학교, MOOC, 트레이닝 기관들이 젊은 학생들이 배울 첫 번째 언어를 선택해야 한다. 케케묵은 하버드 같은 곳은 여전히 70년대 C언어를 고수하지만, 많은 학교와 교육 기관들은  자바스크립트, 파이썬, 자바를 선택하고 있다. 하나는 모든 브라우저에 사용되는 언어, 또 다른 하나는 사회 과학 분야에서 가장 많이 선택되는 언어, 마지막 하나는 수학에 능통한 사람들이 선호하는 ‘타입-리치(Type-rich)’ 언어이다.

최선의 선택이 따로 있을까? 다른 언어보다 확실히 나은 언어가 있을까? 아니면 모두 학생들이 밤에 베개에 머리를 파묻고 소리를 지른다는 점에서 동등할까? 자바, 파이썬, 자바스크립트를 배우는 것이 권장되는 이유들을 알아본다.
 
Image Credit : Getty Images Bank

‘클래식’한 자바
AP(Advanced Placement) 테스트는 자바가 미숙했던 오래 전에 이 언어를 선택했다. 초기에는 모두 자바가 아주 지배적인 언어가 될 것으로 예상했었다. 그런데 이런 일은 일어나지 않았다. 하지만 많은 웹사이트와 스마트폰, TV, 소형 장치의 ‘중추적’ 언어로서 입지를 유지하고 있다.

많이 사용되고 있는 언어를 선택해야 한다. 그래야 학생들이 발전된 개발 도구들을 십분 활용할 수 있다. 또한 공부하고, 수정하고, 자신의 결과물을 위해 확장시킬 수 있는 오픈소스 코드들이 풍부하다. 여기에 들어가 어울리기란 어렵지 않다.

새로운 파이썬
사실 파이썬이 아주 새로운 언어는 아니다. 30년 전에 시작된 프로젝트였다. 그러나 새로운 언어같이 느껴지는 이유는 성공하기까지 시간이 걸렸기 때문이다. 일반 프로그래머들 사이에 널리 도입되기 시작한 것이 비교적 최근의 일이다. 

이에 따라 파이썬을 수용하는 학교와 교육기관은 새로운 학습 계획을 수립하고, 새로 시험을 만들고, 새로운 슬라이드들을 개발해야 한다. 반면 Pets.com과 MySpace를 참고하면서, 1990년대의 먼지 쌓인 구식 질문들을 찾을 필요는 없다.

‘Computer Science Principles’라는 최신 AP 과정에서는 교사가 컴퓨터 언어를 선택할 수 있다. 그런데 ‘신선함’ 때문에 파이썬을 선택하는 사람들이 많다. 단 신선함이 그저 피상적일 수 있음을 감안해야 한다. 모든 언어는 어셈블리 코드의 ‘if-then-else’ 결정 구조가 숨겨진 영리한 문장일 뿐이다.

한편 파이썬 성공이 긍정적인 피드백 고리를 만들고 있다. 2020년 11월 티오베(Tiobe) 인덱스에서 파이썬의 순위가 처음으로 2위로 상승했다(C언어 다음). 자바보다 더 인기가 높아진 언어라는 것이 증명된 것이다.

도처에 사용되는 자바스크립트
브라우저에 사용된다. 그런데 브라우저는 데스크톱, 스마트폰, 거리 곳곳에 소재한 키오스크의 기반이다. 지난 10년 간 자바스크립트는 웹 서버를 점령했다. Node.js 웹 앱을 개발자들이 클라이언트와 서버 팜 모두에서 실행시키게 된 동안, 자바스크립트는 Node.js 웹 앱이 개발자들이 클라이언트와 서버 팜에서 실행할 수 있는 ‘isomorphic’ 코드를 쓰는 가장 인기있는 방법이 됐기 때문이다. 

자바스크립트는 자바와 비슷한 시기에 개발되었지만, 서버 측면 전문가들이 그 강력함을 발견하는 데 몇 년이 걸렸다. 새롭지만, 동시에 오래된 언어이다.

‘타입(Type)’을 지정해야 하는 자바
각 변수의 타입을 지정하는 데 시간을 소비하는 것을 좋아하지 않을지 모르겠다. 그러나 사실 코드에 ‘int’를 추가하기 위해 3개 키를 누르는 데 많은 시간이 걸리지 않는다. 이렇게 하면 강력한 ‘힘’을 얻을 수 있다. 컴파일러가 코드가 배포되기 전에, 즉시 코드를 다시 확인해 어리석은 실수들을 찾아준다. 타입을 지정해야 하는 언어들은 코드의 논리에 대해 철저히 생각을 하도록 강요한다. 이는 신입 프로그래머들에게 아주 중요한 교훈을 알려준다. 자바의 타입 구조는 버그를 줄여주고, 더 나은 코드를 개발할 수 있도록 해준다.

‘타입’을 지정하지 않는 파이썬
‘타입’ 지정 언어를 좋아하는 사람들은 ‘스마트’하고 좋은 코드를 쓴다. 그러나 각 변수에서 데이터 타입에 대한 추가 정보 없이도 코드가 매끄럽게 실행될 것이라고 생각하는 사람들에게는 파이썬이 있다. 컴퓨터는 변수로 저장을 할 때 데이터의 타입을 파악할 수 있다. 그렇다면 추가로 수고를 들일 필요가 있을까?

그렇지만 이런 ‘자유분방한’ 방식이 서서히 바뀔 수도 있다는 점을 유념해야 한다. 파이썬 도큐멘테이션은 파이썬 런타임은 함수와 변수 타입 주석을 강제하지 않지만, 그래도 사용은 할 수 있다고 설명하고 있다. 시간이 지나면서 타입을 추가하는 것이 지배적인 프로그래밍 방법이 될 수도 있다. 그러나 지금은 선택형이다.

둘 모두인 자바스크립트
자바스크립트 자체는 타입을 지정하지 않지만, 자바스크립트 생태계의 저명한 구성원들은 최근 원할 때 타입을 지정할 수 있는 원래 자바스크립트의 슈퍼 세트인 타입스크립트(TypeScript)로 옮겨갔다. 그렇지만 이를 원치 않을 경우, 일반 자바스크립트도 문제가 없을 것이다. 타입 확인에 있어 ‘완화된’ 버전이다.




2020.12.11

'자바, 파이썬, 자바스크립트'··· 초보자가 시작하기에 좋은 언어 3종 따라잡기

Peter Wayner |
컴퓨터를 다루는 좋은 방법은 컴퓨터가 이해할 수 있도록 컴퓨터 언어를 사용하는 방법을 배우는 것이다. 판타지 소설을 좋아하는 사람들은 때론 마법의 주문과 주술을 배우는 상상을 한다. 그렇지만 프로그래머들은 숫자와 데이터의 논리적 구조를 표현하되 기반이 더욱 튼튼한 언어를 사용한다. 어느 경우이든, 컴퓨터가 은유의 고리를 뛰어넘고, 가상의 춤을 추게 만들 키스트로크와 마우스 클릭의 순서를 이해하는 것이 중요하다.

모든 학교, MOOC, 트레이닝 기관들이 젊은 학생들이 배울 첫 번째 언어를 선택해야 한다. 케케묵은 하버드 같은 곳은 여전히 70년대 C언어를 고수하지만, 많은 학교와 교육 기관들은  자바스크립트, 파이썬, 자바를 선택하고 있다. 하나는 모든 브라우저에 사용되는 언어, 또 다른 하나는 사회 과학 분야에서 가장 많이 선택되는 언어, 마지막 하나는 수학에 능통한 사람들이 선호하는 ‘타입-리치(Type-rich)’ 언어이다.

최선의 선택이 따로 있을까? 다른 언어보다 확실히 나은 언어가 있을까? 아니면 모두 학생들이 밤에 베개에 머리를 파묻고 소리를 지른다는 점에서 동등할까? 자바, 파이썬, 자바스크립트를 배우는 것이 권장되는 이유들을 알아본다.
 
Image Credit : Getty Images Bank

‘클래식’한 자바
AP(Advanced Placement) 테스트는 자바가 미숙했던 오래 전에 이 언어를 선택했다. 초기에는 모두 자바가 아주 지배적인 언어가 될 것으로 예상했었다. 그런데 이런 일은 일어나지 않았다. 하지만 많은 웹사이트와 스마트폰, TV, 소형 장치의 ‘중추적’ 언어로서 입지를 유지하고 있다.

많이 사용되고 있는 언어를 선택해야 한다. 그래야 학생들이 발전된 개발 도구들을 십분 활용할 수 있다. 또한 공부하고, 수정하고, 자신의 결과물을 위해 확장시킬 수 있는 오픈소스 코드들이 풍부하다. 여기에 들어가 어울리기란 어렵지 않다.

새로운 파이썬
사실 파이썬이 아주 새로운 언어는 아니다. 30년 전에 시작된 프로젝트였다. 그러나 새로운 언어같이 느껴지는 이유는 성공하기까지 시간이 걸렸기 때문이다. 일반 프로그래머들 사이에 널리 도입되기 시작한 것이 비교적 최근의 일이다. 

이에 따라 파이썬을 수용하는 학교와 교육기관은 새로운 학습 계획을 수립하고, 새로 시험을 만들고, 새로운 슬라이드들을 개발해야 한다. 반면 Pets.com과 MySpace를 참고하면서, 1990년대의 먼지 쌓인 구식 질문들을 찾을 필요는 없다.

‘Computer Science Principles’라는 최신 AP 과정에서는 교사가 컴퓨터 언어를 선택할 수 있다. 그런데 ‘신선함’ 때문에 파이썬을 선택하는 사람들이 많다. 단 신선함이 그저 피상적일 수 있음을 감안해야 한다. 모든 언어는 어셈블리 코드의 ‘if-then-else’ 결정 구조가 숨겨진 영리한 문장일 뿐이다.

한편 파이썬 성공이 긍정적인 피드백 고리를 만들고 있다. 2020년 11월 티오베(Tiobe) 인덱스에서 파이썬의 순위가 처음으로 2위로 상승했다(C언어 다음). 자바보다 더 인기가 높아진 언어라는 것이 증명된 것이다.

도처에 사용되는 자바스크립트
브라우저에 사용된다. 그런데 브라우저는 데스크톱, 스마트폰, 거리 곳곳에 소재한 키오스크의 기반이다. 지난 10년 간 자바스크립트는 웹 서버를 점령했다. Node.js 웹 앱을 개발자들이 클라이언트와 서버 팜 모두에서 실행시키게 된 동안, 자바스크립트는 Node.js 웹 앱이 개발자들이 클라이언트와 서버 팜에서 실행할 수 있는 ‘isomorphic’ 코드를 쓰는 가장 인기있는 방법이 됐기 때문이다. 

자바스크립트는 자바와 비슷한 시기에 개발되었지만, 서버 측면 전문가들이 그 강력함을 발견하는 데 몇 년이 걸렸다. 새롭지만, 동시에 오래된 언어이다.

‘타입(Type)’을 지정해야 하는 자바
각 변수의 타입을 지정하는 데 시간을 소비하는 것을 좋아하지 않을지 모르겠다. 그러나 사실 코드에 ‘int’를 추가하기 위해 3개 키를 누르는 데 많은 시간이 걸리지 않는다. 이렇게 하면 강력한 ‘힘’을 얻을 수 있다. 컴파일러가 코드가 배포되기 전에, 즉시 코드를 다시 확인해 어리석은 실수들을 찾아준다. 타입을 지정해야 하는 언어들은 코드의 논리에 대해 철저히 생각을 하도록 강요한다. 이는 신입 프로그래머들에게 아주 중요한 교훈을 알려준다. 자바의 타입 구조는 버그를 줄여주고, 더 나은 코드를 개발할 수 있도록 해준다.

‘타입’을 지정하지 않는 파이썬
‘타입’ 지정 언어를 좋아하는 사람들은 ‘스마트’하고 좋은 코드를 쓴다. 그러나 각 변수에서 데이터 타입에 대한 추가 정보 없이도 코드가 매끄럽게 실행될 것이라고 생각하는 사람들에게는 파이썬이 있다. 컴퓨터는 변수로 저장을 할 때 데이터의 타입을 파악할 수 있다. 그렇다면 추가로 수고를 들일 필요가 있을까?

그렇지만 이런 ‘자유분방한’ 방식이 서서히 바뀔 수도 있다는 점을 유념해야 한다. 파이썬 도큐멘테이션은 파이썬 런타임은 함수와 변수 타입 주석을 강제하지 않지만, 그래도 사용은 할 수 있다고 설명하고 있다. 시간이 지나면서 타입을 추가하는 것이 지배적인 프로그래밍 방법이 될 수도 있다. 그러나 지금은 선택형이다.

둘 모두인 자바스크립트
자바스크립트 자체는 타입을 지정하지 않지만, 자바스크립트 생태계의 저명한 구성원들은 최근 원할 때 타입을 지정할 수 있는 원래 자바스크립트의 슈퍼 세트인 타입스크립트(TypeScript)로 옮겨갔다. 그렇지만 이를 원치 않을 경우, 일반 자바스크립트도 문제가 없을 것이다. 타입 확인에 있어 ‘완화된’ 버전이다.


X