说说掌握JavaScript语言的思想前提

By 玉伯

无论是公司的同事还是外界的程序员朋友们, 大部分人对JavaScript的高级应用不甚了解, 已有的知识架构里会认为JavaScript仅仅是一门脚本语言, 其作用是给页面做一些锦上添花的效果, 比如表单验证等等。潜意识里也就不会用面向对象的思想去编写JavaScript代码, 也很少会去深入了解prototype, closures等概念。这导致书写的代码经常很糟糕。

对于JavaScript的学习, 可能最重要的还是要从思想上认识到JavaScript不是玩具语言。JavaScript的作用远不止增加点表单验证, 我们可以看看GMail、看看Google Maps, 如果开发者们没有对JavaScript足够尊敬, 是不大可能写出如此优秀的Web应用的。

JavaScript门槛很低, 但门槛低并不意味着容易掌握。一定程度上, JavaScript的入门容易以及其极大的灵活性, 使得要掌握 JavaScript变得很难。从纯语言上讲, 我个人的经验是, 学习 JavaScript比学习Java更具挑战性。我们大多习惯了传统的面向对象表述方式, 一定程度上甚至会认为类、封装、继承等概念都得像Java、 C++那样, 可能都从来没想过没有class, extend, override等概念也能面向对象。JavaScript的面向对象打破了这种思想上的禁锢: 世界是多样性的, 条条大路通罗马。夸张一点说, 深入学习 JavaScript, 更多的是一种思想上的挑战, 能活跃思路, 扩大视野, 甚至改变对世界的看法。

上面所说的这些, 无意于夸大JavaScript的作用和难度。每个人都或多或少的会强调自己所学的知识, 但在这里, 我希望自己能很客观的传递一个观点: 无论什么语言, 想要精通, 都很不容易; 如果想学习某门语言, 就得从思想上尊敬这门语言, 在尊敬的基础上去学习, 才有可能掌握这门语言的精髓。除了JavaScript, 再举个HTML的例子:

经常能听到这样的话: HTML多容易, 花个一两天也就会了。我自己也曾这么认为。但随着使用HTML经验的增长, 慢慢感觉到, 对于Web前端开发来说, HTML可以说是最难的。HTML4.01规范中的91个元素就如汉字里的2500个常用字一样, 我们读完小学后对常用字应该就都认识了, 但要用汉字写篇优秀的文章, 却并不容易。HTML也是这样, 大部分宣称HTML很容易的开发者, 往往只停留在认识body, p, form, table, div, ul等标签上, 对于dl, legend, sub, caption等并非生僻的标签甚至都不认识。在常用字还认不全的情况下, 宣称HTML很容易, 真的很狂妄。(HTML的难度在于如何利用标签构建出结构 良好且富含语义的代码, 就如写作文一样, 不能认为认识几个字就自信能妙笔生花。)

总之, 语言无贵贱难易, 要从思想上尊敬重视一门语言, 才有可能驾驭它, 否则, 将永远游离在专业程序员的宝殿之外。

(注: 本文已发表在程序员杂志第11期)

via: TaoBao User Experience Design


Have Your Say »

Required

Required, never published