2 ms·
There is considerable motivation to reduce the need for programmer labor- programmers are one of the most expensive ingredients in producing many digital produc
by RodgerTheGreat 7y ago
There is considerable motivation to reduce the need for programmer labor- programmers are one of the most expensive ingredients in producing many digital products and services. Many companies have made headlines with promises of visual programming tools and/or machine learning leading to "codeless software", but they are consistently either pure snake oil, highly limited in scope, or "mechanical turks" which obscure the role of human labor for marketing purposes.
Many limited domains have been "solved" from the perspective of having software available which allows non-technical users to suit their own needs: You can make a blog, a web store, or a wiki without any knowledge of HTML or a programming language. Yet even in these spaces, there are still users with a desire for custom solutions, and thus a market. There will always be new problems to solve- or old problems to solve better- requiring fresh ingenuity.
Marketing spin aside, I have seen zero evidence that progress has been made in replacing humans with software for the task of turning vague requirements into concrete, precise, machine-readable specifications. As long as that holds, software engineering as a profession will not disappear.
- MuffinFlavored 7y ago> Marketing spin aside, I have seen zero evidence that progress has been made in replacing humans with software for the task of turning vague requirements into concrete, precise, machine-readable specifications https://news.ycombinator.com/item?id=19347976 https://news.ycombinator.com/item?id=19347976 Maybe the "MarkDown + compiler for vague requirements" is just around the corner?
- luckylion 7y ago> Maybe the "MarkDown + compiler for vague requirements" is just around the corner? Isn't that where you put random code snippets + a vague description of what you expect it to do into a question on stackoverflow and wait for some rep hungry dev to turn it into working code? Jokes aside, even with humans doing the interpreting and high costs incentivizing those defining the requirements to be precise and clear, I see a lot of friction. A not-really-smart automaton won't help there, I'm afraid.
- RodgerTheGreat 7y agoExtremely implausible. Consider the task of writing an MP3 playing program. The vaguest specification possible might be "a program that lets me play MP3s". Imagine being given that task yourself. You might make a window with a list of tracks, a play button, and wire it up to an off-the-shelf audio codec. What if the author of that specification wanted a different organization of metadata, or audio visualization, or a favorites list, or a different color scheme? All these details would need to be provided. Having specified this information, you might still find there are finer details that need explanation- the way track titles animate, what it means to skip to a "previous" track while playing, the text sizes and whitespace, etc. What if you needed to support a novel audio format for which no existing libraries can be found? What would need to go into that specification? If you carried the exercise out to the point that your specification were sufficiently precise for your intent to be completely reflected the end product for an arbitrary program, your specification would be rather complex. If you have something as precise and communicative as a programming language, it is a programming language! There is no free lunch. You can make programming languages resemble English- see Natural Inform, the Interactive Fiction authoring system. It's very expressive, and the code is far more comprehensible to a lay reader than most languages, but an author still must be precise and explicit in composing those programs.