C es fácilmente el idioma más rápido que hay. Es tan rápido que escribimos otros idiomas en él. Nadie escribe en serio sitios web en C. ¿Por qué? Es muy fácil meter la pata en C de forma muy difícil de detectar y no ayuda mucho. En resumen, come programadores y genera errores.
La construcción de una aplicación robusta y rápida no se trata de elegir el idioma más rápido, se trata de A) facilidad de mantenimiento y B) la escalabilidad.
Mantenibilidad significa que no tiene muchos errores. Significa que puede agregar nuevas funciones rápidamente y modificar las existentes. Desea un lenguaje que haga la mayor parte del trabajo posible para usted y no se interponga en el camino. Es por eso que cosas como Perl, Python, PHP y Ruby son tan populares. Todos fueron escritos con la conveniencia del programador en mente sobre el rendimiento bruto o la limpieza. C fue escrito para rendimiento crudo. Java fue escrito para la limpieza conceptual.
La escalabilidad significa que puede pasar de 10 usuarios a 10.000 usuarios sin volver a escribir todo. Eso solía significar que escribiste el código más estricto que puedes administrar, pero el código altamente optimizado suele ser difícil de mantener.Por lo general, significa hacer cosas en beneficio de la computadora, no del ser humano ni del negocio. Eso sacrifica la facilidad de mantenimiento y tienes que decirle a tu jefe que tomará 3 meses agregar una nueva función.
La escalabilidad en estos días se logra principalmente lanzando hardware y paralelizando. ¿Cuántos procesos y procesadores y máquinas puede cultivar su trabajo? Si puede lograr eso, puede simplemente encender otra computadora barata en la nube cuando la necesite. Por supuesto, va a querer optimizar algunos, pero a esta escala obtiene mucho más de la implementación de un algoritmo mejor que el endurecimiento de su código.
Por ejemplo, me tomó una aplicación PHP lento que estaba luchando para manejar 50 usuarios a la vez, cambiaron de Apache con mod_php a lighttpd con carga equilibrada, remotas FastCGI procesos que permitan a la paralelización con un mínimo de cambio de código. Algunos perfiles básicos revelaron que el marco PHP que usaron para prototipar era lento, por lo que se eliminó. El perfil también sugirió algunos índices para hacer que las consultas de la base de datos se ejecuten más rápido. El resultado final fue un sistema que podría manejar miles de usuarios y se podría agregar más capacidad según sea necesario dejando intacta la mayor parte del código que implementa la lógica de negocios. Tomó algunas semanas, y realmente no sé PHP bien.
Puede ser beneficioso volver a aplicar piezas pequeñas y afiladas en un lenguaje muy rápido, pero generalmente eso ya se ha hecho en forma de una biblioteca o herramienta optimizada. Por ejemplo, su servidor web. Para la complejidad y las necesidades siempre cambiantes de la lógica empresarial, lo importante es la facilidad de mantenimiento y lo buenos que son sus programadores.
Encontrará que la mayoría de la web está escrita en PHP, Perl y Python porque son fáciles de escribir, con bits pequeños y nítidos escritos en C, Java y elementos exóticos como Scala (por ejemplo, Twitter) . Wikia, por ejemplo, es un Mediawiki modificado que está escrito en PHP pero está funcionando (entre otras razones) haciendo un heroic amount of caching.
Paso 1. Determine los casos que le interesan. Paso 2. Diseñe sistemas para reunir números para esos casos en varios idiomas. Paso 3. Compare, elija un idioma e implemente. –
se dice comúnmente que los grandes programadores pueden codificar grandes programas en un lenguaje repugnante, y un programador asqueroso puede codificar los programas de mierda en un gran lenguaje. Entonces, lo que más importa es cómo se codifica, la elección del lenguaje es secundaria. ;) – Lukman
Si necesita elegir un lenguaje rápido para implementar un algoritmo conocido, los puntos de referencia de tiroteo significan algo. Si necesita elegir un idioma para escribir una aplicación de negocios, los puntos de referencia no significan sentadillas. El problema no es "qué idioma puede hacer X más rápido", porque no hay una X simple para "su negocio". El rendimiento y la solidez se reducen en gran medida a qué tan buenos son sus programadores, no el idioma. – Schwern