Coding with Gemini was Fun Short-Lived

During my migration from Pi to NAS via all things Docker, one of the problems I immediately faced was how I was going to handle my aging databases. All these eBooks, magazines, articles, and etc. I have accumulated since high school had to go somewhere. I know there would be some people shouting I should simply throw them out like the 90s memorabilia in the attic. But I took this on as my personal DIY project.

As I was told many years ago, Python is great when the scope of your project is “build once and use once”. This is a migration project, so Python would be great. And a hack — yes, a hack! — of a job I did over the course of years. My DIY databases needed to be disassembled and reassembled with open source, community-backed, more rigorously tested suite, not some script kiddies work from OS X Leopard machine.

All in all, it meant a lot of reading. Good programming always starts with good reading and ends with even greater writing. You see online cringy memes about programmers not understanding their own codes due to lack of proper documentations — it’s not funny at all. It’s like seeing surgeons laughing because they forgot where they put a kidney. This is where Gemini came in. I wanted to find what APIs I can use quickly, and I wanted AI suggestions on new Python packages.

One other reason why I use Python is its packages. Think of it as a toolkit. You want to approach the subject to add, remove, or manipulate data. You could build a big ladder yourself, or you could start borrowing tools around the neighborhood. It sounds all great and dandy, except there is one major caveat. Just like any other softwares, it is only fresh so long as it is maintained. If your neighbor’s ladder is equally broken as yours, it’s not much of an advantage.

No doubt some of you are already seeing my own future demise here. Gemini gave me some useful suggestions on APIs and packages, but quite frankly, 99% of them were broken. My question was completely niche subject: home labs, networking, personal DB, and etc. Many features Gemini said it is offered for free were paywalled. The Python packages Gemini thought would help were not maintained and simply ceased to function. I ended up writing a function that would replace the job I wanted to delegate to a Python package, while filtering out which APIs mentioned were real.

When I asked Gemini to come up with a snippet of function to parse data, ones I would have written regex myself previously, it failed spectacularly. I had to keep remind the LLM that there were specs, but it would quickly fix one part of the function only to trim the other parts. If you have ever worked with parsing, especially trying to make sense of one garbled data to another, it’s hard for human eyes to catch these subtle pruning jobs. Using higher, “paid” models with time limits made it to apologize, seeing as I had laid out specs in the past convo. But what in the world is the meaning of a software’s apology?

My DIY projects are still on-going. It’s been roughly two weeks. I will probably keep using Gemini, because it is better than Google Search to find the subject matter. But if someone were to ask me if a programmer, a “real” programmer, would lose a job over this, I don’t think they were programming in the first place. Perhaps competitors’ (like Claude) may offer far superior coding experience, but I’m still the one understanding the needs and documenting the specs of each program. That’s the primary work of building a program, not weaving out codes.

Leave a comment

Comments will be automatically closed after 30 days.