Entre la programación de C Sharp y Java, ¿cuál es más preferible para desarrollar una aplicación de Android?

Elige tu opción.

Los idiomas que podría considerar aprender para el desarrollo de Android incluyen:

  • Java – Java es el idioma oficial de desarrollo de Android y es compatible con Android Studio.
  • Kotlin : Kotlin se presentó recientemente como un lenguaje Java oficial secundario. Es similar a Java en muchos aspectos, pero a nosotros es un poco más fácil de manejar.
  • C / C ++ : Android Studio también admite C ++ con el uso de Java NDK. Esto permite aplicaciones de codificación nativas, que pueden ser útiles para cosas como los juegos. Sin embargo, C ++ es aún más complicado.
  • C # – C # es una alternativa un poco más amigable para principiantes a C o C ++ que ofuscó más código. Es compatible con algunas herramientas muy útiles como Unity y Xamarin, que son excelentes para el desarrollo de juegos y para el desarrollo multiplataforma.
  • BÁSICO : una opción adicional es aprender BÁSICO y probar el software B4A IDE desde cualquier lugar. ¡Esta es una herramienta fácil pero poderosa, aunque definitivamente mucho más ‘nicho’!
  • Corona / LUA : otra herramienta multiplataforma desarrollada en LUA. Simplifica enormemente el proceso de creación de aplicaciones y le permite llamar a bibliotecas nativas.
  • PhoneGap (HTML, CSS, JAVASCRIPT): si ya sabe cómo crear páginas web interactivas, puede utilizar este conocimiento con PhoneGap para crear una aplicación multiplataforma más básica.

CONCLUCION

Elija su idioma y comience a codificar.

BUENA SUERTE.

C Sharp : C # es un lenguaje de programación de propósito general que apareció por primera vez en 2000, como parte de la iniciativa .NET de Microsoft. Fue diseñado para Common Language Infrastructure (CLI), una especificación abierta desarrollada por Microsoft y estandarizada por ISO y ECMA. Las aplicaciones de C # se compilan en bytecode que puede ejecutarse en implementaciones de la CLI.

Java: lanzado inicialmente por Sun Microsystems en 1995, Java es un lenguaje de programación de propósito general que fue diseñado con el objetivo específico de permitir a los desarrolladores “escribir una vez, ejecutar en cualquier lugar”. Las aplicaciones Java se compilan en código de bytes que puede ejecutarse en implementaciones de Java Máquina virtual (JVM). Al igual que CLI, JVM ayuda a cerrar la brecha entre el código fuente y los 1s y 0s que la computadora entiende.

C # vs. Java: diferencias principales

  • Windows contra código abierto. Si bien existen implementaciones de código abierto, C # se usa principalmente para desarrollar plataformas Microsoft, siendo el CLR de .NET Framework la implementación más utilizada de la CLI. En el otro extremo del espectro, Java tiene un enorme ecosistema de código abierto y ganó un segundo viento a pesar de su antigüedad, gracias en parte a que Google adoptó la JVM para Android.
  • Soporte para genéricos. Los genéricos mejoran la verificación de tipos asistida por el compilador, en gran medida al eliminar las conversiones del código fuente. En Java, los genéricos se implementan utilizando borrados. Los parámetros de tipo genérico se “borran” y los moldes se agregan al compilarlos en el código de bytes. C # lleva los genéricos aún más lejos al integrarlos en la CLI y permitir que la información de tipo esté disponible en tiempo de ejecución, lo que produce un ligero aumento de rendimiento.
  • Apoyo a los delegados (punteros). C # tiene delegados que esencialmente sirven como métodos a los que se puede llamar sin conocimiento del objeto de destino. Para lograr la misma funcionalidad en Java, debe usar una interfaz con un único método o alguna otra solución que pueda requerir una cantidad no trivial de código adicional, dependiendo de la aplicación.
  • Excepciones marcadas. Java distingue entre dos tipos de excepciones: marcadas y no marcadas. C # eligió un enfoque más minimalista al tener solo un tipo de excepción. Si bien la capacidad de detectar excepciones puede ser útil, también puede tener un efecto adverso sobre la escalabilidad y el control de versiones.
  • Polimorfismo: C # y Java adoptan enfoques muy diferentes al polimorfismo. Si bien Java habilita el polimorfismo de manera predeterminada, C # debe invocar la palabra clave “virtual” en una clase base y la palabra clave “anular” en una clase derivada.
  • Enumeraciones (enumeraciones): en C #, las enumeraciones son listas simples de constantes con nombre donde el tipo subyacente debe ser integral. Java lleva la enumeración más lejos al tratarla como una instancia con nombre de un tipo, lo que facilita agregar comportamiento personalizado a enumeraciones individuales.

Si desea desarrollar aplicaciones de Android de C Sharp, no puede desarrollar de forma nativa para Android con C #. Puede usar algo como Xamarin o dot42, pero necesita hacer cosas adicionales detrás de escena para convertirse en una aplicación de Android.

No creo que tenga problemas para ejecutar las aplicaciones en dispositivos, siempre que esté apuntando a la API correcta.

En mi opinión, me quedaría con Java para el desarrollo a menos que desee escribir el código una vez y portarlo en todas las plataformas, entonces he escuchado cosas decentes sobre Xamarin.

Gracias

TL; DR Apesta decir que definitivamente es Java.

C # si planea admitir otras plataformas a través de Xamarin, otros lenguajes que sí son multiplataforma o a través de un marco también pueden ser preferibles de esta manera.

Kotlin, si encuentra recursos en línea adecuados para su nivel de programación, y si todos sus colegas (si los hay) quieren adoptarlo.

Personalmente, creo que Kotlin para Android es como Swift para iOS. Todavía no está tan completo, pero está llegando rápidamente. Entonces, en el futuro, podría no ser malo considerar a Kotlin para la próxima gran cosa en la que esté trabajando.

PS Swift 4.0 aún no tiene ABI estable, pero las características y convenciones del lenguaje están completas.

Entre la programación de C Sharp y Java, ¿cuál es más preferible para desarrollar una aplicación de Android?

10 segundos con google te harían leer que las aplicaciones nativas para Android están escritas en Java.