¿Son redundantes los diferentes lenguajes de programación disponibles?

7

Por supuesto, esto no se aplica a todos los idiomas. Pero me preguntaba si algunos idiomas solo existen debido a la cultura de mercado de la concurrencia.

Por ejemplo, todos sabemos que C es ampliamente utilizado para sistemas integrados y de peso ligero. Y, que yo sepa, nadie los mordió.

Pero, ¿qué hay de JAVA, C #, Ruby, PHP, ASP.NET, Python, Perl y su hijo?

Sé que PHP es mucho más liviano que ASP.NET y JAVA y algunos dirían que es su diferencial, porque puedes implementar aplicaciones mucho más rápido. Otros dirían que, a pesar de eso, en el futuro, se dará cuenta de que necesitará un lenguaje más sólido.

Hay diferentes casos, como en el caso de Twitter, usando SCALA.

¿Qué dirías si, por ejemplo, mañana te despiertas en el Jardín del Edén, donde todos trabajan juntos sin competidores? ¿Qué lenguajes de programación combinarías o discontinuarías?

Mi punto es: ¿Existen lenguajes de programación que solo se deben a la competencia o todos ellos tienen aplicaciones muy específicas y no se pueden desechar o se ha fusionado su funcionalidad?

    
pregunta Keyne Viana 31.08.2011 - 19:25

4 respuestas

20

Sí, los diferentes lenguajes de programación son redundantes en gran medida, pero esto no es necesariamente algo malo. Los lenguajes de programación que tienen éxito generalmente se afianzan y son prácticamente imposibles de cambiar. (Una excepción que prueba que la regla es C ++ 1x, donde el cambio es absolutamente glacial). Cuando esto sucede, nuevos lenguajes que son algo redundantes pero que mejoran el lenguaje antiguo se presentan para aprender de los errores y traer lo mejor de otros paradigmas. . A menudo hay desacuerdo sobre qué es exactamente lo bueno y lo malo del idioma antiguo y cuáles son las mejores características de otros paradigmas, por lo que es necesario que haya varios idiomas nuevos para probar una variedad de enfoques. Si necesitas compatibilidad y estabilidad utilizas el lenguaje antiguo. Si necesita productividad, nuevas funciones geniales y menos tráfico, es uno de los nuevos idiomas. Ejemplos:

  1. C es un gran lenguaje para la reducción de bits de bajo nivel. C ++ agregó básicamente todas las características de productividad que podrían agregarse a C sin una pérdida importante de compatibilidad con versiones anteriores, con cero sobrecarga y dentro de los límites de la tecnología del compilador en ese momento. D y Go son intentos de hacer un mejor lenguaje de programación de sistemas basado en lo que se ha aprendido desde que C ++ se afianzó, con tecnología de compilación más moderna y con una sobrecarga pequeña pero sin cero que es más aceptable hoy en día que cuando se creó C ++. D enfoca más la metaprogramación y la expresividad, y al ser un mejor C ++, Go se enfoca más en la simplicidad y al ser un mejor C.

  2. BASIC fue uno de los primeros intentos de un lenguaje dinámico de alto nivel, pero fue demasiado limitado para ser muy útil. Perl hizo que los lenguajes dinámicos fueran útiles para el trabajo real, pero acumularon toneladas de cruft porque evolucionó más de lo que fue diseñado. Python y Ruby intentan tomar lo mejor de Perl y hacer un lenguaje con un diseño más limpio y consistente. Por supuesto, los diseñadores de Python y Ruby tienen ideas algo diferentes acerca de lo que son las partes buenas de Perl.

  3. Java fue pionero en la idea de un lenguaje VM de fuerza industrial con una recolección de basura súper eficiente que se pueda compilar JIT en un código con un rendimiento comparable al nativo. Podría decirse que se exageraron favoreciendo la simplicidad sobre la expresividad, pero es demasiado tarde para cambiar. C # es similar a Java, pero ser nuevo tenía mucha más libertad para innovar y hacer que el lenguaje sea más expresivo.

  4. Los lenguajes con sabor funcional solían tener una sensación muy académica y de gran aprendizaje, a pesar de sus ventajas en términos de razonamiento sobre código y concurrencia y, en algunos casos, tersidad. Los intentos recientes para hacerlos más accesibles y orientados al mundo real incluyen Scala y F #.

respondido por el dsimcha 31.08.2011 - 20:49
6

El problema con esto es que los diferentes programadores prefieren o incluso necesitan pensar de diferentes maneras. Por ejemplo, personalmente descontinuaría casi todas las implementaciones interpretadas o los lenguajes de tipo dinámico, ya que simplemente no veo la necesidad de ellos y prefiero los lenguajes de implementación compilados de forma estática. Y luego descontinuaría todos los idiomas sin destrucción determinista o donde no pueda elegir por instancia cómo asignar su memoria, lo que prácticamente deja a C ++. Pero otro programador puede encontrar que de repente no tiene las herramientas que necesita. No todos están a la altura de los mismos desafíos. Algunas personas prefieren los errores de tipo de depuración en los idiomas de tipo de tiempo de ejecución que los errores de sobrecarga incorrectos en los idiomas tipificados estáticamente.

Edite para mayor claridad: si le pregunta a dos programadores qué idiomas son importantes, obtendrá tres respuestas diferentes.

    
respondido por el DeadMG 31.08.2011 - 19:39
3

Sí, son terriblemente redundantes. Si todos usáramos el mejor lenguaje de programación, los otros podrían caer en el camino. Ahora, si pudiéramos estar de acuerdo en cuál era el mejor lenguaje de programación ...

Bromas aparte, hay buenas razones para que haya muchos lenguajes de programación:

a.) un lenguaje de programación que es bueno para la captura de bits de bajo nivel puede (y generalmente no lo hace) carecer de abstracciones de alto nivel, por lo que es poco adecuado para la programación en general

b.) un lenguaje de programación con abstracciones de alto nivel a menudo dependerá de un entorno de ejecución muy pesado (a menudo incluso un entorno de máquina virtual completo escrito en otro lenguaje) y, por lo tanto, no se puede utilizar directamente para la programación básica (o incluso para la generación de código nativo)

c.) los diferentes lenguajes de programación a menudo fomentan formas muy diferentes de pensar acerca de un problema, y dado que existen muchos tipos diferentes de problemas en el mundo, algunos lenguajes y problemas crean combinaciones naturales, mientras que otros pueden ser complicados o incluso complicados. inutilizable (más allá del nivel de 'taringo de turing' en el que se puede usar cualquier idioma para cualquier propósito).

    
respondido por el jimwise 31.08.2011 - 19:43
2

El único idioma que conozco que vino de la competencia fue J ++ de Microsoft y que se eliminó en 2004 .

El autor crea una gran cantidad de idiomas para satisfacer una necesidad particular. Ejemplos de esto son Perl y Ruby.

Perl fue creado por Larry Wall en 1987 para facilitar el procesamiento de informes. Ruby fue creado por Yukihiro Matsumoto debido a su descontento con otros idiomas. Quería hacer un "... lenguaje de scripting que fuera más poderoso que Perl, y más orientado a objetos que Python ...".

    
respondido por el Jetti 31.08.2011 - 19:47

Lea otras preguntas en las etiquetas