Why go for cross-platform desktop apps in 2023?

Of coarse not. There is no way to write performance gui apps in Python

I assume you mean in Python, lol

Which is one of the problems with Xojo and the whole self-sabotaging ā€œ2.0 All The Thingsā„¢ā€, it just got worse.

Xojo needs a couple of well made, well known apps in the market place that people pay attention to. The trouble is, they pissed off most of the people capable and willing to make this happen.

Yes

Indeed, and that was my biggest misjudgment when testing and talking about API2 in isolation. At that time I had a little Xojo break and started with a new project (at that time not all new events had been implemented). Of course, semantic changes are always a matter of taste, but at least one or the other change made sense (to me).

But you will get hammered latest when you start an old project and then it only gets worse with every newer Xojo release, actually completely crazy (thereā€™s no other way to describe it).

Iā€™m likely not the cynic but the Inc. with their assertion that you donā€™t have to change but at the same time boast that x bugs will be fixed in the latest release. And letā€™s not talk about the auto completion mess and the new documentation :frowning: .

Trying to re-align the original topic. I think if we are leaving our own bubble (aka knowing Xojo and their ecosystem and the specific terminology) and put ourselves in the position of a complete beginner who has never been interested in cross-platform development:

  • Without knowing the term ā€œXojoā€, it seems impossible that a normal search in 2023 will suggest Xojo proactively.
  • Maybe the searcher will find ā€œXojoā€ on some lists, but only among other things.
  • There are no blogs that have a reach large enough without the term Xojo to point to meaningful information.
  • Since most ā€œBest languages forā€ articles copy from each other, Xojo seems to have been ā€œforgottenā€ for about 10 years.
  • Even the most well-known components of the ecosystem (MBS, Einhugur) donā€™t seem to affect searches in any way if you donā€™t use the term Xojo. Here, too, there are no influencing effects on a search for cross-development tools.
  • The ā€œXojo Cloudā€ is also meaningless and canā€™t be found unless you search for ā€œXojoā€.
  • The issue isnā€™t unique to desktop development. A search for mobile development tools yields similar results. If you use ā€œXojoā€ in the search you will find what you are looking for, otherwise you wonā€™t get pointed to Xojo.

If you find Xojo as a beginner, then you quickly end up with the critical voices on INN and also the statement that there are only 2 larger forums in total. Youtube videos are also few and far between. Platforms like udemy.com offer next to nothing, and a search on Discord doesnā€™t show anything either (at least nothing about programming with Xojo :slight_smile: ).

That means IMHO: even if a beginner somehow stumble across the term Xojo (e.g. on github in the .gitignore template list :slight_smile: ) then this person should quickly turn away sobered, at least the probability is very high that one will deal with other languages first.

This is of course a diametrically different situation than 20 years ago. Back then, many of us were looking for programming on macOS, or alternatives to VBA, Pascal, Delphi, etc. Back then, Realbasic was still halfway cool (despite the name) and ā€œen vogueā€. At least the coolness factor is non-existent in 2023.

The quality of the current questions and answers on TOF alone should make every beginner think, that was different 7 years ago when TOF was still an inspiration, that you might have found a hobby tool with which you can create small miracles.

And last but not least, we must not forget that Xojo is a paid closed source solution. Even that is completely out of date and you have to offer a very good solution in 2023 to get the money from developers. Especially since Xojo is de facto a subscription, even if the Inc. of course sells or wants to sell it differently.

2 Likes

I must be living a charmed life then because over the last 5 years I have used Python for the overwhelming majority of my paid work and have never encountered this.

Look! A straw man!

The question is not
ā€œIs Python faster than Java?ā€
itā€™s
ā€œIs Python fast enough for the task in hand?ā€
The answer to the latter is invariably ā€œYesā€

By default Python compiles to bytecode, just like Java. Sure Java is currently faster than Python ( thereā€™s changes incoming for Python bytecode to speed it up though ) but in terms of performance itā€™s a very mid-table language so in reality youā€™re making the same call - will Java be fast enough for the task in hand?

