¿Oberón es realmente "un mejor Pascal"? [cerrado]

12

Al leer a Niklaus Wirth , uno puede notar que a pesar de cierta popularidad de Pascal, no está contento de que Oberon (como un "pulido" sucesor de Pascal y Modula) no haya tenido mucha popularidad. Nunca hice nada en Oberon, pero leyendo la página Oberon For Pascal Developers realmente no me gustaron muchos de los cambios como desarrollador de Delphi / pascal, por ejemplo

  • obligando a las palabras reservadas a ser siempre mayúsculas
  • haciendo que el lenguaje distinga entre mayúsculas y minúsculas
  • deshacerse de los tipos de enumeración

¿Qué opinas sobre Oberón, es realmente "un mejor Pascal" desde tu punto de vista?

Maksee
fuente
3
Oberon parece un eco lejano de la era Ada / Pascal en la programación. Puede ser un poco mejor que el lenguaje Pascal original de Wirth, pero obviamente es inferior al Turbo Pascal / Delphi.
mojuba
2
@mojuba, eso me parece una respuesta ...
glenatron
¿No estaba cerrado ya una vez? ¿Qué pasó con el historial de edición?
Robert Harvey
Tuve una breve fascinación con Oberon en mis años universitarios. Desearía saber más al respecto para tener una opinión.
Barry Brown
1
Requerir palabras reservadas en mayúsculas sería un factor decisivo para mí. Encuentro minúsculas mucho más fácil de leer.
GrandmasterB

Respuestas:

8

Sí, llamaría a Oberón un mejor Pascal. Con Oberon, el profesor Wirth llegó al núcleo de la programación orientada a objetos con extensión de tipo y variables de procedimiento. Me parece elegante que Oberon sea un idioma más pequeño que Pascal con mucho más poder.

Oberon 2 llevó el lenguaje un paso más allá al vincular los métodos a los registros.

No me gustan las palabras reservadas en mayúsculas. Creo que la sintaxis es una mejora con la eliminación de muchos comienzos y finales.

Oberon se usó para escribir un sistema operativo muy interesante descrito en el Proyecto Oberon: El diseño de un sistema operativo y compilador .

Blake
fuente
De acuerdo, Oberon es mejor. El problema con Oberon es que llegó demasiado tarde. Muchos otros mejoraron sobre Fortran, Basic, Pascal, C, por lo que Oberon tiene competidores severos. Entonces, el lenguaje es solo una parte de la solución. El "mejor" lenguaje tiene buenas bibliotecas o una infraestructura. Javascript es excelente debido al vínculo con las aplicaciones web. Entonces, reaccionar es aún mayor, basándose en JS. ¿A quién le importa la simplicidad del lenguaje? Queremos objetos simples como componentes de reacción para crear aplicaciones web.
Roland
6

Es mejor y peor de varias maneras:

Es bueno tener recolección de basura e instalaciones para programación modular y orientada a objetos. Es un lenguaje relativamente pequeño; fácil de analizar e implementar.

La falta de enumeraciones es un dolor (de hecho, en el dialecto de Oberon extendido que usamos, las agregamos de nuevo).

En relación con los idiomas más modernos, su minimalismo es un poco brutal, y tratar las cadenas como conjuntos de caracteres en cualquier idioma es horrible.

Por supuesto, Pascal también ha evolucionado bastante, por ejemplo, ver Componente Pascal.

grussel
fuente
¿Cómo se escribe la extensión en tipos enumerados en su dialecto de Oberon extendido? Razón por la que pregunto: el profesor Wirth dijo que no podía ver una buena manera de hacerlo, y por eso eliminó los tipos enumerados del idioma.
John R. Strohm
2
En realidad, creo que a pesar de su nombre, Componente Pascal es un sucesor de Oberón, no de Pascal (excepto indirectamente, por supuesto). Se parece a Algol-X (nunca implementado) -> Algol-W -> Pascal -> Modula (nunca implementado) -> Modula-2 -> Oberon -> (algunas revisiones de Oberon) -> Componente Pascal.
Jörg W Mittag el
2
Wirth era un purista; decidió que era mejor perder el tipo de seguridad de las enumeraciones por extensibilidad y ortogonalidad. Escribimos una gran cantidad de código que se beneficia de la verificación de tipos de enumeraciones, donde las colisiones de valores coincidentes de lo contrario introducirían errores sutiles. En resumen, dado que controlamos tanto la base de código Oberon completa como el compilador, lo hacemos sin extensión de tipo en las enumeraciones, para evitar una clase de errores de programa extremadamente irritantes.
Grrussel