编写代码的软件用什么编写的

这是10月22日至23日在北卡罗来纳州罗利举行的万物公开会议第一天的两个主题演讲的部分抄写。

Forrester Research副总裁兼首席分析师Jeffrey Hammond的主题演讲

如果您是一名开发人员,那么我想不出在我们行业历史上有更好的时间成为一名开发人员。 如果您编写代码,这是一个黄金时代。 如果您有为您编写代码的人员,则该消息的另一部分。 您需要了解开源是该过程的一部分,否则您可能会被我们行业中发生的世代变化所吞噬。

当我在1999年建立我的第一家公司时,刚开始需要花费250万美元的基础架构成本,而编码,启动,管理,营销和销售我们的软件又需要250万美元的团队成本。 因此,典型的“ A轮”风险投资为5-10M美元也就不足为奇了。

如果您看看我们今天所处的位置,创意的成本比我在这个领域起步时的成本低约90%。 如今,部署在弹性基础架构上的全渠道客户端,聚合离散服务,使用托管API,集成开源软件,采用devops技术并专注于可衡量的反馈。

开源是如此无处不在。 任何人想要旋转另一个节点时都想与采购员交谈吗? 这正在系统地推动采用。 我们正在看到DevOps的发展,开源是现代应用程序开发的驱动力。

我们在Forrester进行了开发人员调查; 多个国家/地区的700名开发人员。 我们问:“在过去的12个月中,您使用了哪些类的开源软件?”

  • 41%的开源数据库
  • 38%的操作系统
  • 34%的网络服务器

当我们查看构建了云,移动或大数据的开发人员时,响应率几乎是一致的:

  • 93%的云
  • 92%移动
  • 78%大数据

五分之一的开发人员尚未使用开源软件。 甚至使用Microsoft和Oracle的人们都以某种方式使用开源软件。

过去,我们看到服务器是最大的服务器。 现在是开源数据库。 我们开始看到数据库领域的转变。 我们已经看到了应用服务器的尾声。 正如我们看到的更现代的发展一样,它们不使用应用程序服务器,而是改变了它们运行后端的方式。

当我们研究现代应用程序时,我们发现与上一代产品有所不同。 我们随处可见API。 今天,开发人员首先寻找服务和API。 现在有更多服务可以使用和调用异步通信。 在过去的12年中,我们一直处于MVC(模型,视图,控制器)领域。 紧密耦合的MVC架构。 现在那还行不通。 您现在可以看到更多事件驱动的框架。 许多旧框架都非常适合今天,而新框架则是开源软件。

诸如Socket.io , Nginx和Node.js之类的轻量级进程通信框架正在取代以前的开源软件和技术。 这不仅是开源还是专有,我们看到的是开源还是开源,并且替代也在发生。 (即Subversion与Git )。 在内存中,数据库正变得越来越流行并得到广泛采用。 弹性基础架构是常态。 没有更多的“最大”许可证。

在该领域中,我们看到分片SQL或NoSQL数据库在开放源代码选项中的主导地位。

在现代应用程序的背后,我们看到了“现代参与架构”。 建立在系统之上的系统,面向员工或客户。 Web应用程序的构建方式非常不同。 第四层架构。 在两者之间,存在一个聚合层,该层从IoT(物联网)和其他来源实时收集和摄取数据,并根据上下文预测下一步的最佳步骤。 之后,是一个交付层,其中包含Amazon Web Services之类的东西。

参与平台(例如Netflix )可以分解,您可以看到所有部分-客户端层,交付层,聚合层和服务层-所有这些都散布着开源。 Evernote , Instagram和Untappd也是如此……您可以看到现代应用程序体系结构中对开源的广泛使用。

越来越多的创新是由开源软件社区推动的。 协作集体将推动行业创新。 我们中那些希望雇用开发人员的人必须了解如何进行重组以与之合作并在这些集体的工作之上建立基础,以吸引人才。

我一直在问一个问题:“您是否在日常工作之外编写代码?” 而且,有70-75%的开发人员说“是”。 有些只有几个小时。 每周最多可能有11-20多个小时的时钟编码关闭 。 自己编写代码的愿望是由许多动机(学习,创办公司)驱动的,但是这些动机是内在的 ,它使开发人员感到愉悦和幸福。 四分之一的开发人员告诉我们,他们在自己的时间里为开源软件做出了贡献。 这些开发人员是其中一些最有才华和创造力的开发人员。 如果您将开发视为创意领域,那么您就会知道它是广泛分布的。 如果您想雇用有才华的开发人员,生产性开发人员,则与执行FOSS(免费和开源软件)的人员以及您组织中所需的人员有关联。

