I think the reason why it's that good is that it's literally the same API that the official apps use. There's no separate, restricted API for external developers, your app is treated in the exact same way as the official ones are. Even things like account creation and payments are exposed.
The protocol is very esoteric and hard to understand, though. It wouldn't necessarily have to be that way, it just feels like their documentation is aimed at mathematicians, not developers, especially the parts concerning binary serialization. They definitely suffer from a "reinvent the wheel" syndrome, they have a proprietary client-server encryption layer where plain old HTTPS would do, same for data serialization. Things are reasonably well documented, though, and implementing a fully-featured client with 0 external dependencies is feasible. Voice calls are a notable exception here, the calls API has very little documentation and all it gives you is an opaque blob that you're expected to give to their own voip library.
It’s really nice being able to use a Cocoa client on macOS, a UWP client on Windows, and a Qt client (and possibly soon a GTK client) on Linux. It’s becoming a rare luxury to have apps that do their best to be good citizens of their host desktops instead of throwing their backs into establishing a brand.
This client and all other 3rd party clients use tdlib, which is Telegram's open source client library to their servers. tdlib's development is notoriously behind compared to the client library used by their 1st party apps (which isn't tdlib). A good chunk of Telegram's modern features (voice chats, voice calling, chat reactions) aren't available on tdlib.
Something I realized early on when I was implementing the basic parts of mtproto for a project is just how Goddamn Fucking Resilient it is to network issues and the like.
Networks which are extremely adversarial, such as walled gardens, seen to have no clue what to do with it, but even in a situation where it gets RST flooded, it keeps on chugging.
The thing being impressive as it is, I could understand how most things work in it.
But they support animated stickers! This is both wonderful and terrifying. Verily, Emacs is an operating system (with a decent editor built in). What next, a DAW?
I recently was talking to a coworker about moving all of my music stuff to org mode, and rendering it with lilypond. Obviously not a DAW but I won’t be surprised to see reaper-mode or something in the future.
I'm starting to doubt my doubt I have for the Church of Emacs. It seems anything really is possible for those who repent, memorise the collected essays of Richard Stallman and pray in Lisp.
I know this is a joke, but in all seriousness any editor with built in moding support probably could have a Telegram Client since it's nothing but api calls.
That being said:
I shall repent once more and go back to the Stallman scriptures. Maybe then I can find where I went wrong.
The fact that Telegram provides an API enabling third-party clients (like this one) is the main thing that sets it apart from the other big mobile chat platforms (WhatsApp, Messenger, Signal) for me.
It's really nice to have access to a wide variety of client softwares, and the ability to build ones own (shameless plug - I built https://github.com/d99kris/nchat which is a simple TUI client).
> Sponsored messages on Telegram are displayed in large public one-to-many channels with 1000+ subscribers and are limited to 160 characters. Sponsored Messages are based solely on the topic of the public channels in which they are shown.
It quite literally is a lisp runtime with text editing stuff. There are many resources on how to implement lisp, but for the text editor part, this book “The craft of text editing” was very good http://www.finseth.com/craft/
Well, it's not exactly a great idea but you can replace init with Emacs and it will boot [1]. You have basic utilities like a shell, file manager and with plugins you can run a music player...
By the way, what is the easiest (to understand and extend the code and also to use) Telegram client out there? I want to add some features lacking in all the clients I've seen. Emacs-based client sounds cool but requires to learn Emacs (and its internals given the intention to extend it). Default clients are mindbogglingly complex for a person who never did web front end. Is there something basic based on Tkinter, WinForms or WPF?
I think the reason why it's that good is that it's literally the same API that the official apps use. There's no separate, restricted API for external developers, your app is treated in the exact same way as the official ones are. Even things like account creation and payments are exposed.
The protocol is very esoteric and hard to understand, though. It wouldn't necessarily have to be that way, it just feels like their documentation is aimed at mathematicians, not developers, especially the parts concerning binary serialization. They definitely suffer from a "reinvent the wheel" syndrome, they have a proprietary client-server encryption layer where plain old HTTPS would do, same for data serialization. Things are reasonably well documented, though, and implementing a fully-featured client with 0 external dependencies is feasible. Voice calls are a notable exception here, the calls API has very little documentation and all it gives you is an opaque blob that you're expected to give to their own voip library.