充足的 JavaScript 资源库

本文是翻译,版权归原作者所有



有个笑话讲,每两个小时就有一个新的 JavaScript 资源库诞生。对于本周我在 HelsinkiJS 上提交的不太成功的演示,这是一种补充、延伸或者解释。

JavaScript 除了缺少即将到来的 ES 6/7 的功能,本身是一种语言的稍微简单版本。支持 DOM,只有臭名昭著的大约两周的创建时间。有前端和后端。有开发工具和转换编译器。可视化、图像、声音、游戏引擎。尽管这些意图的数量已经很大且种类繁多了,但是,从互联网产生的 JavaScript 的数量仍然是十分荒唐的。

从资源库到框架

像 Underscore 和 jQuery 之类的、较小的“helper”资源库,有着保持活力的更好机会。它们可以通用在大型和小型项目里。还有相当多的这种小型包,这不一定是坏事,因为它们通常是可替换的、或做着不同的事情。事实上,它看起来就像陈旧的庞然大物们正在重新把自己组织成更多的模块化结构。

而且,像 Meteor、Angular 或 Ember 之类的、规模较大的框架有着更高的学习成本和投资成本。任意采用其中一种,从长期看多少有些像赌博。选择的矛盾和不可预期的投资回报交织在一起。

React.js(或许还有不同的 Backbone.js 组件)介于二者之间。它们有着较小的学习曲线,它们倾向于为一个问题提供一种解决方案。Flux 架构推荐使用的 React,事实上用不用都可以。它有多种实现,不一定和 React 紧紧绑在一起。

它们从哪里来?

JavaScript 很可能是可用语言中最容易接触到的了,当然它也是毁誉参半。它是唯一可在浏览器里使用的语言,很可能冰箱的某个地方也在运行着 JavaScript。开发人员、基于思想之上构建的思想、开发标准的数量还在增加,每个人想提高自己的需求也在增加。甚至把 X 转换成 JavaScript 的转换编译器,至少需要对 JavaScript 有一定程度的理解。

我怀疑的一个问题是,人们急于呈现他们的 GitHub 主页,以做为他们的技能展示。虽然这完全合理,也没有什么错误,但是这种习惯会带来负面影响,造成同样东西反复产生。公司通过贡献开源和帮助社区来收获因果报应。

相较于向现有资源库贡献代码以及解决那里的某些更困难的问题,从零开始就更加容易了。做自己的东西肯定要花时间,但是可能被认为更值得、原创和给力。作为创作者的个人标签让你的自我价值感到振奋。

我们不要协作,而是得到了这种奇怪的自我广告。有肯定比没有强,因为好的东西甚至可以从最少的努力开始成长。多少和“20% 非付费/自己的项目”或“ship/fedex day”【注1】的心态类似。

相当多的资源库的确是合理的,解决了现实中的问题。他们复用了其它语言的思想。fork 一个项目可以将努力分散开来,但是它允许更多的实验和更快的开发速度。是好事也是坏事。

“如果你想在 2015 年做点儿东西,就做更多的资源库和框架。我们不想要一个极权主义的开源社区,而是想要一个大杂烩,因为开源是和没有绝对正确的解决方案所展开的、不断前进的对话。 ” ------[Alex R. Young,dailyjs.com](http://dailyjs.com/2014/12/31/year-end/)

倒退中的老化

关于耐用的东东,有一个温柔的经验法则,它也应用在软件开发中。已经存在了一段时间的东东,更倾向于存在同等数量的时间。

语言在发展,一个人可以说,ES 6/7 将从 Underscore 和 Coffeescript 吸收一些思想,从而让这两项技术变得无用。不过,情况或许可被解释为其中一个会永远存在。没有什么是绝对的,因为这些是真正的预测,但是统计数据通常钟情于较老的技术。

考虑到这些,有助于缓解我学习所有新颖技术的压力。在当下,最热的新资源库的保质期可以短得令人惊奇。

学习

学习复杂的资源库需要时间,因此一个资源库的选择,会让人望而却步。不管资源库多么快地变得过时,花在学习新技术上面的时间从来不会被完全浪费。当然,唯一的问题是,有些资源库因为耗时必须被推迟或放弃。学习对你的大脑是有好处的,它鼓励新的神经突触或其它东西的形成,使你的大脑“更年轻”,帮助抵御衰退方面的疾病。

在投资时间学习一些具体技巧之后,人们会过于看重那种技巧,使他们自己暴露出下沉成本的影响。我们应该乐意考虑新的选择和方法,即使它们破坏了我们当前的技能或状况。尽量加强当前的位置和技能,使用过时的技术或模型很少能带来积极的结果。因此,我们应该坦然地再次成为初学者。

担心浪费时间,会导致停滞不前、在决策制定上缺乏自信。既然资源是如此地丰富,就应该出现某种应对方法。当我研究时,偶然发现了这个有着不同策略的优秀资源

简言之,在 twitter 上关注名人,阅读博客,收听博客,和参加会议。把你自己放在有兴趣和有激情的人群当中。达到这个目的的最有效率的方式就是让你的同事成为过滤信息的人,当然你自己也要参加。

理解就是识别模式

除了积极地尝试学习一种新资源库,我还尽量观察其背后的真正思想和模式。因此不要把精力放在一种具体实现上,我相信,理解潜在思想的涵义才是更重要的。观察一种思想或模式的采用与摒弃,是至关重要的。到达临界点、引爆点的技术采用,正变得越来越快。先前的热门思想的摒弃亦如此。


译文:充足的 JavaScript 资源库 》| 腊八粥