Posts

Showing posts with the label gui

Lessons Learnt: Porting an application from Go to Ada

Introduction This document describes some of my thoughts following the successful transition of a desktop terminal emulator program from Go and Gtk 2 to Ada and Gtk 3. The rewrite took place over a period of four months beginning in November 2021. Caveat I do not claim to be an expert in anything that follows. These days (2022) programming is a hobby for me and all the work described here was undertaken as a 'spare time' project. This is an 'opinion piece' - I am not going to back up every statement with references! Application Description My DASHER terminal emulators provide free, open source and modern emulations of the most commonly used types of terminal (D200 and D210) that were connected to Data General minicomputers of the 1970s through to the end of the century. Having both serial and telnet support, the emulators can be connected both to legacy hardware and modern emulations of that hardware. The first in this series of terminal emulators ...

Terminal Emulation - Fun with a Go GUI

Image
Part of my effort to maintain the Data General 32-bit minicomputer legacy has included writing free, open-source terminal emulators for the DASHER-series character terminals. I now have three such emulators: DasherQ - written in C++ and Qt - the original, maintained; DasherJ - written in Java and JavaFX - kinda deprecated; DasherG - written in Go using the Go-GTK GUI package - the latest incarnation. Although functionally very similar (all provide serial and telnet access, DASHER commands, and DASHER function key handling), each has its pros and cons. DasherQ relies on the Qt library, which is truly multi-platform and it runs just fine on Windows, Raspbian and many desktop Linuxes. The drawbacks (from my point of view) are code complexity and keeping up with changes in Qt - twice in the relatively short lifetime of DasherQ it has suffered bit-rot due to changes in Qt. As I delve deeper into Go I also find that I am less inclined to maintain C++ code. DasherJ was really...