Wasn't gonna post, but then I thought of a good analogy for command block "programming":
Imagine all your programs are in a text file. A single text file, that has about some 3000+ lines since it's all bunched up together. Now imagine that the text file is a 3d space. Now imagine that there's no such thing as a while loop without creating an infinite loop and checking every iteration. There's no if either, only tests that you can run. There are no variables, except the ones that you make with fake players, can only take integers, and can't use except by the aforementioned tests. There's no copy and paste either, except on a line by line basis. Every time you want to write a line, you have to create a block with a separate menu. Every time you want to edit a line, you have to find said block and open a separate submenu, edging your way with a mouse down a one thick text bar without scroll. In this version, blocks of code also need power to work. The only way you can loop is by controlling an arbitrary "block" of redstone to appear and disappear periodically by, you guessed it, more code. And every time you misclick, you delete an entire line of code. NO ROLLBACKS. NO CTRL-Z. NO EXISTING STRUCTURES/MECHANICS.
Now try making your romhack. Good luck.