Realistically, what could Xojo do to make you stay?

Here you go:

Sub Opening() Handles Opening
  Dim d As New Dictionary(AddressOf MyKeyComparisionDelegate)
  
  d.Value("Hello") = 123
  d.Value("hello") = 234
  
  Break // should now have 2 entries in dictionary
  
End Sub

Public Function MyKeyComparisionDelegate(leftKey As Variant, rightKey As Variant) As Integer
  Return leftKey.StringValue.Compare(rightKey.StringValue, ComparisonOptions.CaseSensitive)
End Function
1 Like

Yep that was my solution although it really only works for a dictionary with string key and value, that is exactly what I happened to need. It’s just that I should have been able to look that up in like 30 seconds instead of mounting a Google search and reading 3 year old posts (suggesting in turn that the docs have been wrong / incomplete for at least that long). My grandson is learning programming and I have mentioned Xojo as a possibility for him but encounters like this with the docs makes me wonder if I should have kept that thought to myself, lol

1 Like

This will give you a case sensitive dictionary:

Var d As Dictionary = ParseJSON("{}")
1 Like

Yep thanks, I saw that trick too. Not sure that’s the lowest possible overhead given all the parsing requirements of JSON and especially if you know the key and value types in advance. But I did make a mental note to benchmark it both ways eventually.

I suppose any overhead with ParseJSON() is just in the initial call and it creates the case-sensitive dictionary / delegate for you which you then use in the ordinary fashion so … it SHOULD work fast enough.

But it may create a more involved delegate that would handle multiple types of keys and that might be pricey when evaluating keys compared to going straight to the expected type. Of course my having that concern could represent premature optimization, too.

I’ve benchmarked it. It’s about as fast as you can get.

I suspect the Xojo framework bails early when it realises it’s parsing an empty object and returns an appropriate delegate.

1 Like

Yep. Main thing is it can’t know the types you’re going to use and has to do some runtime checking in the delegate which can be avoided if, when you code it up, you know the key data type in advance.

Oh, for generics! But I don’t want to give the dev team ideas, they have too much on their plate already.

1 Like

Definitely not. I really like these clients and I’ve been supporting them for 2+ years while working full-time. I feel like they’re in a good spot to get another developer.

The only drawback is that the hardware required for testing is impossible living in an RV since I don’t have the space. So I end up going on-site with them so I either have to work 2 jobs or take PTO.

3 Likes

Yes support for generics Is weak if not non-existent
Being able to say

   dim d as new Dictionary(string, integer)

and have a strongly typed dictionary & values would be nice
but doesnt exist
:frowning:

1 Like

Embedded Windows is garbage honestly - Raspberry Pi is still the way to go - if only the supply was not so constrained.

