Comment by pjmlp
14 hours ago
I am so glad to have had the luck to learn coding via various BASIC flavours, Turbo Pascal, Z80, 8086 Assembly before getting into C and C++, as I wasn't tainted about C being God's revelation for systems programming, that many seem to have.
After learning C, I quickly switched to C++, alongside Pascal, and stayed on Borland ecosystem until Visual C++ 6.0 came to be, followed by .NET.
On UNIX, C++ was my Typescript for C, as back then there wasn't FreePascal, and most Pascal implementations for UNIX sucked, plain standard Pascal, or P2C.
I also had the pleasure to have a myriad of other programming languages, including Oberon, yes it was rather cool for its time.
The way most modern languages have gone back to Pascal style development feels quite enjoyable.
In what ways have they gone back to Pascal style?
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.
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.
2 replies →