2011年重要的软件开发发展

就像我在2007年2008年2009年和2010年所做的那样,我总结了我认为最重要的2011年软件开发活动。 所有常规警告仍然适用:此列表肯定是由个人经验,兴趣和偏见所决定的。

10.功能语言的流行

我回想不到2011年的一天,在浏览软件开发标题时,我并没有大肆宣扬功能编程优点 ,尤其是功能编程语言的优点 。 享受JVM中的函数式编程优势的能力一直是Scala吹捧的优势之一(有关Scala辉煌的一年,请参阅本帖子的荣誉提及部分)。 诸如Haskell (或JVM上的Jaskell )和LISP (由John McCarthy发明,在第9条中提到)之类的编程语言显然以其功能特性而闻名,但在2011年,我们看到了有关使用其他语言的功能方面的文章。 。 其中包括JavaScript的函数式编程 (2011年12月25日),IBM developerWorks系列的函数式思维:Groovy中的函数功能 (2011年11月22日开始)和Java的函数式编程 (2011年12月15日)。

JVM领域最近发生了许多与函数式编程有关的活动。 除了Jaskell,Scala和Clojure之类的语言外,还有Java的面向功能编程的Java框架,例如Guavafun4jlambdajop4jCommons Functor

关于用函数式编程语言编写代码, 布鲁斯·埃克尔(Bruce Eckel)写道 :“对我来说,关于函数式编程的最好的事情之一就是它产生的思维规律。 我发现它可以帮助我学习将问题分解为可测试的小部分,并阐明我的分析。 仅出于这个原因,这是一个值得的实践。”

函数式编程语言已经存在很长时间了,2011年甚至没有引起人们对它们重新产生兴趣 的开始 。 但是,2011年似乎是FP在主流软件开发博客圈和新闻界真正起飞的一年。

9.传说丢了

今年见证了多位杰出技术专家的死亡。 史蒂夫·乔布斯Steve Jobs )可能是其中最著名的,但同年我们也失去了丹尼斯·里奇Dennis Ritchie)约翰·麦卡锡John McCarthy)

肉体死亡并不是我们行业在2011年遭受的唯一损失。2011年10月Mark Pilgrim 撤消 了他的大量在线捐款。 这使人想起了为什么幸运的僵硬人在2009年以类似的方式删除了他的在线业务(贡献了相当多的Ruby)。

8. C ++:另一种“死”语言卷土重来

对于C ++而言,2011年是重要的一年。 C ++ 11 (AKA C ++ 0x )被批准并发布,这是C ++ 03以来的第一个新的标准化版本 。 C ++再次成为新闻,似乎正在经历与Java相似的振兴。 参见C ++及之后的2011年:Herb Sutter –为什么使用C ++? 举个例子。

