You don’t need to write platform code. You can. You can write an own ui for every platform to have native ui. Or use one ui for all platforms. What ever you want.
OK, it’s been a while since I messed with KMM. So, I decided to give KMM another trial run, following their tutorial “Create a Kotlin Multiplatform app — tutorial”. I downloaded everything fresh (e.g. Android Studio, KMM, Kdoctor, etc…). Some things have improved but some things are still the same as far as the user experience goes. You actually have to create a KMM project in a web browser and not within Android Studio itself … I’m sure that’s just temporary. The user experience seems to have improved but there are still some rough edges. I ran into this Duplicate content roots detected which is not a show stopper but it’s not a confidence builder either. But with all that having been said, I was finally able to get a simple app running on Mac OS, Android, iOS and WASM
That’s what I meant. It is still not ready but more ready than xjo ever was
Many of the tradeoffs, limitations, and business concerns discussed in this thread are very real, but given your background and intended use cases, and if your main targets are MacOS and Windows, I think Xojo is probably a good choice. (I can’t speak to developing web apps with Xojo because I’ve never done it.)
Xojo has a relatively short learning curve and is much simpler to get up and running with (and stay up and running with) than trying to get up to speed (and stay up to speed) on the Java ecosystem, or the Electron/JavaScript ecosystem, or other such alternatives. If you were a professional developer trying to build a software development business or career, then you’d probably be better off investing in one of those vastly more popular languages/frameworks, but as a business owner just trying to develop in-house business applications for your own use, Xojo should serve you well.
People are understandably frustrated by long-standing bugs, delayed or half-baked features, the API2 transition, the Web framework 2 shift, etc., but I don’t think that should be decisive for you. In all likelihood, you’ll be able to work around or change your approach to deal with whatever bugs and limitations you may encounter, and as a new user the API2 and Web 2 changes mean nothing to you, they’re in the past and they didn’t, don’t, and won’t cost you anything.
I say this as someone who has developed a couple of quite complex business applications with Xojo over the past few years, as well as a dozen or so smaller apps. I never once came across a bug or limitation that stopped me from somehow or other accomplishing what I needed to accomplish. There are specific niches where Xojo might be completely unsuitable, but based on how you intend to use it, I seriously doubt you’ll have any insurmountable problems.
Sorry but no. I developed a xojo app cause the customer wanted it. Result: slow. Why? While xojo is slow. Short time answer. And buggy. And the ecosystem is small. And … Too many features are not available at present. And for all of this you need to pay. And that’s it.
You may have written a bunch of apps. But my customer wanted a business database app. It works. But what I have told him before was: it will be slow. At the end we wrote the same app in java. Decades faster, more reliable, platform independent.
You may not be able to see and realize. Beyond the fact that it is slow it has bad database connectors, a terrifying string handling and a buggy and fascinating foul math.
Now tell me: you really mean that?
The learning curve of xojo is as big as the one for java. Writing desktop apps with java swing is not more complex than writing an app with xojo. The other way around.
But basic sounds less complex. It is not but people believe that. So what?
At the risk of sounding like Donald Rumsfeld, in your scenario you only need to know what you need to know to do what you need to do. If your objective is just automating tasks for your business you probably don’t need to keep up with the latest and greatest library ( or even the whole breadth of the Python standard library ).
.
If you’re receiving webhooks then surely you will need a server process no matter what language you use because you’ll have incoming POST requests, or are you just hooking one external service to another?
.
If you do have incoming POST requests to handle I wouldn’t recommend PureBasic, it does have TCP network commands but you’d have to implement the HTTP protocol ( and encryption? ) yourself
It seems you’re already somewhat familiar with a language that would be good for this… Python.
Here’s a decent quick start on Python + FastAPI which might be of interest:
I believe that if you can learn to program in one language then you can learn to program in any language. There is an amount of truth to the idea that a similar syntax is quicker to pick up on however the ability to develop the logic to accomplish the programming task is the key factor and the syntax/programming language used is a minor factor. If you can program in one language then you can learn to program in any language.
The most important things still remain: 1) Does the tool you choose support all of the platforms you actually need to target? Whether or not the IDE runs on your preferred OS is nice to have but not a necessity; 2) Has the tool been around for a significant number of years and does it have a large number of active users? This is going to be a good but not perfect indicator of whether you can rely on it to still be supported ‘X’ number of years down the road; 3) Is there a good ecosystem of available components/libraries available from reliable vendors? Time is valuable why spend days crafting your own solution when you can spend a reasonable amount of money for an already developed and tested component/library that lets you focus on what makes your app valuable to yourself or a customer.; 4) Will code written 10 years ago still compile or will it compile with only very, very, very minor changes? C# comes to mind here that since MS is constantly changing directions can you count on not having to keep maintaining existing code just because the vendor can’t make up their mind on what direction they are going. First it was .NET Framework then .Net Core now it is .Net; along with Winforms, then WPF, then something else away from native desktop (as I remember) now MAUI - I’m too old to have a desire to keep learning something new just for the sake of the next new shiny toy.
Hi jalih, I just realized your the author of the many sample programs on the 8th forum. I acquired 8th yesterday and setting it up was fairly straightforward on my Mac. The first sample program I downloaded was Tetris - the graphics are smooth and very responsive - awesome! I’ll certainly be diving further into the world of 8th(Forth variant) to evaluate for cross-platform development.
And you decribed Java as the perfect candidate. It is with a broad userbase, it comes with all platforms including embedded platforms, it comes with UI Systems for Desktop, IOS, Android and the Web, is drives Webservers and also Desktop-Programs and with Linerica NIK you can compile on all platforms. Is there anybody else granting that?
Exactly!
I have a strong commitment with Delphi due to the many, many years of using it and Turbo Pascal. Delphi using FireMonkey (FMX) as the app type does give me Windows, MacOS, iOS and Android out of the box without having to buy 3rd party components. The components do make life easier. Out of the box I can’t develop for web - that needs 3rd party components.
If/when I do need to seriously move to an alternative to Delphi all of the information in your posts has led me to so some investigation and convinced me that Java is the only serious tool for me to consider. So many options for IDEs, the availability of resources and the size of the ecosystem just makes a move to Java a no-brainer to me.
There are a lot of niche tools that look nice but at the end of the day Java has been around forever and lets you develop for every mainstream platform and probably lesser platforms that I simply don’t know or care about at this time. Your evangelization of Java has convinced me to be a convert.
It is cross platform. Linux 32 and 64 bit on arm x86, power PC, riscV. Windows on all supported platforms macos on all aupported platforms. Linux,Windows and macros desktop. Using swing without an library than java by self. With codenameone for iOS and Android. With GluonMobile JavaFX for Android and iOS. With jpro.one JavaFX as web application. As single pager or routed variant. That’s my toolbox short described
Yep, you would need something like TMS Web Core Framework to develop for the web in Delphi which will set you back about $503 USD plus yearly maintenance fees - but it is a fine piece of software.
I just wish Embarcadero had actually followed through on their assurances they WERE making Delphi for macOS once Delphi was 64 bit
That was ages ago (more than a decade)
They have multiple UI frameworks and the one they use for the IDE etc ISNT the x-platform one
So the entire dev environment is Windows only
With java you can use vaadin. Open source.
I had a look in the actual Delphi IDE. It is for X-Platform crap cause too complex and too much stuff to do to get X-Plat running. The Idea behind is the same like Xojo. And the process is also like Xojo. It has Bugs like it but faster Bug correction. But at the end it is: buggy and expensive. Not usable in my eyes for Xplat Development. And you have to pay for the ecosystem-libs much money. Okay, as a Xojo user you are used to it. As Java user not. The concept is the same like Xojo’s concept.
I’m OK paying good $ for a good product
Like the JetBrains IDE’s which are stunningly cheap (I can get all of them for $289 - seriously? This is SO Dirt cheap even though I really only need Rider at the moment)
I’d go the java route IF my clients were inclined to entertain it but it seems they all have a bad taste in their mouths from “past experience” - I have no idea what that is in most cases.
For them I think the issue isnt IF they could use it more HOW to get started building the things they specifically want. I will say thats one area where IDE’s like Xojo, Delphi, VB6 etc all made that VERY easy to get started.
And as we have mostly all experienced, once you get started and get a LOT of work done even when you hit a bug or something big you have to work around its sometimes easier to work around that than it would be to stop & rewrite
I’ve experienced that and still do with projects that clients have in Xojo that they do not wish to rewrite
However, they are VERY aware that rewriting is a serious option
Hence why I’m also writing some in C# for those clients that are purely Windows shops
I have always liked the TMS components. They are very feature rich and are much more reasonably priced than the DevExpress components which only support VCL (Windows). Currently the only Delphi components I have in my toolbox are the TMS FNC sets allowing for X-plat.
Which version of Delphi did you look at? I would agree that back in the XE2-XE4 versions which are about 10-15 years ago that was 100% true. Since the Delphi Rio version, maybe 6 years ago, the FireMonkey/FMX has gotten a lot better. It’s far from perfect but creating a Windows/macOS/Android app from the same code is just a matter of which target am I building for.
To your other point, you are spot on that the 3rd party component libraries do add a large cost to the endeavor. I looked at the pricing as a new user to buy a Delphi Professional License that is $1500 the TMS FNC Component Studio is $1000 - so $2500 to get started and then $400 each for renewal of Delphi and TMS total $800. Compare that to $600 for IntelliJ Commercial license and $200 for JFormDesigner Commercial.- $800 total. Big difference in the cost to get started and with Java there are plenty of free IDE’s and other tools so the cost could be $0.
They have a developer survey every year which asks what things are important to devs that they should be considering. The IDE being available on Linux and macOS is on there. I can only guess that from the responses they aren’t getting high enough demand for it to warrant the effort to either start over building a new replacement IDE or to build and maintain a separate IDE for the other platform(s).
The most people having the taste in their mouth while they have no Idea about that what they are thinking it is true. Java is not secure. This story I have to listen in that cases. It was the use of WebStart what was never secure when not used correctly. WebStart is history. It was also history before. I have never used WebStart while it was for me not needed. Even if I would not use it but writing an Application with Java Server Faces (JSF) or before I would write an application with Java Server Pages (JSP). The most accidents where happened while IT manager decided to setup applications like that.
I have had several phone calls with engineers from their team and one flat out said that porting the existing IDE to use the x-platform framework would take 5 years and wouldnt be worth it
So I would never hold my breath just for that
And they’d have to rewrite their compel apparently as well
That is unless they embarked on writing an entirely new product/IDE
Again not holding breath