Linux 指南/程式設計工具
| 此頁面或部分內容是未開發的草稿或提綱。 您可以幫助開發作品,或在專案室尋求幫助。 |
由於其作為 FLOSS 運動一部分的歷史,GNU/Linux 作業系統非常適合軟體開發。
gcc 代表 GNU C 編譯器,是C 編譯器。它可以用於編譯 C 程式。
g++ 代表 GNU C++ 編譯器,是C++ 編譯器。它可以用於編譯 C++ 程式。
gfortran 是 GNU 的 Fortran 95 語言編譯器。
gcj 代表 GNU Java 編譯器,是一種可以編譯Java 的編譯器。雖然還不完整,但它已經可以編譯簡單的 Java 程式。
大多數現代發行版(2010 年)在其儲存庫中包含 OpenJDK,它主要實現了標準 Java Sun(現為 Oracle)JDK。
Mono 是 .NET Framework 的 Linux 實現。
Lisp 程式碼可以編譯或解釋,好的編譯器可以生成執行速度幾乎與C 一樣的程式碼。它還用作GIMP 和Maxima CAS 中的指令碼語言。
Python 在 Linux 平臺上的成功令人驚歎。部分功勞在於它最初的設計是為了輕鬆嵌入 C/C++ 程式,因此如今 Linux 中的大多數主要應用程式(以及 GNU 應用程式)都可以透過 Python 進行指令碼化(Blender、Gimp、Inkscape、OpenOffice 或 Dia 就是很好的例子,但還有很多其他的例子)。它也成功地成為伺服器空間中 Java 的一個很好的替代方案,主要是因為它更容易學習和使用。(Python 最初被設計為面向初學者程式設計課程的語言)。
Plone 內容管理系統 可能是 Python 作為伺服器平臺的最大成功案例,它提供了一個功能齊全的系統,可以透過使用者友好的 Web 介面建立內容,在許多公司中取代了商業解決方案。
Sagemath 是另一個成功的 Python 應用程式的例子。它將許多現有的開源包組合成一個通用的基於 Python 的介面,為 Magma、Maple、Mathematica 和 Matlab 等數學軟體提供了真正的替代方案。
警告:需要注意的是,Python 缺乏對多執行緒的良好支援(2010 年 6 月),因此在某些情況下,當需要高輸入/輸出併發負載和/或低延遲響應時,它會失敗。
GIMP 還包含一個 Python 控制檯。
R 不是通用語言。R 專為統計計算和圖形設計。它非常強大,如今被專家認為已經超越了大多數商業解決方案(其中一些售價超過 200,000 美元/個許可證!)。
Vim(vi-improved 的縮寫)是一個由 Bram Moolenaar 編寫的文字編輯器,它基於 Stevie 編輯器移植到 Amiga 的原始碼,並於 1991 年首次公開發布。Vim 被設計為既可以透過基於終端的介面使用,也可以作為圖形使用者介面中的獨立應用程式使用。Vim 是免費的開源軟體,在包含一些慈善軟體條款的許可下發布,鼓勵享受該軟體的使用者考慮向烏干達的兒童捐款。該許可與 GNU 通用公共許可證相容。
Code::Blocks 是一款免費的開源跨平臺 IDE,用於開發程式碼。它使用 C++ 編寫,並設計用於與 C++ 一起使用。儘管它可能可以配置為其他語言。在 維基百科文章 中瞭解更多資訊。
作為基於 Java 的應用程式,Eclipse 在任何支援 Java 的 Linux 中執行。特別是,它與 OpenJDK 無縫執行。雖然它是在 Java 中開發的,但 Eclipse 提供了對其他平臺的出色支援和整合。特別是,它在對 PHP 和 C/C++ 的支援方面表現出色。例如,Eclipse CDP(C/C++ 開發外掛)允許程式碼重構、語法高亮、自動完成、與 GNU 編譯器+連結器+偵錯程式工具鏈整合。它還提供程式碼的自動“即時”索引,例如允許查詢工作區中其他檔案中方法或變數的引用。
Geany 是一款使用 GTK2 工具包的文字編輯器,具有整合開發環境的基本功能。它被開發用來提供一個小型且快速的 IDE,它對其他軟體包的依賴性很少。它支援許多檔案型別,並具有一些不錯的功能。[1]
IDLE 是 Python 的“整合開發和學習環境”。它包括一個帶有語法高亮顯示的文字編輯器和一個 REPL(讀-求值-列印迴圈)控制檯,用於執行 Python 程式或任意 Python 程式碼。它與 Windows 上的 Python 捆綁在一起,但可以透過大多數發行版的儲存庫進行安裝。
一個使用 Free Pascal Compiler (FPC) 的與 Delphi 相容的跨平臺 RAD IDE。包含跨平臺 GUI 庫 LCL,它或多或少與 Delphi 的 VCL 相容。它連線到本機 GUI 小部件,而不是自定義繪製庫。
基於 Java。類似於 Eclipse。對於 Linux 開發,Eclipse 更受歡迎,因為它提供了更好的 C/C++/PHP 和其他語言工具,以及與 GNOME/KDE 桌面的更好整合。NetBeans 最初由 Sun Microsystems 開發。在被甲骨文收購後,它的未來不確定,因為甲骨文為其客戶群提供了另一套工具。
Qt Creator
[編輯 | 編輯原始碼]Qt Creator 是一款基於 Qt C++ 工具包的跨平臺開發環境。Linux、Windows、Mac、Symbian、Meego 作業系統目前(2010 年)已支援。它最初由 Trolltech 開發,Trolltech 於 2008 年被諾基亞收購。諾基亞在 GPL 下發布了 Qt 程式碼。Qt 是 KDE 的基礎,KDE 與 GNOME 一同成為 Linux 上最成功的兩個桌面環境。Qt 是跨平臺的,因此也已被軟體公司廣泛使用(除了諾基亞,它將 Qt 作為標準,Skype 客戶端就是一個著名的例子)。
Visual Studio 無法在 Linux 下本地執行。但是,您仍然可以使用 Wine 層在 Linux 下執行 Visual Studio IDE。Visual Studio Express 目前不支援。有關 Mono 的資訊,請參見下一部分。
Mono Develop
[編輯 | 編輯原始碼]Mono 是 Novell 對 .Net 的“本地”實現。Mono Develop 在任何主要 Linux 發行版上都能完美安裝和執行。
Vim 是一款功能強大的文字編輯器,具有良好的程式設計支援。它特別適合於 Perl、Python 或 SQL 等指令碼語言。藉助“cscope”外掛,它還允許索引 C/C++/Java 程式碼,以搜尋變數和函式的宣告、定義和引用。雖然功能非常強大,但在大多數情況下,它在複雜專案中已被 Eclipse 取代。儘管如此,藉助“screen”(一個功能強大的終端多路複用器),它為開發提供了出色的支援,當我們需要同時檢查程式碼、調整複雜的配置 txt/xml 檔案、記錄輸出以及監控系統或網路時,它提供了出色的支援。與視覺化工具相比,Vim 有點難以學習,因為它需要記憶大約 30 種不同的命令(Vim 培訓可能需要 10-20 個小時)。儘管如此,它仍然值得付出努力,因為**一旦學會,它比傳統文字編輯器更容易使用**,並且在編輯複雜程式碼方面速度更快。它的塊模式允許(有點想象力)甚至建立小型文字圖表,或同時用作文字編輯器或微型資料庫系統。
diff 模式(vimdiff 命令)模式允許編輯和直觀地比較同一檔案的兩個版本中的更改。在使用版本控制系統(如 subversion)或處理複雜的配置檔案(/etc 目錄中的所有這些檔案)時,這是一個極好的工具。
“大量註釋可能表明程式碼有良好的文件記錄和組織,並且可能是開發團隊樂於助人和有紀律的標誌。” 在 Open Hub 中,19% 的原始碼行都是註釋。[6]
Valgrind 包含一組工具,可以自動檢測許多記憶體管理和執行緒錯誤,並詳細分析您的程式。Valgrind 也可用於構建新工具。例如,cachegrind 是眾多包含的工具之一,它允許分析內部 CPU 快取 L1/L2 使用情況。
SystemTap 提供了對執行系統的診斷。SystemTap 消除了開發人員需要進行繁瑣和具有破壞性的儀器、重新編譯、安裝和重啟序列以收集資料的需求。