In the last 5 years Iā€™ve only made one small desktop app (ime thereā€™s not much demand for desktop apps anymore), I used wxPython and it was absolutely fine.

2 Likes

@thorstenstueker

Can I ask if the ā€œJava for Beginnersā€ course on Skillshare is yours? I am looking for a Java course for beginners, and I saw the coffeecup logo, which is like yours.

Anyway, I am going to take that course to learn about Java.

Python is the most popular programming language in the world at this moment. However, I agree with you it is a scripting language, not a real programming language, despite the fact you can do much with it.

edX have a good selection of courses from well known institutions ( Harvard, Stanford, MIT, ā€¦ ) and companies ( Amazon, ARM, IBM, ā€¦ ), I would check those out first before choosing a course from a random individual.

No question and we use python also for some cases. But not for Webapps or for desktop apps. Not everything possible is useful.

lol yes, 50% of Pro coming from Paul

I can recommend this course: https://www.udemy.com/course/java-the-complete-java-developer-course/ if you donā€™t mind an Australian accent (I donā€™t). Well structured, precise a lot of exercises, reflecting most changes in the latest JDK LTS.

For those not knowing: Never pay the official price on udemy. Check the page for a few days / weeks. They have promotions all the time, and you will get courses for 10-15 EUR. Which is a no brainer for a course like the above with over 100h of excellent content.

Interesting side effect with the above course, one of the rare ones using IntelliJ IDEA, so you will learn the IDE as a side effect.

Edit 1: only down side (if any). Tim ā€œonlyā€ covers JavaFX not swing. But if you learn JavaFX Swing will be easy too. Plus there are many course on Swing too. It doesnā€™t really matter IMHO what you are learning first, it is more important to start.

Edit 2: With JavaFX and the free of charge Scene Builder - Gluon for Desktop you will encountered a very Xojo-ish experience from a layout perspective, with the only difference that everything is working and of course you can build an exe / app / deb or an installation package for all OSes including all necessary libraries and if you wish your openJRE, so that your end users will see nothing from Java, if they donā€™t dive deeper. Granted your IDEs will not look 100% ā€œnativeā€, but on WIndows and Linux still much better than the current Xojo binaries :wink:

Ah I just came back from car repairā€¦ I was not writing this or any other Course on the Web for beginners. I wrote many Libries or was a part of the writer of Libraries which you will find in your everĀ„days use if Java.

At the Moment Iā€™m in the middle of a Mobile Project generation for JavaFX for Open Source use while Gluon was not providing anything under MIT License.

I sadly have no time for Teaching and if I made small Tutorials that where only fast Screen recordings for five Minutes but never Tutorials how they should be: planned and with all the needed side knowledge.

But I would follow the recommendation of Jeannot he has his reasons why he decided to tell you exactly that Tutorial. Mostly while he done it by self.

1 Like

Mostly, Iā€™m at 90 percent :slight_smile: but 120% impressed.

Thank you all for the suggestions. I followed the Udemy link, and this course seems indeed very interesting. As suggested, I will wait for a promotion.

Thank you all again.

Chris

My pleasure, I paid some money on completely crap courses on udemy but this one is current and well structured. The audio and video quality is great, the used slides (which you can meanwhile download, udemy blocks screenshots technically) top notch.

In addition, his voice is pleasant and general topics that you probably already know, loops etc. can also be played at 1.25-1.5 speed without losing the thread.

And heā€™s been doing it for years (has also been working with Java for > 20 years) and that rarely happens at udemy, if at all. Seen in this way, I even find the normal price of 130 EUR very reasonable. But since udemy has special offers every 2 weeks, Iā€™ve got used to waiting. The monthly subscription for 25 EUR is not an option for me. You can cancel any time, but that means the course and the documents are gone.

Good luck for your learning! The only downside I see so far: when you think youā€™re done, thereā€™s new content again :wink:

