Adam’s June 2020 Meeting Summary

Agenda

  • Gnostice Document Studio for Delphi – Girish Patil
  • Introduction to Go – A practical demo – Conrad Vermeulen
  • RAD Studio 10.4 – discussion about the product – led by Jason Chapman

Adam’s Summary

News

Dev Group Meeting June Notes

The group’s first Zoom meeting. I have to say I found the tech 100% better than previous on-line meetings. Seeing faces of other members was helpful, screen-shares were smooth and glitch-free. Slack integration felt less necessary as I had the window of Zoom-chat open, and could see comments right there.

The pre-session focused on issues relating to the 10.4 release, mostly grumbling. I have found 10.4 workable and better than XE8. There are still plenty of issues though!

Girish Patil spoke (I think live from India, which was a first!) on the subject of Gnostice Document Studio. (https://www.gnostice.com/XtremeDocumentStudio_Delphi.asp)

This Delphi third party component wraps up tools to display documents in Delphi applications. Documents can be saved in proprietory formats such as PDF, DOC, DOCX etc. The Gnostice products work with VCL and FMX applications and allow programmatic control of content.

Girish demo’d displaying a PDF and pumping in / sucking out data from user-entered fields.

Girish showed that Gnostice’s architecture is open allowing developers to extend and add to its capabilities extensively. The component set includes a Document Viewer, which is theoretically capable of displaying any document type, plus a set of “engines” which actually supply the data which the Viewer uses.

Code such as:

DocViewer.FormsDatabindings.AddFieldBinding(…);

allows direct binding between a dataset component and the document. Gnostice seems to focus on Delphi’s LiveBindings mechanisms for data management. I was not sensible enough to ask whether it could also manage old-school TDataset bindings.

Conrad Vermeulen then spoke about the Go language, and the Golang IDE. (https://www.jetbrains.com/go/)

Sessions which introduce a new language are always pretty seriously techie, and Contrad did not let us down with this one. The presentation was really clear and well ordered. I definitely feel I have a basic grasp the fundamentals of the Go language as a result of the sesson (Will Watts comments on the chat channel where also great fun).

So: Go is used to build Docker and Kubernetes, as well as other “micro-services” type programmes. It produces a “single exe” (pretty Delphi-like!)

It can be written using VSCode, which provides a cheap and reasonably easy way-in. It also allows automated package integration direct from GitHub.

Conrad also discussed the fully-on-line IDE: www.anaconda.com. Not sure I can get my head around the idea of an on-line IDE. Maybe I am getting old.

Go uses the term “Struct” where Delphi uses Type or Class. It uses func where Delphi might use function or procedure. Funcs are made public by capitalising their names, if lower case they are private, and there are no other forms of visibility.

The only logic structures in the language are IF, FOR and SWITCH (ie CASE). The language supports Tuples (ie functions that return multiple results). There are no Exceptions or exception handling, and no inheritance!

Conrad made a really good job of showing how Go programmers work around these seemingly insane language paradigms.

Conrad then built a web-server program using Go. Honestly, to me it felt very, very Webroker-y. I have been working with Webroker a bit recently, and much of what Conrad did with Go would transpose across to Webroker with very few changes. This is obviously not a criticism, but made me less sure that I immediately need to rush out and download Golang.

Jason then spoke about Delphi 10.4

In these information saturated times it was noticeable that most of what could be said had already been said.

David Capps and I have both had mixed experiences with it.

Firstly: There are a number of real improvements and it is probably better than it was, however we are both having problems with the reliability of the so-called “much improved” code-insight. Sometimes it works much better than in the past, then it just vanishes. David has had real problems with the Delphi IDE itself just disappearing right in the middle of some serious coding. He has also been disappointed with Embarcadero’s response to bug-complaints.

Will Watts demo’d a simple, unfixed bug in the refactoring sections of the product which has been around for years.

So overall, a bit of a mixed bag!