我们的领域缺少顶级人才,每个人都在寻找了解现代框架和NoSQL并且可以在云之上构建的人。 如果您具备这些技能,并且知道如何使用框架来构建应用程序,那么您的未来将会非常光明。 在美国,我们预计开发人员到2020年的增长将超过28%。2014年,他们的平均薪资为9.2万美元,而2013年为7万美元。 这表明存在需求/供应不平衡。

我们处于代际技术转变。 现代技术不同于客户端/服务器应用程序。 我们必须了解如何使用这项技术,以及使我们能够廉价创新的弹性架构。 开源的廉价性非常适合现代平台。 5人中有4人使用开源软件,并且可以正常工作。

开源软件项目驱动着协作的集体,无论他们是挂在GitHub上 , Drupal中还是在Eclipse或Apache之类的基金会中。 这些是进入下一个十年的发展重心,并且重心也在增长。

人才是卖方市场,我们正处于黄金时代。


MongoDB执行董事兼联合创始人Dwight Merriman的主题演讲

嗨,大家好。 我是德怀特 如前所述,我在MongoDB工作,从一开始我就去过那里。 我在1.0天的版本中写了很多代码。 今天早上我想谈谈与杰夫所说的相符的事情。

面向对象的编程。 关系前数据库。 它可以追溯很长时间 。 我将专注于数据层。 我喜欢这个词“现代应用程序”,因为我们没有构建相同的东西。 这不是“我们需要一个新版本的库存系统”,而是一类以前不存在的全新应用程序B2B和B2C。 我们构建它们的方式已经完全改变。 今天早上的日程安排,您会看到所有的讨论,并且在讨论中充斥着项目和产品的名称以及许多开源的东西。 我正在考虑的一件事是Jeff如何谈论许可证的弹性。 在我看来,这对软件的“粒度”意义重大。 今天,很容易混搭来自完全独立的产品的第三方代码。 您可以想象使用十二个或更多的第三方组件。 它可以成为很长的清单。

如果它是封闭源代码,那么很难购买,评估和开发许多不同的东西。 粒度方面是非常现实的,并且是我们今天编写软件的重要组成部分。 我们不想要一个大型的整体系统,我们想打破我们能做到的。 我们想要的是不同的专业作品,如果它不是开源的,那就不那么容易了。

在现代应用程序的背景下,我想谈谈数据。 “大数据”和“ NoSQL”-这是奇怪且不精确的词。 发生了一件大事。 我们正处于25年来IT(信息技术)数据层最大的变化之中。 发生了很大的事情。 大数据是数据层中正在发生的一堆新技术。 而且数量异常多。 描述这一点的一种无聊但准确的方法是,您可以将各个分区分开。 NoSQL,可扩展,非常适合构建现代应用程序。 Hadoop ,更多在分析方面。

这一切正在发生,这是一个巨大的变化。 我们编写的应用程序类型也在发生变化。 关于这一点,我们正在研究的新应用程序和用例,数据的形状是不同的。 数据的形状。 数据是非结构化的,多态的。 它不只是表格。 现实世界中的会计数据是表格形式的。 一对一映射。 真实的用例数据,是各种各样的形状。 一侧不结构化,复杂,或者塑性,另一侧进化。 新工具非常适合处理此问题。 JSON ,以及数据库的面向文档的概念,或以这种格式传递的消息。 在我看来,这很重要。 说“非结构化”数据是不准确的。 通常它具有结构,但是它是动态的。 就像动态/静态类型的编程语言的时代一样。 我们处理的数据是动态的,我喜欢这样想。

我也喜欢考虑尺寸。 大规模规模。 如何处理。 我今天拥有的电脑很便宜,而且不是很高。 它们水平缩放。 在1999年,我们在硬件上花费了1亿美元...我们投放了很多广告,但计算机的运行速度却慢了1000倍,而当时的成本却更高。 那时您可以得到一台“大型”计算机,但是它们更高。 今天,您无法通过购买“更大”的计算机来获得更快的处理器。 您必须水平缩放。 并行性。 这与云计算完美契合,而且必须进行扩展,这确实是唯一的方法。

我想到的主要是延迟。 应用程序的概念以及您的邮箱中夜间或每日报告的使用...在这一点上已经过时了。 人们习惯于在手机上使用的服务进行实时交互。 作为开发人员,在构建系统时,我们必须从实时心态开始。 我会告诉我的团队,在我们构建的100个应用程序中,默认为实时。 作为首席信息官,这听起来似乎很明显,但这很重要! 回想一下1980年代的计算机科学教育。 您应该在1980年默认为“批处理”,批处理算法的复杂度较低,而且该走的路要走。 比实时快得多。 如今,事情变得如此之快,并且可以应付。