正如有关并发性所提到的,Microsoft对其C ++ AMP加速大规模并行化 )引起了新的兴趣。 此外, 20117月的《 MSDN杂志》刊登了一篇名为《 为什么C ++仍很重要 的社论,作者说:“ [[MSDN读者]一直告诉我们的一件事是,我们不必像对待C ++那样疯狂地对待叔叔。阁楼。” Bjarne StroustrupFAQ“ C ++下降吗?”这个问题有一个有趣的答案

不,我不这么认为。 C ++的使用在某些领域似乎正在下降,而在另一些领域却正在上升。 如果我不得不猜测的话,我会怀疑在2002-2004年的某个时候出现了净下降,而在2005-2007年以及2010-2011年又出现了净增长,但是我怀疑有人真的知道。 大多数流行的措施基本上都测量噪音,应该以分贝而不是“受欢迎程度”报告其发现。 C ++的许多主要用途是在基础架构(电信,银行,嵌入式系统等)中,程序员无需参加会议或公开描述其代码。 许多最有趣,最重要的C ++应用程序没有被注意到,它们不作为编程产品出售给公众,并且从未提及其实现语言。 例如Google和“ 800”电话号码。 如果我在1985年想到了“ C ++ inside”徽标,那么今天的编程世界可能就大不一样了。

我认为Stroustrup关于C ++的许多说法以及缺乏在线覆盖对于通用Java也是如此。 用传统的Java编写语言并没有使用更新的语言编写语言那么令人兴奋或时髦,但是应该谨慎地假设某个主题的作者所占百分比等于用户所占的百分比。 C ++没有死

7. Java社区:OpenJDK和Java社区流程

对于OpenJDK来说, 2011年仍然是重要的一年。 2010年底, IBM加入了OpenJDK苹果随后又加入了OpenJDK 。 2011年, Twitter还加入了OpenJDKApache Harmony退休了。

Java社区中的其他重大新闻涉及Java社区流程 (JCP)。 JCP.next帖子JSR 348 —迈向 Java社区流程的新版本中描述了JSR 348 (“迈向Java社区流程的新版本”)。 这篇文章的结论是:“ Java社区的成功取决于开放和透明的JCP,因此JCP.next值得我们的赞扬和关注。” 该帖子列出了JSR 348的一些早期行动,包括“通过要求所有开发都在开放的邮件列表和问题跟踪器上进行来提高透明度”和“专家组成员的招聘过程将公开可见”。 目的是“建立一个更加公开,开放,可访问和透明的JCP”。

作为重要的一年,2011年是为Java社区的其他证据,我举了有史以来第一次的Java社区主题JavaOne大会期间, 2011 JavaOne大会 。 对我来说,Java社区似乎比过去几年更加充满活力和热情。

6. JavaScript

对于JavaScript来说,2011年是丰收的一年 。 首先,我的理由是DartCoffeeScript的 ,和Node.js的为“优秀奖”的发展(后来在这个职位)和我今年最大的赢家是HTML5的理由是证据和JavaScript在2011年的影响自己的甲骨文JavaOne 2011上 宣布 ,他们打算提供一种新的服务器端JavaScript实现( Project Nashorn ),以说明和测试对非Java语言JVM的支持以及在JVM上运行的高质量服务器端JavaScript的实现。 jQuery的成功(及其2011年的增长 )也是说明JavaScript日益重要的另一个例子。

5. Java的回归与Java的回归

2011年出现的一个重要趋势是几个著名的项目恢复了Java。 例如, Twitter将搜索架构Ruby on Rails迁移到Java / Lucene之后, 加入了Java Community Process最近的另一个例子Yammer将其产品的一部分从Scala迁移到Java 。 其他提供Java兴起兴趣证据的信息性帖子包括在OSCON Java 2011之前的Edd DumbillO'Reilly Radar 帖子Oracle技术网 的2011年我们最受欢迎的技术文章主要是与Java有关的文章。

亚历克斯·汉迪Alex Handy )在他的文章《 看2011年发生的事情:Java的回归》中,介绍了Java的近期积极方向。 他写道:“在经过漫长的休假以及Sun似乎无休止的抖动之后,Oracle正式为Java提供了所需的支持。 ……Java不再停滞不前。 ”

Markus Eisele的帖子将Java向前推进? 一个定义。 一年回顾。 总结了2011年Java领域的事件。Eisele引用了Oracle的口号“ Moving Java Forward ”,并将其描述为“可能是2011年的一句话。” 关于2011年,Eisele说:“对我个人而言,这是一个强大的Java年。”

有人可能会说,除了博客作者和顾问之外,大多数Java开发人员从未真正离开过Java。 这种论据的证据包括Java在TIOBE编程社区索引和编程语言评级(例如2011年十大编程语言 )中一直保持很高的排名(几乎始终是第一名)。 对于“ 死语言 ”,Java仍然非常受欢迎并且充满活力。

Java.net编辑凯文·法纳姆(Kevin Farnham) 从Java的角度总结了2011年 :“人们普遍认为2011年对于Java和在JVM上运行的语言来说是重要的一年。”

4.移动设备仍然风靡一时

去年, 移动设备开发在我的软件开发开发列表中占很高的位置,并且似乎继续在软件开发新闻和趋势观察中占据主导地位。 这并不意味着移动开发是最常执行的开发,而仅仅是意味着它得到了最多的关注。

随着移动设备的普及 ,移动开发将变得更加重要《经济学人》杂志的《不仅仅是谈话》指出:“手机是世界上分布最广泛的计算机。 即使在贫穷的国家中,也有大约三分之二的人有机会获得这一机会。”

