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 消除了开发人员需要进行繁琐和具有破坏性的仪器、重新编译、安装和重启序列以收集数据的需求。