skip to content
Steve Simkins

Vibe Coding and Kodak Cameras

A perspective on the rise of AI coding and how it relates to technological shifts throughout history

cover

I’m sure many who read this are familiar by now with the term “vibe coding,” a euphoric style of programming where you prompt AI models or IDEs to write software and just “vibe.” One of the more popular instances that made the practice takeoff was the indie hacker Levelsio building a flight simulator entirely in JavaScript and selling ad space within the game. Others have followed suit and even started businesses by vibe coding them into existence. It’s hard to deny the reality that AI has been changing much of the software ecosystem, and with any major shift in technology there are lots of opinions. I certainly have my own, but I thought it would be more productive to look at history repeat itself.

Evolution of Photography

Most people don’t know it, but there was a major controversy in the world of photography in the year 1900. Before that time photography was an art form protected by its sages, who poured their money, time, and practice into it. Not anyone could just take a picture, only those who had worked in the craft and mastered it. All of that changed in February of 1900 when Kodak released the Brownie camera. It wasn’t much to look at, a little cardboard box that could take a picture no bigger than 2.25 inches using 117mm film. What made it special was the service behind it. The Brownie only cost $1 (which would be $38 at the time of this post), and it included the cost to develop the film. All someone had to do was take a picture, send it off to Kodak, and they would return the picture. “You press the button—we do the rest.”

bronwie ad

Suddenly anyone could take photos: parents, grandparents, kids, truly anyone. It sold like crazy, and it upset the old photographer guild. There was great concern that there would now be a huge amount of “slop” photography and the art of photography would be washed away. Surely no one who took photos in such a way could be an artist… right? These artists were also concerned for their profession. If everyone had a camera, why would families pay for a photography session?

Fast forward to the digital age of cellphones and photography once again accelerated into the unknown. Now you don’t have to even own a camera. Almost every person on earth has a cellphone, and the chances are that cellphone has a camera. In this evolution a photo could be taken at any time, not just when you remembered to bring a camera. Around the same time we saw storage become dirt cheap, and now there’s no limit to how many photos you can take. The artists and professionals once again voiced their concern of the art form being lost in the sea of latte art and dog photos.

Evolution of Programming and Computers

Programming and computers seem to have a similar story, where as technology advances, the wider it’s user base becomes. For hardware it was the home computer that made it possible for anyone to have access to one. The World Wide Web in its infancy was only accessible by universities or libraries, but soon grew to be used by everyone. Content creation on the web used to mean writing HTML and running a server, but thanks to the movement of social media, APIs, and hosted web apps, people could write and express freely. An explosion of thoughts, ideas, and memes filling thousands of servers, racing at unbelievable speeds.

Pivoting to programming languages, these too have seen lots of technological advancements. In the beginning it was feeding paper into a machine the size of a large room, which slowly evolved into languages that could be typed directly into computers. Low level communication through assembly to modern stacks like C, eventually becoming more and more abstract from the bare metal we used to speak to. Now we use languages like Javascript and package management systems that allow you install everything, and many of us cringe at the thought of it being used in backends. Last but not least, we now have vibe coding which many suggest means we don’t need to learn how to code. Instead we’re reaching the longed for era of end user programming.

As with any technological advance, I believe the technology itself to be neutral, but in the hands of people, we see the good, the bad, and the ugly.

The Good

The evolution of photography technology enabled plenty of bad photos and photographers, but it also created a whole new series of artists we would not have otherwise. One of my favorite examples of this is Vivian Maier. If you’re not familiar, Vivian Maier was an unknown nanny in the 1940’s and 50’s. It wasn’t until after her death that her life’s work as a photographer was discovered by a man who won it at an auction. To his surprise it was a stunning collection, hundreds of thousands of them, all taken by a nanny no one had ever heard of. She was passionate about photography, and her perspectives of the world at that time were unique.

vivian maier

They’re made possible thanks to the much later successor of a Brownie style camera that she could take everywhere and shoot roll after roll of film. If photography was still stuck in the dark ages of carrying around big pieces of equipment that only certain people could afford, we wouldn’t have the stunning work of Vivian Maier.

photo by vivian maier

