-
Unison 1.0은 언어, 분산 런타임, 개발자 워크플로우가 안정화된 첫 공식 버전으로, 수년간의 언어 정제와 도구 최적화의 결과물임
-
코드베이스 관리 시스템(UCM) , Unison Share, Unison Cloud 등 협업과 배포를 위한 주요 구성요소를 포함
- 코드 정의를 내용 기반 해시로 식별하는 독특한 구조로, 중복 컴파일 제거와 버전 충돌 최소화 실현
- 코드가 텍스트 파일이 아닌 데이터베이스에 저장되며, 이름과 정의가 분리되어 관리되는 구조
- 분산 시스템 개발과 배포를 단일 언어 환경에서 처리할 수 있어, 개발 생산성과 확장성을 동시에 확보
Unison 1.0 개요
- Unison 1.0은 언어, 분산 런타임, 개발자 워크플로우가 안정화된 시점을 의미
- 핵심 언어 개선, 개발 워크플로우 최적화, 협업 도구 구축, 배포 플랫폼 완성
- 주요 구성요소로 Collaborative tooling, Unison Cloud, Bring Your Own Cloud, Refined DX, Runtime optimizations, Distributed systems frameworks, Unison Share, Contributor ecosystem이 포함
- 인터프리터 속도와 효율성 향상, 분산 시스템 프레임워크 제공, 코드 탐색 인터페이스 강화
Unison의 핵심 개념
- Unison은 코드 정의를 이름이 아닌 실제 내용(hash) 으로 식별하는 언어
- 동일한 코드가 중복 컴파일되지 않으며, 버전 충돌이 크게 줄어듦
- 강한 타입 시스템 내에서 자가 배포형 분산 시스템을 구성 가능
- 코드가 텍스트 파일이 아닌 데이터베이스(codebase) 에 저장되며, 이름은 별도로 관리됨
Codebase Manager (UCM)
-
UCM(Unison Codebase Manager) 은 CLI 기반 도구로, 코드 편집, 이름 변경, 삭제, 라이브러리 관리, 테스트 실행 등을 지원
- 예시 코드로 factorial 함수와 guessingGame 프로그램이 제공되어, 코드 변경을 감지하고 update 명령으로 코드베이스에 반영 가능
UCM Desktop
-
UCM Desktop은 로컬 코드베이스를 탐색할 수 있는 GUI 코드 브라우저
- 코드 정의 클릭 탐색과 문서 렌더링 기능 제공
Unison Share
-
Unison Share는 오픈소스 및 비공개 프로젝트를 호스팅하는 커뮤니티 허브
- 프로젝트 검색, 코드 탐색, 계정 관리, 코드 리뷰 등 기능 제공
- 코드 참조가 모두 하이퍼링크로 연결되어 탐색 가능
Unison Cloud
-
Unison Cloud는 Unison 애플리케이션 배포 플랫폼
- 로컬 프로토타입에서 완전한 분산 애플리케이션으로 전환 가능
- YAML, 배포 스크립트 없이 단일 코드 내에서 서비스와 인프라 정의
- 예시 코드에서는 Cloud.main을 통해 서비스 배포를 수행
Unison 코드 예시
-
guessingGame 프로그램은 사용자가 난수를 맞추는 콘솔 게임
-
Abilities로 함수형 효과 관리
-
패턴 매칭으로 제어 흐름 처리
-
지연 계산으로 비즉시 평가 표현
1.0까지의 주요 이정표
- Unison Computing 설립, 첫 알파 릴리스, Strangeloop 발표, SQLite 도입, Unison Share 첫 배포
- LSP 지원, 프로젝트 기능 추가, 타입 검사(kind-checking), OrderedTable 스토리지, Cloud 공개
- Unison Share 오픈소스화, Cloud BYOC, Git 스타일 diff 도구, 브랜치 주석, 성능 최적화 등
-
Unison 1.0 릴리스로 마무리
주요 지표
-
26,558+ 커밋, 3,490+ PR 병합, 6.2k GitHub 스타, 152,459 라이브러리 다운로드, 139,811+ 정의, 1,300+ 프로젝트 작성자
향후 계획
- 핵심 언어와 도구의 개발 경험(DX) 개선 지속
-
Unison Cloud 기반의 새로운 기능 개발 예정
FAQ 요약
-
새 언어를 만든 이유: 해시 기반 데이터베이스 구조로 코드 식별·버전·공유 방식을 근본적으로 재설계했기 때문
-
프로덕션 사용 여부: Unison Cloud 오케스트레이션 계층이 전부 Unison으로 작성되어 실제 운영 중
-
벤더 종속성 우려: 오픈소스 언어로, Docker 등으로 자유롭게 배포 가능하며 BYOC 지원
-
협업 방식: 조직, 티켓, 코드 리뷰, PR 등 지원하며, 정의 단위 충돌만 발생
-
버전 관리: Git 없이 자체 프로젝트·브랜치·푸시·풀·머지 기능 제공
-
IDE 제약 없음: LSP 서버 제공으로 다양한 에디터 사용 가능
-
타 언어 연동: C FFI 개발 중
-
파일 없는 코드베이스 접근: CLI(UCM) 명령 또는 Desktop 앱으로 구조 탐색 가능