twinBASIC Update: December 11, 2022
Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
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, 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, tweet me @NoLongerSet or email me at mike at nolongerset dot com.
Here are some links to get involved with the project:
- Custom twinBASIC IDE Installation Guide (NOTE: the twinBASIC VSCode extension is under a feature freeze until 2023)
- GitHub Issue Tracker (report bugs)
- twinBASIC Discord Server (chat about the project)
- twinBASIC/VBx LinkedIn Group
Highlights
Version 1 Release Date Announced!!!
The tentative release date for v1 of twinBASIC is 9 April 2023.
That is two years to the day since twinBASIC made its initial debut. As far as I can tell, the Version 1 release will deliver on the promise of 100% backwards compatibility with VB6. To call such an accomplishment a tour de force is still a monumental understatement.
When Wayne first announced this project almost two years ago, I thought he would be lucky to achieve 100% backwards compatibility at all, and I thought a realistic timeline was more like four years.
There's still more work to go to achieve 100% backwards compatibility, but it no longer feels like a question of IF that will happen, but WHEN. And even the question of WHEN seems to be answered now, too:
April 9, 2023
twinBASIC Roadmap Updated
On December 5, 2022, Wayne updated the twinBASIC 12-month roadmap.
Here are a few highlights:
- VERSION 1 (tentative) RELEASE DATE: 9 April 2023 (as noted above)
- Goal is to finish all UI components (UserControl/ActiveX support) by end of 2022
- In Q1 2023, achieve 100% VBx compatibility (provide missing App object methods) and LLVM-optimized compilations
- Multi-threading and vbWatchdog support in Q2 2023
- Eventual cross-platform support for Linux, Mac, and Android
- 64-bit twinBASIC apps with 32-bit ActiveX controls (seriously!!!)
A Quiet Week Otherwise
I didn't see any major new features with twinBASIC itself this week.
There were several bug fixes (see Changelog below for details). Aside from that, we got a brief look behind the scenes at Wayne's upcoming priorities over the next few weeks, which matches with the roadmap updates listed above:
[dmrvb]: Is it a lot of effort to get the SStab control fully working? Last time I looked I noted that RADBasic had decided not to implement this control.
[Wayne Phillips]: It will come together in the next couple of weeks as there is a lot of ongoing work for ActiveX controls
Around the Web
UserControl Implementation Progress
From Wayne Phillips in Discord:
Thought I'd just check how many errors we're down to for loading PhotoDemon which makes extensive use of UserControls. Using tB BETA 145 from 2 months ago, tB opens it with 8152 compilation errors. In the next release, it opens with 55 errors... mostly from the missing Printers collection. We're getting closer folks!
Changelog
Here are the updates from the past week. You can also find this information by visiting the GitHub twinBASIC Releases page.
BETA 199
- fixed: auto generated event implementations will now include datatype qualifiers, such as "MSComctlLib.DataObject"
- fixed: default designer events for ActiveX controls should now match VBx [ sokinkeso, discord ]
- fixed: (regression) changing tab of SSTab control crashes in form designer causes crash [ https://github.com//issues/1402 ]
- improved: ProgressBar.Scrolling/SmoothReverse/Orientation are now changeable at runtime (not ReadOnly) [ fafalone, discord ]
- fixed: Name-As syntax not working when the source path argument was wrapped in parenthesis [ https://github.com//issues/1391 ]
- fixed: 'Conditional Compilation Arguments' and 'Command Line Arguments' project proproperties now import from VBP [ wqweto, discord ]
- improved: IDE now uses APPDATA\Local folder for WebView2 UserDataFolder storage
- improved: added an 'ADMIN' indicator to the IDE toolbar when the IDE is running elevated
- improved: form designer grid dot rendering is now more accurate [ wqweto, discord ]
BETA 200
- fixed: Implements-Via not working correctly with dispinterface based controls (e.g. CodeJock) [ DavidFerguson, discord ]
- fixed: (regression) missing tB icon in the taskbar for the IDE
BETA 201
- improved: ActiveX control properties that use StdPicture now show correctly in the form designer property sheet
- improved: ActiveX control properties that use StdFont now show correctly in the form designer property sheet
- improved: more accurate IDE squiggles when Line/Circle/PSet/Scale is used but not supported [ wqweto, discord ]
- fixed: ActiveX hidden properties no longer show in the form designer property sheet [ Krool, discord ]