當您想要使用一種經過編譯並高速執行的語言時,C 語言是最佳選擇。C++ 也可以,但請不要過度使用模板。Java 也可以,如果您編譯它的話。
當不需要最高效率時,自由軟體社群中常用的其他語言,例如 Lisp、Scheme、Python、Ruby 和 Java,也都可以接受。Scheme,以 GNU Guile 的實作方式而言,在 GNU 系統中扮演著特殊的角色:它是擴展以 C/C++ 撰寫的程式的首選語言,也是適用於各種應用程式的優良語言。GNU 組件使用 Guile 和 Scheme 的程度越高,使用者就能夠擴展和組合它們的程度就越高 (請參閱 《Emacs 理論》,出自 GNU Guile 參考手冊)。
許多程式被設計為可擴展的:它們包含一個比 C 更高階的語言的直譯器。通常程式的大部分也是用該語言編寫的。Emacs 編輯器開創了這種技術。
GNU 軟體的標準可擴展性直譯器是 Guile (https://gnu.dev.org.tw/software/guile/),它實作了 Scheme 語言 (Lisp 的一種特別簡潔和簡單的方言)。Guile 還包括 GTK+/GNOME 的綁定,使得在 Guile 中編寫現代 GUI 功能成為可能。我們不排斥用其他「腳本語言」 (例如 Perl 和 Python) 撰寫的程式,但使用 Guile 是通往 GNU 系統整體一致性的道路。