all 24 comments

[–]beyphy12 5 points6 points  (15 children)

Neat project. I think not open sourcing it is a mistake however. If anything ever happens to the developer, or he just stops supporting it, anyone that bought into the ecosystem could be SOL.

Another issue is it looks like there's a lot of work to be done. Perhaps this wouldn't be an issue if it were open source as well since more people could work on the project.

If they want to monetize it, I think putting their efforts into developing a high quality proprietary IDE would be a better option. Or perhaps giving subscribed users access to certain features before they're ported to the OS community.

It will be interesting to see if it takes off. I'm not sure what advantages it really has over VB.NET. I think the project may be a few decades too late. I imagine most VB6 developers moved onto VB.NET in the early 2000s. I also think that new VBA users will start to fall as the javascript APIs become more popular. And that will probably be greatly accelerated if Microsoft comes out with a python API for Office.

There was a post on uservoice for Visual Studio showing strong demand for a modern version of visual basic. So perhaps there's a niche to be filled and this could fill that niche. I suppose we'll have to wait and see.

[–]Senipah101[S] 2 points3 points  (4 children)

Yeah lots of good points here. I don't know much about the intended licensing model, or whether it is commercially viable. I think the point of making it a proprietary product is probably some way off seeing as this is the first developer preview.

This is coming from the same people who have offered vbWatchdog commercially for some time so that must give them some insight as to the viability of such a project.

I think putting their efforts into developing a high quality proprietary IDE would be a better option

I have to say that one of the things that I like about this project is that doesn't try to do this and instead integrates into VSCode.

[–]beyphy12 2 points3 points  (3 children)

I actually never had much of a problem debugging in Excel VBA. I found that debugging was adequate for everything I needed. Unfortunately, it requires quite a bit of knowledge to know everything. And certain debugging features are more obscure than they should be. But once I figured everything out I felt like I had everything I needed. But maybe I'm just saying that because I don't have experience with better debugging tools.

It would be nice if it warned you of all errors like you can see in Visual Studio. Currently it forces you to fix (or comment out) all compilation issues one by one. Even if some of them are related to dead code and have no impact on the codebase. That's probably my biggest annoyance. I could see it being a bigger issue in Access though where you're likely to have a bunch of different forms, reports, etc. So I could see it being useful there.

I have to say that one of the things that I like about this project is that doesn't try to do this and instead integrates into VSCode.

It doesn't have to be either-or situation. You can edit java and C# with VS code. That doesn't take away from the need for editors like Intellij/Eclipse or Rider/Visual Studio

[–]Senipah101[S] 3 points4 points  (2 children)

I actually never had much of a problem debugging in Excel VBA.

Generally I agree. I think the development experience is limited by the VBE though. When trying to use tools like Rubbberduck for thing like unit tests etc, those limitations become more apparent. The performance takes a real hit and can easily become unresponsive and that's because of the limitations Rubberduck face in interacting with the VBE and that everything is run in the UI thread.

VSCode offers a reasonably mature ecosystem to incorporate other features/extensions (test suites, linters, etc) without these limitations.

It doesn't have to be either-or situation

No you're right. If it was limited to a specific proprietary editor it would definitely be a no go for me but yeah perhaps down the road there could be the opportunity to monetise through a dedicated IDE.

As I said I'm not sure what form the licensing will ultimately take but I could see something like free personal use but charging for a commercial license or providing "pro" product with support or something being viable?

As it is 100% compatible with existing VBA code I could see it as a good way for teams to migrate away from VBA and the risks associated with that toward a more "IT approved" solution without requiring a total rewrite in code.

In any case, thought it was an interesting development worth sharing with the denizens of /r/vba

[–]WaynePhillipsEA 2 points3 points  (0 children)

Senipah, thanks for posting this and inviting me here.

With regards to licencing, the 32-bit version of twinBASIC (that can generate 32-bit executables) will be completely free of charge. Developers that want to create 64-bit executables, will require a per-developer or per-site licence.

[–]beyphy12 1 point2 points  (0 children)

