언어가 해결하려던 것들

폴 그레이엄이 오래 전에 작성했던  What Languages Fix란 글을 번역했습니다. 읽어 보시면 알겠지만 그냥 재미로 읽고 넘길 내용입니다.


 

케빈 켈러허(Kevin Kelleher)가 프로그래밍 언어를 비교하는 재미있는 방법을 제안했다. 각 언어가 해결하려는 문제를 적어 보자는 것이다. 이 방식으로 많은 언어가 정말 잘 설명되는 것을 보고 놀랐다.

알골(Algol): 어셈블리 언어는 너무 하부 수준이야.
Algol: Assembly language is too low-level.

파스칼(Pascal): 알골은 데이터 타입이 부족해.
Pascal: Algol doesn’t have enough data types.

모듈라(Modula): 파스칼은 시스템 프로그래밍에 너무 취약해.
Modula: Pascal is too wimpy for systems programming.

시뮬라(Simula): 알골은 시뮬레이션에 적합하지 않아.
Simula: Algol isn’t good enough at simulations.

스몰톡(Smalltalk): 시뮬라의 모든 것이 객체가 아니야.
Smalltalk: Not everything in Simula is an object.

포트란(Fortran): 어셈블리 언어는 너무 하부 수준이야.
Fortran: Assembly language is too low-level.

코볼(Cobol): 포트란은 무서워.
Cobol: Fortran is scary.

피엘원(PL/I): 포트란은 데이터 형이 부족해.
PL/I: Fortran doesn’t have enough data types.

에이다(Ada): 모든 언어는 뭔가가 빠져있어.
Ada: Every existing language is missing something.

베이직(Basic): 포트란은 무서워.
Basic: Fortran is scary.

에이피엘(APL): 포트란은 배열을 다루는데 적당치 않아.
APL: Fortran isn’t good enough at manipulating arrays.

제이(J): APL은 고유의 문자집합이 필요해.
J: APL requires its own character set.

씨(C): 어셈블리 언어는 너무 하부 수준이야.
C: Assembly language is too low-level.

씨뿔뿔(C++): C는 너무 하부 수준이야.
C++: C is too low-level.

자바(Java): C++는 너무 잡다해. 그리고, 마이크로소프트가 우리를 박살내려고 해.
Java: C++ is a kludge. And Microsoft is going to crush us.

씨샵(C#): 자바는 썬이 다 해먹으려고 해.
C#: Java is controlled by Sun.

리스프(Lisp): 투어링 머신은 계산을 서술하기에 난해해.
Lisp: Turing Machines are an awkward way to describe computation.

스킴(Scheme): 맥리스프(MacLisp)는 너무 잡다해.
Scheme: MacLisp is a kludge.

티(T): 스킴은 라이브러리가 없어.
T: Scheme has no libraries.

커먼 리스프(Common Lisp): 리스프는 방언이 너무 많아.
Common Lisp: There are too many dialects of Lisp.

딜런(Dylan): 스킴은 라이브러리가 없고 리스프 문법은 무서워.
Dylan: Scheme has no libraries, and Lisp syntax is scary.

펄(Perl): 쉘 스크립트/awk/seed는 프로그래밍 언어라고 하기엔 부족해.
Perl: Shell scripts/awk/sed are not enough like programming languages.

파이선(Python): 펄은 너무 잡다해.
Python: Perl is a kludge.

루비(Ruby): 펄은 너무 잡다하고 리스프 문법은 무서워.
Ruby: Perl is a kludge, and Lisp syntax is scary.

프롤로그(Prolog): 프로그래밍은 논리에 비해서 부족해.
Prolog: Programming is not enough like logic.