ADM은 앱과 서비스, 사용자 인터페이스를 함께 만들기 위한 정적 타입 프로그래밍 언어다. 컴파일러는 네이티브 바이너리를 생성하며, 현재 공개된 설치 패키지는 Linux(amd64)용이다.
ADM은 계약과 트랜잭션, 서비스 권한, UI 컴포넌트, 측정 단위, GPU 코드, 다른 언어 생태계와의 연동을 언어에 포함한다고 소개한다. 컴파일러와 표준 라이브러리, 언어 명세, 릴리스는 주 저장소에서 제공한다. 문서는 언어 안내, 표준 라이브러리, 예제, 라이브러리 목록에서 볼 수 있다.
설치와 라이브러리
현재 사용자를 대상으로 설치하며, 컴파일러와 표준 라이브러리, 포함된 C 툴체인이 ~/.adm에 설치된다. 새 릴리스는 adm update로 가져올 수 있다. macOS와 Windows용 패키지는 아직 제공되지 않고, 추후 공개될 예정이다.
curl -fsSL https://raw.githubusercontent.com/admlang/adm/main/install.sh | sh
프로젝트 폴더에서 adm run으로 빌드하고 실행하며, adm test로 검사 모음을 실행한다. adm get은 라이브러리를 프로젝트에 추가하는 명령이다. 예를 들어 PostgreSQL 라이브러리는 다음과 같이 추가할 수 있다.
adm get admlang:adm.database.postgres
공식 라이브러리에는 PostgreSQL·MySQL·SQLite용 데이터베이스 라이브러리와 단일 파일 내장 데이터베이스, Redis·Valkey 및 S3 클라이언트가 포함된다. JavaScript·Python·Lua 실행 엔진과 Java VM, .NET 런타임, WebAssembly 모듈을 연동하는 라이브러리도 제공한다. 전체 항목은 공개 라이브러리 색인에서 확인할 수 있다.
라이브러리는 게시자가 서명하며, adm get은 서명을 확인하고 라이브러리 코드가 접근할 권한을 부여하기 전에 사용자에게 묻는다. adm get --dry-run은 권한을 보고하되 설치하지 않는다.
ADM은 아직 초기 단계다. 언어와 컴파일러는 사용할 수 있지만 표준 라이브러리에는 빠진 부분이 있고 릴리스마다 변경될 수 있다고 프로젝트 측은 밝혔다. 프로젝트는 버그 제보와 질문을 주 저장소의 이슈로 받고 있으며, Apache 2.0 라이선스로 배포된다.
부록: 원문 예시
application Hello { def greet(name string) !string { fail "nobody to greet" when name == "" return "hello, {name}" } def new(args string[]) int { let line = greet("world") onerror (err error) { println(err.message) return 1 } println(line) return 0 } }
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요