英文原文:How Web Development Changed for Me Over the Last 20 Years
web 在过去 20 年时间里改变得相当快。越来越多的逻辑从服务器端移动到了客户端。不但需要在客户端编写更复杂的 JavaScript 代码,而且最近几年还发生了一些奇特的事情:JavaScript 正在转移到服务器,而 web 技术则往桌面转移。这已经不是什么新鲜事了,但 20 年前谁会想到这种情况?
web 改变了,因而我的技术堆栈也变了。貌似我的堆栈变回到了 roots。 20 年前,我从 HTML 和 JavaScript 开始,再到使用 VBScript 的经典 ASp。 2001 年,我开始陶醉于 ASp.NET 和 VB.NET,并用到了产品中,直到 2006 年底才不再这么干。2007 年年底,我开始使用 C# 编写 ASp.NET。HTML 和 JavaScript 仍然参与其中,但多多少少被封装在第三方控件中,并且 jQuery 当时是 JavaScript 的别名。JavaScript 的一切都是 jQuery。ASp.NET WebForms 感觉巨大又不是很灵活,但它能有效工作。后来2010 年我用 Silverlight、WinForms 和 WpF 做了很多东西。
ASp.NET MVC 出现了,web 这个东西开始再次比 ASp.NET WebForms 感受更自然点。从一个 ASp.NET 开发人员的角度来看,web 开始变得更好:更加干净、灵活、轻便和自然。
但也出现了一些新的东西。一些来自于 ASp.NET 世界之外的东西。强大的 JavaScript 库,如 KnockOut、Backbone,以及后来的 Angular 和 React。第一个单页应用程序框架(对不起,我不想提蹩脚的 ASp.NET AJAX)出现了,UI 逻辑从服务器转移到了客户端。(好吧,我们确实在 2005 年搞回了一个很酷的 SpA,但我们没有想过如何用它创建一个框架。)
NodeJS 通过在服务器上使用 JavaScript 再次改变了世界。你只需要两个不同的语言(HTML 和 JavaScript),就可以来创建很酷的 web 应用。我不怎么对 NodeJS 感兴趣,除了在后端使用它,因为一些工具基于 NodeJS。也许这是一个错误,谁知道呢; )
现在我们有了 ASp.NET Core,这感觉比传统的 ASp.NET MVC 更自然得多。所谓的自然在这种情况下,意味着和编写传统 ASp 的感觉几乎相同。这也就是说使用无状态的 web 工作,而不是试图修复它。使用 Request 和 Response 比传统的 ASp.NET MVC 工作起来更直接,比 ASp.NET WebForms 甚至就更直接得多。自然并不意味着你必须编写和传统 Asp 同样非结构化的废话。 ; )
由于我们已经有了非常酷的客户端 JavaScript 框架。和简化了的、简约的服务器端框架,服务器部分就被减少到仅仅用于在 REST 服务上提供静态文件和数据。
正是这个时候,深入了解 TypeScript 变得有了意义。但是到这个时间点为止,它对我还没有意义。我用 JavaScript 编写代码大概有 20 年时间,但我从来没有在单个项目中写过这么多的 JavaScript 代码。之后,在过去几年时间里我开始使用 AngularJS。Angular2 是应该好好研究 TypeScript 的一个原因,因为现在的 Angular2 完全是用 TypeScript 写的。
几个星期前,我启动了我第一个真正的 NodeJS 项目:一个使用 NodeJS 来为用户提供高度灵活脚本运行时的桌面应用程序。NodeJS 提供功能和 UI 给用户,所有都是用 TypeScript 写的,而不是普通的 JavaScript。为什么?因为 TypeScript 有很多意想不到的好处:
仍然可以编写 JavaScript帮助编写小的模块和结构化的代码帮助编写 NodeJS 兼容模块一般说来,不需要为每个模块写所有的 JavaScript 代码只要专注于所需要编写的功能这就是为什么 TypeScript 对我来说是个大帮手。当然类型化的语言在很多情况下也是有用的,但是使用 JS 工作了 20 年我喜欢隐式的类型 JavaScript 语言的灵活性,并且我对它很熟。这意味着,从我的角度来看,有关 TypeScript 的优点是,我仍然能用 TypeScript 编写隐式的类型代码,并利用到 JavaScript 的灵活性。这就是为什么我说仍然可以编写 JavaScript的原因。
Web 技术改变了,我的技术堆栈也改变了,工具也是。所有这些东西都变得更为轻巧,连同工具一起。控制台回来了,IDE 变回为它们的 root:只不过是一些有着类似语法高亮和智能感知这些作用的文本编辑器。目前,我更喜欢根据我工作的项目类型使用有着瑞士军刀之称的 Visual Studio Code 或 Adobe Brackets。两者都开始变得非常快速,包括一些不错的功能。
使用轻便的 IDE 令人愉悦。一切都很快,因为通过我需要开发的 app 可以使用机器的资源,而不必通过我需要使用来开发 app 的 IDE。这使得发展速度快了很多。
现今启动一个 IDE 意味着启动 cmder(Windows 上我最喜爱的控制台),改变项目文件夹,启动控制台命令,从而查看 typescript 文件,保存后编译。我可以启动另一个控制台来使用如 NpM、gulp、typings、dotnet CLI、NodeJS 等工具;以及启动我最喜欢的轻量级编辑器来编写代码! : )
-
译文链接:http://www.codeceo.com/article/web-change-me-20-years.html
翻译作者:码农网 小峰
济宁IT新闻