Home > Article > Technology peripherals > Why writing valuable software is always hard
I am interested in how artificial intelligence will transform the programming industry in the coming decades, but I am critical of any short-term predictions that are filled with hype. AI cannot create software that will still be valuable decades from now. This remains a really difficult problem to solve. It helps us be more efficient, but it doesn't do well in terms of effectiveness.
To be more precise, artificial intelligence is an unreliable job. Effectiveness is about building the right thing, something that is in our good as humans and doesn’t harm us. Self-driving cars are designed to avoid hitting other vehicles or pedestrians, but their reliability is marginal at best. Security measures are relatively easy to specify but extremely difficult to implement. And, as the number of self-driving cars continues to grow, some will be faced with a life-or-death decision every day. Machines need to make split-second judgments to determine what is best for other humans. It would argue that the needs of many are more important than the needs of one. When it comes to life and death decisions like these, we should be firmly in the driver's seat and shape the future we want.
Current artificial intelligence does a better job of improving efficiency. It can replace different options, weigh their relative advantages and disadvantages, and suggest a combination of optimal solutions. But as AI becomes smarter, we should no longer trust it to handle controversial topics that require judgment. Because things could get scary. Nick Bostrom's famous paperclip maker is an interesting thought experiment that contains an important caveat: the AI will optimize based on your instructions. If it happened to be making paperclips, and it had infinite power and infinite selflessness, it would strip the entire galaxy of metal to make more useless stationery.
Even if an AI becomes self-aware, whether it has a dark agenda or not, it will still be alien by definition (which is reflected in the word "artificial intelligence"). Isaac Asimov predicted that autonomous human creations should have some built-in safety measures. His Three Laws of Robotics preceded the world's first electronic computer, ENIAC, by three years. But he couldn't have predicted that the evil genius would add some personal exceptions to the "do no harm" rule through a sneaky firmware update, just like in the first RoboCop movie.
Let’s stop making pessimistic predictions about artificial intelligence. What I predict (and I'm not invested in any major stakeholders) is that the art of programming will transform into the art of articulating your needs clearly and unambiguously. Developers will become AI-savvy business analysts, accustomed to talking to AI using the ultimate high-level programming language (i.e. English). AI will always build software that works, and if we're lucky, it may even be useful.
Working software is not good enough
Is it weird that the Agile Manifesto calls for working software? As if broken software were ever an acceptable replacement! Is it too much to ask that the code generated by the prompt is also useful and valuable? Yes, that's probably asking for too much. There is a huge gap between software that works and software that is valuable because value is intangible and unpredictable. Even perfect software can lose its relevance through no fault of your own in a way that no upgrade can fix. Here are some examples.
This isn’t the first time I’ve mentioned the forgotten operating system project Chandler. Scott Rosenberg's 2007 book Dreaming in Code beautifully recounts the bumpy road to Chandler 1.0. It's a lasting warning: Even with the best intentions, a team of dedicated top developers, and generous sponsors, success is not necessarily guaranteed.
Chandler strives to be a free alternative to Microsoft Outlook and Exchange. It promises a completely different user experience and will revolutionize the way we deal with messages, agenda items, and to-do lists. It will do this through a desktop application and communicate via a peer-to-peer protocol. Power to the people!
But the team made too many mistakes in its architecture roadmap. Like Icarus, they flew too close to the sun. The world has caught up with them. Greater browser capabilities make Python-based desktop applications a poor choice.
Unexpected obsolescence of GWT
Sometimes, even a great tool becomes obsolete because its original unique selling point is no longer attractive. Google Web Toolkit (GWT) made a strong claim in 2006. At the time, desktop computers were powerful enough to support browsers as application platforms. You can complete your tax return without installing any software. But there were issues with browser compatibility at the time, especially for advanced features like drag-and-drop or double-click. GWT allows you to write back-end and front-end code in the same project and use shared objects for data transfer and validation, then deploy them in a single web archive. GWT compiles Java to JavaScript, and you can even use your local development server to debug client-side Java code. I enjoyed it and made some money from it.
But compiling GWT code is very time-consuming. Browser vendors have gradually addressed compatibility issues. Front-end platforms like Angular and React are maturing rapidly. Building front-ends is becoming a serious career, and these developers don't seem to be rejecting JavaScript as a programming platform. GWT has lost its relevance and it is impossible for artificial intelligence to foresee or solve this problem. The problem isn't the code, it's the mismatch between it and the world around it.
Stick to Programming
Of course, none of this should stop you from writing code. Serious software does not need to be commercially valid or have any real value. I'm talking about amateur open source software. I've written some software that I'm proud of, but they had no business plan, roadmap, or any other motivation other than my own education and fun. It was effective in teaching me new concepts, but I wasn't interested in the product itself. There are many such projects on GitHub. I don't mean to offend anyone. I'm just speaking from personal experience. There's nothing wrong with programming per se, but it's like playing in a band that will never play in front of an audience: it's hard to stick with it.
Summary
Artificial intelligence will have a significant impact on the programming industry in the coming decades. But it won't replace human developers. Instead, it will enable us to build more efficient and valuable software. But we need to be aware of the limitations of AI and ensure it is used for good rather than evil.
The above is the detailed content of Why writing valuable software is always hard. For more information, please follow other related articles on the PHP Chinese website!