使用Go语言编写iPhone应用程序的库

12
我正在考虑使用Go作为一种低级、高性能的语言替代C/Objective-C来实现iPhone应用程序的库。其中任何一个Go编译器能否生成可链接到带有Go运行时等内容的本机iPhone应用程序的库呢?是否有针对Go的ARM端口或gccgo/gcc支持此功能?我想,由于gccgo使用gcc作为后端,而Xcode使用gcc编译iPhone应用程序,因此这是可能的。如果可以,请问我该如何在Xcode项目中设置它?
有人尝试过这样做或看到过相关讨论吗?(当我像“编译go代码iphone”这样进行谷歌搜索时,“go”部分完全未被使用,我只会得到关于iPhone开发的信息。)
4个回答

7

目前 Go 不支持 iPhone 平台,但它支持 ARM 处理器。不过在邮件列表中还没有太多关于此的讨论。


2
即使可能,我怀疑Go比C或Objective C慢得多。大多数独立的基准测试似乎表明,使用当前开发版本的性能较差。这些与C的微基准测试表明,Go比C慢2到150倍。它甚至比Java和C# Mono还要慢。因此,我认为没有太多理由称Go为高性能替代品。
虽然这取决于您的应用程序,但我认为利用GPU API是解决大多数性能问题的最佳选择。

那么Go的目标是替代服务器上的C#/Java吗?这是这样的想法吗?我猜C语言可以做我需要的,但我可能会用到字符串,哈希表等。 - Jared Updike
看代码大小列也很有趣,150X但是624(Go)对比2579(C)。你可以更快地开发,在应用程序成功的同时编译器也可能得到改进。 - fabrizioM
Go语言比C语言慢2到150倍。箱线图的好处是你可以轻松地看出150是一个异常值。http://shootout.alioth.debian.org/u32/which-programming-languages-are-fastest.php?gcc=on&go=on&calc=chart - igouy
这些微基准测试是针对6g Go编译器和运行时的,但OP在谈论gccgo。 - igouy

2

至少要考虑的一件事是Lua。它快速且我喜欢使用这种语言。iPhone Wax 使用lua。


我这周刚读完参考手册!我正在实现的是一种脚本语言,Lua C源代码可能会有用,尽管在另一种脚本语言中实现脚本语言可能不是一个好主意。(我的脚本语言原型是用Haskell编写的,我正在寻找一个合适的替代品。我可能只能用C来应对了。) - Jared Updike
我强烈建议不要使用Wax。从2015年2月开始,所有新提交的应用程序都需要64位块。iPhone Wax没有64位支持,添加它将需要修复lua和objc-c之间的参数编组,在两个方向上都有错误 - 在32位中已经存在错误(无符号整数无法正常工作)。 - Airsource Ltd

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接