software quotes from influential philosophers, authors and people
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
246
"First, solve the problem. Then, write the code."
247
"Experience is the name everyone gives to their mistakes."
248
"In order to be irreplaceable, one must always be different."
249
"Perfection is achieved not when there is nothing more to add, but rather when there is nothing more to take away."
250
"Code is like humor. When you have to explain it, it’s bad."
251
"Fix the cause, not the symptom."
252
"Optimism is an occupational hazard of programming: feedback is the treatment."
253
"Simplicity is the soul of efficiency."
254
"Before software can be reusable it first has to be usable."
255
"Start with something simple and small, then expand over time. If people call it a ‘toy’ you’re definitely onto something."
256
"User interface is the process of shifting from chaotic complexity to elegant simplicity."
258
"If we want users to like our software, we should design it to behave like a likeable person."
259
"Fools ignore complexity. Pragmatists suffer it. Some can avoid it. Geniuses remove it."
260
"A computer would deserve to be called intelligent if it could deceive a human into believing that it was human."
261
"The art of debugging is figuring out what you really told your program to do rather than what you thought you told it to do."
263
"No one in the brief history of computing has ever written a piece of perfect software. It’s unlikely that you’ll be the first."
264
"All software you write will be tested—if not by you and your team, then by the eventual users—so you might as well plan on testing it thoroughly."
265
"One hundred years from now, our engineering may seem as archaic as the techniques used by medieval cathedral builders seem to today’s civil engineers, while our craftsmanship will still be honored."
266
"We can be proud of our abilities, but we must own up to our shortcomings, our ignorances and our mistakes."
267
"There is no such thing as a best solution, be it a tool, a language, or an operating system. There can only be systems that are more appropriate in a particular set of circumstances."
268
"Great software today is often preferable to perfect software tomorrow. If you give your users something to play with early, their feedback will often lead you to a better eventual solution."
269
"One broken window — a badly designed piece of code, a poor management decision that the team must live with for the duration of the project — is all it takes to start the decline. If you find yourself working on a project with quite a few broken windows, it’s all too easy to slip into the mindset of ‘All the rest of this code is crap, I’ll just follow suit.’"
270
"In an abstract sense, an application is successful if it correctly implements its specifications. Unfortunately, this pays only abstract bills. In reality, the success of a project is measured by how well it meets the expectations of its users."
271
"If you don’t hear any complaints from users, they are not using the software – or your support email is broken."
272
"A key principle of any effective software engineering, not only reliability-oriented engineering, simplicity is a quality that, once lost, can be extraordinarily difficult to recapture."
273
"The mark of a mature programmer is willingness to throw out code you spent time on when you realize it’s pointless."
274
"Periodic reminder that the tech stack you use to ship a product only matters to other devs. End users only care that it’s fast enough and does enough to let them get work done. That is your top priority as a dev. Ship working maintainable things that solve people’s problems."
275
"Don’t decide on the tech you’re gonna use before you understand the project and the customer’s needs."
276
"Everything should be made as simple as possible. But to do that you have to master complexity."
277
"Some people are good programmers because they can handle many more details than most people. But there are a lot of disadvantages in selecting programmers for that reason — it can result in programs that no one else can maintain."
278
"The development of full artificial intelligence could spell the end of the human race….It would take off on its own, and re-design itself at an ever increasing rate. Humans, who are limited by slow biological evolution, couldn’t compete, and would be superseded."
279
"The pace of progress in artificial intelligence (I’m not referring to narrow AI) is incredibly fast. Unless you have direct exposure to groups like Deepmind, you have no idea how fast—it is growing at a pace close to exponential. The risk of something seriously dangerous happening is in the five-year time frame. 10 years at most."
280
"I don’t want to really scare you, but it was alarming how many people I talked to who are highly placed people in AI who have retreats that are sort of ‘bug out’ houses, to which they could flee if it all hits the fan."
281
"Artificial intelligence will reach human levels by around 2029. Follow that out further to, say, 2045, we will have multiplied the intelligence, the human biological machine intelligence of our civilization a billion-fold."
282
"Nobody phrases it this way, but I think that artificial intelligence is almost a humanities discipline. It’s really an attempt to understand human intelligence and human cognition."
283
"Complain less. Build more."
289
"I see mind uploading as a gradual decades-long process of incremental neuronal replacements, exocortices, interlinking with AGIs and the Global Brain, some presently unseen trials and errors, but overall non-invasive and seamless process, at the end of which, we all will morph into 'substrate-independent' immortal digital minds."
292
"At the early stage of transition to the radically superintelligent civilization, we may use the Naturalization Protocol simulations to teach AGIs our human norms and values, and ultimately interlink with them to form the globally distributed Syntellect, civilizational superintelligence."
293
"I believe that at the end of the century the use of words and general educated opinion will have altered so much that one will be able to speak of machines thinking without expecting to be contradicted."
294
"By far the greatest danger of Artificial Intelligence is that people conclude too early that they understand it."
295
"In this era of fake news and paid news artificial intelligence is more and more used as a political tool to manipulate and dictate common people, through big data, biometric data, and AI analysis of online profiles and behaviors in social media and smart phones. But the days are not far when AI will also control the politicians and the media too."
296
"Why can't you summon a command line and search your real-world home for 'Honda car keys,' and specify rooms in your house to search instead of folders or paths in your computer's home directory? It's a crippling design flaw in the real-world interface."
297
"Machine intelligence is the last invention that humanity will ever need to make."
298
"In the long term, artificial intelligence and automation are going to be taking over so much of what gives humans a feeling of purpose."
299
"We are entering a new world. The technologies of machine learning, speech recognition, and natural language understanding are reaching a nexus of capability. The end result is that we’ll soon have artificially intelligent assistants to help us in every aspect of our lives."
300
"Anything that could give rise to smarter-than-human intelligence—in the form of Artificial Intelligence, brain-computer interfaces, or neuroscience-based human intelligence enhancement – wins hands down beyond contest as doing the most to change the world. Nothing else is even in the same league."
301
"Metaphors contribute to a greater understanding of software-development issues in the same way that they contribute to a greater understanding of scientific questions."
332
"A common denominator of programmers who build high-quality software is their use of high-quality practices. Such practices emphasize quality at the beginning, middle, and end of a project."
333
"The goal of all software-design techniques is to break a complicated problem into simple pieces."
334
"Avoid making 'clever' designs. Clever designs are usually hard to understand. Instead make 'simple' and 'easy-to-understand' designs. If your design doesn't let you safely ignore most others parts of the program when you're immersed in one specific part, the design isn't doing its job."
335
"If you're developing a program for Microsoft Windows, for example, why limit yourself to the Windows environment? Isolate the Windows calls in a Windows-interface subsystem. If you later want to move your program to MAC OS or Linux, all you'll have to change is the interface subsystem."
336