这是一篇创建于 2015 年的文章,其中的信息可能已经有所发展或是发生改变,但是 Telegram 越来越缺钱了。

前言

早些时我不想在电脑上装QQ desktop(对国产流氓软件的厌恶),因此与Light Studio团队成员的交流就从QQ群切换到了Skype desktop。
然而说实话文字聊天这方面,Skype的体验真的差了一大截,首先是不支持高dpi屏幕,导致Surface上使用要么忍受模糊的界面,要么使用缩小的界面元素,单独放大字体。虽说QQ是后来才支持的dpi缩放,不过最终还是支持了,而Skype到现在还没打算支持。其次,Skype在移动平台上的表现出奇的差,不论是自家WP还是iOS平台都是如此,我在iPad上甚至从未成功使用过它。Android没用过所以不评论。
唯一好用的大概是可以编辑和删除已发出的消息(QQ现在似乎也能撤回了),有些情况下这个功能相当实用。

后来我们知道了Telegram这个软件,尝试了一会儿之后感觉恰好弥补了Skype的不足,UI支持dpi缩放(虽说最多到200%,而默认字体小得瞎眼),只要有个好用的代理,传图片与文件就会方便快捷,而不是像Skype那样直接对传,有时根本传不动。
至于客户端是否开源,其实我最初根本没怎么在意,因为优秀的体验往往比开源更重要,它可以让用户少折腾而是将宝贵的时间用在更加正确的地方。如果整个软件乱糟糟的,就算开源了也只是把烂代码放出来浪费大家的时间

推荐Telegram的人真的不少,以V2EX站长为例
https://twitter.com/livid/status/606394806273609728
我不用微信,他讲的并不是毫无道理,但我认为理由并不够充分。

问题与现状

软件稳定性堪忧

最初使用telegram时真心觉得它还挺稳定的,可是半年以来各平台的App稳定性都在走下坡路。也许是因为我的联系人越来越多,超出了telegram开发者的测试范围?

运气好的话每天都能遇到。

这个。。每小时?
WP版我就不贴图片了,因为我已经有一段时间没有成功登录过WP版Telegram了,不管是用什么代理,AnyConnect, IKEv2我都试过,旁边Twitter App刷的不亦乐乎,Telegram仍然无法登录,HTTP proxy我也用过,YouTube都能直接看了,Telegram还是没法用。不过这不是槽点,因为我早就不日常用WP手机了。

谜之代码质量

  • 直接使用demo级别的代码
    没错我的WP手机无法登录Telegram,我想到的第一件事情是自己下载源代码调试一下,毕竟是开源的,you can you up嘛。
    首先让我感到意外的是 https://telegram.org/apps 下,WP版本的telegram源码仅仅是一个zip包,而其它应用全部有GitHub地址。而且这些都是官方应用,为什么连一个GitHub repo都不建立?这个项目到底是怎样地在开发?
    我开始翻代码,发现了让我更为震惊的一件细节。TelegramClient\TelegramClient.WebP这个组件使用了我在博客中发布的WP8显示webp的代码。(没错连注释都一样,不过一些部分略有改动)
    我没有在这个demo中放任何LICENSE文件,其次我的Blog页脚标有“© 2014-2015 風の音. 保留所有权利。”字样,因此这份demo可以认为是unlicensed,是给出了源代码的非自由软件。但是被Telegram直接拿去用了,而且没有在软件的任何位置注明来源,是不是被他们当成了public domain,还是我这样做本来就是public domain,这个我也不纠结了,谈论这个地方就当我自愿放弃代码版权。
    然而这份代码,WP开发者可以拿去看一下,它文件名里标识了它是一份demo。代码也只是demo质量,而且我写这段代码时根本没有系统地学习过C++,可是Telegram仍然直接拿去用。
    开发者可能根本不懂中文,通过Google搜索到我的blog,找到有个zip可以下载,里面有代码,并且just works,于是就直接拿去用了。
    连我的demo都抄了,那么这个项目是由多少个demo拼凑而成?这个demo仅仅是个巧合?
    我觉得这也难怪。

