왜 Haxe를 쓰나요?

Haxe는 현대 언어의 많은 특징을 가진 짱쎈 언어입니다. 게다가 Haxe는 개발자들이 웹사이트나 어플리케이션을 하나의 통합된 언어로 개발할 수 있게끔 해줍니다. 여러분이 하나의 플랫폼에만 특화되게 개발하던, 크로스플랫폼 특징을 최대한 활용해서 개발하던 Haxe는 어떠한 경우에도 Haxe를 써야하는 이유가 있습니다 :

  • 어떤 환경이건 ECMA 스타일로 프로그래밍
    Haxe의 문법은 여러 타겟을 지원하는 언어인 ActionScript와 JavaScript랑 매우 유사합니다. 덕분에 굉장히 다양한 어플리케이션에 쉽게 이용될 수 있습니다.
  • 짱빠른 컴파일
    몹시 빠릅니다. 플래시나 플렉스 컴파일러에 비해 무진장 빠른 컴파일 속도를 직접 체감할 수 있을겁니다. 컴파일 타임이 매우 짧은 까닭에 Haxe는 PHP나 JavaScript등과 같은 비-컴파일 플랫폼 코드를 쉽게 전환할 수 있습니다.
  • 타입검사
    Haxe는 예민한 타입검사를 제공합니다. 컴파일타임에 타입 체크를 하기 때문에 브라우저에서 테스트 하기 전에 에러를 잡아낼 수 있습니다. 이는 PHP와 JavaScript같은 동적 타이핑 언어로 개발할 시에 좀 더 빠른 개발을 가능케합니다.
  • 대상 플랫폼이 갖고있지 않은 Haxe의 여러 언어적 기능
    Haxe는 웹 중심의 개발에 있어 좀 더 나은 환경을 제공하기 위해 탄생하였습니다. 때문에 Haxe는 많은 타겟이 빼먹은 특징들을 담고 있습니다.
    - 플래시 개발을 위한 인라인제네릭
    - JavaScript, PHP 개발을 위한 패키지타이핑
    - C++을 위한 동적 객체런타임 타입 정보
    - 매크로
    더 있지만 이쯤 하구요. 요는 이런저런 타겟이 갖고있지 않지만 Haxe는 갖고있는 다양한 특징들 덕분에 모든 플랫폼에서 원하는 타겟으로 개발할 때에 이러한 특징을 맘껏 활용하여 개발할 수 있다는 이야깁니다.
  • 오픈소스
    게다가 공짜입니다. Haxe는 오픈소스인데다 OSX, 윈도, 유닉스 기반 OS를 위한 인스톨러를 제공합니다. 컴파일러를 돌리는데 필요한 기반 라이브러리는 따로 없지만 여러가지 유용한 기능을 제공하는 Haxe 라이브러리를 사용할 수는 있습니다.

왜 멀티플랫폼을 대상으로 개발하나요?


Haxe는 다양한 플랫폼을 대상으로 개발할 수 있습니다. 이거 꽤나 유용합니다.

  • 플랫폼간의 우아한 리모팅
    서로 다른 플랫폼에서 객체를 전달할 수 있습니다. 여러 플랫폼에서 같은 코드베이스를 이용합니다. 즉, 같은 클래스를 여러 플랫폼으로 컴파일할 수 있습니다. 이는 성공적인 역직렬화로 우아하고 빠르게 리모팅을 할 수 있게 합니다.
  • 같은 문법과 특징
    서로 다른 플랫폼으로 개발할 때에는 다른 문법과 특성을 익혀야 하는 일이 잦습니다. 일관된 문법과 특징들을 사용할 수 있으면 지속적으로 프로그래밍 '양식'을 바꿔가며 개발하지 않아도 됩니다. 덕분에 개발자는 로직과 최종 출력에만 집중할 수 있게 되고, 이는 곧 상당한 생산성 증대로 이어집니다.
  • 조건부 컴파일
    코드가 여러 플랫폼을 위해 디자인되지 않았더라도 개별 타겟에 맞춰서 개발할 수 있습니다. 예를 들어 ActionScript, JavaScript, C++에는 트윈 클래스가 사용될 수 있습니다. 이 경우 코드 로직은 플랫폼 별로 최적화시켜서 작동시킬 필요가 있습니다. 프론트엔드 코드가 너무 느리게 작동한다면 조건부 컴파일을 이용하여 백엔드 코드를 수정하지 않고도 빠르게 로직을 바꿀 수 있습니다.
  • ScreenweaverHx를 이용한 데스크탑 개발
    ScreenweaverHx는 Neko 어플리케이션이 플래시를 포함할 수 있게합니다. 이는 플래시 어플리케이션이 데스크탑 어플리케이션처럼 작동하고 시스템 기능에 접근할 수 있게 해줍니다. Haxe SWF와 쉽게 연동할 수 있습니다.
  • 다양한 파일 포맷 접근
    format 라이브러리는 'abc'( ActionScript Byte Code ), SWF 헤더 등과 같이 다양한 포맷의 읽기/쓰기를 지원합니다. 이 라이브러리는 여러 타겟에서 사용될 수 있습니다.

