Show HN: Feather – 새로운 Tcl 재구현 (WASM, Go)
요약
Feather는 WebAssembly(WASM)를 기반으로 설계된 임베드 가능한 Tcl 재구현입니다. 외부 I/O나 이벤트 루프 없이 호스트 애플리케이션의 제어권을 유지하며, 짧고 상호작용적인 스크립트 실행에 최적화되었습니다. 이로써 웹 서버 런타임 구성이나 사용자 스크립팅 기능이 필요한 크로스플랫폼 GUI 앱 개발에 활용될 수 있습니다.
핵심 포인트
- WASM 기반으로 브라우저와 Node.js 등 다양한 환경에서 작동합니다.
- 호스트 애플리케이션의 제어권을 유지하며, I/O나 이벤트 루프가 기본적으로 없습니다.
- 대규모 프로그래밍보다는 짧고 상호작용적인 스크립트 실행에 초점을 맞췄습니다.
- Neovim이나 Emacs처럼 앱 설정 및 사용자 스크립팅 기능을 구현하는 데 유용합니다.
임베드 가능(Embeddable)
호스트 애플리케이션에 임베드되도록 처음부터 설계되었습니다. I/O도 없고, 이벤트 루프도 없습니다. 호스트가 제어권을 유지합니다.
WebAssembly로 구동되는 브라우저에서 Feather를 직접 사용해 보세요.
Feather는 짧고 상호작용적인 프로그램을 위해 만들어졌습니다:
Bash나 zsh처럼 Unix 시스템을 구동할 수 있게 하는 것처럼, Feather는 애플리케이션 자체를 같은 정신으로 구동할 수 있게 합니다.
Feather는 대규모 프로그래밍에 적합하지 않습니다.
이것을 뒷받침하는 기능들은 의도적으로 생략되었습니다:
기본적으로 I/O 없음: Feather는 외부 세계와 통신할 수 없으며, 이를 수행하기 위한 시설을 명시적으로 제공해야만 가능합니다.
패키징/임포트 시스템 없음: 만약 Feather 프로그램이 커지면, 이 로직을 호스트로 옮길지, 아니면 스크립트를 어딘가에서 직접 불러오는(sourcing) 방식으로 코드를 구조화할 수 있는 방법을 제공해야 할지 결정해야 합니다.
성능이 최우선 순위일 리 없음: Feather는 사용자가 이미 최적화했을 가능성이 높은 호스트 애플리케이션 내의 코드를 우아하게 호출할 수 있도록 존재합니다. Feather 스크립트가 느려진다는 것은 로직을 호스트 애플리케이션으로 옮겨야 한다는 신호입니다.
임베드 가능한 프로그래밍 언어에서 대규모의 성능 좋은 프로그래밍이 필요하다면, Lua를 찾고 있는 것입니다.
Feather는 호스트 언어에 임베드되도록 설계되었습니다.
핵심 구현은 언어 시맨틱스(semantics)를 제공하지만, 모든 메모리 할당, I/O, Unicode 및 부동 소수점 연산은 호스트가 제공합니다.
2025년에 스크립팅 언어를 임베드하는 경우라면, 사용자의 호스트 언어가 이미 모든 것을 구현하고 있을 가능성이 높으며, Unicode 테이블을 중복하거나 두 개의 이벤트 루프를 서로 잘 작동하게 만드는 것이 그만한 가치가 없는 골칫거리일 가능성이 더 큽니다.
Feather는 프로그래밍 언어에서 Feather를 직접 사용하는 라이브러리를 제공합니다.
쉽게 임베딩 API가 포함된 참조 호스트 구현체가 있습니다.
프로그램의 함수와 구조체(structs)를 빠르게 노출하여 Feather를 통해 조작할 수 있게 합니다.
시작하기 → WebAssembly를 통해 브라우저 및 Node.js에서 실행됩니다. WASM이 실행되는 모든 곳에서 작동합니다.
node.js와 브라우저용 호스트 바인딩이 제공됩니다.
시작하기 →앱의 최종 사용자가 런타임에 동작을 변경할 수 있도록 Swift용 호스트 바인딩을 제공합니다.
어떤 앱이든 neovim과 Emacs처럼 설정 가능하게 만드세요.
Java는 이미 상당히 동적이지만, jshell은 불편하고 다른 언어들은 모든 것에 자체 구현체를 가져옵니다.
목표 사용 사례: 웹 서버의 런타임 구성, 사용자 스크립팅이 가능한 크로스플랫폼 GUI 앱.
Ruby는 이미 Ruby에서 런타임에 프로그래밍할 수 있습니다.
Ruby 4에서 Boxes가 도입되고 mruby가 모든 가능한 사용 사례를 커버합니다.
Python은 이미 동적이며, 신뢰할 수 없는 사용자 코드는 WASM 기반 Python 인터프리터에서 실행될 수 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 HN Design Systems의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기