Hacker News

Top stories

Live mirror
30 storiesupdated just nowView source snapshot
  1. DeepSeek Elastic Compute (DSec) (arxiv.org)
    21comments
  2. PipePipe: NewPipe hard fork implementing SponsorBlock (github.com/infinityloop1308)
    150comments
  3. Show HN: Reladraw – A diagram language where you decide where to place things (github.com/reladraw)
    31comments
  4. LA Metro has some of the slowest escalators on Earth (basin.la)
    21comments
  5. A searchable library of forgotten public-domain film clips from 1915 onward (movingimagearchive.com)
    18comments
  6. Welcome to the Medical Clinic at the Interplanetary Relay Station (lightspeedmagazine.com)
    3comments
  7. Drawgent: Coding agent on a live Excalidraw canvas (tangled.org)
    30comments
  8. Fifteen years later, the Apple Cards origin story (lexontech.org)
    76comments
  9. The Lost Atomic Update on Loongson CPU (jia.je)
    5comments
  10. Modern Object Pascal Introduction for Programmers (castle-engine.io)
    50comments
  11. We're gonna need a lot more mathematicians (terrytao.wordpress.com)
    455comments
  12. Japan moves to tighten rules for foreigners (aljazeera.com)
    121comments
  13. ASML says it sold 'absolutely nothing' in Europe in 2026 (tomshardware.com)
    323comments
  14. The Rise of Audio AR (dbreunig.com)
    5comments
  15. Analyzing Frontier Model Progress with My Favourite Game: Prince of Persia (blog.priyan.in)
    34comments
  16. Show HN: Ekselio – Loveable for finance workflows (local first) (gptbeyond.com)
    6comments
  17. Breaking Up with Google Play: Why Conversations Is Now Free (gultsch.de)
    236comments
  18. How to keep enjoying programming in a world of LLMs (haskell.org)
    183comments
  19. Plunging test scores are a slow-moving catastrophe (economist.com)
    288comments
  20. How I changed teaching after AI managed to do all my homework assignments (thelastsoftwareengineer.substack.com)
    99comments
  21. Reflections on 1,000 Days of Math (gmays.com)
    33comments
  22. The Murky History of Soviet-Born Tetris (mitpress.mit.edu)
    29comments
  23. OpenAI bots meddled with multiple US Government agency sites (bbc.com)
    133comments
  24. Floci: Locally emulating any cloud service (floci.io)
    29comments
  25. Automattic has a new board after failed attempt to put CEO on leave (techcrunch.com)
    128comments
  26. Probing picosecond depairing currents in type-II superconductors (nature.com)
    2comments
  27. Show HN: Jev Plays Pokémon Red (jev-pokemon.vercel.app)
    109comments
  28. Experiencing writing at our recent Chinese calligraphy workshop (viewsproject.wordpress.com)
    1comments
  29. 16GB iPod Nano 3G Upgrade (tuckerosman.com)
    22comments
  30. What even is an OS now? (sockpuppet.org)
    437comments

Modern Object Pascal Introduction for Programmers

132 pointsby 2d agocastle-engine.io
50 comments
2d agoHN ↗

I was introduced a very long time ago --- aka Delphi 2. I really like the language but there are mainly 2 problems that stand in the way of using it.

1) The code isn't as "optimized" as it could be.

2) The talent pool is limited --- chicken or egg issue.

It has been this way for a very long time so I don't see it changing.

8h agoHN ↗

As a different datapoint Pascal is still taught here in Romania in secondary school just as it was the case 20 years ago.

Bigger problem is that they teach the fundamentals with the abandonware that is turbo pascal instead of using something like the modern Free Pascal Compiler. Which means knowledge of what is possible outside curricula is limited.

Last year I almost was tasked with porting some Pascal codebase to a modern language. Problem was the project had a bus factor of 1, legacy overengineered and would only compile on windows with some proprietary compiler.

Maybe that company would use Claude/Codex or something like that, today, to port the project.

53m agoHN ↗

Bigger problem is that they teach the fundamentals with the abandonware that is turbo pascal instead of using something like the modern Free Pascal Compiler. Which means knowledge of what is possible outside curricula is limited.

FreePascal can compile TP programs with no changes except for the MS-DOS graphics. A student can swap FP for TP and the code will keep running. But yes, I would switch to FP from the start if I were in charge.

7h agoHN ↗

What do you mean by “not optimized enough“? Binaries created with Free Pascal Compiler are very small, compilation time is super fast and runtime performance was never an issue for the typical system/userland programs. I think in many ways on par or ahead of other mainstream system programming languages.

7h agoHN ↗

