Farewell to Gemini
And all the other stuff that's kinda related.

2020年12月15日,我决定不再做任何跟Project Gemini相关的个人项目(text/gemini除外;我有另外的用途)。所有我已经发布到网上的项目不会被撤下,但是我不会再写任何关于Project Gemini的项目了(除非是演示用,或者跟前面说过的一样跟text/gemini相关)。

我想要先说明一下当时作出这个决定的context:当时在Project Gemini的mail list里有人抱怨text/gemini没有行内样式(就是类似于Markdown里*blah*会render出斜体的blah一样的东西)用不惯,但是mail list里多数人认定了text/gemini大道至简,like why would you ever want to have such a thing? Can't you just write them out? 有的人说你完全可以直接写出来 and people will understand,有的人说不用行内样式表达不了意图完全是写作的人能力不够云云。我个人对此其实并没有很强烈的看法;多少是会有些不便就是了。然而12月15日,这个帖子冒了出来:

I physically cannot create content on gemini without the ability to insert ascii art of a rabbit arbitrarily in gemtext. I *demand* that gemtext be amended to support both inline and standalone rabbits posthaste. There is no humanly possible way for me to ever make anything on gemini until this is implemented. It's not like I could be out writing meaningful content on gemini instead of writing incessant emails to the list, that's crazy talk. (...) An important thing to note before replying: If anyone disagrees with me, instead of providing well reasoned counterarguments I will instead resort to repeating already refuted arguments, ad hominem, and by moving the goalposts. I will also deliberately misunderstand and ignore your argument to make it easier for me to strawman.

我本来想说这是在“讽刺”那些要求行内样式的人,但是像这样直接将他们描绘成蛮不讲理的混蛋实在是稍微有点过分,无法纳入讽刺的范畴内了。当然,不是只有我一个人对这种莫名其妙的胡搅蛮缠 感到厌烦;如果事情到这里就结束了,也许我就不会在这里写这些话。但是这个帖子出来了:

And that's exactly how to make people unsubscribe to the ML because of too much useless noise, and to shrink even more the reputation of Gemini community. Congratulations.
Indeed.
So... IRI or URI? Inclusive or discriminatory? Bunnies or no bunnies?
Such choices are not _solely_ technical. They are moral as well.
Such holier-than-thou community should be able to make an informed choice in keeping with its own values.
Or not.

就是因为这个社区里有会这样思考问题的人我才会选择彻底离开:有本事看着我的眼睛说服我他妈的一个行内样式就是能够他妈的扯上道德不道德 you little piece of shit I fucking dare you. 抱怨没有行内样式不OK,抱怨无意义灌水不OK,但是发那样的帖子就OK就很moral很inclusive;这到底都什么人啊??

然后我想,以后不要再见了。我不想跟这种混蛋待在同一个社区里。

The kind of people I hate so much

大概是在几个月前,我在YouTube上看到一个主要是在推Toki Pona的YouTuber。在他的一个评论世界语的视频(主要观点比较负面)的评论区下,有个应该是比较知名的世界语者大骂这个视频故意将对的和错的串在一起,指责这个作者是liar具体用的什么词我已不记得了;应该是用的liar;然后作者出来了,回复了一句「But am I a cute liar though?」

这让我大为光火。我当下就认为,这人毫无悔过的诚意;如果他至少真的在意这种事情,也许他就不会那样安排视频的内容,也就根本不会有人作这样的评论来让他「am I a cute liar though」了。我想,toki pona这个语言标榜自己是"good talk",但是却最终没能防止使用自己的原本就没有诚意的人继续没有诚意下去。

我时不时地会遇到那么一两个油滑如此的人:他们是如此的油滑和厚脸皮,仿佛已经完全没有半点「自己在做不对的事情」的自觉和廉耻。每次与这些人在网络上争吵起来的时候,总会有旁观者觉得我反应太大,因为别人“只不过是在开玩笑”;可是我为什么莫名其妙地被加上了“理解”别人的“玩笑”的责任?为什么责难我不负这个“责任”,而不是责难别人肆意地将这“责任”加到别人身上?我不是那种能“正确”分辨什么是玩笑什么是侮辱的人(坦白说我也不想耗费精力去分辨);长期被霸凌的后遗症之一,就是没法很好地分辨什么是真正的玩笑。我也不想去理解那些会用这种态度来面对别人的人,免得明明是他们犯了错,却反而显得是我需要为此反省一样。

It's not what I wanted anyway

Project Gemini之所以会出现,也许正如官方的介绍所说的,现代Web过于臃肿,而Gopher一个古早的文件协议,不是指golang fanboy过于原始,都不符合他们想要的。之所以要单独设计一个全新的markup language而不是使用HTML的某个子集(e.g. 限制在HTML 3.2)大概也是为了防止像HTML那样被任意地增添新的功能:对那样的一个语言进行扩展,原本会正常渲染的文件被错误当成使用了扩展功能的可能性大概要比HTML大不少。可是人们为什么要给Web堆叠新的功能?在Flash和Java Applet的时代,一般人想要添加动态的展示时,第一时间想到的恐怕还是去做Flash和Java Applet,决不会想到要思考如何用JavaScript动态修改DOM;人们对动态、对更大的自由度的需求是一直存在的,而当Java Applet和Flash都已经死掉了的时候,人们自然会将这需求注入到还存在着的技术里。Web之所以会臃肿,是因为人们的需求固定存在;因此Project Gemini作为从对需求的拒绝之中诞生的协议无法解决这一问题。当然,也许他们也根本没有想着要解决这个问题,但是一旦承认这一点,那么Gemini也就不是我所想要且愿意为之花时间的东西了。

既然这个协议和社区无法让你满意,那么你认为什么才是对的?你可能会这么问。问的好,我也希望我能够知道我应该认为什么才是对的,因为我至今都不清楚;我只是一直都持有两个观点:(1)软件开发从来都没有新的技术问题;技术问题只不过是在各种时代以各种方式重复;(2)在解决技术问题之前,人们需要调研上个时代的方案,以免犯下同样的错误,并创造出只能这个时代出现的突破性的技术方案。假设一切正如我所预料的一样,那么,假如现在我要试图通过审视过去的技术来解决现在的问题,我所需要审视的是……

Imaging another Web in a parallel world

明明是更好的解决方案却输给了大家都在用的东西」这种事情在软件工程上已经不是什么新鲜的事情了。我们从2010年HTML5+CSS3面世以来拼命地给Web前端栈加东西,到了2021年大家将能完整满足这个栈的要求的浏览器内核逼得只剩下两个半Chromium, Firefox和Safari,我们为了能够用Web技术开发App拼了老命地搞出各种库和框架,人们从jQuery+Bootstrap迁移到Vue/React和各种组件库然后又要跟着Tailwind朝着Bootstrap的理念回归,网页渲染从古早的服务器端模板引擎再到前端渲染再为了解决SEO和一些其他的问题而回到后端渲染然后再到什么一套代码两边渲染的所谓“同构渲染”,结果我们在某些方面所拥有的自由度反而好像还比不上Flash甚至Java Applet时代;你难道不觉得这是一件非常奇怪的事情吗?

也许未来的哪一天我们能再次将Web和Internet App这两个概念事实上地分割开来,然后也许我们终于能够抛开现在的这无限循环的一套,用更加少的耗费去做更多的事情——无论是机器和能量的耗费,还是人的心智负担……