Thatā€™s probably the only challenge with Java. There are tons of resources, but a lot of them are often older and itā€™s a bit more difficult to find the right information. But that is logical for a 25-year-old language compared to a new hype like Go or Rust.

However, it gets much better once you get past the beginner stage (which takes a few months). You can clearly see that Java is often used in an enterprise context, and nobody ever has time to tinker with beginner tutorials, or there are certainly such courses for internal onboarding, but they are not made public.

In addition, the Java ecosystem is very powerful. For example, there are at least 3 different ways to read input from the console. And that runs through almost everything, so that you often donā€™t see the forest for the trees and accordingly you have to invest more effort to get specific answers about your surroundings and requirements.

Everyone learns differently, for example I am often a friend of just getting started with a program in a new programming language and then acquiring more and more knowledge. Unfortunately, this doesnā€™t work so well with Java (I would even say , with burnt fingers, lost lifetime!)

Not only because of the object orientation, which runs through everything, but also because of the general structure, the ecosystem, classes, modules, etc., you should acquire the concepts of Java in a structured way. The advantage is: you learn faster and faster and itā€™s more and more fun.

But I love the certainty that more options are simply better than restrictions, you just have to struggle through it but you will be rewarded very quickly.

The advantage of high-priced Apple hardware is certainly that you donā€™t throw it on the wall so quickly :slight_smile:

By the way: itā€™s not just old men who teach Java, Iā€™ve also had a lot of help from very young developers. It looks to me like Java has seen a kind of ā€œrevivalā€ since Java 11.

The break between Java 8/11 und the 7,6,5ā€¦ and so on is big. Thatā€™s why many people had to change their thinking. Reflections if one keyword and also changes in the class inheritance and so on. So it is reality that between the old Java World and the new one is a big gap. Starting with Java 11 you have the security that your code will work also in 17/19/20 and foreseeable also 21 with smallest changes. Only problem you may have it: you need also to update your libraries to the next stage. Normal. And so people learning Java today having a massive amount of functionality. But you can also say: with a lot of reliability. Javas big functionality is: change your compiler and compile new, it will work. And so you can provide your newest Release for example for Apple Arm from the first beginnings on. Once JDK is compiled for your Platform you can use all your Java Software on that Platform. And starting with Java 14 it became even more portable while you can use package to produce installable packages like DMG for Mac, This is for the programmer a bit of heaven.

The most interesting Part is of coarse the fact that your Software once written (JavaFX or Java Swing, Vaadin or CodenameOne) will run on that JDK also on the flaming newest platforms. So for Example Windows Arm 64 Bit. Or X86/64 Bit. Without Limitations. And for the most Platforms you also can use NativeImageKit from Liberia (Bell-Software) which compiles to a native executable from a Jar File. That makes it extremely portable for all Platforms, with JavaFX for example you can even compile for IOS and Android (Gluon mobile goes that way).

As you can see: Java produces always reliability and sustainability for the foreseeable future. That makes it a fun to use while you have Silence.

Why I am writing all this? While I want to answer also to he automatically upcoming question: Why should I learn Java. Thatā€™s why. Whyle your time / money invest for writing your App is not useless in 5 years or even ten years.

Yes, times are changing. A year ago it would have been impossible for me, on principle alone, to agree with you and your eternal and brutal Java mantra! :slight_smile: .

But a little un-learn and re-learn has worked wonders for me.

Whatā€™s happening right now in the direction of native compilation is more than exciting (even if you donā€™t really need it, poor performance is really not the problem with Java).

Of course there are also reasons for other development tools, but on the one hand Java can integrate a lot of languages, and on the other hand most readers come from a Xojo environment.

If you want to map everything that Xojo offers in one language professionally (even more professionally), then I donā€™t know of any other free tool that it is capable to achieve this.

I donā€™t know that anyone can really make that claim absolutely. Java 11, Python 3, .NET Core, all broke things, but in ways that the community for the most part accepted, because there were real, attractive benefits to it (and in the case of Python 3, which REALLY broke some things, there was a generous, decade-long transition period where Python 2 remained fully supported and even got some enhancements).

