Remix.run Logo
hn_submit a day ago

I recently saw this guy on HN who had written a web server for an Atmel AVR and also implemented a TCP/IP stack to boot. It obviously was far from feature complete, but it did work. He used SLIP to communicate with the "server."

utopiah a day ago | parent | next [-]

> far from feature complete, but it did work

well that's the trick. If you look at implementing a Web browser or a physics engine you instantly give up, and you are right about it, it's just too hard. If instead you write a partial HTTP client which can display some text from a URL or have a 3D scene and in it an object Y coordinates get smaller each millisecond then suddenly in terms of the essence of each, you are 80% there really. Now if you want to implement the "rest" you might need an entire lifetime, or more. Still IMHO it's definitely worth doing very compact and limited versions of all those in order to learn, even if done only once in your life.

convolvatron 21 hours ago | parent [-]

I used to implement these things professionally and to write an IP + TCP + HTTP is certainly less than a year with experience. would I ship that and expect people to use it without a lot of burnin? no..but to say that its a lifetime of work is off by at least a factor of 10.

utopiah 10 hours ago | parent [-]

Maybe not an HTTP client but a modern browser with its JavaScript engine, encryption support, CSS engine, etc I think for most people really is a lot of work. If one does rely on the right libraries it's a weekend of fun (and pain) so I would argue between few hours and a lifetime, depending on how much you implement.

My point is that the essence, the core mechanism, is typically a 1-liner, but only with a pedagogical context, not a production (in the sense of anybody else using it reliably in realistic situations) context.

_pdp_ a day ago | parent | prev [-]

Respect