jaseci-labs/jac

The Jac Programming Language -- The ultimate language for agents to build everything.

解決する課題

Jacは、現代のフルスタック開発を悩ませる「グルーコード」や断片化されたツールチェーンを排除します。フロントエンド、バックエンド、データモデルにまたがる単一のコンパイラチェック済み言語を提供することで、個別の表記法(SQL、JSON、YAMLなど)の必要性をなくし、異なる言語やシステム間の境界で発生するバグを防ぎます。

仕組み

Jacは、アプリケーション全体を単一の連続したプログラムとして扱う「ポリパイラー(polypiler)」を使用します。Pythonバイトコード、JavaScript、およびネイティブマシンコードにコンパイルされるため、ラッパーなしで既存のエコシステム(PyPI、npm、C)を利用できます。データがノードとエッジのグラフとして永続化され、「ウォーカー(walkers)」がそのグラフを通じて計算を実行する「オブジェクト空間プログラミング(Object-Spatial Programming)」を特徴としています。また、段階的な借用チェック(gradual borrow checking)が含まれており、必要な場合にのみ高性能でメモリセーフなネイティブコードを選択できます。

対象ユーザー

Jacは、複雑なデータ駆動型アプリケーションを構築する開発者やAIエージェント向けに設計されています。特にコーディングエージェント向けに最適化されており、実行時まで現れないような層をまたぐエラーをコンパイラが検出できる、自己文書化された環境を提供します。

ハイライト

  • オールインワンツールチェーン: 単一のバイナリがPython、Node、コンパイラ、パッケージマネージャー、デプロイツールを置き換えます。
  • エンドツーエンドの型安全性: 単一のコンパイラがスタック全体をチェックし、層をまたぐ統合エラーをコンパイル時のミスに変えます。
  • 組み込みの永続化: データオブジェクトが自動的に永続化されるため、手動のデータベース管理、ORM、移行作業が不要になります。
  • AIネイティブ: AIとの対話は型付き関数呼び出しとして扱われ、コンパイラがプロンプト構造と戻り値の型を強制します。
  • シームレスなデプロイ: DockerfileやYAML設定を書くことなく、単一のコマンドでラップトップからKubernetesへデプロイできます。

関連

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