Is Xojo Considered "Low Code"?

If anyone one has questions or needs help with FileMaker, I dev with it three days a week. And been using it since around 1987. :slight_smile:

I use it to manage over $100m in medical settlements assets for bill paying. :slight_smile:

1 Like

Oh, Hal, you want to say we can hire you? Neat.

I just meant I could answer questions here. Wasn’t trying to advertise for work…

1 Like

The IDE lacks a lot of features and is no match to i.e. Xcode. Nevertheless, it improved considerably over the years. There is not Git integration, source code management is unavailable :no_mouth:
Licensing is an issue when the number of users go up. It provides a lot of functionality out of the box. The downside is that it is what it is and often lacks adequate performance. Some limitations can be worked around by using plugins, some are there to stay.

Despite its limitations it is a good and really fast prototyping tool and for small businesses it offers a good bang for the buck (provided the number of named users remains low).

My proficiency in Swift is still not good enough to whip things up that quick.
@thorstenstueker, I have no experience in Java coding. The Java stack is certainly better than FM in many aspects, but that’s not within my reach right now.

That’s always been the point where I dropped out when I had clients that FM would have fit from the description. So they never got a chance for me to test anything at all :frowning:

Yes that needs time, I can’t say it is done within minutes. So yes. But If you beginn to learn you may have it in a few weeks so far that you can begin with your project. That was what I was thinking. But that needs time and Power and the miracle is: nobody has time.

2 Likes

Since I was learning Swift and now Java, I would argue that the learning curve of the overall packages (Xcode & Swift and Java and Intellij IDEA) should probably be roughly the same.

However, I would assume a minimum of 6 weeks (full time at least 4h / day). But then you have reached the point of self-confidence, where you constantly grow with the tasks.

If you’re new to programming, 8 weeks is probably a good benchmark.

It is difficult to shorten the total time because you only learn by repetition and by trying it yourself. And you can’t just pack “more” into your day and hope you can do it all just because you’ve seen it once.

2 Likes

Cause I am programming with Java over two decades I can’t say anything about but you have the fresh experience now Jeannot. Thanks for this informations.

As I mentioned before, after a decades-long not-really-love-hate relationship with Java, I’m convinced that there’s a kind of magic point to overcome.

But then it suddenly clicks in your head and everything fits together wonderfully. Reaching this point is a bit difficult as a beginner to Java. It’s at least different than all the programming languages I’ve learned, and that’s a few.

It might help readers who used to feel like me that today’s Java (despite downward compatibility) doesn’t have much to do with the old Java. A lot of what I used to miss is there today, the JVM problems with memory management are a thing of the past, and above all the IDEs have become much more mature. And that’s written by someone who certainly hasn’t missed a single joke about Java in the last 20 years.

I mentioned the most important piece of advice I have the other day. Learning Java requires a structured approach. Little things like “class path”, modules, packaging, database access have to be learned at the right moment. “Jumping around” leads to the fact that you overlooked a small piece of advice which might drive you to madness, for instance overlooking the StringBuilder class and being happy that you can concatenate strings in the Xojo way or like in other languages. It works indeed, but is not necessarily the best way in Java and consumes more memory. One small example of many.

Am I misunderstanding you, or is StringBuilder not a best practice in Java?

Using StringBuilder (and String.Format) was the noob advice in .NET as well, and it’s still not bad advice, but there are even faster ways, particularly on hot paths, and the current framework implementation just uses those methods internally for up to 4 strings being concatenated. Also, there are considerations around minimizing ephemeral allocations that have to be weighed.

I just had the impression the situation was similar in Java.

it is!

I wrote “for instance overlooking the StringBuilder class” … Ignoring the existence of the Stringbuilder class would have been more precise.

One example of many. What I wanted to say and perhaps it got lost in my Genglish:

there are many ways to achieve a goal in Java, hence a structure approach to learn the language is a very good advise. As most ways in Java mean to use a class, you should be aware at least of the most common ones, before you start writing your first own app.

I see a certain risk with learning Java that one quickly acquires bad habits through unstructured jumping around in the learning material, which one cannot get rid of very quickly.

Something you need to be less careful about with Go or TypeScript. I don’t know .NET but I assume that it is probably pretty much the same for that framework.

Pretty much (and thanks for the clarification).

It keeps growing and the prime language, C# keeps growing as well. Sometimes it feels a little like a kitchen-sink approach to adding features, so yes you need a structured approach.

They are investing a TON in performance improvements (.NET Core was undertaken primarily to overhaul performance, not that it was a slouch to begin with, and that continued over the past 3 years since the original framework was retired). I was stuck on the old framework until the past few weeks, and it’s a dramatic difference in speed, even without specifically taking advantage of the newer features like Span<T>, etc.

And that is the difference between C#/Dotnet and the Java World. Java is optimized for Desktop like nothing else with Swing you have a fast and reliable Desktop Framework. With Java String Util and Apache Common you have modern String tools. With Files Util you have a nice File read and write framework. Everything is in my eyes: pretty simple.

C# needs to become adult in that point hence they were focussed on Windows and never on Cross Platform and they are still not really focussed on it. They still leak a usable Desktop framework for MacOS, Windows and Linux which is performant on all platforms. Java has even two of them (Java Swing and JavaFX where JavaFX not only runs on Desktop but also on Web and Mobile).

It sounds to me like you are describing both Java and C# except arguably the multi-OS piece, which isn’t an issue for me in my current project. I just need to do services and APIs, which can just as easily target Linux / Apache as Windows / ISS, especially since Sql Server has had a native Linux version for a few years now. And it’s all blazing fast. Right now I’m running a process doing complex name and address standardization at about 350 records / second.

I don’t have any opinions about .NET Maui at this point. I’m sure that Swing and FX are much more mature though, and if I needed multi-OS targeting for a system that wasn’t headless, I’d certainly consider it.

As someone who’s spent countless hours (days, months, years) in trying to make the best Mac apps I can, I can safely say that Xojo is NOT low code. There is so much expected functionality missing from Xojo made applications, that discovery of code and more code than other tools to implement.

What kinda irks me more, is that this functionality is present within the Xojo IDE and therefore, Xojo have the code to handle this, but they don’t and worse yet, they don’t give a shit about those who’re trying to help others build better Mac apps with Xojo.

If only the CEO understand what it was like to create a competitive Mac app in 2023 with his tool, things would be very different.

4 Likes

When and if you are not in the need of gui it is okay. And the other side is I guess you are not experienced with java. I doubt that you need to learn it when and if there is no need.

The performance of jvm is nearly unbeatable. That’s why banking system back servers worldwide are a java domain. Since there is the possibility also for dotnet and I doubt that the performance differences are so important for you at the moment. To have a faster CPU is more impressive then to change the language while it brings more.

At the moment You need gui Out could take one of the capable ways. A html JavaScript gui for example us possible. I wouldn’t change the Toolchain in your situation.

The entire point is not that. If you need gui that looks different while Ms was not taking care of it since many years while sun and oracle does since two decades.

Xojo is low code in the amount java or c# are low code. Exactly that is the amount of being low code. It is a programming language. Not more. Not less.

2 Likes

Evidence that Xojo is not low code:
https://forum.xojo.com/t/text-encoding-of-popupmenu/75001

If a developer has to fumble with text encoding at this level and detail, it is not low code.

1 Like

In a situation where you need to fumble with workarounds like hell there is no question: Xojo can’t be no code.

low-code versus high-bugs? :slight_smile:

1 Like