Saturday, April 27, 2024

Old Code, New Tricks: A C++ Coder’s Journey from Vim to Vibes

 

Old Code, New Tricks: A C++ Coder’s Journey from Vim to Vibes

60++ coders view of the Gen z coder

Hey there, fellow keyboard warriors! It’s Srini here, your neighborhood C++ old-timer, ready to spin you a yarn about the coding clashes of generations. I've been in the trenches long enough to see punch cards go out of style, and yet here I am, trying to understand why my terminal doesn’t support emoji.

Let’s dive into the delightful chaos of coding styles, where the venerable Unix shell meets the snap-and-go ethos of Gen Z. Brace yourself for a lighthearted romp through code blocks and TikTok clocks!

Chapter 1: Greetings, System!

Back in my day, we greeted each other with a handshake firm enough to affirm your C++ credentials. In code? It was no different:

include <iostream>

int main() {

    std::cout << "Hello, World!" << std::endl;

    return 0;

}

But enter Gen Z, and suddenly my "Hello, World!" looks as ancient as the floppy disks gathering dust in my attic. Here’s how the new kids might do it:

include <iostream>

using namespace std;

auto main() -> int {

    cout << "Heyyy 🌍!" << endl;

}

Yes, emojis. In terminal output. Where will they show up next? Commit messages?

Chapter 2: Comments and Commitments

Now, let’s talk about commenting. My comments used to be a meticulous affair, much like crafting a fine watch. Here’s an example:

// Function: Calculate the factorial of a number

// Input: int - The number for which to calculate the factorial

// Output: long long - The factorial of the number

long long factorial(int n) {

    // Base case

    if (n == 0) return 1;

    // Recursive case

    return n * factorial(n - 1);

}

Fast forward to today, and Gen Z’s comments look like they were typed with one thumb while skateboarding:

// idk man, it just works 🤷‍♂️

auto fact(auto n) -> decltype(n) {

    return (n < 2) ? 1 : n * fact(n - 1);

}

I mean, who needs detailed comments when you have swagger and autocorrect?

Chapter 3: Compilation Showdown

Here’s where it gets interesting. Compiling code in my day was akin to a sacred ritual. The command line was our altar, and GCC our high priest. A typical compile command?

g++ -Wall -Werror -O2 -o program program.cpp

Today’s Gen Z coder slaps a Docker container together faster than I can say “linker error.” And their compile commands? It's all about shorthand:

g++ -o prog prog.cpp && ./prog

Simple, sleek, and oh, did I mention they run it inside an Alpine Linux container spun up on their Kubernetes cluster managed through a cloud IDE? Phew!

Chapter 4: Optimization Olympics

Optimization? My era was obsessed. We’d spend days squeezing every bit of performance from our code like it was a lemon on my free salad . Check out this snippet for calculating primes:

for (int i = 2; i < n; i++) {

    bool isPrime = true;

    for (int j = 2; j * j <= i; j++) {

        if (i % j == 0) {

            isPrime = false;

            break;

        }

    }

    if (isPrime) primes.push_back(i);

}

Cut to Gen Z, and here’s their version, leveraging every library and framework under the sun:

vector<int> getPrimes(int n) {

    vector<bool> is_prime(n+1, true);

    for (int i = 2; i * i <= n; i++) {

        if (is_prime[i]) {

            for (int j = i * i; j <= n; j += i)

                is_prime[j] = false;

        }

    }

    return vector<int>(is_prime.begin() + 2, is_prime.end());

}

They call it “modern C++.” I call it “Why reinvent the wheel when there’s Stack Overflow?”

Epilogue: Embracing the New, Respecting the Old

As much as I poke fun at these young coders, there’s something to be said for the sheer speed and adaptability of Gen Z programmers. They’ve got the tools, the tech, and the TikTok to do things in ways we never dreamed of.

So, whether you’re an old school coder like me or a fresh-faced dev with a penchant for memes, remember: the best code is the code that works. And sometimes, it even has emojis.

Keep coding, and keep laughing, folks! Until next time, this is Srini signing off. 👋🧑‍💻


BTW don't compile any of the code here. I have no clue if it even compiles, let alone work. 😀

0 Comments:

Post a Comment

<< Home