I’ve read all comments and there are many to which I would like to leave a comment, but it’s simply too much so I’ll stick to a few that I remember.
If openHAB had always been that way (configuration exclusively via a GUI interface), I would have never used it. And to be clear, I don’t keep my configuration files in a source control system yet. It is something I may do in the future, but currently I don’t. And yet, I still prefer text files over a GUI for the simple reason that you can simply copy/paste lines, comment out the original line, make small changes to the copy, undo those changes simply by removing the copy and uncommenting the orignal line. Suppose you had used a GUI and changed five items/things/channels/links/whatever and you realize that you want to undo the second change. There’s no easy way to do that, you must clicker-the-click through the GUI again to remove all the changes you’ve made to that second item and hope that you still remember how you setup that seconds item 3 months ago. No jsondb backup is going to save you there.
So this has nothing to do with how disturbingly easy it is to screw up your configuration when editing text files (openHAB must just log an error when it fails to parse the config file and nothing bad will happen). You can just as easily (even more easily in my opinion) screw up your configuration when using a GUI, however, when using a GUI it is much more work to unscrew it all so the consequences when using a GUI are much more severe.
Actually, you’re wrong here as well. We are not the ‘old way of doing it users’, a term which I find pretty offending, as in we’re conservative, we’re against change, we’re the ones holding back progress of openHAB. That’s not the case at all. Try configuring Google Home via the GUI. It cannot be done. So we’re actually the ‘bleeding edge way of doing it users’. We go where no GUI user has gone before.
From what I’ve read from your comments, you’re not an openHAB developer, yet you’re making assumptions that developers who contribute want to do things in a new way. I understand David prefers a GUI config over text based config, but David isn’t the only developer working on openHAB. I also think you’re too new in the community to state as fact that that is what the developers want. And no, text files do not limit what can be done configuration wise. After all the JSONDB is a text file.
I understand that for new users a GUI is a lot more comfortable to start out with because it gives guidance when setting up the system. However, for many power users all this clicker-the-click becomes boring real fast.
Do I understand you correctly here that you want to parse the yaml files using JavaScript in the frontend (PaperUI-NG)? That to me seems like a really bad idea. That would mean that every GUI e.g. Habmin, Habplus, PaperUI-NG++, or whatever GUI someone comes up with would need to reinvent the wheel. And worse, what if they don’t like your config file format and choose another one. It also rules out the possibility to make changes to config files via ssh and trigger a reload using the REST API (e.g. using curl).
As a general remark for PaperUI-NG, I don’t see the need to include VS Code (or some other text editor). The normal VS Code fits me just fine and is available and maintained by Microsoft for all major OSes. It just seems unnecessary work to me, but feel free to add it if you must
I don’t agree here and from what I read others are also not married to the current text config format. I would actually be very happy with e.g. YAML files and I think lipp_markus sums it up quite nicely. The current files have too many inconsistencies. Of course there needs to be tooling to do the conversion from the old format to the new.
So… now that I’ve shot down everyones ideas let me propose one for you to shoot at:
So if there really is a need to get rid of the Xtend based config files because they make the startup of openHAB slow, make it impossible for openHAB to use a newer version of Java, don’t allow the use of standard libraries, are at the limits of [{<()>}] or whatever brackets there are more, or whatever other problems they cause, why not create a tool that imports text based configuration files (this can be the old Xtend based .things, .items, etc. files or new YAML, TOML, or … files) and communicates with openHAB using the REST API (just like PaperUI does)? Using the REST API also solves the db locking issue and no need to restart openHAB when making config changes.
It could may be also export the configuration from a running instance (just the static config, not the runtime config that openHAB now also adds to the JSONDB, that does not belong in static config files in my opinion). By sorting all the attributes in alphabetical order it will be easy to do diffs between different versions.
Would that not solve the problem? The users that prefer text config files can use them and internally there is one source of truth in the JSONDB which can be exported and stored in e.g. Git.
Once everyone is happy and even Markus has converted his Xtend based config to some more modern format it could be taken in by openHAB or ESH to become part of the core.