Created: 2023-04-04 22:19

#question End user programming: why do we dumb down the programming instead of making the users more programmin literate?

#continuehere Analyze the different stages of literacy throughout human history and how could programming become the next (spoken language / read-write / math / public education / … / …)


Hamming believes there should be no human interface (ie. middleman) between the person with the problem and the person that writes the program (ie. they should be the same person). This would be the most efficient way to solve problems with computers.

Democratization of programming means an influx of developers with no formal training on hard sciences (math, logic, engineering, physics) 1

Such phenomenon will change programming, probably tending towards higher level languages and platforms. Which is a trend that is already taking place. We no longer write Assembly or even C to solve most of programming problems. And there’s a proliferation of no-code and low-code platforms.

While Dijkstra warned Dijkstra’s Critique of Natural Language Programming. However, making programming languages and platforms more user-friendly and higher-level does not necessarily mean they must resemble natural languages. The goal is to strike a balance between user-friendliness and the formalities that programming languages inherently require. Some ways this could be achieved:

  1. More abstract and expressive programming constructs
  2. Intuitive syntax and semantics
  3. Provide clear and informative error messages
  4. Develop context-sensitive code editors/IDEs
  5. Utilize DSLs and non-Turing-complete languages

A (more) democratized programming landscape means more and more people would join the industry and view programming as a means rather than the end in and of itself.

  1. Accessibility: Making programming accessible to people who view it as a means to an end is a crucial part of democratization. By developing user-friendly tools, platforms, and domain-specific languages, a wider audience can harness the power of programming to solve their specific problems without needing formal programming education.
  2. Collaboration: between those who view programming as an end in itself and those who use it as a means to an end becomes more critical. Researchers, language designers, and library creators can work together with domain experts to create tools and languages tailored to various fields, making programming more accessible and relevant.
  3. Education: providing resources and opportunities for people to learn programming at various levels of expertise. This is evident even today, one wouldn’t take a programming boot camp as the introduction to computer science research.
  4. Empowering domain experts: domain experts who might not have traditional programming backgrounds can contribute to software development by leveraging their domain-specific knowledge. This collaboration can lead to better solutions and more efficient workflows, benefiting both the specific domain and the broader field of programming. Citizen developer
  5. Evolution of tools and platforms: the demand for tools and platforms that cater to both groups will increase. This can lead to the development of specialized tools and platforms designed to meet the needs of each group, making it more accessible to people with diverse backgrounds and motivations.

Some arguments against

Is the democratization of programming in our best interests? Is it something that we (who is we, by the way?) want or need? What are some arguments against?

  • Reliability and quality: Developers without formal programming training may lack the necessary skills and knowledge to create robust and secure applications, which could lead to poorly designed software, security vulnerabilities, or increased maintenance costs. Oops maybe we are there already!
  • Complexity: finance, healthcare, or aerospace, involve highly complex systems that require deep technical expertise to develop and maintain. Let’s not democratize programming in these industries please!

Footnotes

  1. Says the college drop out xD