【发布时间】:2023-04-08 08:51:01
【问题描述】:
我们需要编写一些可以在 Mac OS X 服务器和 Ubuntu 上编译和运行的软件。我们很乐意使用具有 Cocoa 优点的 Objective-C,但是我们正在使用的部分的 GNUstep 实现被破坏了(无论如何在最新的 Ubuntu 包中。)
鉴于此,我们应该使用 C++(我真的不想)、C 还是其他我们没有想到的东西?
这是一个非常耗费资源的服务器/后端进程,该软件的 Java 和其他解释版本的性能比我们编写的 Objective-C 概念证明要差得多,因此我们现在希望重新编写一种“编译[1]”语言。
(注意:有些人可能会认为这是主观的,但归根结底我们确实需要完成工作,这里必须有一个合理适当的正确答案)。
[1] 编译为本机 CPU 指令,而不是编译为必须由解释器运行的“字节码”。
【问题讨论】:
-
出于好奇,为什么它必须是一种编译的语言?
-
您可以在任何平台上使用 Objective-C - Objective-C 编译器是 GCC 发行版的一部分。可移植性问题在于 Apple 的 Cocoa 库。
-
是什么让你认为 GNUstep 不会削减它?听起来您想编写某种服务器后端,使用 GNUstep 执行此操作应该没有问题。
-
@Sir Lord Mighty:GNUstep 是一个可怕的黑客。如果你看一下 GNUstep 的源代码,它的字面意思是“这是一个 hack”。这是因为 GNU Objective-C 运行时很垃圾,而且确实落后了。 GNUstep 强加给开发人员的构建系统远没有使用 Apple 的额外 GCC 标志
-framework好。 -
看起来最好的答案是使用objective-c作为c的扩展,但不使用任何apple/cocoa框架的东西,(即NS *的东西)并编写类似的东西NSURLConnection 我们自己。
标签: objective-c linux compatibility gnustep