定义 2024 q?IT 行业的通用软g开发方法包?span class="mod-overview__keyword" style="overflow-wrap: break-word; margin: 0px 4px; cursor: pointer; color: #0052d9; padding-right: 10px; background-image: url("images/icon-keyword_32a.svg"); background-position: right 2px; background-repeat: no-repeat; background-size: 8px 8px; box-shadow: none; box-sizing: border-box; list-style: inherit;">人工?span class="mod-overview__keyword" style="overflow-wrap: break-word; margin: 0px 4px; cursor: pointer; color: #0052d9; padding-right: 10px; background-image: url("images/icon-keyword_32a.svg"); background-position: right 2px; background-repeat: no-repeat; background-size: 8px 8px; box-shadow: none; box-sizing: border-box; list-style: inherit;">机器学习技术的q一步集成?span class="mod-overview__keyword" style="overflow-wrap: break-word; margin: 0px 4px; cursor: pointer; color: #0052d9; padding-right: 10px; background-image: url("images/icon-keyword_32a.svg"); background-position: right 2px; background-repeat: no-repeat; background-size: 8px 8px; box-shadow: none; box-sizing: border-box; list-style: inherit;">区块?/span>的利用和多运行时微服务。AR和VR的扩展应用也l塑造该行业。此外,E序员将更加重视|络安全和可持箋软g开发。我们将在本节中详细探讨q些势?/p>
人工和机器学习不再是行词;它们已经成ؓ行语。它们是C软g开发不可或~的l成部分Qؓ功能和性能讑֮了新的标准。从预测法到自动代码审查,人工/机器学习技术正在提高各个行业的效率和能力?/p>
2023 q最引h注目的突破之一是引入了先进?ChatGPT 功能Q其中包括代码和文本生成功能Q以及基于文本提C的人工驱动囑փ创徏的重大发展?/p>
开发h员越来越多地使用人工驱动的编码工兗这不仅加快了编码过E,q有助于减少Zؓ错误。例如,GitHub 的Copilot使用人工向开发h员实时徏议代码片D和整个功能。同P Tableau{h工智能驱动的分析工具使企业能够比以往更有效地从数据中获取z察?/p>
毫无疑问Q?024 q将是这些技术进一步发展和集成的一q_特别是在自动化文本、编码和可视化Q务方面?/p>
区块链正在超加密货币领域找到立点。优先考虑增强安全性和卓越质量的移动应用程序激增,DZ区块铄应用E序的采用增加?/p>
面向区块铄软gQBOSQ系l的基本特征包括Q?/p>
然而,区块链也有其局限性:可扩展性和能源消耗仍然是其更q泛采用的障?/p>
微服务架?/span>是一U将软g应用E序开发ؓ一套小型、可独立部v的模块化服务的方法,每个服务都在自己的进E中q行Qƈ与轻量机制Q通常是基?HTTP ?APIQ进行通信?/p>
?024q_微服务架构预计将l箋增长Q逐步演进为多q行时微服务。这也称?MACH 架构Q该术语?Microservices-based、API-first、Cloud-native ?Headless 的首字母创徏。MACH架构允许不同的服务用不同的编E语a~写Q用不同的数据存储技术,q|在不同的运行环境上。运行时的多h迎合根据每个服务的特定需求和特征Qؓ应用E序的每个组件提供更加定制和优化的方法?/p>
多运行时微服务架构的主要优势是能够利用各U技术和q_的优ѝ例如,需要高计算能力的服务可以部|在专门为此cMQ务设计的q行时环境上Q而处理实时数据处理的另一个服务可以利用针寚w度和低延迟q行优化的不同环境。这U方法不仅可以确保每Ҏ务在其理想环境中q行Q而且q可以简化更新和l护Q因ZҎ务的更改不一定会影响其他服务?/p>
此外Q多q行时微服务支持更敏L开发流E,允许团队同时处理不同的服务而无需依赖?/p>
|络威胁的日益复杂性安全性成?2024 qY件开发的一个重要方面。集成先q的安全协议和利用h工智能进行威胁检正在成为标准做法。重Ҏ在从被动安全措施转向d安全措施Q?/p>
随着 AR ?VR 技术变得越来越Ҏ获得Q多个行业对此类应用E序的需求正在猛增: 我们期待 2024 q出现的令h兴奋的发展包括: 随着环境问题的日益严重,l色计算和可持箋软g实践来受到关注。开发h员越来越x环保解决ҎQ支持绿色Y件基金会和可持箋|络宣言{促q节能编码实늚举措。这需要开发减?span class="mod-overview__keyword" style="overflow-wrap: break-word; margin: 0px 4px; cursor: pointer; color: #0052d9; padding-right: 10px; background-image: url("images/icon-keyword_32a.svg"); background-position: right 2px; background-repeat: no-repeat; background-size: 8px 8px; box-shadow: none; box-sizing: border-box; list-style: inherit;">服务?/span>处理、加载时间和数据h的代码?/p>
可持lY件开发的关键斚w包括Q?/p>
来年Q我们预计关键计领域将取得q展Q功能即服务、云?a target="_blank" class="rno-markdown__textlink-new" track-click="{"areaId":2000,"objectId":417,"positionId":417,"objectName":"边缘计算","objectType":"link"}" track-exposure="{"areaId":2000,"objectId":417,"positionId":417,"objectName":"边缘计算","objectType":"link"}" style="overflow-wrap: break-word; text-decoration: none; padding: 0px 10px 0px 0px; margin: 0px 4px; box-sizing: border-box; list-style: inherit; color: #0052d9; cursor: pointer; background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIGZpbGw9Im5vbmUiPjxwYXRoIGQ9Ik00LjMwMyA1LjAxbC0uNzA3LjcwN2ExLjUgMS41IDAgMDEtMi4xMjEtMi4xMjFsLjcwNy0uNzA3LS43MDctLjcwNy0uNzA3LjcwN2EyLjUgMi41IDAgMTAzLjUzNSAzLjUzNWwuNzA4LS43MDctLjcwOC0uNzA3ek01LjAxIDQuMzAzbC43MDguNzA3LjcwNy0uNzA3QTIuNSAyLjUgMCAwMDIuODg5Ljc2N2wtLjcwNy43MDcuNzA3LjcwOC43MDctLjcwOGExLjUgMS41IDAgMDEyLjEyMiAyLjEyMmwtLjcwNy43MDd6IiBmaWxsPSIjMDA1MkQ5Ii8+PHBhdGggZD0iTTQuMzAzIDIuMTgybC43MDguNzA3LTIuMTIyIDIuMTItLjcwNy0uNzA2IDIuMTIxLTIuMTIxeiIgZmlsbD0iIzAwNTJEOSIvPjwvc3ZnPg=="); background-position: right 2px; background-repeat: no-repeat; background-size: 8px 8px; box-shadow: none;">边缘计算Q尤其是量子计算?/p>
无服务器计算或函数即服务 (FaaS) 正在兴vQ其?AWS Lambda、Azure Functions ?Google Cloud Functions 处于领先C。FaaS 允许开发h员构建和q行应用E序和服务,而无需理基础设施Q从而实现更高效、更h本效益的开发流E?/p>
q些FaaS解决Ҏ以事仉动架构ؓ特点Q根据请求自动触发执行,q根据需要调整资源用。其可扩展性和响应能力化了开发过E,特别适合高流量应用程序。无服务器计越来越多地与物联网?span class="mod-overview__keyword" style="overflow-wrap: break-word; margin: 0px 4px; cursor: pointer; color: #0052d9; padding-right: 10px; background-image: url("images/icon-keyword_32a.svg"); background-position: right 2px; background-repeat: no-repeat; background-size: 8px 8px; box-shadow: none; box-sizing: border-box; list-style: inherit;">聊天机器?/span>和虚拟助手集成?/p>
?2024 q_云原?/span>技术将发生重大演变。它们预计将变得更加用户友好Q在?IT 目标中提供增强的性能、节省成本和更大的灵zL。Amazon Web Services (AWS)、Microsoft Azure ?Google Cloud Platform 扩展了其服务Q提供更高的分析、机器学习功能和更好的安全功能?/p>
q促使公司迁Ud云以实现更好的数据管理、增强协作ƈ提高安全性?/p>
边缘计算是一U在|络边缘可能靠q数据源处理客户端数据的 IT 架构。通过使计更接近数据源,边缘计算减少了gqƈ增强了实时数据处理能力?/p>
q种势对于需要即时数据分析的应用臛_重要Q例如自动驾驶汽车(例如Q特斯拉的自动驾驶汽车依赖于边缘计算Q和城市技术。在ȝ保健领域Q边~计可保数据隐私Qƈ实现Z人工的患者病情实时监控和分析。该技术还可以通过优化公交时刻表、调节交通R道以及潜在地引导自动N车辆量来改变城市交通管理,展示其在不同领域的多功能性和影响。边~计对于智能电|的采用臛_重要Q可以帮助企业有效管理能源消耗?/p>
量子计算是一U先q的计算形式Q它使用量子比特而不是经典比牏V利用叠加和U缠{量子力学原理,它可以以传统计算机无法达到的速度处理数据。该技术对于密码学、优化和分子模拟{复杂Q务特别有效,可提供指数更快的解x案?/p>
虽然量子计算的广泛采用还有很长的路要赎ͼ但对软g开发的q锁反应已经开始显现。其中的领导者包?IBM、微软、谷歌、D-Wave 和亚马逊等重量U公司。IBM 凭借其量子pȝ一号和二号成ؓ领先者,h高达 127 个量子位的强大处理器。微软专注于拓扑量子位,其集成到其 Azure 云^C以实现更q泛的可讉K性。谷歌的量子人工实验室旨在开发实用的通用量子计算机,?D-Wave 专门研究量子退火,解决复杂的优化挑战。亚马逊通过?AWS 量子|络中心?Amazon Braket 正在为量子计创建广泛的基础设施?/p>
?2024 q_~程l以 Python ZQRust 的采用率昄增加?/p>
Python 仍然是一U占dC的编E语aQ因其简单性、多功能性和强大的库支持而受到青睐。它q泛应用于网l开发、数据分析、h工智能和U学计算?/p>
Ҏ PYPL 指数QPython 被列为最受欢q的~程语言Q增长率最?(19%)Q该指数衡量语言教程?Google 上的搜烦频率?/p>
2023 q?Stack Overflow 调查?Python 定为开发h员最惌学习的语a。自 2012 q以来,Python 首次越 JavaQ不再只是排名前两位?Web 应用E序开发语a之一。它q在五年内三ơ荣获TIOBEq度~程语言Q这是对q度评分增幅最大的语言的认可。Python q泛的库范围可以L集成C码中q扩展到更大的应用程序,?Web 和桌面应用程序开发(包括pȝ操作Q提供了巨大的可能性?/p>
Rust ~程语言的采用正在增加,特别是在性能和安全性是关键优先事项的领域。其独特的功能其成为系l~程的理想选择。值得注意的是QRust 来多地用于嵌入式pȝQ其防止内存错误和确保线E安全的能力臛_重要。此外,其在云基设施中的部v凸显了其处理高性能计算d的可靠性和效率?/p>
在应用程序领域,重要势包括低代码和无代码^台的q泛采用、跨q_开发的q步以及渐进?Web 应用E序的用增加?/p>
低代码和无代码^台的兴v正在推动软g开发的民主化。这些工具个h能够以最的~码知识构徏和部|应用程序,从而显着~短开发时间?/p>
Microsoft Power Apps和Bubble{^C非技术用h需~写代码卛_构徏应用E序。这些工具在开发业务应用程序时特别受欢q,允许公司在没有大型开发团队的情况下快速构建原型ƈ部v解决Ҏ。然而,此类q_无法解决复杂的定制开发Q务?/p>
PWAQ渐q式 Web 应用E序Q比本机应用E序下蝲速度更快且资源占用更。它们离U工作ƈ在每ơ访问时自动h。从开发角度来看,它们h成本效益和高效性,针对不同讑֤所需的版本较,D成本比原生应用低 3 ?4 倍。福布斯、星巴克和Pinterest{大公司都采用了q项技术?/p>
PWAQ渐q式 Web 应用E序Q在开发h员中日益行的一个关键因素是其^台独立性。这样就无需为移动设备、^板电脑和桌面创徏单独的应用程序。开发的单性ƈ不是 PWA 节省成本的唯一好处。它们的创徏速度也更快,l护成本也更低?/p>
自从Ud应用E序出现以来Q开发h员面临着是ؓ Android ?iOS 创徏两个本机应用E序q是创徏单个跨浏览器应用E序的选择。原生应用程序由于其卓越的性能Q在市场上占据主导地位?/p>
2023 q的重大发展在 2024 ql获得动力,q是新工L引入Q这些工兯够交付用户友好的跨^台解x案,同时降低开发成本?/p>
跨^台应用程序具有多U优势: 本文讨论的趋势将定义 2024 q及以后的Y件开发领域。当我们应对q些变化Ӟ负责d道d的创新必M然是所有Y件开发工作的基石?/p>
我们攉最新趋势和最新发玎ͼ通过我们的博客分享。订阅我们的时事通讯q在C交媒体上关注我们,随时了解我们的帖子,以便?2024 q保持在 IT 创新的最前沿?/p>2024 q网l安全处于前?/h4>
AR和VR的进一步采?/h4>
可持lY件开?/h4>
计算
无服务器计算 (FaaS)
云计的扩展
边缘计算的浪?/h4>
量子计算Q新领域
~程语言
Python 占据dC
Rust 采用率的增长
应用开?/h4>
低代码和无代码^台的兴v
渐进?Web 应用E序 (PWA) 的增?/h4>
跨^台应用程序开?/h4>
l论
对于云厂商来_2019 q是果累篏的一q。不仅初创公司在使用云计,那些很注重安全的“保守z?#8221;公司Q如政府机构、医疗保健机构、银行、保险公司,甚至是美国五角大|也在q移C端。这U趋势在 2020 q将会l,大大小的公叔R(或者至有计划Q迁Ud云端。Gartner 公司最q发布了一个数字:
如果你是一个还在考虑要不要迁Ud云端的决{者,不妨重新审视一下你的策略。如果你是一个独立开发者,q且q没使用q云基础设施Q那么完全可以在 2020 q尝试一下。很多大型的云厂商(如亚马逊、微软、谷歌)都提供了免费的体验机会。谷歌在q方面做得特别大方,它提供了价?300 元的一q免Ҏ务?/p>
{划注:阉K、腾讯、华为等国内云厂商同h免费云服务试用品?/p>
作ؓW一大云厂商Q亚马逊在 2019 q可谓风生水赗凭借其丰富的品组合,亚马逊将把它的优势gl到 2020 q。Canalys 发布?2019 q第三季度报告指出,大型云厂商(AWS、Azure、GCPQ占?56% 的市Z额,其中 AWS 独n 32.6%?/p>
其他云厂商也在努力羃短与 AWS 之间的差距。微软把主要目标转向了大型企业。最q,微Y打|了亚马逊,从美国五角大楼拿C一?100 亿美元的大单子。这个单子将提升 Azure 的声誉,同时削弱 AWS 的士气?/p>
h一直在推动 CNCFQ实C计算q维的标准化。谷歌的长期目标是让云迁Ud得更ҎQ方便企业从 AWS q移?GCP。IBM 之前斥资 360 亿美元收购了 RedHatQ也惌在云计算市场占有一席之地?/p>
在亚太地区,阉K云市模超q了 AWS、Azure 的dQ全球排名第三。中国国内腾讯云{企业的增长势头也十分迅猛?/p>
2020 q将出现更多的ƈ购。当Ӟ很多初创公司会带来新的x和创斎ͼ例如多云服务。因为竞争激烈,q些公司只能从降价和推出更多的创C品来获取利润?/p>
在容器编排领域,虽然一度出C“三鼎立”QKubernetes、Docker Swarm ?MesosQ,?Kubernetes 最l脱颖而出Q成为绝对的赢家。云是一个分布式pȝQ?Kubernetes 是它?OSQ分布式?LinuxQ?019 q北?KubeCon+CloudNativeCon 大会的参会者达C 12000 名,?2018 q增长了 50%。以下是q去 4 q参会h数的增长情况?/p>
?2020 q_Kubernetes 不仅不会后退Q只会变得越来越强,你完全可以把赌注压在 Kubernetes w上。另外值得一提的是,Migrantis 最q收购了 Docker EnterpriseQ不q收购数额不详?/p>
几年前,Z张口闭口说的都是 DockerQ而现在换成了 Kubernetes。Docker 在它的全盛时期未能盈利,反而在优势渐退几年之后才尝试变现。这再次说明Q在C技术世界,时机是一切?/p>
h势表明Q微服务架构范式?2019 q持l增长了一整年?/p>
随着软g行业整体逐步q移C端,微服务也成为占dC的架构范式。微服务架构崛v的一个主要原因是它与云原生完契合,可以实现快速的软g开发。我在之前的一博文中解释了微服务架构的基本原则及其优势和劣势?/p>
https://towardsdatascience.com/microservice-architecture-a-brief-overview-and-why-you-should-use-it-in-your-next-project-a17b6e19adfd
我假讄在也存在一U回归到单体架构的趋势,因ؓ在很多情况下Q微服务架构有点q头了,而且做好微服务架构设计其实很难。微服务架构有哪些好的实践?在之前的另一博文中Q我也给Z一些大概,希望对读者有用?/p>
https://towardsdatascience.com/effective-microservices-10-best-practices-c6e4ba0c6ee2
机器学习、数据分析、数据处理、Web 开发、企业Y件开发,甚至是拼接黑z照片,Python 的媄子无处不在?/p>
在著名的~程语言排行榜网?TIOBE 上,Python 位居最行~程语言W三位,仅次?Java ?C 语言?/p>
更有意思的是,?2019 q_Python 的流行度M一番(?5% ?10%Q?/p>
Python 的崛起将?2020 qgl,q羃短与 Java ?C 语言之间的差距。另一门无所不在的编E语a JavaScript 正面临下行的风险。ؓ什?Python 的势头会如此强劲Q因为它的入手门槛低Q有一个优U的社区在支持Qƈ受到数据U学家和新生代开发者的喜爱?/p>
之前?TIOBE |站截图昄QJava 仍然是一门占dC的编E语aQƈ在 2020 ql保持这U地位。JVM ?Java 的基矻I其他~程语言Q如 Kotlin、Scala、Clojure、GroovyQ也?JVM 作ؓq行时。最q,Oracle 修改?JVM 的许可协议?/p>
新的许可协议意味着使用 Java、Kotlin、Scala 或其?JVM ~程语言的公叔R要向 Oracle 支付大额费用。所q的是,OpenJDK ?JVM l箋免费。另外,q有其他一些公ؓ JVM 提供企业支持?/p>
因ؓ体积和速度斚w的问题,Z JVM 的编E语aq不适合用在今天的无服务器环境中。Oracle 正在推动 GraalVM 计划Q旨在让 Java 变得更加敏捷和快速,让它更适合用在无服务器环境中。因为除?JavaQ没有其他编E语a可以提供企业U的E_性和可靠性,所?Java 在 2020 ql占dC?/p>
曑և何时Q在企业开发领域,Spring ?JavaEE 之间存在着白热化的竞争。但因ؓ Oracle ?JavaEE 斚w没有作ؓQ在竞争中惨败,q导致了“MicroProfile”计划的Ş成,q最l促成了 JakartaEE?/p>
虽然所有的政策和活动都是围l?JavaEE 展开Q但 Spring 事实上已l赢得了q场企业 JVM 之争?020 q_Spring 成?JVM 生态系l的头牌?/p>
有两个正在进展中的项目,它们旨在减小 Java 的体U,让它更适合用在无服务器环境中?/p>
其中一个是 MicronautQhttps://micronaut.io/Q?/p>
另一个是 QuarkusQhttps://quarkus.io/Q?/p>
q两个项目都使用?GraalVMQ它们在 2020 q将会得?Java C更多的关注?/p>
2000 q代Q编E语a的发展出C停滞。大多数为没有必要再d发新的编E语aQJava、C 语言、C++、JavaScript ?Python 已经可以满所有的需求。但是,h?Go 语言为新~程语言大门打开了一扇大门。在q去十年出现了很多有的~程语言Q比?Rust、Swift、Kotlin、TypeScript。导致这U情늚一个主要原因是已有的编E语a无法充分利用g优势Q例如多核、更快的|络、云Q。另一个原因是C~程语言更加x开发者经,卛_现更快速更Ҏ的开发。在 Stackoverflow 提供的一份开发者报告中Q排名靠前的C~程语言如下所C(Rust q箋 4 q名列第一Q?/p>
在之前的一博文中Q我深入探讨了现代编E语aQ对?Rust ?Go 语言Qƈ说明了ؓ什么现在是采用q些语言的好时机?/p>
https://towardsdatascience.com/back-to-the-metal-top-3-programming-language-to-develop-big-data-frameworks-in-2019-69a44a36a842
最q,微Y宣布他们在探索?Rust 来开发更安全的Y件?/p>
亚马逊最q也宣布要赞?Rust?/p>
h宣布?Kotlin 作ؓ Android 官方开发语aQ所以,?JVM 领域QKotlin 成了 Java 的主要竞争对手?/p>
Angular 使用 TypeScript 代替 JavaScriptQ将其作Z要的~程语言Q其?JavaScript 框架Q如 React ?VueQ也开始ؓ TypeScript 提供更多的支持?/p>
q种势在 2020 qgl下去,很多巨头公司会深入了解C代编E语aQ如 Rust、Swift、TypeScript、KotlinQ,它们会站出来公开表示支持?/p>
曑և何时QJavaScript q不被认为是一门强大的~程语言。在当时Q前端内容主要通过后端框架在服务器端进行渲染?014 q_AngularJS 的出现改变了q种局面。从那个时候开始,更多?JavaScript 框架开始涌玎ͼAngular 2+、React、Vue、MeteorQ,JavaScript 已然成ؓL?Web 开发语a。随着 JavaScript 框架不断创新以及微服务架构的崛vQJavaScript 框架?2020 q将l箋d前端开发?/p>
虽然 React 是在 AngularJS 之后出现的,但在q去十年?Web 开发生了巨大的媄响,q也?Facebook 在与 Google+ 的竞争中打了一战。React 为前端开发带来了一些新的想法,比如事g溯源、虚?DOM、单向数据绑定、基于组件的开发,{等。它对开发者社Z生了重大影响Q以至于h攑ּ?AngularJSQƈ借鉴 React 的想法推Zd重写?Angular 2+。React 是目前ؓ止最为流行的 JavaScript 框架Q下图显CZ相关?NPM 下蝲l计信息?/p>
Z获得更好的ƈ发和用户体验QFacebook 宣布完全重写 React 的核心算法,推出?React-Fiber 目?/p>
2020 q_React 仍然是你开发新目的首?Web 框架。其他框Ӟ?Angular/Angular 2+ ?VueQ呢QAngular 仍然是一个不错的 Web 开发框Ӟ特别适合企业开发。我敢肯定谷歌在未来几年会在 Angular 上加大投入。Vue 是另一个非常流行的 Web 框架Q由中国的巨头公叔R里巴巴提供支持。如果你已经在?Angular ?VueQ就没必要再q移?React 了?/p>
在移?App 开发方面,有关混合应用开发的炒作有所消停。合开发提供了更快的开发速度Q因为只需要一个开发团队,而不是多个。但原生应用提供了更好的用户体验和性能。另外,混合应用需要经q调整才能用一些高U特性。对于企业来_原生应用仍然是首选的解决ҎQ这U趋势将?2020 qgl。Airbnb 在一博文中非常详细地说明了Z么他们要攑ּ混合应用开发^?React Native?/p>
https://medium.com/airbnb-engineering/sunsetting-react-native-1868ba28e30a
管 Facebook 试改进 React NativeQ谷歌也非常努力地推动?App 开发^?FlutterQ但它们仍然只适合用于原型、POC、MVP 或轻量应用的开发。所以,原生应用?2020 q仍l占dC?/p>
在原生应用开发方面,h和苹果分别将 Kotlin ?Swift 作ؓ各自q_主要的编E语a。谷歌最q再ơ重申了?Kotlin 的支持,q对?Kotlin 用户来说无疑是个好消息?/p>
在很多情况下Q合应用是个不错的选择。在q方面也有很多选择QXamarin、Inoic、React Native ?Flutter。Facebook Z成熟?React 框架推出?React Native。就?React ?Web 框架领域占据dC一PReact Native 在合应用领域也占据着dCQ如下图所C?/p>
React Native ?React 有共同的基因Q都提供了高度的代码重用性以?#8220;一ơ开发,到处q行”的能力。React Native 的另一个优势是 Facebook 本n也用它来开发移动应用。谷歌在q个领域h较晚Q但在去q_h的合应用开发框?Flutter 获得了不关注。Flutter 提供了更好的性能Q但需要用另一门不是那么流行的~程语言 Dart。React Native ?2020 q将l箋占主导地位?/p>
REST ?API 领域事实上的标准Q被q泛用在Z API 的服务间通信上。当Ӟ除了 RESTQ我们还有其他选择Q比如来自谷歌的 gRPC 和来?Facebook ?GraphQL?/p>
它们提供了不同的能力。谷歌开发的 gRPC 作ؓq程q程调用Q如 SOAPQ的化nQ?Protobuf 代替 JSON 作ؓ消息格式。Facebook 开发的 GraphQL 作ؓ一个集成层Q避免频J的 REST 调用。gRPC ?GraphQL 都在各自的领域取得了成功?020 q_REST 仍然是占dC?API 技术,?GraphQL ?gRPC 作充技术?/p>
h?Facebook 也是深度学习 / 经|络领域的主要玩家。谷歌基于深度学习框?Theano 推出?TensorFlowQ它很快成为深度学?/ 经|络的主要开发库。谷歌还推出了特别设计的 GPUQTPUQ来加?TensorFlow 的计?/p>
Facebook 在深度学习领域也不甘落后Q他们拥有世界上最大的囑փ和视频数据集合。Facebook Z另一个深度学习库 Torch 推出了深度学习库 PyTorch。TensorFlow ?PyTorch 之间有一些区别,前者用的是静态图q行计算Q?PyTorch 使用的是动态图。用动态图的好处是可以在运行时U正自己。另外,PyTorch ?Python 支持更好Q?Python 是数据科学领域的一门主要编E语a?/p>
随着 PyTorch 变得来流行,h也赶紧在 2019 q?10 月推Z TensorFlow 2.0Q也使用了动态图Q对 Python 的支持也更好?/p>
2020 q_TensorFlow 2.0 ?PyTorch 齐头ƈq。考虑?TensorFlow 拥有更大的社区,我估?TensorFlow 2.0 成为占dC的深度学习库?/p>
在炒?NoSQL 的日子里Qh们嘲W?SQLQ还指出?SQL 的种U不뀂有很多文章?NoSQL 有多么的好,q将要取?SQL。但{到炒作的潮水褪去,Z很快意识到Q我们的世界不能没有 SQL。以下是最行的数据库的排名?/p>
可以看到QSQL 数据库占据了前四名。SQL 之所以占dCQ是因ؓ它提供了 ACID 事务保证Q?ACID 是业务系l最潜在的需求。NoSQL 数据库提供了横向伸羃能力Q但代h是不提供 ACID 保证?/p>
互联|公怸直在L“大师U数据库”Q也是既能提供 ACID 保证又能?NoSQL 那样可横向~的数据库。目前有两个解决Ҏ可以部分满?#8220;大师U数据库”的要求,一个是亚马逊的 AuroraQ一个是h?Spanner。Aurora 提供了几乎所有的 SQL 功能Q但不支持横向写伸羃Q?Spanner 提供了横向写伸羃能力Q但?SQL 支持得不好?/p>
2020 q_但愿q两个数据库能够走近Q或者有Z带来一?#8220;分布?SQL”数据库。如果真有h做到了,那一定要l他颁发囄奖?/p>
C数据q_非常的复杂。企业一般都会有支持 ACID 事务?OLTP 数据库(SQLQ,也会有用于数据分析的 OLAP 数据库(NoSQLQ。除此之外,它们q有其他各种数据存储pȝQ比如用于搜索的 Solr、ElasticSearchQ用于计的 Spark。企业基于数据库构徏自己的数据^収ͼ?OLTP 数据库的数据拯到数据湖中。各U类型的数据应用E序Q比?OLAP、搜索)数据湖作ؓ它们的事实来源?/p>
HDFS 原本是事实上的数据湖Q直C马逊推Z对象存储 S3。S3 可~,h便宜Q很快就成ؓ很多公司事实上的数据湖。?S3 唯一的问题是数据q_被紧紧地l定在亚马逊的 AWS 云^C。虽然微?Azure 推出?Blob StorageQ谷歌也有类似的对象存储Q但都不?S3 的对手?/p>
对于很多公司来说QMinIO 或许是它们的救星。MinIO 是一个开源的对象存储Q与 S3 兼容Q提供了企业U的支持Qƈ专门Z原生环境而构建,提供了与云无关的数据湖?/p>
微Y?Azure Marketplace 是这么描q?MinIO 的:“?Azure Blog Storage 服务提供与亚马?S3 API 兼容的数据访?#8221;。如果谷?GCP 和其他云厂商也提?MinIOQ那么我们将会向多云q出一大步?/p>
现如今,企业通常需要基于大规模数据执行计算Q所以需要分布式的批处理作业。Hadoop ?Map-Reduce 是第一个分布式批处理^収ͼ后来 Spark 取代?Hadoop 的地位,成ؓ真正的批处理之王。Spark 是怎样提供了比 Hadoop 更好的性能的?我之前写了另一文章,对现代数据^台进行了深入分析?/p>
https://towardsdatascience.com/programming-language-that-rules-the-data-intensive-big-data-fast-data-frameworks-6cd7d5f754b0
Spark 解决?Hadoop Map-Reduce 的痛点,它将所有东西放在内存中Q而不是在完成每一个昂늚操作之后把数据保存在存储pȝ中。尽?Spark 重度使用 CPU ?JVM 来执行批处理作业Q但qƈ不妨它成ؓ 2020 q批处理框架之王。我希望有h能够使用 Rust 开发出一个更加高效的批处理框Ӟ取代 SparkQƈZ业省下大量的云资源费用?/p>
几年前,实现实时的流式处理几乎是不可能的事情。一些微Ҏ处理框架Q比?Spark StreamingQ可以提?#8220;几近”实时的流式处理能力。不q,Flink 改变了这一状况Q它提供了实时的式处理能力?/p>
2019 q之前,Flink 未能得到_的关注,因ؓ它无法撼?Spark。直?2019 q?1 月䆾Q中国巨头公叔R里巴巴收购了 Data ArtisanQFlink 背后的公司)?/p>
?2020 q_企业如果惌q行实时式处理QFlink 应该是不二之选。不q,?Spark 一PFlink 同样重度依赖 CPU ?JVMQƈ且需要用大量的云资源?/p>
我从 JavaScript 作?Brandon Eich 的一ơ访谈中知道?WebAssembly q个东西。现?JavaScriptQES5 之后的版本)是一门优U的编E语aQ但与其他编E语a一P都有自己的局限性。最大的局限性是 JavaScript 引擎在执?JavaScript 旉要读取、解析和处理“抽象语法?#8221;。另一个问题是 JavaScript 的单U程模型无法充分利用CgQ如多核 CPU ?GPUQ。正因ؓq些原因Q很多计密集型的应用程序(如游戏?D 囑փQ无法运行在览器中?/p>
一些公司(?Mozilla 带领Q开发了 WebAssemblyQ一U底层字节码格式Q让M一门编E语a都可以在览器中q行。目前发布的 WebAssembly 版本可以支持 C++、Rust {?/p>
WebAssembly 让计密集型应用E序Q比如游戏和 AutoCADQ可以在览器中q行。不q,WebAssembly 的目标不仅限于此Q它q要让应用程序可以在览器之外运行。WebAssembly 可以被用在以下这?#8220;览器外”的场景中?/p>
快速的数字化和工业 4.0 革命意味着软g开发者的供需~口巨大。由于缺乏开发h员,很多企业无法实现它们的想法。ؓ了降低进入Y件开发的门槛Q可以尝试无代码QNo CodeQ或低代码(Low CodeQY件开发,也就是所谓的 LCNCQLow-Code No-Code)。它已经?2019 q取得了一些成功?/p>
LCNC 的目标是让没有编E经验的Z能开发YӞ只要他们惌实现自己的想法?/p>
虽然我对在正式环境中使用 LCNC 框架仍然心存疑虑Q但它ؓ其他公司奠定了良好的基础Q像亚马逊和hq样的公司可以基于这个基构徏出有用的产品Q就?AWS Lambda 的蓬勃发展是以谷?App Engine 为基?/p>
2020 q_LCNC 会获得更多x?/p>