On that level, no programming languages "teaches" you those concepts either (apart perhaps syntax stuff, although it is often one of the main issue with signs used in ends of lines and stuff like that), it is up to you, the user/progreammer to be organized and make "clean" and elegant code.
You can have messy C++ code as well, using too much memory, not clean/elegant and so on. The language itself doesn't teach you anything about that, it is just your own experience using it that does the trick, same goes with C2.
...
By its design it will lead you in certain ways, sure, but as long as you are left on your own, you can teach yourself bad ways, I don't think it is specific to C2.
True. This is why you need a teacher if you don't have time to learn from experience.
Also, it's actually an abuse (even on my part) to compare C2 with C++ since C2 is based on JavaScript, as such a lot of your complains/remarks are the same that "true coders" of low-level languages like C++ will have towards scripts/modern languages like JavaScript.
It's kind of a dead debate all along since it is mostly a matter of perception/point of view/comparing two things that are not really comparable (low level vs high level).
Comparing C2 and any language is totally useless.
C2 is not made for teaching programming, because C2 is -over- programming.
When you code in C++, do you keep in mind what happen in Assembler ? Do you try to find what your compiler will do when you do a new ? When you do a pointer ?
Will C++ teach you what the internal motor of the compiler will build ?
I agree, you can't compare two languages directly and this discussion is not about that. However you can compare them regarding didactic matters. Since they are both used in education and teaching programming logic, computational thinking, I think it's fair to measure which one does the job better. This is a wide area, we can't cover all aspects of programming teaching and I don't believe it's even possible with only one language. But since the lessons are limited in schools and the students have also limited free time to practice on their own, it's important to have an efficient language that is easy to learn, yet so powerful that it can take the student far (to create a knowledge that allowes the student to learn other languages, new methods based on it). I'm hoping that C2 is that language.
But it is not the goal of a language or of C2 to "teach" anything.
True, the most important part is to be able to make software with it. On the other hand, it's good that if a language is fit to teach programming logic for beginners.
Now if the newbie make a step further or not depends on him. If he is a pure hobbyst then probably he would never go and learn any programming language because C2 is fun and usually enough for hobbysts to make games. But if you have mastered C2 and decided to put IT on your proffessional career trip, then you must learn what is below, because sooner or later there will be a task to do which pure C2 won't handle with default plugins and you will have to make your own.
It's great that so many perspectives come up for this topic. Based on the previous posts (including your writings too) in your opinion do you think that C2 can be a good base for someone who want to learn professional programming? Or it might be better if I ask that way: Do you think that for someone, who learned programming logic with C2 in a formal way, alongside a teacher, is it possible to step to the next level, the professional level, learning only by themselves?