A new year and another XDC coming up which gives us opportunity to reflect on where we are and where we are going with Xojo. If you are like me Xojo is your favorite programming tool to use and I rely on it daily to build great experiences for customers. However, that is not to say that it is not without fault or room for improvement.
I wanted to take some time to discuss my top wishes for 2018 from Xojo, Inc:
#1 “New” Framework Progress
First and foremost, I want to see the inevitable conclusion of the “New” framework on all operating systems and targets. I want to see a plan for enhanced language features and classes and capabilities that Xojo will offer us. I want to see all UI widgets and controls support the new native types introduced with Apple iOS in 2014!
Since that time, we have seen very little improvements to either the new framework, the iOS platform, or otherwise. In November of last year, I asserted that the “New” framework was a dud. There had been no meaningful improvement or announcements about potential improvements in recent history. The post created a bit of controversy but alas my call for someone at Xojo to step up and be the “language czar” and talk about all the cool things Xojo will enable in the future has gone unanswered.
If Xojo is to compete in the future as a rapid application development platform and language then it is vital they learn from their competition. An example of such is concurrency which I have highlighted in the past.
#2 Console Helper Apps
Xojo threads are a misnomer and do not help you in any meaningful way speed up the performance of your application or operate concurrently in the background. They were at best an abstraction model for separating sophisticated methods from the user interface. However, since the change of no longer allowing threads to access the user interface, you end up having to use timers which are more work to setup and more difficult to manage.
Never mind that in Xojo your application is only able to utilize a single core at a time so now the tricky mess of thread and timer management is hardly worth the effort. For anything sophisticated that you may want to do without locking up the user interface you are advised to build console helper applications. The idea is that the operating system will distribute your workload across all the available CPU cores as needed and saving you the mental effort of true threading model.
Unfortunately, building console helper apps is much more difficult than it needs to be. I first wrote about the need for the IDE to abstract away a huge portion of this effort in the first part of my 2017 review series in March of last year. I have not received any feedback from Xojo or heard anything in this area to facilitate this need. It is getting harder to sell Xojo as a rapid application development tool when your projects become significantly more complex when the IDE could so clearly help you. I hope to see some announcements in this area at XDC.
I believe Interops were first announced at XDC 2016 and slated for a 2017 Q4 release. I understand that last year had some priority adjustments and so I am not unhappy with the timeliness on this one. However, as declares are essentially critical to producing any meaningful iOS results I am very keen to get more information about this feature. There is a session on it at XDC 2018 so I am very excited to see what they have cooking.
It would not be a complete list unless it mentioned Android as it rounds out the platform and makes Xojo consultants more marketable. I will however caveat that with saying if it is released in such a minimal manner as iOS and maintained as poorly then it will simply be marketing fluff. Xojo really needs to commit to mobile and bring their best creative minds to the table to innovate in this area.
Tools like Creo from CreoLabs demonstrate a whole new paradigm of thinking about this problem and Xojo stands to learn a thing or two from similar products. There are countless developers who do not want to deal with Java, Objective-C or Swift and there is a real opportunity here for Xojo to succeed. Combined with a fully functional new framework that is actually cross-target and usable across all user interfaces without numerous data type conversions; Xojo would nearly double my productivity.
I could write an exhaustive list of things I want to see improved upon in Xojo in 2018 but each year brings us only a handful of new capabilities so one must be realistic. In 2017 Xojo kept up an aggressive pace of bug fixes and quality of life improvements in the IDE and standard libraries (old and new).
The much-rumored Windows flicker problem should be resolved or greatly improved soon and that will be a substantial release in its own right. We must also take the time to appreciate the first ever 64-bit release of the IDE and the realization that Xojo has come full circle as a modern software development platform. This should also give us pause however that the fundamental technical hurdles have been overcome and we are staring at the platform as it will be for the near future.
More optimizations will be found and talks of possible IDE tweaks or improvements were discussed at the last XDC demonstrating continued improvement. That aside the 64-bit future is here, the mobile platforms are realized or past conceptual stage, we can build for all three major platforms and operate on the Raspberry Pi. It is time for Xojo to double down on the rapid application development platform that it promises to be.
Lastly, I would be remiss if I did not mention my greatest wish at Xojo, Inc: The opening of the beta tester program and more transparency into the development lifecycle of the product.
The need for absolute secrecy hurts the product in my opinion. The desire to not have to apologize when milestones are not met is purely selfish and does not take into consideration the ideas and passions of the larger community. I am also disappointed when thoughtful ideas and tough love criticisms can so easily be discarded, or discussion topics censored and deleted for fear of acknowledging that the product is not perfect.
Most acknowledge that no software development environment can ever be perfect. I resent the desire that some have to refrain from mentioning areas where it is not meeting its maximum potential. I feel dishonest if I do not share with customers the pitfalls of using it and I am delighted when I can say “Xojo is a perfect fit for this.” I look forward to being able to say that more often in the future.
Best wishes to you all in 2018.