Second time I run into a developer on itch.io who doesn't know what a #web server is and thinks they need to code a #NodeJS app to serve static files.

This is terrifying. It's the future Google wants to build, with their HTTP 2.0 and Wasm: a future when even the basics are horribly hard and not even developers know how the web works because it's all a black box.

I'm begging you: fight this. Educate people. Don't let openness die.

Follow

@notimetoplay So-called "HTTP 2" is /not HTTP/ and I will die on this hill!!

@silverwizard @IceWolf That was no typo. HTTP 2 is binary. It can no longer be used in trivial ways.

@silverwizard @IceWolf Sure, if you're a pro web developer with the time and energy to dig. If it was like that in 1999, Google wouldn't exist. This is called "pulling the ladder up after you got on top".

@notimetoplay @silverwizard Yeah, exactly.

And as for "but efficiency!!!" – if it worked on 1990s computers, it works more than fine now on our vastly faster, vastly higher bandwidth ones.

Text-based protocols are GOOD, not Evil that Should Be Replaced.

@LunaDragofelis @silverwizard @notimetoplay Forgot that, yeah! =^.^=

And if you need to do multiple whatsis, uhhhhhh, requests, Connection: keep-alive :3

@LunaDragofelis @silverwizard @notimetoplay Text also has another big benefit I just thought of now! It's super easy to ignore unknown headers.

@notimetoplay @silverwizard @IceWolf i mean, just import libcurl. you don't implement tcp yourself so i don't see using a HTTP library that will likely be 100x better than whatever you will write isn't too offensive

@tay @notimetoplay @silverwizard You're missing the point.

The point is that with text protocols, you don't HAVE to use a thing somebody else already wrote.

And besides, someone had to write libcurl in the first place.

Binary just makes shit difficult for literally no reason.

@tay @notimetoplay @silverwizard Like, yeah, if you're just making a thing, you can absolutely use a library, that's what they're for.

But what if you're writing that library? Or testing things? Or just playing around?

@IceWolf @notimetoplay @silverwizard yes. someone who can dedicate a lot of time can do the work of writing a good HTTP client.

H2/3 are remarkably faster than H1

@tay @notimetoplay @silverwizard "Faster"? Meh. Not by any metric that matters.

Plain text worked in 1990 and it still works now.

@tay @notimetoplay @silverwizard If you want to make your site faster, don't rewrite fucking HTTP, just use less ads and random cruft.

@IceWolf @notimetoplay @silverwizard well we both know that's not happening, and H2 already exists, so why not use it. Not like H1 is going anywhere anyway 🤷

@tay @notimetoplay @silverwizard For NOW.

What d'you think Google's plan is? Real HTTP is probably going to get "deprecated" once "everyone's on things that support HTTP 2 anyway".

@tay @notimetoplay @silverwizard And also, being a Google power trip is a pretty good reason not to use it as well as it being a binary unapproachable mess!

(See also: webp, the other big one I can think of. There's probably other things too.)

@IceWolf @notimetoplay @silverwizard ???????????????

You are aware the internet is decentralised? Like, Google doesn't run the entire internet. The current version for the H2 spec wasnt even authored by anyone at Google. It was Mozilla & Apple.

@tay @IceWolf @silverwizard Yes, that's what bothers them, so they're trying to snuff out all that openness.

@notimetoplay @tay @silverwizard Yeah exactly!

Google's thing here is like. They're trying to warp the entire tech stack into whatever's best for them, screw the fact that we already have perfectly working stuff that anyone can play with.

@notimetoplay @IceWolf @silverwizard i literally have RFC 9113 open on the computer in front of me it's hardly closed

@tay @notimetoplay @silverwizard "publicly viewable" and "actually open to community involvement" are two different things. (Exhibit A: Android. Exhibit B: Chrome.)

@IceWolf @notimetoplay @silverwizard again. RFC 9113 is attributed to people from Mozilla and Apple. Not Google. It is owned by the IETF, who again, is not Google.

Google does a lot of bad shit - yes, but this isn't even something to blame on them, even if H2 was a bad thing, which it's not.

@tay @IceWolf @silverwizard You... realize big tech is on all the standards committees, and effectively controls them, right?

@tay @IceWolf @silverwizard Yes, for now. Yet here you are advocating for a future where we all use premade stuff exclusively.

@notimetoplay @IceWolf @silverwizard i'm sure you sent this message from your own ISA, running your own OS, running your own network stack, running your own client talking to your own activity pub server

@tay @notimetoplay @silverwizard Ah yes, because "only premade stuff is feasible" and "EVERYTHING built from scratch down to the hardware" are the only two options.

@tay @notimetoplay @silverwizard Premade stuff is good. Being able to tinker is ALSO good. They're not mutually exclusive.

@tay @notimetoplay @silverwizard You should be ABLE to build stuff from scratch even if you don't HAVE to, and being able to is not the same thing as having to.

@IceWolf @notimetoplay @silverwizard you can still write your own H2 server. it might be more work, but a basic implementation shouldn't be too much harder (i haven't read the spec so don't quote me on that)

and if you don't want to, just write a H1 server. that is going to go away approximately never

Show newer

@nasado @notimetoplay @silverwizard You can just open a raw TCP (or TLS) socket and start typing!

You can also write servers/clients in basically anything, you don't need a preexisting library.

@IceWolf @notimetoplay @silverwizard

Not really? First of all, textual HTTP is still very rigid compared to human-to-human communication; no novice without a guide is going to guess the incantation "GET / HTTP/1.1\r\nHost: en.wikipedia.org\r\n\r\n". I've worked with HTTP before and I still didn't get it right on my first try; I had the "HTTP/1.1" at the beginning of the line. It'd be even harder for someone who isn't good at English, since all the text in HTTP is based on English vocab.

As for writing new servers and clients... in my experience the exact opposite is true. Creating and examining samples of textual formats may be easy, but when it's time to write the code, binary is just so much simpler to work with, especially without a parsing library at hand. Not to mention that learning to read and modify other people's code is a vital skill for a programmer.

@IceWolf @notimetoplay @silverwizard In some cases they're about the same, in others binary is nicer, but outside of dedicated string-processing languages I've never seen text protocols be easier to parse and generate programmatically.

And that's not the only thing I said, either, so.

@nasado @IceWolf @notimetoplay that's spurious as hell.I was taught to manually do HTTP in about 10 minutes and use that almost every week (less than once a day but definitely close to weekly)

@IceWolf @notimetoplay okay, but is HTTP 1.1 with tcp-connection-keepalive acceptable?

Edit: fixed typo.

@basisbit @notimetoplay There's an HTTP 1.2?

Huh.

Is it binary? If it's binary it's not HTTP.

(HTTP/1.1 Connection: keep-alive is totally fine, unsure if tcp-connection-keepalive is anything different)

@IceWolf No, there's an HTTP 2.0 (and an HTTP 3.0 it turns out). And yes, it's binary.

Sign in to participate in the conversation
Mastodon Glitch Edition

This is a private instance for us.