Xojo 2017 Release 3 is now available. As with all Xojo releases there is a mix of new features, big and little changes, and a host of bug fixes. I’ll highlight some of the big items. See the release notes for the complete list.
Perhaps the biggest change in Release 3 is that this is the first release where the IDE itself is 64-bit. For macOS this is the only option. In Windows the installer will choose the proper version for you system. For Linux, the IDE is only 64-bit and will not run on 32-bit systems (note that it can still created 32-bit executables).
This is a major milestone for the Xojo IDE and is the culmination of many years of hard work by the developers. It’s hard to imagine the work involved in taking a large product, like the Xojo IDE, that once assumed everything was going to be 32-bit only and rewrite practically every class, method, and function to ensure it works properly in 32-bit and 64-bit on Mac, Windows, and Linux.
So what is the deal with 64-bit? It lets the IDE use a lot more RAM. In Windows especially this has been a limitation. Some processes in the IDE, and in our built applications might be faster (emphasis on the might). And since most computers are shipping as 64-bit these days it seems archaic to keep using 32-bit applications and in some cases for Linux it’s really hard to run 32-bit apps on a 64-bit machine.
One thing that changed because of the move to 64-bit is that the IDE Auto Saves the project before a debug run in a different way from previous versions. Prior to R3 it used memory blocks to save this data in temporary files in case the IDE crashed. In R3 it still saves but it’s using a much slower method. It’s a long and drawn out explanation but it’s because of memory fragmentation that can happen even in 64-bit builds. On very large projects this can take a LONG time and can make the IDE look like its stuck since there is no visual feedback of what it’s doing.
If this is a problem for you there is a way to get the IDE to NOT AutoSave the project before the Debug Run. Warning: This is for advanced users that understand the implications of doing this:
Confirm that Xojo is closed. You can set ‘Autosave Allowed’ to false the following ways:
Edit the Xojo Preferences ( ~/Library/Preferences/com.xojo.xojo)
Add a key with either a true or false value
Use the same key entry style as macOS inserted in ~/.Xojo.Xojo
Use regedit to edit HKEY_CURRENT_USER\Software\Xojo\Xojo
Add a new DWORD value with the name “Autosave Allowed”
a value of 0 is false
a value of 1 is true
Another issue for 64-bit builds is the Currency data type. According to long time Xojo developer Kem Tekinay using Currency is not recommended in 64-bit builds due to comparison issues.
The IDE now cleans up properly after a debug run. This should eliminate the issue with the IDE showing a file IO error when trying to do multiple debug runs.
Dragging IDE windows around with thousands of controls on the layout renders better now. It is still recommended that you use container controls to limit the number of controls on each window.
Fonts on reports, especially in 64-bit builds, are now rendering at the proper size. The Report Editor now honors locks as it should.
The Code Editor now highlights the lines of code blocks. I’ll be honest, this is a totally unnecessary bit of fluff in the code editor but after using it for a few weeks I find that I like it.
The Automatic Code Reformatting now takes effect when you click away from the line of code.
The Remote Debugger Stub was rebuilt using 2017 R2.1 and thus has a speed boost.
The Mac Remote Debugger is now 64-bit and can run 32-bit applications as well.
64-bit and ARM Console debugger stub’s are included.
Lingua now has a scripting folder where you can run XojoScript to manipulate the translated text. This is really useful in post-processing where if your translator puts quotes around everything, or likes to put the source and translated text together. Presumably an enterprising developer could use XojoScript to connect to a translation service.
XojoScript now works on Linux ARM builds.
64-bit Widows apps now display manifest settings in the advanced tab of Windows build settings. This allows you to set Windows versions and privileges for your app.
Support for iOS 8 and iOS 9 has been dropped.
Xcode 9 is now supported as well as 64-bit debugging.
Internet Explorer 10 support has been deprecated.
A number of bugs in the Web framework have been fixed.
Conclusions and Opinions
All-in-all, this release is an important one since the road to 64-bit has been a long and arduous process. Xojo Inc. has missed on a number of promised deadlines this year and while some of them were under their control – many were not. Let’s hope that 2018 is much kinder to their schedule.
I would expect the slow Auto-Save that popped up with the 64-bit IDE to be addressed at some point. One personal opinion on this that irks me is their temporary fix for ‘advanced’ users. Come on. Really? Stop treating us like children. I don’t know about you, but in my 16 years of using Xojo I’ve only tried to use the AutoSave feature a handful of times and I can only think of one case where it actually saved me any time. Keep in mind that you might very well never experience the issue if your project is small but I tend to have big projects and it’s a noticeable lag.
I did not like code block highlighting in its debut. I felt that it was a complete waste of programming time. After using for a few weeks it’s not that bad but I’m not sure it’s all that useful either. I suppose if you have have six or seven layers if nested code it can be helpful but I tend NOT to do that. It also might be really helpful with really long methods, and again, I tend not to do more than a page of code (I hate scrolling).
As with all Xojo releases it’s important to test your projects to ensure everything works as you expect. I would expect a few things to shake out of the 64-bit IDE as more developers bang on it. Xojo is a big project and the beta testers (myself included) can’t hit every single feature. I’m not sure if I’d expect a dot release from R3 but I also wouldn’t bet against it.
Give me your thoughts! Do you like R3? Is it stable and reliable?