jaseci-labs/jac

The Jac Programming Language -- The language for any human or AI looking to use one language for everything

해결하는 문제

Jac는 현대의 풀스택 개발에서 발생하는 언어, 패키지 매니저, 구성 파일(YAML, Dockerfile 등)의 분산화 문제를 해결합니다. 단일 애플리케이션을 구축하기 위해 개발자들은 TypeScript, Python, SQL 등 여러 언어를 관리하고, 각각의 패키지 매니저와 구성 파일을 다뤄야 합니다. 이러한 분산화는 '글루 코드'(시리얼라이저, ORM 모델, API 클라이언트 등)를 생성하며, 이 코드는 어떤 하나의 컴파일러도 검사하지 않아 버그와 높은 유지보수 부담을 초래합니다.

작동 방식

Jac는 '시네키크(연속성)'과 '토포키네틱(운동)' 프로그래밍 언어로, 단일한 Python과 유사한 구문을 사용해 Python 바이트코드, JavaScript, 네이티브 머신 코드로 컴파일합니다.

  • 시네키크(연속성): 프론트엔드, 백엔드, 네이티브 계층 간에 일관된 매체를 제공합니다. 하나의 컴파일러가 전체 스택을 검사하므로, 데이터 모델의 필드 이름 변경이 모든 계층에서 컴파일 에러를 유발하게 되어 프로덕션 장애를 방지합니다.
  • 토포키네틱(운동): 데이터는 노드와 엣지의 지속적인 토폴로지로 다룹니다. '워커'가 이 그래프를 통해 계산을 수행하며, 지속성은 외부 데이터베이스나 ORM이 필요 없이 언어 자체에 내장되어 있습니다.
  • 폴리피러: jac 바이너리는 완전한 툴체인으로 작동하며, 개인용 CPython, Bun(JS 런타임), LLVM, Kubernetes 배포기 등을 통합하여 별도의 인터프리터나 컴파일러 설치가 필요 없게 합니다.

대상 사용자

Jac는 인간과 AI 에이전트가 함께 풀스택 애플리케이션을 구축할 수 있도록 설계되었습니다. 특히, 버일러플레이트 글루 코드를 줄이고 싶은 개발자, 그리고 컨텍스트 창 내에 맞는 단일 타입 체크된 코드베이스를 활용할 수 있는 AI 코딩 에이전트에게 적합합니다.

주요 특징

  • 통합 툴체인: 단일 바이너리가 Python 인터프리터, JS 런타임, C 컴파일러, 패키지 매니저를 대체합니다.
  • AI 통합: LLM 호출은 타입이 지정된 함수 호출로 취급되며, 컴파일러가 함수 시그니처에서 프롬프트를 생성하고 반환 타입을 강제합니다.
  • 단계적 빌로우 체크: own과 빌로우 어노테이션을 사용해 완전히 관리되는 코드에서 참조 카운팅이 없는 네이티브 아티팩트로 이동할 수 있습니다.
  • 제로 글루 풀스택: API 엔드포인트, 라우트 테이블, 마이그레이션을 자동으로 생성합니다.
  • 에이전트 준비: 내장된 MCP 서버와 내보낼 수 있는 '에이전트 스킬'을 포함하여 Claude Code, Cursor 등의 AI 코딩 도구와 직접 통합할 수 있습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트