Adug Melbourne December Meeting, Monday 15th December 2025

The final meeting for the year :slight_smile:

This month, Grahame Grieve will be giving a presentation.
How to migrate away from Pascal. (I think)

This should be interesting, potentially a little controversial.

Having spent quite a bit of time fighting with VBA recently, I have come
to realize I do very much like Pascal (And Delphi in particular). Maybe just
that it is very familiar.

Pretty sure I should have spent a bit of time this year learning some
scripting languages, (Python in particular), and some AI :(
Perhaps this coming year.

There will be some foodโ€ฆ

I hope to see you there
Roger

Monday 15th December from 6:00 for a 6:15 start.
Melbourne Menโ€™s Shed.

Also on Zoom, links will be up here shortly before the meeting starts.

1 Like

https://us02web.zoom.us/j/81153431507?pwd=rT6riOPihAKfrsaooXrbfkwFrbLbfu.1

Sorry for the delay.

Mondays Meeting seemed to work out quite well.

We had a good turnout, and Grahame gave a very good presentation.
The topic was Using AI to move away from Pascal.

Grahame has talked and worked on getting a build system that can build
his code for all platforms (including web). On previous presentations, he told us how he had a Lazarus and FPC container build system implemented for him.

This worked ok, but would occasionally fail to build. (Perhaps due to having to use the leading edge Trunk versions of the compiler and Lazarus) The build system built fpc and lazarus as part of the build process.

He has come to the conclusion, that Javascript with AI is a better option.

He spoke of a system that needed to load lot!!! of data before it was usable, and in Pascal it took 25 Minutes to load enough to be usable, 45 minutes to be fully loaded.

This was redone in Javascript and took less than a minute to load, (but wasnโ€™t the same)

He likes Pascal, and doesnโ€™t know Javascript well.

He is using Claude (AI) to build his code

He made a simple demo program finding specific text in files in a directory in Delphi, that he got Claude to redo in Javascript. It was built as an Electron App.

He is being the architect, and breaking it down, so he can give Clause small enough pieces that it can build them quickly and correctly. If you give it too much, it will be slow and likely not good.
I also have this problem :frowning:

And then gets Claude to build a lot of Unit tests for the code.

Claude is ok at Delphi, but it is really really good at Javascript. And knows libraries and things it can use.

He splits the code into Glue code (which he cares little about and Claude can implement as it likes) and the Content/Business code (which he cares about a lot)

The question he asks before getting it to build any code:

โ€œDo you need anything more before you start writing the codeโ€
Very important

Then for unit tests.

Write me a set of test cases for the Folder Search Program (for our demo)

Claude gets to write many many test cases.

The UI is built by his instruction, not by trying to copy the Delphi/Lazarus form.

After the presentation, there was a bit of chatting and snacking.

Thank you, Grahame and all the attendees both in person and online.

See you all next Year. (Online only in January)

1 Like

Good summary! Note that my purpose wasnโ€™t to show a solution but rather noodle on the techniques that have made the impossible possible (though not yet easy)

1 Like

Iโ€™ll backup the experience with claude and delphi vs javascript - I can get ok results for delphi, but it fails miserably on large complex tasks with delphi.

However with Javascript the experience is completely difference. I think there are multiple reasons for this

  1. AI has just seen a lot more javacript when training their models. Probably a huge % more.

  2. The javascript eco system has just done a better job of onboarding developers. There is often a command line tool that will bootstrap an application, adding features to it. eg

npm create @tanstack/start@latest

C:\Users\vincent.OFFICE\test1>npm create @tanstack/start@latest
Need to install the following packages:
@tanstack/create-start@0.43.0
Ok to proceed? (y) y

> npx
> create-start

โ”Œ  Let's configure your TanStack Start application
โ”‚
โ—‡  What would you like to name your project?
โ”‚  delphi
โ”‚
โ—‡  Would you like to use Tailwind CSS?
โ”‚  Yes
โ”‚
โ—‡  Select toolchain
โ”‚  ESLint
โ”‚
โ—‡  Select deployment adapter
โ”‚  Nitro (agnostic)
โ”‚
โ—‡  Keyboard Shortcuts โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚                                                                     โ”‚
โ”‚  Use โ†‘/โ†“ to navigate โ€ข Space to select/deselect โ€ข Enter to confirm  โ”‚
โ”‚                                                                     โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
โ”‚
โ—‡  What add-ons would you like for your project?
โ”‚  Drizzle, Query
โ”‚
โ—†  Would you like any examples?
โ”‚  โ—ผ TanStack Chat (A chat example that uses TanStack Start and TanStack Store. Features chat with Anthropic Sonnet,
chat history and custom prompts.)
โ””

The net result, a working application with built in examples. Oh, and the IDE (vscode, or one of itโ€™s forks) just works

I donโ€™t know anything about Javascript โ€ฆ except I know some well-qualified do kinda have grimaces about it.

The stereotypical comment is about the lifetime and frequency of new โ€˜frameworksโ€™.

Is it really a particularly big issue?
Or is there plenty of โ€˜everyday driverโ€™ JS that will always be (pretty much) up-to-date and useable?

I used to be one of those - but typescript has taken care of most of my concerns (the footgun parts at least). Performance is rarely an issue - where it is, people tend to rewrite in in rust, go or zig - eg bun, alternative nodejs runtime and package manager, blazingly fast written in zig.

10 years ago I would have said yes, but itโ€™s less of problem now - the js web world has a few established frameworks (React, Vue, Svelte, Angular, NextJS) and a few others that have been around a long time and are still supported but not gotten the traction of the others, or are different takes on other frameworks e.g solidjs - a rework of React.

Backwards compatibility is an issue, because some framework authors are not afraid to evolve their frameworks, but itโ€™s not enough of an issue to put me off.

Two projects I am working on at the moment (our website redevelopment and a saas idea) are both using Tanstack Start (a full stack nextjs competitor) and bun (package manager and runtime), Tailwindcss , shadcn (component library) and postgresql - using VSCode with Claude Code - I have managed to get through a huge amount of work in the last few weeks, especially since Claude Opus 4.5. Both projects are deployed (not public yet) on a linux vm using dokploy (manages deployments on docker containers).

FWIW, I never even considered Delphi for wedev, because I do not want to deploy on Windows - and the delphi linux compiler is not in Pro (I donโ€™t want to pay for โ€˜Enterpriseโ€™ features I will never use) - and it does not perform well. But really, my main reason is that it is not the write tool for the job - it does not have a good front end story. With tanstack start, I am using the same language/library for frontend and backend development, and types are shared easily between them - itโ€™s really quite a productive way to write web applications.

2 Likes

Although I have run Compiler Explorer and Ollama-code on top of Node.js โ€ฆ I donโ€™t really know WHAT IT IS โ€ฆ

:sad_but_relieved_face: :skull:

Nodejs is a runtime environment that includes a javascript engine (v8 from chrome), some runtime apiโ€™s and an event loop. Itโ€™s used for hosting web applications, desktop (electron), command line tools (like npm). Even TMS Software uses it to deploy TMS WebCore as a desktop application.

This video is worth a watch - ostensibly itโ€™s about Vercel supporting Bun - but it explains the parts of nodejs and how Bun differs (internally at least, since itโ€™s compatible with nodejs).

1 Like