谜之安全性

  • 自己造安全标准
    MTProto,Telegram认为这个协议非常安全,很多推崇Telegram的人也认为它非常安全。实际上这个协议根本没有经过时间的检验。曾经多少人认为SSLv3是安全的,然而现在这个协议的安全性已经因为一个漏洞灰飞烟灭。而MTProto甚至连接受这样大范围检验的机会都没有,因为它是一种私有协议,并且Telegram仍然是小众的。再加上服务本身不开源不透明,因此说Telegram安全,我绝对不赞同。

服务稳定性奇差无比

  • 服务经常谜之全球性中断,短则几分钟,长则半天一天
    上次被DDoS也就算了,昨天早上和晚上服务都中断了一会儿,突然就连不上而且没人说话,这种感觉有时是非常恐怖的,大概不会有人喜欢这样的服务。
    Telegram提供了BOT API,这个我非常喜欢,我也创建了自己的BOT,但在实际使用中发现,BOT API非常不稳定,除了HTTP API偶然会出现50x错误,有时甚至会接收到无效的json文件。幸亏我的程序容错性好。
  • 下载附件的速度是个谜
    100M的附件,下载前99.5M时都是跑满200Mbps带宽,最后0.5M给你卡5分钟。

服务本身持续与保障性令人质疑

  • 没有收益来源的服务难以保障持续稳定运营
    这个仅仅是个人观点,欢迎举例反驳。

对中文支持太差

  • 搜索几乎不算支持中文
    想搜索个自己发过的中文消息,真是难于上青天,甚至某群还有BOT来做搜索中文这个事。官方对于中文(以及日文等)的态度,是跟没有这个语言一个样。我身边大部分朋友都是说中文的,怎么跟他们推荐?
  • tdesktop下,Ctrl+退格,Ctrl+左右键会将一块中文当一个英文单词处理,而不会自动进行中文分词处理
    对比一下Windows 10 universal版的QQ(任何Windows universal apps都支持,TextBlock原生),Ctrl+退格,Ctrl+左右,都是会对中文进行分词处理的。tdesktop自己造轮子,造出来的却是一堆方轮子。
  • tdesktop图片附言不支持中文输入法
    这个真的又是哪里玩脱了吧。。
  • 官方不打算加入中文UI支持
    Ctrl+shift+alt可以使用第三方翻译,但是作为开源项目为什么不合并第三方翻译?这个态度让人质疑。

对Windows支持太差

  • 触摸支持差
    触摸点击输入框不会自动弹出虚拟键盘,哪怕是在Tablet mode下。对比Chrome,从Win8开始,哪怕是桌面模式,触摸操作也会自动弹出键盘,这是体验差距。同时,长按弹出的右键菜单,很大概率会一瞬间消失,因此想对消息做什么操作(比如回复),都是极其困难。
  • 通知不造自己的轮子会死系列
    Windows 7以下有通知区域popup通知,Windows 8以及8.1有Toast通知,Windows 10有Toast通知+通知中心,然而Telegram一个都不用,非要用自己的桌面通知,是不是模仿Chrome。。
  • 在双声卡的设备上切换输出设备会输出特别可怕的声音
    这个差点把我弄聋了。别的程序都没这个问题,唯独Telegram有,我可否认为这是Telegram的问题?
  • 不让用户自定义字体,自己又有字体fallback问题
    中文字体显示是这个效果:

    Windows: 怪我咯
  • 坚持走GDI道路一百年不动摇
    于是Windows永远停留在了XP时代。

其它

  • 所有平台都使用Apple emoji而不是原生emoji或者第三方开源emoji。

总结

Telegram这么多问题,还有那么多人无条件推崇,到底是情怀还是什么的,我也不清楚。
总的来说我感觉Telegram开发者根本不懂基本的用户体验,只是一味地添加新功能,既不管稳定性,也不管体验好坏。
有种药丸的感觉
因此在上述问题完全解决之前,我绝对不会向任何身边的朋友推荐Telegram,而是会向他们推荐Windows 10 universal版的QQ,或者其它看上去更靠谱的软件。(虽说QQ我现在不怎么用了)


Telegram对上述问题的修复记录
tdesktop 0.9.10版:修复触摸屏长按弹出的右键菜单瞬间消失的问题和图片附言无法输入中文的问题