Is Xojo 2019 Release 3.1 safe to use?

[quote=472707:@Bob Keeney]Further information: https://forum.xojo.com/58193-heads-up-with-api2-databasecolumn-value-slight-change-from-data

If you are using the API 2.0 database classes - don’t. We generally don’t do code like Feedback report 58934 has so I’d never come across it.

To update: 3.1 using classic API is safe. API 2.0 is still broken in regards to database classes in R3.1. This is simply unacceptable after 3 releases of API 2.0. Database code simply has to be rock solid.[/quote]
I am converting some large projects to the new database API. What are the main reasons that you feel the new database API is not suitable for use? I ask because I am using it and do not have any issues, other than the one I reported. In fact, the new database API, in my opinion, is much cleaner and more consistent overall. I have been able to remove a lot of code that handled prepared statements and manual string processing.

If you’re happy with it then use it but make sure you test the hell out of it. I’ve been using classic API for nearly 20 years and I know its foibles. API 2 is new and there are still things we’re learning about it. Bugs have been found and not addressed yet so I feel like you’re gambling that some new undiscovered bug doesn’t affect your project.

As a consultant I have to ask myself this question: Do I want to bet my company on a new API where things are still being discovered? Or do I use the tried and tested API where I know the pain points?

There is certainly some value in your wisdom Bob.

For me, I’m asking myself: How long do I want to hang on to legacy code? And because of my experience in the past and at my current day job, I’m saying not a @#$% moment more than I absolutely have to.

Disclaimer: Though I am not a Xojo consultant, I have been self-employed in this industry about 90% of my 20+ year career.

Because I put in the time when R2 came out, I now I have all of my projects upgraded to 2019r3.1 already. Sure, I’ve still got code from some 3rd Party products that need upgrading to API 2.0 ;-), but I’m doing those as I need them. My inventory of projects are no where near the number you have Bob, I’m sure, so that is a factor no doubt. You have my respect in that regard.

Note, I’m only working on Desktop apps with SQLite at this time (but I’m using the IDE with Catalina & Windows 10).

As for foibles, because I’m all-in with API 2.0 now, I’m finding a lot less issues than when I first tried learning Xojo 4 or 5 years ago. Plus the 2019r3.1 IDE is nice and snappy and pretty stable for me.

Your concern is the “unknown unknowns”. Makes sense.

[quote=472810:@Scott Cadillac]There is certainly some value in your wisdom Bob.

For me, I’m asking myself: How long do I want to hang on to legacy code? And because of my experience in the past and at my current day job, I’m saying not a @#$% moment more than I absolutely have to.

Disclaimer: Though I am not a Xojo consultant, I have been self-employed in this industry about 90% of my 20+ year career.

Because I put in the time when R2 came out, I now I have all of my projects upgraded to 2019r3.1 already. Sure, I’ve still got code from some 3rd Party products that need upgrading to API 2.0 ;-), but I’m doing those as I need them. My inventory of projects are no where near the number you have Bob, I’m sure, so that is a factor no doubt. You have my respect in that regard.

Note, I’m only working on Desktop apps with SQLite at this time (but I’m using the IDE with Catalina & Windows 10).

As for foibles, because I’m all-in with API 2.0 now, I’m finding a lot less issues than when I first tried learning Xojo 4 or 5 years ago. Plus the 2019r3.1 IDE is nice and snappy and pretty stable for me.[/quote]

I truly appreciate your input on this conversation and also respect your decisions on this subject , it is reasonable that many of us will have different outlooks and decisions.

I do not produce Xojo applications for public use, I use Xojo (among other languages and tools) for the company I have worked for nearing 15 years and the work we do is for DoD. As you can assume all work efforts take permission of time and testing (resources) and just because of the release of API 2.0 would I consider asking for the “recources” to just move forward towards the new API. I can understand for many wanting to move to a new shiny thing but as many have stated it is a shiny thing to wait on and let time and testing prove that it is field worthy, and yes I know what you will ask “how can we field test without all of us using it” well we cant , many of us have to take care of the customers now and the applications running business now and cannot risk just moving over to the new shiny thing.