如果我的传递机制是邮件或FedEx ,则批处理无关紧要。 现代应用程序的特性之一,我们要做的事情。 每当我做一个新的应用程序时,我都会默认为实时,而不仅仅是在有理由的情况下。 许多新工具NoSQL也可以简化这一过程。

形状,大小,速度,方法

方法是“我们如何编写代码”,这已经发生了很大的变化。 它不再是架构师,代码,设计,测试,部署。 只是不断的迭代。 在开发人员方面,这很有帮助。 对于业务方面,很高兴能够说:“这是您想要的吗?” 如果不是,可以快速更改以适应需求。 一直很难规范事物。 这为创造力打开了大门。 即使我可以编写一个完善的规范,也可以在一个月内获得想法! 您会得到更好的结果。 这是当今应用程序的重要组成部分。

看Facebook 。 网站每天都在变化。 日常。 多年。 迭代。 这是一个真实的例子。

应用领域

我会举一些具体的例子。 当我被问到时,MongoDB的用法是“通用数据库”或“运营数据库”。 在当今的背景和方法论下,我们正在尝试对什么是运营数据库进行新的削减。 物联网正在发展,这是人们使用NoSQL的地方,但是人们正在做很多事情。 如今,约翰迪尔(John Deere)正在用数据做一些巧妙的事情。

约翰·迪尔 ( John Deere )的信息之一是:“喂养地球”

想象现在是收获时间,我们正在运行联合收割机,到处走走,您就可以测量产量。 您可以测量在最近1-5秒内有多少磅的东西进入了垃圾箱。 您可以通过GPS知道自己的位置。 我们可以在拓扑上非常精确地获得一个产量图。 当然,这是很多数据。 我们可以做什么? 我们可以查看它以及它的视觉表示,例如热图。 您会看到诸如“河在这里”之类的问题。 您可以想象一个非常细小的颗粒(大约等于讲台的大小),产量很低,并使用逐点肥料! 这就是他们正在从事的工作,而这些都是现实世界中有形的事情。 糖果迷是“酷”的,但它是无形的。 这不仅在精神领域。

博世的信息之一是:“连接地球”

他们有一个业务部门, 负责为自动化和工业管理提供大量软件 。 他们有钻头或铆钉机(一种电动工具,就像您车库中的铆钉机一样),但这些工具的价格为1.5万美元,并且将铆钉放在飞机上。 安全对飞机至关重要。 必须有质量控制。 他们进去正确吗? 我们可以逐个铆钉看一下吗? 您可以看到一英尺中是否有三个平庸的铆钉,虽然不好,但是超过100英尺,那还可以。 喷枪记录所有这些数据,并成为制造商质量控制的一部分。 在这些情况下,您必须存储大量数据。 这就是使数据的形状变得有趣的原因。 具有信息块的时间戳。 多态性。 所有传感器,并非全部相同,以及如何处理这些差异。

Edeva的信息之一是:“保护地球”

考虑一下会产生大量数据的自动驾驶汽车。 您可以使用该数据进行分析以改善交通流量,并找出在哪里进行更改或添加道路以及问题出在哪里。 您可以将其用于安全性分析。 当您在瑞典的桥梁上行驶时,他们已经建立了一项技术,他们可以看到您的速度。 如果您要进行速度限制,则不会执行任何操作。 如果您的速度太快,系统会为您创建减速带! 它在道路上造成凹陷! 如果桥上发生事故,您每天可能会破坏50万人的交通。 对于他们来说,这是一个非常成功的项目。 我对无法加速感到不解...但这对他们有好处。

(观众笑声)

查看这些示例,您可以得到的范围更广,但是我要提出的问题是:“您在做什么?” 也许不是第二秒,而是明年。 有交叉路口还是有创意的东西? 我们已经看到了很棒的事情来自像Uber这样的初创公司。 但是,我在这里还提供了一些来自“古典”组织的示例。 在“旧”领域和领域中还有更多工作要做,我们现在拥有采用新思维的工具。 要有野心,尝试解决这些问题。

翻译自: https://opensource.com/life/14/11/where-golden-age-open-source

编写代码的软件用什么编写的

