你用什么来开发在Linux上的应用程序?

我是一名经验丰富的.NET开发人员(c#/ vb.net)(自testing版以来),我想开始检查如何开发Linux应用程序。 我也做了一些Java编程。 我有Ubuntu 8.10 Linux,想知道大家用什么工具来开发应用程序(对于任何Linux风格) – Java是最好的方法吗?

我是Ubuntu的新手,从Redhat使用terminal的那段时间开始就没有在Linux上工作过,所以我还是很新的。

以下是一些基于回复的反馈:

我希望能够更有效地使用Linux(即使只是用于O / S),并通过学习不同的语言(如Java)来利用我的开发技能(过去我已经构build了非常简单的Java应用程序…非常简单) – 无论如何,我想考虑一些能够扩展我的技能的东西。

我已经build立了许多窗口和Web应用程序与.NET(一些非常大),我非常了解c#和VB.NET语言和.NET框架。 我已经build立了许多项目使用:

.net远程处理,web服务,wcf(许多最近的wcf应用程序),windows应用程序,windows服务,web应用程序 – 我在开发asp.net时使用JavaScript,我也知道VBScript&vb6。

我知道要用另一种语言有效地开发应用程序需要很多年的时间,但是我认为这会让我变得更加圆润的开发者 – 如果Google购买了微软并且使用Windows来非法,那么我仍然有一个后备scheme :-)

这在很大程度上取决于您有兴趣开发哪种types的应用程序。 C群众坚持使用良好的vi / emacs,make,gdb和许多xterm。 Java人经常使用像NetBeans和Eclipse这样的跨平台工具。 Python,Perl和Ruby人也经常使用命令行工具,但是他们的IDE一直在变得越来越丰富。 当然,许多中坚力量将成为职业生涯的命令线骑师。

期待更多的主观答案。 如果我有代表,我会标记它。

Linux世界主要是用Bash,Perl,Python和C来破解的。为了高效地使用Linux,我强烈build议你掌握这些语言。 linux真的很酷,你可以轻松地结合小应用程序来快速解决问题。 当我说Bash的时候,我也指的是所有的小工具,比如gawk,sed,wc,grep等等。

那么,这取决于你想做什么..如果你想它是在Windows上的便携式。 在这种情况下,恕我直言,Java是要走的路。 (Eclipse和NetBeans也可以在Linux上使用)。 单声道很酷..直到它不能做它应该的。

我个人觉得很酷,很多东西都是用bash构build的..这意味着你可以通过浏览这些文件来学习。我记得当我安装Archlinux的时候,我正在阅读setup bash文件,所有的步骤。

如果您想真正有效地使用Linux,我强烈build议:“由Mark G. Sobell撰写的”Linux实用指南 – 命令,编辑器和Shell编程“

但是,如果你真的不关心如何掌握Linux,而你“只”想编写一些应用程序,那么,因为你已经熟悉.net,使用Mono是可能的,但我认为学习Java是一个更好的select。

顺便说一句,如果你打算使用Linux学习使用Vim,就像学习走路一样,如果你想运行。

如果你的目标是学习Unix的方式,我build议

  1. 使用bashksh编写一些shell脚本。 使用sedawk和Kernighan和Pike的Unix编程环境中的其他东西来玩玩。

  2. 学习一点C,做一点C编程。 Kernighan和Ritchie手册是一个经典的。

  3. 做一些脚本。 Python是一个stream行的最爱,但Ruby和Lua也是不错的select。 Python可能是最富有的; Ruby是与操作系统结合的纯粹的OO; Lua是最快的,非常简单,你可以完全掌握它。

如果你想利用你的.NET技能,单声道是一个选项。 对于IDE,MonoDevelop正在推广。

如果你这样做是一个学习练习,我会远离Java。 与鼓励您使用Linux特有function的Mono不同,Java从操作系统中抽象出来。 除了在文件名中使用正斜杠之外,你不能真正告诉你在Linux上进行编程。

如果你将其作为职业道路,C和Java是更好的select。 单声道有潜力,但目前仍然是一个利基球员。

我已经写在Linux专业(即你付钱购买)的应用程序。 他们被写成C和/或C ++。 他们使用X11库(自1993年以来,Linux已经存在,自1984年以来,Unix已经存在),遵循和遵守所有标准X11参数(大多数KDE和Gnome)应用程序无法遵守标准选项的悠久历史。

对于基于Web的应用程序PHP / mySQL / Apache或Java / Tomcat / Apache需要时。 我在1993年开始networking开发,当时浏览器是网景开始者在大学时编写的Mosaic(它是Netscape和IE的父母)。 是的,微软授权了Mosaic代码。 最初的Netscape浏览器被称为Netscape Mosaic(在被更改为Netscape Navigator之前)。 即使在Mosaic代码中,“引擎被命名为”Mozilla“,早期的Netscape将会读到”它可能拼写成Netscape,但它被发音为Mozzila“。

我知道新一代的程序员不想花时间去学习真正用C或C ++编写代码,我感到非常遗憾。 由一个非常好的程序和编译器生成的代码在任何一天都会执行“托pipe代码”(但它确实需要开发人员更多的技能)。

看看Python 。

用于真正的桌面应用程序(在Eclipse中)和Python的快速和肮脏的东西的Java。 这就是Ubuntu Heron。 我更喜欢使用Sun Java运行时(Eclipse自带的编译器)。

你已经用Ubuntu做出了很好的select,即使它的商业波兰语保留了它作为一个伟大的开发操作系统的Debian根源。 你会发现大多数库/模块/语言都很容易安装,而且包装者不会在其中“破坏”function。 例如,红帽公司在perl上遇到了一个很大的问题,因为包装商采用了预发布的代码。

根据您想要编写的应用程序的types,我强烈build议Python和C. Python使GTK用户界面非常简单,C是编写一些守护进程或系统服务的最佳语言。 两者都使各种Linux发行版之间的可移植性变得容易。 了解如何使用可移植shell脚本将会很好。如果你有一些时间,也可以看看Perl。

Java是非常抽象的,你真的不会深入到Linux应用程序开发的简单使用它。 Java是Java,无论你在哪里使用它。

Python只是足够的抽象,以防止Linux在学习的时候吓倒你,C会让你接触到符合POSIX标准的内核和C库所提供的所有伟大和可怕的事情。

如果你可以用你想写的东西来更新这个问题,我相信你会看到更合适的答案。

你可能想看看像Gnome和KDE这样的桌面给你。 在KDE中,您将使用C ++开发多用途QT库 – 这也是用于移动/embedded式设备。

对于IDE,您可以检查KDevelop和Eclipse + CDT for C / C ++作业。 学习automake工具链也应该是一个奖金,因为Linux的很多软件都使用它。 然而,对于个人项目,我会采取一些更好/新的CMake(例如KDE使用CMake)。

对于快速的工作使用Python或Ruby – 无论哪一个更适合你。