I use a Life Battery with the raspberry pi with a charging chip and a shotky Diode and detect when under voltage and shutting down the pi in that moment. Only thing you need to do is build a small pcb with the shotky in the line and connecting (with a resistor of 300 Ohm to one gPIO and another Resistor to GND (10k) to avoid malfunction in noisy environments. When the voltage outside is 0V (cause of the Diode there is the battery voltage on the pcb) you can shutdown. A battery management chip and a stepup DC/DC converter bringing the voltage t0 5V. Simple, fast and your PI will never die from abrupt under voltage while the battery spends the energy for shutting down.

Low-code platforms like Filemaker implement it the same way. Looks like an attempt to please the citizen developer. The catch is that citizen developers moving from low code to rad platforms are looking for something better.

Correct. And it doesn’t help that Xojo Inc. is “changing” their target audience all the time. Once it was for pros, then those pros were in one keynote no target audience any longer but citizen devs, now since a few months it is all the sudden “low code” … (I’m waiting now for the AI or the metaverse release :wink: ).

Whatever their current target audience is right now, the docs don’t reflect that. Some topics are very low level, some are expecting more knowledge an average newbie to programming has on its plate. Common denominator is that there are (meanwhile) overall too many mistakes in the documentation. Those are partially due to the many re-designs Xojo did it in the recent past. Such changes mean that your examples are all of a sudden wrong, so the documentation needs to get updated, and older forum entries would need to get marked as “outdated” or changed. Best example I mentioned endless times: Web1 and Web2 which are two completely different beasts, are “bundled” in one channel: Xojo Web. I feel sorry for newbies who most likely can’t get much benefit out of their searches.

That’s overall sad news for a newbie, as there are these days not many other resources than the docs, the examples, the forum(s) and a handful of youtube clips.

5 Likes

Again: looking from Java to Xojo the docs are like they are not available. And on top of this the docs contain errors. And so it is - for a newbie - extremely needed to consult the forum otherwise the newbie can’t exist with the Xojo Docs alone. In my experience since the last three decades the most important was always the docs. Okay, when I started programming in the beginning of the 80th there was no Internet and the only chance you had was : reading the docs. So there was the need of good docs all time. And remembering to Turbopascal the documentation was not that bad I have to say.

The Pro Developer have maybe the chance to come around but Xojo is really a workaround Horse. That makes it even harder. Yes, you can do it but you need this and this workaround. Hmm. Not good to exist in the Pro world. Customers have to pay for that loss of time.

Only Goodie is: Xojo has a nearly always native UI. Not really on Windows 11 but at lest on Windows 7,8,9,10. And I believe also in Windows 11 UI will be the nativity back soon under all circumstances. Java for example can’t compare with this: Java has a non native UI and possibly you need to rethink for it and the user may ask about.

On the other side is Java a reliable Ecosystem with all you need for Desktop, Mobile, Web, Cloud. Even secure computing with dedicated Client-Server rendering and encrytpted sockets is done fast, secure and reliable. One thing what Xojo will never be able to do. But one thing I would want too be able if I need it as a Pro.

So Xojo has to decide for what it is targeted. With this once Pro once Citizen once ALL there will not be a possible way for the users.

1 Like

If I were not similarly occupied to you, I’d be quite interested. I’ve been tentatively extended, and tentatively accepted, another year at Giant MegaCorp so I could not do it justice, either. Best of luck finding a good handoff :slight_smile:

1 Like

Sure, and a very nice .NET ecosystem too but the price you pay is more complexity, and a pastiche of libs, toolsets, frameworks and leaky (and often over-engineered) abstractions. For example I was asked to make some simple changes to a small administrative tool used to manage call routing in a sales org. In a sane world it would have involved a dozen lines of code via a call inserted into a processing loop. But because the vendor who provided the C# code base felt the need to tick off every box and buzzword, it was doing a very simple job using microservices, delegates, and whatnot so it ended up involving a hundred synchronized changes in two dozen files across four projects plus the learning curve to figure out where it all was buried and how it was supposed to be orchestrated. What should have taken me an hour took me two weeks of joyless slogging and while I was still hailed as a genius when it was done, it felt like an experience I never wanted to have again.

So yeah I can do that kind of work but anymore I just can’t get up in the morning and put my pants on if that is what my daily grind consists of. It’s the 21st friggin’ century, why are we still doing things in the most complex way possible? I’m not interested in being a network or security analyst, I want to focus on the problem and user domains not the details of how it’s delivered to the user.

In theory something leaning almost into what was once called the 4GL space, where the IDE and framework package everything up in one place and takes care of the irritating details for you, is what Xojo promises. To a lesser extent it’s what low/no code environments propose to deliver as well. I have yet to see it adequately (much less fully) realized though, by Xojo OR its competitors.

I’d like to be able to knock out interesting and useful web apps, preferably that don’t require special web servers or strange hacks – they should deploy in a standard, non-scary way for the benefit of sysadmins used to working with certain assumptions. I should be able to run rings around conventional approaches without a politically difficult “ask” or the need for special training or the triggering of corporate security audits.

Something like Xojo is just never going to either be accepted or able to slip under the radar in corporate environments so it’s relegated to use by ISVs and independent consultants who are willing to learn its peculiarities (and its stigmatized language), and to small companies who picked Xojo because the owner’s nephew liked it and now need help putting polish on things.

That’s a niche I could thrive in not far down the road here but if I’m limited to the currently mature and reliable parts of the Xojo ecosystem (desktop, console and maybe IOS) then that’s going to force me to use something else for the web and kind of defeats the purpose since, e.g., .NET already has decent desktop technologies. That “something else” in my case would likely be something like C# Blazor and then the problem is Xojo can’t even interop with that code unless I use COM (Windows only) or expose everything through web services with the attendant overhead and server expense.

To my mind job # 1 is for Xojo to get a grip on web 2.0 and make it really stable and easy to produce reasonably modern, performant and impressive web apps without a lot of fiddling outside the IDE. If they could actually pull that off without a lot of false starts and thrashing about with the vision, it would be fantastic.

I have to say that I feel a little bit bait-and-switched because the advertising claims web is just another target. Now I knew that was probably a little bit laced with BS, but still – if experienced Xojo users are saying putting up trivial test web apps are chock full of bugs and Web 1.0 is actually more stable, then why did I pony up for a Pro license? Well I did it because they cleverly bundled Console and services apps into that. In the end I sprung for it because of that, not because of the Web target, which is clearly experimental for the foreseeable future. And I suppose some idealistic and semi-naive desire to support the web target development.

1 Like

They will not get their stuff stable and reliable. Stop dreaming. But that amount of bugs with a hand full of devs and upcoming new android platform: impossible. And that dream is at it’s end. If c# or java, c++ or whatever: professional tools are also coming up with the professional libs. I prefere java and even there: I have tool chains for desktop, web and mobile.

1 Like

At one time those were included in what is now called Desktop… And IMO they still should be! And even more so after the last price increase!

-Karen

3 Likes

Yeah I’m now assuming in self-defense this isn’t going anywhere good for the web target. If I had way more money than sense I’d invest $100M in Xojo and greatly expand the dev team and so on. Wouldn’t we all.

1 Like

Why am I not surprised :wink:

For two years anyway. After two years they are still technically still there, but they do their best to hide them behind an “Archived” tag.

3 Likes