개인적으로 생각하는 프로그래밍 언어 정리
ja-vascript - 웹 표준, 공용 규격으로 플랫폼 호환에 유리, V8, bun 등에 의한 스크립트 언어임에도 극단적인 최적화.
컴파일이 필요 없어서 생산성이 좋음
스크립트 언어로써 GC 보유
Typescript - 자바스크립트에 타입 주석을 붙인 문법.
자바스크립트로 컴파일 시켜서 사용.
컴파일이 필요하지만, 무시 가능한 수준의 컴파일 속도
스크립트 언어로써 GC 보유
Python - 딥러닝, 머신러닝, 빅데이터등에 자주 사용되어 상당한 풀을 보유하는 AI 개발용 스크립트. 다소 느린 언어. 언어적인 이점은 적지만 머신러닝 인프라가 상당함.
컴파일이 필요 없어서 생산성이 좋음
스크립트 언어로써 GC 보유
Java - 중간언어를 거치는 구조로 플랫폼 호환을 시킨 준 네이티브 언어.
컴파일이 필요한 언어지만 링크 없이 개별 컴파일하여 무시 가능한 수준.
GC를 보유해 생산성이 높음.
구동하려면 전용 런타임이 필요. 런타임이 있으면 다양한 플랫폼에서 구동 가능.
C# - Java 유사 준 네이티브 언어. 자바보다 최적화가 잘됨.
컴파일이 빠른 편
구동하려면 전용 런타임이 필요. 런타임이 있으면 다양한 플랫폼에서 구동 가능.
Go - 네이티브 GC 포함 언어, 자바와 유사한 포지션 하지만 네이티브로 컴파일 됨. 런타임을 내장함. 직접 실행됨.
네이티브 언어임에도 컴파일 속도가 매우 빠름
GC를 보유해 생산성이 높음.
Rust - 네이티브 메모리 안전 언어, 가볍게 만들기 위해 GC를 제외함. 메모리를 안전하게 사용하도록 문법적 제약이 있음. 멀티스레드 환경에서 안전하도록 문법적 제약이 있음. 문법적으로 다소 특이함. 새로운 개념을 도입한 언어.
컴파일이 필요함.
C++ - 네이티브 잡탕 언어. 이 언어에는 없는 기능이 없음.
가장 많은 문법을 가진 언어.
대신 컴파일이 가장 느림.
메모리 관리가 느슨함. 개발자 책임.
C - 네이티브 근본 언어.
컴파일이 필요함.
메모리 관리는 개발자 책임.
Zig - 마이너한 네이티브 신규 언어. C언어와 유사한 포지션.
상수표현식이 강력함. 대부분의 작업을 컴파일 타입에 계산하도록 유도할 수 있음. 네이티브 언어인데도 타입을 값처럼 사용할 수 있음. 문법적으로 특이함.
다른 신규 언어들과 다르게 개발자에게 모든 책임을 부여함.
개발자가 모르는 곳에서 알아서 처리되서는 안됨.
컴파일이 필요함
메모리는 개발자 책임.
Asm - 기계어 1:1 대응 언어. 단순히 숫자 대신 글자를 쓰기 위해 사용하는 언어. 최적화 책임은 전부 개발자에게 전가. 자동 최적화가 없음.
하드웨어에 대해서 잘 모르는 사람이 사용하면, 다른 네이티브 언어보다 더 최적화가 안될 수 있음.