闲着无聊说说抽象,可能会涉及到工具的抽象和行为模式的抽象,艺术和文学的我就不去乱驾驭了。
----
昨天又试着用了用
Tower.im,感觉很好。之前试用的时候,觉得很奇怪为何它的分层是 选择团队--选择项目 而非类似 GitHub 直接列出项目。
后来想想发现,之所以会存在 Tower 这样的工具,肯定是因为有与某些人交流的需求在,而『某些人』一般就会是一个团队里的人。如果像 GitHub 一样直接列出项目来的话,对于同一团队的人,无论是划分权限还是查看绩效,都会产生许多冗余操作。那么,在单一层级的项目列表之上,再加入一个『团队』层级,确实是个正确的选择。
把特定的行为模式提取出来,而把需要自定义的部分通过某种形式的设置暴露出来。这就是抽象做的事。
----
一开始我不理解为何 Tower 要这样做,我在想,如果让我来开发一款团队协作工具的话,我就会做成 GitHub 那样,直接在首页列出该用户所参与的项目。
在这之前,对于很多工具或者技术我都有着类似的想法,即:为何简单的事情要搞复杂?包括层级的复杂、逻辑的复杂。
在不停学习的过程中,我同时也领悟到:并非是某些工具特意要使你感觉复杂,相反,正是因为工具的这诸多复杂,才使你今后在面对复杂的需求时,可以更简单的完成任务。只是,当你刚接触某一领域,你的需求比较初始且简单,所以没有领悟到各种逻辑和部件之间的关系,所以才会觉得别人通过抽象之后制作出来的工具使你感到困惑麻烦复杂。这时候,应该去适应它,并好好学习它所包涵的理念。
----
前几天偶尔看了看《代码的未来》这本书的节选,Ruby 作者 Matz 的新作,最近引进并翻译了。里面有谈到『近未来的编程语言』,同时,Matz 也提到了 Paul Graham 在《黑客与画家》里面提到的『百年编程语言』这一概念。
在我看来,Matz 的『近未来的编程语言』这一说法不错,PG 所谓的『百年编程语言』,我觉得就太大太空而变得没有意义了。
PG 固然是个厉害的黑客,但他是没法看到未来的,无论是谁,都没法。
编程语言是人类与计算机对话的中介,所谓好的编程语言,也即是对常用过程抽象得好的那一类语言。可这个所谓『过程』,发展得太快,当『过程』摇摆不定时,谁能去得出一个万能的『抽象』来呢?
当年『世界只需要五台计算机』,现在却大谈分布式,高并发,出现了 Go,Node.js,MapReduce 这样的技术或概念。二十年前的人怎么去想象这些场景,然后得出一个不属于那个时代的抽象,然后创造一门『未来的编程语言』?
PG 其中有个观点,可以拿来说说,即:『未来的编程语言不必太在乎机器执行的效率,因为机器的速度可以认为是无限快的』。这个我赞同,但对于他之后的表述,我有提出异议的地方。
PG 写作那篇文章的年代,虽然也知道摩尔定律有尽头,但人们还不是太过担心这尽头的到来,还沉浸在『每18个月翻一番』的快活中。可现在呢?快到头了吧。单一核心的频率无法无限增大了,于是我们有了多核,于是有了 Go。可 PG 的文章有他的历史局限性,否则他就也会像 Matz 一样说出
> 不过,我认为现在的线程、RPC(Remote Procedure Call,远程过程调用)等显式地使用分 布处理和并行处理的形式,早晚会遇到瓶颈。当核心数量超过数千个的时候,显式指定就变得 毫无意义了,调试起来也会变得非常痛苦。我期待在20 年后,能够出现突破这种局限的技术, 即无需显式操作就可以实现分布处理和并行处理。
这段话来。
----
看《三体》后,我试图想象四维空间是个什么样子,可我没做到。
如果把我送去二维世界生活的话,我想我的大脑还是可以适用的,可如果突然有了机会让我生活在四维的空间,是会让我的大脑突然多了很多的领悟,还是说,人类的大脑就只是为三维及三维以下空间打造而无法进行四维空间的空间建模呢?不知道。
那计算机又如何呢?那个维度的生物会不会也在用 0 和 1 来模拟他们的世界?如果是的话,那么我们现在的计算机技术说不定还是可以在他们的世界中使用的吧,毕竟对于计算机来说,
(0, 0, 0) 与 (0, 0, 0, 0) 的区别不大,只是某些计算的计算量要呈指数级别上升罢了。
----
中文网络用语的抽象是一件非常有意思的事情。
传统成语中,如果不看解释的话,谁他妈知道『叶公好龙』或者『夜郎自大』是什么意思,『山清水秀』则好理解多了。
这么说来,『不明觉厉』比『叶公好龙』更有资格出现在成语辞典中。
《三体》当中,未来的人类从外表已经分辨不出男女了,都一律长得很女性化。每个人都体现着『柔』,『刚』则几乎消失了。
现在的网络用语确实也体现着这一趋势,流行的网络用语都普遍带有调侃性,使用的时候,既表达清楚了自己的意思,又不具有冒犯性。
自从『艹你妹』开始流行以来,乐于用生殖器问候他人家庭女性成员的人多了很多,以前可没有那么多的,不能随便操人家妈的。
不过我觉得我身边的小伙伴们刚性还是比较重的,比如我们最近在流行的一句话是:『信不信我只要一次,就能把你操翻』。
当然,英文世界的网络用语也是很有意思的,只是我了解的比较少。就 TL;DR 来说,我觉得果壳网的每篇文章都应该有个『TL;DR 版本』置顶在文章上方,因为很多时候我看不懂研究过程,也没兴趣『走向科学』,我只想看看结论。
----
我感觉这像是篇散文,我本来是想写议论文的..
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/75967
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.