2017年最夺目的技术是机器学习和人工智能吗?也有人认为应该是Kubernetes(简称k8s),或者是Kotlin,亦或Vue.js。 美国国际数据集团(IDG) 旗下媒体InfoWorld近日评出如下年度最热门技术。让我们来一一回顾。
提醒:内容较长,请耐心阅读。
Kubernetes
Kubernetes作为Docker生态圈中重要一员,是Google多年大规模容器管理技术的开源版本,是产线实践经验的最佳表现。无论是公有云还是私有云甚至混合云,Kubernetes将作为一个为任何应用,任何环境的容器管理框架无处不在。正因为如此, 目前受到各大巨头及初创公司的青睐,如Microsoft、VMWare、Red Hat、CoreOS、Mesos等,纷纷加入给Kubernetes贡献代码。随着Kubernetes社区及各大厂商的不断改进、发展,Kuberentes将成为容器管理领域的领导者。
这里还是要推荐下小编的大数据学习群:532218147,不管你是小白还是大牛,小编我都欢迎,不定期分享干货,包括小编自己整理的一份2017最新的大数据资料和0基础入门教程,欢迎初学和进阶中的小伙伴。在不忙的时间我会给解答
Github安全警告服务
众所周知,现在开发软件已经变得不难,因为现在软件项目通常使用大量的依赖库。开发者虽然非常容易开发项目,简单而又方便了,但是一旦上游库有 Bug 将会影响到下游软件。
现在最大的开源软件开发平台 GitHub 宣布了安全警告服务,将搜索依赖寻找已知漏洞然后发送给开发者,以便帮助开发者尽可能快的打上补丁修复漏洞。GitHub 将会识别所有使用受影响依赖的公开项目,使用私有库的项目则需要选择加入才能使用安全警告服务。
Progressive web apps
Progressive Web Apps(以下简称 PWA)以及构成 PWA 的一系列关键技术的出现,能够显著提高应用加载速度、甚至让 web 应用可以在离线环境使用的 Service Worker 与 Cache Storage;用于描述 web 应用元数据(metadata)、让 web 应用能够像原生应用一样被添加到主屏、全屏执行的 Web App Manifest;以及进一步提高 web 应用与操作系统集成能力,让 web 应用能在未被激活时发起推送通知的 Push API 与 Notification API 等等。
GraphQL
GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时。 GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述,使得客户端能够准确地获得它需要的数据,而且没有任何冗余,也让 API 更容易地随着时间推移而演进,还能用于构建强大的开发者工具。
Vue.js
Vue.js是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。
Google Cloud spanner
Google正式推出了其最新的全球分布式关系数据库服务Cloud Spanner。据称,这项企业数据库服务支持ANSI 2011 SQL标准和ACID协议,拥有高达99.999%的可靠性和极强的兼容性,同时还具备低延迟的特性。为Google Cloud加分不少。
CockroachDB
CockroachDB,目标是打造一个开源、可伸缩、跨地域复制且兼容事务的 ACID 特性的分布式数据库,它不仅能实现全局(多数据中心)的一致性,而且保证了数据库极强的生存能力,就像 Cockroach(蟑螂)这个名字一样,是打不死的小强。CockroachDB 的思路源自 Google 的全球性分布式数据库 Spanner。其理念是将数据分布在多数据中心的多台服务器上,实现一个可扩展,多版本,全球分布式并支持同步复制的数据库。
Azure cosmos DB
Azure Cosmos DB 是由 Microsoft 提供的全球分布式多模型数据库。 只需单击一个按钮,即可通过 Azure Cosmos DB 跨任意数量的 Azure 地理区域弹性且独立地缩放吞吐量和存储。 它通过综合服务级别协议 (SLA) 提供吞吐量、延迟、可用性和一致性保证,这是其他数据库服务无法提供的。
Neo4j
Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。程序员工作在一个面向对象的、灵活的网络结构下而不是严格、静态的表中——但是他们可以享受到具备完全的事务特性、企业级的数据库的所有好处。
MapD
前哈佛/MIT计算机科学和人工智能实验室研究员Todd Mostak,开发出使用GPU的数据库分析和可视化平台 MapD。Mostak创办了同名创业公司去商业化MapD。今天MapD能在毫秒内处理数十亿个数据点,性能100倍于传统数据库系统,它还能在几乎瞬间可视化所有处理的数据,并可以随时修改参数调整可视化显示。
Apache Spark
Apache Spark是个开源和兼容Hadoop的集群计算平台。由加州大学伯克利分校的AMPLabs开发,作为Berkeley Data Analytics Stack(BDAS)的一部分,当下由大数据公司Databricks保驾护航,更是Apache旗下的顶级项目。在数据全部加载到内存的情况下,Spark可以比Hadoop快100倍,在内存不够存放所有数据的情况下快Hadoop 10倍。
Scikit-Learn
对Python语言有所了解的科研人员可能都知道SciPy——一个开源的基于Python的科学计算工具包。基于SciPy,目前开发者们针对不同的应用领域已经发展出了为数众多的分支版本,它们被统一称为Scikits,即SciPy工具包的意思。而在这些分支版本中,最有名,也是专门面向机器学习的一个就是Scikit-learn。
Scikit-learn项目最早由数据科学家 David Cournapeau 在 2007 年发起,需要NumPy和SciPy等其他包的支持,是Python语言中专门针对机器学习应用而发展起来的一款开源框架。
R语言
R语言是用于统计分析,图形表示和报告的编程语言和软件环境。 R语言由Ross Ihaka和Robert Gentleman在新西兰奥克兰大学创建,目前由R语言开发核心团队开发。 R语言在GNU通用公共许可证下免费提供,并为各种操作系统(如Linux,Windows和Mac)提供预编译的二进制版本。 这种编程语言被命名为R语言,基于两个R语言作者的名字的第一个字母(Robert Gentleman和Ross Ihaka),并且部分是贝尔实验室语言S的名称。
TensorFlow
人工智能开源神器。TensorFlow™ 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。它灵活的架构让你可以在多种平台上展开计算,例如台式计算机中的一个或多个CPU(或GPU),服务器,移动设备等等。TensorFlow 最初由Google大脑小组(隶属于Google机器智能研究机构)的研究员和工程师们开发出来,用于机器学习和深度神经网络方面的研究,但这个系统的通用性使其也可广泛用于其他计算领域。
PyTorch
2017 年初,Facebook 在机器学习和科学计算工具 Torch 的基础上,针对 Python 语言发布了一个全新的机器学习工具包 PyTorch。一经发布,这款开源工具包就受到了业界的广泛关注和讨论,经过几个月的发展,目前 PyTorch 已经成为从业者最重要的研发工具之一。
Kotlin
Kotlin 是一个基于 JVM 的新的编程语言,由 JetBrains 开发。Kotlin可以编译成Java字节码,也可以编译成JavaScript,方便在没有JVM的设备上运行。
Rust
Rust是Mozilla开发的注重安全、性能和并发性的编程语言。“Rust”,由web语言的领军人物Brendan Eich(js之父),Dave Herman以及Mozilla公司的Graydon Hoare 合力开发。
微软Olympus项目
微软与OCP联合推出了Olympus项目(奥林巴斯-是希腊东北部爱琴海附近的一座山峰的名字,古希腊认为那是神住的地方),该项目鼓励社区力量在硬件开发设计的早期参与进来,灵感来自软件开发社区,软件方面多年封闭的微软终于开源了,不过开源的是硬件,微软开始“祸害”那些搞硬件的传统厂商了。
总结:技术层出不穷,专一是王道。