最合适的平台独立开发语言

时间:2009-05-28 09:27:05

标签: cross-platform platform-independent

项目迫在眉睫,因此我将编写的一些代码可以部署在潜在客户碰巧拥有的任何硬件上。它是一个全天候运行的业务应用程序,所以我设想大多数主机都是服务器类型的盒子,但是较小的客户端可能只有一台简单的PC。

关于我将要编写的代码的更多细节:

  1. 没有GUI。

  2. 需要通过以太网与另一个定制的“黑匣子”设备进行通信。

  3. 它需要与网络上某处的MySQL数据库进行通信。

  4. 我没有任何性能问题,因为a)与黑匣子的通信次数很少,大约每秒1次,交换的数据量很小(每次大约1K), b)数据库的读/写次数很少,大约每分钟5次,而且交换的数据量也很小; c)需要执行的处理相当简单。

  5. 我所做的一切都非常“接近金属”所以我不想使用太低级别的语言。易于开发和易于部署是我的主要优先事项。

  6. 我不希望有一个完美的解决方案,所以我可以忍受一些事情,例如,Windows机器的配置文件略有不同于Linux机箱等。我想避免让尽可能为每台主机编译软件。

  7. 我会重视您认为哪种开发语言最合适。

    干杯,

    吉姆

8 个答案:

答案 0 :(得分:11)

我会亲自使用像Python,Perl或Ruby这样的脚本语言。所有这些都有不错的库支持,可以与本地和远程MySQL数据库轻松通信,并且非常独立于平台。

答案 1 :(得分:5)

我们需要知道的第一件事是你已经拥有的语言技能?这可能是您理想选择的一个相当大的决定因素。

如果我这样做,我会建议Java有几个原因:

  1. 它几乎可以在任何地方运行,并符合您概述的要求。
  2. 它不是一种深奥的语言,所以会有很多开发者。
  3. 我已经知道如何编程了!
  4. 可能是任何开发平台中最广泛的图书馆生态系统。
  5. 另请注意,如果您对Ruby或Python更熟悉,可以在JVM上用其他语言编写它。

答案 2 :(得分:3)

听起来像Perl或Python完全符合该法案。您选择哪一个取决于人员建立和支持系统的专业知识。

答案 3 :(得分:3)

关于脚本语言与Java的主题,我对使用Java开发命令行工具感到失望。你不能直接执行它们,你必须(1)编译它们,(2)编写一个shell脚本来执行jar文件,这个脚本可能在平台之间有所不同。我推荐Python,因为它可以在任何地方运行,而且它有一个很棒的SQL库,mysql-python。该库已准备好在Windows和Linux上使用。 Python也有很少的样板,你可以编写更少的代码行来做同样的事情。

编辑:当我谈到JAR是否可执行时,我在谈论它们是否可以直接执行操作系统。当然,如果文件管理器已设置为运行,您可以双击它们来运行它们。但是当你在终端窗口中并且想要运行java程序时,你必须使用“java -jar myapp.jar”而不是通常的“./myapp.jar”。在Python中,只运行“./myapp.py”,而不必担心编译或类路径。

答案 4 :(得分:1)

如果所有平台都是标准PC(或至少运行Linux),则应考虑Python。如果您的版本不存在任何软件包,您可以自行编译。此外,您可以轻松地从不可用且不需要的东西中剥离标准库(例如声音支持)。

Python不需要很多资源,它易于学习和阅读。

如果你了解Perl,你可以试试。如果您不每天使用Perl,那么请不要。 Perl语法很难记住,一周之后,你会想知道代码做了什么,即使你是自己写的。

答案 5 :(得分:1)

Perl可能对您有所帮助,因为它可用于许多平台,只需从CPAN安装模块即可获得几乎任何功能。

答案 6 :(得分:1)

Python或Java。它们都易于在您提到的服务器环境和桌面环境中部署 - 即Linux / Solaris和Windows。

Perl也是一个不错的选择,但这取决于你对Perl的了解程度,维护你的代码的其他人知道Perl的程度,以及足以精确处理Windows Perl版本安装的桌面用户数量(一个或多个)。

由于Java通过Jython支持Python,我自己也会考虑JVM,但我个人会为你所描述的系统一直使用Java应用程序。

答案 7 :(得分:0)

我会说使用C或C ++。它们是独立于平台的,但您必须为每个平台进行编译。

或者使用Java。它在虚拟机中运行,因此实际上是跨平台而不是像C一样缓慢的水平。