I have a pro license and I work alone on Mac for web projects. What is the best project format (xojo project, binary, or xml) in your opinion? In particular in terms of speed (project opening, compilation, execution) and reliability.
And just because you work alone, don't make the mistake of thinking version control is not still useful. It is amazingly useful even for a single developer like most of my projects. There are various schools of thought, but if not familiar with any of them (which I am guessing is the case since you asked about potentially storing in binary format), then my personal recommendation is GIT.
A very useful pro guide to using Git is here . There are tons of resources on the web devoted to GIT if you do some simple searches.
I find the text format not very useful. Most of my code lives in multiple projects and there is no good way to handle this with text format. XML with external items works fine. For the speed I haven't seen a difference between binary and XML - as long as you save your icons externally.
@Rick Araujo: was your previous loss experience with GIT or with another version control system. With GIT, it seems nearly impossible to actually lose anything unintentionally. By design, unlike other VCS systems, it never stores just deltas of files. It stores the exact contents of each file in its database, but internally references by a SHA-1 hash of the contents so that you can even rename or move a file between folders and it still tracks it perfectly.
Take a look at the explanation here
I was happy (years ago) to have a pdf print of a 2 days old project. It allows me to rebuild the project based on a far older surviving project. (And if I didn't had this one, I would build a brand new one with the pdf, but this wuld take much more time (because of the lost images for example).
The error above was mine. :(
@Douglas H was your previous loss experience with GIT or with another version control system?
Nope. Was a Xojo bug. Norman explained that the binary code is an "exact image" of the Xojo internals, easy in/out without missing parts; the XML is the same content exposed as text (just a read the structures, translate them as text, write them out, and the opposed when reading them in); and the pure TEXT save have much more interaction, processing and formatting of the content (out and in), so binary saves have no secrets when Xojo changes internal things, those things are saved; XML rarely could have issues; but... bugs can be introduced to the "pure text" if they forget something out or miss something in the "translation". Seems that that happened.
@Rick A Nope. Was a Xojo bug.
I misinterpreted the previous comment to mean the loss was due to the version control system, not Xojo.
So I understand now where you are coming from, but unlike the binary format, if Xojo did mess up a project save in text format, a version control system can still easily show you EXACTLY what is different between files, and you can still easily go back to a prior commit and pick and choose what changes to merge into a new branch or version. So I'll stand by my assertion that using source control is better than not doing so -- even for a single developer -- and that the text format is the easiest way to do that.
And yes, I understand Arbed can make it possible to do with XML, and you can even "version control" binary files but doing so with binary files is mostly an easier way to go back to a prior commit to make a hot fix or something. Then you can't easily merge those with a develop branch. But it is perhaps better than reverting to Time Machine versions or something.
Because I am heavily dependent on SVN and CVS for my company's code (literally millions of lines in C, ASM, TCL, Python, Java, Xojo, Shell, PowerShell, and Mathmatica) over 32 years of coding history, the text format is the only way that I maintain things.
There have been moments in the past where I've saved as Binary, loaded that save into a new version of the IDE, and the re-saved as text to sort out some of the issues mentioned above, but text is my go-to for long saving of projects.
@Norman P text is, imho, the most useful
I agree. I just have my trust in it hurt. So that's why a keep binaries as a backup plan and save open text copies for version control.
To be true, for me, Xojo should give up on "alternative" formats and go all open text. That would ensure the proper fine care to the format and just one point of failure.
The older formats should be only "read only" for conversion for some time, and even this should be abandoned in the future, like 5 to 10 years in the future, and having a separated conversion tool available for historic reasons.
@Douglas H if Xojo did mess up a project save in text format, a version control system can still easily show you...
1. I just don't accept "saving messed" because of bugs. Sometimes you just noticed that something had gone very wrong starting when you saved the v3.4.2324 when you reached v5.8.6534 (like having lost properties and their values and using defaults messing things, or getting null pointers, or things losing positions or changing colors, and who knows what more in not very noticeable parts of the system) and you don't know what, and when, things started to be messed or even what Xojo versions did that. Comparing the two last versions wont help you after a large cascade of mess.
2. I was replying on topic. VCS wasn't part of the discussion.
Sorry, sorry for the delay and thank you very much for all your answers!
I was asking this question because I've been having unexplained slowdowns in my web app for a while now, in debug mode on Mac. After doing a lot of tests and research, I found the problem: it was simply the system.log (or debugLog) sometimes used too often in a method sequence (via a thread or not)!
i work also alone and the useful thing is send to zip and put it into cloud. just that nothing get lost anyhow.
i use also a cheap backup software and save my whole developer drive from time to time.
i think binary is much faster than xml.
this argument for comparing xml files, you can also save it to xml at need and compare it with a tool.
i try always to move forward because if u step back and use a older save state u lost days of unique work.
if something get lost than likely because git auto migration and team work.