프로그래밍 언어의 구분(AOT, JIT, 인터프리터)
프로그래밍 언어는 크게 3가지로 구분된다.
AOT, JIT, 인터프리터 이다.
컴파일 기준에 따라 구분된다.
AOT 혹은 네이티브 언어 : C/C++, 파스칼 소스 코드를 컴파일 후에 실행해야한다. 가장 빠르다,,, 고 알려져 있으나 꼭 그렇지만도 않다. |
JIT : JAVA, 파이썬, PHP, 자바 스크립트, C#, 루비 등등 최근 나온 언어 대부분 컴파일러와 가상머신으로 구분된다. 바이트코드를 생성하는 1차 컴파일러와 실행하는 2차 VM 컴파일러로 구분된다. 처음 언어 배울 때 가상 머신이라는게 왜 필요한지 궁금했다면 JIT 언어이다. JVM과 CLR, CPython는 미리 설치 파일을 통해 1차 컴파일러를 배포한다. JVM이라는 거 자꾸 깔라고 하는게 1차 컴파일러 배포이다. 네이티브 언어에 비해서 환경에 관계없이 실행가능한 장점이 있고 매우 유연하다. |
인터프리터 : 비주얼 베이직, bash, awk 코드를 한줄씩 읽고 한 줄씩 실행한다. 한 줄씩 검증하기 때문에 학습에 용이해서 교육용으로 자주 사용되던 시절도 있다. 물론 지금은 교육용으로나 이후 활용도나 언어가 훨씬 직관적인 파이썬이 더 뛰어나다. 한 줄씩 읽기 때문에 속도도 느리고 범용적이지도 않다. 그냥 단순해서 배우기 쉽고 가볍다는 장점 하나 뿐인데 가져다 쓸 게 없어서 가벼울 뿐... |
결론적으로..
현세대에 그냥 언어를 배운다면 그냥 JIT 언어를 배우는 게 좋다.