I think we all wish Xojo was doing these types of improvements

We learn and we grow. You are not the only one that looks back and wishes projects had gone better or in a different direction.

4 Likes

Oh of course not!

Creating and nurturing an open team culture where discussion is encouraged and ideas are put under scrutiny (including the boss’s ideas) is senior management duty. If senior management fails at this, projects invariably fail.

1 Like

I’m not sure that it is
The XAML Controls are kind of a tack on to the existing Win32 underpinnings and not an entirely new framework
Well see I guess

Oh you weren’t the instigator of that
It had started before then with Desktop & Console as 2 separate ones - we did just happen to perpetuate it
And to be fair I dont think, at the time, ANY of us had had enough understanding of everything required to make it so a single project could work
So “new project” was the default and we did that for iOS as well

Even though Var is used in other languages it is not consistent with the philosophy of API 2!

It should be something more like:
DeclareOneOrMoreVariables I as Integer

Maybe I should put in a bug report? :wink:

  • Karen
1 Like

In C# for instance VAR is “automatically determine the type”
So a like of code like

     var foo = SomeFunctionWithAReturnValue() ;

will make foo whatever type the function returns without me having to do anything more

In swift you can do

   var num = 10 // num will be defined as an integer
   var siteName:String // siteName is a string
   var id: Int // Id is an int

Xojo’s var is JUST a synonym for DIM

3 Likes

In JavaScript, var declares the variable in the global space, let declares it in the local space, and const declares it locally and prevents a new value being assigned to it. Though an object in a const variable can be changed.

So switching dim to var really made no difference because there’s no consistency at all between languages. Still, I think var is a little more obvious, so I’m not complaining.

1 Like

In Go there are several ways to declare a variable:

var s string

or

s := "" //no declaration using the bucktooth equals

or

s := someMethodThatReturnsAString() //no declaration using the bucktooth equals

And once it’s set the compiler will not let you put some other type into it. It’s even picky about Int8, Int16, Int32, and Int64 values. You must explicitly convert values.

Items 1 and 3 are the most common in our company. 2 is just weird but possible.

Honestly, most of what we do has stuff like this:

s, err := someMethodThatReturnsAStringAndErrorValue()
if err != nil {
//handle the error
return
}

Errors are a value and can be wrapped. Thing errors within errors within errors. Confusing at first but it definitely allows you to cascade errors and you can get (and deal with) all of them at some point of your choosing.

1 Like

Speaking of Xojo Web, I didn’t build GUI apps with it, I used it for services and what I really appreciated was that I could lift code from my desktop apps and throw them in a web project and I’d get identical results. I actually didn’t care that this was separate projects, I cared identical code == identical results.

Greg stated that Web 2.0 probably would have better received if it supported API 1.0 and for me that might have been the case. As it was, once I’d lost the core reason for using it, I looked at the pricing options. I didn’t need anything else from Pro. Workers are too limited, and console wasn’t worth it (I can get what I need from a GUIless desktop app).

I bought a “Lite” license when Apple Silicon support was available, and would have potentially continued purchasing that, except API 1.0 isn’t getting any bug fixes and DesktopControls broke my App Kit. So I stopped entirely. I did at least provide the CEO with my reasoning and what I would like to see to continue renewing. None of that has materialized, so I started to learn a different tool.

With Swift, I can make better Mac apps and with the Swift on Server project, I can make the web apps that I need, which will use the same code as my desktop apps, so I’m back to having one language that does what I need.

I am trading time for money, but in the long run, I feel that puts me in a better position. A tool which is exactly as it should be (according to CEO), versus a tool that is continuously being improved and importantly, likely to be around for decades to come.

There is a Swift mentality to use “let” instead of “var”, because it makes the instance non-mutable. Then if you need to alter the value create a “mutating func”.

I still like the Obj-C way, where the class name indicates of the object is mutable or not, but I’m sure I’ll get used to it.

Of course coming from Xojo, non-mutable objects is a foreign concept.

1 Like

EXCEPT there was this sort of separation in the Xojo framework
https://documentation.xojo.com/api/deprecated/xojo.core.memoryblock.html

https://documentation.xojo.com/api/deprecated/xojo.core.mutablememoryblock.html#description

but … :frowning:

I Remember Android was also on the excuse list once. To me, it almost sounded like the security on Android was so bad that nobody would use Android, and therefore Android will never be an option on Xojo. Yet the whole world outside Geoff’s brain where using Android apps because most of us 3rd worlders could not afford Apple products at the time. He really ticked me off that day. But still came back to have a look and found it to be a little on the empty side. I must be sounding very negative but we have to start standing up for our rights guys. They took money every year and may have implemented a font change now and then - pun intended :wink:

1 Like

That is a constant. A really SMALL minded person that is unable to grasp what people actually use and need.

1 Like

the excuse was always "well the average user … "

I’m sure everyone’s heard some variation of that

2 Likes

So, honestly, I’m REALLY happy I found this thread.

I only discovered Xojo a few days ago, and have been on the fence about purchasing the pro package. I have several apps that I’d like, for a start, to create in windows and android in parallel, both with the ability to read the same mysql db. Xojo sounded like the perfect solution, but $800 was a sticking point especially since I would be making personal apps for my own use.

One of the draws for Xojo was the 40+ yrs of familiarity with basic derivations. And the ability to (apparently) code once and deploy many platforms was icing on the cake. The database integrations were candles stuck into the icing on the cake.

But now, I see this thread (and many others on this forum) and am relieved I didnt make a big mistake.

That being said, if its allowed, I see many people reference “other platforms better and cheaper/free”. Do such things actually exist? If so, what are people planning on moving to? Asking for a friend…

2 Likes

Welcome to !NN… glad to see that our efforts have save you some pain, grief and disappointment

Personally my efforts are towards macOS and iOS, but I’m sure over the next few days, you will get many suggestions on a direction that will be more productive

1 Like

FYI… UNLIKE the offical Xojo forum with its rampant censor ship, you won’t find that petty mentality here.

1 Like

Well, Yeah, xojo Android is a joke, maybe a couple years more to be somewhat stable.

I have being using it for many years for windows, my last licence is from 2019 and there is nothing new worth the upgrade. As for mobile, I have being using B4X to make Android and iOS apps that in many cases complement apps made in Xojo for desktop.

1 Like

You would need at least one plugin that provides functionality Xojo doesn’t. This adds to the budget.

2 Likes

There are many Free/Cheap/Costly tool.

But it depends on what you want to build.

There are different recommendations for different platform.

If you are looking for one single tool that can help build cross platform apps then check out LiveCode.

It may interest you.

It claims to support 7 platforms!!

1 Like

Welcome to our community

Flutter & Dart
Java
C# using .Net MAUI
And I’m sure there are others