본문 바로가기
Language

[Language] C언어, C++, JAVA, Python의 차이점

by kyunb 2022. 9. 3.

2022년 8월 TIOBE 프로그래밍 언어 순위 (출처: https://www.tiobe.com/tiobe-index)

TIOBE Index에서 발췌한 2022년 8월 프로그래밍 언어 인기 순위입니다. 우리에게는 익숙한 Python, C, Java 등이 상위권에 랭크된 모습을 볼 수 있습니다.

위의 순위는 프로그래밍 언어를 이용하는 엔지니어의 수, 해당 프로그래밍 언어 관련 강좌 및 홈페이지의 수, 검색엔진에서 프로그래밍 언어가 검색된 횟수를 토대로 순위를 산정합니다.

 

이 포스팅은 1위 ~ 4위 까지의 프로그래밍 언어의 특징을 소개합니다.

 


 

1. Python

 

1.1. 객체지향 언어, 스크립트 언어, 인터프리터 언어이다.

  •  파이썬은 스크립트 언어로 컴파일 과정 없이 인터프리터에 의하여 실행되므로, 컴파일 언어에 비해서는 속도가 느린 편이다.

1.2. 동적 타입 언어이다.

  • 변수의 자료형을 따로 지정하지 않고 선언하는 것으로 값을 지정할 수 있다. 따라서 변수의 자료형은 코드가 실행되는 시점에 결정된다. 

1.3. 배우기 쉬운 편이며 생산성이 높다.

 

1.4. 활발한 생태계가 구축되어 있다.

 

1.5. Garvage Collection을 지원한다.

  • 더 이상 참조되지 않는 불필요한 메모리를 알아서 정리해주는 Garbage Collection(GC) 지원.

1.6. 딥러닝, 빅데이터, AI 개발 등에 사용된다.

 

2. C

 

2.1. 절차지향형 언어이다.

 

2.2. 컴파일러 언어이다.

  • 인터프리터 언어에 비해 실행 속도가 빠르다.

2.3. Low Level 언어의 특징을 가진다.

  • 어셈블리어 수준으로 하드웨어를 제어할 수 있다. 따라서 하드웨어 제어 시스템 개발 등에 C언어가 주로 사용되고 있다. 또한 Low Level언어의 특징으로 다른 언어보다 학습장벽이 높은 편에 속한다.

2.4. 시스템 자원을 개발자가 직접 제어할 수 있다.

  • 시스템 자원을 자동으로 관리해주는 언어에 비해, C언어는 개발자가 시스템 자원을 직접 제어할 수 있다.

 

3. Java

 

3.1. 객체지향 언어이다.

  • Java는 C++과 마찬가지로 객체지향 언어이다. 하지만 설계 목표의 차이에 따른 차이가 존재한다. Java는 보안, 이식성, 빠른 개발에 비중을 두었지만, C++는 속도와 C언어와의 하위 호환성에 중점을 두었다. C++가 성능면에선 더 빠른 편이다.
  • 3.2. 인터프리터와 컴파일러를 모두 사용한다.

 

3.3. Garbage Collector가 존재한다.

 

3.4. 웹 서비스 개발, 안드로이드 앱 개발에 주로 사용된다.

 

4. C++

 

4.1. 객체 지향언어이다.

 

4.2. 타입 체크를 엄격히 한다.

  • Runtime Error의 가능성을 줄이고 디버깅을 돕는다.

4.3. 실행시간의 효율성 저하를 최소화한다.

  • 인라인 함수의 도입 등 함수 호출로 인한 성능 저하를 막는다.

4.4. 게임 개발에 많이 사용된다.

 

[출처] : https://code-lab1.tistory.com/240