【问题标题】:Developing web application using Objective-C on FreeBSD在 FreeBSD 上使用 Objective-C 开发 Web 应用程序
【发布时间】:2012-03-07 15:17:49
【问题描述】:

我看到 Clang 3.0 移植包含 Objective-C 作为开发语言,此外,我还发现了这个移植“libobjc2-1.6”(Replacement Objective-C runtime support Obj-C 2 features)和“ofc-0.8 .1_5"(Objective-C 基础类库)。

假设我们正在考虑在 FreeBSD 上使用 Objective-C 来开发基于 Web 的应用程序(相对于使用 Java 并在 Tomcat/Glassfish 上运行它),我们该如何处理?

Objective-C 开发真的可以在 FreeBSD (9.0) 上运行吗?

要下载和安装哪些东西(框架/库)?

什么 IDE?

正如我提到的,假设我们打算开发一个 Web 应用程序,库是什么?/libraries(我们还看到有“GNUstepWeb” - WebObjects 的继任者 - 这是我们应该考虑的 Web 库吗?这是唯一的一个 - 其他替代方案呢?此外,GNUstep/GNUstepWeb 可以在 Clang 3.0 下编译或使用上面提到的那些 Objective-C 端口(“libobjc2-1.6”和“ofc-0.8.1_5”)吗?这些端口是否相关? ?

有没有人在 FreeBSD 上使用 Objective-C 成功完成了 Web 应用程序项目开发(并部署在 FreeBSD 上)?

注意:基于 Web 的应用程序意味着它接受 HTTP (RESTful) 调用并与数据库对话(对于传统和/或 NoSQL 数据库)。

【问题讨论】:

标签: objective-c clang freebsd gnustep


【解决方案1】:

http://cocotron.org 是 Apple 的 Objective-C 运行时的一个端口(更像是重写)。

我仍然可以建议不要将 ObjC 用于 Web 堆栈。我以前做过,我必须说它涉及到大量非常常见的代码,您需要为基本的 HTTP 服务器功能实现这些代码。

此外,Cocotron 并不是那么快(作为运行时)。桌面应用程序没问题,但网络世界的限制要多得多。

【讨论】:

    【解决方案2】:

    我正在编写一个支持此功能的库,它使用 FastCGI 来连接名为 CGIKit (https://github.com/xcvista/CGIKit) 的服务器,它适用于 GNUstep 而不是 Cocoatron。

    【讨论】:

      【解决方案3】:

      【讨论】:

        【解决方案4】:

        Someone seems having success building Objective-C program for FreeBSD 9.x

        如果您不介意使用 Apple,则无需担心 IDE。可以在 Mac 上编写,并在 FreeBSD 上运行。 (我个人认为这是两全其美)IMO,如果有一个支持 Objective-C 的服务器操作系统,FreeBSD 将是第一个。

        更严重的问题是库和框架。即使在 OSX 上,我们在 Objective-C 中也没有太多用于 Web 服务器开发的选项。但是我们可以包装现有的 C/C++ 库(就像许多出色的 node.js、Python、Ruby 库一样),我认为我们可以通过少量努力获得大量选项。

        有些人担心安全问题。而且我一直想知道网络上有多少基础程序是用 C/C++ 和其他语言编写的。

        【讨论】:

        • 我怀疑 FreeBSD 会是第一个。除非您的意思是 Objective-C 2.0 已准备就绪(当然,运行时的作者在 FreeBSD 核心团队)。 IE。因为 GNUstep 世界的大多数 Objective-C Web 库都是在 GCC 时代开发的。
        • @FredFrith-MacDonald 啊,是的。你说得对。我忘记了旧版运行时。而且我认为我们不能按原样使用遗留的 GNUstep 库。所以如果有可能,我会很乐意自己写。
        • 那些旧框架正在生产中,它们可能需要一些补丁,也可能不需要。它们维护得很好,所以我不知道您为什么将它们描述为“遗产”。您认为您不能使用这些库的依据是什么?你甚至都没试过,是吗?
        • @FredFrith-MacDonald 这是因为您告诉我这些框架依赖于旧版 (GCC) 运行时,所以我认为它没有更新。但是,如果它们获得了现代运行时的更新,则没有技术理由不使用它们。
        • @FredFrith-MacDonald 这与上下文无关,但许可证也将被考虑用于商业产品。我倾向于避免使用 GPL 软件以避免任何可能的法律问题。无论如何,这更像是政治或法律问题,而不是技术问题。
        【解决方案5】:

        在他的博客文章“Using Objective-C on the server”Graham Lee 中描述了如何设置一个最小的 GNUStep-WebApp。显然,GNUstep-make 的构建指令会有所不同,但除此之外,这似乎是一个不错的起点。

        他写了several other posts (jQuery, AJAX) 进一步探索 GSW。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-06-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-09-24
          • 1970-01-01
          • 1970-01-01
          • 2011-12-05
          相关资源
          最近更新 更多