在每个日历年末,我想总结一下在这一年末发生的软件开发行业中一些最重要的发展。 这些选择完全是主观的,显然是由我自己的经验,背景,看法和偏好所引起的。 现在,我不用担心这样一篇博文的内容,我将介绍我认为在2013年最重要的软件开发方面的发展。
10.摇篮
在我看来, Gradle在2013年以很大的方式进入了软件开发人员的主流意识。一段时间以来,我一直在观看Gradle的开发并使用它,但是我注意到现在有很多开源项目都在其中突出地提及它,它在许多最近出版的Java书籍甚至不是关于摇篮特别提及,而谷歌选择的摇篮与在谷歌宣布我其Android Studio产品交付/ O 2013年过了好一会儿了Maven的突破,并与竞争蚂蚁和我认为2013年是Gradle突破性挑战的开始,该挑战旨在挑战Maven和Ant在基于Java的构建系统中的优势。 三本专门介绍Gradle的书(简称Gradle:超越基础知识 ,更全面的Gradle在行动中以及German Gradle:Modernes Build-Management – Grundlagen und Praxiseinsatz )已列出了2013年出版日期。
Gradle Swift增长的知名度几乎与其令人难忘的新版本相提并论。 Gradle 1.4 (“使用较少堆空间的更快构建”), Gradle 1.5 (“对依赖项解析的优化”), Gradle 1.6 (改进的任务排序,“用于测试覆盖的JaCoCo插件”以及对JUnit测试类别的支持), Gradle 1.7 (“有史以来最快的Gradle”), Gradle 1.8 (性能改进和更多本地语言支持), Gradle 1.9 (错误修复和HTML依赖关系报告 )和Gradle 1.10 (“命令行可用性功能”)均于2013年发布。
Gradle的成功并不令我感到惊讶。 仅Groovy基础就具有许多优点:与XML相比,Groovy脚本比XML更易于编写过程构建样式的代码; Groovy具有许多语法快捷方式; Java开发人员可以轻松地学习和应用Groovy; Groovy具有完全的JVM访问权限; Groovy包括在Ant支持下。 除了在Groovy上构建的固有优势之外,Gradle在该Groovy基础之上还建立了许多有用且有吸引力的功能。 Gradle遵循一些Ant和Maven约定,并支持Ivy和Maven存储库,从而可以轻松地从Maven或Ant + Ivy迁移到Gradle。
Ruby on Rails帮助将Ruby纳入国际主流地位,在较小程度上, Grails为Groovy做了同样的事情。 Gradle有潜力在Grails离开的地方继续前进,并将Groovy进一步推向聚光灯。
9.单一语言发展趋势
几年来,向多语言编程一直有明确的趋势( 多语言持久性甚至出现在该帖子的去年版本上)。 尽管这种趋势可能会持续下去,因为某些语言比其他语言更适合脚本编写,某些语言比其他语言更适合于Web开发,某些语言比其他语言更适合于桌面开发,某些语言更适合于实时和嵌入式设备开发与其他语言相比,某些语言比其他语言更适合于科学计算,依此类推。 但是,我已经看到迹象表明摆锤至少最近回摆了一点。
支持Node.js的理由之一是JavaScript开发人员能够在Web应用程序的“前端”使用与“后端”相同的语言。 Antonin Januska 在2013年我学到的关于开发的热门事物中 ,写道:“使用相同的语言背对背工作真是太棒了。” 当然,这就是Java开发人员在某些情况下一直拒绝为其Java应用程序的前端使用JavaScript,Flex或JavaFX Script (现已弃用 )的原因(以及Google Web Toolkit之类的工具如此受欢迎的原因) )。 编写桌面应用程序的 Java开发人员(是的,弗吉尼亚州确实存在 桌面应用程序 )经常会体验到从前到后使用相同语言的优势。
Ceylon最有前途的可能性之一是可以在Java虚拟机和JavaScript虚拟机上运行的Ceylon中编写代码的能力,因此可以在基于Ceylon的应用程序中前后使用。 确实, Ceylon页面上做了广告,“ [Ceylon]在Java和JavaScript虚拟机上运行,弥合了客户端和服务器之间的鸿沟。” 通常与Java虚拟机关联的语言(例如Scala和Kotlin)也提供了编译为JavaScript的功能。
在许多环境中回到单一语言的趋势的最后一个例子是科学计算的同质化一文中介绍的Python在科学计算中的使用,或者Python为什么一直在稳步吃其他语言的午餐 。
我并不是说这种趋势意味着将来将只有一种主要的编程语言。 但是,我确实相信,尽可能多地使用相同的语言或方法是人类的天性,因为这是我们所熟悉的,使用相同的语言有助于我们在同一应用程序中更广泛地利用我们的经验。 趋势似乎是,每种主要语言(C / C ++,Java,JavaScript,Python,.NET语言等)都将继续建立自己的“堆栈”,以支持该语言中的端到端功能,并且其框架,库和工具的生态系统。 当一种新语言开始被广泛采用时,它很快就会开始看到各种框架,库和工具包的开发,以扩展该语言的应用范围,这并非巧合。
我也不想暗示这是多语言编程的结束。 我看不到任何一种在所有情况下都最适合的编程语言,毫无疑问,最有价值的开发人员将是那些熟悉多种编程语言的人。
8.物联网
我在JavaOne 2012上第一次听说了物联网的概念,在JavaOne 2013上得到了更多的关注。 甲骨文不是唯一一家吹捧物联网的公司 。 与许多其他公司一样, IBM也在进入物联网 。
有人认为2014年将是物联网之年 。 Tori Wieldt将“ Java和物联网”称为“ 2013年Java顶级故事 ”之一。 2013年, Hinkmond Wong的Weblog中的两个系列着重介绍了物联网,并在感恩节土耳其高音扬声器和圣诞节圣诞老人探测器上发表了特色文章。
其他有关物联网的不同见解的有用文章包括:物联网:纠结的网络 , 这 是物联网中 最可怕的部分,物 联网将变得巨大—只是不如炒作那么大 , 面临五个挑战物联网生态系统 , 物联网将在2014年面世, 2013 年国际消费电子展(CES) :物联网的突破年 , 这就是为什么“物联网”将变得巨大并为人们和人类带来巨大价值的原因业务 。
在与物联网相关的较轻(或更可怕,视您的观点而定)的注释中, 亚伦·普雷斯曼写道 :“整个疯狂的“物联网”运动将所有内容置于网络控制之下,似乎是为Hal量身定制的”( 2001:太空漫游( )。
7.移动开发
如果不熟悉我们行业的人开始阅读我们的软件开发社交媒体网站和论坛,那么该人可能会得出这样的结论:当今绝大多数软件开发都是移动应用程序的开发。 长期以来,我一直在争论博客文章和文章通常会朝着比既定主题倾斜的前沿主题,原因有多种(在感知/现实中,既定主题已经被充分发现,恢复建设,与新事物一起玩和写作的乐趣)等)。 话虽如此,毫无疑问,移动开发在现实中不仅在感知上很流行。 毫无疑问,HTML5的普及和快速采用的很大一部分是用一种可以在多种移动设备上运行的语言(HTML / JavaScript / CSS)编写应用程序的机会。 正在发布大量项目和工具,以允许用一种语言编写应用程序并将其编译为各种移动设备的本机格式。
6.响应式设计
Pete Cashmore在2012年底预测,由于其“明显的好处”,2013年将是“ 响应式Web设计年 ”:“您只需构建一个网站,它便可以在数千个不同的屏幕上无缝运行。” 我喜欢Jordan Larkin 对响应式网页设计的解释 :
术语“响应式网页设计”(或响应式移动设计 )是指会更改和调整其外观以在所有屏幕尺寸,平板电脑,智能手机,iPod,Kindle和台式机和笔记本电脑屏幕上进行最佳观看的网站。 有时,在数字艺术行业中,它被称为“流体设计”,“自适应网站设计”或“ RWD”。 没有响应的网站不会更改以适应不同的屏幕尺寸,这意味着它们可能难以在较小的设备上浏览和查看。
作为一个使用智能手机进行日常在线活动的人越来越多,但仍然经常使用笔记本电脑和偶尔使用台式机的人,我很感激网站作者,他们的网站和页面在所有这些设备上都能正常工作。 从消费者的角度来看,拥有两个不同的网站(一个用于移动设备,另一个用于其他所有功能)通常是令人满意的,但这显然意味着对于站点开发人员而言,实质上是重复的代码。 即使从消费者的角度来看,有时我会发现网站的移动版本缺乏功能,在这种情况下,最好在所有设备上都安装常规网站,只要该常规网站在所有设备上都能很好地显示设备。
内容丰富的网站A List Apart提供了一系列与响应式Web设计相关的文章。
5. Node.js
尽管有缺陷, JavaScript多年来一直主导着Web浏览器。 尽管服务器上JavaScript已有一段时间(例如Rhino和Java中的Nashorn等)已经可用了一段时间,但是Node.js似乎正在为服务器上JavaScript做事,就像Ruby on Rails对Ruby所做的那样:该框架正在普及该语言。 (或在这种情况下,专门在服务器上普及该语言)。
对于Node.js来说,2013年是重要的一年。 似乎每天都有大量博客和文章写在上面。 其中一些文章包括您需要了解的关于Node.js的知识,并且Node.js不断窃取Rails的风头 。
2013年出版了几本有关Node.js的书。这些书包括:《 Node.js的实践》 ,《 学习Node.js:以JavaScript构建Web应用程序的动手指南》 ,《 Node.js正确的方法:实用,服务器端JavaScript》可以扩展规模 , 面向开发人员的Pro Node.js , Node.js食谱:一种问题解决方法 , 掌握Node.js , 使用Node.js进行UI测试 , 在服务器上使用Node.js和ExpressJavaScript以及最终版本节点入门书 。
4.大数据
与去年相比, 大数据在我的榜单上排名第四。 Apache Hadoop和R Project只是伴随大数据浪潮的流行产品/语言的两个示例。 Python也越来越多地被选作处理大数据集的编程语言。
java.net的读者最近回答了一项有关大数据的调查,其中与共识最接近的事情似乎是“ 大数据可能很重要,但并不令人惊讶” 。
3. HTML5
HTML5最初引起了人们的炒作,但有一段时间令人失望 ,并且似乎又恢复了其Swift普及的趋势 。 我不会在本文中单独提及JavaScript ,而是将其与HTML和CSS一起作为HTML5的一部分(在本文中也与Node.js一起进行分组)。 鉴于此博客文章中HTML5代表了所有这些内容,因此它很容易成为我在2013年开发软件的前三名。如前所述,关于移动开发,HTML5是一种流行的生成应用程序的方法,理论上可以在任何移动设备上运行。
在主要浏览器中,HTML5功能的标准化程度正在不断提高。 像Angular.js和Ember.js这样JavaScript / HTML库是建立在jQuery近年来为HTML5开发带来的势头之上的。
HTML5的成功甚至在不被视为HTML5本身的语言中也很明显。 例如, Java EE 7最广为人知的 新功能之一就是对HTML5的支持 。 NetBeans IDE的最新版本(尽管支持多种语言,但主要考虑是Java IDE)似乎也将HTML5视为2013年最重要的新功能之一。
2.安全性
随着越来越多的信息在线上,并且我们越来越依赖在线数据的可用性,安全性仍然是软件开发人员的重要问题。 高可见性安全事件的趋势在2013年继续。这些事件影响了Ruby on Rails , Java和其他语言。 安全补丁程序的频率越来越高,导致Oracle改变了它对Java SE版本的标签方式 。
2013年初的一篇文章,“ 保护您的代码:开发人员的17个安全技巧”概述了开发人员可以用来提高其应用程序安全性的技巧。 2013年早些时候的一篇文章阐明了公司面临的越来越多的安全问题。 2013年还出版了《 Java编码指南:关于可靠和安全程序的75条建议 》一书。2013年的10大安全故事概述了2013年与安全相关的一些最大故事。
1.技术功能障碍
可悲的是,从软件开发的角度来看,2013年可能是最令人印象深刻的技术故障。 这些问题与“崩溃”,“灾难”和“崩溃”之类的词相关,无论对与错,对我们的行业影响不大。 最引人注目的功能障碍是令人尴尬的美国医疗保健网站Healthcare.org 。 但是,影响声誉和客户信心的问题不仅限于政府。 美国的两家主要零售商沃尔玛和塔吉特在2013年下半年也出现了明显的网站问题。 影响云的技术功能失常在2013年发生在几个著名的案例中,包括Amazon Web Services (AWS)和Google (包括搜索引擎 )。
似乎有很多责备可循,但是很难准确地了解造成这些引人注目的技术故障的原因。 例如,在Healthcare.org中,我看到人们责怪所有类型的罪魁祸首,包括没有花足够的时间进行努力 ,不够敏捷,过于敏捷, 尽管采用了敏捷方法而失败,无法正确估计用户负载,尽管真正的原因可能是多种多样的,并且可能引起软件开发人员的关注,但真正的原因可能是在2013年。
尽管下面列出的软件开发方面的发展并没有进入我的前十名,但它们对我来说意义重大,足以使它成为“荣誉奖”类别(不分先后或暗含顺序)。
JSON格式
XML多年以来的优势之一就是XML在各种语言,工具,框架和库中的普遍支持。 例如,我最近写了一篇关于使用Groovy 搜索Subversion日志的简单操作的信息,因为Subversion使它的日志输出以XML格式可用,并且Groovy非常了解XML 。
JSON在开发人员中已经很流行了一段时间,但是在许多情况下,支持XML的标准库和工具不支持JSON,这意味着开发人员在使用这些库和工具时必须为JSON编写自定义的编写/读取代码。 。 我现在开始看到对工具和库的更多JSON支持。 编程语言还提供了不错的JSON解析/编写功能。 例如, Groovy已经对JSON进行了一段时间的支持 ,而Java EE 7 ( JAX-RS 2.0 )则通过JSON的Java API包括了对JSON的支持 。
JSON在2013年的表现十分突出,以至于可以保证在2013年出版的两本Packt Publishing书中都包括: JavaScript和JSON Essentials以及使用JAX-RS 2.0,WebSockets和JSON开发RESTful服务 。
Java EE 7发布
Java EE 7于2013年正式 发布 。为证明Java EE的当前广泛使用和预期的Java EE 7潜在用途,图书出版商已经出版了数本有关Java EE 7的书籍,包括Java EE 7 First Look , Java EE 7 Essentials , 从Java EE 7开始 , Java EE 7食谱:一种解决问题的方法 ,向您介绍Java EE 7:新功能和Java EE 7开发人员手册 。
尽管我从未使用过JavaServer Faces(JSF),但对我来说最有趣的Java EE 7功能是对Faces Flows的支持。 我在回顾Java EE 7 First Look和Neil Griffin的文章JSF 2.2 Faces Flows的三篇欢呼时首先读到了有关此功能的信息,这增强了我对该功能的兴趣。 Reza Rahman在“ 现实的JSF 2.2 Faces Flow示例”一文中支持我的观点,即这是Java EE 7的一项关键功能,请引述“ Faces Flows是Java EE 7中最好的隐藏宝石之一”。 Michael和Faces Flows可能会说服我让JavaServer Faces焕然一新。
最近的博客文章显示了AngularJS与Java EE 7的集成 。
单页应用
与桌面应用程序相比,Web应用程序相对于桌面应用程序的优势始终是其易于部署的显着优势。 但是,与台式机相比,这种体验的流动性较低,有时应用程序的性能较低。 单页应用程序的概念是使Web(以及扩展为使用传统Web技术的移动应用程序)的感觉和行为更像是“单页”桌面应用程序。 诸如Meteor之类的较新JavaScript库正在设计用于单页面应用程序的“ thick client”风格。
单页应用程序上的Wikipedia页面列出了实现此概念的一些技术方法 。 曼宁(Manning)的 《 单页Web应用程序》也于2013年发行。其副标题为“ JavaScript端到端”(这是向单一语言发展的另一条证据)。
有关Web开发如何朝着本质上是单页面应用程序概念迈进的又一很好的解释,请参见下面对Meteor的描述。
AngularJS
似乎如果没有碰到AngularJS,就无法阅读任何软件开发社交媒体网站。 尽管其Google根源无疑是其成功的一部分,但 AngularJS可以通过完全满足HTML / JavaScript开发中的重大需求而获得成功(将适当的动态功能从纯JavaScript转换为具有巧妙绑定HTML)。 Dmitri Lau在他的文章《 为什么应该使用AngularJS的十个理由 》中指出:“ Angular是唯一不会使MVC看起来像在给猪涂口红的框架。” 耶稣·罗德里格斯 ( Jesus Rodriguez )在他的文章Angular.js为什么会摇摆? 写道,AngularJS“在创建单页面应用程序方面甚至在向我们的经典Web应用程序添加一些“魔术”方面都表现出色。” K. Scott Allen在他的文章中写道“ 为什么要使用AngularJS? ,“我喜欢Angular,因为我在框架顶部编写代码很有趣,而且框架不会妨碍您。”
Ember.js
Ember.js是另一个JavaScript库,在2013年有大量在线报道。Ember1.0于2013年8月31日发布 , Ember 1.2.0于2013年12月4日发布。
像AngularJS和Knockout一样, Ember.js的方法是包含HTML和CSS,而不是尝试将它们抽象化。
著名
目前, famo.us网页需要先“注册Beta版”,然后才能“体验famo.us”。 它的副标题是“解决HTML5性能JavaScript引擎和框架”。 famo.us的另一页指出,“ famo.us是解决HTML5应用程序性能的前端框架”和“适用于手机,平板电脑,计算机和电视的作品”。
在2013年下半年的InfoWorld帖子中讨论了Famo.us: 这些家伙是否只是在重塑网络? 以及快速且浮华:Famo.us JavaScript框架已公开 。
目前,famo.us仍处于测试阶段,但如果能够实现2013年发布的广告,它在2014年可能会很大。
流星
流星在其主页上被描述为“一个开源平台”,用于编写“用纯JavaScript编写的整个应用程序”并在客户端和服务器上使用“相同的API…”。 在Paul Krill的采访中, Meteor旨在再次使JavaScript编程变得有趣 , Matt DeBergalis表示, Meteor的创建是为了解决不断变化的Web开发范例(通常称为单页应用程序):
Web应用程序平台正在发生变化,特别是人们开始编写一种新型的应用程序,我们称之为胖客户端,其中大多数代码实际上在Web浏览器本身而不是数据中心中运行。 。 这是架构上的变化,从在数据中心中运行软件并将在线发送HTML到模型中,在模型中我们在线获取数据,然后在客户端上进行实际渲染,用户界面的显示。 …这就是为什么感觉更互动。 它不像旧网络那样基于页面。 更具吸引力。”
平均堆栈
机智的首字母缩写有助于宣传和交流LAMP堆栈 ( Linux , Apache HTTP Server , MySQL / MariaDB , PHP / Perl / Python ),并可以为采用这种技术组合做出贡献。 考虑到这一点,我发现Valeri Karpov的帖子The MEAN Stack:MongoDB,ExpressJS,AngularJS和Node.js很有趣。 该帖子的作者是另一位指出了在整个应用程序中使用单一语言可以获得的生产力优势的人。 已经有本书在进行中: 通过Mongo,Express,Angular和Node获得MEAN 。 有趣的是,观看这个新近诞生的术语,看看堆栈及其名称是否接近LAMP堆栈及其名称所享有的成功。
GlassFish 4的商业支持已删除
尽管花费的时间比大多数人可能预期的要长 ,但是Oracle对GlassFish 4的商业支持已于2013年正式宣布 ,这是我们大多数人在听到 Oracle收购Sun时所期望的。 现在,GlassFish的未来肯定是阴云密布,并且对GlassFish的未来的期望范围从本质上已经消亡到作为参考实现的繁荣 。
主要的Java IDE继续功能添加到其已经令人印象深刻的功能集于2013年的NetBeans有两个主要版本在2013年有7.3发布在2月和7.4在10月发布。 这两个NetBeans版本增加了功能,例如Java EE 7支持 ,用于HTML5开发的 Project Easel , Groovy 2.0集成 , JSON支持 ,对新JavaScript库(包括Angular.js )的支持, 本机Java应用程序打包 , Cordova集成以及对的改进支持。非JVM语言C / C ++和PHP 。
IntelliJ IDEA 13已于本月初发布 。 发布公告的亮点为Java EE 7的支持,提高了Spring框架的整合 ,提高Android的支持 ,以感谢的IntelliJ IDEA社区版被用作基础的Android工作室 ,提高数据库的处理,而“精摇篮的支持。” Eclipse通常是选择IDE来构建更专业的IDE的对象,例如Spring IDE ( Spring Tool Suite ), Scala IDE或新的Ceylon IDE ,因此Google选择IntelliJ IDEA作为其Android Studio的基础尤其重要。
说到Eclipse,看似最常用的基于Java的IDE (尤其是当您考虑从其衍生或基于它的IDE时)也在2013年发布了新版本。Eclipse4.3(Kepler) 于2013年发布 。 2013年还发布了许多流行的Eclipse 插件 。
Visual Studio 2013
Sun Microsystems并不是唯一一家可以在应用程序的所有层使用的单一语言都具有理想优势和收益的公司。 微软多年来为实现同一目标而进行了各种努力(Silverlight)。 在2013, Visual Studio的2013中发布与显著增强 。 这些增强功能包括改进了对不特定于Microsoft .NET框架的语言的支持。 我在这篇文章中列出了许多受更好支持的语言:JavaScript,HTML,CSS和Python。
Groovy
Groovy的2.0版本(包括静态编译支持)使Groovy成为2012年。 虽然2013没有看到在Groovy语言增强显著,今年也开始了与公布的Groovy的2.1 。 2.1发行版中最大的部分也许是Groovy对Java SE 7的invokedynamic的完全合并 ,后者是针对非Java语言(例如Groovy)的主要Java SE增强功能。
Groovy 2.2的发行版于2013年底宣布 。此发行版通过在基于Groovy的基于invokedynamic的JAR中添加OSGi清单,改进了Groovy的invokedynamic支持。
安德鲁·宾斯托克 ( Andrew Binstock)在《 Groovy难题 》中写道:“由于性能问题,Groovy是为广泛使用而准备的语言,”但警告Groovy是“易于学习但难以掌握的语言”。
正如这篇文章中不止一次提到的那样,由于GradleSwift普及,Groovy在2013年获得了很多额外的曝光。 我相信Gradle将继续向不熟悉Groovy的开发人员介绍Groovy,或者会激励那些一段时间没有使用过Groovy的开发人员再次查看它。
斯卡拉
在我看来, Scala在Java开发人员中继续受到欢迎。 我继续看到Scala爱好者在各种Java和JVM博客评论和论坛上涌现有关Scala的信息。 Scala持续流行并不断增长的证据之一是,2013年出版的以Scala为标题的新书数量。 这些内容包括: Scala in Action , Scala Cookbook:面向对象和函数式编程的食谱 ,Scala和Clojure中的函数式编程模式:为JVM编写精益程序 , Scala设计模式:实用重用和设计模式 ,Scala的使用 , Scala对象面向对象的编程 ,以及Scala的SBT入门 。
有关使Scala成为2013年的重要一年的更好背景,请参阅Jan Machacek的 《 Scala今年》 (2013年) 。
锡兰
2013年11月,“ Ceylon语言规范,编译器和IDE的第一个正式版发布”。 该公告可在Ceylon 1.0.0上在线获得 ,并且还声明:“ Ceylon 1.0是一种用于Java和JavaScript虚拟机的现代,模块化,静态类型的编程语言。” 锡兰提供基于Elipse的IDE,并具有正式规范。 锡兰成功获得成功的因素之一是其对红帽的赞助。
Kotlin
Kotlin是另一种语言,可编译为Java虚拟机或JavaScript虚拟机。 它还在IntelliJ IDEA背后的公司JetBrains中为Java世界提供了强有力的赞助商。 2013年出现了Kotlin的多个新版本 : Kotlin M5.1 , Kotlin M6 , Kotlin M6.1和Kotlin M6.2 。 我发现博客用Kotlin编程Android很有趣,因为它演示了如何使用Kotlin和Gradle来构建Android应用程序。
走
Go编程语言得到了Google的大力支持,并继续获得大量在线报道 。 Go 1.1和Go 1.2 (明显改善了性能 )都在2013年发布。我特别感兴趣的是Go宣传的所有版本1.x的源代码都向后兼容 。
骆驼
对于Apache Camel来说 ,2013年是重要的一年,该工具“使您能够使用多种特定于域的语言定义路由和中介规则。” 2013年与骆驼有关的发展包括2.11.0 版本,2.12.0 版本和2.12.2版本 。 这些频繁的发布以及新的提交者和PMC成员的加入是健康的开源项目的标志。
骆驼基本成分 ( DZone Refcardz #170)的发布在2013年拉开了骆驼的序幕。 Camel于2013年在软件开发社交媒体网站上得到了越来越多的关注。Zemian Deng的Java Java Apache Camel入门与 Java Code Geeks联合 使用 (他的Groovy Introduction的Apache Camel也是如此 ),而Niraj Singh的Apache Camel的简介则是。还联合了Java Code Geeks 。 到目前为止,AndrejV的整个博客Just Did Some Code (2013年有5篇帖子)致力于Camel的报道!
Spring靴
现在要说还很早,因为Spring Boot当前仅在0.5版本上 ,但是Spring Boot有潜力在将来被广泛采用和使用。 看起来Spring Boot受到Ruby on Rails和Groovy的启发并利用了其中的一些最佳思想,并将它们应用于基于Spring Framework的应用程序的轻松生成。
Python
如前所述, 大数据非常重要, Python正在分享这一大数据行动。 Continuum Analytics在针对大数据的Python中指出,“ Python是一种功能强大,灵活,开放源代码的语言,易于学习,易于使用,并且具有用于数据处理和分析的强大库。 …Python具有独特的组合,既是一种功能强大的通用编程语言,又是易于使用的分析和定量计算工具。” 塔尔·雅各尼(Tal Yarkoni)回应了这一说法,并观察到他的“科学计算工具箱正在稳定地同质化”在Python上。
Python 3.3.1 , Python 3.3.2和Python 3.3.3均于2013年发布。Cython加入了Pyrex,作为使用Python语法轻松编写C扩展的替代方法,甚至还有一本关于学习Cython编程的书。
文章Python 3.4.0带有大量新模块,进入了beta版,讨论了Python 3.4.0(beta)附带的一些新功能,例如标准枚举构造。 文章还指出,Python的最大不足之处仍然是:该语言的两个版本(2.x和3.x),以及从2.x到3.x的简单路由。 从Java开发的角度来看,我发现这很有趣,因为曾经有一段时间像Bruce Eckel那样的论点(“不想处理这些更改的人不会升级,而那些人无论如何都不会升级”) seemed logical and sensible. However, it's not quite as easy as it sounds, particularly when one starts to realize the impact of this on the entire set of products, libraries, and frameworks written for a language that can be heavily impacted and perhaps not usable for some time if ever with the new language.
PHP and HHVM
2013 saw the formal release of the PHP 5.5.x versions: PHP 5.5.0 , PHP 5.5.1 , PHP 5.5.2 , PHP 5.5.3 , PHP 5.5.4 , PHP 5.5.5 , PHP 5.5.6 , and PHP 5.5.7 .
At the beginning of 2013, Gabriel Manricks outlined reasons Why 2013 is the Year of PHP . Specifically Manricks described tools such as Laravel (including Eloquent ORM), Composer (dependency manager, including Packagist ), and PHPUnit ( test-driven development in PHP ).
The Facebook project HHVM ( HipHop Virtual Machine for PHP ) was initially released in 2010, but seemed to see a lot more attention in 2013. The original HPHPc compiler compiled PHP into C++ and was another manifestation of the drive to use a single language for authoring an application even if its compiled form was different. The availability of the open source HipHop Virtual Machine ( HHVM ) for PHP should help address performance issues with PHP; that is seemingly Facebook's primary reason for developing it.
Android Studio was announced at Google I/O 2013 as “a new IDE that's built with the needs of Android developers in mind” that is “based on the powerful, extensible IntelliJ IDEA Community Edition.”
云计算
Interest in cloud computing remained strong and continued to grow rapidly in 2013. Many of the other items discussed in this post (Big Data, security, technical dysfunctions, etc.) have strong relationships to cloud computing. For more on the biggest cloud stories on 2013, see The 10 Biggest Cloud Stories Of 2013 .
Internet Explorer 11
I have not used Internet Explorer except when forced to for a number of years. For a long time, I used Firefox almost exclusively and in recent years I've used Google Chrome almost exclusively on PCs and Firefox on Linux. When I have been forced by a particular web site to use Internet Explorer, I have done reluctantly and am reminded of the much slower performance of the browser than I'm used to in terms of startup and even navigation. I have noticed over this Christmas break, however, when I had to install Internet Explorer 11 manually because the automatic process kept failing, that it's a lot faster than even Internet Explorer 10 was. I still won't make it my primary browser, but it's nice that it performs much better when I do need to use it (such as to play Atari Arcade games without advertisements).
Internet Explorer 11 offers advantages for developers as well as users of the browser. Advertised benefits for developers (and by extension for users of these developers' applications) are improved standards compatibility , new F12 developer tools ,
It's not all positive for Internet Explorer 11. Some people seem to want to downgrade to Explorer 10 and reportedly Internet Explorer 11 is presenting some problems for users of Microsoft's own CRM application (after earlier reportedly breaking Google and Outlook access).
It surprises me a bit that the main Microsoft IE URL ( http://windows.microsoft.com/en-us/internet-explorer/download-ie ) referenced by the Internet Explorer 11 Guide for Developers still advertises downloading of Internet Explorer 9 , a version of that browser that Google has already stated they will no longer support .
Windows 8 Not As Successful
Windows 8 seems to be experiencing similar disappointment after Windows 7 that Windows Vista experienced after Windows XP. In fact, The 10 Biggest Software Stories Of 2013 states, “So it looks like Windows 7 will become the new Windows XP — better get those downgrade rights ready.”
树莓派
The Raspberry Pi continues to catch a lot of interest ( 2 million had been sold as of October of this year). There were seemingly endless posts on how to do a wide variety of things with the Raspberry Pi. Some of these that stood out most to me are Premium Mathematica software free on budget Raspberry Pi , GertDuino: An Arduino for Your Raspberry Pi , How an open-source computer kit for kids based on Raspberry Pi is taking over Kickstarter , Running OpenJFX on Raspberry Pi , and Simon Ritter: Do You Like Coffee with Your dessert? Java and the Raspberry Pi .
开发运维
The 10 Biggest Software Stories Of 2013 points out that “Cisco, Google and VMware last year invested in Puppet Labs ” and that “another DevOps player, Opscode, raised $32 million and changed its name to Chef , the name of its flagship product.”
Twitter的引导
Bootstrap (alternatively known as Twitter Bootstrap and Twitter Blueprint ) has become so popular and prevalent that there is now a popular (one of DZone's top posts in 2013 ) post stating Please stop using Twitter Bootstrap . 2013年8月, two years after the public release of Bootstrap , Bootstrap 3 was released (with 3.0.3 released in December ).
Everybody Should Code
The conversation of whether everybody should or code write code and develop software continued in 2013. Jessica Gross's writes about 10 places where anyone can learn to code and Megan O'Neil's article A Start-Up Aims to Teach Anyone to Write Computer Code features one of these places ( Codecademy ). Kevin Lindquist writes that software development isn't just for coders anymore . Katie Elizabeth lists the reasons why everyone should learn to code while Chase Felker wonders if maybe not everybody should learn to code .
In 2013, President Obama (United States) asked America to learn computer science and it may be one of the few things Republicans and Democrats agree on , but Philip Bump argues, No, Mr. President, Not Everyone Needs to Learn How to Code .
SQL Strikes Back
NoSQL implementations have been all the rage for years, but 2013 seemed to present some resurgence in interest in SQL . Some NoSQL implementations added SQL or SQL-like syntax. SQLstream announces Return of the King: The Structured Query Language Is Back! and Jason Levitt and Sean Gallagher write “ The hot new technology in Big Data is decades old: SQL .”
The truth is that SQL never really went away and is heavily entrenched in software systems, but what is really interesting 2013 is the new thought and effort put into SQL development. word of Google's F1 SQL database (“a hybrid database that combines high availability, the scalability of NoSQL systems like Bigtable, and the consistency and usability of traditional SQL databases”) is an example of this. Seth Proctor asks Do All Roads Lead Back to SQL? and writes of “NewSQL.” In Software Development Trends for 2014 , Werner Schuster states that “Many NoSQL DBs come with SQL or SQL-like languages” and asks, “Are SQL skills back in fashion?”
结论
2013 may be remembered in popular culture as the year of selfies , but the developments in the software development world were far more substantive. In particular, it is interesting to see how developers in general are beginning to (or are remembering to) appreciate the ability to write an application front-to-back in a single language and to write responsive designs to that an application need be written only once for multiple platforms. The advantages of these approaches are not new to JVM (Java/Java EE) or CLR (.NET) developers, but seem to now be better appreciated by the more general developer community.
Previous Years' Significant Software Development Developments
The following are my posts similar to this one on items that I thought were of special import to software development in those respective years. I could definitely go back and add to some of these with things I've learned about since then for each of these years.
- 2012
- 2011年
- 2010年
- 2009年
- 2008年
- 2007年
Reference: Significant Software Development Developments of 2013 from our JCG partner Dustin Marx at the Inspired by Actual Events blog.
翻译自: https://www.javacodegeeks.com/2014/01/significant-software-development-developments-of-2013.html