Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The point is (or should be) to learn how socket programming works so you know what's going on under all that abstraction and why. That's also why we catch all those exceptions: so we understand why something failed, and how to deal with it in the future. It's also really fun to write complex networking apps from scratch =)


>It's also really fun to write complex networking apps from scratch

I agree and disagree. It definitely is fun to write awesome complex code, in general, but I'm currently in the middle of developing a network application and the most frustrating part was the socket handling. Everything riding on top of these connections was fun, but actually working out the TCP logic was un-fun.

That said, diff'rent strokes for diff'rent folks, I'm sure you're not the only one to love TCP coding, and I'm glad you guys exist to write tutorials for people like me :)


I write modules to decode network protocols for fun. So yeah, maybe i'm not quite right in the head.

On the other hand, it taught me about perverted networking standards like 802.1Q which is more common than you'd expect, and helps when you're trying to figure out why tcpdump isn't returning results you expected.


If that was the point we should all break out our chemistry sets to refine elements so we can create our logic chips and build up from there.

At some point you have to admit you've climbed down enough turtles and it's time to get some shit done. I'm claiming ZeroMQ is far enough down. It's not that much abstraction. It's mostly avoiding you the annoyances and giving you framework of best practices.


Each hacker choses how far down the rabbit hole they go, don't disparage others for going deeper.


First of all, ZeroMQ is fucking tons of abstraction. It's its own wire protocol. It does crazy advanced things that it would take you forever to figure out and re-implement. It's nice.

You also don't have a clue what it's doing or why, which means you don't have a clue what your program is doing or why. In general it's thought of as a good idea to understand these things.

At the very least learn the tcp/ip stack and why all of the complex things are the way they are. Learn why building a long-distance fault-tolerant fast reliable network protocol is hard. Learn why there's many things that can cause your application to fail to just connect to a remote host. Heck, just learn the differences in different operating systems' tcp/ip stacks and why they are that way. Just using the same framework everywhere isn't going to solve all your problems for you.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

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

Search: