笑尽英雄啊 / 未命名 / 值得尝试的七大前沿性编程实验(1)

0 0

   

值得尝试的七大前沿性编程实验(1)

2013-10-09  笑尽英雄啊

Erlang、Node.js、Go:本文将指导大家迈出走向热门编程语言的第一步。

“前沿”这个字眼可能太过激烈,甚至会直接吓跑一些保守的企业技术人员。对于企业IT部门而言,利用前沿性技术打造新产品简直有几分痴人说梦的味道。

这种反应不只源自对新方案的恐惧或者现有机制太过陈旧以至于难以更新,毕竟企业团队需要采纳一切可资借鉴的新思路来指导业务流程——甚至包括新思路的阶段性成果。但从管理者的角度出发,他们也需要尽可能保持业务体系的稳定性,因此原有堆栈代码带来的确定性能带来理想的使用安全感。

使用前沿性技术的关键在于多做实验而不能粗暴地组织全面升级。在预期效果最明显的领域尝试部署新代码,观察这些前沿工具能否提供我们所需要的性能及功能,然后权衡业务流程的基础要素是否受到了影响。单靠实验并不一定能立即暴露出新技术中的全部潜在弱点。因此逐步增加对应工作量,在审查结果达到全面准确之后再以严谨的态度进行实施才是正途。

在本文中,我们将论证与当前“最新最强”技术方案相关的七种实验流程。请放心,这些技术都已经具备一定发展历程——事实上,其中一些已经有超过二十年的历史。但它们仍然能够为现代企业堆栈提供显著的领先优势,也因此受到技术行业的广泛关注。不要抗拒,请以积极的心态加以尝试。这些技术是大家从熟悉的世界迈向新纪元的理想起点,更快、更简单、更纯粹——不容错过。

前沿实验第一位:利用Erlang实现纯粹的并发效果

目前前沿技术的主要诉求在于解决实际问题——换言之就是治标不治本。云计算之所以能够兴起,是因为数据中心的管理工作令IT部门十分头痛。而像Erlang这样的新语言之所以不断涌现,则是因为技术老鸟们无法胜任新时代下的技术要求。

作为一种拥有二十多年历史的编程语言,Erlang凭借着自身的高效结构将并发线程的执行难度降至最低,从而赢得了越来越多技术人员的青睐。如果利用Erlang进行编程,Web服务器能够在多用户并发任务当中带来更出色的表现——这是由于该语言的设计初衷旨在帮助开发人员通过限制程序的编写方式来做出正确决策。当然,技术从牛们完全可以利用其它语言实现同样的功效,但Erlang在设计中采用一系列安全辅助机制,从而避免线程紊乱状况的发生。Erlang语言为需要被锁定及解锁的共享变量中引入了功能性设计及消息传递机制,这使得IT部门所开发的企业集群能够更好地应对多用户环境。

Erlang语言由Ericcson开发,最初是为了用于内部电信系统,而后逐渐演变为开源项目。在Erlang步入开源道路之后,其大型技术社区如今已经提供大量支持工具,例如在大部分主流操作系统中进行基本运行安装,以及其它开源项目。很多参与者利用OTP——全称为开放电信平台——作为网站数据服务的交付基础,这也是大部分简单项目的最佳起点。(大家可以点击此处下载Erlang。)

不过任何一种语言都存在局限。Erlang的主要瓶颈在于,其新工具的设计目的并不是为了修复那些由失误或故障引发的问题;它们关注的是提供差异化决策方案。也就是注重“取舍”而非“问题”。

举例来说,云计算能够带来出色的简便性与灵活性,但却会同时造成控制与安全方面的难题。使用Erlang语言的程序员需要牺牲一部分自由度来换取新的开发模式。如果大家的代码需要面对的是多位彼此互不相关且无需沟通的用户,那么使用Erlang模式来编写代码是最便捷的方式。不过如果大家需要让自己的线程彼此沟通——前提是各位有能力攻克这项难关——使用Erlang反而会让事情变得更加复杂。

从小处着手,了解Erlang是否能够与自己的实际需求相吻合,而后通过取舍获得最佳代码表现,这就是我们进行实验的意义所在。

前沿实验第二位:Node.js Web堆栈

很多企业在评判服务的实际效果时,都会观察其是否能够快速交付数据。没人愿意让一位潜在客户面对着空白的浏览器窗口破口大骂。此外,在向顶头上司进行工作汇报时,大家也肯定不希望把时间浪费在等待关键性业务分析报告生成身上。

不少前沿性工具都专门为速度而生。以Node.js为例,它的流行主要是因为其出色的运行速度。它在与新型NoSQL数据库协作时的速度表现甚至更快,这是由于新型NoSQL数据库在数据保存方面速度拔群。总之,我们可以在这套小型平台上建立起高速Web基础设施,并且同时降低对电力资源的消耗。速度与能效之间往往存在着紧密联系。

这样的速度表现对于将快速响应视为首要目标的企业用户来说极具吸引力。更短的网站响应时间能够大大提高客户的第一印象,从而将潜在客户转化为实实在在的买家。不过银行等拥有大量固定客户的企业对于这方面特性可能并不关注。

Node.js是一套以Chrome V8 JavaScript引擎为基础创建的开源堆栈,但大多数技术人员会在nodejs.org网站上为各类主流平台寻找预先开发好的可执行方案。作为主要赞助商,Joyent公司还提供配备镜像的云设备,其中包含所有必要库及工具。

很多开发人员习惯于直接向Web框架求助,例如Tower、Geddy或者Railway,它们能够切实简化数据驱动的基础网站的开发流程。

Node.js的局限与性能无关,最大的问题在于它给开发人员带来沉重的技术负担。即使是最为睿智的程序员也需要加倍小心,因为这意味着所有数据包都运行在同一进程当中。如果某位用户的无意操作偶然触发了代码中的bug,整个Web服务器都将陷入崩溃。优秀的程序员以及严格的测试流程能够避免问题的发生,但没人能保证永远不出纰漏。在这方面,Erlang的做法正好相反——它利用多项限制帮助程序远离严重错误。

Node.js与NoSQL相结合完全能够成为当下前沿实验的理想方向之一:专注于为爆炸式发展中的社交网络提供支持。如果大家打算亲自进行实验,请务必选择对速度要求较高、但对稳定性不太关注的领域。如果您的数据需要精心打理,请告别Node.js、远离风险。

前沿实验第三位:HTML 5 Web与移动应用

古语有云“新官上任三把火”,刚刚诞生的新工具也值得我们体验一下其旺盛火力。从零开始刚刚建立完成的最新语言及软件堆栈很可能尚未经过新版本带来的细微调整并舍弃不合用的API,但其语法及格式也因此比较纯粹、简洁。

这往往能为大家带来更简单、更纯粹的代码。尽管程序员们能够利用任何语言编写出复杂的代码,但新型堆栈往往不需要经过太多代码修复及版本测试流程。智能手机上的某些应用需要经过几十个版本的严格测试,从而确保其能够以正确版本发挥正确效果。新型堆栈就不至于带来这样的额外复杂性。

目前市场上已经存在多种HTML 5项目,旨在为开发者提供创建网站或者移动手机应用所必需的基本要素。代码,或者被称为框架或者支架,能够在页面中组织内容并提供由菜单为主导的过渡机制。其中最具人气的项目包括jQuery Mobile、Sencha Touch以及Titanium,但近来还兴起了更多其它工具。很多人气极高的CMS堆栈,例如WordPress或者Drupal,已经开始将关注重点转移到移动环境当中,而且往往能够使用大量原始代码。

虽然这些新的代码堆栈足够简洁,但它们需要将原有平台彻底淘汰之后才能实现效果。新工具能够轻松帮助开发者编写出简单而精致的代码。它们往往直接忽略掉陈旧硬件以及操作系统版本。当然,它们的简洁性与高速性源自对现有预发布代码的高度依赖。

HTML 5框架往往会在大家使用旧版本或者不符合标准的浏览器时发生故障。突然之间,菜单显示的位置出现严重偏移,而且文字内容也开始只显示一半——这说明CSS指令无法正常工作。有时候新需求需要与旧方案和谐相处,但新代码却坚持以同一种方式实现某一种功能,这也是最令人头痛的问题。

在迈入实验阶段之前,请认真考虑自己是否有能力为技术的特定子集提供必要支持。

内容导航
 第 1 页:1-3位  第 2 页:4-7位

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。如发现有害或侵权内容,请点击这里 或 拨打24小时举报电话:4000070609 与我们联系。

    猜你喜欢

    0条评论

    发表

    请遵守用户 评论公约

    类似文章
    喜欢该文的人也喜欢 更多