Suggestions for a Xojo replacement to create cloud web apps

Hello all,

I have to create a new product which will be cloud based. It will have several thousand users simultaneously. I would probably use PostgreSQL since that is the database I’ve used for many years, but could change to MySQL if necessary.

I program using Windows 10 computer, and have little to no experience outside of VB6 and Xojo since RealBasic was alive and most recently Anywhere Software B4J, B4i and B4A. These last 3 were due to writing a fairly simple smartphone app.

With my experiences, I would rather stay with a ‘basicy’ type environment, but am willing to learn another language. What I do not want to do, is to learn a whole group of new languages to build this product - hence the reason to choose Real/Xojo many years ago.

Has anyone got suggestions for what should be used?

Or, will the latest Xojo handle these needs?

Thanks,
Tim

Keep using postgresql - literally free for ANY use. Not so for mySQL

Scaling Xojo WILL be aa challenge to support several thousand users simultaneously
You’d need to be running MANY instances (how many is hard to say)

I dont know the B4x product line well enough to comment on them
Some do like @Alwaysbusy and maybe @thorstenstueker

Personally I’d head the route of Java just because it IS one of the most used languages in the world, its not TOO obtuse, and there are tons of resources
Yeah you learn to like curly brackets & semi colons but thats just minor syntax
In xojo its END FOR, END SELECT, etc and NO multiline statements with out a _

Thanks Norman,
What IDE would you suggest for Java?

Tim

With a LOT of instances and a good load balancing, MAYBE :rofl:

I moved all my web services from Xojo to B4J, why dont you try with that?

really depends on needs

I dont know enough about deploying a B4J app so it may work but thats better left to someone who knows B4J & how to deploy it and how well it scales

and this is about where my entire 2 cents is spent :stuck_out_tongue:

highly recommend IntelliJ IDEA from JetBrain

as for Java, you will learn to get use to the curly bracket and semi colon.

B4J is only for Windows only

which is OK for @tseyfarth
he did say he’s a windows user in the opening post

I would suggest you to use vaadin and java for that. You can realize what you want without any problem.

Python/ Django

1 Like

Before writing the first line of code and a tool selection, I would first collect the requirements. So far we have:

  • Cloud
  • Several thousand simultaneous accesses
  • A database

This means that Xojo Web would have failed without load balancing across a large number of servers or Xojo Cloud instances.

But the product in question can still be anything. Maybe it’s a pure API to make data available to others, or a full blown UI. But here too, there could be at least 2 possibilities:

  1. Desktop app that reads data from the cloud or
  2. A web app

With 1) the question arises as to which platforms this should run on (cross-platform clients?).
But I assume 2) is the case anyway, but then there are questions as to whether it is important that the app also looks good on mobile (responsive design) and whether concepts such as PWA are important or just nice-to-have. Second, you should evaluate at 2 which “controls” are important. Should tables only be displayed, for example, or should they also be editable, etc.

With the database, it also depends on what you want to save and how. If you only work with JSONs, newer concepts such as mongoDB are very interesting, but there is a limit of just over 20 MB per data record, and the latest postgres can also process JSON files very easily, mySQL less well.

In this respect @thorstenstueker’s recommendation with Vaadin and Java IMHO is the better one. Because at least you would only have to deal with one language, more or less a simple (but above all powerful) language at your disposal, a simple deployment and for a similar price as for Xojo even with a layout manager.

Now comes my assessment (from my own experience): No matter what you will do, set yourself realistic goals. Even with Java you have to reckon with at least 3-6 months “onboarding”. I would even say 6-9 months full time. I’m not talking about a new programming language, that’s the most trivial point, but the entire ecosystem (UI technology, IDE, using databases, test cases, error management, trainings, tutorials, finding the right information sources and this list could be almost endless).

It’s like VB, Xojo. A master doesn’t just fall out of the sky. And once you’re a master, it’s easy to forget how much time and effort you’ve put into it over the years. I.e. no matter what well-intentioned advice we give here, unfortunately you have to implement it and get your head around it. And that’s tedious, sometimes frustrating, but it’s a lot more fun with almost all other languages than with Xojo. There is only one problem: with Xojo you regularly end up with a show stopper and can blame the manufacturer, with other languages it is almost always your own fault. :wink:

But please don’t be intimidated. The most important thing is to make a decision and start! I wish you success!

Edit: I forgot one of the most important things about web apps: security and authentication. That alone is a challenge. Something that Vaadin and other server-side rendering solutions largely do for you. If you deal intensively with the topic, you quickly realize how many solutions on the web are extremely insecure and easily hackable. But here, too, it depends on your requirements and how sensitive your data and apps are.

I switched from Xojo to Vala last year. I’ve created a number of web apps using both of the following:

  • Backend (API) created using Vala and then the frontend in pure HTML/JavaScript/CSS hosted on nginx . The content placeholders are loading divs and replaced with content using JavaScript calls to the API.

  • The same as above but the HTML files are stored as templates in the Vala web server app and the placeholders replaced with content server side.

Intellij ist the one and only with good functionality for java beginners

1 Like

