Live coding

A few of us have been getting together every Saturday and Sunday for the last ten or so weeks and playing around with live coding in Delphi.

We did this mainly to show some live coding in Delphi of various techniques as well as how to do things like a REST server/client at scale but also to show off some things like TMS Web Core which is a relatively new way of producing web apps using Delphi as the coding language.

This has taken place on Craig Chapman’s ChapmanWorld youtube channel. If you subscribe and hit the bell icon you’ll be notified the next time one of us streams. If you’ve not seen any of Craig’s videos/podcasts before you should pop on over. Craig and I are friends going all the way back to the late 90’s early 2000s when we used to both live in the UK and would rock up at the excellent Delphi User Group meetings at the POSK center in Hammersmith. Times have changed a lot since then. Craig and I are both now living in the USA and married to American wives with American kids. I swear this is something neither he nor I would believe if we could time-travel back to those days in London and tell our 90s ourselves that this would happen!

Others on the videos include Frank Lauter from Germany, Andrea Magni from Italy and I think even Jim McKeeth from Embarcadero in the US also popped in at least once. I apologize if I’ve not name-dropped others (for example, Gus and “The other Ian” both turned up to play almost every week) – in total we’ve collectively streamed 14 FOUR HOUR long episodes of live coding in Delphi.

We’ve been coding a card game and it’s taken ages, but we’ve kind of got to the point where we’re all going to move on to streaming about some other subjects. I will stream and finish the TMS Web Core client part of the game since we’re nearly done with it and it wouldn’t be right to just walk away.

Here’s a link to the most recent session. I’ve made a few changes since we did it – for example I removed the models.gamedata unit and put the object it contained as a field on the datamodule. I also changed the “type” declarations to remove the repeated ‘type’ keyword as it broke Gus’ brain to see them done that way. In subsequent streams I will put in the rest of the API calls and make the game work. I might also change the inner core to use a proper controller/data model/view with full dependency injection just to make it clear how it can be done despite the slightly weird world of Javascript placing its boots all over our lovely Object Pascal language.

A couple of notes about what’s going on in the stream. I am using TMS Web Core 1.3 running in Delphi 10.3.3 for the code. There is actually a version 1.4 of TMS Web Core out but I didn’t want to swap to using that as it was only released in the previous week and it does do a few things differently – although it also uses a later version of the Pas2JS cross-compiler which would have been helpful. Also, if I had been writing the server side (Frank and Craig did most, if not all of that) I would have used TMS XData and then linked the web client to the data using that in a cross-platform kind of way. I might do that on a stream soon just to show how quick that would have been. 20/20 hindsight is a wonderful thing ?

Oh and sorry about the glitches with the audio in the first 20 minutes or so. Craig – who directs and hosts the stream – unwisely got some swanky new audio interface stuff and then found out he needed a PhD in audio engineering to actually use it in anger. Stick with it, it gets sorted out as time goes on.

Anyway, I hope you enjoy watching a bunch of Delphi appear before your very eyes on a live stream. We want to do more of this – Delphi is just TOO good at being the invisible driving force behind a lot of products and applications out in the real world and a bit of live streaming showing what Delphi can or can’t do I think can only be a good thing.

Leave a Reply

Your email address will not be published. Required fields are marked *