我们不需要任何其他证据来证明移动开发的普及性,但是值得注意的是, Objective-CTIOBE编程社区指数中的高排名几乎完全是由于iPhone,iPad和iPod Touch等苹果移动设备的缘故。 一家公司的移动设备几乎单枪匹马地将编程语言从晦涩难懂的地方提升到了前十名。

3.云计算

我也将云计算放在去年的榜单上。 它仍然是软件开发中最流行的流行语,但对消费者和开发人员也具有现实优势。 我相信没有灵丹妙药 ,云计算不会改变这种信念。 但是,即使没有灵丹妙药,我们在软件开发行业也取得了长足的进步,前进的步伐不那么重要,而且云计算在某些情况下确实可以提供优势。 任何时候(在任何情况下),任何事物(包括云计算)都不是最适合所有人的,但是云计算无疑似乎使某些人和情况受益。

关于2011 云状态的好书是2011年:云计算震惊了数据中心 。 这篇文章重点介绍了私有云和公共云在2011年取得的进展。 本文中有一句话特别令人感兴趣:“通往简单之路似乎铺就了更大的复杂性。”

可以说(我认为是凯文·法纳姆Kevin Farnham)做到了 ),云计算在2011年受到了广泛的关注,但实际上在2011年并没有任何易于识别的重大发展。相反,许多小型发展和激烈的在线对话该主题的总和使云计算又迎来了又一年。

2.简化并发

2011年的主要趋势似乎是宣布各种语言如何简化编写高度并发的应用程序。 这是Scala和其他一些较新的JVM语言经常广为宣传的好处之一。 即使是JVM最古老的语言Java本身,也有望通过Java 8中的 lambda表达式 (在J2SE 5Java SE 7中进行重大改进之后)继续增强其并发支持(请参见Kevin Farnham的Java.net编辑Java的状态)。 :应对多核挑战,以取得不错的概览)。 微软对在其平台上开发并发应用程序的C ++表现出了新的兴趣。 具体来说, Herb SutterDaniel Moth讨论了C ++ 加速大规模并行化 (AMP)如何“为C ++引入了一项关键的新语言功能以及一个类似于STL的最小库,使您可以非常轻松地使用大型多维数组来并行表达数据。这些算法可以在GPU等加速器上展现出大量的并行性。”

Scala和函数式编程的日益普及并不是偶然的,因为人们对简化并发更加感兴趣。 马丁·奥德斯基已提出 (在OSCON Java的2011 ,为什么它是如此难以得到并发共享状态/内存是正确的)。 布鲁斯·埃克尔(Bruce Eckel)使我们想起了布莱恩·格茨(Brian Goetz)的演讲,该演讲提供了支持相同主张的重要证据。 Goetz在2011年1月的一次采访中谈到了Java 7并对此提供了更多支持:

改进的库不仅提供常用习语的预烘焙版本,而且开发人员通常可以通过限制程序中的共享可变状态来避开并发的复杂性。 如果您没有共享状态,则不必协调对该状态的访问,这就是麻烦所在。 功能语言是基于此原则构建的,但是我们不必为了获得好处而切换语言-我们只需要采用不变状态优于可变状态的方向,并寻求增加不变性并减少共享。 在Java SE 7中,我们将添加一个用于fork-join分解的框架,这将使编写跨各种硬件配置自动并行化的算法变得更加容易。

1. HTML5的优势持续

去年的软件开发重点文章中 ,我说过:“ HTML5似乎终于在主要浏览器中以及在Web开发人员和作者中引起了它的关注,值得关注。” 随着HTML5的Swift普及,许多人在2011年开始关注HTML5 。 HTML5接管了Web开发生态系统的迹象不胜枚举,因为它也侵入了移动设备 。 的确,可以说, 拥有一个通用平台以在众多移动设备上开发应用程序的愿望,一直是 HTML5成功兴起的最大动力。

HTML5成功的受害者越来越多。 我们 2011年第一季度获悉Google Gears已被淘汰 (2011年发生的许多Google项目修剪之一)。 Gears的消亡公告明确承认了HTML5的作用 :“我们已将工作方向转移到将所有Gears功能纳入HTML5之类的Web标准中。”

