For the most part I agree with you. It's style of programming has a lot going for it. It's a fantastic creation. I realized the same thing a few weeks into using C2. Yes it sounds kinda silly at first. "oh it's not a REAL programming language". But then like you the concept dawned on me. Logic is logic and it doesn't matter how it's created. In fact C2 style offers a massive benefit over traditional programming. It's near impossible to make syntax mistake. It's near impossible to screw up your code. Also changes to the root of object such as a variable name are GLOBAL. C2 is marvelous.... However
What I don't agree with in regard to C2. How the logic structure is presented and organized. Personally I feel that an ES should be attaches to Objects. The ES then would naturally have base of self inference.
So if I say create a LERP code of moving from the left side to the right side of the screen.
I attach this ES-Lerp to a Sprite Object Instance(not the abstract Sprite object).
Then the Sprite Object Instance will just do what the ES logic does.
Doesn't sound like a big deal does it. Well wait. Follow this
Attach ES-Lerp to a Text Object. Then the text object moves to the right.
Attach Es-Lerp to anything with an XY. and that anything moves left right.
There are two important elements two this.
1. This is how Behaviours work already. So personally I feel that ES should work as a Behaviour... hmmm
2. Es Code is attached per object instances as needed. Rather than Object abtract. So I would like Objects to be a root with nothing in it except for the most basic elements of dimensions. XY, angle and WH scale.
So except for how I feel C2 lacks good OOP and ES extensible structure. I think C2 is fantastic.