- 프로그래밍 언어를 분류하는 기준으로 객체 지향 지원 여부와 코드에 자료형 유무가 있다. 이외에도 컴퓨터와 가까운지, 인간에 가까운지에 따라 분류가 가능하다. 이 기준은 딱 떨어진다기 보다는 언어에 따라 상대적인 개념이라 할 수 있다. 위 사진 스펙트럼과 같이 표현이 된다.
- 인간과 가까운 언어를 고수준 언어(High-level)라 하고 컴퓨터와 가까운 언어를 저수준 언어(Low-level)언어라 한다. 저수준 언어는 사람이 이해하기 어렵고 반대로 고수준 언어는 컴퓨터가 이해하기 어렵다.
저수준 언어에 해당되는 어셈블리어는 다음 사진과 같이 이해하기가 힘들다.
어셈블리어보다 더 저수준 언어에 가까운 언어는 Machine Code이다. 우리가 익히 알고 있는 0과 1의 이진수로 이루어진 언어이다.
프로그래밍 언어를 나누는 세 분류가 있다. 자세한 언어, 체계적인 언어, 쉬운 언어로 세 분류를 나누었다.
자세한 언어로는 저수준 언어인 어셈블리어와 C언어를 예로 들 수 있다. 객체 지향을 지원하지 않고 컴퓨터적 구조를 따릅니다. 사람들이 작성하기 어려운만큼 컴퓨터가 실행하기에는 좋다.
자세한 언어는 속도와 효율을 요구하는 스마트 기기에서 주로 사용되고 있다. 칩이라는 아주 작은 공간에서 빠르게 동작해야 하기 때문이다. 이러한 시스템을 임베디드라고 부른다. IoT는 이러한 임베디드 시스템을 통해 스마트홈을 구현하거나 기계들 사이의 통신을 가능케 하는 기술이다.
임베디드 외에도 실시간을 요구하는 채팅 프로그램이나, 주식 프로그램, 스트리밍 서비스에서도 많이 활용되고 있습니다.
장점은 프로그램을 만들기만 하면 실행 속도가 매우 빠르고 성능이 좋지 않은 컴퓨터에 적용하기 좋다는 것이고 단점은 코드를 작성하거나 고치는 게 어렵다는 것입니다.
자세한 언어와 마찬가지로 Static Typing언어 이지만 객체 지향을 지원한다는 부분에서 차이가 있다. Java와 C++이 대표적인 예이다. 체계가 잘 잡혀있어 여러 사람이 협력하기에 가장 적합한 언어이며 오류가 적어 규모가 큰 프로젝트에서 잘 사용된다.
체계적인 언어의 장점은 체계성과 협업이 중요한, 규모가 큰 프로젝트에 적합하며 객체 지향 개념이 적용되어 자세한 언어보다는 유지보수가 편리하다는 것입니다. 단점은 여전히 문법이 어려운 편이며 코드를 작성하는 시간보다 체계적으로 설계하는 데 시간이 오래 걸릴 수 있다는 것입니다.
특히, 기업에서는 Java를 매우 선호합니다. Google, Ebay, Uber 등 이름 난 회사들에서 Java를 활발히 사용하고 있습니다. 많은 이들이 취업을 위해 Java를 선택하는 이유이다.
이것은 어디까지나 흐름과 대세에 관한 이야기일뿐, 여전히 필요한 분야에서는 C와 같은 자세한 언어가 활발히 쓰이고 있다. 체계적인 언어 중 하나인 Kotlin은 최근에 나온 언어이다.
R은 주로 통계에 관한 소프트웨어와 데이터 분석, 시각화에 사용되는 언어이다. 통계와 빅데이터 분석에 필요한 기능에 특화되어있기 때문이다.
SQL은 데이터베이스를 관리하기 위한 목적으로 나온 언어이다. 데이터를 모아둔 창고인 데이터베이스에서 원하는 데이터를 추출하거나 데이터 서버를 구축하고 운영하는데 사용되고 있다.
HTML과 CSS는 웹페이지를 만들 때 사용되는 언어이다. HTML이 웹페이지의 구조와 레이아웃을 담당한다면 CSS는 웹페이지의 시각적 표현을 담당한다. 이에 Java Script를 더하여 웹페이지가 사용자와 상호작용할 수 있도록 만든다.
이외에 교육용 프로그래밍 언어 Scratch 등도 있다.