第2周回顾 (2016/5/2 - 5/8)

2016年5月2日至8日,『两个圆点一条直线』微信公众号订阅者净增人数24人,欢迎所有从 V2EX 来的V友们。

第2周共发布 5 篇文章,从网站开发技术的发展历程看 Meteor 的存在意义,并介绍了一些由 Meteor 实现的开源项目商业网站,从中大致能够看出 Meteor 的特点以及它更适于做出什么样的网站

人之所以为人,是因为人会使用工具来扩展能力。开发者最懒了,对于足够重要的且需要反复运行的流程,必然会将其转化为工具,对于足够好用的工具,必然会有更多的人去使用。新的需求出现后,受欢迎的工具会随之升级以满足更多的需求,满足的需求越多,代码越臃肿,也越难以满足未来的需求,就像惯性,质量越大,转向越难,慢慢被新工具替代。这一点,小至一个函数,大至一家公司,通通适用。

对上面这段话,我想进一步分层理解:

第一层,我们必须学会善于利用工具来解决自己能力范围之外的问题。用手敲钉子肯定不行,不是疼不疼的事,而是因为手上皮肤和肌肉没有足够的能力抵受得住细小钉子帽带来的压强,如果手握锤子呢。

第二层,了解工具和使用工具同等重要。比如一字改锥和十字改锥,两者长得差不多,解决问题的方式是一样的,问题对象也很相似,但就是不能互通。每个工具都有自己的特性,所以在使用之前,最好能够先了解清楚。而实际情况更偏向于,在使用过程中才能更深入的了解工具本身,因此我说了解和使用这两个过程是同等重要且往往是并行发生的,多用多了解,时而低头学习它的优点,时而抬头再看看有没有更契合的工具。

第三层,所有工具必将被淘汰。事物是发展的,当满足不了新的需求,当有更好的替代品,它必然被淘汰。只有解决单一问题的工具才有机会与问题本身共生,即只要需求还在,它就有生存下去的机会,这也是为什么在编写函数时尽量解决单一问题且避免产生副作用的原因了。而大多数的工具是不会满足解决单一问题的,它们会为了迎合更多需求而进化为解决组合问题的工具,这里不存在对错,仅仅是工具创作者的选择罢了。解决组合问题的工具生存周期不会太长,因为它受限于自身,难以兼容同样不断进化的生态圈。

第四层,只要你还在用,对你来说,该工具就不算被淘汰。不要一味追赶潮流,不必在意工具新旧,只要用着顺心顺手,只要它能够解决你的问题,它就是一个好工具,它会为自己的存在感到骄傲。对于这一点,我想越是资深开发者,越有类似体会。

第五层,工具的精髓是可以继承的。这里的精髓指工具创造者之所以创造它的哲学思想、原则乃至具体的实现方法,这些东西是一代代传下来的,有意思的是,他们根本不存在师徒关系,未必有过一面之缘,完全依靠在使用中感受,在贡献中顿悟,原来还可以这样看待事物,原来还可以那样解决问题。开源社区的妙处便在于此。

这五层,你可有共鸣?在此基础上,去解读下面几段更具象的表述。

随着个人计算机和移动设备的发展,浏览器的处理能力已然满足新的需求——不再获取由服务器处理的结果而转为直接传输数据。与此同时,编程普及开来,它的普及度终将与外语和驾驶齐平,也许未来没有必要去学开车了,但编程的发展趋势是人人可以掌握运用。我又该引用 Marc Andreessen 的话了,『那些试图让科技 vs. 非科技的分野像阶级斗争一样升级的努力注定是要失败的:技术可以,并且正在,被所有人所学会。』翻译来自即刻 app 的《硅谷传奇风头马克·安德森原创推文精选》主题。

Attempts to force tech vs non-tech into new class warfare division are doomed to fail: Tech skills can, and are, learned by anyone. - Marc Andreessen

一、本地计算能力的提升;二、人人编程的未来趋势。这两点便是 Meteor 诞生的时代背景,它希望帮助更多的人写出更好的软件。Meteor 终将会被淘汰,就像其他框架和平台一样,这是它们的宿命,但其使用者的经验和能力完全可以迁移至新工具的使用中来,如同你可以把过去的开发经验迁移至 Meteor 这来一样。日夜磨砺出来的经验教训永远跟随着它们的主人,这是包括科学技术在内的所有知识能够实现迭代的前提。

共同成长的机会是难得的,我与 Meteor 共同成长过,我诚挚邀请你与《两个圆点一条直线》来一次共同成长。重要的事情值得重复,这里是先有英文名后有中文名且英文名为 “Learn everything from learning Meteor”.