IMHO stability we have for the core features of BASIC and Base.
On the downside there is not much of the modern like code completion etc. we are used to now in modern IDE.
I don’t miss much, as most of my macros are small.
.
A problem with stability has the report-generator. If you have a working report, that is quite stable, but designing them or changing is not nice… (Save often and be prepared for trouble). But lucky as we are, there are often ways around it.
.
“Embedded Firebase” is two questions in one.
-
embedded is a problem. When LibreOffice crashes you could loose the database. The only benefit is the ability to send around the database, with all forms for example by email and the receiving site can directly open it. I use this only in one case. The person who fills this reported once a crash, with loosing 2 hours of input after installing a newer version on his Mac. (I guess he has worked 800 of this files over the last years.)
-
I prefer external databases and my setup for a system, where you need to send data around is an external sqlite-file used as a named datasource. Usually I don’t need to change the .odb (form/report) often, so all I send is the data in the sqlite file.
-
If sending around databases is of no concern you can use HSQLDB, Firebase, MariaDB, Postgres etc. For most of us differences will not matter much after setup. But choose wisely, as moving from one DB to another is often difficult, as there are small differences in the SQL. (My choice was MariaDB, a bit biased as we already had one on our web-server and it was also available on the NAS we had.)
The were time where I would have doubted BASIC and stability could be combined…
But the main point is how do you code. Think ahead and take nothing for granted:
- I have a working macro, sometimes failing (no BASIC error) It creates a database reports, saves it and creates an email in Thunderbird including the appended report. Sometimes Thunderbird tells there is no file to append. I could add more time for the file-system to have everything ready, but as I know how to append myself, I simply leave this imperfection…
- I had a macro to write a filename in a field to show a picture. Works. But it was not stable to do this when your mouse is over the image-control in my form. Sometimes the macro was executed, while scrolling the database whith a grid-control. Then it crashed, because there was no valid position in the database.
This are simple examples. But the main rule for stability is test, if your resources are available. Check if you were successfull or have an error-code. For a new project I would prefer a python try-block to old BASIC ON ERROR GOTO
And: Let the database do the heavy stuff. Sure were can code a quicksort in Basic, but let the database do this. Try to understand SQL and Base and avoid coding yourself as much as possible.