API1, API2 & Xojo.Core Question

I have a couple of hopefully quick questions regarding the frameworks and general technology direction. I have some solid experience with API1 and am beginning to ramp with API2. There was a period of time in between where I was following along, but not very closely. IIRC, prior to API2 there was another next gen. framework that was going to be one ring to rule them all so to speak, across all platforms. From my understanding this path forward will be fulfilled instead with API2.

So my question is really around guidance and how to address new projects. I’m sort of assuming that moving to API2 is likely the right path forward long term, in spite of various bugs that might need to be addressed (heck it’s not like API1 didn’t have bugs as well). And from what I can gather, using newer versions of the IDE will default to API2 anyway, correct?

But where I’m semi-confused is that I’m looking at PreferencesKit where Xojo.Core, Xojo.IO and Xojo.Data are used. Are these part of that interim framework between API1 and API2? If so, what’s the long term plan for this framework? Maybe this is a vestige of iOS and will resolve itself once API2 lands on this platform?

PreferencesKit is not an Xojo product/framework, it was created 2 years ago (according to GitHub) by Garry… so it probably adheres to API1.0

The rule of the thumb… don’t plan your work on pipe dreams that Xojo says are coming “soon”, based it on what you have available right now

Yes, absolutely from @Garry but Xojo.Core is from Xojo so I’m just a bit perplexed as to where it comes from.

For example API1 uses FolderItem and under API2 it remains but has been rewritten under the hood. So not specifically a PreferencesKit question directly, but Xojo.IO.FolderItem is utilized instead of simply FolderItem so I’m assuming that this is from the interim framework (was it called “modern”?) that happened but never took off. The docs aren’t super clear as there’s just a distinction of API1 and API2 but nothing in between and text on Xojo.Core, IO, etc. is pretty sparse.

I wasn’t watching too closely what was happening with Xojo during that time so I’m just trying to piece things together in my mind so that I have a better understanding of the older and newer frameworks and where their boundaries are.

Maybe Xojo.IO is the right way of getting to a folder item under API1 these days? It’s unfamiliar to me as I’m used to the original class being simply FolderItem. This all seems a bit muddy to me.

P.S. No pipe dreams on my side regarding timelines and expectations of promised items from Xojo in the future. Sometimes plans don’t go as expected with the 2020 Release 1 being the latest example.

Can’t help much more sorry… It was because of the BS (and I don’t mean BigSur) surrounding API2 and how Xojo addressed (or didn’t) the legit concerns of its customers that I have basically left (along with others).

Better to stick to API1 as long as you can. API 2 has too many bugs. Even if some parts were rewriten, the main purpose was just a change in the looks of the language.

Xojo.Core, API 2, to me they look like a waste of time with little gains but lots of new problems.

Never used Core, maybe never will, and, who knows looks like that there is not “long term plan” so, who knows how much API2 will look like as a good idea for xojo :expressionless:

1 Like

Even if I am critical myself, I reflect. To claim API 2.0 has too many bugs without specifically mentioning any is not fair. Yes, for many people it’s a major break to change their projects to API 2.0 (and nobody has to, because API 1.0 still exists for many years, it’s just not maintained anymore). The readability of API 2.0 code has improved significantly.

1 Like

Xojo code was already very readable in comparison to many other languages.

They have so many other more pressing issues with the framework… which under the hood needs modernizing a lot more than the language needed essentially mostly cosmetic changes for improved readability IMO. (never mind bugs!)


1 Like

API2 did not improve “anything” as far as I’m concerned… As Karen said, readability was quite high before… All API2 did (for the most part) was change the syntax of language features that have been in use pre-dating even RealBasic. In my opinion, the changes where changes for the sake of change, not to improve any aspect of the language

1 Like

Lets just take a step back.
Xojo current release, the one you can buy a current licence for, is release 19r3.2, yes that’s 2019 release 3.2, which was released on July 14th 2020, yes that 2020.

the last completely stable release without API2 nonsense was 19R1.1, guess how long ago that was…

also bear in mind, the current release of the product, the only one available to purchase right now, is depreciated, there is no current release of compiler that you should consider for any production code as its all depreciated.
yes only Xojo could feck up everything possible and expect anyone with a need to plan for the future to buy in to it.

on the bright side, we have 4 1/2 months to get the first release in 2020, it has Xojo Web1 completely removed, its got API2, iOS is just as good as it was last year, there is no android, PDF seemingly is a bit basic at least, and perhaps all the reversing of the event names has been reversed again and there will be no original users around to care.

