Oberon é realmente "um Pascal melhor"? [fechadas]


12

Lendo Niklaus Wirth , pode-se notar que, apesar de alguma popularidade de Pascal, ele não está satisfeito por Oberon (como sucessor "polido" de Pascal e Modula)) não ter obtido muita popularidade. Nunca fiz nada em Oberon, mas ao ler a página Oberon Para desenvolvedores de Pascal , realmente não gostei de muitas das mudanças como desenvolvedor de Delphi / pascal, por exemplo

  • forçando as palavras reservadas a serem sempre maiúsculas
  • tornando o idioma que diferencia maiúsculas de minúsculas
  • livrar-se de tipos de enumeração

O que você acha de Oberon, é realmente "um Pascal melhor" do seu ponto de vista?


3
Oberon parece um eco distante da era Ada / Pascal na programação. Pode ser um pouco melhor que o idioma Pascal original de Wirth, mas obviamente é inferior ao Turbo Pascal / Delphi.
Mjuba

2
@mojuba, que se parece com uma resposta para me ...
glenatron

Isso já não estava fechado uma vez? O que aconteceu com o histórico de edições?
Robert Harvey

Tive um breve fascínio por Oberon nos meus anos de faculdade. Eu gostaria de saber mais sobre isso para ter uma opinião.
Barry Brown

1
Exigir palavras reservadas em maiúsculas seria um negócio para mim. Acho minúsculas muito mais fácil de ler.
GrandmasterB

Respostas:


8

Sim, eu chamaria Oberon de melhor Pascal. Com Oberon, o professor Wirth chegou ao cerne da programação orientada a objetos com extensão de tipo e variáveis ​​de procedimento. Acho elegante que Oberon seja uma linguagem menor que Pascal, com muito mais poder.

O Oberon 2 levou o idioma um passo adiante, vinculando métodos aos registros.

Não gosto das palavras reservadas em maiúsculas. Acho a sintaxe uma melhoria com a eliminação de muitos começos e fins.

O Oberon foi usado para escrever um sistema operacional muito interessante descrito no Projeto Oberon: O Design de um Sistema Operacional e Compilador .


Concordo, Oberon é melhor. O problema com Oberon é que chegou tarde demais. Muitos outros aprimoraram o Fortran, Basic, Pascal, C, então Oberon tem concorrentes sérios. Então, o idioma é apenas parte da solução. A linguagem 'best' possui boas bibliotecas ou uma infraestrutura. Javascript é ótimo devido ao vínculo com aplicativos da web. Então, a reação é ainda maior, com base no JS. Quem se importa com a simplicidade da linguagem? Queremos objetos simples, como componentes de reação, para criar aplicativos da web.
Roland

6

É melhor e pior, de várias maneiras:

É bom ter coleta de lixo e instalações para programação modular e orientada a objetos. É uma linguagem relativamente pequena; fácil de analisar e implementar.

A falta de enumerações é uma dor (de fato, no dialeto estendido de Oberon que usamos, nós os adicionamos de volta).

Em relação às linguagens mais modernas, seu minimalismo é um pouco brutal, e o tratamento de strings como matrizes de caracteres em qualquer idioma é medonho.

Obviamente, o Pascal também evoluiu bastante, por exemplo, consulte o Componente Pascal.


Como você digita extensão em tipos enumerados no seu dialeto Oberon estendido? Razão pela qual pergunto: o professor Wirth disse que não via uma boa maneira de fazer isso, e foi por isso que ele removeu tipos enumerados do idioma.
John R. Strohm

2
Na verdade, acredito que, apesar do nome, o Component Pascal é um sucessor de Oberon, não de Pascal (exceto indiretamente, é claro). É algo como Algol-X (nunca implementado) -> Algol-W -> Pascal -> Modula (nunca implementado) -> Modula-2 -> Oberon -> (algumas revisões de Oberon) -> Componente Pascal.
Jörg W Mittag

2
Wirth era um purista; ele decidiu que era melhor perder o tipo de segurança das enumerações por extensibilidade e ortogonalidade. Escrevemos muito código que se beneficia da verificação de tipo de enumerações, onde colisões de valores incidentais introduziriam erros sutis. Em resumo, como controlamos toda a base de código Oberon e o compilador, o fazemos sem a extensão do tipo enums, a fim de evitar uma classe de erros de programa extremamente irritantes.
grrussel
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.