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は「シネキック(連続性)」かつ「トポキネティック(運動)」なプログラミング言語であり、1つのPythonに似た構文からPythonバイトコード、JavaScript、ネイティブマシンコードをコンパイルします。
- シネキック(連続性): フロントエンド、バックエンド、ネイティブ層の間で一貫したメディアを提供します。1つのコンパイラが全スタックをチェックするため、データモデル内のフィールド名の変更がすべての層でコンパイルエラーを引き起こすようになり、プロダクションでの障害を防ぎます。
- トポキネティック(運動): データはノードとエッジの永続的なトポロジーとして扱われます。"ウォーカー"がこのグラフを通過して計算を実行し、永続化は言語に直接組み込まれており、外部のデータベースやORMを必要としません。
- ポリピラー:
jacバイナリは完全なツールチェーンとして機能し、プライベートなCPython、Bun(JSランタイム)、LLVM、Kubernetesデプロイャーをバンドルしており、インタプリタやコンパイラの個別インストールを不要にします。
対象ユーザー
Jacは人間とAIエージェントが共同でフルスタックアプリケーションを構築することを目的としています。特に、ボイラープレートのグルーコードを減らしたい開発者や、コンテキストウィンドウ内に収まる1つの型チェック済みコードベースを活用できるAIコーディングエージェントに最適です。
特徴
- 統合ツールチェーン: 1つのバイナリがPythonインタプリタ、JSランタイム、Cコンパイラ、パッケージマネージャーを置き換えます。
- AI統合: LLM呼び出しは型付き関数呼び出しとして扱われ、コンパイラが関数シグネチャからプロンプトを生成し、戻り値の型を強制します。
- 段階的借用チェック:
ownと借用アノテーションを使用して、完全に管理されたコードからゼロリファレンスカウンティングのネイティブアーティファクトへ移行できます。 - ゼログルー・フルスタック: APIエンドポイント、ルートテーブル、マイグレーションを自動生成します。
- エージェント対応: 組み込みのMCPサーバーとエクスポート可能な「エージェントスキル」を備えており、Claude CodeやCursorなどのAIコーディングツールと直接統合可能です。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト