this post was submitted on 13 Nov 2024
792 points (96.2% liked)

Greentext

4384 readers
1801 users here now

This is a place to share greentexts and witness the confounding life of Anon. If you're new to the Greentext community, think of it as a sort of zoo with Anon as the main attraction.

Be warned:

If you find yourself getting angry (or god forbid, agreeing) with something Anon has said, you might be doing it wrong.

founded 1 year ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] sugar_in_your_tea@sh.itjust.works 4 points 14 hours ago* (last edited 14 hours ago)

Honestly, I prefer C to Java, it's incredibly simple without all the BS that Java throws at you:

  • interfaces - compiler will fail if you provide the wrong types; w/ Java, figuring out what types to pass is an effort unto itself
  • functions - everything needs to be in a class; even callback functions are wrapped in a class (behind the scenes if you use modern Java); in C, you just pass a function
  • performance - Java uses a stop the world GC, which can cause issues if you have enough data churn; in C, you decide when/if you want to allocate or free memory, no surprises

There are certainly some bad parts, but all in all, when I run into an issue in C, I know it's my fault, whereas in Java, there are a million reasons why my assumptions could be considered valid, and I have to dig around the docs to find that one sentence that tells me where I went wrong w/ the stuff I chose.

That said, I prefer Rust to both because:

  • get fancy stack traces like I do in Java (I really miss stack traces in C)
  • compiler catches most of my stupid mistakes, Java will just throw exceptions
  • still no stupid interface hell, I just satisfy a specific trait and we're good
  • generally pretty concise for what it is; I can rarely point to a piece of syntax and say it's unnecessary

I use:

  • Python - scripting and small projects
  • Rust - serious projects or things that need to be fast
  • Go - relatively simple IO-heavy projects that need to be pretty fast
  • C - embedded stuff where I don't want to mess w/ the Rust toolchain

Java has been absent from my toolbox for well over a decade, and I actively avoid it to this day because it causes me to break out in hives.