I don't feel fulfilled as a programmer unless I'm inputting instructions by hand on punch cards. I refuse to work anywhere or use software that uses any higher level abstractions. It might feel faster using Assembly or using a keyboard but there's actually no productivity gains.
Programmer Humor
Post funny things about programming here! (Or just rant about your favourite programming language.)
Rules:
- Posts must be relevant to programming, programmers, or computer science.
- No NSFW content.
- Jokes must be in good taste. No hate speech, bigotry, etc.
Guys I’ve watched a LOT of Star Trek Tee En Gee with my dad when I was growing up and he loved it a lot and he said that someday we’d have holodecks and talking computers and the engineering we do today would be child’s play but guys now I can talk to the computer and it talks back guys it says it’s my friend and I don’t understand all the code it writes at all so this must be the magic future where things are so advanced guys we made it I’m so happy I can just ask daddy to go get me the thing I always wanted but we didn’t know how to make before guys but now it can and this lets me be the BEST engineer like Joey Laugh Orge but on earth and right now instead of in space but later and it’s all thanks to this robot I can totally trust and have to pay a subscription for but the future is nows guys it’s so obvious I can’t believe I’m alive to see it happen
You can't compare a statistical token generator to a deterministic algorithmic program.
I could've sworn that I saw a headline recently that gcc isn't deterministic. But maybe that was some really weird edge case or a bug.
I'm fairly certain that clang is non-deterministic and I strongly suspect that gcc is too.
I don't think that's true - or thst it is a bug. It would make reproducible builds impossible.
My understanding was that clang isn't deterministic by default but can be made deterministic with flags. I checked and this is still true but not for the reasons I thought. I assumed this was due to the way LLVM iterates over functions and basic blocks in a non-deterministic order (because of the way they are laid out in memory) and because some optimisations use heuristics. But it appears LLVM tries to make all optimisation passes deterministic. The remaining non-determinism comes from file paths and timestamps which can be worked around with the correct flags and some extra work to create reproducible builds.