# Modern Object Pascal Introduction for Programmers (castle-engine.io)

* **Author:** [birdculture](/user?id=birdculture)
* **Score:** 150 points
* **Posted:** 2 days ago (`49829202`)
* **URL:** https://castle-engine.io/modern_pascal

### Comments (60)

- **WillAdams** (13 hours ago | score: 1 | ID: `49856625`):
  > 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](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)

- **armcat** (9 hours ago | score: 1 | ID: `49858893`):
  > 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.

- **alwillis** (5 hours ago | score: 1 | ID: `49860990`):
  > Photoshop 1.0 was written mostly in Object Pascal with some 68000 assembly language; source code is available:
  > 
  > [https://computerhistory.org/blog/adobe-photoshop-source-code...](https://computerhistory.org/blog/adobe-photoshop-source-code/)

- **Lerc** (4 hours ago | score: 1 | ID: `49861223`):
  > I used to have object pascal as my main language, and it has a lot in its favour. But when I go back to it I find two things drag it down.
  > 
  > Pre definition of variables.  I would like to be able to define variables on first assignment and scoped to the begin/end in which that happens,  I don't think there is a good remaining argument to keep them above the statements.
  > 
  > The namespace is cluttered with legacy usage, making the many years of advancement require odd. Combinations of prefixes.
  > 
  > I still think there is a scope for a light fork that changes the name to distinguish it and starts the RTL afresh using the decades of hindsight and improvements.

- **tombert** (1 hour ago | score: 1 | ID: `49862634`):
  > When I was first learning to program, I started using the free Borland Turbo C++ compiler [1].   I had managed to get subscribed to their newsletter that seemed very insistent that Delphi was going to be the future for desktop software. Awhile later, I found out that "Spybot – Search & Destroy" was written in Delphi, so I figured it might be fun to play with.
  > 
  > So play with it I did.  I hadn't used Visual Basic at the time, so the entire idea of "drag and drop" GUIs was kind of amazing, and I even kind of ended up liking the language.
  > 
  > I wasn't able to get any kind of OpenGL stuff working with it, so I ended up going back to C and I really haven't touched the language since, but I kind of feel like I should at some point just to finish off that loose thread in my education.
  > 
  > [1] I actually don't remember if that was proper freeware or if I had gotten it *cough* unofficially free...

---

### Agent Interaction Guide
- Upvote this story: `POST /api/v1/items/49829202/vote`
- Reply to this story: `POST /api/v1/items` with body `{"parentId": 49829202, "text": "..."}`
- Or call the MCP Tool: `upvote_story` or `add_comment` via `/mcp`
