[译]生活在 JavaScript 之中:学习第二门语言的好处

本文讲的是[译]生活在 JavaScript 之中:学习第二门语言的好处,

你会多少种编程语言?根据最近的调查,大约 80% 的读者至少会两种。超过半数的人经常使用 PHP,我敢打赌大多数人就像我一样使用这门语言开始他们的 Web 开发。

最近我准备向我的简历上添加一门别的编程语言(好像在我的“待学习”清单里没有足够的东西)。最终我决定在网上学习 Scala 教程。对于不熟悉它的人来说,Scala 就是一门通用的强类型的编译语言(像 Java,它编译成可移植的字节码)。虽然像 JavaScript 一样它是多范式的编程语言,但它有很多存在于函数式编程语言中先进的函数式编程(FP)特性,比如说 Haskell。如果你对最近函数式编程语言的流行很感兴趣,那你可以仔细研究一下 Scala。

Silhouette of a person made from programming terms and language names

你也许在想“为什么我现在要再多学一门语言,我准备一辈子都用 JavaScript 了!”又可能你有一堆 JavaScript 的东西要学习。仍然有一些很好的理由去学习一门新的语言。真正掌握概念的好方法,如静态类型、编程范例,或者函数式编程,是用一种语言工作,这会迫使你使用这些东西。JavaScript 的灵活性很是吸引人,但它也可能导致一些问题。学习另一种语言写代码的方式会教会你不同看待与处理问题的方法,这也会改变你写 JavaScript 的方式。另外,有了语言所限制的编程风格将会真正帮助你了解它的优劣。

接触新的编程范式、概念和风格对我们这些没接受过正规训练的自学者会有莫大的帮助。计算机科学的毕业生可能已经将许多这些概念作为他们学习的一部分。为了更好的成长,需要考虑学习那些与 JavaScript 完全不同的语言。

值得一提的是,一些现在流行的库和设计模式正是从其他语言中提取出来的概念。Redux,一个 React 的状态管理插件,是借鉴 Elm 中数据流系统。Elm 本身是受 Haskell 启发的一门编译成 JavaScript 的语言。学习别的编程语言可以更好的帮助你更好的理解这些库和它们背后的概念。如果呆在 JavaScript 的舒适区中,你就只能依靠别人从别的编程语言中提取这些见解,并以比较浅显的方式展现出来。

学习新的语言也会影响你看待第一门语言的方式。当我开始学习葡萄牙语时,它改变了我看待英语的方式。当你不得不以一种其他的方式做事情时,它会强迫你以母语来思考如何做。你不再觉得理所当然,而是会开始追根溯源。你可以看到一些语言的相似之处:例如葡萄牙语和英语都是起源于拉丁语,它们的一些动词很接近,你可以轻易猜出它们的意思。对于编程语言也是一样,特别是你还只会一个的时候。接触其他语言下将会帮助你思考设计 JavaScript 时所采取的设计选择。一个更为具体的例子是,学习一门支持类继承的语言可以让你对比其与 JavaScript 原型对象继承体系的不同之处。

WebAssembly (WASM),一个实验中的偏底层语言,将很快可以在浏览器中使用。C 和 C++ 等高级语言将可以编译成 WASM,并获得比 JavaScript 更小的文件和更出色的表现。这将把浏览器向其他语言开放,在未来将一定会有越来越多的语言可以被编译成 WASM。JavaScript 的创造者 Brendan Eich 最近说他可以预见 JavaScript 在未来可能会过时。可以确定的是,JavaScript 将会在长时间内依然重要,但使用另一门语言肯定不会伤害你的就业前景,也可以避免你被局限于 JavaScript 开发的小笼子里。

更多篇文章

如果你真的没有时间学习新的语言,你不必远离 JavaScript 就可以获得我刚刚提到的好处。上周我们出版了完全用 TypeScript 编写的 the second part of our Angular 2 tutorial series。TypeScript 是 JavaScript 的超集,所以你知道的大部分都会应用。它添加了静态类型和接口以及装饰器的概念(后者将会出现在 JavaScript 下一个版本中)。花费一些时间学习 TypeScript 将会加深你对静态语言和动态语言的理解,也会扩展你作为 JavaScript 程序员的知识面和就业能力。作为 Angular 2 的默认编程语言,就业前景很广阔。你从中学习到的理念会让你将来学习 Java 或者 Scala 更为简单。

你会用除了 JavaScript 之外的编程语言吗?对于 JavaScript 程序员学习的第二门语言又有什么好的建议?WebAssembly 将会改变游戏规则吗?我很乐意听取你们的意见,在下方给我评论吧!

这篇文章有用吗?






原文发布时间为:2017年3月27日


本文来自合作伙伴掘金,了解相关信息可以关注掘金网站。

时间: 2024-09-12 14:14:50

[译]生活在 JavaScript 之中:学习第二门语言的好处的相关文章

学数据结构当然会比学第二门语言觉得难

