设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 IT综合资讯 查看内容

Tim Bray:2014年软件之路

2014-2-13 10:37| 发布者: joejoe0332| 查看: 3026| 评论: 0|原作者: 埃姆杰|来自: 伯乐在线

摘要: 本文作者 Tim Bray 是一位加拿大软件工程师,也是 Open Text 公司和 Antarctica Systems 的联合创始人,也是 XML 规范的主要作者之一(有“XML之父”之称)。他在这篇文章中分享他对部分软件技术发展的一些看法。 ...

  本文作者 Tim Bray 是一位加拿大软件工程师,也是 Open Text 公司和 Antarctica Systems 的联合创始人,也是 XML 规范的主要作者之一(有“XML之父”之称)。在2004年至2010年期间,Bray 担任 Sun 公司 Web 技术主管。此后加入 Google 担任开发者大使(Developer Advocate),专注 Android 和 Identity。他在这篇文章中分享他对部分软件技术发展的一些看法。


Tim Bray

Tim Bray


  我们正处在构建软件的关键期。工具完善,服务端的开发者们很高兴,但说到客户端软件时,我们真不知去向何方。


  前段欢乐时光。构建起的服务端代码技艺精湛,感谢你们。技术的扩展与提炼将继续持续下去。


  一切都地能够与HTTP通信,而做到这点是很简单的。


  一切都由MVC及类似的抽象层构建,并且有许多框架帮我们清晰稳健地完成这项工作。很多人还在使用PHP或者Spring构建重要的应用不得不说是件遗憾的事情,虽然说这些新框架也没有强迫你使用它们。


  我们仍在为选择动态类型和静态类型苦恼中。最后,妥协的理由却很好理解:两种语言之间都有好与坏。我两种都会使用,并且某些时候,使用的理由是显而易见的。请参见Bánffy-Bray 准则


  并发


  函数式编程渐渐在主流语言界享有一席之地。而原因在于关注性能就一定会涉及并发的问题。而一般情况下,人无法处理大量(或者根本不能处理)并发的,极易改变的共享事务。


  许多人喜爱Erlang,虽然它能很优雅地处理并发,甚至提供备用方案,但是它并不能大规模地用在生产中,因为它的数据类型和类概念与其他语言不同。


  Clojure的并发基础是函数式的,高效且优雅。而Lisp式的语法则是缺陷(从经验上来说,如果你不能像我一样理解Lisp的妙不可言时),而Scala虽然比Java简单,并且有像模像样的Actor模型,仍然十分繁杂。


  NodeJS本身不是函数式的,如果处理的一切都是事件,并且可以单线程的话,谁会在乎呢?但是我仍然在对Node的JS部分十分不满,待会儿再说明。


  Go给我的印象深刻,虽然它采用了C、Java、Ruby、Clojure等语言的做法并不能使我开心一笑。我感觉它的类型系统提供了许多针对对象的实用工具,我强烈感到Goroutines和类型管道是非常出色的设计,开发者可以够顺利地写出函数式代码。这种做法容易,直接又可读性好,我考虑下一个重大项目的服务端代码使用Go语言编写。


  如果上面的这些都不符合要求,我们还考虑使用这些由高手打造的Rust、Elixir、Dart等语言。



酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部