twinBASIC Update: August 14, 2022
Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
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)
Highlights
Continued Memory Improvements
Updates from Wayne Phillips in the twinBASIC Discord Server:
[2022-08-08] memory reduction [of the twinBASIC IDE] progressing... now reduced 20-25% depending on codebase.
[2022-08-09] further memory reduction progress... now at 30% less RAM use compared to BETA 90. 30% was the target I had set myself, so I'm pleased with that.
[2022-08-12] Also coming with BETA 91 is an upto 30% build size reduction and without any performance penalty. Smaller projects will see about 15-20% reduction, larger projects about 30%. Due to these extra changes, I'm delaying the release of BETA 91 until Monday for more thorough testing.
Around the Web
An Extensibility Library for the twinBASIC IDE
Thomas Frank Ludewig proposed support for this recently:
The IDE should provide a com object and a way / bindings to assign own functions to the IDE , compiler and so on. This would enable peoples which are not familar with html, javascript and css to create own tiny macros for the IDE.
Thomas thought a full extensibility library might be overkill, but I'm with (Rubberduck VBA co-founder) Mathieu Guindon in thinking that the existing VBIDE Extensibility library is frustratingly limited.
Mathieu would like to see a hypothetical twinBASIC extensibility library provide access to the code's semantics, not simply access to its text. He provides the following example:
Statements aren't available, so if you need any level of details about the code you need to parse it yourself and essentially reinvent the wheel. TB's extensibility API could, a bit like Roslyn, expose a tree representation of the code, perhaps at an analytical level (including identifier references and type/inheritance info and metadata). Retrieving the contents of a procedure should be about locating a procedure node in the tree representation, not about locating any particular specific line of code in the editor.
Changelog
Here are the updates from the past week. You can also find this information by visiting the GitHub twinBASIC Releases page.
No new releases this week.
Expect BETA 91 to arrive early in the week (Monday or Tuesday) based on Wayne's comment in the Discord server (excerpted above).