5 ms·
No, though I have plenty of anecdotes from friends who have. I agree that these apply regardless of language. Whitespace errors are arguably some of the more in
by BadInformatics 6y ago
No, though I have plenty of anecdotes from friends who have. I agree that these apply regardless of language. Whitespace errors are arguably some of the more insidious syntax errors though, since most editors will not differentiate between spaces and tabs (e.g. vim's set list) and to the beginner programmer it doesn't feel like the number of spaces should matter (I'm indenting my blocks, why do you care how much?)
- BeetleB 6y ago> I'm indenting my blocks, why do you care how much? The equivalent in an introductory C/C++ class: "I put a newline, why do you care if I put a semicolon?" At some point, students have to accept the quirks of any language's syntax. It's OK to have an opinion and hate it, but whitespace complaints are mostly a preference issue. (Every time I switch from Python to a language requiring semicolons, it always feels like I'm hitting endless speed bumps.) While Python may not be a beginner language, nor is Java/C/C++, in my opinion - and for people completely new to programming, those have a steeper learning curve than Python (the for loops are just hideous). These were the standard introductory languages in college before Python took over. I'm sure better teaching languages exist, and I'm also sure JS is not one of them ;-)
- BadInformatics 6y agoDon't get me wrong, Python is head and shoulders above Java/C# or C/C++ as a teaching language. The complaint is that, as the educator, lab/tutorial time is being wasted on trivial syntax issues that would be non-existent given a more lenient parser or better tooling (preferably the latter).
- franklyt 6y agoI’m not sure that statement is accurate, I could see an argument being made for C being a really good learning language.
- aYsY4dDQ2NrcNzA 6y agoIt would be the best possible learning language, if your next language was going to be assembly.
- franklyt 6y agoIs that a crack about complexity? C doesn’t have very many features.
- aYsY4dDQ2NrcNzA 6y agoI’m saying that the C machine model would be an ideal introduction to pointers and registers and bit manipulation, and you could compare a C program with its compiled disassembly. Later you could get into in-line assembly and even processor intrinsics.
- franklyt 6y agoAlright, I see. Another good candidate is golang. I’m going to think on that one a bit more.
- BeetleB 6y agoIf your goal is low level programming, yes. If your goal is understanding data structures, algorithms, etc, then C is hideous. Explaining function prototypes, include headers, very unfriendly I/O, and I already mentioned the horrible syntax for for loops. There's a reason most of the data structures/algorithms were in a second course at my university: It's because it took most of one semester for students to get a handle on the very basics of C syntax.