Out of curiosity, really faster?

It was more that I got confused between Xojo and Swift as I was doing Swift all day (in Swift you can declare a dictionary as variable or constant, in Xojo only as a variable …)

Is that because Foundation supports mutable and immutable dictionaries? So it would make sense to be able to create a immutable dictionary as a constant.

I wonder if in this case const simply applies to the definition in a way that means “once allocated you cannot replace it with a new one”
which is a different meaning from Xojo’s const in this regard

2019r1.1 is just about usable but 2019r2 onwards is twice as slow and is unusable. I can repeat the problem on 3 different Macs I have access to so I know it’s not a problem with my Mac.

Do you work with m ore than one IDE window open? I usually have at least 2 windows open with different views of the project for reference…

The IDE slowness for me seems to be associated with having more than one project window open… Why that should be I have no clue as if they are not views unto the same method, typing in one should have no effect on the other.

  • Karen

We very rarely have more than one project or IDE workspace open at the same time.

I can actually repeat the problem just by launching Xojo, creating a new project, adding an event and typing.

The Macs are all running different versions of macOS. The 2 that support Dark Mode aren’t using it.

For now we have remained on 2019r1.1 and some older versions but at some point we will have to start using a newer version.

I’ll chime in with a slightly different perspective: that of experienced professional programmers who get exposed to Xojo for the first time.

People who have a CS degree, for example, have been exposed to multiple high-level languages, and have come to expect certain things out of the environments they use… and I’ll veer a little bit off course here to provide an example:

Back when I started using Xojo (RealBasic 3.5) I was just finishing up my CS degree, and had years of experience with C, C++, Java, and PHP. I’d dabbled in Perl. Early on in the first project I started writing in Xojo, I needed to pass an array to a method, have that method do some work to the members of the array, and have it return the array to me. Back then, though, it was not possible to pass an array as a method parameter. At all. This dumbfounded me and made me seriously suspicious of the rest of the language. I actually exclaimed out loud “What the hell! I can’t pass an array to a method? What kind of fisher price crap is this?!”

I worked around this limitation of course, by putting the array into a little wrapper class, and passing an instance of the class to the method. But the time spent figuring out what the language could not do, and coming up with a work around was time wasted. The language got in the way.

Now, you can pass an array to a method now, of course, but I bring up this example because the experience for a seasoned programmer new to Xojo can sometimes be a bit jarring. Someone coming from Java, php, or C++ has absolutely no problem at all reading and understanding x++, while x = x + 1 to such a developer seems … unnecessarily verbose.

“What do you mean I can’t just increment an int!? What kind of fisher price crap is this?”

TL: DR; For me it’s not about time, it’s about feeling at home because the most common paradigms from other major languages are here to keep me warm and fuzzy.

And that warm & fuzzy doesnt prevent anyone from still writing

i = i + 1

and someone else from writing i++

AND both turning out to mean the exact same thing !

says another CS guy :stuck_out_tongue:

1 Like

My experience exactly, coming from years of VB/C# .NET.
So many things, I was like, “Huh? I can do THIS, but not THIS??” (Then hours upon hours figuring out a workaround…)

1 Like

And that warm & fuzzy doesnt prevent anyone from still writing

i = i + 1
and someone else from writing i++

But the whole point is that in Xojo you CANNOT use i++, which for most experienced programmers is basically used often enough that there is muscle memory for incrementing a variable. You don’t even think about it because it’s so ubiquitous. It’s really jarring to someone like that to try a new environment and have stuff that you take for granted simply not be allowed.

an overly generic statement… since I consider myself a very experience programmer (40+ years) and don’t think I have used I++ more than a dozen times…

Now if you said

I would then tend to agree… but it has no place in Xojo (or in my opinon, any modern language)

One thing, though. You surely knew the language was based on Basic? It was called RealBasic when you started, right?

Why then would you expect a C construct like i++ to exist? I expected the much more powerful i+=1 which is something from VB. I don’t consider vb.net “fisher price”, and it doesn’t use the ++ syntax (which I don’t care for, but that’s just personal preference)…

1 Like

Why then would you expect a C construct like i++ to exist? I expected the much more powerful i+=1 which is something from VB.

I use the ++ example as merely 1 of the syntactic sugar features I miss from many, many other languages. +=, *=, -=, ++, etc. Xojo refuses to ever have any of them.

1 Like

I don’t think my statement was overly generic at all, but rather that your experience is something of an outlier. When I started with RealBasic back in the day, my background was in C, C++, Java, Javascript, PHP, and Perl. ALL of those languages support syntactic shortcuts such as i++, i+=1, etc, and they were among the top 10 most popular and most heavily used languages at the time… and they are all still in the top 10 most commonly used languages today (20ish years later). While it has not necessarily been your experience, I still believe that most professionally trained programmers would find it a tad jarring not to be able to use ++, +=, -=, etc.

Some history:


Well for the record (ObjC has ++ and --), but Apple REMOVED those from Swift, and few people complained about it. They did leave += , -= etc both of which are more flexible than ++ and –

and as you quoted “derived from C”… well Xojo wasn’t, and technically neither was Swift (Scala)

I was agreeing with you about this

In a weird twist Xojo wont add that because it might make code not backwards compatible or something or it would confuse newbies

But they have no trouble changing events & properties that have existed forever and confusing existing users

The inconsistent makes me crazy

3 Likes

The same reason Microsoft doesn’t want to add anything to VB .NET anymore (or so they say)

API 2.0 makes code backwards incompatible whilst confusing new and existing users.

3 Likes

I know
Its so odd
They wont add ++ or += because that would confuse new users
But then they do API 2 which confuses everyone and makes all the old code newbies might find useless without fixes

Of the recent “Xojo Cant Math” - wont fix it because it might break some real fringe cases but if/when a new user runs into now you expect them to understand what intel instruction was used ?
Or Markus recent discovery about how mod behaves weird in 64 bit
Its consistently inconsistent about why they will / wont do things

3 Likes

Not only newbies, but also users who never used that.
This is my point, actually. I understand I’d not be forced to use these “weird” syntaxes, but with shared projects and codes from various places (forums, blogs, etc.) I may encounter these (possibly involved in bugs) and I don’t want to learn some unintuitive syntax just for that.

I mean, mathematically speaking (i.e. without considering all/some programming languages) i++ doesn’t mean anything, while i=i+1 is universal.

2 Likes

shared projects and codes from various places (forums, blogs, etc.) I may encounter these (possibly involved in bugs)

Having one way to do something has advantages for readability.