역사(History)

역사(History)

Haxe 프로젝트는 2005년 10월 22일, 프랑스 개발자 Nicolas Cannasse에 의해 시작됐어요. 이 프로젝트는 인기 있었던 오픈소스 ActionScript 2 컴파일러인 MTASC(Motion-Twin Action Script Compiler)의 후속작이자, 객체지향 언어에 타입 추론을 적용하는 실험을 했던 사내 언어 MTypes의 연장선이었답니다. 언어 설계에 대한 Nicolas의 오랜 열정과, Motion-Twin에서 게임 개발자로 일하면서 서로 다른 기술을 결합할 새로운 기회가 생겨난 것이, 완전히 새로운 언어를 만들게 된 계기가 되었어요.

당시에는 haXe로 표기되었으며, 베타 버전은 2006년 2월에 출시됐어요. 첫 지원 대상은 AVM 바이트코드와 Nicolas 자신이 만든 Neko 가상 머신이었죠.

오늘날까지 Haxe 프로젝트의 리더로 남아 있는 Nicolas Cannasse는 명확한 비전을 가지고 Haxe를 계속 발전시켜, 2006년 5월에 Haxe 1.0을 출시했어요. 이 첫 메이저 릴리스는 JavaScript 코드 생성 지원을 포함했고, 타입 추론과 구조적 서브타이핑(structural sub-typing)처럼 오늘날 Haxe를 정의하는 기능 중 일부를 이미 갖추고 있었답니다.

Haxe 1은 2년에 걸쳐 여러 마이너 릴리스를 거치며 Flash AVM2 대상과 haxelib 도구를 추가했어요.

출처: History

본문

초기 개발과 Neko

Nicolas Cannasse는 Motion-Twin에서 게임 개발을 하면서 여러 플랫폼을 오가는 경험을 쌓았어요. 여기서 파생된 아이디어가 언어와 컴파일러를 하나로 통합한 Haxe(당시 haXe)였죠. 첫 타깃이었던 Neko는 Haxe 전용으로 설계된 가상 머신으로, 데스크톱·서버·CLI 환경에서 실행되는 바이트코드 실행 환경이에요.

Haxe 1.0의 등장

2006년 5월의 Haxe 1.0은 JavaScript 출력을 지원한 첫 메이저 릴리스였어요. 이미 이 시점에 타입 추론과 구조적 서브타이핑이라는 Haxe의 핵심 기능이 자리 잡았고, 이후의 발전 방향을 결정지었답니다.

구조적 서브타이핑이란 두 타입이 명시적으로 상속 관계를 맺지 않아도, 구조(필드의 집합)만 같으면 호환된다고 보는 개념이에요. 이후 절에서 더 자세히 다룰게요.

이후의 발전

Haxe 1의 마이너 릴리스들은 Flash AVM2 대상과 haxelib 도구를 추가하며 생태계를 넓혔어요. haxelib은 Haxe용 패키지(라이브러리) 관리 도구로, 프로젝트에 라이브러리를 손쉽게 추가하고 관리할 수 있게 해줍니다. 이렇게 멀티 타깃 지원과 패키지 생태계가 함께 성장하면서 Haxe는 점차 오늘날의 모습을 갖추게 되었어요.

더 알아보기