twinBASIC Update: November 26, 2024

Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.

twinBASIC Update: November 26, 2024

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:


Highlights

BETA Release Timeline Update

Over in Discord, Joe Philli asked the question that's been on everyone's mind for the past few weeks:

How's the release timeline looking?

To which Wayne responded:

On track for end of month

Discord Chat Summary

* Auto-generated via Claude-3.5-Sonnet-200k on poe.com

Here's a summary of the past week's twinBASIC development discussions and updates:

The past week saw significant activity around twinBASIC's development, including discussions about COM interoperability, pointer handling, and some exciting presentations at industry events. A major release is confirmed to be on track for the end of the month.

Key Points:

  • The UK Access User Group (UKAUG) conference featured a presentation by Mike Wolfe about twinBASIC, where the concept of "tBA" (presumably twinBASIC for Access) generated significant interest among attendees and even caught the attention of Microsoft Access team members.

  • Detailed technical discussions occurred around pointer handling and COM interoperability, with developers working to find the right balance between C-style flexibility and VB's safety-first approach. The team is considering extending LSet to support basic types while maintaining existing behavior.

  • Type hints in twinBASIC continue to evolve, with discussions about supporting them in UDT members. Currently, developers can use inline comments to document intended type hints for future implementation:

Public Type EXPLICIT_ACCESS_A
    /* [ TypeHint(INHERIT_FLAGS, ACE_FLAGS) ] */ grfInheritance As ACE_FLAGS
End Type
  • Binary compatibility with VB6 components is being explored, with developers discussing the requirements for maintaining COM interface compatibility, including proper handling of DispIDs and type definitions.

  • Wayne Phillips confirmed that twinBASIC's next major release is on track for the end of November, generating excitement in the community.

This week's discussions highlight twinBASIC's continued evolution as a modern development platform while maintaining compatibility with legacy VB6 and VBA code. The presentation at UKAUG and discussions around "tBA" suggest exciting possibilities for twinBASIC's role in the Microsoft Office ecosystem. The upcoming release promises to bring more improvements and capabilities to the language.

Around the Web

UK Access User Group Conference Recap

If you've been reading my shameless self-promotions over the past few weeks, you already know that I presented the twinBASIC project to the UK Access User Group in Oxford, UK, last week.

What's more, timbald live-streamed portions of the presentation to the Discord chat server, including this live "action" shot:

Photo courtesy of timbald via Discord. (NOTE: The picture is intentionally angled to fit the screen and me into a single shot.)

Here's a portion of Tim's feedback from the conference:

.@WaynePhillipsEA We missed you! We did joke, in the pub after, that @nolongerset came all the way from the States to present on tB and you were only a couple hours away!

But Mike did you and the project proud. Around 40 there and a good number who either hasn't heard about tB or only in passing, so it wasn't just preaching to the converted. Not surprisingly, many were interested in the proof of concept of "tBA" .

Probably the best bit was the Q and A later on. The last session of the day was a live presentation from the MS Access development team in Redmond, talking about new features and near term road map for Access. Then the Q and A. Someone mentioned about how, in the dim distant past, serious users of Access had more, ahem, access to the Dev team to feed in ideas, no matter how whacky, to help shape the future of the product.

So I piped up and asked this question of the MS Access dev team:
"In 2021, @nolongerset made a bold, some might say, whacky prediction that in 2025 VBA would be replaced by tBA in the MS office product line. 3 years later and that doesn't look anywhere near as whacky an idea. Whilst I don't expect any formal answer, what are each of your personal opinions on tB and it's potential future role as a replacement for VBA?"

Only one replied, and it was intriguing he had only heard about tB and not really looked into it, and he went off on the Office Script and Python avenues that Excel is offering now. But at least I was able to reinforce the idea direct to the team there.

The slides and other resources related to my presentation are available on the following page:

UKAUG 2024: twinBASIC: Past, Present, and Future
Links and resources from my talk today at the UK Access User Group 2024 Autumn Conference at the historic University of Oxford.

Creating .cab files with x64 compact

Over on VBForums, user HackerVlad wrote a utility to package CAB archive files.

The CAB Archive packaging module-VBForums
I suggested that you write code to packing CAB files. It was very difficult, but I wrote such a module anyway. You just need to understand that in order for the module to work in full, you need to use TwinBasic or you need to connect the CDeclFix add-on from The Trick. Option Explicit ‘//////////////////////////////////////////// ‘// The CAB Archive packaging module // ‘// Copyright (c) 21.11.2024 by HackerVlad // ‘// e-mail: vladislavpeshkov@yandex.ru // ’// Version 1.2

fafalone extended the utility for 64-bit compatibility, as he announced in Discord:

VBForums user HackerVlad made an interesting project showing how to use all the low level CAB APIs and their crazy callbacks, which is a pain in VB6 since the callbacks have to be CDecl and therefore requiring The trick's VBCDeclFix addin. A perfect reason to use twinBASIC, which HackerVlad did! But it was still 32bit only, and I could not abide that, so I updated it to be 64bit compatible too

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 releases this week.

UPDATE [2024-11-30]: Fixed broken link to VBForums (thanks, HackerVlad!).

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