DEV Community

Cover image for Coding Language Prognostications For the New Year with Gemini CLI
xbill
xbill

Posted on

Coding Language Prognostications For the New Year with Gemini CLI

Done with making my List and checking it twice- time for some serious coding language resolutions.

Gemini CLI is many things. A Swiss army knife for AI development, a MCP client, an extendable platform, a vehicle for rolling out Gemini Models, and much more. It may even come with a free Sham-wow and some Oxiclean. RIP Billy Mays. I bet it would make me a sandwich if it could.

I should have known better.

> make me a sandwich

✦ I can't make you a physical sandwich, but I can certainly whip one up in Python for you!

╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ✓  WriteFile Writing to sandwich.py                                                                                           │
│                                                                                                                               │
│  1 def make_sandwich():                                                                                                       │
│  2     print("   ______")                                                                                                     │
│  3     print("  /     /")                                                                                                     │
│  4     print(" /_____/|")                                                                                                     │
│  5     print("(      )|")                                                                                                     │
│  6     print("|______|/")                                                                                                     │
│  7     print("   | |")                                                                                                        │
│  8     print("   |_|")                                                                                                        │
│  9     print("")                                                                                                              │
│ 10     print("Here is your digital sandwich!")                                                                                │
│ 11     print("      __________")                                                                                              │
│ 12     print("     /         /")                                                                                              │
│ 13     print("    /  Bread  /")                                                                                               │
│ 14     print("   /_________/")                                                                                                │
│ 15     print("  | Letuce  |")                                                                                                 │
│ 16     print("  | Tomato  |")                                                                                                 │
│ 17     print("  |  Meat   |")                                                                                                 │
│ 18     print("  | Cheese  |")                                                                                                 │
│ 19     print("  |_________|")                                                                                                 │
│ 20     print(" /         /")                                                                                                  │
│ 21     print("/  Bread  /")                                                                                                   │
│ 22     print("/_________/ ")                                                                                                  │
│ 23                                                                                                                            │
│ 24 if __name__ == "__main__":                                                                                                 │
│ 25     make_sandwich()                                                                                                        │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
✦ I've prepared the code. Now, let's serve it up!

╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ✓  Shell python3 sandwich.py [current working directory /home/xbill]                                                          │
│                                                                                                                               │
│    ______                                                                                                                     │
│   /     /                                                                                                                     │
│  /_____/|                                                                                                                     │
│ (      )|                                                                                                                     │
│ |______|/                                                                                                                     │
│    | |                                                                                                                        │
│    |_|                                                                                                                        │
│                                                                                                                               │
│ Here is your digital sandwich!                                                                                                │
│       __________                                                                                                              │
│      /         /                                                                                                              │
│     /  Bread  /                                                                                                               │
│    /_________/                                                                                                                │
│   | Letuce  |                                                                                                                 │
│   | Tomato  |                                                                                                                 │
│   |  Meat   |                                                                                                                 │
│   | Cheese  |                                                                                                                 │
│   |_________|                                                                                                                 │
│  /         /                                                                                                                  │
│ /  Bread  /                                                                                                                   │
│ /_________/                                                                                                                   │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
✦ Bon appétit! Your digital sandwich is ready. Let me know if you'd like any software-based sides with that.
Auto (Swift)
Enter fullscreen mode Exit fullscreen mode

Seeing how it is that time of year. How about some good o’le New Years Resolutions? I was curious how the various language mascots will play out in the coming year. So I asked Gemini CLI. After all it has the both the fancy new Gemini 3.0 models- Flash and Pro. It can slice and dice!

Gemini — give me what you got.

any predictions for the new year? will the sham-wow make a comeback?

✦ I’ll consult the oracle (Google) to see if Vince Offer is planning a resurgence.

╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ✓ GoogleSearch Searching the web for: “ShamWow comeback 2025 news” │
│ │
│ Search results for “ShamWow comeback 2025 news” returned. │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
✦ Unbelievably, yes. You might want to buy a lottery ticket because your intuition is spot on.

According to the latest search results, Vince Offer (the ShamWow guy) is indeed planning a comeback in 2025 with a new product
 called “ShamPOW!”.

It appears to be a hybrid car-drying tool combining microfiber and the classic ShamWow material. So, while the original orange
 towel might not be taking center stage, the spirit of aggressive absorbency is definitely returning.

As for other predictions:
 1. Rust will continue to rewrite everything.
 2. Someone will try to run Doom on a smart toaster (and succeed).
 3. You’ll say “You’re gonna love my nuts” at least once in 2025 (referencing another Vince Offer classic).

i have two other obsessions — Billy Mays and Programming Language Mascots

✦ I can work with that! Since you’re into Billy Mays, I’ve prepared a “Pitch” for the Rust mascot, Ferris the Crab, written
 exactly how Billy would have shouted it.