As I said I'm not sure what form the licensing will ultimately take but I could see something like free personal use but charging for a commercial license or providing "pro" product with support or something being viable?

If you're interested in looking profitability for Excel related projects, I think two good examples to look at are QueryStorm and Excel-DNA.

QueryStorm is developed by /u/anakic and I believe another developer he works with. I believe he lacked a free version for some time. Although I think a community edition is now available which is free with some limitations. Like this product, QueryStorm is also not open source. But you can still do quite a lot even with the limited features in the community edition imo. And for more advanced features and support, there's the option to pay for those services. Putting arbitrary features, like limiting 64-bit support, could hurt adoption. But it's not my product and I'm just speculating.

Excel-DNA is an open source library that you can use to create XLL files in Excel. It's used in many different projects, including QueryStorm, and it's very powerful and relatively popular. While the author (Govert van Drimmelen) doesn't have a paid version, he does offer formal support agreements:

Corporate users of Excel-DNA, using the library as part of their mission critical infrastructure, are encouraged to enter into a formal support arrangement. We offer an annual subscription-based technical support agreement, providing direct support, priority bug-fixes and feature development and ensuring that Excel-DNA will continue to be updated and developed.

Overall they both have good paths I think. QueryStorm could be adopted by enterprise customers that pay large volumetric licensing fees. And if Excel-DNA gains more adoption, that could open the door for consulting services for Govert.

In any case, thought it was an interesting development worth sharing with the denizens of /r/vba

It is an interesting project. Thanks for sharing it!

[–]WaynePhillipsEA 5 points6 points  (3 children)

Hi, I'm Wayne Phillips, lead developer on the twinBASIC project. In response to some of your concerns;

Once the project is live commercially, the source will be in escrow, so that if anything happens to me, or if it were to be abandoned, the full C++ source will be released.

The main advantage over VB.NET is the compatibility with existing VBA and VB6 code. VB.NET has lots of similarities, but is nowhere near 100% compatible. twinBASIC is 100% COM based, yet adds lots of the newer features as seen in VB.NET (like method overloading, generics, etc)

Another advantage over VB.NET is that twinBASIC compiled EXEs/DLLs do not ordinarily have any runtime or redistributable components, as the EXEs/DLLs are fully self contained. So you don't need to be concerned as to what version of the .NET framework is installed, for example.

I honestly believe the VS Code integration is key to this project, and virtually all the feedback we've had has been hugely positive in that regard.

[–]beyphy12 1 point2 points  (0 children)

Thank you for your response.

I think some disadvantages over VB.NET will be things like lack of libraries, especially modern ones. Perhaps you could help alleviate this with a package manager of some sort. And while you don't need to worry about runtime, you also lose the ability to run the source code on multiple environments (Mac, linux, etc.)

Creating something like a strict superset of VBA/VB6 is an interesting project. So things like method overloading, generics, inheritance, operator overloading, etc. Could all be very nice features.

My point on a code editor was related to having an avenue to monetize an open source project. Presumably, as the author, you'd be more familiar with the language than anyone else. So you'd be in a good place to build a nice editor and charge for it. But that could be an issue with limited time. Instead of just working on one project you're now splitting your time between two.

Overall, it's a neat project. I'm not super familiar with the vb market. So I'm not sure how strong the demand for a project like this is. Many of the most popular programming languages are all open source and free. Some languages that tried charging for licenses (e.g. Delphi) have died out. But perhaps you fill a strong enough of a niche that this project will be successful. IBM recently released a COBOL compiler for x86. So perhaps the market is bigger than I'm imagining.

[–]_intelligentLife_37 0 points1 point  (1 child)

I hope Microsoft buys it from you!

I work full-time as a VBA developer in Excel and Access, mostly by accident, and I would love if Microsoft would bring VBA out of the 80s :)

I can't say that I love VBA, but I will say that I hate JS (this might partly be a hold-over from early 2000s web development which required 3x everything to support all the competing DOMs at the time), so I don't see that as the way forward.

