Czy Oberon to naprawdę „lepszy Pascal”? [Zamknięte]


12

Czytając Niklausa Wirtha , można zauważyć, że pomimo pewnej popularności Pascala, nie cieszy się, że Oberon (jako „dopracowany” następca Pascala i Moduli) nie zyskał dużej popularności. Nigdy nie robiłem nic w Oberon, ale czytając stronę Oberon Dla programistów Pascal Naprawdę nie podobało mi się wiele zmian jako programista Delphi / pascal, na przykład

  • wymuszanie, aby słowa zastrzeżone były zawsze wielkie
  • rozróżnianie wielkości liter w języku
  • pozbywanie się typów wyliczeń

Co sądzisz o Oberon, czy to naprawdę „lepszy Pascal” z twojego punktu widzenia?


3
Oberon wydaje się odległym echem epoki Ada / Pascal w programowaniu. Może być nieco lepszy niż oryginalny język Pascala Wirtha, ale oczywiście jest gorszy od Turbo Pascal / Delphi.
mojuba

2
@mojuba, wygląda mi to na odpowiedź ...
glenatron

Czy to nie było już raz zamknięte? Co się stało z historią edycji?
Robert Harvey

Miałem krótką fascynację Oberonem na studiach. Chciałbym wiedzieć więcej na ten temat, aby mieć opinię.
Barry Brown,

1
Wymaganie wielkich, zarezerwowanych słów byłoby dla mnie przełomem. Uważam, że małe litery są łatwiejsze do odczytania.
GrandmasterB,

Odpowiedzi:


8

Tak, nazwałbym Oberona lepszym Pascalem. Wraz z Oberonem profesor Wirth doszedł do sedna programowania obiektowego ze zmiennymi typu i zmiennych procedur. Uważam, że to eleganckie, że Oberon jest językiem mniejszym niż Pascal o znacznie większej mocy.

Oberon 2 posunął język o krok dalej, wiążąc metody z rekordami.

Nie lubię zastrzeżonych słów pisanych wielkimi literami. Uważam, że składnia jest poprawą dzięki wyeliminowaniu wielu początków i końców.

Oberona użyto do napisania bardzo interesującego systemu operacyjnego opisanego w Projekcie Oberon: Projektowanie systemu operacyjnego i kompilatora .


Zgadzam się, Oberon jest lepszy. Problem z Oberonem polega na tym, że przyszedł za późno. Wiele innych poprawiło Fortran, Basic, Pascal, C, więc Oberon ma poważnych konkurentów. Zatem język jest tylko częścią rozwiązania. „Najlepszy” język ma dobre biblioteki lub infrastrukturę. JavaScript jest świetny ze względu na powiązanie z aplikacjami internetowymi. Wtedy reakcja jest jeszcze większa, bazując na JS. Kogo obchodzi prostota języka? Chcemy prostych obiektów, takich jak reagujące komponenty, do tworzenia aplikacji internetowych.
Roland

6

Jest lepszy i gorszy na różne sposoby:

Fajnie jest mieć wyrzucanie elementów bezużytecznych i funkcje do programowania modułowego i obiektowego. Jest to stosunkowo mały język; łatwe do przeanalizowania i wdrożenia.

Brak wyliczeń jest uciążliwy (w rozszerzonym dialekcie Oberona, którego używamy, dodaliśmy je z powrotem).

W stosunku do bardziej współczesnych języków jego minimalizm jest nieco brutalny, a traktowanie ciągów znaków jako tablic znaków w dowolnym języku jest upiorne.

Oczywiście, Pascal również ewoluował całkiem sporo, np. Patrz Component Pascal.


Jak wpisujesz rozszerzenie dla typów wyliczonych w rozszerzonym dialekcie Oberona? Powód, dla którego pytam: profesor Wirth powiedział, że nie widzi dobrego sposobu na zrobienie tego i dlatego usunął z języka wyliczone typy.
John R. Strohm,

2
Właściwie uważam, że pomimo swojej nazwy Component Pascal jest następcą Oberona, a nie Pascal (oczywiście z wyjątkiem pośrednio). Idzie coś takiego jak Algol-X (nigdy nie zaimplementowany) -> Algol-W -> Pascal -> Modula (nigdy nie zaimplementowany) -> Modula-2 -> Oberon -> (niektóre wersje Oberona) -> Component Pascal.
Jörg W Mittag,

2
Wirth był purystą; Uznał, że lepiej byłoby stracić bezpieczeństwo wyliczeń dla rozszerzalności i ortogonalności. Piszemy dużo kodu, który korzysta ze sprawdzania typów wyliczeń, gdzie kolidujące ze sobą kolizje wartości wprowadzałyby w przeciwnym razie subtelne błędy. Krótko mówiąc, ponieważ kontrolujemy zarówno całą bazę kodu Oberona, jak i kompilator, robimy to bez rozszerzenia typu w wyliczeniach, aby zapobiec klasie wyjątkowo irytujących błędów programu.
grrussel
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.