Snack Stack: If Programming Languages Were Desserts …
Point of view: You have been invited to a holiday social gathering. It’s potluck and you’ve been tasked with contributing a homemade dessert.
Conflict: You have no idea what to make. You’re a coder, not a cook!
Resolution: Freak not, friend. Simply scroll down this handy dandy list of programming languages and find the one you primarily work with (or, heck, the one you wish you worked with; we won’t tell) to identify the perfect holiday potluck offering.
If you’re primarily programming in C, s’mores are the potluck dessert for you. S’mores are far from the most practical party snack because they require highly specific conditions to execute — after all, an open flame is required to toast the marshmallows — and realistically you can only prepare one at a time.
In the same way, C is demanding (with its numerous syntax demands); a bit tricky to execute (just one error in C source code will lead to several more on the terminal); and multi-threading is just not a thing.
Still, you find yourself going back to C whenever you feel the need to return to basics. Like s’mores, C always works in a pinch and brings back great memories from your youth.
C++: Rice Krispies Treats
Rice Krispies Treats are the logical extension of s’mores: same marshmallow base, but easier to execute in large batch production. Also a lot more portable, and you can throw together a batch pretty fast, like an hour before party time. In just the same way, C++ is easier to compile than its predecessor and useful in cases requiring high speed and concurrency.
Pro tip: Just as C++ contains a lot of “footguns” (features that are tempting to include, but likely to shoot you in the foot later), it’s tempting to jazz up the base Rice Krispies Treat recipe by tossing in extras like sprinkles or chocolate chips or festive red and green gummy bears. Resist the temptation. These classics are best consumed in their pure, original form.
Go: Monster Cookies
What makes Go really shine is its efficiency; it is capable of executing several processes concurrently. Golang also has an extensive “vocabulary,” meaning it can display more information than other languages, and Go’s structural typing capabilities allow for a great deal of functionality and dynamism.
These traits are why monster cookies are the edible equivalent of Go. Monster cookies are basically a peanut butter oatmeal cookie (bonus: This makes them naturally gluten-free) with your choice of mix-ins. These can be anything you like — chocolate chips and M&M candies are standard, but anything goes really.
The base cookie itself is satisfyingly dense and chewy, and turns out reliably well every time. But it’s also flexibly extensible according to whichever further tasty tidbits you choose to blend in, making the final product both difficult to mess up, yet also truly your own.
Java: Box of Chocolates
I’ve heard Java described as “a good tool for a lot of things, but not the best tool for anything,” and that pretty much says it all. For every specific thing Java does there is almost certainly another language that does it better, but then that language will just as certainly do other things worse than Java.
It’s a neat trick that Java’s true achievement is being exceptional at nothing while being good enough in almost everything.
This is why a box of mixed chocolates — the kind that comes with the map on the box lid so you can prioritize the dark chocolate sea salt caramels and avoid those weird jelly-filled ones — is the perfect potluck dessert contribution. Everyone will forgive that your contribution is not homemade because, like Java, there’s something for everyone in there and it always gets the job done.
It doesn’t matter which one really. Because no matter what you make, all the other JS devs at the party are going to stand around arguing how much better it would have been if you’d made it with Typescript.
Fruitcake is a classic confection that has been around since ancient times; Lisp is now the second-oldest programming language still in widespread use, younger only than Fortran, and even then by just one year.
Still, a few coders from each new generation discover Lisp and dedicate themselves to its arcane ways, the way fruitcake is still sold every December because there is a small but hardcore population who loudly declare it is the only true holiday sweet treat.
Lisp is the fruitcake of the holiday dessert buffet because few people have actually ever tried it, and most have no real desire ever to do so. But the people who do love it really, really love it.
Perl: Inscrutable Molecular Gastronomy … Thing
Perl programmers today are the same folks who really relish a robust regex. Yes, the Linux kernel is Perl, but even Linux is building new features in Rust now. People will look at your dessert and have absolutely no idea what is going on. They’re afraid to touch it.
PHP: Pre-Made Cookie Dough
PHP is a language you code in because you have to, not because you want to. Because it is the language underpinning WordPress, it’s popular with beginners and people who don’t know any better. And then when things inevitably go horribly wrong, the rest of us get called in to clean up that spaghetti code nightmare.
This is why PHP’s proper contribution to the holiday buffet would be those flabby, bland “place and bake” cookies with the Christmas tree. According to the package, there’s no mixing and no measuring — just delicious cookie dough ready to bake in the oven. If you don’t feel like baking, just eat the cookie dough right out of the package! At the party, you set your contribution down on the buffet table hoping nobody will notice and walk away fast.
After all the other fancier fare is picked over, though, and everyone’s had a few drinks, they come wandering back for just one more quick snack … and there’s PHP, waiting. By the end of the evening your tray is empty. As you knew it would be.
Python: Grocery Store Cupcakes
Python programmers are pragmatists. They like it as a general-purpose programming language that is versatile, easy to drive and comes with lots of built-in conveniences. They don’t care that Python isn’t fast or sexy because, let’s face it, neither are most of the apps that most of us get paid to build. Somehow, though, Python has also appeared at the top of Stack Overflow’s “most wanted to learn” languages for the past five years.
This is why the perfect confection for a Python coder to bring to the holiday potluck is grocery store cupcakes. All that’s required is a quick swing through the bakery section at the supermarket and some quick math (ndozen=nguests/12). A practical, efficient and popular choice, and of course you will be certain to recycle the containers after the other partygoers gobble them up.
Rust: Jell-O Jigglers
Rust – Stack Overflow’s most loved programming language for the seventh year in a row — is a language that challenges your preconceptions and forces you to reevaluate all you believe to be true. Rust features unique concepts not present in other programming languages — like ownership and borrowing — that can occasionally cause your brain to wobble. This is why the perfect Rust programmer holiday potluck dessert is Jell-O Jigglers!
This is not just dessert, it is even an educational opportunity: Introduce your fellow partygoers to the concept of safe vs. unsafe Rust by making half of them plain and the other half with, say, 190-proof Everclear, and let them figure out which is which. Oh, the memories you will make together!
SQL: Chocolate Chip Cookies
Everyone will be so happy to encounter a heaping plate of homemade chocolate chip cookies at this party. “Oh!” they will say, with dawning delight. “I love these but haven’t had them in ages!” Everyone will ask for your recipe (even though they also secretly wrapped a stack of cookies in some napkins and stuck them in a pocket for later).
Just like homemade chocolate chip cookies, SQL simply makes the world a better place to be. I would absolutely not want to live in a world where I had to write procedural code to do the things that SQL does effortlessly. Seriously!
Machine learning and artificial intelligence are what everyone wants to talk about, but the truth is a good 75% of the time a properly written SQL query, maybe neatly wrapped in a napkin with a tight Bash script and a strategic cron job, is the tool to tuck in your pocket to bring some simple joy to your life later on.
Wasm: Disposable Plates and Utensils
OK, yeah, so WebAssembly (Wasm) isn’t actually a programming language, but rather a compilation target for other languages, allowing server-side code to be compiled into Wasm to be executed in the browser. In theory this takes the performance of heavy-duty tasks to the next level, allowing anyone to write machine code to run inside a safe and virtual sandbox right in the browser (or, increasingly, outside of it).
This is why disposable plates, forks, etc. are the perfect holiday potluck contribution for the enthusiast scrolling all the way down here to the end of this list to find Wasm. Yes, you were supposed to bring dessert, but nobody minds — after all, yours is the party contribution that makes all those Rust/Python/C++/JS offerings easily and efficiently consumable.