The one who kept VLC free
welcometothejungle.co
welcometothejungle.co
> For example, when I see JavaScript developers, I ask them questions about the HTTP stack. A lot of them are just like, “Yeah, but I don’t really know about networking.” My reaction to that is, “You don’t know about networking, yet most of your time is spent on the web, over a network.”
I am saddened and how many web devs know so little about fundamentals of IP addressing, simple routing (ie: the gateway), protocols/ports, and DNS resolution/caching/TTL/etc
In the US those JavaScript developers are probably paid enough that they should know more about the giants whose shoulders they are standing on (to the extent that it would provide us with better technology) but in general yeah, abstractions are a very powerful thing.
I lean more sysadmin than development, but can you imagine something like: "yeah I know bash, but I have no idea what a disk is".
Every time this topic comes up, it smacks of "you're an idiot for not choosing to work at the same layer of abstraction that I chose [or was forced, back in the good old days] to work at".
That's the whole damn point of abstraction layers and his example of not knowing the details of the HTTP protocol is just as arbitrary as anything else.
As it turns out, I am learning C right now partially because I wanted to add a feature to VLC and got really curious after reading the source code and trying to assess how hard that would be.
I’m curious: what do you find “beautiful” about http? Imho it’s just an average client/server protocol, its best quality being that it privileged readability over efficiency (using plaintext rather than then-popular binary formats).
Not true anymore.
Frankly, someone who hasn't:
- written a self-bootstrapping compiler
- designed and microcoded a branch-predicting, pipelined processor
- written a toy OS that works
- spent an inordinate time with assembly
- ran fuzzing against a library
can't legitimately call themselves an engineer. People who don't grasp the implications of their implementation decisions are vast the majority... and how many of them can fix things when something malfunctions at a layer that they they're unwilling/incapable of debugging? Either they can depend on some other specialists, find a local generalist engineer to fix it for them or they can "be the change they seek."
Almost no one has done all those things.
Most people working in the industry haven’t done most of them.
Most people with MS degrees in the field haven’t done all of them.
I would rather say people should at least improve algo & data structure, ability debug issues, even if they are not able to fix it...ability to find or debug thing is important.
This is mostly a good thing, but it makes those knowledgeable of lower levels somewhat of a rarity.
99% of Devs don't even know or care if their requests go over HTTP 1.1 or HTTP/2. Https is a total mystery unless it works okay (which is 99% of the time)
I'm okay with this. Most of these devs get their job done just fine. But I'll add that company-wide there's a small percentage of "wizards" everyone else turns to when unexpected things break. This has held true for every company I've worked for.
I'm not sad about it. Every company needs these people to function, and usually they're paid well or at least have insane job security.
And that is the reason why you see Web Devs keep reinventing wheels faster than any other Programming Domains.
And one problem I think we have today in computing is too many abstraction.
For example Google with ChromeOS attempted to flatten the abstraction of having an OS containing an application (browser) containing a web-app.
The LTE standard attempted to flatten the abstraction of legacy circuit switched phone networks and just emulate the behaviours needed for existing functionality.
I must be dumb, can someone explain this?