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.
-
OpenAI just revealed what people really use ChatGPT for
News More than 70% of ChatGPT queries have nothing to do with work, but are personal questions or requests for help with writing.
-
Nearly 700,000 customers impacted after insider attack at US fintech firm
News FinWise, which provides loans on behalf of US financial services firms, revealed a former employee accessed sensitive customer information after leaving the firm.
-
UK government programmers trialed AI coding assistants from Microsoft, GitHub, and Google – here's what they found
News 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 flaws
News Experienced developers are far more confident in using AI-generated code
-
Hexaware partners with Replit to take secure 'vibe coding' to the enterprise
News 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 output
News 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.
-
Using an older version of Python? You’re leaving ‘money and performance on the table’ if you don’t upgrade – and missing out on big developer efficiency gains
News New research from JetBrains shows a majority of enterprises are using a version of Python that’s a year or more older – and it's having a big impact on efficiency and performance.
-
Developers say AI can code better than most humans – but there's a catch
News A new survey suggests AI coding tools are catching up on human capabilities
-
84% of software developers are now using AI, but nearly half 'don't trust' the technology over accuracy concerns
News AI coding tools are delivering benefits for developers, but they’re still worried about security and compliance