Programming with Python: Time to upgrade to fancy ANSI
Wordle inspires Dick to reinvent his 1980s ASCII toolkit for the 2020s, but this time he doubles down with ANSI
During the darkest days of lockdown I kept myself amused by practising jazz guitar chords and writing Python programs. I write a lot of small, off-the-cuff programs, for everything from updating phone codes or solving maths puzzles, to playing with simulations to do with Games Theory. Python is just the last of a long list of languages I’ve used – Basic, Forth, Pascal, Lisp and Ruby are a handful of others – but the one I remember with most affection is Turbo Pascal.
My programmes are so small and ad hoc that it’s never worth investing too much time writing graphical user interfaces (GUIs), so Windows was a nuisance rather than a liberation. Although I played with Visual Basic and Delphi for several years, eventually both metastasised into such baggy monsters that I dumped them. I wrote myself a little toolkit in Turbo Pascal 5 that created simple windows, menus and pick-box widgets from ASCII characters, quite good enough. I shared my code in Byte and am proud to say I saw it on screens in more than one science lab where they had similar minimalist requirements.
Now I use QPython 3.6 on Android, which has no native ability for colour or cursor control, just scrolling teletype output. There are plenty of add-on graphics libraries such as Kivy, all way more than I need, and there’s a simple interface to Android dialogues and media components called SL4A that I occasionally use but it’s still not what I had with Turbo.
The impulse to recreate my Turbo widgets was finally triggered by, of all things, Wordle. I enjoy playing Josh Wardle’s clever and elegant little puzzle (almost as much as I deplore posting screenshots on Facebook or bragging about stats). It’s just difficult enough to maintain an interest, but still simple enough to pose real questions over strategy, which is exactly what I love in a game. I never actually cheat but I do use tools that some purists might consider cheating, namely a mobile version of the Oxford Dictionary with wildcard search and an anagram solver; once I have three or four letters these will finish the job in a couple of minutes.
Getting those three of four letters soon enough is what my Python programme does, searching for effective first guesses using the known frequency distribution of letters in English at each position in a five-letter word: it outputs delightful combinations such as AUDIT SNORE CLAMP and CAMEO UNITS GRIND WHELK. I discovered that my old buddy David Tebbutt, one of the founding editors of Personal Computer World, is also fond of Wordle and it was he who sent me the letter frequencies list in a fine example of nerd-aid. He also has access to Wordle’s own internal word list, but in a fit of hubristic rectitude I decided that was a step too far for me.
My Python Wordle Helper program’s scrolling teletype interface became a real bore, and while looking up how to write a clear-screen command using OS calls I discovered how to issue ANSI codes from Python, and hence how to do a 256-colour character-based terminal better than Turbo’s. QPython can in theory access the Linux library, but that refuses to work for me and in any case is pretty horrible. I set to and have now written a widget set that does everything I want, enabling single lines of code to invoke a box, a window, pick list, input box, progress bar, table or bar chart.
I doubt that my new widgets will prove as popular with nerds in science labs as those Turbo originals were; those hark back to when IBM-compatible PCs running DOS were still ubiquitous in technical and process control contexts. I know that there are still far too many public institutions such as hospitals and libraries that retain such dinosaurs, but they will at least be running Windows XP.
Sign up today and you will receive a free copy of our Future Focus 2025 report - the leading guidance on AI, cybersecurity and other IT challenges as per 700+ senior executives
Of course, anyone under 70 is using a smartphone instead of a computer anyway, and an ANSI terminal on a smartphone screen is about as welcome as a turd on a sushi. So I’ll keep my little ANSI world to myself, going back and rewiring some of my old programmes using the new interface. My 5-Card Drawer and 5-Card Stud Poker games actually look rather splendid.
-
Dell 32 Plus S3225QS monitor reviewReviews A huge, good-looking 4K panel for sensible money -- but it's useless for lunchtime gaming
-
How AI can help rather than hinder knowledge workers in the legal professionSupported AI won’t replace lawyers — it empowers them. Free from routine tasks, legal pros can focus on strategy, judgment, and client success
-
Anthropic’s new Claude Code web portal aims to make AI coding even more accessibleNews Claude Code for web runs entirely in a user’s browser of choice rather than in a command-line interface and can be connected directly to chosen GitHub repositories.
-
The UK’s aging developer workforce needs a ‘steady pipeline’ of talent to meet future demand – but AI’s impact on entry-level jobs and changing skills requirements mean it could be fighting an uphill battleAnalysis With the average age of developers in the UK rising, concerns are growing about the flow of talent into the sector
-
AI coding really isn't living up to expectations – "the savings have been unremarkable" but not for the reason you might thinkNews Companies are focusing too heavily on simple AI coding tasks, and not overhauling wider business processes
-
UK government programmers trialed AI coding assistants from Microsoft, GitHub, and Google – here's what they foundNews Developers participating in a trial of AI coding tools from Google, Microsoft, and GitHub reported big time savings, with 58% saying they now couldn't work without them.
-
Senior developers are all in on vibe coding, but junior staff lack the experience to spot critical flawsNews Experienced developers are far more confident in using AI-generated code
-
Hexaware partners with Replit to take secure 'vibe coding' to the enterpriseNews The new collaboration enables business teams to create secure, production-grade applications without the need for traditional coding skills
-
Microsoft says AI is finally having a 'meaningful impact' on developer productivity – and 80% 'would be sad if they could no longer use it'News Researchers at Microsoft wanted to demystify how AI is being used by software developers – their findings show the benefits are finally becoming clear.
-
Google's new Jules coding agent is free to use for anyone – and it just got a big update to prevent bad code outputNews Jules came out of beta and launched publicly earlier this month, but it's already had a big update aimed at improving code quality and safety.