The other day, I was reviewing my book notes from “The Pragmatic Programmer,” and came across the following excerpt from the “Evil Wizards” section.

Tool makers and infrastructure vendors have come up with a magic bullet, the wizard. Wizards are great. Just click a single button, answer a couple of simple questions, and the wizard will automatically generate skeleton code for you.

Keep in mind that when the book was written the term “wizard” was used to describe a software the would help a user threw step to complete a task. In the excerpt it saying that a Wizard could be use to auto generate code for a project saving the developer time. This kinda sounds like the recent media storm about ChatGPT and AI and with that in mind here is the full section on “Wizards” however I have add “[AI]” for next to .

Yes, this is yet another AI post … sorry.


All the time the applications themselves are getting more complex. Most developments now use a multitier model, possibly with some middleware layer or a transaction monitor. These programs are expected to be dynamic and flexible, and to interoperate with applications written by third parties.

Oh, and did we mention that we needed it all next week?

Developers are struggling to keep up. If we were using the same kind of tools that produced the basic dumb-terminal applications 20 years ago, we’d never get anything done.

So the tool makers and infrastructure vendors have come up with a magic bullet, AI. AIs are great. … Just click a single button, answer a couple of simple questions, and the AI will automatically generate skeleton code for you. … AIs are hard at work in other contexts, too. You can use AI to create server components, implement Java beans, and handle network interfaces all complex areas where it’s nice to have expert help.

But using a [AI] designed by a guru does not automatically make Joe developer equally expert. Joe can feel pretty good—he’s just produced a mass of code and a pretty spiffy-looking program. He just adds in the specific application functionality and it’s ready to ship. But unless Joe actually understands the code that has been produced on his behalf, he’s fooling himself. He’s programming by coincidence.

[AI] are a one-way street—they cut the code for you, and then move on. If the code they produce isn’t quite right, or if circumstances change and you need to adapt the code, you’re on your own.

Sound failure doesn’t it.


The only part of that section that as change is “Wizards [AI] are a one-way street—they cut the code for you, and then move on. If the code they produce isn’t quite right, or if circumstances change and you need to adapt the code, you’re on your own.”


Like anything else ChatGPT is another tool in the tool chest, and while I do believe it will be destructive and later versions are going to be better and become more accurate, humans will still be needed to review verify and implement.


“What are evil wizards in as mentioned in The pragmatic programmer?

“The Pragmatic Programmer” book, first published in 1999, the term “evil wizard” was used to describe developers who wrote obscure, overly complex code that was difficult to understand and maintain. The book warned against becoming an “evil wizard” and instead advocated for writing clean, understandable code that would be easy for others to work with.

According to the book, “evil wizardry” is characterized by code that is overly clever, difficult to read, and hard to modify. Such code can be a major obstacle to maintenance and can cause significant problems down the line.

The authors of “The Pragmatic Programmer” urged developers to avoid “evil wizardry” by focusing on simplicity, clarity, and maintainability in their code. They recommended using simple solutions to complex problems, writing code that is easy to read and understand, and avoiding overly clever or obscure programming techniques.

In short, the term “evil wizard” in “The Pragmatic Programmer” refers to developers who write unnecessarily complex and difficult-to-maintain code, rather than skilled and experienced software developers as I previously described.


DO JUST COPY AND PASTE.

Yes, copying and pasting is something we should do to save time for quick tasks. For log live application and processes we should NOT copy and paste code we do not understand. Instead, we should type it out ourselves. We should not be using code we do not understand. By not copying and pasting typing it out we grow to understand what the code is doing and possible modifications and improvements for our use case.


Is AI going to change things, yes. Is it going to result in more work being done by less people, probability. Is it __, Is it a excuse to not understand your code, no.

AI is here to stay anyone who thinks it is just a fad is not looking at it objectivly and just like any new techology those who are sooner to adapt and adopt are going to be the ones benifit most from the thecholoy. On the other hand, AI can not be seen a the only solution you will still needs some, ammititly less human to review and verify what the AI is doing and help teach the AI for your specific use cases. I for one already am using ChatGPT and AI in my everyday life and prersonal project and it is a great tool that as helped me speed up my development. I am looking foward to seeing how I can use it in the future.


https://www.youtube.com/watch?v=jPhJbKBuNnA

https://www.youtube.com/watch?v=l7tWoPk25yU&t=793s