Hacker News new | past | comments | ask | show | jobs | submit login

> I do think you’ve identified a significant rift between those that prefer C and those who do not.

I agree. I think the article is very right in identifying that C developers look at programming differently. I think that is a good thing. Even as a Die-Hard C programmer, I celebrate that people use other languages and especially that people are developing new languages like Rust, Odin, Zig and so on. I don't think it wrong for someone to reject C, if its not right for them. Do what works for you. I do think that given Cs massive success, people should perhaps be a bit more interested to figure out why, instead of just dismissing it so fast.




Your comments on this thread up to this point sound like a religious fanatic.

I greatly enjoyed reading.

Goes to show why it’s called “The C Religion”.


I think, most designers of languages want abstractions, convenience, and clevernes. So for people who don't want that we have to cling on to C since there aren't other options ;-)


> I think, most designers of languages want abstractions, convenience, and clevernes.

You get that in C as well in the form of libraries and frameworks. Today you saw a post in HN on how to do object oriented programming with C. Some time ago people shared C frameworks to enforce memory safety. There are generic data structures libraries for C as well.

I think your jab on how C programmers don't want abstractions, convenience, or cleverness is a weak strawman. It's obviously not it. What I think C programmers value is expressiveness and speed, and avoid bloat and overall inefficiencies, and C detractors don't want to address that because it forces them to face the real world tradeoffs which expose the shortcomings of their personal choices. There's a pervasive fear of missing out on the latest and greatest, and an irrational need to jump onto bandwagons, and C is extreme opposite of it. And yet it still outperforms anything that came after.


I learned C in the 1980s. At that time, for practical purposes, it seemed it was the same as Pascal, only with less verbose syntax - { } instead of begin/end.

But then I discovered Usenet and the - I don't know exactly how to describe it - the cult of undefined behavior, and the people who care only about standards and not reality.

A basic, straightforward language like what people say C is, is certainly useful. I don't know Rust, and I don't have any plans to learn it.

As I think we all are aware, C originated before computers were standardized on 8 bit bytes, ASCII, Unicode, and 32/64 bit words. So, I mean, no matter how much people say it's appealing because it's simple and reflects the nature of the hardware, it really doesn't.

Is it not true that the Linux kernel is compiled with GNU extensions and not standard C?


> But then I discovered Usenet and the - I don't know exactly how to describe it - the cult of undefined behavior, and the people who care only about standards and not reality.

I don't understand what you tried to say. The standard specifies how the language actually works, and therefore what developers can reliably do with it. How exactly do you see this as a break from reality?


If you stopped at that sentence, then the rest of my comment might clarify.

It's hard for me to elaborate further without any idea of your background. How long have you been programming in C? Have you encountered TAOCP and MIX/MMIX? Do you write strictly standards compliant C? Did you use to read or post on comp.lang.c?

For reference, here is a list of things that are/were off topic:

https://benpfaff.org/writings/clc/off-topic.html

Dennis Ritchie posted on clc in 1999 and was told he was off topic. It has passed into history as a "joke".

"DECtapes are highly platform specific, and are not covered by ANSI C, which is the subject of this newsgroup (comp.lang.c). Try a DEC-related newsgroup.

If you want us to comment on your source code, please post it in the body of your email.

What was your C question?"

https://groups.google.com/g/alt.folklore.computers/c/wbzzoyS...

Face saving aside, that was normal treatment for newbies other than Dennis Ritchie, so if it was a joke, who/what exactly was being made fun of?


> background. How long have you been programming in C?

Since the mid 90s.

> Have you encountered TAOCP and MIX/MMIX?

I fail to see the relevance.

> Do you write strictly standards compliant C?

There is no such thing as non-strictly standards compliant C. It's either C, as specified by one of the international standards, or K&R C for those who can't target a standard, or things that are not C.

> Did you use to read or post on comp.lang.c?

Yes.

What was your point?


The relevance of MIX/MMIX is that to me, MIX is a lot like C in its aspirations and failures as time passed it by. Knuth described similar motivations in terms of portability, not wanting to choose a favorite architecture, and so on. But it ended up being an incredibly baroque, opaque, and obscure way to show algorithms, even though he meant it to be more concrete and relevant than pseudocode.

Then MMIX seems to me to sort of concede that sample code should be a little more like real life code, while still being far more difficult to follow than need be.

Some people just love complications for their own sake, like a medieval monk illuminating a manuscript. That's not wrong, but it's not right for everyone.

The issue I have is with people falsifying the reasons that C can be attractive. The IOCCC is the essence of what C is actually about. It is just not anything like an elegant "high level assembler" that reflects machine architecture. Maybe there is an alternative these days that fits the bill better, or maybe not.

>There is no such thing as non-strictly standards compliant C. It's either C, as specified by one of the international standards, or K&R C for those who can't target a standard, or things that are not C.

Well, here we go. First of all, the tone of this statement takes me back to clc. I could almost believe it's a direct quote.

Secondly, I haven't written a great deal of C code in the last 40 years, all told, but I was writing C code before C89 (and you, I infer, were not). It certainly wasn't K&R C, and it couldn't be standard C if that wasn't invented yet, right?

Everything meaningful "written in C", I think, falls into your category of "things that are not C". Like the Linux kernel.

That's just annoying to some people like it was when "kilobytes" were renamed "kibibytes" or "dwarf planets" were suddenly not "planets".

But shouldn't it bring with it a tiny bit of doubt that there might be something wrong with the ideals of the orthodox? There are many belief systems that have proved impossible for humans to follow, and just because many people are hypocrites doesn't mean that we should define ideals people strive for such that everyone becomes a hypocrite.

If people say undefined behavior allows your program to blow up the world, that is not debatable in isolation, as all definitions are arbitrary. But it is inconsistent with ever using or encouraging anyone else to ever use the language.

>What was your point?

I was pretty cautious. I think I read the FAQ as one was instructed to. I don't know if I ever posted any questions at all. I read it, and the arguments with newbies who over time increasingly seemed like trolls, as entertainment. Same as with the Ayn Rand worshipping Objectivists, the anarchists, or the Holocaust deniers in other groups.

I used to think, no matter how certain people are in their rectitude, can they not see it's leading to endless flamewars where people just wind them up for fun? What do they think the group is for? Do they make the connection that ultimately it is for whatever actually exists in that space? Do they really want what exists there?


writing C like doing extreme sport, respect but I don't want to try it soon. thanks all developers of interpreter, because they wrote it with C, so I don't need to write C.


You have the wrong idea and doing yourself a disservice by not learning C. It is not as difficult as people make it out to be.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: