twinBASIC Update: February 10, 2026
On April 23, 2021, I helped Wayne Phillips introduce the world to twinBASIC at the Access DevCon Vienna conference. I boldly predicted that twinBASIC (along with the Monaco editor) would replace VBA and its outdated development environment by 2025. With that goal in mind, this weekly update is my attempt to keep the project fresh in the minds of the VBA development community.
Every Sunday Monday week, I will be providing updates on the status of the project, linking to new articles discussing twinBASIC, and generally trying to increase engagement with the project. If you come across items that should be included here, please leave a comment below.
Here are some links to get involved with the project:
- Custom twinBASIC IDE Installation Guide
- twinBASIC Discord Server (chat about the project)
- twinBASIC Wiki (list of new features not in VBx)
- GitHub Issue Tracker (report bugs)
- twinBASIC/VBx LinkedIn Group
Highlights
Native tB Image Handling For The Win!
Over in Discord, yereverluvinunclebert did some anecdotal performance benchmarking of VB6 image handling hacks vs. native twinBASIC image handling.
Just doing some regular testing: This old hoary program of mine runs 4 x slower on TwinBasic than VB6. I know why this is.
The one on the left is the TB version. Some GDI+ functionality not working, some icons being shown the incorrect size and generally intolerably slow. It is using LaVolpe's StdPictureEx classes to read differing types of image.
So the data comprising each and every image has to be read, parsed and rendered onto a picbox. And there can be 115 PNG, GIF, ICO, TIFF images being read at any time. So all that computing really slows it down. It will be a good test for TB's optimised form later on.
I know how to speed it up, I need to remove ALL calls to LaVolpe's code and replace it with native TB image handling capability. All that overhead will be removed. All the GDI+ stuff (blue overlay) will work, I am certain of that.
I will create a TwinBasic version, or rather add some conditional compiler statements to bypass that old code, it should speed it up immeasurably.
...
--== 14 hours later... ==--
...
I swapped out all of LaVolpe's image parsing code for the in-built image support that TwinBasic [has] and the program now flies!
By the way, if you're not on the twinBASIC Discord server, it's worth signing up if only to gaze at yereverluvinunclebert's incredible steampunk visual designs.
Discord Chat Summary
* Auto-generated via Claude-Sonnet-4.5
Overview
This week's discussions centered on practical development challenges, with significant focus on property introspection, HTTP request handling, and performance optimization. The community demonstrated strong collaborative problem-solving, particularly around encryption best practices and image handling performance. Wayne provided key clarifications on twinBASIC's current state and future direction, while several members contributed sophisticated solutions for runtime type inspection.
Language Features & Introspection
- Community members discussed the need for property introspection capabilities, with yereverluvinunclebert seeking a
HasPropertymethod to avoid error trapping when checking control properties - waynephillipsea revealed that twinBASIC's
ControlTypeproperty provides a cleaner solution for control type checking, eliminating the need for lengthyTypeOfchains - okas_o developed a comprehensive property introspection solution using
IDispatchandITypeInfo, complete with caching for performance, demonstrating twinBASIC's ability to support advanced COM introspection patterns - deletedewd contributed a refined implementation using WinDevLib's unrestricted
IDispatchinterface, highlighting proper memory management withReleaseTypeAttrandReleaseFuncDesc - Discussion revealed that
Friendproperties currently appear in type information similar toPublicproperties, with waynephillipsea noting this is a temporary implementation detail
HTTP & Networking
- woeoio2 released multiple updates to the tbman HTTP client package (v1.0.27-1.0.28), adding file upload/download capabilities, redirect handling, and improved status code checking (now properly handles 2xx/3xx responses)
- gremlin_ger received community assistance with CURL-to-HTTP translation, initially struggling with JSON quotation marks in POST requests
- wqweto suggested simplified JSON path syntax (
$.consignee.address.city) over nestedWithblocks to reduce code ceremony by 200% - The tbman package now includes comprehensive documentation with 11 guides covering various HTTP client scenarios
Security & Cryptography
- wqweto provided authoritative guidance on encryption modes, strongly recommending against ECB and legacy CBC/CFB modes, advocating for GCM, CCM, or OCB modes for AEAD (Authenticated Encryption with Associated Data)
- deletedewd highlighted the
Security.Cryptography.CoreWinRT namespace as containing comprehensive cryptographic algorithms accessible from twinBASIC - Discussion of Notepad++ supply chain exploit emphasized the growing importance of supply chain security, now in OWASP's top ten vulnerabilities
Performance & Optimization
- yereverluvinunclebert reported a 4x performance penalty when using LaVolpe's StdPictureEx classes for image parsing in twinBASIC compared to VB6, affecting programs displaying 115+ images
- After replacing LaVolpe's image parsing with twinBASIC's native image support, performance improved dramatically with the program now running smoothly
- This demonstrates the importance of leveraging twinBASIC's built-in capabilities rather than legacy VB6 workarounds for optimal performance
Project Status & Community Sentiment
- yereverluvinunclebert expressed concerns about the growing GitHub issue count and suggested v1.0 might represent a transition to beta rather than a fully mature release
- waynephillipsea firmly pushed back on characterizing twinBASIC as "alpha," noting it can already build large real-world projects like PhotoDemon without modification
- Community members acknowledged the need to manage expectations while recognizing the impressive progress already achieved
- yereverluvinunclebert encouraged all contributors to regularly test and close their own resolved GitHub issues to help reduce the apparent backlog
Conclusion
The week showcased twinBASIC's growing maturity through practical problem-solving and performance improvements. The community demonstrated sophisticated understanding of COM introspection, modern cryptography practices, and optimization strategies. While discussions around v1.0 readiness revealed differing perspectives on project maturity, the consensus reflects confidence in twinBASIC's current capabilities for real-world applications. The collaborative development of solutions like property introspection helpers and HTTP client improvements continues to expand the ecosystem's practical utility.
Changelog
Here are the updates from the past week. You can also find this information by visiting the GitHub twinBASIC Releases page.
WARNING: The following issues are present in each of the releases below:
- IMPORTANT: This is a BETA release under active development. It is not recommended for production use.
BETA 973
- fixed: PE compression feature flags are now effectively disabled when the PE entry point is overridden [ fafalone, discord ]