Hacker News new | ask | show | jobs
by merlinsbrain 2501 days ago
There’s a pretty clear distinction between slack and telegram - telegram offers a secure messenger channel with private messages. Slack does not do this, and publicly does not plan on doing this.

The parent comment is requesting that an existing feature be switched on as default and not introduce a whole change in the communication layer of the app.

Unfortunately you then lose syncing across devices, so I understand where telegram wants to make less secure the default.

2 comments

There's another clear distinction: Telegram has proper native clients and an open protocol.
As someone who’s worked on Telegram clients for years, I can assure you that the protocol isn’t open. It’s quite opaque, and the FOSS thing is mostly a facade.
I mean the protocol is documented enough to create an implementation of it from scratch - that meets the metric of open.

I suspect there is enough implementation there to write a server implementation too, at least a simple one.

I mean the protocol is documented enough to create an implementation of it from scratch

It's not. If you want to write your own, you have to reverse engineer most of the protocol. The clients aren't fully open source, and when they are, the public code usually lags behind the actual binaries that are released, often by months. It's nearly impossible to write a client that keeps up with the features in Telegram.

You may be thinking of the bot API documentation, which is documented. Many bots don't use that, though, as it's very limiting.

I suspect there is enough implementation there to write a server implementation too, at least a simple one.

The servers behave in very strange, unexpected ways, and the official clients expect these quirks. Most of the third-party clients either use TDLib, which is official and not fully open source, or have also grown to expect these quirks.

Just as a quick example, pretty much everything in Telegram has a numeric ID. Clients, bots, etc. have come to expect that IDs within certain ranges represent certain objects--users have a range, private chats have a range, channels have a range. These ranges aren't documented and may not be obvious even in a fully open source client, but if you don't adhere to them, stuff will break.

> Telegram has proper native clients

They're not: they reimplement their own frameworks on top of relatively low-level UI primitives.

Sounds native to me.

Non-native to me is typically a a pure web client or when you use Java Swing or Electron.

What do you mean by native?

I generally have a strict definition of native which means “using platform widgets”. Telegram doesn’t do this because it makes its own copies of almost everything.
Syncing across devices doesn't have to be lost just because E2E is adopted. Wire has been doing E2E chats and group chats by default (there is no non-E2E) and synchronizing chats across devices for years now.

It's just a matter of how an application has been architected and how to transition a large platform for such an addition. Neither of these are easy to change/do with Telegram's current scale. Telegram also prides itself in very fast searches since it stores messages in plaintext on its servers.

It's not like it's technically impossible for Telegram to transition to E2E as the default and only way to communicate (similar to Signal, WhatsApp and Wire).