Additionally, it eventually shared the same backend with Borland C++, and nowadays C++ Builder.

Also Embarcadero has also adopted LLVM, while still having fast build times.

8h agoHN ↗

It's amazing how underestimated the Object Pascal language is. Certain people or rivals want to write it off or declare it's "dead", yet the language (including various dialects) are still going strong.

8h agoHN ↗

Yeah, it was pity that Borland lost its way, and Apple decided to refocus from Object Pascal into C++.

Otherwise it would still be a big contender.

Everything that Zig offers over C as selling point was already there in Object Pascal.

8h agoHN ↗

Comptime? Vastly superior toolchain? Trivial C interop? Sub-second incremental compilation in large projects? I'm not familiar with Object Pascal at all, so do correct me if I'm wrong, but I'd really be surprised if it has much of Zig's standout features.

8h agoHN ↗

Comptime is the only thing going for it.

Object Pascal compilers were already super fast in MS-DOS hardware!

7h agoHN ↗

Comptime? Vastly superior toolchain? Trivial C interop? Sub-second incremental compilation in large projects?

No comptime, but everything else, sure, Turbo Pascal (and then Delphi) had.

Maybe it'll blow your mind (not sure if you find this impressive or not), but Turbo Pascal had sub-second compilation per module on large modules back on my 486 with 4MB of RAM.

Sure, Zig has more features than Pascal, but not the ones you listed (except, of course, for comptime).

5h agoHN ↗

Sure. The rent does give you polish, however.

Also, for non-commercial use, Delphi is free.

5h agoHN ↗

Delphi would compile & link 2 MLOC of code on a crappy work laptop in 30 seconds to a minute. Incremental compiles were instant. So fast most developers never bothered learning the "go to next error" hotkey and just spammed F9 (compile & run) whenever they fixed a syntax error. It was that fast.

Trivial C interop - yes. Both pascal and cdecl style calling conventions.

Toolchain? Back then - yes. Today? Probably not; depends what you mean by it. It had perfect COM interop which mattered back then, and you could trivially link stuff if you wanted to. And people did.

3h agoHN ↗

Comptime here means not "compilation time", but rather ability to run some your code during compilation (i. e. compile-time metaprogramming). Pascal didn't had this.

3h agoHN ↗

They probably know that. I specifically mentioned actual compilation time as another one of the things that's great about Zig, so it is relevant to mention. Certainly the language sounds nice from what I'm hearing. These days most languages are deeply neglecting compilation time as a feature (interpreted languages aside), so Zig is a breath of fresh air for me in that regard.

1h agoHN ↗

Golang is also designed to compile very fast.

1h agoHN ↗

Yes, I do appreciate Go's existence as well.

3h agoHN ↗

Oh my gosh! Core memories unlocked:

most developers never bothered learning the "go to next error" hotkey and just spammed F9 (compile & run) whenever they fixed a syntax error

We didn't know we were privileged. I thought it was normal thing to have.

7h agoHN ↗

If I remember right, it was memory safe - something C/C++ has yet to achieve.

7h agoHN ↗

Even PL/I, JOVIAL, and NEWP on the decade predating C had it.

1h agoHN ↗

It was not. It just made any dynamic structures so painful that few programmers used them.

But it _did_ have range checks for array access.

1h agoHN ↗

It just made any dynamic structures so painful that few programmers used them

What's an example of the pain?

18m agoHN ↗

Awkward syntax for pointer access, for one thing.

7h agoHN ↗

I recall the turning point was when id used the Watcom compiler for DOOM. Watcom had the 32-bit flat model DOS extender and were starting to add the difficult optimizations. Turbo/Borland Pascal was built for compile and link speed, not even getting a real -O option until Delphi (except for turning off range and stack checking)

5h agoHN ↗

Apple decided to refocus from Object Pascal into C++

IIRC Apple went and made Objective-C(/C++) and then eventually Swift. Not sure if they actually embraced C++ all that much - did they really?

5h agoHN ↗

Completely off the charts.

I am talking about Apple after Jobs was kicked out.

You missed the part where NeXT licensed Objective-C from Stepstone, Apple bought NeXT as last survival action before bankruptcy, and OS X sprung out of NeXTSTEP.

7h agoHN ↗

IMO it is not entirely dead, but not really "alive" either. TIOBE even has Object Pascal mentioned right now in TOP 20. Now, TIOBE has tons of issues, but it also means that there exists some tangible interest.