No truer words were ever spoken. Learning a new language is no big deal, especially after your first one (with the partial exception of some total paradigm shift like functional programming, e.g., F#, Elixir, etc., or some highly opinionated thing like Lisp or Forth that isn’t even in play for everyday line-of-business app development anyway). It is the ecosystem that takes time to master, especially if you have to make architectural decisions early in a design process.

This is exactly why I would be more inclined to stick with .NET, even if, arguably, some aspects of that ecosystem (e.g cross-platform, multi-targeted, shared code) aren’t as mature as Java, I know the ecosystem well, and that’s not nothing. Also, I’m far more likely to be approached by a client that already uses .NET and wants to stay with it. That said, there’s absolutely nothing wrong with the Java ecosystem and if I had someone who wanted to fold me into a Java environment, I’d be all in. I’ve used JetBrains development products (Ryder, C-Lion) and I have no doubt that IntelliJ is equally impressive. Java would be a super-easy language for me to master, coming from C# (C# was MSFT’s answer to Java anyway).

2 Likes

That’s right, there are not only supporters for the top 20 programming languages, but also good reasons for those tools. Someone wanted a new language to do something better, differently, and if it’s in the top 20 now, it’s for good reasons.

I think what often gets lost in our discussions: there were / are reasons why we chose Xojo at some point: mainly because we wanted to have ONE environment for everything (at least for a lot). Most of the people who use Xojo are one-person shops, or at least smaller companies. Larger companies naturally separate the front and back end on the web, both layers must be able to talk to each other, but technically they can be different stacks. And a completely different team develops for mobile and possibly desktop. That’s not manageable for one developer alone.

If you now want to map everything that Xojo offers (at least in theory) with a different toolchain and also only want to use one language, then Java is probably the only option at the moment and I agree with @thorstenstueker right here.

But that does not mean that everyone has this requirement.

If someone just wants to do web for instance, the question can be answered differently. And if someone like you is successful in another world, there is no reason to change either. But if one wants to change it is important to “START” and to be aware that it will be a fun but not an easy ride :wink: .

1 Like

If someone wants , for example, to develop Desktop only for MacOS: Xcode and probably Swift would be a good choice. And so on. Exactly. Only when you need all platforms in one Toolchain to use the business logic between the platforms java is the best choice. If you need only parts of it you may have other conclusions. For me it is no question cause I want to work with one language and one toolchain and not with many more of them. But at the end; people have to decide what fits the best. Even if the decision runs against every logic.

1 Like

One thing I noticed and find is that often people expect to be seriously productive with a new tool (Vaadin, ect) and “up to where I am now with Xojo” extremely rapidly
IF you, like me, have spent a LONG time in Xojo then there are years invested un in learning it, the IDE, etc
And to get to the same level of proficiency will require a serious investment of time

Dont be disappointed - its just how learning something new is
Many concepts will be similar depending on the tool & language
Many will be entirely foreign
But keep at it
Persist
and it will come

For me it is no affair to lern a new language. It will cost half of a year and more to be professional in that language. Nothing else. What ever I will try to do against: it will not work.

For me Java is the “home play”. And C++. Programming in Objective C or in C# needs time for me. I can do that but it costs too much time comparing to my C# guys which are much faster with it.

And yes, this time people speeded at the beginning of their Xojo story. But somehow this disappeared behind a foggy curtain like it was: I looked a tutorial for hello world and all things IO could do after and I was Xojo professional. Even I needed three months to get completely used to it. And it is really a small framework with not that much functionality.

The nice part learning for example Java is: the language constructs are always the same until the last library I want to use. There are no differing api’s. Nobody even thinks about to leave the way of good practice and so Java is constistent and better to learn than C++ or C#. But - like all time - people will tell you that it is much better to write Webapps in JavaScript and Python or similar than simply with Java and Vaadin framework.

The big problem is: learning Vaadin is simpler when you started with learning Swing before. Same for CodenameOne for mobile apps. Simpler to write them when before learned to write Swing. And when people decide: Ahhh naaa I can learn it by doing without learning Swing…it ends up with I can’t. Is the language bad? No. The problem is that the people don’t want to spend time learning while they even now think: okay, I have learned Xojo in minutes but this I have to learn in months.

And this dog bites in his own tale day for day week for week. We can’t change that. I repeated often: Java is the best Solution. Why? While you can get all Jobs done with one Language and with one Toolchain. No JavaScript needed. Simply Java. For Vaadin. For CodenameOne and for Desktop Applications with Java Swing. That le<rning Curve is there. Yes. But after getting familiar to Swing you can also learn fast how to use vaadin framework or codenameone framework.

That is the point. There is no other framework where it is similar to write web, Desktop or Mobile.

1 Like

Plus they often expect that a new “thing” has to work like what they have learned in the past.

Exactly, I learned and un-learned quite a few languages in my life, and it always takes a lot of time. The time windows I mentioned above are only about “feeling at home”, “having the trust to understand what you are doing”, for really mastering a new eco system it usually takes far longer …

Last but not least:
I notice that people often discuss, but rarely go beyond the first test steps. The first steps are always difficult, but you can only have a qualified say when you try something new. And only then, let’s say after 6 weeks, can you decide whether to pull the ripcord and the new tool, for whatever reason, is not the right one. And even if you change again, you never learn for nothing.

No kidding. I’m 4 months into full-time Go coding and I feel frustrated many days because, “that’s a five minute project in Xojo” that takes me many hours in Go. Mostly it’s from me not knowing we already had a package that would do that.

It’s that 10,000 hours thing. I’ve already got that in Xojo. Going to take a while in Go. But, I’m starting to feel productive (most days) but still fight with the ‘engineering’ of Go - the language itself is pretty easy.

There is definitely a learning curve with any new dev environment. And that’s why it’s hard to move from one to another for any given project because not only do you have to learn the language, but its nuances, and the frameworks to use/not use.

3 Likes