Another unrecognized photographer is one of my favorites, Joe Greer. Greer started his career on an app: Instagram. He didn’t take photography lessons, he didn’t have a nice camera, he just had his phone. The more and more he shot with his phone and posted his photos on Instagram, the more people liked them and the bigger it got. Eventually he did switch to professional cameras and continued his craft, but the key was his access to an art form that otherwise wouldn’t be available apart from cell phone cameras.

joe greer photo

In the realm of programming, even in the evolution of languages, we see a similar pattern where mediocrity increases but so does the number of discovered programmers. Sure there’s a lot of Javascript slop out there, but thanks to Javascript there have been more and more people discovering programming and starting a wonderful journey. You don’t have to start in a lower language to find the joy of programming, and most people who do find it will experiment in many different languages.

Even in vibe coding I believe we’ll see people who were not programmers before, but discover the beauty of watching code they wrote achieve a goal they had in mind. While end user programming has it’s negatives, the positives are that people are solving their own every day problems. Those who go beyond solving a problem might stumble into a new passion they can pour hours of learning into.

The Bad, and Perhaps the Ugly

Of course it’s not all sunshine and roses, and I truly believe we face some challenges ahead with the consequences of vibe coding. As with any technological advance things become easier, and when a challenge is taken away, there is less for us to learn. The old way of programming which involved hours of getting stuck, forcing you to read documentation, researching answers, asking wiser people, all of that slowly fades for the easy way out. Sure you solved your problem, but what did you learn? How much that question matters might depend on who you are: a software engineer who needs to hone their craft, or just some Joe on the street that wanted a fun app to play with.

Even for the everyday man that uses AI to build software they can miss out on the side effects of programming, which include building problem solving skills, critical thinking, and finding ways to think outside the box. In some ways I think this is where vibe coding doesn’t necessarily achieve end user programming, because with true end user programming we have people who learn how to code in the same way they learn to read and spell. It would be much more beneficial for society if people had these basic skills, but I’m not sure we’ll get that with AI and vibe coding.

There is also the question of sensitive data and how much code controls our modern society. With our photography example the impact was mostly limited to the photography industry and artistic expression. It’s a different story with programming as we depend on code to handle our banking, our hospital records, our information and privacy, everything we do depends so much on the security of our code. Giving someone an AI enabled code editor is like giving Peter Parker supernatural spider abilities. With too much power and a dismissal of responsibility we face potentially terrible consequences. We’ve already seen this in some cases where a fresh vibe coder doesn’t practice basic API key protection and security and had their platform destroyed by the internet. Without proper training and knowing the “how” behind the code that’s running we face a new world of software that can be vulnerable.

Lastly there is the slow decay of information. We all know public open source code is being fed into AI model training, and we can only hope that it’s good code. As more and more AI generated code is put online, the more AI models feed on it, and we face the reality of “Ouroboros,” a snake eating it’s own tail. Suddenly our all powerful AI coding assistants can’t solve the problems they once did, and they start to struggle with the basics. You as a professional developer might have known how to fix these issues before, but your mind has grown soft from your dependence on AI and now you too are stuck. This is what I am afraid of the most, and what I try to keep in mind when using AI.

What Do We Do?

Just as we have seen with any other advance of technology, we cannot stop it. Vibe coding is here and it likely isn’t going to disappear anytime soon. While we may not be able to stop the march of progress, we can change how we react to it. Being a snob won’t help the journey of someone discovering programming through vibe coding. You don’t have to like AI or vibe coding and you can still show kindness to a new generation of programmers. Instead of discouraging them, why not show interest in what they’re building and offer our help? If they are truly falling in love with programming, we have the opportunity to encourage them towards competence. Instead of just achieving their goals we can show them the beauty of knowing how they did it outside of “AI made it work.”

It’s for this reason I disagree with Amjad; I do think you should still learn how to code. Perhaps it would be helpful to qualify “who” I think should still learn how to code. I would love everyone to learn, but more realistically I think those who find joy in programming should learn how to code, especially if your career depends on it. If we ever do face the Ouroboros then we need champions of the old way to write code that withstands the test of time. We need more people like Alejandro, who wrote his own program to manage his checkbook in the 90’s and still uses it to this day. We’ll still be writing code in five years for the same reasons people take photos: we enjoy doing it.