What is Oak?
Oak is a markup language that can be used to store data in files. Think of it as improved JSON.
- Good: Use Oak out of the box to replace XML / JSON
- More expressive, easier to read.
- Doesn't yet have the tooling that JSON has, in particular plugins for Eclipse and IntelliJ. Java only
- Better: Define your own grammar dialect. This is equivalent to a DTD in XML and gives you a domain specific language. For example you can define a Person.dialect and have Oak check the data for you.
- Error checking, type safety. Many errors detected at compile time.
- Best: Tree construction.
- Automatic instantiation of Java objects. For example you can have Oak automatically instantiate Person, Address and Email objects for you.
Oak is being developed as part of a larger project where it is easy to see that it is a worthwhile standalone project. It is being actively developed but is reaching a state of maturity from the design point of view. We can say the following:
- The format of the file files is unlikely to change much going forward.
- Parsing of the files works but leaves a lot to be desired regarding error checking. It's very much usable, errors do get trapped but the error messages aren't always the most informative.
Where to go next