I am going to make a case for a change in the architecture of Oxygen. Right now Charles has picked the C design, small core and everything else libraries. This sounds good at first, but then you end up with what we have in the c/c++ world. Everyone writing their own library to fit their coding style, each with their own dependencies. You can look at source code on google code search and see code styles that are light years apart in look and readability. You can see a zillion examples of people rewriting the same code over and over again rather than looking and settling on a proven library. Even in proven community based libraries, like Boost, you have people that absolutely will not use them for whatever reason, so they write their own.
I say that Oxygen should be a giant core that is ever growing. The core is only added to by Charles and others he might add to his core team. Any new code would be submitted as a library to the core team and then they would make it fit the Oxygen way. This also means developing a rigid set of rules for the look and feel for Oxygen. Right now it is too flexible if you ask me. Then when the program is compiled, Oxygen would remove any unused code from the giant core to make the executable small.
For tinkering and getting things going, I think Charles took the right approach. But when you look at how powerful Oxygen already is. I can also see how the current way will lead to chaos in the future as we add more complex systems. I see Peter's libraries and some of Charles that do the same thing as well as some of my own. And we are just in Oxygen's infancy.
Here I submit a very nice well thought out schematic for a game engine. Now imagine all of these components written by various authors in various styles with redundant code and crazy dependencies, as it will be, if we continue on the current path. The only way I see a clean elegant solution is to have a master plan. Not only for a game engine, but for other areas of development. I just present a game engine as that is my current passion.
My initial suggestions for style would be based on C, since Oxygen can read C header files.
1. Case is Sensitive
2. Parenthesis are required for functions, subs, methods
3. Use == instead of := for conditional equality checks
If oxygen is to keep Basic as part of its name. I think then the extension .o2bas should just be .bas and the include files .inc Right now we have a mixture of many extensions in the examples I download. Again flexibility was nice, but now I think it is detrimental.
Also, I think Oxygen would be in two main prongs. Procedural and Object Oriented Programming. A user could mix and match according to their needs. But basically, for almost all commands there would be 2 of them. One in the Procedural Prong and the other in the OOP Prong. The help would be a clean split of these two prongs.
It is alright if you want to take me out to a wall and shoot me if you disagree, what do you guys think?