3 ms·
If you look at the history of programming languages, we have been moving in the direction of "natural language" over time. We started at 1s and 0s. And then mov
by cheema33 1y ago
If you look at the history of programming languages, we have been moving in the direction of "natural language" over time. We started at 1s and 0s. And then moved up to assembly language. Which I imagine was considered a higher level language back then.
I suspect that if current trends continue, today's higher level languages will eventually become lower level languages in the not so distant future. It will be less important to know them, just like it is not critical to know assembly language to write a useful application today.
System architecture will remain critical.
- skydhash 1y agoWe have move towards higher abstractions, not natural languages. It looks like natural language because we name those abstractions from natural languages, but their semantics can be quite different. Building a software was always about using those abstractions to solve a problem. But what clients give us are mostly wishes and wants. We turn those into a problem, then we solve that problem. It goes from "I want $this" (requirement) to "How can $this be done?" (analysis), then to "$this can be done that way" (design). We translate the last part into code. But there's still "Is $this done correctly?" (answered by testing) and "$this is no longer working" (maintenance). So we're not moving to natural language, because the whole point of code is to ossify design. We're moving towards better representation of common design elements.
- js8 1y agoI agree with what you wrote, except possibly: "We're moving towards better representation of common design elements." I would say big component (maybe 90%) of the new abstractions created is fashion. So the representation is often becoming less common, in the sense, more fragmented. I think the hope is for natural language to fix this, by being the common language to describe abstractions, and to somehow reduce the fashion element. That's the promise of AI. But if it will happen - I am a bit skeptical because it's the (human need to create) fashion that's unaddressed elephant in the room.
- skydhash 1y agoYou’re right. But a good test for abstraction is consistency. Abstractions are generators. You identify a few parameters from which you can derive the rest of the system. But to be good, it needs to be able to solve all the problem space without the need to tweak the generated system (leaky abstraction) Human languages is the ultimate leaky abstraction, because while you can put names on something, you needs more words to refine it, and that action is recursive. That’s why formal language was born. And then we invented computers for automated interpretation of formal notation. All the current abstractions are still formal (the semantic is unambiguous as soon as the variables are fixed) The transition from natural to formal is not a probabilistic process. It’s identifying a set of abstractions that closely fit the ambiguous nature of the natural soecifications, then going on to compose them and fixing variables. This is the design process. The result is made real by the code, which is the complete specification.