Still, I don't feel many people want to use Object Pascal these days. If you have the choice between Python and Object Pascal, most people will undoubtedly use Python. It's just how it is right now, and I also don't see how that can change in favour of Object Pascal. Programming languages nowadays have so much more competition, and people are less tolerant of flaws. Strangely enough, people barely seem to work on these flaws; this is one of my pet peeve with ruby, the documentation should be much better but it is not. I no longer find that acceptable in 2026, with AI spam slop lowering the quality and google search being terrible and almost totally useless nowadays. You'd assume that a counter-move to this slop-degradation would be to massively improve documentation, but you still find core projects in ruby or at the least important add-ons, to have low-quality documentation. And barely anybody wants to improve on that either.

5h agoHN ↗

People hate the verbose syntax. It doesn't bother me, but I've been surprised how common that is described amongst people that don't care for Pascal.

Personally, in that family of languages I prefer Ada, but I gave up with programming and programming languages.

5h agoHN ↗

For me it's less the verbose syntax but more the weirdness and inconsistency of it. Like making a distinction between a procedure and a function, or returning data from a function by assigning it to a magical variable. It feels like a cobbled-together language rather than a properly designed one.

1h agoHN ↗

I wasn't able to find a definitive account of why they're separated in Ada, but I believe the idea is this: functions are for where code behaves in a roughly functionally pure way and yields a value that should not be discarded by the caller, whereas procs are for functionality with 'deep' side-effects.

The SPARK subset of Ada comes pretty close to enforcing purity of Ada functions, although it still permits them to read globals. [0]

It's not just an oversight. The core of the Ada language was designed deliberately. [1]

[0] https://learn.adacore.com/courses/intro-to-spark/chapters/01...

[1] https://en.wikipedia.org/wiki/Ada_(programming_language)#His...

8h agoHN ↗

I bought Delphi ages ago, but never got very far with it, which I regret.

I'd love to be able to take it up again, and this document looks very promising for that, esp. paired with:

https://wiki.freepascal.org/pas2js

which I now see is supported in Lazarus.

If someone has an example graphical project which compiles to an HTML page w/ JavaScript using the above, I'd love to see it and a detailed set of build instructions and notes on installing the needed toolchain and deployment. (as a note, I'm currently working in flet.dev using Python which allowed me to get a small prototype up-and-running, but I'm still looking into self-hosting and doing something more complex)

7h agoHN ↗

I think I last used Pascal, TurboPascal if I remember correctly, in school - perhaps at age 17 or something like that. I recall that we used to define some things from geometry, e. g. a triangle, calculating sides, angles, surface area and so forth, and then of some more objects from geometry.

I have not used Pascal since then but it was not the most terrible programming language of all times either. These days I would not know why I'd want to use it, compared to IMO better languages. Nonetheless I found it ok for teaching in school back then.

7h agoHN ↗

There's also a new book called Free Pascal From Square One released in 2025 that teaches programming and pascal

7h agoHN ↗

this is really neat to see and that it has support for any modern system. I don't know pascal and could be a fun way to learn it.

6h agoHN ↗

5.1. Remember to free the class instances

The class instances have to be manually freed, otherwise you get memory leaks.

manual memory management in 2026?

4h agoHN ↗

See the euphoria towards Zig, Jai, Odin,...

4h agoHN ↗

This takes me back, my first adventure in programming was as a 12 year old creating a Pong clone using Turbo Pascal on DOS. It came in handy later as a 20 year old when I was doing freelance as a Delphi dev. Amazing to see Pascal on HN.

2h agoHN ↗

At around the same age I learned a version/imitation of Object Pascal for scripting the PIRCH IRC client on windows 95. It was neet when a friends dad who was a professional programmer showed me the latest version of Delphi, which he was pretty excited about, and I could actually understand most of what he was showing me.

2h agoHN ↗

AI will do all our work now, but man at least I lived and wrote Pascal growing up.

2h agoHN ↗

Huwstube and Bg-Lazarus-en-CreatingaWeb-s8e are great youtube channels.

1h agoHN ↗

Perfect to implement your own haskell I guess :p

31m agoHN ↗

I was introduced to ucsd pascal on apple 2 but switched to Ada by the time turbo pascal came out. This intro is nice but I feel Ada is the way to go if one is into wirthian languages.

13m agoHN ↗

I loved writing Pascal and Modula-2 at the time, and using both for a while sure made me a better programmer. Pascal was an excellent educational tool, but for a decade had enormous business impact, too.

Most criticized things regarding Pascal e.g. https://www.cs.virginia.edu/~evans/cs655/readings/bwk-on-pas... were already fixed by extension or coukd be fixed easily.

Its slight verbosity - somewhere between C and COBOL - arguably was a pro rather than a con.

Today, Ada and Julia seem to be the langages alive that resemble Pascal the most.