As a software engineer, having done embedded applications for most of my career, I am personally very comfortable with C, and (what I would now call) classic C++. I cut my teeth on coding on an Apple ][e doing BASIC coding by copying code out of a book (peak 1987, tyvm), progressed to Visual Basic, and then Turbo Pascal before getting into C and really going deep on that, and so thereâs a lot for me to go use C/C++.
However, when I start working with robotics kids still in school, many of them have not done much coding. Some have familiarity with Scratch, probably because of school, and so theyâve hacked around on some projects theyâve âremixedâ and gotten some understanding. Most have little to no exposure to coding prior to getting into robotics, and much of that has to do with the urban environment that most are growing up in around here.
Because of this, blocks makes for a great starting point for learning, as itâs more intuitive and the logic is visually clearer, the colors make it easier to associate with types of operations, and especially for IQ, Vex has a good progression path to grow. Also echoing others like @Foster
, thereâs not much that Blocks canât really do in most cases for the vast majority of projects. C/C++ probably is going to technically produce some more efficient code, having looked at the output of the blocks code, but for the speed that these systems move, itâs arguably unlikely to be noticeable. And yes, there are some things that are not possible (or at least not feasible) to do in blocks, like odometry, but at that point, itâs reasonable to be forced into something like C/C++ for that sort of functionality.
Also, those kids that do get it quickly, itâs then easy to build the language teaching of C/C++ to, because theyâre familiar with the logic flow, itâs just learning a new way to use the language you already know.
My $0.02, Iâll go back inside now that Iâm done shaking my fist at those durned clouds in the sky⌠