6 ms·
Interesting history, from Wirth's perspective. A little strange though that he mentioned Java and C# as inheriting the legacy of Pascal, but left out Delphi, th
by yawaramin 6y ago
Interesting history, from Wirth's perspective. A little strange though that he mentioned Java and C# as inheriting the legacy of Pascal, but left out Delphi, through which C# indirectly inherits from Pascal. FreePascal is also worth mentioning but perhaps not academically very interesting.
Other, more modern, languages that come to mind as inheriting from Pascal are Go and OCaml. OCaml more directly inherits from Modula-2's notion of separate interface and implementation, and gains similar parallel compilation speed benefits from that: https://dev.to/yawaramin/ocaml-interface-files-hero-or-menace-2cib https://dev.to/yawaramin/ocaml-interface-files-hero-or-menac...
If you look at the imperative and some other parts of OCaml, the Pascal heritage is clear, e.g. comments (* ... *), for loop, while loop, mutable assignment with x := y, etc.
- pjmlp 6y agoDelphi is a transition point between Pascal and C#, so. In any case, I bet he wasn't that found of Delphi. You will also not find much love from him on the Oberon descendants, namely Oberon-2, Active Oberon, Oberon.NET, Zonnon, Component Pascal. Modula-2 isn't that much big influence on OCaml, its modular ideas were already present in CLU, ML and Mesa. Also OCaml, is actually Objective Caml, back when I was in the university Caml Ligth was still their stable ML implementation, with Objective Caml being released a couple of years later.
- yakubin 6y ago> Modula-2 isn't that much big influence on OCaml, its modular ideas were already present in CLU, ML and Mesa. Modula inspired ML in this regard: <https://dl.acm.org/doi/10.1145/773473.178245 https://dl.acm.org/doi/10.1145/773473.178245> ML modules alone don't provide separate compilation.
- pjmlp 6y agoI stand corrected, thanks for pointing out the paper.
- davidhbolton 6y agoI'd argue that Turbo Pascal was that transition point not Delphi. The last incarnation of Turbo Pascal was Borland Pascal and it had much that was in Delphi thoughg OOP was improved on in Delphi. Delphi was just Turbo Pascal for Windows.
- pjmlp 6y agoExcept you are forgetting the little detail that Object Pascal was born out of a collaboration between Apple and Niklaus Wirth for their Lisa OS, later picked up for Mac OS, and Borland picked up from there, and kept adding C++ like features to it. So Wirth was influential in Object Pascal's birth, but cared very little with what happened later on.
- badsectoracula 6y agoDelphi had a ton of features that you'd find in C# but were absent from Borland Pascal 7, like: 1. The 'class' defined objects which were always allocated on the heap 2. Classes themselves being values with their own metaclass types 3. Classes having their own class procedures which could also be virtual (belonging to their metaclass) 4. Being able to instantiate an object instance dynamically using a class value (metaclass instance) 5. Classes having properties with getters and setters 6. A rich (for its time) RTTI with classes exposing properties to it and being able to alter at runtime (you can query a class for the exposed properties, their types, etc and there are utilities for setting them by their name as as string) - this was the basis for automatic form and component serialization ("streaming") 7. "Fat" pointers for method callbacks that could be used to associate event handlers And a bunch of other stuff i certainly forget. Even at version 1 Delphi's Object Pascal was a much more powerful language than any Pascal dialect before it (the Object Pascal in BP7 was a very small improvement on the one introduced in TP5.5 which AFAIK was mostly the same as Apple's Object Pascal - though i think one difference is that in Apple's objects must be allocated on the heap like in Delphi whereas in TP5.5/6/7 they can be allocated either in the heap or live in the stack).
- pjmlp 6y ago> Even at version 1 Delphi's Object Pascal was a much more powerful language than anything before Only if we ignore that many of its new features were already present in Eiffel, including those 7. Here is another two Eiffel features that we still don't have in modern languages as widespread as it should, design by contract, and non nullable types. Language archeology is an interesting subject, unless you are comparing Delphi with TP. By the way, I really hated that with Delphi I had to deal with class and legacy object to express parallel concepts, and that OWL was thrown out of the Window and I had to rewrite everything back into VCL.
- yawaramin 6y ago> Modula-2 isn't that much big influence on OCaml, It is ... check out https://dev.to/yawaramin/ocaml-interface-files-hero-or-menace-2cib#back-to-ocaml https://dev.to/yawaramin/ocaml-interface-files-hero-or-menac... ... it quotes the OCaml creator (Xavier Leroy) directly on this.
- andi999 6y agoDelphi is the usable version of pascal.
- guenthert 6y agoWell, different purposes and target audiences. Pascal was very much intended to be used in education, including as first programming language, while Delphi clearly targeted small-shop / individual professional software developers.
- andi999 6y agoHonestly, the concept of a 'teaching' language (except maybe for primary school), is such an arrogant concept. It draws a distinction between master(teacher) who knows real languages and the student. It also wastes a lot of time for the student.
- badsectoracula 6y agoDelphi and Free Pascal are a bit too far removed from Wirth's idea of simple languages which is probably why he didn't mention them. Delphi 1 (let alone the modern variants) added more stuff to Turbo Pascal than the entirety of Wirth's Pascal and it is more of a new language that has his Pascal as roots - after all programming languages affect how you think about the solutions of the problems you are trying to solve and the way you'd write a Delphi/Free Pascal program would be very different than the way you'd write a Wirth Pascal program. Notice that he sees Oberon as the successor to Pascal and Oberon is an even simpler language than Pascal was.
- sitkack 6y agoMy respect for Wirth only grows over time. He has this philosophy that strikes me as Bauhaus, a focus on futurism w/o complexity, clean lines and modern technology.
- AnimalMuppet 6y ago> A little strange though that he mentioned Java and C# as inheriting the legacy of Pascal... Java? That boggles my mind. Pascal was about simplicity, and Java is... very much not in the spirit of Pascal in that regard. Or so it seems to me. I would have expected Wirth to shudder when he looked at Java.