After watching xojo for a couple of years I finally purchased the pro edition. So after I build my traditional test console app I was dishartened that it executed much slower than FreeBasic, PureBasic, and .net on wine with the same functionality. Speed was not even close XOJO 1208 milliseconds, versus 220 ish for the rest of the compilers on my debian box. Then I read about aggressive optimization setting and wow I started feeling better about my investment again. Xojo came in at 78 ms. Nice job on the optimization!!!
Now if only there were other IDEs without so many widgets to get in the way of code. It is counter productive to someone coming from Visual Studio.
I am looking forward to many more discoveries with Xojo. The last remaining company that is forwarding the Basic language.
Another factor might be that Xojo does a lot of internal sanity checks like out of bounds checks for arrays, NilObject access and other stuff by default which other languages might not. Normally you should not do this, but you might want to test the #Pragma compiler directives like
#Pragma StackOverflowChecking False for the sake of benchmarking.
And of course, each language has its own preferred syntax, so after some more work with Xojo you might find approaches that help to develop even faster code. You might want to read the threads about JSON speed comparison or a rather old one about benchmarking against a native C app (which I sadly could not find) in this forum.
If this is what I recall, it certainly is in the old forum.
@Richard Kinning Well some CPU intensive methods can be done in plugins if you feel like coding these methods in C/C++
No plugin, Geoff made BASIC code only.
You can also simply compile libraries from C/C++…with an external C interface…and call those libraries like you would an OS API.
The Xojo IDE compared to others can appear a bit quirky at first, but once you get used to it, it makes coding fun again.
The one obvious feature I missed at first about the Xojo IDE, was that I couldn’t place two different code windows (of the same project) side-by-side.
But then I discovered under the “File” menu (while you have your project open), click on “New Workspace”. This opens a second copy of the IDE with a view into the same current project, so you can arrange things to work or see two different parts of the same project at the same time.
I hope that is also helpful.
Did you find a way to recover the full windows and their developed code exactly the same once you quit Xojo and then reopen ?
My experience is that very little is save unfortunately.
My apologies Michel, I guess I’m not sure what you mean.
The edits I make in one Workspace instance will appear in the other.
Likewise, if I quit Xojo with two Workspaces open and restart and reopen the previous project, Xojo does reopen both Workspace instances (usually with the previously viewed parts of my project displayed).
I’m using 2019r1.1 on macOS 10.14.6 for most of project work, with only jumping back into MS Windows occasionally to test certain behavior and visual elements, so maybe this works differently under Windows and I haven’t noticed yet?
Thats the point that does not work for me.
PS : same in the debugger when closed and reopened
Thank you all for your tips. Ulrich I did use the #pragma directives to get the timing to the 1208 ms it was worse before then. I found the directives before I found the Aggressive optimization level. That is where the big improvements came. I have been searching for a while, for those who are curious these are the results of the tests on MX Linux (Debian) …
OS Language Milliseconds
MX Linux Gambas 4255
MX Linux QB64 382
MX Linux PureBasic 220
MX Linux FreeBasic 244
MX Linux FreePascal 187
MX Linux PowerBasic (Wine) 135
MX Linux VB.NET (Wine) 215
MX Linux gcc 215
MX Linux Xojo 73
I am so glad Xojo performs as well as it does. I cannot wait to use it for databases, webservices, IOT, you know the fun stuff!