If in fact FIRST decides to go with this, and based on the information provided, it seems like there’s a good chance that they will, I really hope that they don’t require teams to use the program (which they probably won’t).
While a tool like this can be very useful in teaching logic and program flow, it quickly becomes messy and hard to read when you start doing complex things.
Just look at the VEX Controller Examples on the page listed in the original post. Check out the example on page 16. Simply looking at the code makes it impossible to figure out what’s going on. I look at the diagram and am immediately overwhelmed by a barrage of shapes and colors. The text on the symbols is useful for some things (like pwm01 = 40), but for others it is very non-helpful. “IF Zero”…are they saying “if(0)” or “if(somevariable == 0)”, and if so, what is somevariable? They also use GOTOs, which can be incredibly confusing and are usually taught to be avoided at all costs.
In an example in the FRC examples on page 14, I look at their flowchart and understand what they’re doing, but without reading their description, where does TEMP2 come from? It turns out that it is set in the Get_Analog_Value routine, but who would’ve guessed? Is it hard-coded that rc_ana_in1 gets assigned to TEMP2 or is that user definable?
Point is, it adds a layer of abstraction that makes the code harder to read. Does this mean that we’ll have to compile twice? Once for the flowchart, then once again to compile the assembly into the IFI code skeleton?
I understand that the programming world is moving toward things like SDL and UML to autogenerate code, but there is still no substitute for learning how to write code for yourself. In fact, I contend that you are better off learning to program in a textual language then applying that knowledge to autogeneration. There’s just so much control you can have with a high level graphical language, not to mention that the generated code is usually enormous and inefficient (two things that cannot be sacrificed on the FIRST controllers)
I think that the money and effort spent on developing this tool would have been better spent coming up with a solid curriculum to teach students how to program in C. With a little time and practice, I think that most people would find that there is no magic involved in programming.
I appreciate the efforts made by Elabtronics, and I hope that there are some people out in the FIRST community that will benefit from them. I just don’t see myself using a graphical tool like this on anything complex.