15 ms·
Ask HN: Why Did Pascal Fail?
I’m puzzled.
A typed, compiled language easy to program.
Why did Pascal fade instead of growing?
- Torwald 5y agoOne of the factors was Microsoft. The rival Borland was big on Pascal with the venerable Turbo Pascal. 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?
- einr 5y agoWhile you do have a point, Microsoft also sold a Pascal compiler for many years so it's not exactly like they were on a crusade against the language: https://en.wikipedia.org/wiki/Microsoft_Pascal https://en.wikipedia.org/wiki/Microsoft_Pascal When they tried competing with Turbo Pascal, they initially didn't do it by trying to crush it with QuickBasic or QuickC but by introducing QuickPascal, which was source compatible with Turbo Pascal: https://winworldpc.com/product/quickpascal/1x https://winworldpc.com/product/quickpascal/1x
- Tozen 5y agoActually, the record shows that Microsoft did very much try to crush Borland. While Microsoft did initially offer QuickPascal and embraced it (had no choice because of Pascal's popularity), Borland crushed them with Turbo Pascal 5.5 (1989) that had their version of Apple's Object Pascal (created in 1986) extensions. From Turbo Pascal 5.5 and up, it was using Borland's version of Object Pascal. Note, C++ took a bit to take off, so didn't start to go toe to toe with Pascal until around 1992. C++ didn't get ISO until 1998. C# didn't happen until 2000. So Borland and Pascal were a thorn to Microsoft for years, not to mention Java (1995) and Sun. Borland was eventually forced to sue Microsoft for unfair competitive practices. Microsoft was arguably playing dirty, and hired away many of Borland's top engineers. This included the creator of Turbo Pascal, Anders Hejlsberg. Who then Microsoft had him create C#, along with other ex-Borland engineers. In addition, there was all kinds of allegations during the 90s about Microsoft blocking or hiding APIs from Borland and negatively affecting their software.
- clouddrover 5y agoFashion as much as anything. A lot of people have the idea that Pascal is somehow not "modern", but these same people almost universally haven't used it lately or even at all. 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/ https://www.freepascal.org/ Lazarus: https://www.lazarus-ide.org/ https://www.lazarus-ide.org/ Delphi: https://www.embarcadero.com/products/delphi https://www.embarcadero.com/products/delphi
- Normille 5y agoI think your first link [freepascal.org] speaks volumes. I clicked on it and was taken to a page which looked like it was stuck in a 1990s timewarp. Opened it on my phone and, as expected, no concessions to mobile layout at all. Just that massive page of text rendered in microscopic size on my phone screen. Back to the site on my laptop and I look for the two things I want to see up front when deciding whether I'm interested in dipping a toe into a new programming language: 1: What are its selling points? 2: What does the syntax look like. Nothing at all there to give me any info. Just a load of text outlining the differences between the latest point versions. So I click on 'Documentation' thinking there might be a 'Quickstart Guide' or something of that ilk there, that will give me some of the info I want. Nope. Just various in-depth User Guides as downloadable PDFs or HTML versions. OK. Let's try the HTML version. I click on that and the entire screen fills up with a massive index of all the chapters and sub-sections in the guide. None of them called anything remotely welcoming like 'Start Here' or 'Quickstart' Oh, and not that it's strictly necessary. But the only visuals I saw on my abortive mission onto that website were a tiny badly cut-out clipart picture of a cheetah [the project icon?] at the top of the front page and a couple of other nondescript icons at the bottom, one of which was a broken link. Pascal may be the best programming language in the world and 'fashion' may have played some part in its alleged demise. But some people [and projects!] don't exactly do themselves any favours by actually making an effort to sell themselves, do they?
- oefrha 5y ago
- nabla9 5y agoProgramming languages have network effects. More popularity -> more utility. Popularity of language is not determined rationally. 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.
- tomrod 5y agoWould it be too reductionist to say "developer experience"?
- noir_lord 5y agoProbably, I programmed both back then and Pascal had the better development experience as a language but C had the libraries and the mindshare so it kinda depends where you draw the lines for developer experience. Turbo Pascal was in it's day a joy to work with as a language - clean, fast (compilation and runtime), good documentation, decent tooling.
- Turing_Machine 5y agoTurbo Pascal added a whole lot of bells and whistles to Wirth's Pascal, though. Let's just say that the ability to include inline assembly language wasn't exactly a feature of Wirth's original Pascal. The best feature of the classic Borland languages was the debugger, IMO.
- tjr 5y agohttp://www.lysator.liu.se/c/bwk-on-pascal.html http://www.lysator.liu.se/c/bwk-on-pascal.html
- fayten 5y agoThe contents of that post have not been relevant for decades. I would recommend giving Free Pascal a whirl if you haven't. FPC can even compile to JavaScript and it works with WebGL https://github.com/genericptr/Pas2JS-WebGL#pas2js-webgl https://github.com/genericptr/Pas2JS-WebGL#pas2js-webgl
- Turing_Machine 5y ago> The contents of that post have not been relevant for decades. But decades ago is precisely the timeframe we're talking about here. Pascal lost to C for the reasons Kernighan mentions (among others), which is the question the OP was asking.
- pjmlp 5y agoYou mean features that were actually available in Pascal dialects, during the days when C outside UNIX was based on K&R C dialects like Small-C? Also considering that most of the complains were fixed in Modula-2, made available initially in 1978.
- ncmncm 5y agoMost people at the time had never heard of Modula-2, and in any case had no ready access to a compiler for Modula-2. You have already had pointed out that the dialects you promote were all mutually incompatible, with no preprocessor to help paper over differences. Anybody wanting to write portable code was stuck. And, the article was about Pascal, not about Modula-2. Are you wishing he had also written an article about Modula-2 that you could also critize, maybe for not being about Modula-3 or Oberon instead?
- fayten 5y agoI'm not sure Pascal entirely lost due to just C. Borland's Turbo Pascal was quite popular and was broadly used in the mid 80s. Apple even used their own Object Pascal variant through-out the 80s. Pascal was primarily used for application development and for this case it was leagues ahead of C and C++. Turbo Pascal thrived up until Delphi was released in 1995, which then became the new lead Pascal. Unfortunately, Delphi would come to face it's killer within a year. When Java came out in 1996 it became an overnight juggernaut in application development. Java had a ton of hype when it was still in beta in 1995 and TIME magazine even listed it as one of the best products of the year--when it wasn't even released yet. Microsoft poached Anders Hejlsberg, the primary language designer of Turbo Pascal and Delphi, from Borland in 1996 to have him work J++ their variant of Java. J++ followed the Sun Java spec with a few deviations, but it was just another testament to how quickly Java was taking over. Borland was now competing with something that was free and they needed to pivot and well...they didn't. Random articles for further reading: https://en.wikipedia.org/wiki/Anders_Hejlsberg https://en.wikipedia.org/wiki/Anders_Hejlsberg https://en.wikipedia.org/wiki/Visual_J%2B%2B https://en.wikipedia.org/wiki/Visual_J%2B%2B http://content.time.com/time/subscriber/article/0,33009,983903,00.html http://content.time.com/time/subscriber/article/0,33009,9839... https://en.wikipedia.org/wiki/Turbo_Pascal https://en.wikipedia.org/wiki/Turbo_Pascal https://stackoverflow.com/questions/8460037/list-of-delphi-language-features-and-version-in-which-they-were-introduced-depre https://stackoverflow.com/questions/8460037/list-of-delphi-l...
- phendrenad2 5y agoIn the 1980s, Pascal was all the rage. The Apple Lisa and Macintosh programming manuals had two examples for every API call: Assembly language, and Apple Pascal. 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.
- karteum 5y agoI wouldn't say Pascal completely "failed". e.g. Delphi was quite popular at some point.
- kwhitefoot 5y agoIt still is. According to TIOBE (yes, I know it's not reliable) Pascal is currently more popular than Rust, F#, Cobol, Lua, Nim, etc.
- ncmncm 5y agoIf we didn't already know it was not reliable, this alone would suffice to demontrate it. Citing TIOBE is like saying you're OK because anyway your mother loves you.
- kwhitefoot 5y agoCan you provide a more reliable statistic?
- ncmncm 5y agoPascal was crowded out of its niche by Delphi. It could have been supplanted by Modula-2, instead, or Oberon, UCSD Pascal, Object Pascal, Apollo Pascal, or any number of other languages with syntactic similarities to Pascal. But it wasn't. Pascal was displaced by K&R C for mainstream work, which was soon supplanted by C90. C90 has been displaced from serious development work by various C++ versions, although it hangs on in restricted niches, for historical reasons, usually as C99 and sometimes C11. C++98 has been largely supplanted by C++11, which is beginning to be supplanted by C++17 and C++20. It doesn't make sense to say that Pascal is alive when there is no one, anywhere writing code that could be compiled by any actual Pascal compiler, and no actual Pascal compilers for any current machine.
- Tozen 5y agoDelphi is the product name of the IDE. The programming language that Delphi uses is Object Pascal. Check the wikipedia or Embarcadero's website to confirm. Object Pascal is an extension of Pascal, that adds OOP. It is much tighter than the relationship of C to C++. You can write Object Pascal procedurally, where it closely resembles ISO 1983 or 1990 Pascal. By the way, there was a 1993 technical committee to add OOP to Pascal, which a lot comes from the various Object Pascal dialects. Be that as it may, the Borland/Embarcadero Object Pascal became the de facto standard. The other dialects of Object Pascal follows them. To say nobody uses Pascal/Object Pascal is disingenuous. Clearly people use and pay for Delphi (Embarcadero), Oxygene (Rem Objects), and Smart Pascal. Free Pascal/Lazarus and PascalABC are open-source projects with over 20 year histories, so they are not going anywhere, and are very much used.
- marcodiego 5y agoPascal did not fail. It was quite a succesful learning language. To illustrate algorithms, it was not much better than C; as a system language it was much worse. So, it was replaced.
- ardit33 5y agoADA is its spiritual successor, which is still being used in some industrial/military applications. (Turbopascal not counting, as it is the same as Pascal). 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.
- ncmncm 5y agoThere was never any such language as "ADA". The name started out and is still Ada. There were once COBOL, FORTRAN, LISP, ALGOL, and BASIC, some since renamed to Fortran, Lisp, and Algol. Pascal was always Pascal. COBOL is still COBOL, and BASIC is still BASIC. "Visual Basic" is a wholly different language.
- znpy 5y agoAnother reason is because Unix took over, and Unix had a very close relationship to the C language, itself being written in C.
- Turing_Machine 5y agoBoth Microsoft and Apple switched to C long before they became actual Unix (i.e., Apple with OS X) or even had a POSIX API (Microsoft).
- keithnz 5y agoor even nicer was modular 2. But natively, *nix and windows were C bindings, turbo pascal and delphi were the closest for pascal to be popular, but embedded systems also started going C, then C++ came along and OO was supposed to be a magic solution, and object pascal was a late response to the OO phase.
- codr7 5y agoWe did some Modula-3 in school, I already knew Pascal well so it drove me nuts with minor differences to trip over. I doubt looking like Pascal helped these more powerful languages gain popularity.
- debo_ 5y agoIt was under too much pressure. (Measurement unit joke.)
- Oladunk 5y agoYou need to spend more time in a bar. (Another one.)
- quickthrower2 5y agoYou probably should spend more time in a church. (Another one, but of a riddle)
- mtk0 5y agowhen did pascal stop including the array size as part of the array data type?
- pjmlp 5y agoOpen arrays are a thing since ISO Extend Pascal and Turbo Pascal 7.0 for MS-DOS.
- GnarfGnarf 5y agoPascal was conceived as a language for learning programming, which I gather it does well. Perhaps the very features that prevent a student from shooting him/herself in the foot, get in the way when writing production code?
- ncmncm 5y agoNo. It was just very limited because Wirth was an academic. Pascal was adequate for teaching Computer Science, but not for teaching programming.
- andrewla 5y agoPascal represented a worse compromise between to-the-metal programming and structured programming concepts than C did. 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.
- m4r35n357 5y agoNo standard library
- ToddWBurgess 5y agoAs someone who started their computer science studies with Pascal and then switched to C (I use C for comparison because it was the dominant programming language in 1990s computer science programs) , I can say that C just offered more to the aspiring software developer. For most people who coded in the 90s Pascal meant Turbo Pascal. While the language itself was great, MS-DOS where it ran not so much. 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.
- noobermin 5y agoThere are so many varied responses here but only ones like this make sense. Unix's language was C. Eventually, windows' API would be C. Then the rest would simply be history. Surprised there isn't a book on this that explains it.
- invalidname 5y agoThis. I think Pascal was great but C just offered more. Especially when C++ came around and stole all the mindshare.
- pjmlp 5y agoIf you were on Borland tooling, we always had access to best of both worlds.
- pjmlp 5y agoTurbo Pascal was available for Windows.
- leashless 5y agoC was faster. It's that simple. Computers were extremely tiny in those days.
- pjmlp 5y agoFast where? Borland compilers were basically the same, and if one cared about speed, the only way to achieve it was hand written Assembly.
- the-dude 5y agoI don't know if the Pascal code ran slower, but the Borland compilers were plenty fast.
- davidhbolton 5y agoTurbo Pascal was a very fast compiler, written in assembler. I'm a Delphi developer, and have spent about 24 of the past 36 years programming in Pascal. The Delphi XE7 compiler (now about 8 years old) can on a one year old Lenovo laptop with 16 GB RAM compile 1.35 million LOC (in 80 different files) in 11 seconds. The 64-bit compile takes roughly twice as long. One of the design features of Pascal was a one pass compile which explains the speed. Note also that the Delphi/Turbo Pascal compilers are smart and discard all unused code.
- neverartful 5y agoSpeaking of speed, Turbo Pascal's compile speed was lightning fast.
- einr 5y agoPascal was super popular for applications development on the original 68k Macs, Amigas and Atari ST's. I don't know if these machines fall into your "extremely tiny" envelope but we're talking 68000 @ 7 MHz with usually 512K or maybe 1M of RAM. A little later, Turbo Pascal ran like greased lightning on a 386 or 486 box. There was really nothing else like it, which is partly why it enjoyed such immense popularity.
- abetusk 5y agoYou have to be careful by what you define as "success" and "failure". Many/most languages never really fail, they just become more and more niche. 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/ComputerLanguagesChart.png https://ccrma.stanford.edu/courses/250a-fall-2005/docs/Compu...
- einr 5y agoPascal is generally not an interpreted language. It is a compiled language that is suitable for systems and applications programming.
- Koshkin 5y agoAs far as I remember, Pascal admitted single-pass analysis. Such languages are especially amenable to being interpreted, i.e. immediately translated into executable actions (vs. some sort of bytecode).
- pornel 5y agoI've tried it in the early '90s when I was a noob. I couldn't get a simple program to work due to limitations of max 255-byte strings and fixed-length arrays. Google and StackOverflow didn't exist back then, so that was it. I went back to my pile of shareware floppies and found another language.
- Viliam1234 5y agoI used Turbo Pascal a lot as a teenager. Then I switched to Java and never looked back. For me the main reason was garbage collection. 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?
- tankenmate 5y ago"Why not call it "Visual Pascal" instead?" Probably because the lawyers advised them that they'd get sued by MicroSoft.
- littlecranky67 5y ago> array size needed to be specified at compile time This also holds true for C until C99, I think.
- Turing_Machine 5y agoC had `malloc` and (real) pointers pretty much from day 1, and allows you to treat the result of `malloc` as an array. Pascal's `new` did not let you do this, as I recall (it didn't even allow you to allocate a chunk of memory of arbitrary size... meaning that you can write `malloc` in C, but you can't write `new` in Pascal -- edit: before someone starts jumping on me with the claim that "Golly-Gee-Whiz Pascal '92" lets you do this, I am talking about Pascal, the language as designed by Niklaus Wirth, not about some bastardized non-standard extension. And yes, I fully concede that arbitrary pointers are dangerous, and are prone to producing nasty bugs. They also provide a whole lot of power).
- littlecranky67 5y ago
- renox 5y agoLack of portability: the 'standard' Pascal was very limited and each implementation added its own incompatible extension. So when a free C compiler was released..
- Pet_Ant 5y agoThe seems to be an intractable problem. To survive a technology needs to be a commodity, but for a product to succeed the business needs lockin. So there is no growth around standards by people making money off of them.
- pjmlp 5y agoIn the early days, if you wanted a proper C compiler you had to log into a UNIX. C compilers available for 8 and 16 bit computers weren't even fully K&R C.
- pjmlp 5y agoBasically Turbo Pascal overshadowed all other Pascal dialects and then Borland got greedy, decided that Fortune 500 were going to be their main customers in detriment of the small dev shops. 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#.
- zozbot234 5y ago> and then Borland got greedy, decided that Fortune 500 were going to be their main customers in detriment of the small dev shops. AIUI, that only happened very recently, well past the C# thing and perhaps only after the change from Borland to Embarcadero. For a long time, Delphi was actually a very reasonably accessible and effective competitor to Visual Basic.
- pjmlp 5y agoYou missed a decade in between. https://www.computerworld.com/article/2589416/inprise-to-change-its---name-back-to-borland.html https://www.computerworld.com/article/2589416/inprise-to-cha...
- Turing_Machine 5y agoThey were "Inprise" for a while in there, too. I think the "Inprise" crap was where they took their finger off the button. "Sure, let's drop a name that pretty much every working programmer associates with quality tooling and start using a bland, corporate-speak name that no one has ever heard of. What could possibly go wrong?" Inprise sounds like a name out of Mike Judge's Office Space. They eventually figured this out and changed back to Borland, but by then it was too late.
- citrin_ru 5y agoBorland/Inprise/Embarcadero with high and then prohibitive prices put multiple nails in the Pascal coffin, but it fate was predetermined even before this. Pascal occupies roughly the same niche as C. C is the language in both Unix and DOS/Windows were written which defined it success. C was chosen by Microsoft for DOS and later for Windows - using it for app development was the path of the least resistance (Visual C, then Visual Studio, API for C/C++, Documentation examples in C/C++). C is the language of Unix, it was used for kernel, user-space and most 3rd party apps. History of open-source and Unix is connect. It's not an accident that the first open source compiler which become popular and widely used (GCC) was a C compiler. Once C because "an official" language for both Unix and Windows Pascal had no chances.
- airbreather 5y agoStudying electrical engineering starting 1985 our school used Pascal for first year and then ran with Modula 2 for subsequent years. In those days we were mostly on time share Vaxen, even as EE students only maybe 20% of students had any kind of PC or real computer at home. 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.
- sjg007 5y agoMy uni taught Modula2 until 1999 basically. To be fair though Java was about to replace it but python was around and could've been used.
- throw_m239339 5y ago100% Licensing, just like Smalltalk, Rebol, ADA, D at the beginning and countless other proprietary languages. Microsoft tech stack is the exception, but it's because Microsoft controls Windows the OS.
- pjmlp 5y agoSame thing on Apple and Google platforms, not only Microsoft. That is why learned to stick with platform vendor stacks instead of third party languages. As long as the platform remains relevant the languages will stick around, e.g. Objective-C and Android Java, they might be "deprecated" but removing them would just kill the whole platform.
- ncmncm 5y agoFor identical reasons, I learned to stick with portable, more or less standardized languages, and never get sucked into proprietary walled gardens. People trying to keep up on new "frameworks" released every two years are wasting their short lifetimes chasing phantoms.
- igouy 5y ago> Why did Pascal fade instead of growing? 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 https://www.swissdelphicenter.ch/en/niklauswirth.php https://www.swissdelphicenter.ch/en/niklauswirth.php
- igouy 5y agoFor example — " … the programming language Component Pascal which is a superset of the language Oberon-2 developed by Niklaus Wirth." https://blackboxframework.org/ https://blackboxframework.org/
- danielscrubs 5y agoI can tell you which ridiculous reason I chose to switch to C++ after I'd learnt C++: begin and end felt less "elite" than {}... I was 12 at the time, don't judge. 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.
- throwaway81523 5y agoPascal had problems that kept users from doing anything useful with it. Real-world implementations included bypasses for the problems, but then they weren't really implementing Pascal any more. Kernighan's famous article "Why Pascal Is Not My Favorite Programming Language" explains more: http://www.cs.virginia.edu/~evans/cs655/readings/bwk-on-pascal.html http://www.cs.virginia.edu/~evans/cs655/readings/bwk-on-pasc...
- kortex 5y agoWow, that is incredibly damning. Is it actually true that arrays of different lengths are different types, and there is no way to write generic array methods? And there's no way to cast byte arrays into structures? I almost can't believe it - a language without both features, and without any kind of escape hatche to me feels forever bound to be a toy language. But that would absolutely answer OP's question - it never took off cause IO is completely hamstrung. Programs need IO, and lots of it, with lots of flexibility, to do anything interesting. Edit: I said I was a bit incredulous of the claims. If true, those would be bad features.
- pjmlp 5y agoOnly if one only looks to the original Pascal language as means to sell their propaganda. All Pascal dialects, and the Extended Pascal standard that improved the original one, had the array of <type> construct that allows you to query for the actual bounds. Type conversations were also available, again in all dialects. Naturally, those variants were ignored, as Kernighan had a message to sell.
- kortex 5y agoThanks for clearing that up
- pjmlp 5y agoHere is Object Pascal for Mac OS, https://www.folklore.org/StoryView.py?project=Macintosh&story=3rd_Party_Developers_and_Macintosh_Development.txt https://www.folklore.org/StoryView.py?project=Macintosh&stor... http://preserve.mactech.com/articles/mactech/Vol.02/02.12/ObjectPascal/index.html http://preserve.mactech.com/articles/mactech/Vol.02/02.12/Ob...
- TomMasz 5y agoPascal was the teaching language in the early 80s. I had compilers available for the IBM 370 (VM/CMS), the VAX (VMS) and even cross-compilers for bare metal MC68000 and PDP/11. Early Macintosh development used Pascal (though it wouldn't run on the earliest Macs) It wasn't ideal for every use, and Prof. Wirth, an academic, basically left extending the language to the compiler vendors. 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.
- ncmncm 5y agoIt is a good thing you only teach Python if you are using expressions like "C/C++". I expect you would be teaching C++ as if it were C, skipping everything that makes it usable and useful as if they were "advanced topics".
- Koshkin 5y ago#define begin { There you have it.
- mrbonner 5y agoI learned programming in my teenage age with Pascal. Sometimes I wonder about this too: typed, compiled, no garbage col, pointer arithmetic. With TUrbo Pascal I have the entire IDE and a compiler in single floppy.
- mikewarot 5y agoThe leading implementation was by Borland, which addressed most of the limitations of the language, and provided a solid compiler and IDE in Turbo Pascal, then Delphi. 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.
- Gys 5y agoBorland also dabbled for a while with a Mac version and later with a Linux version. Both were never succesful but I expect they put a lot of resources in there. Edit: it is funny that Lazarus is cross platform, while Delphi still only runs on Windows (although it can compile to other platforms).
- AnimalMuppet 5y agoBefore that, there was a time when "most of the limitations of the language" had not been addressed. I had the misfortune to have to program in the language in that time, and it was painful. Part of the reason C took over the world and Pascal did not is that, in this time, C was much less annoying to use than Pascal. Borland fixed that, and brought Pascal to parity with C. (Maybe even ahead of C, because Pascal had better type checking.) But then (or soon after), there were a variety of C compilers. Once Borland raised their prices, some of them were less expensive than Turbo Pascal. (Once gnu came out, some of them were free.) Why was the original Pascal annoying to use? See Brian Kernighan's "Why Pascal Is Not My Favorite Programming Language". (Despite its reputation, it's not a hit piece. And, as someone who had to use the original, unextended Pascal, I can tell you that every word of it is true.) Pascal was written by a university guy trying to create a teaching language. And he succeeded - it was a very good teaching language. C was written by a couple of lab guys trying to write real programs, not classroom exercises. Their language was better at that than Pascal was.
- zozbot234 5y ago> A typed, compiled language easy to program. 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.
- DerekL 5y agoThey're called “Pascal” and “Ada”. Not all caps, because they aren't acronyms.
- guidoism 5y agoI wonder if the name changes (Pacsal -> Modula -> Oberon) did damage to people’s perception in the 80s and 90s. Maybe they thought it was in decline when in reality the name just changed?
- zozbot234 5y agoThere were other changes in Wirth's languages besides the name; they were not clean extensions. Wirth even went back and forth on support for a few basic language constructs, perhaps unsure whether to go for a 'truly minimalistic' feature set or something a bit more ergonomic.
- ncmncm 5y agoThey were all substantially different languages. Pascal itself did decline, and its user community splintered off to various niche languages AND to portable C. C ended up with the biggest user population, and here we are.
- sally1620 5y agoPascal didn't fail, it was replaced by C. Both Microsoft (with WinNT) and Apple (with NextStep) left Pascal behind in the 1990s in favor of C to compete with other Unixes of the time. At the end of 90s, the only steward of Pascal was Borland; and Borland failed, and Pascal was forgotten.
- Tozen 5y agoPascal didn't "fail", it became Object Pascal. That is Pascal with classes, like C++ (originally C with classes), which is adding OOP. 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).