Live data from Hacker News

Learn C The Hard Way

learncodethehardway.org

251–260 of 260 posts

Re: Learn C The Hard Way

#251

Earlier quoted context omitted.

You're probably right. I've only seen a couple of his recent comments in threads related to his projects or site (and that thread about the GitHub community). So I no doubt have a selection bias; I suppose it's worth noting his reputation proceeds him, deserved or otherwise. Nonetheless it's disheartening to see self-proclaimed "professionals" (I use this term loosely for while a person may be employed professionally…

heh. His reputation appears to be a many faceted thing. I, for instance, have been genuinely impressed with his productivity and his output, his choice of projects and his code and am moved by that aspect of myself that values quality to think very highly of him. You, on the other hand, appear to feel that the most important aspect of his output is the way he achieves the standards that you have set for him - judged…

First I will call out your blatant fallacy: tu quoque. Now let's review things:

I readily admit I'm a hypocrite. But also note, I don't claim nor ever claimed to be a professional; I'm not. I'm not at the helm of projects that are useful to and used by many people. I haven't written books on the topic of computer science. Nor have I given talks or do I run a website that receives a large volume of traffic. Maybe that qualifies [him] as working in the domain of a professional, yes?

Although he may have achieved great things, this doesn't give him a license to troll HN and it doesn't excuse him of baseless personal attacks. The comments he made that I replied to were no less than that, at best. At worst, they were insight into his character. Certainly we can hope the latter is not true. Nonetheless, there's no place for that kind of bullshit; it's inexcusable, I don't care who you are. I made such a judgement because he clearly attacked the user "hp" who had done nothing more than make an observation about texts that introduce C in general. Zed's reaction was puerile, irrational, and even paranoid. I hope you aren't standing up for such behavior?

Re: Learn C The Hard Way

#252

Earlier quoted context omitted.

heh. His reputation appears to be a many faceted thing. I, for instance, have been genuinely impressed with his productivity and his output, his choice of projects and his code and am moved by that aspect of myself that values quality to think very highly of him. You, on the other hand, appear to feel that the most important aspect of his output is the way he achieves the standards that you have set for him - judged…

First I will call out your blatant fallacy: tu quoque. Now let's review things: I readily admit I'm a hypocrite. But also note, I don't claim nor ever claimed to be a professional; I'm not. I'm not at the helm of projects that are useful to and used by many people. I haven't written books on the topic of computer science. Nor have I given talks or do I run a website that receives a large volume of traffic. Maybe that…

"Maybe that qualifies [him] as working in the domain of a professional, yes?"

Either you think he is a professional, or you do not. You appear to be holding up a standard, claiming that you believe he fits the criteria needed to be judged by it, and then lambasting him for not living up to the standard you have set. Overall, I find this somewhat confusing, but possibly I dont have sufficient context to judge.

TBH Im not particularly motivated to 'stand up' for the behavior of anyone I dont know.

I am interested in what makes you so interested in casting judgment on Zed, as opposed to on yourself?

Whatever puerile, irrational and paranoid responses Zed may have produced, you seem to be matching them with a self admitted hypocrisy, a large amount of self righteous vitriol and a bewildering statement of tribal affiliation to an anonymous internet discussion forum that apparently requires your outraged protection lest it collapses completely under the weight of a misunderstanding between Zed and another participant.

Zed has, to my knowledge, done you no harm of any kind. He certainly represents absolutely no realistic threat to HN.

why do you feel justified abusing him in this fashion?

Re: Learn C The Hard Way

#254

Earlier quoted context omitted.

First I will call out your blatant fallacy: tu quoque. Now let's review things: I readily admit I'm a hypocrite. But also note, I don't claim nor ever claimed to be a professional; I'm not. I'm not at the helm of projects that are useful to and used by many people. I haven't written books on the topic of computer science. Nor have I given talks or do I run a website that receives a large volume of traffic. Maybe that…

"Maybe that qualifies [him] as working in the domain of a professional, yes?" Either you think he is a professional, or you do not. You appear to be holding up a standard, claiming that you believe he fits the criteria needed to be judged by it, and then lambasting him for not living up to the standard you have set. Overall, I find this somewhat confusing, but possibly I dont have sufficient context to judge. TBH Im…

tu quoque. [1]

[1] http://en.wikipedia.org/wiki/Tu_quoque

Re: Learn C The Hard Way

#255

Earlier quoted context omitted.

No not really. What's really going on is that A has been declared as an array of 16 ints, while aa has been declared as a pointer to int. Those are different types, and C treats them differently sometimes (but not all times).

Aside from the additional information that the C compiler is capable of knowing about in the case of A, it is the same crap going on under the hood.

You're not writing in under-the-hood, though, you are writing in C. If you want to properly understand compiler warnings and errors you need to know that arrays and pointers are separate types.

Yes, "under the hood" it might be the same, but that's true of many languages if you dig deep enough. C is just a little closer. Yes, at one level a char declaration is just a smaller minimum memory allocation than int, but C will check both those types and if you want to use C properly you'll want to understand its typing and casting rules.

Re: Learn C The Hard Way

#256

Earlier quoted context omitted.

"Maybe that qualifies [him] as working in the domain of a professional, yes?" Either you think he is a professional, or you do not. You appear to be holding up a standard, claiming that you believe he fits the criteria needed to be judged by it, and then lambasting him for not living up to the standard you have set. Overall, I find this somewhat confusing, but possibly I dont have sufficient context to judge. TBH Im…

tu quoque. [1] [1] http://en.wikipedia.org/wiki/Tu_quoque

dude, I heard you before.

It doesn't apply in this case. I will leave it as an exercise for the reader to discern why.

Re: Learn C The Hard Way

#257
post #229
post #119

Earlier quoted context omitted.

I don't intend to argue so much as to offer a data point: I suspect that most folks on this site learned C or something C-like early on, and have internalized its modus operandi. I have been learning C recently from a background of functional programming, and I find it scary and evil. FWIW, I enjoy programming very much, and have built some non-trivial stuff in several languages. Still, I found C extremely taxing. No…

C is not the best way to manipulate information, as you have noticed. It's abstractions are all wrong. On the other hand, C is great for computer engineering, as opposed to computer science. If you are writing firmware, for example, the exact sequence of memory writes is critical. Program the hardware registers in the wrong order, and the device doesn't work. Access the FIFO the wrong way, and your ISR has a data rac…

I fully acknowledge that there are domains where C is the best/only tool for the job. I was specifically taking issue with the claim that C is lucid, and neither scary nor evil.

Re: Learn C The Hard Way

#258
post #257
post #229

Earlier quoted context omitted.

C is not the best way to manipulate information, as you have noticed. It's abstractions are all wrong. On the other hand, C is great for computer engineering, as opposed to computer science. If you are writing firmware, for example, the exact sequence of memory writes is critical. Program the hardware registers in the wrong order, and the device doesn't work. Access the FIFO the wrong way, and your ISR has a data rac…

I fully acknowledge that there are domains where C is the best/only tool for the job. I was specifically taking issue with the claim that C is lucid, and neither scary nor evil.

C is only opaque, scary, and evil if you consider computer hardware itself to be opaque, scary, and evil. For someone like an electrical engineer, C is perfectly lucid, safe, and friendly.

Re: Learn C The Hard Way

#259

Earlier quoted context omitted.

Getting it or not is one thing, but I'd advocate keelhauling anyone who wrote that sort of thing in production. The "notational convenience" is more obnoxious than anything. But, then, I'm not particularly a fan of terseness for the sake of being terse.

I'm not a fan of wordiness for the sake of being wordy. If you think the code is terse just to show off you are missing the point. There's a difference between writing obscure code and writing concise idiomatic code -- see "The Elements of Programming Style" by Kernighan and Plauger. I'd rather Kernighan, Ritchie, Thompson, Pike, et al. write my production code than someone who thinks C pointer idioms are a punishabl…

I've read both of those links in the past, thanks. And while, yes, "idiomatic" (read: terse and annoying) code is in use in all those areas, I don't have to see it.

Code should be pleasant to read wherever possible. That simply is not, to my mind, pleasant to read. It's one step away from Perl line noise (which I avoid, too). You may disagree with this, and that's fine--different strokes for different folks. I have no interest in seeing it in code I have to maintain; you might, and that's OK by me.

(To be fair, however, I have little interest in working with or, god forbid, maintaining C or C++ code under any circumstances. They press the buttons of a group of developers to which I don't belong.)

Re: Learn C The Hard Way

#260

Earlier quoted context omitted.

There are so many, in fact, that choosing one becomes a confusing array of choices in itself.

Hah! Exactly. There is one that I can recommend, for the record, at least for C++: Qt's QMake.

QMake can be quite helpful. Unfortunately, it may not be a good long-term choice:

http://labs.qt.nokia.com/2009/10/14/to-make-or-not-to-make-q...

http://lists.qt.nokia.com/pipermail/qt5-feedback/2011-May/00...

Post reply on HN