Yo siempre encontrar estos debates entretenido para leer. No tanto por el intelectual, el debate acerca de los pros y los contras de los distintos idiomas disponibles, pero debido a que generalmente, usted puede peg someones postura sobre el tema basado en su trabajo/experiencia/área de interés. Su derecho hasta allí con la "optimización prematura" argumentos fueron la CS de mayores y mantenimiento de los programadores de comilla Knuth a la izquierda y a la derecha y a aquellos que trabajan en el mundo real, donde el rendimiento de los asuntos pensar que estamos todos locos (yo soy un miembro de la tarde de grupo para ser justos).
Al final del día, usted puede desarrollar un excelente software en C o C++ o insertar lenguaje aquí. Se trata de las capacidades de los desarrolladores no el idioma. Ser un experto en un lenguaje que sólo es necesaria si se ha seleccionado el idioma equivocado, para empezar y ahora necesita de la urdimbre en la solución de su problema, en la mayoría de los casos estas son las únicas situaciones en las que debe sumergirse en ocultar características o compilador de trucos para lograr el objetivo.
A menudo escucho a la gente a iniciar estas argumentos como "yo soy un experto en el lenguaje X y bla bla" honestamente, inmediatamente desacreditar a estas personas porque, en mi opinión, que ya han abordado el problema desde el ángulo equivocado y todo después de que está manchada por su deseo de utilizar su herramienta para resolver el problema y mostrar cómo 'cool' es.
Que tan a menudo el reloj desarrolladores un conjunto de herramientas de primer y el intento de doblar a su problema de segundo, que es completamente equivocado, y los resultados en la mierda de soluciones.
Como mencioné en un comentario en otra respuesta, estas lenguaje a menudo las guerras recaer en argumentando que el lenguaje X permite al programador hacer más tonterías. Y a la vez entretenido para leer, todas estas afirmaciones que realmente significa es que usted tiene un problema de la contratación de los buenos desarrolladores y la necesidad de resolver ese problema directamente, en lugar de tratar de banda de ayuda a la situación por la continua coches mal a los desarrolladores y la elección de herramientas que pueden hacer el menor daño posible.
En mi opinión, los buenos desarrolladores, sea software o hardware de desarrollo, el problema de investigación, el arquitecto de la solución y encontrar las herramientas que les permitan expresar la solución en la "mejor manera". No importa si la herramienta es algo que usted nunca ha usado antes, después de que haya usado 3-4 lenguajes/herramientas de desarrollo para proyectos de levantar un nuevo debería tener un impacto mínimo en el tiempo de desarrollo.
Por supuesto, la "mejor manera" es un término subjetivo y también debe ser definido en la fase de investigación. Uno debe considerar una multitud de temas: el rendimiento, la facilidad de expresión, código de densidad, etc basado en el problema en cuestión. Yo no incluyen el mantenimiento de la lista por una razón, no me importa lo que el idioma que elija, si has elegido la herramienta adecuada y tomarse el tiempo para entender el problema, este debe venir 'gratis'. Difícil mantener el código es a menudo el resultado de la elección de la herramienta incorrecta o una mala estructura del sistema, esto se traduce en un feo hacky lío para hacer que funcione.
Para reclamar el lenguaje es "mejor" que el de cualquier otro es tonto sin la definición de un problema particular de interés. Una orientación hacia el objeto no es siempre mejor que un enfoque funcional. Hay algunos problemas que se prestan muy bien a un diseño orientado a objetos paradigma. Hay muchos que no. La misma declaración puede ser hecha sobre muchas características del lenguaje que la gente parece disfrutar de arpa.
Si su gasto en más de un 20% de su tiempo en un problema de escribir código, su, probablemente, produciendo un muy deficiente del sistema, o tienen muy buenos programadores(o de su aprendizaje). Usted debe estar pasando la mayoría de su tiempo al frente de diagramas el problema y la determinación de cómo las distintas partes de la aplicación interactuar. Pegando un grupo de talentosos desarrolladores en un cuarto con un marcador de la junta y un problema a resolver y decirles que ellos no están autorizados a escribir ningún código o elegir cualquiera de las herramientas hasta que se sienta cómodo con todo el sistema va a hacer más para mejorar la calidad de la salida y la velocidad de desarrollo de la elección de cualquiera caliente nueva herramienta garantizados para mejorar el tiempo de desarrollo. (scrum desarrollo como una referencia para el polo opuesto a mi argumento)
A menudo, la triste realidad es que muchas empresas sólo se puede medir el valor de un desarrollador por el número de líneas escritas, o por ver a la 'tangible de la salida". Ver las 3 semanas en un cuarto con un marcador de la junta como una pérdida en la productividad. Los desarrolladores a menudo se ven obligados a velocidad a través de la 'pensamiento' de la etapa de desarrollo o son forzados a usar un conjunto de herramientas que por alguna cuestión política dentro de la empresa, "mi jefe hermano trabaja para IBM tan sólo podemos utilizar sus herramientas", ese tipo de basura. O peor, se obtiene un constante cambio del conjunto de requisitos de la compañía, ya que no son capaces de hacer la correcta investigación de mercado o de no comprender el impacto de los cambios en el ciclo de desarrollo.
Lo siento por ser un poco fuera de tema con esta perorata, me tiene bastante fuertes opiniones sobre este tema.