h5 를 파보려고 llm의 도움을 좀 받으려고 했는데, 내가 구체적으로 설명해줬건만 claude가 h5가 뭔질 잘 모르겠으니까 아! H-A-X-E 를 오타내신거구나! 하면서 열심히 설명해줌.


haxe라는게 먼지 처음보는녀석인데, 태생 자체가 다른 언어를 뱉기위한 언어라고 함. 플래시까지 지원한다고함. 뭔가 한물간 트렌디의 느낌이 들어서 좀더 알아보게됨. 


겸사겸사 Haxe프로젝트를 만들어 걔가 뱉어낸 C# 코드를 dotnet8 에서 실행해봄. warring이 많이뜨기는 하지만 어쨋든 돌아감.



감동적인 부분은 PublishAot 로 트리밍 배포해 작동시켜도 올바르게 작동했다는점임. 분명 리플렉션과 다이나믹이 난무할것으로 예상했는데, 물론 얘들이 명시적으로 지원한다는말은 없으니 얼마안되는 예제코드와 다르게 실제 써먹을때 어떻게 될지는 모를일임.


How to Code in Haxe 이분 보면 Haxe가 엄청나게 코드를 내뱉는 모습을 전혀 좋아하는거같진 않지만 아주 즐거워하고있음. 아카이브1


c# 으로 내뱉은 코드는 백몇단위가 아니라 기본적인 호환성을 위한 객체들로 오천몇줄을 뱉고있음.

공통적인건 라이브러리로 빼주는게 낫지않나 싶지만 Haxe는 닷넷프로젝트를 내뱉는게 아니라 순수 C#코드를 내뱉어야하니 그런듯함.


대충 알아봤으니 좀 실제 도움이 될만한 뭔가가 없을까 싶어 찾아봤는데, 이미 지금까지 없이 잘살아왔던지라 뭘 줏어먹을지도 모르겠음.

peerhx 같은게 설마 Haxe로 webrtc부터 재개발한 거대한 프로젝트의 부산물일까 싶었으나 역시 그냥 peerjs의 port? wrapper였음. js로 출력할때 말고는 암데도 못씀.

언어의 비전만 크로스플랫폼이고 그 생태계는 빡세게 크로스플랫폼의 책무를 가지며 운영될만큼 투자되거나 인기있어보이지 않음.


대체 이걸 어따쓰지...? 타스의 대안...? 통신을 넘어 동작까지 관리하는 protobuffer...?? 서로다른언어간 일관성있는 분산시스템??

이게 진정으로 필요할 지경의 극단적인 상황에 처하고 싶지는 않다는 생각이 들었음.


그냥 실행가능한 템플릿 문서정도만 만들고 끝내려 했으나, 이미 이세상에 코드를 뱉기위한 코드가 이미 엄청나게 많다는 생각을 하니 뭔가 그마저도 무의미하다는 느낌이 들었음.


그래서 대신 이세상의 모든 코드뱉는 코드들의 관계를 수집해 Haxe의 위치가 어디쯤일지를 시각화해보기로함.

naratteu/awesome-code-ejaculator


내가 대충 인지한것만 적어둔거라 첨삭이 더 필요하지만, 나름의 위치가 튀는것이 관찰됨.

하지만 이것저것 추가하다보면 그저그렇게 희미해지지않을까..