A typed, compiled language easy to program.
Why did Pascal fade instead of growing?
Additionally Anders got fed up with the ongoing culture and finally accepted the invitation of former ex-colleges to join Microsoft.
So J++ was born, then .NET, and most of the folks on Windows just moved from Delphi into C#.
Borland started raising the prices of their compilers to the point that the hobbyist could no longer justify it, and market share fell accordingly.
Since Turbo Pascal/Delphi was the only Pascal with a complete library, the fortunes of the language went with it.
There is a fairly reasonable open source Pascal these days, the Free Pascal project, on top of which is built a GUI IDE, Lazarus. They try to maintain feature parity with Delphi, which is now far, far too expensive, they do a fairly good job with it.
It is possible to crank out a Windows GUI program in Lazarus pretty darned quickly. It's my preferred programming environment to this day.
Especially when you compared MS-DOS to Unix (I say Unix because this was before Linux was dominant) systems which most computer science students were being introduced to at the time. With C you got access to all the Unix dev tools and you could do Unix systems programming. I think too a lot of young computer science students go through a phase of all things difficult are good and C on Unix made for a great learning opportunity.
Speaking as myself, the problem was the ecosystem not the language per say. I think for most of us it isn't even a contest between MS-DOS or Unix.
But I think when Microsoft settled on C for Windows programming, Apple and others jumped on the bandwagon. And since the languages are actually very similar, I think that Pascal was mostly seen as irrelevant after that. It lacked a distinct niche apart from C.
http://www.cs.virginia.edu/~evans/cs655/readings/bwk-on-pasc...
Poor brand management —
"This was, of course, partially of Wirth's own making". … "He refrained from ... names such as Pascal-2, Pascal+, Pascal 2000, but instead opted for Modula and Oberon".
"Pascal and its Successors" 2002
So taking your question to be, why isn't Pascal used as much as some of the other languages from antiquity, like C, sh/bash/ksh/etc, or even Lisp, my opinion is that it was a combination of it being an "old" language and an interpreted language.
If you take a look at a timeline of programming language creation and usage [0], you see only a few compiled languages from before the 1980s survived and pretty much no interpreted languages did. The interpreted languages that did survive were mostly created in the late 1980s or early 1990s (Perl, Ruby, Python, Javascript).
I kind of take this to mean that the programmer productivity gained from interpreted languages was overshadowed by the computational speedup from their compiled counterparts during the pre 1980s time. When computer's computational speed finally caught up so that interpreted languages made more sense, Pascal was now 20+ years old and was overshadowed by the newer interpreted languages that took advantage of newer ideas in programming language design and/or were more feature rich in the programming language fads of those eras.
"sh" holds a kind of special place, as it's the workhorse of interacting with Unix-like environments, so it became pretty well entrenched. If you look at a lot of the more "modern" interpreted languages, you can see a lot of them were meant to supplant or complement tools specific to the command line or the command line itself (e.g. AWK -> Perl).
I don't claim to have any deep knowledge so all this is my very biased and weak opinion.
[0] https://ccrma.stanford.edu/courses/250a-fall-2005/docs/Compu...
C had small edge in utility at first, then it ballooned into huge base of programmers. Familiar syntax can sell completely new language with different semantics. Choosing syntax from C has lead to success of C++, Java, JavaScript, JSON, ... despite completely different semantics.
Pascal and successors Modula Oberon and Ada with similar syntax features did not succeed. It had little to do with language features, ease to learn (except surface syntax) or semantics.
During the years where the mainstream office business landscape transitioned from DOS to OS/2, no wait, Windows, broadly speaking there where two types of application programmers. Those that used C or C++ and those that didn't.
For the later camp MS promoted various flavours of Basic, which also had to do with Office and scripting an Works for DOS etc. But I suspect it was also a "theological" battle against Borland.
On the other platforms Pascal was succesful, but the Amiga and the Atari tanked. The Macintosh escaped that destiny barely. Maybe Swift is the new Pascal?
(Measurement unit joke.)
Still... when I see Lua, Visual Basic or Julia even now I think: this is not going to make it, it doesn't stroke the programmers ego. I'll be happy to be proven wrong.
String size was limited to 255 (non-Unicode) characters, array size needed to be specified at compile time, everything beyond this required manually allocating and unallocating memory... okay for school projects, but too much work for anything more complicated. The standard library didn'd support some simple functionality I had to write in assembler, such as detecting when a key is pressed and when it is released (how can you write an action game without this?), or using 256 colors (the standard library supported 16 colors at most).
The "smart" marketing move to rename a successful product and company to something obscure also didn't help. Why not call it "Visual Pascal" instead?
Mostly companies just want to use what everyone else is using to ensure there's broad support and to make individual programmers easier to hire and fire.
But there's nothing stopping you from using it now if you want to. Personally, I quite like Object Pascal.
Free Pascal: https://www.freepascal.org/
Lazarus: https://www.lazarus-ide.org/
Now, arguably, you would say that some of the abstractions offered were reasonable tradeoffs, but at the time, things like the nature of strings and the second class support for pointers and the difficulty of (and awkward syntax for) memory management meant that it was fundamentally limited in applicability.
I learned Pascal in High Scool, in 98, where it was taught as a 'learning language'. Something to learn intro into programming and basic CS concepts, but then to move on into other languages for real work.
So, even in the 90s, it was not thought as a production level language. ADA was at the time, and of course Java was coming up in the scene as a replacement for C++ which was the default 'large programs' language.
Python and PHP were just starting to take off as the web was becoming popular.
Once the dust settled, ADA remained a niche language, and Pascal pretty much disappeared from school settings, as either Python or Java became the default languages for intro to programing.
Now I'm teaching freshman software engineering students and we use Python. I personally like it but some of it is pretty idiosyncratic. It's going to be a more difficult transition from Python to compiled languages like C/C++ than it was for Pascal. The big difference is Python is used in the industry, so knowing it is worth more than knowing Pascal back in the day.
As of now I can't remember exactly why, but it seemed obvious to me at the time C was the place to be going forwards, maybe because I was working part time doing embedded design, or I had turbo C and a copy of Microsoft C fell my way, I can't really remember, but I do remember feeling that Pascal and Modula 2 were both a relative dead end when it came to useful skills for future employment.
Object Pascal is a hybrid language, having an even tighter relationship to Pascal than does C++ to C. You can easily write it without using OOP or classes (or newer things like generics), so that it closely resembles the ISO 1983 or 1990 Pascal.
Pascal is still widely used (categorized as a top 15 to 20 language). That it is not as popular as certain corporate backed C family languages (C# or Java), doesn't mean failure. Saying Pascal "failed", is very deceptive language or arguably having an agenda. That would be like saying Go, Rust, or Swift "failed" because they aren't as popular as C# or Java (with the big corporate money behind it). Keep in mind that Object Pascal is as or more popular than those languages.
Object Pascal was created and used by Apple in the 80s and 90s (used for OS and app development). They preferred Object Pascal over C (does that mean C "failed"). The reason Apple dropped Object Pascal years later for a combination of C++ and Objective-C was partly because they moved from the Motorola 68000 chips to IBM's PowerPC and partly because Symantec's (Think Pascal) and Metrowerks (CodeWarrior) Object Pascal products had beat Apple's Macintosh Programmer's Workshop Pascal compiler in the market. As part of a series of consolidation and strategic moves, Apple moved on to Project Builder IDE that was developed by NeXT (who they bought) and began preferring Objective-C (does that mean C++ "failed"). After the move to PowerPC, a lot of Mac developers were using Metrowerks Object Pascal compiler (CodeWarrior) to port and develop applications. Borland's Turbo Pascal joined the party for a time, but was more successful on Windows. Use of CodeWarrior's Pascal compiler for Macs continued until around 2000 or so.
Object Pascal was used in IDEs and compilers by many companies in the 80s and 90s, among them is Borland (then later to Embarcadero) which shipped Turbo Pascal and Delphi (both very successful well known products) and it was quite popular in the 90s and early 2000s. During this time period, Pascal and then Delphi (the name of the IDE using Object Pascal) was often rated between 1 to 10 in language popularity. Many would say that is success.
Arguably the reduction in use and popularity comes from mishandling by Borland, who got way too greedy, and started charging extravagant prices beyond anything normal people could afford. They abandoned their common user base for enterprise customers, along with getting into an all out corporate war with Microsoft (who appears to have been trying to get rid of competitors on their OS going against Visual Basic and used for app development). This battle concluded with Microsoft picking off Borland's top engineers (including Anders Hejlsberg, who created C#), and Borland being bought by Embarcadero. However, years later, things have "stabilized" with Embarcadero releasing a free Community Edition of Delphi. Along with Free Pascal/Lazarus (a compiler originally written with Turbo Pascal by the way in 1997) slowly becoming more well known, to include Oxygene (Rem Object's Pascal IDE) and PascalABC (numerous YouTube videos in Russian on it) also starting to appear more on the common radar.
Delphi (has academic licenses) and Turbo Pascal (which is freeware now) was and is still used for teaching students their first programming language in various schools, depending on country. PascalABC (open-source) has been taught in Russian schools since the early 2000s. Free Pascal/Lazarus (open-source) has also been popping up in various school systems around the world as well.
Object Pascal has many dialects. Most notable: Delphi (Embarcadero), Oxygene (Rem Objects), Smart Pascal (transpiles to JavaScript), Free Pascal/Lazarus (open-source), PascalABC (open-source and .NET), and DWScript (open-source).
Microsoft tech stack is the exception, but it's because Microsoft controls Windows the OS.
There you have it.
The thing about these early language designs is that it's really only their "toy" language subset that's truly easy to program. Once you try and extend a comparatively simple language like PASCAL to deal with all the complexities of truly large-scale software development you end up with something not unlike ADA, where the verbose syntax just gets in the way of surveying a complex program effectively.
I think Go and Rust both made very good syntactical choices in picking just a handful of very short mnemonic keywords (and symbols like {}) for things that simply have to be foundational language features, while making longer names fully idiomatic for identifiers that are defined in the code.
Of course the PASCAL language family makes very different choices here (as do other languages, such as COBOL and BASIC). I'm not saying it wouldn't be cool in some way to see a language design with e.g. a Rust-like featureset and PASCALish syntax; I just don't think it would ultimately be easy to learn and use practically.