Hacker News new | ask | show | jobs
by apothegm 318 days ago
For me it’s because I enjoy building useful things more than I enjoy futzing with the details of code. I could build something useful in C. Or I could spend the same amount of time building a dozen useful things in Python. With the added benefit that they’re less likely to segfault.

WHY does it matter to you to be that close to the machine? For many of us, we value different things. What you perceive as control, we perceive as fussiness.

2 comments

I think if you learned to program 20 years ago or more you're likely to be faster at C than Python unless you jumped on Python in the Python2 days or earlier.

For me it's pretty hard to get in the flow with Python because I keep having to stop and read the documentation. I think this is just a personal thing but it's possible that Python may just be a significantly more complex language and that's driving some of it. I'm sure I'm not the only one like this.

There was a string heavy app I wrote years ago and I had multiple false starts in Python and then one day I just said "this needs to get done" and plowed through it in C nearly one shot in a couple hours. I've experienced this kind of thing multiple times. It's a little hard to really communicate how this feels.

EDIT: Yeah I think it really depends. I certainly do a lot of heavy numerical/ML stuff in Python just because that's where the libraries are (and IMO the libraries being written in python isn't a coincidence, it's a fantastic language for that.)

It's not just "string handling algorithms" though. I've written an entire web browser in straight C and it was mostly just walking through standards and coding. Maybe some of it is familiarity but I think part of the lack of familiarity comes from C just not having complex built-in data structures. There's no hashmap in C. There are no iterators in C etc. There's a tiny standard library to become familiar with and that's about it.

I was taught in C. Over 20 years ago. I’m massively faster in Python, and have been since about 6 weeks after I picked it up.

It sounds to me like part of that for you is about familiarity and another part might be about the specific problems you’re solving.

I’m usually working on solving problems at much higher levels of abstraction than string processing algorithms. For me, a big part of Python’s productivity is its ecosystem of useful abstractions (there’s an XKCD for that). And not having to worry about memory management or null pointers. How powerful exception handling is. Etc.

Python may in some ways be a more complex language, but I find it much simpler to reason about.

Yeah, I think you’re right — Python really shines in many areas.

Honestly, a lot comes down to the person, the kind of problems they solve, their mindset… and sometimes, their scars.

I don’t even fully know why Python didn’t click with me. I understood it. I saw how fast it can be. But for some reason, I kept drifting back to C.

Maybe it’s just how my brain works. Maybe it’s where I found meaning. Hard to explain.

Ultimately, there are no right and wrong programming languages (except Visual Basic, lol, or maybe PHP 3). Sometimes a language is wrong for a specific project, but there’s nothing wrong with any particular language preference. I find it hilarious that there have been flame wars over the topic. So if you ultimately find more meaning or enjoyment in writing C code… sure, it’s not for everyone, but it’s awesome that you’ve figured out what you like!
It’s true — programming languages spark some of the fiercest debates. Everyone wants to defend the one that speaks to them.

That’s why it’s been such a pleasure having this kind of conversation — thoughtful, respectful, and grounded. Thanks again. I’ve really enjoyed it.

> For me, a big part of Python’s productivity is its ecosystem of useful abstractions

Yeah the huge amount of libraries that are readily available and can be used right away without messing with a complex build system is a huge deal.

For me personally, C# is like the middle ground. A language I like much better than Python but also has a fairly rich ecosystem, and usually nuget makes including dependencies easy.

That’s a great point — C# really does hit a sweet spot between control and convenience.

I’ve never spent serious time with it, but I’ve heard a lot of good things about the tooling and the ecosystem.

Maybe one day I’ll give it a try — especially if I ever need something with more abstractions but less ceremony than Python.

Thanks for sharing your take — it’s always helpful to hear how others find their flow.

I think when .Net 10 is released it's a good time to give it a whirl.

New in the upcoming release[1] will be the ability to run C# files as if they were scripts[2], ie without an explicit build step. Should lower the barrier to just fooling around.

I also like how they've gone away from the "everything must be an object" style ala Java, and allow top-level statements so it reads more like C/C++. It's just sugar, but for smaller programs that really makes a difference IMHO.

[1]: https://news.ycombinator.com/item?id=44699174

[2]: https://devblogs.microsoft.com/dotnet/announcing-dotnet-run-...

That actually sounds really cool. Being able to run C# like a script lowers the friction a lot. Thanks again.
That’s a really fair question.

For me, it’s not just about building tools — it’s about understanding what I’m building.

I like knowing where the bytes go. What the memory looks like. How the binary behaves. It slows me down, sure — but it teaches me things I didn’t even know I didn’t know.

I’m not building for scale or clients. I’m building to see.

That kind of closeness makes the machine feel less like a mystery, and more like a partner.