I started learning about bioinformatics back in the days when a lot of bioinformatics was done in Perl. Nowadays I don't see much Perl used in new tools, which are mostly written in Python or R or both. Perl was dominant back in the day because you could get work done quickly. Perl is a forgiving language and very flexible but both of these become a problem if you don't have good fundamentals and I believe this is the reason why Perl became so hated in bioinformatics. A lot of bioinformatics practitioners came from a biology background, like myself, and had never studied programming and/or computer science. But if you persevered and just stubbornly go into a cycle of editing and re-running, you can come up with a "functioning" Perl script, which I mean one that simply doesn't throw an error. You wouldn't use this script blindly of course and would see if the output matches your expectations. If it does, then that becomes the Perl script for that particular task. Fast forward weeks or months later when you need to reuse that script on new data, it doesn't work anymore because something has changed. Then you go into this cycle of editing and re-running again to get it working for the new data. This generates a script that ultimately works but has included conditionals, hardcoded options, and whatnot that needed to be included to accommodate the new data and the old. This script gets shared come publication time and "custom Perl script" is used in the methods description, adding another data point for Perl and irreproducible work or at best, work that is difficult to reproduce. I know this cycle because I practised it and had I known better, I wouldn't have done it; and that's the point: I didn't know.
Now, there's nothing wrong with Perl and perhaps it doesn't deserve the bad rep it gets. I managed to get a lot of work done and could create useful web applications using Perl. But I really think it's a language meant for someone like the seasoned system admin who seems to know everything and has limited time because they need to manage too many things at once. They can leverage the flexibility and terseness of Perl to really create something that keeps systems together. Furthermore, in a lot of labs there's usually only one sys admin, so only they need to understand how all the scripts works. But for someone without the computing background, it can be disastrous, which was what happened with Perl and bioinformatics. I have found that the most useful thing to do when somebody doesn't know what they are doing, is to limit what they can do. And then this comes to the same point where you need to choose between how limiting something is, which is safer, versus flexibility, which makes it more usable.
I can't remember when the realisation hit me that Perl and bioinformatics back in the day is just like AI and bioinformatics right now. I wanted to write about it then but have put it off until now. Once again, we have a tool (AI) that helps us get work done quickly and this time almost effortlessly. You simply describe what you want to get done in a prompt and all the code and documentation (if you also included this) is outputted. You may argue that Perl and AI are two completely different tools, and they are, but to me, the issue is fundamentally the same: you have somebody without the background knowledge trying to create something that requires the background knowledge. Like Perl, you can use AI to speed things up but only if you are that seasoned sys admin. Lior Pachter implemented edgeR in Python in a week by using Claude; from the pre-print:
This project was completed in one week with Claude Opus 4.5 and Opus 4.6 performing the coding. As someone who had not coded seriously for more than 20 years, I found Claude’s efficiency and accuracy enabling in a way that would have been inconceivable a few years ago. At this point, it is reasonable to predict that what took a week for this project may soon take less than a day. This raises the question of what the role of preprints, conference proceedings, and journal publications will be in the scientific enterprise of the future (Zeilberger, 1993)
That's a very substantial statement made even more substantial because of who said it. But I don't think I could have vibe coded a technically correct version of edgeR in Python. I simply don't have the deep statistical and computational background to verify the output. I firmly believe that you need the solid fundamentals and foundations to be able to use AI effectively to build what you want. With the current state of the models and my experience with them, I don't think all of that can be outsourced to AI (and even if you could, you shouldn't). But perhaps I'm prompting it wrong and/or not using AI properly.
To end, I wonder if the modern day equivalent of "custom Perl script" will be "coded by AI" in bioinformatics. I wonder if a marker for poor quality and/or irreproducible work will be any mention of AI coding in the methods. It's not that AI (or Perl) does poor work, it's just that they make it too easy to generate plausible output and when AI is used without the necessary background knowledge, it will produce sub-optimal work.

This work is licensed under a Creative Commons
Attribution 4.0 International License.