Most certainly and thank you Brian.

I guess what we’re missing in this further discussion of the original poster’s question, is the context and scale of the work involved. Because now I think I may have contributed to having the topic drift a little. My apologies if this is the case.

I get where you’re coming from Brian and completely respect the challenges and discipline required in such critical projects. Although I am not a learned engineer and I don’t work for a DoD, or a company of that size or importance, but I have worked for the same employer (both as a contractor and now as an employee) for more than 16 years. We have people and offices in 80+ countries around the world, and so I have experience with keeping mission-critical platforms up-to-date with the latest technologies and managing legacy systems that are still used daily. All my work is also not public-facing.

A “new shiny thing” may be an influence for some, but not for me. I was on my second attempt to learn Xojo last summer (in my spare time, because I always wanted to try Desktop apps) and making slightly better progress than my previous attempt a few years ago. I was having some fun, but still struggling against my mental muscle memory when it came to writing and thinking in Xojo terms.

When API 2.0 was finally released, it was like someone pulling open dusty old curtains on a sunny day. I was sold!

There is more going on with API 2.0 than giving the language that new car smell. API 2.0 is actually more intuitive and helps to more naturally align the language with concepts and constructs of other modern languages. Sure, API 2.0 is still a little rough around the edges and not necessarily feature complete, but it is miles further ahead than it was. This is the reason I am supporting API 2.0 - because I find it easier to use.

Maybe a new question should be, when is it the right time to migrate to API 2.0? Each of us will have a different definition of “absolutely have to” when it comes to leaving legacy code behind, as I said of myself earlier.

All the best with your efforts Brian, sincerely.

[quote=472819:@Scott Cadillac]Most certainly and thank you Brian.

I guess what we’re missing in this further discussion of the original poster’s question, is the context and scale of the work involved. Because now I think I may have contributed to having the topic drift a little. My apologies if this is the case.

I get where you’re coming from Brian and completely respect the challenges and discipline required in such critical projects. Although I am not a learned engineer and I don’t work for a DoD, or a company of that size or importance, but I have worked for the same employer (both as a contractor and now as an employee) for more than 16 years. We have people and offices in 80+ countries around the world, and so I have experience with keeping mission-critical platforms up-to-date with the latest technologies and managing legacy systems that are still used daily. All my work is also not public-facing.

A “new shiny thing” may be an influence for some, but not for me. I was on my second attempt to learn Xojo last summer (in my spare time, because I always wanted to try Desktop apps) and making slightly better progress than my previous attempt a few years ago. I was having some fun, but still struggling against my mental muscle memory when it came to writing and thinking in Xojo terms.

When API 2.0 was finally released, it was like someone pulling open dusty old curtains on a sunny day. I was sold!

There is more going on with API 2.0 than giving the language that new car smell. API 2.0 is actually more intuitive and helps to more naturally align the language with concepts and constructs of other modern languages. Sure, API 2.0 is still a little rough around the edges and not necessarily feature complete, but it is miles further ahead than it was. This is the reason I am supporting API 2.0 - because I find it easier to use.

Maybe a new question should be, when is it the right time to migrate to API 2.0? Each of us will have a different definition of “absolutely have to” when it comes to leaving legacy code behind, as I said of myself earlier.

All the best with your efforts Brian, sincerely.[/quote]

Hi Scott,

I don’t think anything can be missing if the OP get’s opinions from all different perspectives, otherwise the OP cannot make an educated decision.

Some manufacturers come right out and say “X is gone and move on” Xojo has stated that API 1.0 will be around for a long time (although they have not publicly stated for how long) and that is kind of disconcerting

My original reply was in hopes to give insight to the OP and to others who have contributed to this thread and those that will come across this thread. I understand that API 2.o is more then a new car smell, but that does not change the fact that existing applications and those that rely on them should be changed over because there is a new 2.0 introduced. I agree with you and others that it will be the determination of the developer(s) to and when to move towards API 2.0