2011年晚些时候,Adobe宣布不再开发用于移动设备的Flash Play,并Swift跟进该声明,并宣布Adobe将尝试向 Apache 捐赠Flex (已经开源,但在Adobe的领导下) 软件基础 。 当然,许多Flex开发人员希望这不仅仅是Adobe使用开源作为垃圾场的方式 。 在解释有关Flex的问题中关于Flex的决定时, Flex博客承认:“从长远来看,我们认为HTML5将是用于企业应用程序开发的最佳技术。” 在宣布放弃移动Flash Player取而代之的是AIR和HTML5时,Adobe表示:“ HTML5现在在主要移动设备上得到了普遍支持,在某些情况下是唯一的。 这使HTML5成为在跨移动平台的浏览器中创建和部署内容的最佳解决方案。”

Microsoft提供了更多有关HTML5动量具有说服力的示例。 Windows 8Windows Phone 7 Metro的 早期详细信息在Silverlight社区中有些害怕,例如微软已放弃Metro IE中的Silverlight和所有其他插件的帖子所证明的, Microsoft 是否杀死了Flash,Silverlight?Silverlight开发人员通向地铁的最顺利之路

HTML5仍未完全解决 (尚无法 使用HTML5完成的五件事 ),但似乎已经是胜利者。

荣誉奖

这些主题并没有使我成为2011年的十大主题,但是非常接近。

JavaFX似乎可以保留

JavaOne 2010上 ,Oracle宣布将弃用JavaFX Script,并宣布了有关JavaFX 2.0的其他计划。 但是,正是在2011年(再次在JavaOne上 ),Oracle宣布了开放JavaFX的计划并通过Java Community Process将其纳入标准Java中,从而重申了JavaFX的未来。 JavaFX 2.0现在随Oracle的JDK 7 Update 2一起提供 。 甲骨文的声明和行动使我相信JavaFX终将有未来。

现在,Oracle的JDK 7 Update 2中包含JavaFX SDK,Oracle的Java 7 Update 2 JRE中包含JavaFX运行时,JavaFX将可以在更多机器上使用。 JavaFX包括对与HTML5集成的一些支持,并且可能会添加对该集成的其他支持,这应会增加JavaFX的采用。 对于JavaFX,2011年可能是最大的一年。 不能使我进入前十名的唯一原因是,我相信开发社区感兴趣的部分仍然相对较小,但是在不久的将来可能会改变。

Node.js

Node.js平台在2011年总体上表现不错。尽管它成立于2009年,但在2011年似乎引起了媒体的广泛关注。除了2011年关于Node.js的大量博客文章和文章之外,还有几本书可供使用今年。 其中包括Node Web Development2011年8月 ), 动手Node.js2011 5月 )和Node Beginning Book2011年10月 )。 预计2012年将出版两本书:节点:启动和运行:具有JavaScript的可扩展服务器端代码编程Node.js:在JavaScript中构建事件化的I / O应用程序

并非每个人都对Node.js着迷 ,如Node.js所示, 是癌症,Node.js中的混合报告是否最适合Comet?

斯卡拉

对于Scala来说, 2011年是丰收的一年。 今年5月, Greylock Partners (风险资本家) 新成立的 Typesafe 投入了300万美元Typesafe是由Scala创造者Martin OderskyAkka创造者JonasBonér同月创立的Scala / Akka公司。

近年来,Scala受到了广泛的关注,并且在2011年似乎有所上升。我经常阅读有关Java或其他JVM语言的帖子的评论,这些帖子吸引了一些Scala用户,他们指出,在此帖子中讨论的任何任务在Scala中将变得更容易。 布鲁斯·埃克尔Bruce Eckel )在2011年撰写了《 Scala:感觉动态的静态语言》 。最近,在我关于Scala的最新社区对话中,Scala也受到了负面报道。

