The Zig programming language is shifting towards using lower-level Native APIs in ntdll.dll instead of standard Win32 APIs to achieve better performance, reduced binary size, and more direct control over system calls.
然而,反對聲音則集中在 ABI 穩定性與長期維護成本上。多位資深開發者指出,Windows 與 Linux 的哲學截然不同:Linux 保證系統調用(syscall)介面的穩定,而 Windows 則保證 Win32 API 的穩定。若繞過 Win32 直接調用 Native API,本質上是在挑戰微軟隨時可能更動的內部實作。有人以 Go 語言在 macOS 上的教訓為例,當時 Go 團隊試圖繞過 libc 直接進行系統調用,最終因蘋果頻繁變更核心介面而被迫回歸標準庫。批評者擔心,Zig 的做法會導致編譯出的程式在未來的 Windows 版本中失效,且這種「技術債」最終會轉嫁給應用層開發者,迫使他們必須不斷更新編譯器版本以修復底層相容性問題。
另一個引起廣泛討論的爭議點是防毒軟體(AV)的誤報。由於惡意軟體經常使用 Native API 來規避監控,Zig 編譯出的二進位檔極易被啟動啟發式掃描的防毒軟體隔離。雖然 Zig 團隊認為這是防毒軟體廠商應解決的問題,但社群普遍認為這對終端用戶與開發者而言是巨大的負擔,即便使用昂貴的 EV 憑證簽章也難以完全根除。此外,也有專家提到「系統版本欺騙」的問題,若應用程式未正確配置 Manifest 卻又透過 Native API 獲取真實版本號,可能導致 Win32 子系統進入不一致的相容模式,進而引發難以調試的運行時異常。