My response was to add to the ecosystem of different developers and how and what we are doing with API 2.0

Looks interesting for my needs. I can’t wait to test that!
Thank you.

I feel the same way about it, but also don’t want to be too conservative by staying in the old for a long time. Think I am going to give API 2.0 a serious try once I have a good reason to do so, let’s say, when WEB 2.0 comes out.

For new projects, I am going strictly API 2.0-only. For older projects that I maintain, I will probably stick to classic API and only upgrade as required.

FWIW, I am really enjoying using API 2.0, more than I thought I would. There’s been more thought put into this than I realised and it really feels like a grand-scale modernisation. It’s pretty impressive. Except for AddRow as a replacement for Append, which I type through gritted teeth each time, I really do like all the changes that have been made.

I have a fairly large app that I will be releasing in the coming weeks. It’s been built from the ground-up for API 2.0. No classic API and no new-old framework stuff. And it’s turning out great.

FWIW, the next time I start a new Xojo project I will mostly likely start with API 2.0. There is zero reason for me to upgrade my many existing projects to API 2.0 simply because it’s SO much work. Since the DB bug mentioned above doesn’t affect me, and most consulting projects have several months of development time, the likelihood of it still being a bug by the time I release it to the client is slim.

It’s still a little bit of a gamble on my part but I can live with that gamble on new projects. Timing is everything. But for now I can avoid DB API 2 with Xojo 2019 R3.1 and not have to worry about it.

As soon as some version gets a community “stable” seal (at least Mac and Windows Desktop “stable”), I’ll start to gradually move things to that version and API2. I need “stable” and like the “new”. I love “new”, but only stable novelties are acceptable.

As said by many of us: for new projects.

2019r3.1 just crashed on me when I did some undos. Feedback autogenerated a crash case (<https://xojo.com/issue/58951>).

That’s the first one of those for a while, but otherwise it works OK but for one thing: I was working on some new stuff when it crashed and that’s all lost. Somehow I remembered the IDE finding auto-saved projects which it then presents to when you restart, but that didn’t happen this time.

Yes. That case was reported by Norman but closed before 3.1 release because “2020r1 does not show this issue”. So another point that makes everything after 2019r1 a rather risky adventure. Save often at least.

EDIT: <https://xojo.com/issue/58780>

“Jesus saves” and so should you. Ahem…

It’s for each of us to make sure and decide if a release is safe or not. I tested the heck out of r2 and r3. In the first days of having a public version of my app available I got this lovely here: <https://xojo.com/issue/58879> . A hard crash when using Xojo.Core.Date. No clue after a couple of days what is causing the problem. It must be something really odd. The code is part of an algorithm and is executed a lot lot. If not for Christian I would have real problems.

I’ve also had a hang in a regex. But that was easily solved by using the regex part of the MBS plugin.

Anyone else for whom this all becomes confusing? I very much hope that the warm feature rain Geoff promised for this year will bring stability and tons of fixes. For some time, Xojo does not feel like a progressing development anymore. I’d rather wish for a recommendation list sometimes: “Pick the Xojo release that suits your needs” with all the Dos and Don’ts as checked columns.

Ha yes. Normally, I clone the project before embarking on a new direction since I sometimes get into the weeds with those and throw them away. Of course, with a clone I then save frequently. Just didn’t happen to make a clone this time. Mind you, I remember pretty well where I’d got up to, so it’s not a major catastrophe.

I’m the original poster, and I was asking about upgrading to the latest IDE for the 8 or so medium sized web based projects at my company. All of these discussions are interesting, and actually highlight some of the reasons why I’ve decided to stick with 2019 R1.1. There are just too many unknowns and there is not enough time in the day to run into them when enhancing existing projects. This is my specific situation, and as many of you have written above, does not apply to your situation. :slight_smile:

As for future projects, I’ve made my opinions clear on an older blog posting of Bob’s, so I won’t go into detail on that here.

there are the things we know, the things we know we dont know, and those things that we dont know we dont know

that last set is usually the ones that bite us collectively in the rear