编写代码的软件用什么编写的_如果您编写代码,这就是您的黄金时代相关推荐

  1. python游戏代码怎样才能玩好英雄联盟_用Python编写代码分析《英雄联盟》游戏胜利的最重要因素...

    原标题:用Python编写代码分析<英雄联盟>游戏胜利的最重要因素 点击上图查看 Python Web 开发入门实战[教学大纲+教学进度表] 介绍 在过去的几年里,电子竞技社区发展迅速,曾 ...

  2. AI免费写代码chatGPT软件Build Software. Fast

    AI免费写代码chatGPT软件Build Software. Fast 文章目录 AI免费写代码chatGPT软件Build Software. Fast 1.软件简介 2.软件安装 3.使用教程 ...

  3. 代码加密软件VMProtect 全新v3.6震撼上线,强势助力软件加密

    VMProtect 是一款性能强悍且无需任何解密代码的实力派软件保护解决方案! VMProtect 从发行以来,因其虚拟化代码,无需解码.支持几乎所有可执行文件格式及Windows等特点,深受开发者信 ...

  4. 读《代码不朽:编写可维护软件的10大要则》C# 版

    这本书特别针对没有接受过计算机科学或软件工程专业学习的软件开发人员,这类人员除了熟悉所用语言语法和语义之外,很少接受其他专业培训,对软件工程中的一些概念理解欠缺.软件设计方面考虑较少.如果要成为一个专 ...

  5. 编写代码的软件用什么编写的_如何通过像编写代码一样克服对编写的恐惧

    编写代码的软件用什么编写的 by Chris Rowe 通过克里斯·罗 How often do you get the fear? What do I mean by fear? How about ...

  6. 写html前端代码的软件_html用什么软件编写

    HTML代码可以用Brackets.WebStorm.vscode.Sublime Text.HBuilder .EditPlus等开发工具来编写. web前端学习:打造全网web前端全栈资料库(总目 ...

  7. 编写代码的软件用什么编写的_编写出色的代码

    编写代码的软件用什么编写的 Writing great code that is not only functional and bug-free but also leverages all asp ...

  8. 编写代码的软件用什么编写的_您到底是为谁编写代码?

    编写代码的软件用什么编写的 特别感谢许多阅读本文并为我提供有用反馈和建议的人:Anya Roltsch,Frank Schubert,Olga Hollister,Ravi Varshney,Asha ...

  9. 用Qt编写STM32烧录软件(ISP模式)代码

    1.前言 之前写了一篇[用Qt编写STM32烧录软件(ISP模式)],但是在文中没有具体的实现代码. 现在补上,各位有兴趣的同学可以参考以下.但是代码里面还有很多没有完善的,必定会存在一些bug,目前 ...

最新文章

  1. JAVA_HOME PATH CLASSPATH
  2. Python语言的有限状态机实现样例
  3. MySQL的存储引擎与日志说明
  4. “中国智造”为System x提供创新源动力
  5. Python之OS模块:os.access()检验权限模式(验证文件及目录权限)
  6. Javascript php 异常捕获
  7. 联想服务器修改imm地址,联想服务器IMM运维管理指南.docx
  8. 实时监听输入框值变化:oninput onpropertychange
  9. Canoe-14229-UDS自动化测试脚本CAPL 这适用于CANoe无diva的测试脚本
  10. 方程检验格式图片_eviews的异方差检验ppt课件
  11. 【 直接复制不用下载 】-- 走遍美国总词汇(完整版)
  12. 暗态图像处理论文:A Bio-Inspired Multi-Exposure Fusion Framework for Low-light Image Enhancement
  13. 一张图片放两个二维码_两个方法教你找到一张图片的高清版
  14. 轻量级java框架 light-4j
  15. 手机罗盘(指南针)校准方法
  16. WAP手机安全上网防病毒攻略
  17. 中国联通dns服务器未响应,关于光猫设置的说明和常见问题
  18. java发送邮件报错554_java发送邮件报错554
  19. 【VisionMaster】 N点标定
  20. 5g网络模式是以什么划分的_5g组网方式有哪些

热门文章

  1. 数学通大道,算法合自然?
  2. Java注解学习一:注解术语
  3. iOS开发之--改变系统导航的颜色,字体,还有返回样式的自定义
  4. Ember.js 入门指南——路由重定向
  5. iOS小技巧---改变uisearchbar中的cancel按钮的文字、取消clearButton
  6. 【转】想象5年后的你
  7. [转载]帮你入门 详解JRE和JDK的区别
  8. Linux下基于 Docker 搭建 MySQL 主从复制(1 Master+2 Slave)
  9. 王琪你计算机学院,计算机学院“计忆时光”2019元旦联欢会暨年度颁奖典礼圆满举行...
  10. html相对位置置顶,css定位(position)属性怎么用?