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

时间:2009-01-06 02:24:22

标签: linux

我是一位经验丰富的.NET开发人员(c#/ vb.net)(自测试版以来),我想开始查看如何为Linux开发应用程序。我也做了一些Java编程。我有Ubuntu 8.10 Linux,并且想知道每个人都在使用什么作为开发应用程序的工具(对于任何Linux风格) - Java是最好的方法吗?

我是Ubuntu的新手,自从Redhat使用终端以来没有在Linux上工作,所以我还是很新。

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

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

我用.NET构建了许多窗口和Web应用程序(有些非常大),而且我对c#和vb.net语言以及.net框架非常了解。我使用以下方法构建了许多项目:

.net远程处理,Web服务,wcf(许多最近的wcf应用程序),Windows应用程序,Windows服务,Web应用程序 - 我在开发asp.net时使用JavaScript,而且我也知道VBScript& VB6。

我知道能够用其他语言有效地创建应用程序需要很多年,但我认为这会让我更加全面的开发人员 - 如果谷歌收购微软并使其成为非法使用Windows,那么我仍有备用计划: - )

8 个答案:

答案 0 :(得分:21)

这在很大程度上取决于您对开发感兴趣的应用程序类型。 C人群坚持使用好的'vi / emacs,make,gdb和许多xterms。 Java人员经常使用NetBeans和Eclipse等跨平台工具。 Python,Perl和Ruby人员也经常使用命令行工具,但他们的IDE一直在变得更加丰富。当然,许多坚定不移的人将成为他们职业生涯剩余时间的指挥骑手。

期待更多主观答案。如果我有代表那么我就这样标记它......

答案 1 :(得分:9)

Linux世界主要是使用Bash,Perl,Python和C进行攻击。为了有效地使用Linux,我强烈建议您掌握这些语言。关于linux真正酷的是你如何轻松地结合小应用程序来快速解决问题。当我说Bash时,我也指的是所有的小工具......比如gawk,sed,wc,grep等。

然后,它取决于你想做什么..如果你想让它在Windows上可移植。在这种情况下,恕我直言,Java是要走的路。 (Eclipse和netbeans也可以在linux上使用)。 单声道很酷..直到它没有做到它应该做的。

我个人觉得真的很酷很多东西都是用bash构建的......这意味着你可以通过探索这些文件来学习。我记得当我安装Archlinux时,我正在阅读同样的设置bash文件时间并遵循所有步骤。

如果你想真正有效地使用Linux,我强烈建议:“Linux实用指南 - 命令,编辑和Shell编程 - 作者:Mark G. Sobell”

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

顺便说一下,如果你打算使用Linux,学会使用vim有点像学习走路,如果你想跑步。

答案 2 :(得分:8)

如果您的目标是学习Unix方式,我建议

  1. 使用bashksh编写一些shell脚本。使用sedawk以及您在Kernighan和Pike The Unix Programming Environment中找到的其他内容即可玩。

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

  3. 做一些脚本。 Python受欢迎,但Ruby和Lua也是不错的选择。 Python可能是最富有的; Ruby是与操作系统结合的纯OO; Lua是最快的,你可以完全掌握它。

答案 3 :(得分:5)

我在Linux中编写了专业(即付费购买)应用程序。它们是用C和/或C ++编写的。他们使用的是X11库(自1993年以来一直存在于Linux中,自1984年以来一直存在于Unix中)并遵循并尊重所有标准X11参数(大多数KDE和Gnome)应用程序无法遵循标准选项的悠久历史。

对于基于Web的应用程序,需要时使用PHP / mySQL / Apache或Java / Tomcat / Apache。我在1993年开始进行Web开发,当时他们在大学期间浏览器是由Netscape初学者编写的Mosaic(它是Netscape和IE的父级)。是的,Microsoft许可了Mosaic代码。最初的Netscape浏览器被称为Netscape Mosaic(在它改为Netscape Navigator之前)。即使在马赛克代码中,“引擎也被命名为”Mozilla“,早期的Netscape将会读到”它可能拼写为Netscape,但它发音为Mozzila“。

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

答案 4 :(得分:4)

如果您想利用您的.NET技能,可以选择Mono。对于IDE,正在推广MonoDevelop。

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

如果您将此作为职业发展道路,那么C和Java是更好的选择。单声道有潜力,但目前仍然是一个利基球员。

答案 5 :(得分:2)

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

答案 6 :(得分:1)

你已经为Ubuntu做了一个很好的选择,即使它的商业润色,它仍然保留了Debian作为一个伟大的开发操作系统的根源。您会发现大多数库/模块/语言都易于安装,并且打包器不会“破坏”其中的功能。例如,Red Hat与perl存在很大问题,因为打包器提供了预发布代码。

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

Java是如此高度抽象,你真的不会深入研究使用它的Linux应用程序开发的简单性。无论您在何处使用Java,Java都是Java。

Python只是足以让Linux在你学习的同时使你免受恐吓,C会让你接触到POSIX兼容内核和C库必须提供的所有伟大而可怕的东西。

如果您可以根据想要写的内容更新问题,我相信您会看到更合适的答案。

答案 7 :(得分:0)

您可能希望了解Gnome和KDE等桌面提供的内容。在KDE中,您将使用C ++开发,使用多功能QT库 - 也可用于移动/嵌入式设备。

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

对于快速工作,请使用Python或Ruby - 无论哪种更适合您。