1 # BUT WAIT, THERE’S MORE!
 2 
 3 “HI, BILLY MAYS HERE FOR FERRIS THE CRAB
 4 
 5 ARE YOU TIRED OF MEMORY LEAKS RUINING YOUR AFTERNOON? 
 6 IS YOUR SEGFAULTING CODE MAKING A MESS ALL OVER THE PRODUCTION SERVER?
 7 
 8 YOU NEED RUST
 9 
 10 IT’S NOT A BUFFER OVERFLOW, IT’S NOT A DANGLING POINTER, IT’S THE POWER OF THE BORROW CHECKER! 
 11 
 12 LOOK AT THIS DATA RACE! [Billy points to a messy C++ thread]
 13 ONE SWIPE WITH FERRIS AND BOOM! THREAD SAFETY GUARANTEED!
 14 
 15 IF YOU CALL IN THE NEXT TEN MINUTES, WE’LL THROW IN THE CARGO PACKAGE MANAGER ABSOLUTELY FREE! 
 16 
 17 THAT’S A $0.00 VALUE FOR ONLY THE PRICE OF YOUR TEMPORAL SANITY!
 18 
 19 STOP CRASHING! START CRABBING! CALL NOW!”

If you want to see a full list of your favorite mascots or have me generate a “Mascot Battle Royale” script, just say the word.
 Do you have a favorite among the ElePHPant, the Gopher, or Ferris?

For the unwashed masses. Yes they do.

How could you even think of Go coding with out the Gopher. He will tunnel under your foundations and ruin the resale value of your house. This guy has moved beyond the Caddy Shack and ready to chomp through entire code bases.

Not that Python would miss the bandwagon. Nothing fancy- just some snakes hanging around. Could they be AI snakes? or maybe just snake infested AI TPU libraries?

Rust? Forget about memory safety and zero cost abstractions- those pincers can do some serious damage. Have you ever wanted to start a flame war on the modern Internet? Maybe write up an article covering the superiority of Visual basic on Windows Vista over anything Rust has to offer.

Node.js is not missing this bandwagon. Not only are they pushing Type Safety with fancy pre-processing with TypeScript but that Rocket Turtle looks like it could do some serious damage.

Java Duke may have seen better days but he has a little bit more Spring in his step and not quite ready to ride off into the sunset. Besides something needs to satisfy my OCD for weird nested directory structures and obscure runtime variables.

Can’t forget the elePHPant in the room. This big guy gets no love but runs more than half the Internet. He is showing some age but nothing that a bit of refactoring can’t fix!

Bring on the Battle Royale!

✦ I’m writing a script to simulate the ultimate showdown. Prepare yourself for the “Runtime Rumble!”

import random
import time

class Mascot:
    def __init__(self, name, language, hp, special_move, catchphrase):
        self.name = name
        self.language = language
        self.hp = hp
        self.max_hp = hp
        self.special_move = special_move
        self.catchphrase = catchphrase

    def is_alive(self):
        return self.hp > 0

    def attack(self, opponent):
        damage = random.randint(10, 25)
        is_crit = random.random() < 0.2

        print(f"\n{self.name} attacks {opponent.name}!")

        if is_crit:
            damage += 15
            print(f"*** CRITICAL HIT! {self.name} uses {self.special_move}! ***")
            if self.name == "Ferris":
                print(f"Ferris shouts: 'It's a borrowing violation!'")
            elif self.name == "The Gopher":
                print(f"The Gopher launches 10,000 tiny goroutines!")
            elif self.name == "Duke":
                print(f"Duke throws a FactoryFactoryStrategyPatternException!")
            elif self.name == "Python":
                print(f"Python simply states: 'import victory'")

        opponent.take_damage(damage)
        print(f"{self.name}: \"{self.catchphrase}\"\n")

    def take_damage(self, amount):
        self.hp -= amount
        if self.hp < 0:
            self.hp = 0
        print(f"{self.name} takes {amount} damage! (HP: {self.hp}/{self.max_hp})")

