Chapter27
포트란, 코볼, 베이직이 성공했던 이유 중 하나는 특정 응용 분야에 집중했기 때문이다. 이 언어들은 굳이 모든 프로그래밍 과제를 처리하려고 하지 않았다.
1970년대에 '시스템 프로그래밍' 용도로, 즉 어셈블러, 컴파일러, 텍스트 편집기 같은 프로그래머 도구와 심지어 운영체제까지 작성할 목적으로 사용할 언어들이 만들어졌는데 그 중 가장 성공적이었던 것은 C 언어이다. C는 개발 이후 미미하게 변경돼서 오늘날의 C프로그램은 30 ~ 40년 전의 코드와 거의 비슷해 보인다.
1980년대에 들어서는 규모가 매우 큰 프로그램의 복잡성 관리를 도울 의도로 설계된 언어들이 개발되었는데 그 중 C++가 대표적이다. C++는 C에서 진화했고 C 프로그램은 대부분 C++프로그램에서도 유효하지만 아닌 경우도 있다.
오늘날 컴퓨터에서 사용되는 주요 프로그램 대부분은 C나 C++로 작성됐다. 대부분의 맥 소프트웨어도 C, C++와 오브젝티브(C의 변종)로 작성된다.
컴퓨터에는 계속해서 더 빠른 프로세서와 용량이 큰 메모리가 장착되었고, 프로그래밍을 빠르고 편하기 하는 것이 컴퓨터가 효울적으로 돌아가도록 하는 것보다 더 중요해졌다.자바와 자바스크립트 같은 언어는 의도적으로 이러한 트레이드오프에 맞춰 설계됐다.
원래 자바의 적용 대상은 속도는 그다지 중요하지 않지만 유연성이 중요한 가전 제품과 전자 기기 같은 작은 임베디드 시스템이었다. 이후 자바는 웹페이지상에서 실행할 용도로 변경되었지만 별로 인기를 얻지 못했고, 대신 웹 서버에 널리 사용되고 있다. 또 자바는 안드로이드 앱을 작성하는 주요 언어이기도 하다. C++보다 단순하지만 C보다는 더 복잡하다. 또 C보다 더 안전하기는 한지만 몇몇 위험한 특성을 제거했고 메모리에서 복잡한 자료 구조를 관리하는 일처럼 에러가 방생하기 쉬운 닥업을 처리할 내장 메커니즘을 갖추고 있기 때문이다. 그래서 프로그래밍 수업에서 처음 배우는 언어로도 인지도가 높다.
특정 작업을 하는 프로그램을 작성하는 데는 항상 많은 방법이 있다. 문체와 적절한 어휘 사용 등은 글을 쓸 때도 중요하지만 프로그램을 작성할 때도 중요하다.
java import java.util.*; class AddUp{ public static void main(String [] args){ Scanner keyboard = new Scanner(System.in); int num, sum; sum = 0; num = keyboard.nextInt(); while (num != 0){ sum += num; num = keyboard.nextInt(); } System.out.println(sum); } }
먼저 이름의 일부가 겹친다는 점을 제외하면 자바와 아무 관계가 없다.
자바스크립트는 처음부터 웹페이지의 동적인 효과를 구현하기 위해 브라우저 내부에서 사용할 목적으로 설계되었고, 오늘날 거의 모든 웹페이지는 자바스크립트코드를 어느 정도 포함하고 있다. 자바스크립트는 시험 삼아 무언가 만들어 보기 쉽다. 언어 자체가 단순하다. 컴파일러가 모든 브라우저에 내장되어 있어 별도로 다운로드 하지 않아도 되고 계산한 결과를 바로 볼 수 있다.
javascript var num, sum; sum = 0; num = prompt("Enter new value, or 0 to end"); while (num != 0){ sum = sum + parseInt(num); num = prompt("Enter new value, or 0 to end"); } alert(sum);
파이썬은 C, C++, 자바, 자바스크립트와 구문 규칙 면에서 약간 다른데, 가장 눈에 띄는 부분은 문장을 그룹화하는 데 중괄호 대신 들여쓰기를 사용한다는 점이다. 파이썬은 처음부터 가독성에 초점을 두고 설계되었다. 파이썬은 배우기 쉽고, 생각할 수 있는 거의 모든 프로그래밍 과제에 필요한 라이브러리를 풍부하게 제공해서 가장 널리 사용되는 언어 중 하나로 자리 잡았다.