본문 바로가기

책/코딩을 지탱하는 기술

코딩을 지탱하는 기술 - 3


프로그래밍 언어를 조감하다

  1. 프로그래밍 언어 탄생의 역사
  2. 프로그래밍 언어 탄생의 목적
  3. 정리

*조감하다(피해 상황을 낱낱이 헤아리다.)

 

프로그래밍 언어 탄생의 역사

프로그래밍 언어에서 새로운 것은 과거의 것을 알고 난 후에야 만들어지는 것이며, 지금은 '당연하다'고 여기는 것도 과거에는 아직 발견되지 않은 것이었다. 옛날 사람 시점에서 생각하는 방법은 새로운 것을 배우는 사람에게 매우 유리하게 작용한다.

 

프로그래밍 언어는 인간을 편하게 하기 위해 만들어 졌고, 여기서 프로그래밍 언어의 탄생 역사와 두명의 언어 설계자를 소개한다.

    케이블을 연결하다

    • 1946년 - ENIAC의 발명과 진공관을 연결해서 프로그래밍을 하는 컴퓨터
  • 프로그램 내장 방식으로

    • 1949년 - EDSAC의 개발과 테이프에 구멍을 뚫어서 데이터를 표현하고 컴퓨터가 읽어들이는 구조의 컴퓨터
    • 하지만 이것도 사람이 프로그램을 읽거나 쓰는데에 어려움이 있었다.
  • FORTRAN의 등장

    • 1954년 - 지금 사용하는 것과 비슷한 프로그래밍 언어가 고안되었고, 능숙한 프로그래머가 짠 기계어에 비교하면 효율이 떨어졌지만 코드량이 줄고 읽기가 쉬워짐에 따라서 많은 사용자층을 확보했다.
    • FORTRAN의 설계자 John Backus는 '내가 이룬 성과의 대부분은 나태함에서 오고 있다. 나는 프로그램을 짜는 것을 좋아하지 않았다. 그래서 프로그램을 쉽게 짤 수 있는 시스템을 만들었다.'라고 말했다.

프로그래밍 언어 탄생의 목적

프로그래밍은 어떠한 것을 편하게 하기위해서 고안된 것이다.

이 말이 목적에 가장 핵심이고 함축된 말이라고 생각된다.

나태, 조바심, 자만심 이 3 가지를 프로그래머가 가지고 있어야하는 자질로 소개한다.

그중 가장 중요한 자질인 나태에 대해서 중점적으로 소개한다.

나태 - 전체 에너지 소비를 줄이기 위해 대부분의 능력을 집중하는 기질

나태의 요점은 '편안'이다. 즉 같은 성과를 달성하는 다수의 방법 중 가장 생산성이 높은 것을 선택함을 의미한다.

 

언어에 따라 다른 '편리함'의 의미

프로그래밍 언어의 목적은 '편리함'이라고 나와있지만 그렇다면 왜 수 많은 프로그램 언어가 존재하는것인지 생각해보게 한다.

그것은 언어 설계자마다 '편리함'이라는 의미가 다르기 때문이다.

무엇을 편하게 하고 싶은 것인가?

  • C++

    • 빠른 실행 속도를 중시한 언어
  • Scheme

    • 언어 사양을 쉽게 파악 할 수 있는 언어
  • Python

    • 다른 사람이 쓴 코드를 쉽게 해석할 수 있는 데 중점을 둔 언어
  • PHP

    • 웹 서비스를 쉽게 만들 수 있도록 해준다.
  • Haskell, OCaml

    • ML처리 계통 언어는 문장 처리를 쉽게 만든 언어

그리고 목적에 맞게끔 언어를 선택하고 사용하며 언어의 성능?에 대해서 논쟁하는 것이 유직하지 못하다고 하며 마무리 한다.

 

정리

프로그래밍 언어의 역사와 목적에 대해서 나오면서 프로그래밍의 목적은 '편리함'이고 그것에 대해서 무엇이 편한지는 언어 마다 다르다.

그리고 언어는 도구이며 목적에 맞는 언어를 판단한다. 유행, 남들이 사용하니깐 그러한 이유는 생산성과는 관련이 없고 자신이 어느 정도 성과를 낼 수 있는지 고려해서 결정해야한다.