DitaBase is a company. Dit is an open source technology. DitaBase is developing dit at the same time as attempting to profit from it. Think of this as though a company were building git at the same time as GitHub.com
The dit file type and all essential tools will always be open source. DitaBase itself will make other tools and services that will not be open source, like freemium features on the website and freemium editors with more features. DitaBase will also host a marketplace for dit classes, where open and closed source code can be found and used in dits, either for free or for use as a service.
Yes.
DitaBase is designed from the ground up to be fully generic, before any other feature.
Dit can be made to work with any format, file type, concept, anything.
In fact, if dit can't work with something, that's considered a bug, not just a missing feature.
By breaking down format into objects, anything can be described.
If it can be written down in binary, then scripts can be written that work with it's functionality.
This does not mean all formats are supported out of the box, or that DitaBase will support all of them.
But it does mean the following:
KirbyLang is term I invented to describe any language that can easily absorb the properties of any other language, just like Kirby, the Nintendo character. Dit is a KirbyLang, but it's not the first and probably won't be the last.
Imagine Kirby sucking up other languages and technologies, really really fast.
A KirbyLang can go about managing the Guest languages however it wants to. Dit is just one implementation, and there may be better ones. However, all KirbyLangs must meet the following requirements:
Adding Lua took me about 12 hours and 76 lines, even though I was rusty and had never used sockets or JSON in Lua. I am sure compiled languages will be more complex, maybe 2 or 4 fold, but that's okay. You can see how languages are implemented here.
Yep! DitaBase will always support the most popular languages, but you can always add more!
We realize the irony of any new format inherently making the problem worse, but dit is not trying to make a format that covers everyone's use cases. That is probably impossible.
Dit is less of a format, more of a container. It's trying to be a bridge between other formats, and that means it relies on them heavily. In general, you're not writing data in dit format. Rather, you're putting existing data inside a dit. Dit can only work with so many formats because their functionality gets added to dit with the KirbyLangs. Dit takes the features of format 'X' because someone coded 'X' directly into dit.
Maybe format 'Y' will turn out to be better than 'X'. To dit, it doesn't matter. It only wants to make sure that switching between 'X' and 'Y' is as easy as possible. The only competing standard that dit introduces is whether to use a container like this or not. And at the moment, dit is the only one.