1

Topic: ViEmu ceasing as a commercial product and going open source

Hi everyone,

You may have learned about this on the store page of viemu.com web site or learned from me over email, apologies for not announcing more publicly earlier.

ViEmu has ceased to be a commercial product, and my plan is to open its source so that the community may enjoy it and hopefully contribute to it too.

Over the last few years ViEmu has been dwindling as a business, quite understandable given the direction of the market and the availability of open source alternatives, so I've only been able to put in the time to improve it in short occasional periods. I've been happy to support it when I could, but quite unhappy with not being able to give the much better service I could offer when enough sales allowed me to dedicate a lot more time to making sure things were operating smoothly.

I am now focusing all my effort on a data analytics startup I started a few years ago, and it's become less and less sensible over time to divert time from that to maintaining ViEmu. 2021 was also a quite challenging year for me for personal reasons, so that didn't help. Microsoft moving Visual Studio to 64-bit (undoubtedly a good decision!) has been kind of the last sentence rounding up the obvious writing on the wall. It is probably quite doable to port it in a couple weeks, but I just don't have that time.

My plan is to carve out a few days as soon as possible in the near future to clean it up, especially the directory structure for the build system, and then publish it. I guess I will be able to groom the builds and incorporate whatever enhancements the community provides for some time, it is quite automated, although it does requires a Windows machine with nearly every version of VS ever published installed to be able to build them all. We'll see how it all goes from there.

I'm actually quite happy to publish the source code, in case anyone is interested on what it takes to implement a nearly fully generic "multiplatform" vi/vim emulator that can be hosted inside any host application. Hosting in Visual Studio, SQL Server Management Studio, Word, Outlook and Xcode has provided quite a degree of maturity. Porting to other platforms is possible, but it requires a substantial amount of work. In any given edition of ViEmu, about 50% of the code is the generic, template-based C++ vi/vim emulation core, including the custom regex engine, and the other 50% is "glue code" to integrate it in the host application, which requires a great amount of effort for it to work well integrated.

Porting to VS2022 64-bit should be quite doable, I haven't looked into the details of what Microsoft has done, but I'd guess they will have kept most of the classes and APIs from their 32-bit edition. ViEmu code itself will have no problem compiling in 64 bits, it's quite clean portable C++ code that doesn't rely on any bit twiddling at all.

One long-standing point would be to port it to 64-bit Word, and that should be quite doable too. The main area that requires work is that ViEmu intercepts keypresses using low-level core Win32 interception APIs, and it's necessary to port that part to use the 64-bit Windows equivalent.

And of course there are a ton of improvements that ViEmu would welcome. Compatibility with other 3rd party extensions (such as Visual Assist X, Resharper, Coderush, etc...) is always a source of issues as they change their behavior, and ViEmu often needs to go through some contortions to coexist peacefully and productively. Hopefully, having so many developers as users, there will be someone in the community able and willing to do these little things.

While I find the time to prepare and publish the open source version, if you need a license key for any of the existing editions, just send me an email to support@symnum.com and I will be happy to generate and send them to you free of charge. Thanks for your patience when doing so, as it often takes a while until I get to reviewing all email, generating the keys, and responding.

I released ViEmu 1.0 in 2005. This has been an incredible 17-year journey. Thanks for supporting it as customers and in other forms. I am personally deeply grateful to all of you who helped in any way. And I hope I can give back to the community now in the form of open source.

Heartfelt thanks,

  -- Jon Beltran de Heredia