플랫폼별 특징


Haxe가 타겟으로 잡는 각각의 플랫폼은 그들만의 굉장한 특징이 있습니다.

플래시

  • 같은 문법으로 플래시 6,7,8,9,10,11 컴파일
    필요할 경우 AS1 없이 플래시 6으로도 컴파일할 수 있습니다. 하위 호환성을 유지하기 쉬워집니다.
  • 플렉스SDK보다 설치하기도 쉽고 사용하기도 쉽고 플렉스 컴파일러보다 빠르고 최적화된 컴파일러
    인라인, 제네릭, 컴파일러 최적화 덕분에 현 플렉스 컴파일러보다 더 나은 퍼포먼스를 발휘하는 SWF를 생성할 수 있습니다.
  • 기존 플렉스&플래시와의 완벽한 호환
    기존의 플래시나 플렉스에 Haxe SWF를 로드하거나 그 반대의 경우에도 아무런 문제가 발생하지 않습니다.
  • SWC 익스포팅을 통한 AS3 유저 지원
    SWC 파일을 생성할 수 있습니다. 이 파일을 플렉스에서 로드해서 사용할 수 있습니다. 덕분에 Haxe로 작성된 라이브러리는 AS3 유저도 활용할 수 있습니다.
  • 알케미 OpCode 접근
    SWF 플레이어에는 어도비 알케미를 위한 메모리 할당 OpCode가 숨겨져있습니다. Haxe는 이러한 저수준 메모리 접근을 통해 어마무지한 속도 향상을 제공합니다.
  • 픽셀벤더 어셈블리 접근
    저수준 함수를 통해 픽셀벤더를 직접 조작할 수 있습니다.
  • HaXeVideo를 사용한 가벼운 비디오 스트리밍 및 레코딩
    HaXeVideo는 RTMP 프로토콜 전송을 통해 비디오 스트리밍을 지원합니다.

JavaScript

  • DOM 자동완성 지원
    JavaScript 타겟으로 개발할 때에 DOM 자동완성 기능을 이용할 수 있습니다. 원하는 속성이 코드힌트에 뜨니까 얼마나 좋아요!
  • 기존 JavaScript 코드와 맞물려 돌아가는 Haxe
    Haxe JS는 다른 JavaScript 라이브러리와 함께 작동할 수 있습니다. 외부 클래스를 통해 JQuery 같은 라이브러리에 접근할 수 있습니다.

Neko

  • 가볍고 빠른 가상머신
    Neko는 굉장한 속도와 기능을 자랑하는 커맨드라인과 데스크탑 어플리케이션 개발을 위한 가상머신입니다. Haxe는 이러한 장점을 전부 활용하여 크로스플랫폼( 맥, PC, 리눅스 ) 어플리케이션을 빠르고 쉽게 개발할 수 있습니다.
  • 강력하고 확장성이 뛰어난 아파치 플러그인 mod_neko & mod_tora
    아파치 Neko 플러그인은 Neko 어플리케이션을 웹서버로 이용할 수 있게 돕습니다. PHP보다 40배나 빠릅니다.
  • 빠른 커맨드라인 어플리케이션 개발
    몇 줄의 코드로도 완벽한 시스템 접근으로 여러가지 유용한 작업을 처리할 수 있는 작은 앱을 빌드할 수 있습니다.

PHP

  • 표준 아파치 서버에 널리 보급
    다들 알다시피 PHP는 돈이 덜들고 많은 호스팅 서비스에서 이용되고 있습니다. 그래도 PHP의 턱없이 부족한 API와 OOP 특징에 좌절하는 유저들을 위해 Haxe는 서버 설정을 바꾸지 않고도 탁월한 프로그래밍 경험을 가능케합니다.
  • 깔끔한 구조의 OOP 웹사이트 개발
  • PHP의 모든 기능에 쉽게 접근
    Wrapping External PHP Libraries에서 보시다시피, 모든 PHP 라이브러리에 접근할 수 있습니다. 타입 체크도 완벽하게 돌아가구요.

C++

  • C++의 위력
    C++이 날개를 달아줘요.

다른 특징

  • 컴파일러 기반의 자동완성
    Haxe는 IDE가 쉽게 유추할 수 없는 객체나 타입추론을 이용하는 경우도 말끔하게 처리할 수 있게 컴파일러 기반의 통합 자동완성 시스템을 제공합니다. 덕분에 빠르고 정확한 Haxe 자동완성이 가능합니다. FlashDevelop이나 FDT에서 직접 체험해보세요.
version #14124, modified 2012-05-23 10:19:50 by nlovej