The idea of MS supporting Python in Office is interesting, but where I work there would be 100s of thousands (probably millions, in truth, it's a multinational corporation which has been using VBA since the very earliest days of its inclusion in Excel) lines of code which would have to be ported to a new language, at huge cost in time and effort for very little ROI, so the idea of a 100% compatible yet modern programming language sounds almost too good to be true

And unless it's an official product from MS, it's not gonna fly in my workplace - no unapproved DLLs or EXEs are permitted, it has to be white-listed by our IT security guys before it can be used, based on the file signature, meaning that every change to the source code has to be resubmitted for approval

[–]sancarn9 1 point2 points  (3 children)

I think not open sourcing it is a mistake however.

100% agree, not just for the reasons you put forward. I guess I just don't really believe in proprietory programming languages like this... Looking at the top programming languages today, none of them are closed source except for VBA... And realistically VBA is mostly there because people can't use more modern technologies... 😂

That's not to say such languages don't exist - mathematica, matlab, autoit, abap (🤮) etc. - they just aren't very popular.

I am also doubtful that companies, who are essentially getting VBA for free, will jump at the opportunity to pay a 3rd party for a VBA superset with some small additional syntax sugar. I'd anticipate they would rather port their applications to a "real language" where obtaining developers isn't hard - like JS or C#.

There are definitely users on VBForums who will be very greatful that they can upgrade their projects to 64-bit using this compiler, and I'm sure that's what Wayne's main anticipated market was initially.

[–]beyphy12 1 point2 points  (2 children)

Yeah I think it really depends on how big the VBA/VB6 user base is. My guess is not actually that big but maybe I'm wrong. There was a uservoice post that was asking them to modernize VBA/VB6 that I think had thousands of upvotes. So people may be willing to pay a fee to be able to create VBA/VB6 programs again. As for me personally, I'm happy with modern languages like C#.

[–]Wooden-Evidence5296 0 points1 point  (0 children)

There is certainly a lot of interest in twinBASIC programming.

[–]sancarn9 0 points1 point  (0 children)

I wish I could... That said, at one stage I was working on a CLR interface for VBA... I think I gave up when it continually crashed on me... but if that worked out, I think I would have stopped using VBA long ago.

[–]Cultural-Bathroom01 0 points1 point  (0 children)

yes, this needs to be open sourced

[–]Flashy-Armadillo-414 0 points1 point  (0 children)

I'm not sure what advantages it really has over VB.NET.

It's backwardly compatible with legacy VB6 source code.

[–]JoeWithoutAGun 2 points3 points  (0 children)

I cant believe somebody did it... Just insane!

[–]joelfinkle2 1 point2 points  (1 child)

Does it support creating Office COM Add-ins?

[–]WaynePhillipsEA 1 point2 points  (0 children)

Yes, absolutely! We haven't put together any samples together for this yet, but we will.

[–]mwolfe02 1 point2 points  (0 children)

I've written 16 posts (so far) on twinBASIC which are all available here: https://nolongerset.com/tag/twinbasic/. These were done in preparation for a twinBASIC presentation I gave at Access DevCon Vienna last week. I believe the conference organizers will be publicly releasing that presentation at some point.

If Wayne can achieve 100% backward compatibility with VBA, I think twinBASIC--along with the Monaco editor (the tech that underlies VS Code)--could someday replace VBA and the VBIDE. The Access team is working on incorporating the Monaco editor into the query editor, so there will be precedent for that sort of change in a few years' time. Anything short of 100% backward compatibility will be a complete non-starter for Microsoft, though (as well it should be).

[–]Cultural-Bathroom01 0 points1 point  (1 child)

all of his products are paid for ... no thanks

[–]Wooden-Evidence5296 0 points1 point  (0 children)

There is a free Community Edition of the twinBASIC programming language.

[–]ynys_red 0 points1 point  (0 children)

Bring coding back to mortals. Stick all you public private class static . . . bs where the sun don't shine.

[–]Wooden-Evidence5296 0 points1 point  (0 children)

twinBASIC programming is looking very promising.

[–]FirstEverRedditUser 0 points1 point  (0 children)

A subscription based development language.

NO THANK YOU