Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Programar para iPhone

Iniciado por angelfmarcos, 10 de Agosto de 2009, 09:42:49 PM

« anterior - próximo »

angelfmarcos

Hola

Estoy empezando con esto de la programacion para iPhone y me gustaría saber si se pueden programar cosas decentes usando solamente c++, usando el minimo posible de objetive-c (me parece horrible)

Un saludo.

Prompt

Si, afortunadamente puedes. Pero que sea decente o no, depende de ti.

_CONEJO

Si, puedes usar openGL para el tema de gráficos junto con C/C++

Yotes

#3
Y resulta conveniente hacerlo en C++? cuales serían los beneficios? digo, por ejemplo puede traer ventajas en cuanto a la velocidad o algo por el estilo? o es solo por no meterse con objecive c?
Yotes!

Pogacha

#4
Que objetive C es solo usado en el ambiente Mac ... que es, te tenes que especificar, cuando lo que aprendas de C++ te va a servir para otras plataformas. (Igual se puede usar Objective C con algunas otras plataformas a traves de Gcc)

Yotes

He estado leyendo 5 minutos respecto a la diferencia en performance que se puede lograr en el iphone, pero aun parece no haber mucho sobre el tema... o no encuentro mucho. Claro que por el momento estamos hablando entonces de portabilidad.. (lo que no es poco) segun me comentas pogacha
Yotes!

Pogacha

No es por portabilidad, es por especialización, es aprender a usar otra herramienta que para tales fines tiene ciertas ventajas pero dejando de lado el seguir perfecionandote con C++ que es mas universal.
No soy muy conocedor del tema pero por lo que se por comentarios de otra gente es que Objective C es mas productivo para tales plataformas.

synchrnzr

En el tiempo que llevo trabajando con iPhone, he usado tanto C++ como Objective, ambos a saco, y mi sensación es que el código C++ es más eficiente. aunque no he hecho pruebas específicas para poder asegurarlo al 100%.

Por otro lado, no me gusta el hecho que en Objective, debido al Smalltalk, muchos errores en tiempo de compilación se trasladan a tiempo de ejecución. Por ejemplo, al enviar un mensaje a un  objeto con parámetros mal tipados o un mensaje que simplemente el objeto no puede procesar, el error se produce al ejecutar el programa. Pienso que estas situaciones deberían provocar un error de compilación y no durante la ejecución. Es como si en un programa en C++ llamarás un método de un objeto que no existe o le pasaras parámetros mal tipados y en vez de dar un error al compilar, compilara correctamente pero fallara en su ejecución.

sync

Yotes

