자세한 언어와 체계적인 언어,쉬운 언어

장민영·2022년 12월 9일

자세한 언어로는 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의 개발자 마츠모토 유키히로는 '루비는 스트레스가 없는 쉬운 프로그래밍 언어이다. 프로그래밍 언어는 컴퓨터가 아닌 인간 중심으로 설계 되어야 한다.' 라고 하기도 했다.

쉬운 언어는 빠르게 개발이 필요한, 변화가 많고 잦은 분야에서 많이 사용되고, 데이터 사이언스 , 업무 자동화와 같이 개인 규모의 프로젝트에서도 가장 많이 사용된다.

  • 장점: 진입 장벽이 낮다. 배우기 쉽다. 코드를 읽거나 수정하기가 가장 간편하다. 코드를 빨리 작성할 수 있다.
  • 단점: 코드 작성 시간은 짧지만, 컴퓨터의 코드 실행 속도가 느리다. 성능 제약이 심한 곳에서 빠른 속도를 내야 하는 경우는 사용할 수 없다. 프로그래밍 코드 문법에 제약이 너무 없어서, 큰 규모의 프로젝트에서 실수를 방지하기가 어렵다. 많은 사람들의 협업에는 부적합할 수 있다.
profile
개발새발자

0개의 댓글