I'm a GCSE Computing student and I've been asked to compare writing programs in a block programming environment (I think this means using programs such as Scratch or App Inventor but I'm not entirely sure) compared to writing programs using high level programming languages such as Python, Java etc. I'm honestly not trying to ask you to do my work for me, I just desperately need some help on the advantages and disadvantages of both ways of writing programs because we haven't really been taught it by my teacher and I haven't found much on the Internet about it.
Scratch is a Turing-complete language, so any problem that can be solved with computers can be solved using Scratch (just like Python or Java). However, you would have to reduce the problem to one that can be solved with Scratch.
In application, Scratch can't do anything that you may be interested in as an engineer, such as hardware interfacing.
I'm doing the same course right now and I'm having the same problem but i do know that block programming languages like app inventor are easier to use because you don't need to (effectively) learn a completley new language and the syntax that goes with it all you need to learn is what task the blocks perform and how they fit together.