哪些语言允许创建跨平台本机可执行文件?

JT.*_*JT. 10 executable programming-languages

我很沮丧地发现Java缺乏一个可接受的解决方案来创建将通过双击运行的程序.除了.NET for Windows之外,我可以编写哪些现代和高级编程语言,可以针对各种平台进行编译,并在每个平台中作为本机/二进制运行(Windows,Linux,OSX(可选))

例如,假设我想在python中编写代码,是否有一种有凝聚力的方式可以分发我的软件,这不需要用户做任何特殊的操作来运行它?我想为计算机文盲编写和分发软件,Java在这方面已经证明是一种真正的痛苦.

澄清:当我说跨平台时,我的意思是我可以使用不同的编译器为每个目标系统编译我的源代码.我不需要一次编译解决方案......我只想为软件用户提供简单的体验,即使我需要编译它并为每个目标平台解决代码问题.

Rob*_*vey 6

C是你最接近的.

提供最佳跨平台执行的语言将是那些运行本机代码的语言,如Java平台和.NET框架.您还可以使用解释语言而不是编译语言.

我一直在用Winforms试验Mono和C#.到目前为止,它已被证明是一个非常好的组合.在Windows中,可以通过直接双击可执行文件或为其创建可以双击的快捷方式来运行可执行文件.在Linux中,可执行文件可以从执行小脚本的图标运行,并且用户体验基本相同.

我认为您可以期待与Python类似的体验.


Osc*_*Ryz 6

添加转到列表.

要在go中启用交叉编译,您必须重新编译运行时和标准库:

cd /usr/local/go/src
for os in linux windows darwin; do
  GOOS=${os} GOARCH=amd64 ./make.bash —no-clean
done
Run Code Online (Sandbox Code Playgroud)

然后在编译之前指定目标OS:

GOO=linux go build yourprojecthere
Run Code Online (Sandbox Code Playgroud)

  • 虽然我在这里推荐 Rust 作为答案之一,但我很快就爱上了 Go。我会选择 Go over Rust,因为它的 GC 使生活更轻松,但这只是我。顺便说一句。 (2认同)

Ign*_*ams 5

如果您习惯使用 Delphi,那么Lazarus可以提供类似的环境,但允许跨平台编译。不幸的是,您不能直接将 VCL 组件放入其中,因为这些组件往往是特定于 Windows 的/以 Windows 为中心的。不过,一些 VCL 组件提供商也提供 LCL 版本。


Osc*_*Ryz 5

C++

以谷歌浏览器为例。它是一个新的 Web 浏览器,也是本机多平台应用程序的一个优秀示例,它是用 C++ 编写的。

当然,正如您所说,他们必须“解决每个目标平台的代码问题” ,但这确实有效!

  • 使用 QT,编写跨平台 C++ 应用程序可能会非常有价值。 (2认同)

Har*_*aka 5

Rust应该在这个列表中。

  1. https://www.rust-lang.org/en-US/安装 Rust 工具链
  2. cargo new "my_first_rust_progam" --bin
  3. cd my_first_rust_progam
  4. cargo run

不,真的是这样。最终用户无需预先安装运行时或框架。真的就是这么简单。您刚刚编写并编译了一个很小的“hello world”源代码到本地二进制文件并执行它。

https://doc.rust-lang.org/上有很好的文档可以帮助您入门。今天学习 Rust!

  • 在写完这个答案后不久,我就花时间学习了 Go。我想说,如果您不开发系统应用程序,那么它在生产力方面会更好。在我整个职业生涯中遇到的大约 99% 的服务器端用例中,我都会选择 Golang 而不是 Rust。两者都学。你不会出错的:D (2认同)