La respuesta a continuación de Manish Sharma es simplemente incorrecta.
Un paradigma de programación no dice nada sobre lo que un lenguaje puede hacer y lo que no. Un paradigma, si algo te dice lo que ese lenguaje ya no puede hacer de manera eficiente. Eso es todo.
“C” es un paradigma libre. Lo que significa que casi puede hacer cualquier cosa. Lo que “casi” significa que no tiene acceso al sistema de bandera del procesador, es un precio a pagar para ser portátil entre sistemas y arquitecturas. En general, es algo bueno, pero no debe convertirse en un dogma. Siempre se necesita un código de ensamblaje. La asamblea es buena. Es un código bueno, delgado, malo y eficiente.
- ¿Qué tipo de aplicación móvil podemos usar al hacer una película corta?
- ¿Por qué Cocos2d / Cocos2d-x es gratis y es la elección correcta para un motor 2D?
- ¿Cómo afectará iOS 7 a los desarrolladores móviles?
- ¿Cuáles son los 10 mejores sitios web de listados de negocios gratuitos en Canadá?
- ¿Cuáles son las ventajas y desventajas de usar puntos frente a píxeles para el diseño de aplicaciones móviles?
Es más importante cuán profunda es la integración del sistema de ese lenguaje. Y Java está mucho menos integrado en ese kernel de Linux que “C”. “C” es el núcleo.
Todo el Kernel de tu teléfono está hecho en C. Y todas las bibliotecas que usa esta jodida interfaz Java están hechas en C. Y puedes tirar perfectamente ese pobre nivel de basura que pierde el ciclo del ciclo y obtendrás una aplicación que está más allá de la imaginación de cualquiera lo que puede hacer en una plataforma móvil.
Puedes perfectamente hacer cualquier cosa en “C”.
Créeme. Visto eso. Estado allí. Hecho eso
Los paradigmas de programación son simplemente buenos para dar conferencias. No por hacer una mierda. No te dan nada. Simplemente limitan las cosas que puedes hacer. Por la promesa de presentar “código más limpio”. Lo que significa que comienzan a ocultar la complejidad de tu rostro para que dejes de entender lo que estás haciendo. Y para que no pueda depurar sus propios programas al final.
El poder de procesamiento en los móviles es bastante limitado. No desperdicies los ciclos en algo hinchado como Java. Ese es mi consejo. Simplemente haga su mierda en un lenguaje que esté al mismo nivel que el sistema: use “C”.
Es posible que su programa no se ejecute en plataformas que no sean ARM. Puede pasar. Pero también hay muchas aplicaciones Java que no se ejecutarán en mis teléfonos, y todas están basadas en ARM. Entonces, incluso la promesa de ser “plataforma independiente” es una mentira. Puede enviar diferentes versiones de la aplicación para diferentes plataformas de hardware. Simplemente recompile su proyecto con un objetivo diferente: listo.
No ganas nada. Lo único que querrás es perder. Velocidad, control, espacio de memoria, espacio en disco.
“C” es un lenguaje de programación muy moderno más moderno que la mayoría de los demás. No veo ninguna forma de usar los comandos SIMD en Java o en Haskell o Scala o cualquier nuevo cerdo que haya sido lanzado recientemente en el mercado. No veo cómo acceder a las rutinas eficientes del sistema operativo desde el nivel del kernel en ninguno de esos idiomas.
Puedes hacer eso en “C”. Perfectamente bien. Se trata de un factor mínimo 5 más rápido para hacerlo en “C” y su código es más corto, más estricto la mayoría de las veces factor 100. Y más fácil de mantener. Sí, no tendrás algunos de los contenedores de Java desde el principio. Maldición, solo inclúyelas, únelas, listo.
Si realmente golpeas algo duro, montaje en línea. ARM Assembly es fácil. Es la asamblea de un niño. Necesitas un día para aprenderlo, si has aprendido alguna Asamblea antes, lo cual probablemente deberías.