Oberon è davvero “un Pascal migliore”? [chiuso]


12

Leggendo Niklaus Wirth , si nota che, nonostante una certa popolarità di Pascal, non è contento che Oberon (in quanto "lucido" successore di Pascal e Modula) non abbia ottenuto molta popolarità. Non ho mai fatto nulla a Oberon, ma leggendo la pagina Oberon For Pascal Developers non mi sono proprio piaciute molte modifiche come sviluppatore Delphi / pascal, ad esempio

  • forzando le parole riservate ad essere sempre maiuscole
  • rendere la lingua sensibile al maiuscolo / minuscolo
  • sbarazzarsi dei tipi di enumerazione

Cosa ne pensi di Oberon, è davvero "un Pascal migliore" dal tuo punto di vista?


3
Oberon sembra un'eco lontana dell'era Ada / Pascal nella programmazione. Potrebbe essere leggermente migliore dell'originale linguaggio Pascal di Wirth, ma ovviamente è inferiore a Turbo Pascal / Delphi.
Mojuba,

2
@mojuba, mi sembra una risposta ...
glenatron,

Non era già chiuso una volta? Che cosa è successo alla cronologia delle modifiche?
Robert Harvey,

Ho avuto un breve fascino per Oberon nei miei anni di college. Vorrei sapere di più per avere un'opinione.
Barry Brown,

1
Richiedere parole riservate in maiuscolo sarebbe un grosso problema per me. Trovo le lettere minuscole molto più facili da leggere.
GrandmasterB,

Risposte:


8

Sì, definirei Oberon un Pascal migliore. Con Oberon, il professor Wirth è arrivato al centro della programmazione orientata agli oggetti con estensione del tipo e variabili di procedura. Trovo elegante che Oberon sia una lingua più piccola di Pascal con molto più potere.

Oberon 2 ha fatto un ulteriore passo avanti nella lingua vincolando i metodi ai record.

Non mi piacciono le parole riservate maiuscole. Trovo che la sintassi sia un miglioramento con l'eliminazione di molti inizio e fine.

Oberon è stato utilizzato per scrivere un sistema operativo molto interessante descritto nel Progetto Oberon: The Design of a Operating System and Compiler .


D'accordo, Oberon è meglio. Il problema con Oberon è che è arrivato troppo tardi. Molti altri sono migliorati su Fortran, Basic, Pascal, C, quindi Oberon ha forti concorrenti. Quindi, la lingua è solo una parte della soluzione. Il linguaggio "migliore" ha buone librerie o un'infrastruttura. Javascript è ottimo per via del legame con le applicazioni web. Quindi, reagire è ancora maggiore, basandosi su JS. A chi importa della semplicità del linguaggio? Vogliamo oggetti semplici come i componenti di reazione per creare app Web.
Roland,

6

È meglio, e peggio, in vari modi:

È bello avere la raccolta dei rifiuti e strutture per la programmazione modulare e orientata agli oggetti. È una lingua relativamente piccola; facile da analizzare e implementare.

La mancanza di enumerazioni è un dolore (anzi, nel dialetto Oberon esteso che usiamo, li abbiamo aggiunti di nuovo).

Rispetto alle lingue più moderne, il suo minimalismo è un po 'brutale e trattare le stringhe come matrici di caratteri in qualsiasi lingua è orribile.

Ovviamente, anche Pascal si è evoluto un po ', ad esempio vedere il componente Pascal.


Come si fa a digitare l'estensione sui tipi enumerati nel dialetto Oberon esteso? Motivo per cui lo chiedo: il professor Wirth ha detto che non riusciva a vedere un buon modo per farlo, ed è per questo che ha rimosso i tipi elencati dalla lingua.
John R. Strohm,

2
In realtà, credo che nonostante il suo nome, Component Pascal sia un successore di Oberon, non Pascal (tranne indirettamente, ovviamente). Va qualcosa come Algol-X (mai implementato) -> Algol-W -> Pascal -> Modula (mai implementato) -> Modula-2 -> Oberon -> (alcune revisioni di Oberon) -> Componente Pascal.
Jörg W Mittag,

2
Wirth era un purista; decise che era meglio perdere la sicurezza del tipo di enum per estensibilità e ortogonalità. Scriviamo un sacco di codice che beneficia della verifica del tipo di enumerazioni, in cui collisioni di valore coincidenti potrebbero altrimenti introdurre sottili errori. In breve, poiché controlliamo sia l'intera base di codice Oberon, sia il compilatore, facciamo senza l'estensione del tipo su enum, al fine di prevenire una classe di errori di programma estremamente irritanti.
grrussel,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.