logoalt Hacker News

pjmlpyesterday at 11:36 AM1 replyview on HN

Some things, that are not only Pascal, but languages influenced by it during the 1970-1980's.

The most obvious one is type declaration order.

Strong typing, with more explicit casts, to what C devs used to call straightjacket programming on BBS and Usenet discussions.

Striving to go back to toolchains with fast compilation times.

Being able to use high level concepts, while at the same time having the primitves for low level coding, no need for everything is a pointer, when the compiler can take care of it

The spans everyone is talking about nowadays, used to be called open arrays in Extended Pascal and Modula-2.

Arenas, were marked regions, see Mark/Release.

While one can advocate that Rust is more Standard ML, Go, Zig, Odin show clearly how Oberon or Modula-2 would look like with more curly brackets and lowercase keywords.


Replies

adrian_byesterday at 12:46 PM

Standard Pascal had some very serious design mistakes, which are less obvious for those who have used only extended variants, like Turbo Pascal or Extended Pascal, where some of the mistakes had been corrected.

Probably the greatest mistake was that arrays of different sizes were different types in Pascal. While C had extremely poor support for arrays in comparison with older languages like Fortran, PL/I or Algol 68, Pascal was even worse, because in Standard Pascal it was pretty much impossible to write a library implementing linear algebra algorithms.

Actually in Standard Pascal it was impossible to write any kind of library, because separate compilation was impossible.

Turbo Pascal was a decent programming language, but only because it had a lot of essential extensions over Standard Pascal, including the ability to write multi-file programs.

The languages designed by Wirth have become very well known, because he and others have written some very good books about them for beginners and they were used in teaching in many places, but all of his languages were quite bad in comparison with the languages that he wanted to replace, because he thought that they were too complex, e.g. Algol 68 and Xerox Mesa.

show 2 replies