9 ms·
This article seems to be missing a parallel that was drawn previously many times. PG has written on the subject, and so have others. The closest parallel we ca
by sologoub 13y ago
This article seems to be missing a parallel that was drawn previously many times. PG has written on the subject, and so have others.
The closest parallel we can draw between "coders" and the distant past, is that with the artisans of the middle ages. Aside from the landowning nobles, the artisan class was probably the closest thing to a true middle class. Many advanced to upper-middle and later became the industrial nuevo rich.
The reason that this parallel works, is that the artisans were able to make something coveted out of what looked like a pile of junk (or less usable) to others. What a software developer creates with a few keystrokes looks to the lay person now as "magical" as creating a sword out of a pile of rocks looked to a lay person a thousand years ago. They get the general concept and see the value, but they have no idea of how it actually happened and cannot repeat it themselves.
By today's standards, most of what artisans of old made is not very desirable if it is made today (antiques not withstanding), hence only very few "artists" are actually paid well. Most people engaged in artisanal work are now in what we call 3rd world countries and make zilch. The reason behind this, is that technology has progressed and most of this stuff can be made faster, cheaper and more consistent by a manufacturing process. Today, we can take the best artisan of old, and copy him/her a million times over to produce the same trinket, with little extra expense.
Software engineering has not yet gone through a true manufacturing disruption. We cannot put software on the kind of assembly line/stamping process we can with say door hinges or other metal works that used to require a skilled blacksmith. That doesn't mean it won't happen some day.
We are constantly trying to go the direction of commoditizing complex problems. Looking back 30-40 years, the efficiency of tools we use has gone way up. Today, a developer doesn't have to write many components from scratch (unless he or she wants to). Most of what makes an application can be taken of the shelf, and modified to fit. For consumer apps, design is also where a lot of work goes in to.
This modification or molding process is a major barrier to having a true manufacturing process in place because the quality of the modifications depends on the individual skill of the person making it. A mistake made early on can bring a future company to it's knees and derail projects years after it was made. For example, a faulty data model that is let to grow to terabytes of information. Many companies choose to through money and computing resources, rather than risk a costly migration.
When we have sufficiently advanced to the point where such mistakes do not depend on an individual and the automation process can take care of it, the value of the software engineer as we know the profession today will diminish greatly. But then again, I'm sure the profession will evolve as well.
- bennyg 13y agoSure some parts of software will become manufactured and mass produced - I mean that's the case today. How many libraries do you use? However, software is still an intellectual, out of thin air, endeavor. It requires thought to create new and make work with existing circumstances. You aren't melting metal into a mold to make a tangible object. You are literally fusing thoughts and intellectual processes together to do it with software. Until thinking becomes mass-produced and optimized to the point of max efficiency, I don't see this happening.
- cardine 13y agoThinking will eventually become mass produced. To a pre-industrial revolution artisan, having their work automated probably seemed just as difficult and "far out into the future" as a modern day programmer feels about his work being automated.
- nekopa 13y agoBut how long will this idea of 'fusing thoughts and intellectual processes' remain the sole domain of humans? Besides from some creative leaps, a lot of this has to do with logic: knowing what works where and when. I'm working on an idea tied to literate programming where someone can tell a story of what they want a program to do, put it in a wiki, and then programmers can edit the wiki to add in the actual software to make the program work. How hard would it be to use NLP parsing, feed it into something using the priciples from BDD, take something that turns that into UML the run it through a code generator and you have an MVP. Software engineers may then end up like manufacturing engineers in that their job is to tweak and fine tune the output. But even then that part of the job may fall to ML which recognizes similar patterns between software implementation and optimum utilization (there are only so many ways to write a user login page on a web app for example) I think thinking will never become mass-produced, but Mass-producing turning thoughts into software may happen within my lifetime. Edit: missed out the main point from my last sentence.
- bennyg 13y agoThat sounds awesome. I've dreamed of a context-aware, natural language programming language: Change value of potatoes to 10. (potatoes = 10). Make potatoes equal 10. (potatoes = 10). Give every person at the dinner table a potato. (for x = 0; x < dinnerTable.count; x++ {dinnerTable[x].potatoes += 1}) Etcetera.