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コーディングツールと直接統合可能です。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト