High Level Programming Languages vs Block Programming Environments I am looking for the opinions of more experienced programmers as to the effectiveness of writing programs in Block Programming Environments such as Scratch or App Inventor as opposed to High Level Languages such as C++, Python or Java.
I have already done some research and here are some examples of links that have been helpful.  

Programming : High Level Languages
An Overview of Programs and Programming Languages

I am just looking for a few other peoples opinions.   

Questions that I would really appreciate if you could answer include:

Do you find using high level code easier or more difficult than using blocks? 

Have you experienced any limitations of either High Level Languages or Block programming? 

What advantages and disadvantages have you experienced when using the two?

Any helpful answers would really be appreciated
A Block programming environment is higher in the abstraction levels as compare to high level programming languages which basically mean that Block programming environment is easy to work with and there is less conceptual burden to carry BUT you can do "less stuff" (as it is very abstracted) where as in high level programming languages you can do "more stuff" but the conceptual burden at this level is much high.

This is how abstraction principle works. More abstract = less things to worry about BUT less ability. Less abstract = More things to worry about BUT more ability.

It is usually advised that you start at the top abstraction layer so that you can start learning things without freaking out with way too much details and as you get more and more experience you start to look at bottom abstraction layers to gain more insights and get more done.