xojo.core?

What is this xojo.core you speak of?
I’ve never seen this before and now I’ve seen it twice today.
there is a memoryblock and a xojo.core.memoryblock…
Why the difference?

xojo.. is the new framework (i.e. xojo.core.memoryblock)
memoryblock is the old framework.

for platforms like iOS you have to use the new framework.
desktop platforms (Mac/Win/Linux) you can use either.

my apps rely heavily on memoryblocks.
If I switch to xojo.core.memoryblocks is there a speed improvement that goes along with it?
Or is this just a namespace change?

The basic rundown is that the classic, non-namespaced, framework that has existed since version one (1998?) has accumulated more than a few warts. There are inconsistencies like not all functions being zero-based or the handling of errors. There are also places where the design made sense originally, but operating systems have gone in different directions (random access by index into the contents of a folder is a good example). Worst of all are things where the framework makes it really easy to do the wrong thing.

When we were looking at porting all of this to iOS, we came to the conclusion that it would be an opportunity for a fresh start and address these concerns. Sharing code between the desktop, web, or console frameworks is also very important, so the new framework exists there too. In order to that without breaking millions of lines of code or forcing a massive rewrite of all existing applications, we put the new framework in a namespace so that it doesn’t conflict with existing framework or user classes.

In most cases the two frameworks are similar, with the biggest differences being the use of the Text and Auto data types. It’s also still in its early years, relative to the classic framework, so some functionality is missing and will improve over time.

[quote=209666:@Brian O’Brien]my apps rely heavily on memoryblocks.
If I switch to xojo.core.memoryblocks is there a speed improvement that goes along with it?
Or is this just a namespace change?[/quote]

There is unlikely to be a significant performance difference between the two MemoryBlock classes, since their implementations are similar. MemoryBlock isn’t exactly one of those things where there is much room for clever implementation tricks.

I wouldn’t worry about this until you are adopting more of the new framework in code you write going forward. The classic framework isn’t going anywhere for a long time - it just won’t be getting much for new features.

yeah what @Joe Ranieri said… he knows much more about the internal differences on the two frameworks than anybody else.

For more background, you may want to review these pages:

Thanks.