sanjar-notes / programming

A high level view about programming. Its use, need and implementation scenarios.
Creative Commons Zero v1.0 Universal
0 stars 0 forks source link

Programming. Gap between thinking and coding - communication or representation? #14

Open sanjarcode opened 9 months ago

sanjarcode commented 9 months ago

There are two general phases in programming:

  1. Thinking - decide structures, algorithms, use case, practicality, requirements. More interestingly - solve edge cases, prove general statements.
  2. Coding - writing the code.

The first step is very quick, but the second step is too slow. For me personally, and also in general afaik. Speeding it up using productivity, tools is helpful. But the gap still remains.

This raises an important question: is programming about communication or representation? And what's the relation if both play a part.

I'm afraid representing all parts of a program by hand is not that productive, or engaging.

Find out:

  1. How to design a program and system - so the computer implicitly auto-codes as much as possible. Not talking about ML (which would be an extreme of this).
  2. If the distance between good design and using ML is high, then what to do?

Some tangible issues

  1. Highly nested objects - In React apps (or any UI app), there comes a point where one writing so many for loops that it really feels like doing a pre-order traversal. What's the fix for this? Would a library help?, that behaves agnostic to object/array, with intuitive hooks for exclusion, plucking, intermediary creation etc.
  2. Overhead of dev layers - when making a UI apps - you need atleast 4 windows; code, debugger, preview (inspect) and design. Add a state management solution and that's another headache. Can this be made easy?