¿Por qué hay tantos lenguajes de programación?
¿Y qué impulsa a alguien a crear lenguajes de programación a pesar de que ya existen otros lenguajes?
programming-languages
Moshe
fuente
fuente
Respuestas:
Los lenguajes de programación evolucionan
Los nuevos lenguajes de programación a menudo aprenden de los lenguajes existentes y agregan, eliminan y combinan funciones de una manera nueva. Hay algunos paradigmas diferentes como orientado a objetos y funcional y muchos lenguajes modernos intentan mezclar características de ambos.
También hay nuevos problemas que deben resolverse, por ejemplo, el aumento de CPU de varios núcleos. La solución más común a eso han sido los hilos, pero algunos lenguajes de programación intentan resolver el problema de concurrencia de una manera diferente, por ejemplo, el Modelo de actor. Ver Erlang - Software para un mundo concurrente
fuente
Es un ciclo. Empiezas un nuevo idioma y eres libre de alejarte de toda la sintaxis mala y las malas elecciones de tus predecesores. En la versión 1, el lenguaje se ve muy bien porque no tiene nada de ese equipaje y hace el trabajo. Luego, en las versiones más recientes, comienzas a experimentar con características que pueden no funcionar, o incorporas características de otros lenguajes más nuevos que hacen que tu sintaxis sea un poco confusa. Mira, después de algunas versiones más, te das cuenta de que tu idioma ahora es tan complicado como el que reemplazaste, con problemas de sintaxis tontos y equipaje heredado. Y de repente, te das cuenta de que si creas un nuevo lenguaje, podrías arreglar todo eso ...
fuente
Por la misma razón, hay martillos, destornilladores, sierras de mano, sierras de cinta, martillos neumáticos, palancas y muchas otras herramientas: no todos los idiomas son perfectos para cada tarea. Algunos lenguajes están dirigidos a dominios con problemas específicos: R es particularmente bueno para el análisis estadístico, C es particularmente bueno para escribir los núcleos del sistema operativo, Haskell es particularmente bueno para los cálculos matemáticos o financieros pesados, Erlang es particularmente bueno en la programación concurrente, etc.
Además, por la misma razón que las camisas vienen en diferentes colores: a algunas personas les gusta el "estilo" de un idioma sobre otro.
Y, por supuesto, a muchos programadores les resulta divertido inventar un nuevo idioma, solo para ver qué sucede, o tal vez porque tienen algún conocimiento sobre los idiomas y quieren rascarse una picazón, o probar algunas ideas.
fuente
Porque todos apestan (de una forma u otra).
En este momento, hemos creado unos 5000 idiomas para describir problemas naturales y ninguno de ellos está disponible para escribir programas (un ejemplo sería "inglés").
Hasta que alguien encuentre una manera de crear un lenguaje de programación que pueda expresar lo que usted puede expresar en una oración en un lenguaje natural, seguirá viniendo.
fuente
Obviamente, una motivación importante para crear un nuevo idioma es lograr algo mejor que los idiomas ya existentes. Y como siempre hay margen de mejora, siempre habrá nuevos idiomas.
Los intereses comerciales son otra gran razón. Creo que es importante, por ejemplo, que Microsoft pueda ofrecer un lenguaje para cada necesidad para que las empresas y los desarrolladores prefieran sus plataformas.
fuente
Código heredado. Si comienza un nuevo idioma, no tiene que escuchar / considerar todas las quejas cuando cambia un idioma antiguo. Incluso si todos están de acuerdo en que la nueva implementación es mejor, no puede romper el código anterior. Y hay mucho código antiguo por ahí.
fuente
porque es divertido crear nuevos idiomas incluso si no tienen un uso real
fuente
Crear un lenguaje de programación es bastante divertido. Está cerca del trabajo creativo puro, ya que no está limitado a los requisitos anteriores. Ya no es tan difícil de implementar, ya que siempre puedes compilar en C y compilar el código C para un rendimiento adecuado si estás escribiendo un compilador en primer lugar.
Por supuesto, la mayoría de nosotros tenemos menos buenas ideas de las que creemos tener, por lo que a menudo terminan siendo decepcionantes o no son amados por nadie que no sea el diseñador original.
Piensa en cualquier lenguaje de programación que conozcas. Puedes pensar fácilmente en varias cosas que no te gustan, ¿verdad? Presumiblemente tienes ideas de cómo podrían solucionarse. Con solo un poco más de impulso, suponiendo que sepa mucho sobre la compilación de compiladores (y mucha gente lo sabe), puede comenzar a diseñar e incluso implementar el suyo.
fuente
Respuesta corta rápida
Reinventar la rueda ... ¿Cuál es la tendencia actual ...
Aburrida respuesta larga
Muchas personas olvidan que "otro lenguaje nuevo similar para los programadores antiguos" es "un lenguaje completamente nuevo para los programadores nuevos".
¿A qué me refiero con eso?
Bueno, para programadores de "varios años", Java o C # pueden ser lenguajes de programación adicionales para Cobol, (OO / Procedural) Basic, C / C ++, mientras que para "nuevos" programadores, Java o C # son lenguajes nuevos, mientras que Cobol, (OO / Procedimiento) Básico, C / C ++ no existe para ellos, por lo que reinventar la rueda se convierte en algo común ...
Y, si hay una nueva tendencia en tecnología, las personas pueden crear un nuevo lenguaje de programación basado en esa tendencia, como ecmascript / javascript para la web y programación funcional ...
Salud.
fuente
Los nuevos lenguajes de programación se crean por muchas razones diferentes, principalmente porque hay un nuevo paradigma de programación, o debido a los avances en el hardware, las personas crean un nuevo lenguaje para aprovechar las nuevas características de hardware como la multitarea, etc.
en mi caso, generalmente construyo pequeños compiladores (con un nuevo lenguaje de programación), por razones especiales. si hago una gran cantidad de juegos y creo que un lenguaje de programación creado específicamente para el desarrollo de juegos dará como resultado un código más pequeño más rápido y un desarrollo más rápido, entonces lo construyo. y al final resulta que también se puede usar para otra programación de propósito general.
Creo que la mayoría de las personas que crean lenguajes de programación tienen un propósito específico en mente, hay quienes los crean para fines generales desde el principio. pero la mayoría no lo son.
Por cierto, creo que hay demasiados lenguajes de programación, pero siempre saldrán cientos de nuevos. algunos por diversión, otros por un propósito específico, como un proyecto escolar, o por cientos de otras razones. y tarde o temprano se volverá popular uno nuevo. Nunca va a terminar.
fuente
Por la misma razón, hay tantos <whatever> y seguimos creando nuevos <whatever>
Hay una docena de frameworks PHP MVC, por ejemplo, pero la gente siempre creará nuevos para satisfacer necesidades específicas, para evitar depender de algún otro equipo, o simplemente para tratar de crear algo mejor. Lo mismo es válido básicamente para todo tipo de herramienta o aplicación.
Es algo muy bueno, casi todos ganan en mi opinión.
fuente
Las universidades aportan muchos lenguajes de programación, y también lo hacen grandes corporaciones como Ericsson (Erlang = lenguaje Ericsson), Bell Labs (idiomas B y C), Google (lenguaje Go desde hace unos meses). Muchos de los que fueron escritos como parte de la investigación universitaria no se usan mucho. Sin embargo, hay algunas excepciones notables. Supongo que escribir su propio lenguaje / compilador es un buen tema para las tesis doctorales de personas que estudian Teoría CS o disciplinas relacionadas. Me sorprende que Python sea uno de los primeros lenguajes en nacer del esfuerzo colaborativo en línea de varios programadores en torno a una sola idea.
fuente
Hay algunas razones, la mayoría se debe a que las personas piensan que lo que existe no facilita la resolución de un conjunto de problemas. Algunos son solo por diversión o por interés académico.
Creo que hay un argumento sólido de que el problema de cómo diseñar el lenguaje perfecto aún no está resuelto (y puede que nunca lo esté). Por lo tanto, siempre y cuando las personas tengan nuevas ideas sobre lo que sería un gran idioma, la gente seguirá intentando. Algunos de esos intentos trazarán un nuevo espacio como Erlang y otros fracasarán, pero siempre que se aprenda algo del flop, eso también está bien.
fuente
Como se indicó anteriormente, los idiomas intentan dirigirse a ciertas tareas específicas y los nuevos idiomas pueden dirigirse a una nueva área. Estos idiomas pueden tomar características de otros idiomas que están actualmente disponibles.
Otra razón para los nuevos idiomas es tratar de incorporar muchas tareas diferentes y ser el idioma elegido para muchas necesidades diferentes. Algunos de estos idiomas intentan abarcar todos los idiomas que siempre usaría, sin importar la necesidad que tenga.
fuente
Aprendí en mi clase de lenguajes de programación que la mayoría de los lenguajes fueron inventados para rascarse una picazón. La mayoría de los idiomas se inventaron para poder expresar mejor un conjunto de algoritmos. Por ejemplo, se inventaron lenguajes funcionales para dar a los algoritmos recursivos un espacio mucho más expresivo.
Preguntar por qué hay tantos lenguajes es como preguntar por qué C ++ 0x. :)
Además, cuantos más idiomas conozcas, más expresivo podrás ser, ¡esto es cierto tanto en lenguajes de programación como en lenguajes naturales!
fuente