2010-02-13 10 views
12

Estoy considerando usar Go como una alternativa de bajo nivel y rendimiento a C/Objective-C para implementar una biblioteca para una aplicación de iPhone. ¿Podrían cualquiera de los compiladores Go generar una biblioteca que podría vincularse a una aplicación nativa de iPhone con el tiempo de ejecución Go, etc.? ¿Hay un puerto ARM para Go o gccgo/gcc lo admite? Imagino que, dado que gccgo usa gcc como back-end y Xcode usa gcc para compilar aplicaciones de iPhone, hay grandes posibilidades de que esto sea posible. Si es posible, ¿cómo lo configuraría en un proyecto de Xcode?Uso de Ir a escribir una biblioteca para una aplicación de iPhone

¿Alguien ha intentado esto o lo ha visto antes? (Cuando hago una búsqueda en Google como "compilar go code iphone", la parte "ir" no se usa y obtengo solo información sobre el desarrollo de iPhone.)

Respuesta

7

Go no es compatible con la plataforma iphone en este momento, pero sí soporte a procesadores ARM. Sin embargo, no ha habido mucha discusión sobre esto en la lista de correo.

1

Incluso si es posible, sospecho que Go es significativamente más lento que C u objetivo C. La mayoría de los puntos de referencia independientes parecen sugerir un rendimiento deficiente con las versiones de desarrollo actuales. Estos microbenchmarks against C suggest Go son 2 a 150 veces más lentos que C. Es incluso más lento que Java y C# Mono. Entonces veo pocas razones para llamar a Go una alternativa de rendimiento.

Aunque depende de su aplicación, sospecho que aprovechar la API de GPU es la mejor opción para la mayoría de los problemas de rendimiento.

+0

So Go tiene como objetivo reemplazar C#/Java en el servidor? Es ese tipo de idea? Supongo que C hará lo que necesito, pero podría usar cadenas, hashtables, etc. –

+0

También es interesante observar la columna de tamaño de código 150X pero 624 (Ir) frente a 2579 (C). Usted se desarrolla más rápido y en el momento en que su aplicación sea exitosa también el compilador podría haber mejorado. – fabrizioM

+0

>> Ir es de 2 a 150 veces más lento que C << Lo bueno de los gráficos de diagrama de caja es que se puede ver fácilmente 150 es un valor atípico http://shootout.alioth.debian.org/u32/which-programming-languages- are-fastest.php? gcc = on & go = on & calc = chart – igouy

2

Una cosa para al menos mirar sería Lua. Es rápido y es un lenguaje que me gusta usar. iPhone Wax usa lua.

+0

¡Acabo de leer el manual de referencia esta semana! Lo que realmente estoy implementando es un lenguaje de scripting y las fuentes de Lua C podrían ser útiles, aunque la implementación de un lenguaje de scripting en otro lenguaje de scripting probablemente sería una mala idea. (Mi prototipo para el lenguaje de guiones está en Haskell y estaba buscando un sustituto adecuado. Probablemente tenga que hacerlo con C. –

+0

Recomiendo encarecidamente no usar Wax. A partir de febrero de 2015, todas las nuevas aplicaciones enviadas requerirán un 64- bit bit. iPhone Wax no tiene soporte de 64 bits, y agregarlo requeriría correcciones para el parámetro de clasificación entre lua y objc-c, en ambas direcciones, algo que ya tiene errores en 32 bits (las notas no firmadas no funcionan correctamente) –

0

El proyecto Go Mobile ahora tiene algo de apoyo para el desarrollo móvil IOS y Android. Consulte la sección wiki en Building for IOS para obtener detalles sobre su aplicación.

Cuestiones relacionadas