twinBASIC Update: August 14, 2022

Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.

twinBASIC Update: August 14, 2022

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:


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.

Releases · WaynePhillipsEA/twinbasic
Contribute to WaynePhillipsEA/twinbasic development by creating an account on GitHub.

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).

All original code samples by Mike Wolfe are licensed under CC BY 4.0