that’s my personal best assessment of the current state of the product.
thankfully I am able to express these concerns and offer a realistic view of the current state of the Xojosphere rather than the sanitized nonsense you will see on the official Xojo forum.

like all the people here I want Xojo to succeed, that seems a bit optimistic with the current state of the product, in my opinion, which I can express here without being banned like I have been from the official forum.

lets hope we can get some realistic input from an official Xojo source who can tell me where I am wrong in this assessment, and there is plenty here to rail against, over to you Alyssa, enjoy.


I love your “bright side”…

  • r2020 isn’t late… 4.5 months remain
  • iOS is as good as it was last year (which isn’t saying much)
  • there is no Android (beyond a lame demo)
  • are you serious about the event names flipping back again (wow)

And while personally I agree with everything you said… I expect if Alyssa or anyone else responds, the first thing will be to offer you some Kool-Aid and try and force you to drink it…


LOL, that is a fact, just take a trip on the feedback app, Single example? The mess in databases, exeptions not being reliable.

The fact that the FR 57885 is No. 10 also says a lot about API2

1 Like

Please do not get personal!

I am very familiar with the feedback cases, believe me. I have also known the case you mentioned for a long time. But this is a “feature request” and not a bug report.

What is your problem with database exceptions?

Technologies change. Hardware is changing, software is changing, programming languages are changing, humanity is changing. It’s called progress, although some progress may seem like a step backwards for some. Let’s keep up with the times.

I don´t take it personal. I just see the facts. Database exceptions NOT being raised some times when there is an error, it is a big fat show stopper bug and no amount of optimistic attitude will make it behave the way it is supposed to.

Also, not personal with being afraid to change, just being realistic with xojo. Those who spent months training to adopt the Xojo.Core. Those who wasted weeks moving thair proyect to the new event names. I’m pretty sure that this days they wish they haven’t done. “Progress” with xojo feels like walking over thin ice, it can break any time.

So, maybe one day in many years, API2 will be mature, with less bugs and solid enought to move over. In the mean time, based on experience; learning, porting code and deal with bugs, look like a waste of time.


I wish people would stop whinging about API 2.0. If you’re starting a new project - use API 2.0. Simple.

I have only used API 2.0 since it was released and only use it on current projects and I find it absolutely fine to work with. Yes it was pointless (IMHO) to rename Append to AddRow, etc but ultimately it’s fine. People need to learn to move with the time. API 2.0 is Xojo’s future and brings a lot of much needed functionality to the Xojo framework.


What significant functionality does it add? Is it really worth losing backward code compatibility?

At work there are a lot of Macs that can’t go beyond High Sierra that still need to be supported for example and will be for years.


1 Like

Garry (and this is what I like about THIS forum). I will respectfully disagree.
The fact that they changed a boatload of the syntax for as you put it “pointless” reasons, not to mention the previous debacle surrounding event names (for which there is an unsubstantiated rumor that that will be reversed), added to the fact that Xojo has adopted policy and procedure that just get more dacronian as the days go by. If people, just give up, quit whining and “drink the kool aid”, then nothing will ever “get better”

It is not a rumour. Geoff has announced that the withdrawal of event names is only temporary. Web 2.0, Android and most likely iOS with API 2.0 will use the new event names.

Then things just went back to a worst case, and goes to prove that his arrogance supercedes his obviously condescending opinion of his clients.

The event name changes was the largest source of contention, and it the major cause of the blow-back from many current (and now past) clients. The fact that Geoff ultimately agreed, and is now rescinding that … well I’m at a loss as to what to say.

Geoff seems to think the way to IMPROVE a product is to make it different. But improvement, is fixing bugs, then adding features, not changing the syntax just to make it “different”

My reasoning is that Geoff has made up his mind (for better or worse) and that ship has sailed.

If you want to continue to use Xojo (which I still recommend) you need to move on and embrace API 2.0 because it is the direction the product is heading.

1 Like

In that statement you are correct. Geoff seems bound and determined to not alter the direction that Xojo is headed… But my opinion is that direction is not a good one, and has already cost Xojo revenue (although they deny that). But it is evidenced by the comments made by many members of THIS forum, as well as the Discord chat room.

And that being said, and as I’ve said in the past, I’m done giving Xojo my $$$. I will use 2019r1.1 for as long as it remains compatible with whatever OS I’m using… and hopefully before I lose that, my transpiler will be done, and I won’t need to worry about it any more.