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

  • $\begingroup$ You should list what your skill level is to get better answers. Are you new to programming? How much education do you have? What is the goal of using the language: learning, practical use, work. $\endgroup$ – Guy Coder Jul 3 '14 at 11:09
  • $\begingroup$ I am voting to leave open because the overall topic implies opion, but there are two specific questions that are objective. "Have you experienced any limitations of either High Level Languages or Block programming?" and "What advantages and disadvantages have you experienced when using the two?" The author should edit the question. $\endgroup$ – Guy Coder Jul 3 '14 at 13:42
  • 3
    $\begingroup$ This should a) be made non-subjective b) on Software Engineering. $\endgroup$ – Raphael Jul 3 '14 at 14:36
  • $\begingroup$ Yes it should be on Programmers. $\endgroup$ – Guy Coder Jul 3 '14 at 16:13

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.

| cite | improve this answer | |
  • $\begingroup$ I am not sure more abstract is really the right wording. I would say with more pre-packaged specialized abstractions. Many programming languages allow programmers to produce the same level of abstraction. Then ther is also the programming interface. Specialized languages are supposed to make your life easier for problems they address ... but they are specialized. $\endgroup$ – babou Jul 3 '14 at 14:35

Not the answer you're looking for? Browse other questions tagged or ask your own question.