| [[프로그래밍 언어|'''프로그래밍 언어 {{{#!wiki style="font-family: Times New Roman, serif; display: inline;"]] | ||
| {{{#!wiki style="min-height: calc(1.5em + 5px); margin: 0 -10px -5px" {{{#!wiki style="display: inline-table; min-width: 40%; min-height: calc(1.5em + 5px)" {{{#!folding [ 목록 ] {{{#!wiki style="margin: -5px -1px" | <colbgcolor=royalblue><colcolor=#fff> ※ 나무위키에 등재된 프로그래밍 언어 목록 | |
| A | ActionScript · AdaT · AgdaTP · ALGOLT · ApexT · APL · awk · AssemblyT | |||||||
| B | BASIC | |||||||
| C | ||||||||
| D | ||||||||
| E | Elixir · | |||||||
| F | ||||||||
| G | GNU Octave · | |||||||
| H | ||||||||
| J | ||||||||
| K | ||||||||
| L | LeanTP · | |||||||
| M | MATLAB · MaxV · MojoT · Moonlight | |||||||
| N | ||||||||
| O | OberonT · Objective-CT · | |||||||
| P | PascalT · | |||||||
| Q | Q#T · QML | |||||||
| R | ||||||||
| S | SAS · | |||||||
| T | ||||||||
| U | UdonV | |||||||
| V | Visual Basic · Visual Basic .NET · Visual Basic for Applications · vvvvV | |||||||
| X | XSharp | |||||||
| Z | ZenScript · | |||||||
| ㄴ | 누리 | |||||||
| ㅅ/ㅆ | 숨V · 씨앗 | |||||||
| ㅇ | 약속 · | |||||||
| ㅊ | 창조 | |||||||
| T: 정적 타입 프로그래밍 언어 · P: 증명 보조 언어 · S: LISP 방언 및 S-표현식 기반 언어 · V: 시각적 프로그래밍 언어 | }}}}}}}}}{{{#!wiki style="display: inline-table; min-width: 40%; min-height: calc(1.5em + 5px)" {{{#!folding [ 순위 ] {{{#!wiki style="margin: -5px -1px -10px" | {{{#!wiki style="min-height: calc(1.5em + 5px); margin: 0 -10px -5px" {{{#!wiki style="display: inline-table; min-width: 25%; min-height: calc(1.5em + 5px)" {{{#!folding [ IEEE Spectrum 2025 ] {{{#!wiki style="margin: -5px -1px" | <tablewidth=100%><tablebgcolor=transparent><colbgcolor=#11a500><colcolor=#fff> 스펙트럼 부문 상위 10개 프로그래밍 언어 | <colbgcolor=#ff1100><colcolor=#fff> 직업 부문 상위 10개 프로그래밍 언어 | ||||
| 1 | Python | 1 | Python | |||||
| 2 | Java | 2 | SQL | |||||
| 3 | C++ | 3 | Java | |||||
| 4 | SQL | 4 | JavaScript | |||||
| 5 | C# | 5 | TypeScript | |||||
| 6 | JavaScript | 6 | C# | |||||
| 7 | TypeScript | 7 | C++ | |||||
| 8 | C | 8 | HTML | |||||
| 9 | Shell | 9 | Go | |||||
| 10 | Go | 10 | Shell | }}}}}}}}}{{{#!wiki style="display: inline-table; min-width: 25%; min-height: calc(1.5em + 5px)" {{{#!folding [ Stack Overflow 2025 ] {{{#!wiki style="margin: -5px -1px" | <colbgcolor=#ffa500><colcolor=#fff> 2025년 Stackoverflow 설문조사 상위 25개 프로그래밍 언어 | |||
| 1 | JavaScript | <colbgcolor=#ffa500><colcolor=#fff> 14 | Rust | |||||
| 2 | HTML & CSS | 15 | Kotlin | |||||
| 3 | SQL | 16 | Lua | |||||
| 4 | Python | 17 | 어셈블리어 | |||||
| 5 | Bash/Shell | 18 | Ruby | |||||
| 6 | TypeScript | 19 | Dart | |||||
| 7 | Java | 20 | Swift | |||||
| 8 | C# | 21 | R | |||||
| 9 | C++ | 22 | Groovy | |||||
| 10 | PowerShell | 23 | Visual Basic | |||||
| 11 | C | 24 | VBA | |||||
| 12 | PHP | 25 | MATLAB | |||||
| 13 | Go | }}}}}}}}}{{{#!wiki style="display: inline-table; min-width: 25%; min-height: calc(1.5em + 5px)" {{{#!folding [ TIOBE 2025 ] {{{#!wiki style="margin: -5px -1px" | <colbgcolor=#2777c2><colcolor=#fff> 2025년 10월 TIOBE 검색어 점유율 상위 20개 프로그래밍 언어 | |||||
| 1 | Python | <colbgcolor=#2777c2><colcolor=#fff> 11 | Fortran | |||||
| 2 | C | 12 | Perl | |||||
| 3 | C++ | 13 | R | |||||
| 4 | Java | 14 | PHP | |||||
| 5 | C# | 15 | Assembly language | |||||
| 6 | JavaScript | 16 | Rust | |||||
| 7 | Visual Basic | 17 | MATLAB | |||||
| 8 | Go | 18 | Scratch | |||||
| 9 | Delphi / Object Pascal | 19 | Ada | |||||
| 10 | SQL | 20 | Kotlin | }}}}}}}}}{{{#!wiki style="display: inline-table; min-width: 25%; min-height: calc(1.5em + 5px)" {{{#!folding [ PYPL 2025 ] {{{#!wiki style="margin: -5px -1px -10px" | <colbgcolor=green><colcolor=#fff> 2025년 11월 PYPL 검색어 점유율 상위 20개 프로그래밍 언어 | |||
| 1 | Python | <colbgcolor=green><colcolor=#fff> 11 | Ada | |||||
| 2 | Java | 12 | TypeScript | |||||
| 3 | C++ | 13 | MATLAB | |||||
| 4 | Objective-C | 14 | Kotlin | |||||
| 5 | R | 15 | PowerShell | |||||
| 6 | JavaScript | 16 | Go | |||||
| 7 | C# | 17 | Dart | |||||
| 8 | Swift | 18 | Ruby | |||||
| 9 | PHP | 19 | Lua | |||||
| 10 | Rust | 20 | VBA | }}}}}}}}}}}} | }}}}}}}}}}}} | |||
| 실행 방식 · 분류 · 언어 목록(분류:프로그래밍 언어 문법) · 언어별 예제 · 틀:프로그래밍 언어 문법 · 틀:난해한 프로그래밍 언어 | ||||||||
| 핵스 Haxe | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 최초 공개 | 2005년 10월 30일 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 개발 | Nicolas Cannasse | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 개발 언어 | OCaml | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 최신 버전 | 4.3.7 - 2025년 5월 9일 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 확장자 | .hx | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1. 개요
#!syntax javascript
class Main {
static function main() {
trace("Hello, World!");
}
}
Haxe는 여러 플랫폼으로 컴파일할 수 있는 오픈 소스 고급 프로그래밍 언어이다. 하나의 코드로 다양한 언어로 변환할 수 있도록 설계되었다. 지원되는 타겟은 JavaScript, PHP, Lua, Python, Java, JVM, Hashlink, cppia, Neko, SWF, C#이 있다. 또한 인터프리팅도 지원한다.
Hashlink와 Neko는 Haxe 개발팀이 개발한 VM이다. 다만, neko는 개발을 중단하고 유지보수만 하는 모양이다. https://github.com/HaxeFoundation/neko/issues/287 에서 언급되었다시피, Hashlink가 대체제가 된 것으로 보인다.
cppia는 정보가 정말 적지만, 공식 문서에서는 스크립팅 가능한 cpp 서브타겟이라고 설명하고 있다.
2. 특징
- 정적 타입 언어로, 컴파일 시 타입 오류를 사전에 방지할 수 있다.
- 객체지향과 함수형 프로그래밍 패러다임을 모두 지원한다.
- 하나의 소스코드로 다양한 플랫폼(Web, 데스크톱, 모바일, 서버)에서 실행 가능하다.
- 컴파일 속도가 빠르고 생성된 코드의 최적화 수준이 높다.
- 매크로(Macro) 기능을 통해 메타프로그래밍이 가능하다.
- 표준 라이브러리를 통해 여러 플랫폼에서 동일한 API를 제공한다.
3. 개발환경
자체 패키지 매니저인 haxelib이 존재한다. python의 pip처럼 패키지를 설치할 수 있다. 저장소HL/C
haxelib으로 hashlink 패키지[1]를 설치하고,
haxe --hl (이름).c -m (클래스명)을 실행하면 C파일이 생성된다. HL[2]의 바이트코드를 C 소스코드로 변환하여 네이티브 컴파일한다. 이점은 C 컴파일러로 한번 더 최적화할 수 있기 때문에 성능이 향상된다. 다만 컴파일 시 hl 라이브러리 아카이브가 필요하다. 이 아카이브는 hashlink 프로젝트를 직접 빌드하여 생성할 수 있다.--hl 옵션의 파일명 확장자가 .c가 아니면 Hashlink 바이트코드로 출력된다[3]. 이 점 유의.4. 문법
클래스 선언시 이름의 첫 글자가 대문자가 되도록 강제한다.5. 생태계
주로 게임개발에서 틈새시장으로 간신히 숨쉬고 있지만, 그마저도 사용자가 적고, 최신 안정 버전이 2026년 8월 기준 1년 넘게 나오지 않고 있다. 미래가 밝지 않은 듯 하다. [4]6. 여담
GNU File 명령어가 Neko 바이너리는 인식하지만 Hashlink는 인식하지 못한다. 신생 포맷이라 매직이 등록되지 않은 것으로 보인다.Papers, Please가 이 언어로 개발되었다.
7. 관련 언어
[1] hashlink VM이 아니라, 별개의 패키지이다.[2] Hashlink 바이트코드[3] hl명령어로 바로 실행 가능한 포맷[4] 물론 방치는 아니고, 여러 이슈를 해결한 브랜치가 많이 있지만 아직 메인 브랜치에 병합되지 않은 채 따로 놀고 있다.