¿Por qué no tuvo éxito Modula-2?

¿Por qué el inglés es el idioma alternativo y el esperanto, interlingua o Ido no? ¿Qué impidió a los estadounidenses cambiar al sistema métrico? Porque, a veces, hay pocos incentivos para que algo nuevo se haga cargo. Los cambios ocurren cuando se cumplen las condiciones que lo conducen. El inglés creció en popularidad gracias al comercio, el entretenimiento y el imperialismo. El sistema métrico probablemente rompió demasiadas cosas para imponerse en una industria que está acostumbrada a salirse con la suya.

A Modula-2 le fue bien entre los académicos que desean enseñar programación a estudiantes de primer año. Nunca sirvió muy bien a los buscadores de empleo. La industria ya dependía de tecnologías competitivas. La limpieza de Modula-2 no estuvo a la altura de sus [otros] estándares. Ya tenían grandes bases de código escritas en lenguajes más modernos programadores existentes en los que estaban familiarizados o interesados ​​en aprender. Las personas también tienden a valorar sus herramientas existentes sobre las oscuras. No hay necesidad de discutir sobre los detalles de cada idioma. Modula-2 no compitió en los terrenos correctos.

Otros idiomas vivieron por otras razones. PHP funcionaría en alojamiento barato. JavaScript tenía el monopolio del navegador. Ruby tenía Rails para levantar cosas más pesadas que la mayoría. JAVA fue respaldado por los principales jugadores. Python fue respaldado por hackers del lado del servidor mientras la administración no estaba buscando. A Modula-2 le faltaba algo.

Una respuesta completamente no calificada, algo ignorante: no resolvió ningún problema que otros idiomas no trataran mejor.

Pascal es una bestia extraña con una historia bastante rara y extraña. El estándar ISO original era casi inútil, sin extensibilidad, un modelo de E / S terriblemente lisiado y una serie de otras preocupaciones. (Puede leer “Por qué Pascal no es mi lenguaje de programación favorito” de Brian Kernighan para obtener todos los detalles. En la era moderna de Free Pascal / Delphi, la mayor parte es irrelevante, pero aún vale la pena leer sobre cómo no manejar el desarrollo del lenguaje). Modula-2 surgió aproximadamente al mismo tiempo que el Departamento de Defensa de EE. UU. Estaba buscando nuevos idiomas, pero donde Modula-2 fue diseñado para un proyecto en gran parte académico (la estación de trabajo Lilith) que sería una opción entre muchas, el lenguaje verde que se convirtió en A Ada se le garantizó una audiencia cautiva en contratistas militares tanto en los Estados Unidos como en toda la OTAN.

Como resultado, mientras Modula-2 era el bebé de Niklaus Wirth, el sucesor de facto real de Pascal se convirtió en Ada, que, aunque la sintaxis no era compatible, era y es reconociblemente un miembro de la familia de la misma manera que, por ejemplo, Java es parte de la familia C. Donde Ada no tenía ninguna tracción (desarrollo de escritorio y afición), Pascal se confundió como un enjambre de dialectos fracturados con principios de diseño similares pero solo perdió compatibilidad antes de finalmente dar paso a C ++ después de 1990. Mientras Pascal permanece bastante vivo, incluso vibrante dentro su pequeña comunidad, está en las formas masivamente extendidas de Delphi y Free Pascal, que están tan lejos del diseño original de Pascal que son idiomas casi completamente diferentes. (No creo que haya habido un compilador comercial de Pascal en el día que te permita salirte con la suya con el abuso del indicador del compilador que permite Free Pascal. Solo Objective-C ++ se acerca por pura rareza, y yo no piensa que Clang te permitirá cambiar partes fundamentales del comportamiento del lenguaje a mitad de archivo).

Un punto más: después de todo lo dicho y hecho, un lenguaje de procedimiento orientado a módulos como M2 demostró no lograr nada que un lenguaje OO no pudiera, e incluso un OO estático como C ++ proporcionó sustancialmente más flexibilidad. C ++ apareció por primera vez en 1979 cuando M2 apenas estaba equilibrado, Object Pascal existió alrededor de 1983 y Ada adquirió capacidades OO entre los estándares de 1983 y 1995. M2 era, en términos de diseño, obsoleto casi fuera de la puerta, y carecía de la oportunidad de ponerse al día. Con una nueva generación de lenguajes como Python, Go y Swift que enfatizan la computación multi-paradigmática y los volquetes llenos de azúcar sintáctico muy útil, la única razón para mirarlo es la nostalgia.

Porque Pascal apesta …

No … lo siento … principalmente porque la Orientación de Objetos se hizo cargo del mundo entonces. Y los módulos no eran tan geniales como los objetos.

Los objetos se ajustan bien a los sistemas GUI de Windows que estaban en ascenso en los años 80. C ++ reacondicionó objetos en C, que era el lenguaje más popular en Unix y llegó a las PC.

Quizás si Borland hubiera hecho un Turbo Modula 2 las cosas hubieran sido diferentes …

Pero al final del día … realmente, dices “sintaxis fácil”, pero la sintaxis de Pascal apesta. Demasiado ruido visual con todas esas palabras clave en mayúsculas. Ugh!

Modula-2 + tuvo cierto éxito en Digital. Pero no tuvo el impulso suficiente para estallar por sí solo. Creo que el Oberon de seguimiento tiene aún menos mente compartida.

More Interesting

Como desarrollador de software, ¿cuál es el mayor desafío / disgusto / obstáculo que enfrenta cuando busca nuevas oportunidades?

¿Es el éxito de programadores como Jeff Dean, quien es considerado uno de los programadores modernos de élite, en parte debido a estar en el lugar correcto en el momento correcto?

¿Qué carrera tiene mejores perspectivas para un graduado de ingeniería informática: sistemas embebidos o diseño de circuitos digitales / arquitectura de computadoras?

¿Qué es exactamente un SDK?

¿Lo que un programador se llama a sí mismo realmente hace una diferencia en términos de cuán habilidoso se percibe que es?

¿Cuáles son algunos problemas en una organización de desarrollo de software que conducen a una menor calidad y más errores?

¿Cómo comenzamos el desarrollo de software del sistema usando la programación en C en un entorno Linux?

¿Cómo debo comenzar a aprender lenguajes de programación, ingeniería de software, codificación, etc.?

¿Cuáles son algunos trucos para descifrar grandes proyectos de software cuando recién estás comenzando con nada más que un equipo?

Por favor sugiera un pequeño proyecto en multihilo.

Muchas empresas que adoptan Agile están utilizando un sistema de evaluación del desempeño, por ejemplo, estableciendo un objetivo de equipo para aumentar la velocidad xx% para fin de año. ¿Esto es bueno o malo?

¿Cómo se puede lograr lo siguiente en Python?

¿Qué es el diseño no funcional?

¿Es un MVP lo mismo que un prototipo?

¿Debo dejar mi trabajo e ir a Dev Bootcamp?