2010-02-13 61 views
12

我正在考慮使用Go作爲替代C/Objective-C的低級別,高性能語言來實現iPhone應用程序的庫。 Go編譯器是否可以生成一個可以通過Go運行時等鏈接到本機iPhone應用程序的庫? Go有沒有ARM端口,或者gccgo/gcc是否支持這個?我想gccgo使用gcc作爲後端,而Xcode使用gcc來編譯iPhone應用程序,這是很有可能的。如果可能的話,我將如何在Xcode項目中設置它?使用Go爲iPhone應用程序編寫庫

有沒有人試過這個或看過它之前討論過? (當我做一個谷歌搜索,如「編譯去代碼iPhone」的「去」部分是完全沒有使用,我只得到關於iPhone開發的東西。)

回答

7

Go目前不支持iphone平臺,但它確實支持ARM處理器。儘管在郵件列表上沒有太多的討論。

1

即使可能,我懷疑Go比C或Objective C慢得多。大多數獨立基準似乎表明使用當前開發版本的性能較差。這些microbenchmarks against C suggestGo比C慢2到150倍,甚至比Java和C#Mono慢。所以我覺得沒有什麼理由稱之爲高性能的替代品。

雖然這取決於您的應用程序,但我懷疑利用GPU api是大多數性能問題的最佳選擇。

+0

因此,Go的目標是取代服務器上的C#/ Java?這是什麼想法?我猜C會做我所需要的,但我可以使用字符串,散列表等。 –

+0

有趣的是,查看代碼大小列150X,但是624(Go)vs 2579(C)。你的開發速度更快,並且在你的應用程序變得成功的時候,編譯器也可以改進。 – fabrizioM

+0

>> Go比C慢2到150倍<< boxplot圖表的好處是你可以很容易地看到150是一個異常值http://shootout.alioth.debian.org/u32/which-programming-languages- are-fastest.php?gcc = on&go = on&calc =圖表 – igouy

2

至少看一看就是Lua。它速度很快,是我喜歡使用的語言。 iPhone Wax使用lua。

+0

我剛剛閱讀本週的參考手冊!我實際上實現的是一種腳本語言,Lua C源代碼可能很有用,但是在另一種腳本語言中實現腳本語言可能不是一個好主意。 (我的腳本語言原型是在Haskell中,我正在尋找一個合適的替代品,我可能不得不用C做出來。 –

+0

我強烈建議不要使用Wax。從2015年2月起,所有新提交的應用程序都需要64- iPhone Wax沒有64位支持,並且添加它需要修正lua和objc-c之間的參數編組,兩個方向 - 已經存在32位(無符號整數)中的錯誤不能正常工作)。 –

0

Go Mobile項目現在對IOS和Android移動開發有一定的支持。有關您的應用程序的詳細信息,請參閱Building for IOS上的wiki部分。