我相信这样的讨论的存在以及人们实际上一起关心讨论的事实表明,Scala处于进入主流的阶段。 Barb DarrowGigaOM上的文章(同一网站上发表了“ 为什么现代应用程序需要 Greylock Partners的两位作者提出现代工具要求” ), Scala着眼于Java忠实信徒中的顶级地位,这表明Typesafe的人们也有类似的感觉(比我更接近情况)。 Darrow的文章开始说:“为了听到Typesafe的话,Scala编程语言即将加入Java,C ++,Ruby和PHP等顶级开发工具的行列。 用于Eclipse集成开发环境(IDE)的新Scala插件应有助于铺平道路。”

说到Scala和Eclipse,本月宣布已经发布了Scala IDE V2.0 。 关于Scala的最常见的抱怨之一是缺乏工具支持,因此绝对值得欢迎。

在2011年斯卡拉的其他新发展包括第二版的发布程序在斯卡拉 (不同的方式在不同的地点和范围上市的发布日期从2010年12月至2011年1月)和礁HORSTMANN公告即将出版的新书斯卡拉不耐烦 (其中Typesafe提供了免费预览 )。

与过去一两年的情况一样,Scala继续“错过”,使我成为该年度十大软件开发人员。 我相信2012年对于Scala来说将是重要的一年,因为我对Scala的看法是,在采用方面,它正处于一个重要关头。 目前看来,在采用方面,它确实会起飞或变平,到2012年它可能会变得更加清晰。

云和服务中断

今年发生了一些大型且明显的中断。 通常高度可靠的Blogger(我的博客的托管人)已经停了大约24小时,而Amazon的EC2 在2011年也出现了故障 。 有关仅在2011年上半年的云中断列表,请参阅2011年(迄今为止)的10大云中断

任何依赖于单点故障的架构或基础设施都可能最终因该决定而受苦。 这些故事只是提醒我们,这也适用于云。

Google Chrome和Firefox

Chrome作为首选网络浏览器的采用率持续上升据报道, Chrome 15( StatCounter 最受欢迎的 单个Web浏览器 (按特定版本)。 很难确定哪个浏览器最受欢迎,因为这取决于哪个网站在进行计数,但是在采用率方面,Chrome肯定已经赶上了Firefox

我在12月16日至12月23日期间的一周内查看了自己博客的Blogger统计信息 ,其中的突破(不特定于版本)是Firefox占39%,Chrome浏览器占23%,Internet Explorer占20%。 接下来显示包含这些统计信息和其他浏览器的快照。

Chrome的Swift普及似乎使Firefox处于劣势。 但是,有报道称Google向Mozilla 支付巨额费用 ,使Google成为Firefox的默认搜索引擎,这表明Firefox仍然存在。 Chrome工程师:Firefox是合作伙伴,而不是竞争对手一文引用了Chrome小组成员Peter KastingGoogle+上的一则文章 ,其中Kasting解释了他对Google为什么与Firefox达成近10亿美元交易的看法:

不管我尝试多少次,人们似乎都无法理解Google为什么要构建Chrome。 这非常简单:Chrome的主要目标是使网络尽可能快地前进。 而已。 Chrome是否真正吸引了大量用户,还是网络发展,这是与其他目标完全无关的,因为其他浏览器供应商加强了他们的游戏并生产了更好的浏览器。 无论哪种方式,网络都会变得更好。 任务完成。 结束。

伍迪·莱昂哈德 Woody Leonhard) 写道 :“ Google现在比以往任何时候都更需要Firefox。” 莱昂哈德(Leonhard)还观察到:“钱是在搜索中,而不是浏览器。”

Firefox 在2011年取得了自己的进步 。 博客文章Firefox:2011年开始,“ Firefox在2011年使Web变得更加强大。” 它着重介绍了Firefox 4的发布,适用于Android的Firefox以及Firefox如何“不向业界引入”。 该帖子还包含“ Firefox:2011”信息图(如下所示,带有原始链接 )。

谷歌发布 Dart编程语言的举动让人联想起Go编程语言发布 ,在2011年引起广泛的讨论 。 Lars Bak 宣布 Dart称该语言为“一种用于构建Web应用程序的基于类的,可选键入的编程语言。” Bak继续指出,Dart旨在成为“用于Web编程的结构化但灵活的语言”。 Bak在另一次采访中表示 ,称Dart为“ JavaScript杀手 ”实在是太夸张了。 话虽这么说,JavaScript肯定有其缺陷,而Google拥有使Web技术成功的力量(但有些失败 )。

