Does anyone know some comperehensive and up to date resource illustrating the whole language family?
Does anyone know some comperehensive and up to date resource illustrating the whole language family?
I learned (Turbo) Pascal many years ago. Recently I've revived my usage while writing a video game. I wanted a mature, compiled, no GC language that worked well on Windows but wasn't C/C++. For the most part I've been happy with it.
It's still an alive project (version 3.0 released this year). It supports a wide selection of platforms, and a few Pascal dialects including Delphi, although I've been sticking to the old school procedural style in my game. It easily interfaces with C libraries (I've tried SDL and Lua).
As for the language itself, it seems to have lackluster support for template / generic programming, so I avoid it. That's a little disappointing to me but I think I can live without it. It does support old scool C++ style OOP, but try to avoid it because OOP's not cool anymore :).
There's plenty of documentation on the Internet, but not the amount of some of the more hip languages of today (and the websites tend to look older).
The number of tools is lackluster. It has an IDE called Lazarus that I've never used. The IDE seems focused on GUI development, which doesn't interest me. It comes with Turbo Pascal like IDE that runs in a console window, which probably won't be appealing to most people. I mostly use Notepad++ and script building in PowerShell for my game. I do miss the features from Visual Studio, like Intellisense though.
Delphi's expensive but its Object Pascal implementation (http://docwiki.embarcadero.com/RADStudio/Seattle/en/Delphi_L...) is good and it has some nice libraries like FireDAC (http://docwiki.embarcadero.com/RADStudio/Seattle/en/FireDAC) and the parallel programming library (http://docwiki.embarcadero.com/RADStudio/Seattle/en/Using_th...).
I am not an expert, but as someone that started coding in the 80's I have some of the knowledge myself. Some of these facts might be wrong.
Pascal:
Wirth created Pascal, the educational version, which was the target of the famous rant from Kernigan.
All Pascal vendors extended the language, the most common extensions for professional coding became the ISO Extended Pascal standard.
UCSD Pascal, Turbo Pascal, MacPascal and Quick Pascal were the most famous dialects.
Wirth collaborated with Apple in the design of Object Pascal, the original systems programming language for Mac OS. Those extensions were later on adopted by Borland for Turbo Pascal.
Given the influence of Turbo Pascal in the PC world, most Pascal vendors ignored the ISO Extended Pascal and tried to follow Turbo Pascal instead.
Object Pascal eventually became a synonym with Delphi.
Modula-2:
Wirth spends some time at Xerox PARC and gets to learn Mesa. When he returns to Zurich, he creates a systems programing language based on Mesa, without the issues that plagued Pascal and writes the Lillith OS in it.
Oberon:
Wirth returns to Xerox PARC, meanwhile Mesa has evolved into Cedar, a systems programming language with RC/GC, interactive debugger (REPL) among other features.
Again, when returning to Zurich, he creates Oberon (the language) and Oberon (the OS), following the features of Cedar.
Oberon gets used as workstation environment at ETHZ and as a means to teach OS programming at several european universities.
Wirth collaborates in the design of Oberon-2.
Other ETHZ collaborators create a startup to explore Oberon commerically and extend Oberon-2 further, thus creating Component Pascal.
Meanwhile the OS projects at ETHZ evolve the Oberon OS into Oberon System 3 with its gadgets systems, and evolve Oberon-2 into Active Oberon, which uses active objects as construct for parallel/concurrency programming.
Wirth already retired, decides to pursue his goals for a minimalist type safe systems programming language and designs Oberon-07.
Modula-3
The Xerox PARC designers behind Mesa and Cedar eventually join DEC when all falls apart and start designing Modula-2+, based on Modula-2.
With their learnings, they eventually create Modula-3 and the SPIN OS.
Unfortunately DEC gets bought by Compaq and Modula-3 related projects get canned.
MacApp is interesting in itself, but I'm not sure how much involvement Wirth had in its development. Delphi certainly owes a lot of its design to it, but nailed the visual UI builder in ways that MacApp didn't (and in a way that Interface Builder never has). Apple actually kept supporting and updating MacApp as late as 2002 (Photoshop was famously written in it) [1]; it's one of those beautiful niche things that eventually die, but keep a lot of people magically productive for a while (just like Delphi, coincidentally).
[1] http://basalgangster.macgui.com/RetroMacComputing/The_Long_V...
My personal theory is that his participation in the Algol 68 design effort left him with enough unpleasant experiences in language standardization to stop him from ever trying this again (Though I never asked him personally).
I never cease to be amazed at the dedication Stroustrup has been bringing to the C++ standardization for several decades now.