def battle_royale():
    mascots = [
        Mascot("Ferris the Crab", "Rust", 100, "Borrow Checker Guillotine", "Memory safety is non-negotiable!"),
        Mascot("The Gopher", "Go", 100, "Panic & Recover", "I'll be done before you start."),
        Mascot("ElePHPant", "PHP", 110, "$_GET['REKT']", "It's not a bug, it's a feature."),
        Mascot("Duke", "Java", 120, "Verbose Exception Stacktrace", "Write once, run anywhere... eventually."),
        Mascot("Python Snake", "Python", 90, "Dynamic Typing Strike", "Readability counts, but so does winning."),
        Mascot("Octocat", "GitHub", 95, "Merge Conflict", "Force push initiated!")
    ]

    print("--- WELCOME TO THE PROGRAMMING MASCOT BATTLE ROYALE! ---")
    print("In the red corner... we have memory safety fanatics!")
    print("In the blue corner... we have dynamic typing enthusiasts!")
    print("FIGHT!\n")
    time.sleep(1)

    round_num = 1
    while len(mascots) > 1:
        # Pick two random fighters
        fighter1 = random.choice(mascots)
        fighter2 = random.choice(mascots)
        while fighter1 == fighter2:
            fighter2 = random.choice(mascots)

        print(f"--- ROUND {round_num}: {fighter1.name} vs {fighter2.name} ---")

        # Fight logic
        fighter1.attack(fighter2)
        if fighter2.is_alive():
            fighter2.attack(fighter1)
        else:
            print(f"\n-> {fighter2.name} has been GARBAGE COLLECTED!")
            mascots.remove(fighter2)

        if not fighter1.is_alive():
            print(f"\n-> {fighter1.name} has been GARBAGE COLLECTED!")
            mascots.remove(fighter1)

        round_num += 1
        time.sleep(0.5)

    print(f"\n\n🏆 THE WINNER IS: {mascots[0].name} ({mascots[0].language})! 🏆")
    print(f"Final HP: {mascots[0].hp}")

if __name__ == "__main__":
    battle_royale()
Auto (Python)
Enter fullscreen mode Exit fullscreen mode
✦ The fighters are in the cage. Let's start the match!

╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ✓  Shell python3 mascot_battle.py [current working directory /home/xbill]                                                     │
│                                                                                                                               │
│ ... first 84 lines hidden ...                                                                                                 │
│ Python Snake: "Readability counts, but so does winning."                                                                      │
│                                                                                                                               │
│ --- ROUND 8: ElePHPant vs The Gopher ---                                                                                      │
│                                                                                                                               │
│ ElePHPant attacks The Gopher!                                                                                                 │
│ *** CRITICAL HIT! ElePHPant uses $_GET['REKT']! ***                                                                           │
│ The Gopher takes 34 damage! (HP: 34/100)                                                                                      │
│ ElePHPant: "It's not a bug, it's a feature."                                                                                  │
│                                                                                                                               │
│                                                                                                                               │
│ The Gopher attacks ElePHPant!                                                                                                 │
│ ElePHPant takes 24 damage! (HP: 14/110)                                                                                       │
│ The Gopher: "I'll be done before you start."                                                                                  │
│                                                                                                                               │
│ --- ROUND 9: Octocat vs ElePHPant ---                                                                                         │
│                                                                                                                               │
│ Octocat attacks ElePHPant!                                                                                                    │
│ ElePHPant takes 23 damage! (HP: 0/110)                                                                                        │
│ Octocat: "Force push initiated!"                                                                                              │
│                                                                                                                               │
│                                                                                                                               │
│ -> ElePHPant has been GARBAGE COLLECTED!                                                                                      │
│ --- ROUND 10: Duke vs Octocat ---                                                                                             │
│                                                                                                                               │
│ Duke attacks Octocat!                                                                                                         │
│ Octocat takes 19 damage! (HP: 28/95)                                                                                          │
│ Duke: "Write once, run anywhere... eventually."                                                                               │
│                                                                                                                               │
│                                                                                                                               │
│ Octocat attacks Duke!                                                                                                         │
│ Duke takes 11 damage! (HP: 25/120)                                                                                            │
│ Octocat: "Force push initiated!"                                                                                              │
│                                                                                                                               │
│ --- ROUND 11: Octocat vs Ferris the Crab ---                                                                                  │
│                                                                                                                               │
│ Octocat attacks Ferris the Crab!                                                                                              │
│ Ferris the Crab takes 25 damage! (HP: 75/100)                                                                                 │
│ Octocat: "Force push initiated!"                                                                                              │
│                                                                                                                               │
│                                                                                                                               │
│ Ferris the Crab attacks Octocat!                                                                                              │
│ Octocat takes 12 damage! (HP: 16/95)                                                                                          │
│ Ferris the Crab: "Memory safety is non-negotiable!"                                                                           │
│                                                                                                                               │
│ --- ROUND 12: Octocat vs Python Snake ---                                                                                     │
│                                                                                                                               │
│ Octocat attacks Python Snake!                                                                                                 │
│ Python Snake takes 17 damage! (HP: 18/90)                                                                                     │
│ Octocat: "Force push initiated!"                                                                                              │
│                                                                                                                               │
│                                                                                                                               │
│ Python Snake attacks Octocat!                                                                                                 │
│ Octocat takes 16 damage! (HP: 0/95)                                                                                           │
│ Python Snake: "Readability counts, but so does winning."                                                                      │
│                                                                                                                               │
│                                                                                                                               │
│ -> Octocat has been GARBAGE COLLECTED!                                                                                        │
│ --- ROUND 13: The Gopher vs Python Snake ---                                                                                  │
│                                                                                                                               │
│ The Gopher attacks Python Snake!                                                                                              │
│ Python Snake takes 16 damage! (HP: 2/90)                                                                                      │
│ The Gopher: "I'll be done before you start."                                                                                  │
│                                                                                                                               │
│                                                                                                                               │
│ Python Snake attacks The Gopher!                                                                                              │
│ The Gopher takes 13 damage! (HP: 21/100)                                                                                      │
│ Python Snake: "Readability counts, but so does winning."                                                                      │
│                                                                                                                               │
│ --- ROUND 14: Python Snake vs Ferris the Crab ---                                                                             │
│                                                                                                                               │
│ Python Snake attacks Ferris the Crab!                                                                                         │
│ *** CRITICAL HIT! Python Snake uses Dynamic Typing Strike! ***                                                                │
│ Ferris the Crab takes 38 damage! (HP: 37/100)                                                                                 │
│ Python Snake: "Readability counts, but so does winning."                                                                      │
│                                                                                                                               │
│                                                                                                                               │
│ Ferris the Crab attacks Python Snake!                                                                                         │
│ Python Snake takes 15 damage! (HP: 0/90)                                                                                      │
│ Ferris the Crab: "Memory safety is non-negotiable!"                                                                           │
│                                                                                                                               │
│                                                                                                                               │
│ -> Python Snake has been GARBAGE COLLECTED!                                                                                   │
│ --- ROUND 15: Ferris the Crab vs The Gopher ---                                                                               │
│                                                                                                                               │
│ Ferris the Crab attacks The Gopher!                                                                                           │
│ *** CRITICAL HIT! Ferris the Crab uses Borrow Checker Guillotine! ***                                                         │
│ The Gopher takes 38 damage! (HP: 0/100)                                                                                       │
│ Ferris the Crab: "Memory safety is non-negotiable!"                                                                           │
│                                                                                                                               │
│                                                                                                                               │
│ -> The Gopher has been GARBAGE COLLECTED!                                                                                     │
│ --- ROUND 16: Duke vs Ferris the Crab ---                                                                                     │
│                                                                                                                               │
│ Duke attacks Ferris the Crab!                                                                                                 │
│ Ferris the Crab takes 21 damage! (HP: 16/100)                                                                                 │
│ Duke: "Write once, run anywhere... eventually."                                                                               │
│                                                                                                                               │
│                                                                                                                               │
│ Ferris the Crab attacks Duke!                                                                                                 │
│ Duke takes 20 damage! (HP: 5/120)                                                                                             │
│ Ferris the Crab: "Memory safety is non-negotiable!"                                                                           │
│                                                                                                                               │
│ --- ROUND 17: Ferris the Crab vs Duke ---                                                                                     │
│                                                                                                                               │
│ Ferris the Crab attacks Duke!                                                                                                 │
│ Duke takes 23 damage! (HP: 0/120)                                                                                             │
│ Ferris the Crab: "Memory safety is non-negotiable!"                                                                           │
│                                                                                                                               │
│                                                                                                                               │
│ -> Duke has been GARBAGE COLLECTED!                                                                                           │
│                                                                                                                               │
│                                                                                                                               │
│ 🏆 THE WINNER IS: Ferris the Crab (Rust)! 🏆                                                                                  │
│ Final HP: 16                                                                                                                  │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
✦ It looks like memory safety reigns supreme today! Ferris the Crab (Rust) is the champion, having barely scraped by with 16 HP
  after taking down Duke (Java) in the final round.

  Notably:
   - ElePHPant put up a good fight but was garbage collected by Octocat.
   - Python Snake landed a massive critical hit on Ferris but ultimately couldn't handle the Borrow Checker.
   - The Gopher was fast, but Ferris was safer.

  Would you like to run the simulation again to see if dynamic typing can take the title, or should we celebrate Ferris's victory
  with some oxided confetti?
Auto (VB.NET)
Enter fullscreen mode Exit fullscreen mode

Gemini writes better than I do. Could not have said it better:

some final thoughts?!

✦ If there is one universal truth to take away from today, it is this: Leak prevention is a lifestyle.

Whether you are Vince Offer drying a sedan in 2025 with a “ShamPOW!”, or Ferris the Crab refusing to let a dangling pointer
 exist in production, the philosophy remains the same: Keep it clean, keep it dry, and never let the unexpected crash your
 system.

As Billy Mays might scream from the great infomercial in the sky:

“LIFE IS TOUGH, BUT SO IS THIS TYPE SYSTEM! ORDER NOW, AND WE’LL DOUBLE THE PERFORMANCE! IT’S QUICK, IT’S EASY, AND IT’S
 TYPE-SAFE!”

Go forth and compile with confidence.

Top comments (0)