[问题] 贺老师,我有一个问题:在同时学C++和数据结构时,课本是谭浩强编的<C++程序设计>和烟蔚敏编的<数据结构(C语言版)>,为什么我感觉C++挺好学的,觉得这本书写的太好了,都比老师交的提前自学了好几章,而数据结构,我却是比c++先接触的,感觉很难,觉得书编的不好,特别书中函数都是抽象.大概.笼统的,没有一个完整的代码,无法参照学习,感觉都看不下去了,没法自学,而老师讲都又很笼统,特别落实到代码上很难,难道是学新的语言比较容易(背景是大一时我们一整年学的都是C),而深入.进

JavaScript Event学习第二章 Event浏览器兼容性_javascript技巧

在这里提出的事件,当他们发生在一个确定的HTML元素上的时候,他们的名字能够被大多数的浏览器所识别.也就是说,浏览器会查找你为这个HTML元素所注册的事件处理程序的脚本,而且会被立即执行.      一开始只有为数很少的一些事件.这些事件在几乎所有的JavaScript浏览器都能运行,即使是那些非常古老的.需要注意的是那些早期的事件只能工作在链接或者表单上,有时候也能运行在整个窗口上,但是其他的大多数HTML元素不行.      时代变迁,很多新的事件也给大家介绍过了.第四代浏览器和更高级的浏览

JavaScript DOM 学习第二章 编辑文本_基础知识

例子 这个页面就是个例子.点击一个段落,编辑,然后点Ready.你的修改就会呈现. 问题 遇到的第一个问题是:我想用文本框作为编辑区域.一开始我却把内容放不进文本框去.读者发现Mozilla的一个警告说是只有在文本框放置到文档之后才能设置它的value. 另外,在Mozilla下面内容包装的不是很好.我试了好几种wrap参数,但是结果都不是很好. 最严重的问题就是把修改后的内容发回服务器,这是几乎所有的CMS系统都要做的.读者给了我很多高明巧妙的建议.然而因为不能通过JavaScript完成,所

Javascript入门学习第二篇 js类型第1/2页_基础知识

1,对象跟基本类型之间的转换: 不管何时,只是对象非空,在布尔环境中都为true. 如; new Boolean(false);  new Number(0); new String(""); new Array(); 上面虽然内部值是false,但对象的值是true; Object ? valueOf() ? toString() 其中Date类,是先执行toString()转换. 2,js中操作一个数据值: 任何语言都有自己的操作数据的方法: Js也不例外,js有3种重要的方式来操

Javascript入门学习资料收集整理篇_基础知识

Javascript入门学习第一篇 js基础Javascript入门学习第二篇 js类型Javascript入门学习第三篇 js运算Javascript入门学习第四篇 js对象和数组Javascript入门学习第五篇 js函数Javascript入门学习第六篇 js DOM编程Javascript入门学习第七篇 js dom实例操作Javascript入门学习第八篇 js dom节点属性说明Javascript入门学习第九篇 Javascript DOM 总结jQuery基础教程笔记适合js新手

到底开发者需要掌握多少门语言?

诸如Apple.Facebook及Google这样的大公司正在开发他们自己的编程语言,开发者们被迫只有适应.前不久的世界开发者大会上,Apple公布了它的新开发语言Swift.这是最近大型技术公司们开发的一大波新语言中的最新成员,这些新语言某种程度上都是专门应用于他们自己的平台. 对iOS开发者,Apple有Swift:而Facebook 有 Hack -- 一门用于后端开发的语言.与此同时,Google已经拥有了它自己的Javascript替代者 Dart,以及一门新的通用编程语言Go. 这一

[译] 如何使用 JavaScript 构建响应式引擎 —— Part 2:计算属性和依赖追踪

本文讲的是[译] 如何使用 JavaScript 构建响应式引擎 -- Part 2:计算属性和依赖追踪, 原文地址:How to build a reactive engine in JavaScript. Part 2: Computed properties and dependency tracking 原文作者:本文已获原作者 Damian Dulisz 授权 译文出自:掘金翻译计划 译者:IridescentMia 校对者:malcolmyu,AceLeeWinnie Hey!如果你

Javascript入门学习

编程之道,程序员不仅仅要精通一门语言,而是要多学习几门. 第一课1:javascript的主要特点解释型:不需要编译,浏览器直接解释执行基于对象:我们可以直接使用JS已经创建的对象事件驱动:可以对以事件驱动的方式相应客户端的输入,无须经过服务器端程序安全性:不允许访问本地硬盘,不能将数据写入到服务器上跨平台:js依赖浏览器本身,与操作系统无关 第二课如何在网页中写Javascript1:在页面中直接嵌入Javascript    <script language="javascript&q

[译] 如何充分利用 JavaScript 控制台

本文讲的是[译] 如何充分利用 JavaScript 控制台, 原文地址:How to get the most out of the JavaScript console 原文作者:Darryl Pargeter 译文出自:掘金翻译计划 译者:sunui 校对者:reid3290.Aladdin-ADD JavaScript 中最基本的调试工具之一就是 console.log().console 还附带了一些其他好用的方法,可以添加到开发人员的调试工具包中. 你可以使用 console 执行以