3 ms·
> I know younger programmers who don't even bother to check for errors The older programmers of today were once young, and many of them didn't bother to check
by bigbillheck 4y ago
> I know younger programmers who don't even bother to check for errors
The older programmers of today were once young, and many of them didn't bother to check for errors back then.
- labrador 4y agoThey did if they were C/C++ programmers because everyone would know if they didn't when the screen went sad. Maybe Java programmers. I don't know, I never touched the stuff.
- tialaramex 4y agoNo, they didn't, they just ignored the errors and most of the time they got away with it. That's what the Hello, World! error illustrates. The canonical "Hello, World!" in these languages actually ignores errors, and nobody cares. But it speaks to the general mindset behind C and C++ programmers. "Eh, it's fine". Until it isn't.
- labrador 4y agoYou're joking right? There's zero, zilch, nada need to check the error return from a Hello, World program. Hello World is a standard way to show you can compile and run a program. If you can't do Hello World, you can't do anything else. It's a good joke though. I'll probably steal it.
- murderfs 4y agoWhen was the last time you've seen someone check the return value of printf?
- yakubin 4y agoAnd what is your program supposed to do when printf fails? Print an error?
- kelnos 4y agoPerhaps "return 1", at least. If writing to the console fails for some reason, when the entire purpose of the program is to write something to the console, the program shouldn't exit with a status of zero. Arguably a "correct" hello world in C is: #include <stdio.h> #include <string.h> #define HI "Hello, world\n" int main() { if (printf(HI) != strlen(HI)) { return 1; } return 0; } (And I'm sure astute readers could even find fault with this implementation.) Obviously this is tongue-in-cheek; I would never write code that checks the output of printf(), even if perhaps, in some abstract way, I "should". If we were to believe that the purpose of a "hello world" program was to teach about error handling, then maybe we should write "hello world" this way. But I'm also not sure that's its purpose.
- pjmlp 4y agoWhere is the Rust Hello World example on the manual teaching new generations to check for print errors?
- tialaramex 4y agoI don't really understand this question. We're talking here about the canonical "Hello, World!" program in each language. In C that program is written in K&R. In Rust (like several modern languages) that program is provided automatically as a placeholder when you start a new project. The C program, as I explained, just presses on anyway if there's an error. For example if the standard output on your Unix terminal leads to the full device, that's ignored and the program exits with a success indication. The Rust program, of course, will panic, and the program exits with a failure indication (if your standard error leads to somewhere the panic report will be sent there unless you've asked for panic to abort) It's a difference of convention. The convention in Rust is that we should care whether things fail, and if we don't know what to do about them failing we should panic.