Dart可以编译为JavaScript(让人联想到Google Web Toolkit的Java-to-JavaScript编译),也可以在Web浏览器中的虚拟机中运行。 Dart是一种开源语言,可从http://www.dartlang.org/获得

CoffeeScript

说到编译成JavaScript, CoffeeScript在其主页上被描述为“一种编译成JavaScript的小语言”。 该主页上还添加了“ CoffeeScript是一种尝试以简单的方式公开JavaScript的好部分的尝试。” 关于这种语言的书《 CoffeeScript:加速JavaScript开发 》于2011年出版。

NoSQL

近年来, NoSQL引起了巨大的发展热议,但是Oracle 2011年进入 NoSQL世界使2011年尤其值得关注。 CouchBaseSQLiteUnQL非结构化数据查询语言 )上进行合作的宣布也可能导致NoSQL数据库的采用增加。

大数据

清楚地说明了为什么2011年对大数据来说是重要的一年,
2011年最大的大数据故事麦肯锡全球研究所 将大数据称为 “创新,竞争和生产力的下一个前沿”。

NetBeans

NetBeans团队的2011年年终消息使我们想起了NetBeans IDE 2011年的重大发展。 该消息指出,“对于NetBeans来说,2011年是里程碑式的一年,我们的活跃用户已突破1,000,000。” 该消息还补充道:“我们还发布了NetBeans IDE 7.0和NetBeans IDE 7.0.1,并为许多其他项目的成功奠定了基础。” 该消息还指出, NetBeans 7.1 (当前在候选版本2中)有望在2012年初发布。NetBeans7.1的主要功能之一是对JavaFX 2.0的支持。

科技工作市场卷土重来

2011年,包括软件开发职位在内的技术工作机会似乎正在增加。 丹·泰南Dan Tynan)写道:“现在也许只是片刻而已”,再对自己说:“我很高兴我选择了技术职业。 ”

单核细胞增多症

Mono是“跨平台…基于C#和公共语言运行时的ECMA标准的Microsoft .Net Framework的跨平台… 开源实现 ”,在2011年度过了丰收的一年。2011年的Mono涵盖了Mono的2011年,并指出,“ 2011年显示了使用Mono构建的应用程序的爆炸式增长。” 在与Mono有关的数项开发中,最引人注目的是下岗的 AttachMate / Novell Mono团队成员创建Xamarin 。 对于一个开源项目,这无疑是受欢迎的消息,当时有人担心它注定要失败 。 今天,Mono承诺“在iOSAndroid和Windows Phone 7之间共享代码”。

开发者

“DevOps的”仍然是一个大肆宣传的概念在2011年我还是很难理解这是怎样运动帮助我还是会帮我,但我不明白的问题,移动/努力旨在解决Wikipediadevop定义为“用于在软件开发(应用程序/软件工程)和IT运营(系统管理/基础结构)专业人员之间进行通信,协作和集成的一组新的原理,方法和实践。” 尼尔·麦卡利斯特 Neil McAllister称devops为 “ IT的最新纸老虎”。

相互联系

我在2011年的前十名列表和荣誉提名部分中引用的大多数项目与列表中的至少一个其他项目高度相关,并且经常与多个项目高度相关。 例如,函数式编程Scala使并发变得更容易,而约翰·麦卡锡(John McCarthy)的丧失都与之相关。 同样,JavaScript与HTML5,Dart,CoffeeScript,移动设备,云开发和Web浏览器有关。

结论

2011年又是软件开发行业取得重大发展和进步的一年。 这篇文章中汇编的清单表明了这些进步的广泛程度,影响了不同的编程语言,不同的部署环境和不同的利益相关者。 当人们认为这是一个由单个人编写的清单时,很快就会发现,实际晋升的幅度远远大于这些有偏见的清单。

参考:我们的JCG合作伙伴 Dustin Marx在Inspired by Actual Events博客上提出的2011年重要软件开发 进展

相关文章 :


翻译自: https://www.javacodegeeks.com/2011/12/significant-software-development.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值