js
JS的package/import機制的考察提綱 (The Survey Plan of the package/import mechanism for JS)
0
0.1 考察對象 (Object)
0.1.1 JS2 的 package 機制(僅作對照) (JS2/ES4 Package, for reference)
0.1.2 jspkg
0.1.3 JSAN
0.1.4 Ajile
0.1.5 jsolait
0.1.6 Qomo
0.1.7 JSVM2
0.1.8 PIES
0.2 考察內容、方式和準則 (Criteria & Method)
0.3 特性對比表 (Matrix of the Features)
0.4 主觀評價 (Subjective Estimation)
0.4.1 簡潔性、一致性和完整性 (Simplicity, Consistency and Completeness)
0.4.2 學習曲線 (Study curve)
0.4.3 多個方面的整體平衡 (Balance)
1 準系統 (Basic Features)
1.1 如何使用一個package (Using a package)
1.1.1 是否解決了全域命名空間汙染問題 (Issue of Global namespace)
1.1.2 迴圈import問題 (Issue of Recusive import)
1.2 如何定義一個package (Defining a package)
1.2.1 是否要求特別的編程習慣 (Requirements of special pattern of source code)
1.2.2 是否要求特別的檔案組織圖 (Requirements of special organization of source files)
1.2.3 是否要求設定檔 (Requirments of Configuration)
1.3 目標平台 (Host Environment)
1.3.1 Browser環境:IE, Moz, Opera等 (Browsers)
1.3.2 Browser特殊環境:XML瀏覽、SVG瀏覽(ASV)等 (Browsers -- for XML)
1.3.3 非Browser環境:Rhino, WScript, ASP, ActionScript 2 (Others)
1.3.4 ES4(JS2)環境:JScript.NET、ActionScript 3 (ES4 platform)
2 擴充功能 (Advanced Features)
2.1 局域化別名和explicit(js2的explicit) (Local Alias and Explicit)
2.2 部分匯入(js2的include,exclude 機制) (Partial Import)
2.3 package的版本機制(js2的namespace機制) (Version)
2.4 通配匯入 (Import *)
2.5 匯出(js2的export) (Export)
2.6 相對路徑的支援 (Resolve Relative Path)
2.7 探測encoding (Determine Character Encoding)
2.8 文法糖衣 (Syntax Sugar)
2.9 其他有關特性(如jsvm的application|module等模式) (Other Special)
3 其他 (Miscellaneous)
3.1 錯誤處理(assert)、debug和log (Error Handling, debug and log)
3.2 文檔 (Documentation)
3.3 具體實現 (Implementation)
3.3.1 需要的基礎設施如XMLHttpRequest, eval, new Function (Minimal Reqirements)
3.3.2 是否必須使用同步調用 (Reqires Synchronized?)
3.3.3 預先處理和轉換 (Preprocess and Transformation)
3.3.4 效能 (Performance)
3.4 單元測試 (Unit Test)
3.5 移植難度 (Portability & Compatibility)
3.5.1 對於傳統指令碼的可移植性和相容性
3.5.2 對於其他import機制的相容性
3.6 成熟度等級、社區活躍度、許可協議等 (Maturity, Activity of Community, License...)