I’ve been spending quite a bit of time working with Objo Studio, and my experience so far has been very positive.
This review is based on real-time, hands-on practice. I’m not simply looking through the documentation or trying a few prepared examples. I’m actively developing applications with Objo Studio, and my experiences come directly from the problems, solutions and occasional surprises I encounter while programming.
What I particularly like is that Objo makes programming approachable without making it feel like a toy. I can build real applications, create my own reusable windows and UI components, work with multiple displays, and gradually develop more sophisticated solutions.
Because Objo Studio is still actively developing, I occasionally encounter unexpected behaviour or small issues. I’ve reported several of these to Garry, and I appreciate how open the development process is. Finding these things during real-world development also gives me the feeling that, in a small way, I can contribute to making Objo Studio better.
There are certainly areas that still need refinement, but improvements are happening quickly. That makes Objo particularly interesting to follow: it is already useful today, while you can clearly see its potential for tomorrow.
Overall, I’m enjoying working with Objo Studio and look forward to seeing how it continues to develop.
I totally agree with you, Chris about Objo Studio.
You need to learn by actually doing a real project and not tutorial and try thing here and there. Start simple with just a menu, search and collection screen and then expand it slowly and asking questions in the forum
I have bought the license right away from the beginning in May. I have been playing with it until August 8th to actually do something with it.
Basically I am rewriting my current ACMS system with Objo.
Knowing exactly what you want it very important and having a reference to the old system help too..
I have been working the new ACMS for the last 2 weeks and done a lot of work on the Objo.
I already have a main menu, the search screen, the collection screen, thumbnail screen, image list screen, slide show screen, quick search pop up, result screen and overview screen.
I am still amaze with Objo can provide in such short time. in the old days with X, it take way more time to do anything and having all the screens mention above in 2 weeks is unbelievable.
I didn’t use any codes from X at all.. I wasn’t expecting that.
I do have some help from forum, the documentation and ai assistant which is a big help when I can’t find the information in the documentation and the forum.
Thank you, Trishaduke, for your positive reply. I completely agree with you.
Actually, using an application development environment is one of the best ways to learn.
I am currently building WeightCatcher, an application that keeps track of body weight. It is a small application, but a very interesting project because it allows me to explore many different features of Objo.
I also have an Objo licence, and I haven’t regretted buying it for even one minute.
The documentation is very complete, and the feedback is extremely responsive. Whenever I get stuck or find something that does not work as expected, I use the Feedback option in the Help menu inside Objo.
When I see what we can already do just a few months after its release, I wonder where Objo will be a year from now. I am sure Garry will surprise us!
No, I haven’t worked with multi-user systems accessing database servers in Objo yet, so I can’t give you a meaningful answer about that based on my own experience.
My experience with Objo so far is based on the applications and features I have actually worked with myself.
My old system using sqlite for single user and if needed for multiuser, I use cubesql for the backend (which cost money)
what I am doing with objo now is simply using the old sqlite database and putting a new front end.
I wish there is something for multi-user sqlite database that is free.
if not, I might need to move to postgreSQL for both single user and multi user but there are difference between sqlite and postgreSQL in term of sql statement and it is used.
If I move to postgreSQL mean that I cannot offer the objo version to my existing client which is single user version.
I currently have to access an MS SQL database for a client — unfortunately — to visualize various data. The program needs to run on both Linux and Windows.
With X that wasn’t possible, because additional drivers and settings would have had to be installed on every client [50+], plus a bunch of other hurdles.
So I tried Objo for this, and what can I say: connections and queries work on both OSes “out-of-the-box”.
This is my first full app with Objo. I had only played around with it a little before.
The whole application was built in a week, including the inevitable issues — mainly muscle-memory — and learning the language while coding.
My preferred DB system is PostgreSQL. I’ve started to refactor my PG class, so far no problems.
Otherwise I can only agree with everyone else, Garry is doing excellent work.
Not yet with Objo but there’s nothing lacking that I can think of to make that happen.
I have done some raw benchmarking of Sql Server (or more exactly, the Azure DB flavor) running the Objo client app on a Windows Server Datacenter VM. Garry worked with me to improve the performance of the firehose cursor (a Xojo-compatible RecordSet iterator), the performance of which is influenced by the number of table columns coming back in the query result. It’s considerably tightened up now. My impression is that the internal plumbing is as fast as C# (I can iterate on result rows without actually doing anything with the data, about as fast as comparable C# code) and I need to revisit some stress testing against the large DB I have at my disposal, and stress other parts of DB support like parameterized queries. However it’s all usable today. I have just been constrained in my free non-work time and distracted by some other Objo stuff I’m working on.
Since you just swap out the underlying database class to work with other supported DBs, the performance tuning Garry did for my test case should benefit all DBs, which all iterate on RecordSet.
Given what I’ve done so far that’s DB related, what other users on the Objo forum are doing with DBs, and Garry’s almost unbelievable responsiveness to performance and bug reports and even suggestions, I have no concerns about using Objo as a database client.
I want to share another aspect of using Objo that I really appreciate.
One thing I particularly enjoy while developing WeightCatcher is that I keep discovering new parts of Objo as the application grows.
What started as a relatively simple weight-tracking application is gradually introducing me to application structure, reusable windows, custom UI elements, multiple displays and other features.
For me, this is exactly why developing a real application is such a good way to learn Objo. Every new requirement gives me another part of the environment to explore.
Of course I sometimes get stuck — that is part of learning — but so far I have always been able to continue through the documentation, experimenting, feedback, or help from the community.
That is one of the things I enjoy most about working with Objo: the application grows, and at the same time my understanding of the development environment grows with it.
However, this is an important question to ask and a crucial scenario to be thinking about and it is something I have put a lot of thought and effort into - you have to when you build a tool others depend on.
Objo Studio is wholly owned by Pettet Industries Ltd, a UK private company of which I am the CEO and primary share holder. It is a profitable company with healthy cash flow and assets. Objo Studio is its only and primary product and focus. Our marginal costs and running costs are sustainable.
Provisions have been made for the two most significant events that would impact our customers - the unexpected death of a key stakeholder and closure of the business (none of these are hopefully on the cards anytime soon!). In these scenarios, the articles of the company would trigger the open source release of all of Objo Studio’s code so, in the worst case scenario, you could build Studio or modify it yourself.
Studio is built on a modern framework of C# with a well documented codebase and extensive unit tests. It would be absolutely possible for another developer to take it over if the worst were to ever happen.
I hope this goes a small way to reassure you that Objo Studio is here for the long term. Primarily it is my passion and I love working on it.
If you have any other questions, please let me know.
This is old news. For some time now it’s been an option to compile .NET to native code. They call it AOT compilation (Ahead Of Time vs Just In Time).
Not applicable to Objo anyway as it has its own custom VM. I suppose that Objo bytecode could be reverse-engineered same as .NET IL bytecode was, but in market terms, it’s a much smaller target for relatively high effort. So far. I would guess that if this became an actual concern, Garry would offer the option of encrypted .objoc files. If I asked for that today, based on my experience so far, it might well be in the product by next week, lol.
Tools like that are pretty cool, but it’s very labor intensive to reverse engineer software from compiled binaries. It’s far cheaper to just buy a license if your time is worth anything at all.
The main use case for such tools is to figure out where it calls the copy protection or licensing code, and what it’s supposed to return to unlock the product, and then fake a call that returns that. And it’s possible to engineer such protective code to give plenty of headaches to anyone trying to do that.
The secondary use case is just hacking for fun, I guess, although that particular class of problems has never excited me.