4 ms·
JMAP sounds like a crutch for mobile devices that can't keep a TCP connection open. The internet is slowly being gimped to support mobile devices.
by superkuh 4y ago
JMAP sounds like a crutch for mobile devices that can't keep a TCP connection open. The internet is slowly being gimped to support mobile devices.
- aetherspawn 4y agoPretty much every device is mobile now. For example, people will probably start reading emails on the center console of their autonomous cars on the way to work over 5G. Nevertheless, a valid current-day example for non-mobile devices requiring a tolerance to dropped connections: I regularly dock and undock my laptop when heading to meeting rooms, and simply switching from docked Ethernet to WiFi causes a network switch that breaks a lot of apps. Engineering tolerance for this kind of thing is only good.
- superkuh 4y agoYes. That's reality. Most devices people use are terrible, terrible computers and they can't do what computers used to be able to do. This is a bad thing.
- Gigachad 4y agoUsers don't care what you consider to be a good computer. They use the proprietary email provider and it just works and shows emails on their car. While FOSS fanboys are sitting around complaining about the decay of tech because of JSON protocols.
- gregmac 4y agoHonestly this sounds like a "if your computer weighs less than 5 tons and can fit on a desk, it's not a real computer" argument someone would have made 30 years ago. Reality is people use multiple different and mobile devices, roam across connections, and intermittently go offline. Building software and protocols that are designed around this is beneficial to every use case - even those using whatever you consider a non-"terrible computer" to be.
- superkuh 4y agoI don't believe you really think that. Not being able to keep a TCP connection open is not some trivial aesthetic or nostalgic issue. Pretty much all information transfer on the internet is over TCP.
- gregmac 4y agoWhat the OP was talking about, which I totally agree with, is protocols that can't tolerate interruptions to their connection. This can be done with TCP. When I worked in an office, I had the same issue as the OP - docking/undocking my laptop resulted in switching from wired to wireless, and connections (eg: SSH, RDP) would often drop. I ended up unplugging the ethernet at my desk and using wireless most of the time because it was just easier. What would help is protocols actually support the concept of a "reconnection" -- ie: a TCP session that has the same identifier or token as a previous one that lets it it silently resume instead of starting fresh with new authentication. This isn't even that hard to implement if designed in from the start.
- Gigachad 4y agoThere is a lot of writings explaining that the reason open email clients largely suck / become unmaintained is that IMAP is extremely difficult to work with. It's not just the connection, you also have to parse and work with this custom protocol as well as deal with massive inefficiencies. Doing bulk actions like moving emails between folders requires massive amounts of requests rather than a single one describing the change. JSON protocols have completely taken over the market because they are massively easier to deal with and trivially parse in to structs which don't require a 200 page document to detail the protocol.
- kitsunesoba 4y agoMost modern languages have a JSON encoder/decoder in their standard library too, making for one fewer dependency to worry about and that's never a bad thing.
- e_y_ 4y agoI've written multiple IMAP clients, and I agree it's a huge pain to work with. But the real issue is the API design and the fact that more advanced searching, synchronization, etc, is only available via extensions that are not guaranteed to exist on a given server. You can write a JSON API that's equally bad, doesn't support paging, doesn't let you select just the fields you need, is missing key information in the extracted fields forcing you to parse the entire RFC822 text as a fallback, etc. Dealing with the parser is just one part of the battle.
- Gigachad 4y agoOptional extensions pretty much signal the death of any protocol. It shows there is no longer any leadership or direction. Same thing happened to XMPP. A functioning and healthy protocol would just start with proposals and once they are well tested, bump the version number and list everything as mandatory. Then implementations can just say they will be dropping legacy_version in x months, update or become incompatible.
- dale_glass 4y ago
- mlyle 4y agoLess-stateful and less-connection oriented are good for things like this. Lessons from NFS and HTTP.