자세한 언어로는 low-level에 가까운 어셈블리 언어나 c언어 등이 있다.
객체 지향 개념이 적용되지 않고, 코드를 작성할 때 자료형 등의 컴퓨터적 구조를 다 고려해줘야 하는 언어이다.
이 언어들은 사람보다 컴퓨터의 논리적인 사고방식에 맞추어져 있다는 특징이 있어서 사람들이 작성하기는 어렵지만, 컴퓨터가 실행하기는 좋다. 프로그램을 빠르고 효율적으로 만드는데 최적화 돼 있다. 그래서 스마트워치,tv,스피커,전광판,가전제품 등 컴퓨터가 메인이 아닌 기게에 자주 사용됩니다. 이런 기계들은 보통 이런 작은 칩에서 돌아간다. 그래서 저장 공간이나 성능이 컴퓨터보다 상당히 열악하다. 여기서 c 같은 '자세한 언어'가 핵심적으로 사용된다.
참고로 이런 곳에 들어가는 시스템을 임베디드 시스템이라고 부란다. IoT라고 해서 이런 임베디드 시스템을 연결해서 스마트홈을 만들거나 기계들 사이의 통신을 할 수 있게 하기도 한다.
임베디드 시스템 말고도 자세한 언어가 활약할 수 있는 분야가 있다.
예를 들어 수 많은 문자를 거의 실시간으로 전송해야 하는 텔레그램 같은 채팅 앱이나 트위치 같은 동영상 스트리밍 서비스, 검색엔진,개발자들이 코드 관리를 위해 사용하는 github,머신러닝 같은 빅데이터 처리 속도와 알고리즘이 중요한 그런 분야의 회사에서 많이 사용된다.
사람이 코딩하는 시간은 길어지지만, 컴퓨터가 실행하는 시간은 조금이라도 빠르게 하고 싶은 그런 경우다.
쳬계적인 언어
자세한 언어와 마찬가지로 static typing 언어지만, 객체 지향 개념이 적용된 언어이다. java나 c++같은 언어들이 여기에 속하고, 체계가 잡혀있기 때문에 여러 사람이 함께 작업하기에 가장 적합하고 , 협업 과정에서 오류가 적어서 주로 큰 규모의 프로젝트에 적합하다.
규모가 큰 기업에들에서는 java를 많이 사용하고있는데 구글,에어비앤비,우버 뿐 아니라 이베이, 핀터레스트,스포티파이,트립 어드바이저,아마존,인텔,필립스, 회사 이름으로 나열하려면 끝도없다. 그래서 취업을 하려면 java를 해라 이런얘기도 있다.
쉬운언어
객체 지향 개념이 적용된, dynamic typing 언어를 말하며, 프ㅗㄹ그래머가 아닌 사람도 비교적 쉽게 배우고 사용할 수있는 python,ruby등의 언어가 여기에 속한다.
이 언어들은 최대한 간결하고, 짧은 코드를 추구한다. 문법도 간편해서, 코드를 작성하는 시간이 가장 짧다. 귀찮은 건 다 컴퓨터에 맡겨버리는 거다 ㅋ
파이썬에는 이런말이 있다 'life is short you need python' 인생이 짧은 만큼 빨리빨리 개발할 수 있는 파이썬을 사용하라는 말이다. 'simple is better than complex'이런말도 있는데 간결한 것이 복잡한 것보다 낫다는 뜻이다. 복잡하게 하지말고 간편하게 코딩하자. 이런 뜻이다.
ruby의 개발자 마츠모토 유키히로는 '루비는 스트레스가 없는 쉬운 프로그래밍 언어이다. 프로그래밍 언어는 컴퓨터가 아닌 인간 중심으로 설계 되어야 한다.' 라고 하기도 했다.
쉬운 언어는 빠르게 개발이 필요한, 변화가 많고 잦은 분야에서 많이 사용되고, 데이터 사이언스 , 업무 자동화와 같이 개인 규모의 프로젝트에서도 가장 많이 사용된다.