this post was submitted on 13 Nov 2024
752 points (96.0% liked)

Greentext

4379 readers
1467 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
[–] [email protected] 12 points 16 hours ago (3 children)

I really enjoyed the text.

From the perspective of a python programmer it all seems valid.

A Java-Dev would probably write the same about an embedded engineer.

[–] [email protected] 5 points 13 hours ago

As embedded dev, the stack trace alone scares me. It would be funny to watch the Java runtime blow the 8 frame deep stack on a PIC18 tho

[–] [email protected] 4 points 12 hours ago* (last edited 12 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.

[–] [email protected] 6 points 15 hours ago

Sorry, you had a small error in the spacings of your post; Therefore I cannot parse a thing you're saying. Didn't mean to scare you with a semicolon either. It's just a tool in language's to end a clause and begin a related, independent clause. That could be useful somewhere...