Creo que esto se debe a que las clases puede ser extendidas en forma dinámica, aunque mucho no me meti en ese tema. De cualquier manera, si me parece bastante molesto, aunque  si no me equivoco te advierte sobre la situación, pero a veces se me pasa :(.

esta info está directamente sacada de la página de apple, por las dudas que alguien no la conozca

How do I enable Objective-C++ compilation?

There are multiple ways to enable Objective-C++ functionality in your application. The preferred method is to change your file extension to .mm instead of .cpp. This will alert Xcode to set the correct runtime target for your project at build time.

If you want to retain your .cpp file extension, you can also manually set your Xcode project's OTHER_CFLAGS build setting to -x objectiveC++ or set the Compile Sources As build setting to Objective-C++.

Finally, you can change it on a file-by-file basis; select the file from Xcode's Groups & Files list, select File > Get Info, and change the File Type to "sourcecode.cpp.objcpp".
Yotes!

Prompt

Cita de: synchrnzr en 15 de Agosto de 2009, 07:48:46 AM
En el tiempo que llevo trabajando con iPhone, he usado tanto C++ como Objective, ambos a saco, y mi sensación es que el código C++ es más eficiente. aunque no he hecho pruebas específicas para poder asegurarlo al 100%.

Por otro lado, no me gusta el hecho que en Objective, debido al Smalltalk, muchos errores en tiempo de compilación se trasladan a tiempo de ejecución. Por ejemplo, al enviar un mensaje a un  objeto con parámetros mal tipados o un mensaje que simplemente el objeto no puede procesar, el error se produce al ejecutar el programa. Pienso que estas situaciones deberían provocar un error de compilación y no durante la ejecución. Es como si en un programa en C++ llamarás un método de un objeto que no existe o le pasaras parámetros mal tipados y en vez de dar un error al compilar, compilara correctamente pero fallara en su ejecución.

sync

ObjC deja para el tiempo de ejecucion ciertas decisiones. La mayoria de los problemas que provocan usar estas porquerias de mierda asquerosas y putrefactas de lenguajes de programación son el control de memoria, los buffer overrun y overflow. Utilizar ObjC le asegura a apple que la gente no hará que su device pete cada 2 x 3. Pero es que nadie quiere la porqueria del ObjC, que yo sepa todo el mundo lo odia. Es cierto?

Vicente

Cita de: Prompt en 17 de Agosto de 2009, 04:19:50 PM
ObjC deja para el tiempo de ejecucion ciertas decisiones. La mayoria de los problemas que provocan usar estas porquerias de mierda asquerosas y putrefactas de lenguajes de programación son el control de memoria, los buffer overrun y overflow. Utilizar ObjC le asegura a apple que la gente no hará que su device pete cada 2 x 3. Pero es que nadie quiere la porqueria del ObjC, que yo sepa todo el mundo lo odia. Es cierto?

Objective-C es un lenguaje tipado dinámicamente, como otro montón de lenguajes que hay por ahí. Y como cualquier cosa tiene sus ventajas y sus inconvenientes, pero no creo que sean "mierdas asquerosas y putrefactas", simplemente otra forma de pensar y trabajar.

yorch

Aquí va un vídeo-tutorial de Pangea Software que aclara conceptos acerca de Objective-C, Cocoa y C/C++ en iPhone. Yo pienso que si fuera una mierda de lenguaje, Apple lo habría cambiado hace años no sólo para desarrollar en iPhone sino para el desarrollo para Mac en general... Qué injusta y fea es la vida, eh?

A partir de 2:27: http://www.youtube.com/watch?v=jjdJR_-ftns



Prompt

Cita de: Vicente en 17 de Agosto de 2009, 07:36:49 PM
Objective-C es un lenguaje tipado dinámicamente, como otro montón de lenguajes que hay por ahí. Y como cualquier cosa tiene sus ventajas y sus inconvenientes, pero no creo que sean "mierdas asquerosas y putrefactas", simplemente otra forma de pensar y trabajar.

Si es cierto, es una porquería enorme y apestosa :o

Aun no conozco a nadie que no lo odie. Preferiría 100 veces C# a ObjC. Entiendo las pretensiones de Apple por temas de "petes", pero me da la sensación de que le ha salido algo regular en lo que a juegos se refiere. La gente adora aun más C++ despues de ver ObjC :D

flipper83

jjaja, lo que pasa con objetive-c  es que es bastante distinto en sintaxis con respecto a otros lenguajes, pero cuando uno se acostumbra en los mismo al resto XD.

lo que si que leí si no me equivoco, es q en temas de velocidad lo más rápido en c nativo, seguido de objective-c y luego c++. Lo leí en un artículo de Objective-c en la web de iphone developers pero no me acuerdo ahora cual era :S
un cobarde forero en el tanatorio al mes sería un placentero trofeo digno de merecer

synchrnzr

#14
CitarUtilizar ObjC le asegura a apple que la gente no hará que su device pete cada 2 x 3.

Mmm, si te relees mi mensaje, vengo a decir precisamente lo contrario :P

Siempre es más chungo detectar petadas en tiempo de ejecución que en compilación. En tiempo de compilación, los errores ya te los da el compilador al compilar. Los arreglas y cuando compila, la cosa más o menos funciona. Pero los errores en tiempo de ejecución sólo se detectan con un testeo exhaustivo. Desde mi punto de vista, el trasladar errores en tiempo de compilación a tiempo de ejecución es un :shit: como un puño.

Respecto a la sintaxis... para mi gusto es feo, porque introduce más símbolos no alfanuméricos y hace su lectura menos natural. Pero bueno... que sea más o menos feo me importa un bledo, comparado con lo anterior. Además es cuestión de gustos...

CitarObjective-C es un lenguaje tipado dinámicamente, como otro montón de lenguajes que hay por ahí.

¿El tipado de Objective se considera dinámico? ¿Por qué? Lo de tener que declarar los tipos de las variables explícitamente igual que en C no me parece muy dinámico precisamente... :P

sync






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.