When .NET 8 comes out November-ish, I will adopt it if for no other reason than the new FrozenDictionary class which will give me a real performance boost in an app that is caching a great deal of indexed collections in-memory ā€“ but that means no turning back because that functionality didnā€™t exist prior. It is a solution I canā€™t share with someone who is constrained by various corporate policy to, say, .NET framework 4.8.

That said, and to your point ā€“ people who want to stay on framework 4.8 in .NET for example will not find it suddenly not working, even though it has been a few years. There will come a time when difficulties with that version will become a personal problem ā€“ but not until enough time has passed that itā€™s both reasonable and wise to do a rewrite anyway.

1 Like

Java 11 was not breaking that much things only were in Java 8 a big pile marked as deprecated. That projects can be supported until 2030 (Think why they done that? Exactly. While that things were not broken but deprecated from the first Release of Java 8. That is not broken like in Dotnet always: passed away. That is: with years of deprecation warnings!!! And stupid people that wrote: broke my Code. No. Java 11 had deleted what was deprecated in Java 8. That was in 2014. While the Software Vendors needing time:you can still compile in the Java 8. And that is STILL bug fixed, that is still under security Updates until 2030. In the World of Dotnet youā€™ll not find that. Definitely you are funkte up after two further years. So I canā€™t really get what you want to tell me with that comparing? That Java has technical Support, security Updates and Bugfixes for Java Release 8 until 2030?

That is Reliability. And that works. And yes, they changed Stuffs. So you can decide when old Java 8 User: using further Java 8 until 2030 (16 years Support for the Version) or changing your Code while you see: oh, I may release after 2030 my Code. Yeah, then you may need to rewrite Parts of it. Sorry for that. But you do not need until 2030. So you could fdevelop it over a long time.

When and if on Java 11: be sure you can run on Java 17 and on Java 21. nd if there is a Release burning that much like it was with Java 11 the Version before will get a really long Support time. That exactly is the difference. Being fucked up or not. The bigger point with Dotnet is: no security Updates. Not that there is nothing needed. Like you can see here

Thatā€™s what Microsoft says to Support roadmaps. That is the end of all security Updates. Following to that I just tested a Java release 6 from Azul (yes, it is still under full Support until 2024, sorry for that there are all bugfixes and so on available and even Security Updates, Technology released 2006). Runs without any problem. Your Dotnet 4.x will also in ten years be running. Without Security Updates but it will run. That is also the case with Java 4 released 2002 (21 years old) but not supported anymore (since two years no Support) but still running.

But that isnā€™t helping. That is technical Harakiri. You install and deploy a Software which is not under active maintenance. Okay possibly Xojo Users are used to. but. It is Standard to do exactly that not. My Customers would kill me for that and the regulatory offices also. Even in America that isnā€™t possible for military, transportation, medical Devices.

And since security is becoming more and more important I am asking my self about the security of a Dotnet 4 System which is long time not under Support. I know that many people doing that.But with Java there is no need to do that. And while they deleted old deprecations while classnames were needed logically for the replacing classes there was: yeaaahhhh you got it: a long time Support Version. That is not what you try to tell me you get from MS. From MS you do not get that kind of reliability.

The people complained about Java 11 breaking stuffs where people which could not get that there is exactly for that case Java 8 with a Support Time until 2030. That is for a Software Developer time enough to change the needed stuffs to come up to Java 17lts or even the new Kava 19/20 or the next 21lts. So I can not understand your argumentation about breaking Stuffs with Java 11 while everybody snowed: I can stand with my Software Version at least until 2030 on Market or I am rewriting the Classes where I have bugs to Java 11 and can then also compete for later Java Versions.

And that is even possible for really couplex programs like Freerouting. Was working on 7. On 8. On 11. And today I am maintaining just the Java 20 compatibility. So what? There is simply nothing like this with Dotnet. That is the point why I say that.