프로그램을 만들기 위한 프로그래밍 언어의 종류는 굉장히 다양하다.
10년 주기로 보통 40~50개의 프로그래밍 언어가 만들어지고 있다고 한다.
프로그래밍 언어의 종류와 웹 프로그래밍에 좀 더 최적화된 프로그래밍 언어의 장단점에 대해 알아보겠다.
먼저, 언어의 종류는 저급 언어, 고급 언어로 나눌 수 있다.
1. 저급 언어
저급 언어는 기계 중심의 언어를 말한다.
컴퓨터는 전기로 동작한다. 즉, 전기 신호인 1(on), 0(off) 두 가지 상태 값으로 동작한다.
0과 1로 표현되는 숫자를 2진수라고 한다.
2진수로만 작성하는 프로그래밍 언어를 기계어(Machine Language)라고 한다.
이렇게 숫자로만 이루어진 언어는 사용하기도 어렵고, 유지보수도 어렵다.
그래서 이 숫자로 된 문장과 1:1로 대응하는 기호를 만들고, 이 기호로 프로그래밍을 하게 되었다.
이러한 기호로 작성된 프로그래밍 언어를 어셈블리어(Assembly Language)라고 한다.
기호는 기계가 바로 알아들을 수 없으므로, 기호를 원래 숫자로 바꾸는 과정이 필요하다.
이러한 과정을 컴파일(Compile)이라고 하며, 컴파일에 사용되는 도구를 컴파일러(Compiler)라고 한다.
어셈블리어 역시 프로그래밍하기 어렵고, 유지보수도 어렵기 때문에, 기계어와 어셈블리어 둘 다 현재는 잘 사용하지 않는다.
2. 고급 언어
고급 언어는 저급 언어와 반대로 사람 중심 언어이다.
기계가 아닌, 사람이 좀 더 이해하기 쉬운 문법으로 프로그래밍 할 수 있다.
고급 언어도 기계가 바로 이해할 수 없는 언어이므로, 컴파일 과정이 필요하다.
컴퓨터 성능이 좋아지고, 컴파일러와 관련된 기술이 발전하면서 이런 고급 언어로 프로그래밍할 수 있게 됐다.
고급 언어에는 다음과 같은 언어들이 있다.
- FORTRAN: 최초의 고급 언어 중 하나이며, 과학 계산용으로 주로 사용된다. 현재 공대에서도 많이 사용되고 있다.
- COBOL: FORTRAN과 같이 오래된 언어이다. 일반 업무용으로 만들어졌고, 현재 은행 등에서도 사용되고 있다.
- PROLOG: 논리형 프로그래밍 언어로, 논리식을 토대로 오브젝트와 오브젝트 간의 관계에 관한 문제를 해결하기 위해 사용된다.
- C: 1972년 미국 벨 연구소의 데니스 리치에 의해 개발된 고급 언어로, 시스템 프로그래밍에 가장 적합한 평가를 받는 언어이다.
- Erlang: 스웨덴의 에릭슨에서 개발한 함수형 병행성 프로그래밍 언어이다. 통신 인프라를 위한 언어이다.
- Lisp: LISt Processor의 약자로, 대표적인 함수형 언어이다. 현대 컴퓨터를 위해 만들어진 고급 언어 중 두 번째로 오래된 언어이다. (첫 번째는 FORTRAN)
- Swift: 2014년, WWDC(Apple WorldWide Developers Conference)에서 공개한 프로그래밍 언어이다. 최근에 만들어진 언어로, 현대 프로그래밍 언어의 발전을 대다수 계승한 모던 프로그래밍 언어라고 할 수 있다.
- Kotlin: 2011년, IntelliJ IDEA의 개발사 JetBrains에서 개발한 프로그래밍 언어이다. JVM기반 언어이며, JAVA와 상호 운영이 100% 지원된다. Swift와 같이 현대 프로그래밍 언어의 발전을 대다수 계승한 모던 프로그래밍 언어라 할 수 있다.
- Clojure: 클로저는 리치 히키가 만든 리스프 프로그래밍 언어의 방언으로, 범용 함수형 언어이다.
- Python: 프로그래밍 입문자가 읽기 쉽고 적은 코드를 사용하여 프로그래밍을 개발할 수 있다. 데이터 과학에서도 자주 사용되며, 웹 사이트 개발에도 많이 사용되고 있다. 최근 Python은 ML(machine learning)에서도 많이 사용되고 있다.
- JAVA: 1995년, 썬 마이크로 시스템즈에서 개발한 객체지향 프로그래밍 언어이다. 거의 매년 세계에서 가장 많이 사용되는 언어로 뽑히고 있다.
3. 인기가 많은 프로그래밍 언어
사람마다 인기의 기준이 달라 순위를 매기기 힘들지만, 기업이나 언론에서 github, stackoverflow와 같은 사이트에서 언급되는 횟수로 인기를 파악하고 있다.
Octoverse에서 2014년부터 2018년까지 github에서 쓰이는 top10 언어를 그래프로 제공해주고 있다.
티오베의 자료도 공신력 있다고 많은 개발자들이 생각하고 있다.
티오베는 소프트웨어 품질 관련 서비스를 제공하고 있는 기업이다.
위키피디아, 아마존, 유튜브, 구글 검색창에 입력되는 정보를 이용하여 순위를 정한다.
github에선 JavaScript가 가장 많이 사용되고 있고,
전체적으로 Java가 가장 많은 비율을 차지하고 있다고 볼 수 있다.
그래도 격차는 그다지 크지 않은 것 같다.
1) 웹 관련 인기 언어
- Python: 프로그래밍 입문자가 읽기 쉽고, 적은 코드로 프로그래밍을 할 수 있다. 데이터 과학에도 자주 사용되며, 웹 사이트 개발에서도 많이 사용되고 있다. 많은 사람들이 추천하는 언어이다.
- PHP: 웹의 80% 이상이 PHP로 만들어졌다고 말한다. 그만큼 웹 개발에 많이 사용되는 언어이다.
- JavaScript: 자바스크립트는 브라우저에서 동작하는 언어로 시작했다. 현재는 서버에서도 작성할 수 있는 프로그램으로 점차 영역을 넓혀가고 있다. 프런트엔드 개발자라면 반드시 알아야 할 언어이다. 자바스크립트 커뮤니티도 점점 거대해지고 있다.
- JAVA: 엔터프라이즈 소프트웨어 환경에 잘 맞는 언어이다. 큰 규모의 소프트웨어 개발에 자바 언어가 많이 사용되고 있다. JAVA언어 관련 수많은 커뮤니티에 의해, 지속적으로 발전되어 훌륭한 구조와 설계 기법들이 갖춰져 있다.
- Ruby: 빠른 개발에 널리 사용되며, 단순하면서 세련된 웹 어플리케이션을 만들 수 있기 때문에 인기 있다.
p.s)
생각해보기
1. 프론트 엔드부터 서버 개발까지 한 가지 프로그래밍 언어를 사용하여 개발한다면 어떤 언어를 사용하는 것이 좋을까?
- JavaScript는 클라이언트부터 서버까지 개발 가능하므로, JavaScript를 사용하는 것이 좋겠다.
2. 다양한 라이브러리, 쉬운 개발, 읽기 쉽고 적은 코드를 장점으로 하려면 어떤 언어를 사용하는 게 좋을까?
- Python이 코드가 짧고 입문자도 읽기 쉬운 고급 언어이므로, Python이 좋겠다. 또, 많은 사람들이 좋아하고 관련 커뮤니티도 점점 활발해지고 있어, 라이브러리도 다양하다.
3. 프로그래밍 언어에게 좋은 커뮤니티가 있다는 것은 어떤 장점이 있을까?
- 서로 어려운 것들을 물어보고, 공부한 것들을 교류하면서 더 효율적인 프로그래밍이 가능하고, 해당 언어를 사용하는 개발자들 수준도 올라갈 것이라 생각한다.
출처)
edwith 부스트코스 웹 프로그래밍
TIOBE
Octoverse
'etc > Web' 카테고리의 다른 글
로컬 테스트 서버 Python의 SimpleHTTPServer (0) | 2019.10.07 |
---|---|
파일 업로드 & 다운로드 (1) | 2019.09.13 |
웹 프론트엔드 개발자가 공부할 것들 (0) | 2019.09.10 |
웹이 동작하는 법 (HTTP 프로토콜의 이해) (0) | 2019.08.20 |
댓글