<a href="https://castle-engine.io/why_pascal" rel="nofollow">https://castle-engine.io/why_pascal</a><p>I'm gonna have to put a damper on things, here. Most of the reasons listed are things available in any other modern language (safety, cross-platformness, libraries...) but one of the things cited is readability.<p>I work on Pascal code 8 hours a day, and it is not more readable then conventional C syntax ; I'd argue it's much less. The fact that you need to use entire words to denote syntax makes it much harder for your brain to parse things : Instead of immediately seeing "this is code structure" and "this is actual code", you need to actually <i>read</i> the words to make that distinction. It is very counter-productive and a bad design solution, imo.<p>I feel like this page was written 20 years ago. The reasons would have made quite a lot more sense back then, notably about the type safety.
Cannot remember the last time I used a programming language in the Pascal family. Our programming course we had to use Delphi. This was college back in 2001. I purchased a copy of Delphi 5 (my college has version 4) so likely tried things for a year or two afterwards. I doubt I touched Delphi after 2005.<p>In College we had to create a Stock Control program. It was an IT course so most people struggled as programming was not their direction. For me being a "prodigy programmer" had no issues jumping into Delphi.<p>If anything, knew little about Delphi. Once I started coding and realised I was typing var, begin, end, or := (etc) -- I knew it was some kind of Pascal. Going back to my earlier days in high school, I had a copy of Turbo C and Turbo Pascal so thats why I had a little head start.<p>I remember the difficult part was storing the stock data in a binary file, using binary search to find data, etc. My tutor was old-school so I wouldn't be suprised if Delphi had more 'out of the box' solutions which we take for granted in modern Go, C#, etc.<p>Everyone struggled to get their code to build. Brings back fond memories.<p>Today I place Pascal in the same Category as Basic. Seems like an interesting project but I just dont have interet using Pascal so would be a deal breaker for me.<p>I would not be surprised, however, if there is still a pretty large base of Pascal defenders out there. More power to them if the case.
After learning Basic at home, once I went to high school, Pascal was the first "serious" programming language I've learned.<p>But since I discovered C a year or two later, I never looked back to Pascal. C felt more "pro", more flexible and seemed closer to metal. Pascal seemed more appropriate for developing GUI apps, while C seemed able to tackle anything, from the most intricate guts of the operating system, to drivers, games and GUI apps. Of course, that was silly, because Pascal was able to do everything that C did, but to my younger self it seemed less "serious" and "pro".
How fancy, hopefully the project is successful - interesting language choice, always have put "Pascal" as an out-of-date language, but clearly I was wrong
I took a look at the code, since I was curious far a large Pascal codebase looked like. I haven’t seen a substantial amount of Pascal code since about 2001.<p>One thing I noticed was the file names, I can’t say I’m a fan of prefixing every single source file with “castle”, it makes it much harder to see what the file is about and makes them all look the same. I can’t comment on the actual code, since I’ve never written any Pascal. The engine looks cool though!
It's really a pity how badly the Delphi product was managed by Borland/Embarcadero.<p>Object Pascal is a great language. These days it produces native code for pretty much all platforms out there. The binaries created are tiny, and the speed is high - close to what C will give you - meaning that typically the code will run between 100 to 10000 times faster than comparable Python code.<p>When it comes to Castle Engine, it's a gigantic project, making it extremely easy to create games and 3D applications in a RAD kind of way. And unlike other huge Pascal frameworks, it's not a legacy product, but very actively developed. I have HUGE respect for the developers.<p>A comparable gigantic impressive project is Mormot, and ORM/SOA/MVC framework which is based on extremely optimized code.<p>Building a Server application with Object Pascal and Mormot is easy to do, and where using NodeJS might be able to handle 500 requests per second, with pascal code you will be in the areas of 10000+.<p>And this means that while with other languages you might need to run dozens of servers to handle the load, your Object Pascal based server code instead would easily run on a single server. So, using that language can give you massive cost savings.<p>A lot of people only remember Object Pascal as a teaching language. But the language has evolved, and still has features other languages are lacking, most importantly RTTI (aka reflection). There is only one area where the language isn't up to date, and that is having Multithreading/coroutines integrated into the language itself like it's done in Go.<p>And finally: I can still compile and run code I have written 40 (!) years ago. Within those 40 years tons of languages have come and gone out of fashion. Pascal is still here.<p>Back to Castle Engine: Even if you are not familiar with the Object Pascal language, I can highly recommend to try out their visual editor. It's just amazing.
Pascal (Turbo/Borland) was the most most fun I had programming back then. The "Unit" of compiliation just worked (and yes it allowed only DAG-like dependency hierarchies). It was super fast to compile and use, but also to edit/debug.<p>Then something got lost with Delphi, it's not that it was a bad product, but people started looking elsewhere...<p>I still cherish the day, as Pascal gave me the headstart to C/C++ from Apple Basic, but also allowed me to start using bit of inline assembly and learn it along the way...
I like pascal - learnt it in second year if tertiary and used off and on for a while. In my opinion as a bad developer and less-bad product manager FPC is the embodiment of duct-tape programming [1] is only that and c# in which I have seen that ethos in developers.<p>[1] <a href="https://www.joelonsoftware.com/2009/09/23/the-duct-tape-programmer/" rel="nofollow">https://www.joelonsoftware.com/2009/09/23/the-duct-tape-prog...</a>
Most comments in this thread reminds me of the discussion we had under a discussion about Fortran recently, here's the comment thread regarding Pascal <a href="https://news.ycombinator.com/item?id=38966342">https://news.ycombinator.com/item?id=38966342</a>
At the very bottom of things I expected to see this week, amazing. Worth playing with on sheer chutzpah, hats off to everyone involved.<p>I don’t know a thing about Pascal, though, why would anyone still be using it? Is it good?
And it is a proof than grotesquely complex c++ oo is more than useless for a 3D engine. Namespaces using the preprocessor should be enough, if you need more, you are the problem.
I'll have to try it, if only to honor Wirth.<p>And mostly to see if those fond memories of learning to code with Turbo Pascal survived the test of time...
Ok I’ve got a hacker challenge for the more creatively-inclined: if I wanted to stretch “cross platform” to web (and thus webVR?), how might I wrap/integrate/emulate/polyfill/whatever this?<p>EDIT: after a quick search the answer is a resounding “you can do it, but yikes.” Multiple people reference <i>custom compilers</i>, which I’m guessing are beyond my reach…<p><a href="https://news.ycombinator.com/item?id=12029566">https://news.ycombinator.com/item?id=12029566</a><p>EDIT 2: wow nvm it’s on their roadmap! Their “why pascal” page says it’s already supported, but i think thats more hopeful than contractual.<p><pre><code> Coming soon (roadmap):
Oculus (VR) (we have the hardware to test)
WebGL (FPC can compile to WebAssembly)
XBox (we have the hardware to test).
</code></pre>
(Love the casual “we own at least one xbox” humble brag. If the authors are reading this, that’s the only part that I find a tiny bit off putting — a tinge of overeagerness to persuade me / sell me.)<p><a href="https://castle-engine.io/features#_cross_platform" rel="nofollow">https://castle-engine.io/features#_cross_platform</a><p>Highly recommend the “Why pascal” page in general, the most interesting part of the project to a passerby like me:<p><a href="https://castle-engine.io/why_pascal" rel="nofollow">https://castle-engine.io/why_pascal</a>