Veamos las opciones aquí:
JavaScript no es un lenguaje de programación adecuado. Es un lenguaje interpretado utilizado por los navegadores. Me gustaría ver un sistema de gestión de procesos empresariales escrito en JS …
Python es (más o menos) amigable para los principiantes y es muy popular entre las universidades y los principiantes de programación. Además, muchas bibliotecas para tareas del lado del cliente están disponibles de forma gratuita. El mayor inconveniente aquí (en mi opinión) es el bajo rendimiento y la simplificación excesiva de los subprocesos múltiples y el manejo de errores. Es principalmente un lenguaje de scripting para automatizar tareas, no para construir aplicaciones críticas.
Las aplicaciones C # / .NET funcionan (en mi humilde opinión) muy bien, pero parecen muy difíciles de optimizar y de perfilar. Si tienen un bajo rendimiento, a menudo es difícil rastrear la causa real. Además, la utilización de recursos parece un poco pobre.
- Cómo explicar los métodos y funciones de los objetos de clase a un tipo que no es de TI con ejemplos en tiempo real
- Soy un QA con 5 años de experiencia en TI y 2 años de experiencia en automatización de selenio con C #. Deseo presentarse a entrevistas de compañías como Flipkart y Goldman Sachs. ¿Cómo puedo prepararme para las entrevistas de este tipo de empresas?
- Tengo la oportunidad de especializarme en informática en la nube o seguridad. ¿Cuál crees que debería elegir?
- ¿Por qué hay tantos candidatos y recursos falsos en la industria india de TI?
- ¿Cuáles son algunos tutoriales sobre la programación de contrato inteligente?
C ++ / C son lenguajes muy fuertes en los que se ejecuta gran cantidad de software de grandes empresas. El código es más complejo de manejar y el mantenimiento puede ser un gran problema aquí. Cuando necesita tener un código sólido con un rendimiento sólido y hacerse cargo de la administración de recursos (especialmente cuando se trata de cifrado / seguridad), especialmente el manejo de la memoria, la utilización de la CPU, etc., C ++ sigue siendo el arma elegida para muchos programas. .
Java es un lenguaje que maneja varios temas muy bien:
- Manejo de errores / excepciones. Uno de los componentes clave de una aplicación de nivel empresarial es ser robusto y ser capaz de manejar bien los errores. Cuando se escribe correctamente, una aplicación Java nunca se bloqueará en el escritorio (excepto por problemas de memoria).
- Buena mantenibilidad. La sintaxis puede causar ganas de amordazar por algún tiempo, pero Java estructura el código muy bien y hace un gran trabajo para alentar a las personas a dividirlo en unidades pequeñas y fáciles de mantener. Esto es crucial cuando cientos de personas están trabajando en una pieza de software.
- Robusto, fácil multiproceso. Java hace que sea muy fácil escribir aplicaciones que ejecutan código en paralelo.
- Gran actuación. La gente podría argumentar que Java es aún más lento que C ++. Argumentaría que al comparar el tiempo de desarrollo / optimización con la relación de rendimiento, Java superará cualquier otro lenguaje de programación en cualquier momento. En los puntos de referencia, la JVM puede mantenerse al día con el código C ++ nativo la mayor parte del tiempo y mientras que C ++ requiere mucho esfuerzo cuando se trata de la administración de recursos, la JVM lo hace por usted con resultados aparentemente excelentes. Además, es muy fácil de perfilar, por lo que es una tarea sencilla para identificar cuellos de botella en el código
La mayoría de las veces, cuando se trata de software empresarial , las únicas opciones son Java o C ++. La mayoría de las veces estamos hablando de cifrado, firma, temas de procesamiento distribuido aquí, que Python y otros lenguajes de programación no ofrecen en ese grado. Además, Java sigue siendo la comunidad de desarrolladores más grande y muchas bibliotecas de código abierto. Lucene (si no me equivoco, el índice de búsqueda más popular) se escribió originalmente en Java, Hadoop se basa en Java, al igual que la mayoría del software del servidor de aplicaciones (Java EE).
Cuando terminan con los lenguajes de programación “geniales”, la mayoría de los desarrolladores se dan cuenta de que no hay mucha productividad que ganar con ellos, mientras que sufren mayores gastos de mantenimiento, menos asistencia de la comunidad, menos estandarización. A largo plazo, Java todavía parece ser el mejor compromiso entre una potente sintaxis, una buena capacidad de mantenimiento, accesibilidad y rendimiento general.
Adición a partir del 20.02.15:
Otra constatación dolorosa que tuve hoy es que Java no es adecuado para implementar algoritmos complejos. Si bien, en términos de mantenimiento y comprensibilidad del código, es bueno que Java lo obligue a trabajar con Objetos para encapsular cosas, prefiero tener acceso directo a los punteros y la asignación de memoria cuando implementa cosas específicas. Me di cuenta de que al intentar escribir una implementación avanzada del algoritmo Aho-Corasick (básicamente, autómatas de estado finito para la correspondencia de texto) en Java. Es cierto que solo me tomó unos 20 minutos y menos de 300 líneas de código para hacer eso, pero:
Al cargar todos los nombres de ciudades (> 1000) de nombres geográficos, termino con 2425446 objetos en la memoria, lo que resulta en una sobrecarga de 1,5 GB de memoria para objetos y referencias para aproximadamente 22 MB de datos / valores reales almacenados.
Java lo alienta activamente a tratar todo como un objeto, lo que resulta en un uso masivo de la memoria (¡aunque el rendimiento fue increíblemente bueno!). En C ++, probablemente usaría una estructura de tabla y un par de indicadores para hacer el trabajo y terminaría con mucho menos desperdicio de recursos.