首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

甄子的2020年终技术回顾

一篇文章很难回顾所有技术发展的变化,本文以个人关注点为主,试图进行一个憋足的总结。 不才一直秉持行业发展是技术的第一驱动力,行业视角可以良好的穿透技术发展的现象触及本质。过去一年里,在疫情、国际冲突、数字时代发展的共同推动下,技术也在发生着巨大的变化。接下来,分享一下在行业视角下审视这些变化如何影响我们、如何应对的一些思考。

疫情之下

封城之殇

封国、封城是自从黑死病和瘟疫大流行开始,人类用血肉换取的宝贵抗疫经验。随着社会科技发展,这些抗疫手段在原则不变的情况下,融入了更多技术去应对其副作用。

数字抗疫

COVID-19 健康凭证、支付宝健康码、公共交通管控、城市大脑和人员行动轨迹管控……共同构成了传播源管控系统。始于中国推广全球的移动 APP 管控经验,良好的完成了其使命。但是,社会公权力的担忧和隐私侵犯现象层出不穷,也构成普罗大众对利维坦的恐惧。在疫情面前没有赢家,欧洲选择自由而牺牲生命,集权国家选择生命而部分出让自由,只是选择不同而已,都要付出相应的代价:no free lunch!对于技术人员,手持技术道德的达摩克里斯之剑时,需要更多的担当和自省。

远程办公

为了最大程度减小疫情对经济的影响,远程办公 Thinclient 神隐多年后,Zoom 代表的新一代远程办公系统崛起。疫情只是一个催化剂,带宽发展、网络压缩传输技术成熟、机器学习的超分辨率技术加持的大规模并行计算能力……等,共同缔造了远程办公的可能性。但是,同时也要看到远程办公并不是员工和雇主的博弈,而是工作模式、生产关系的升级。围绕着博弈诞生的 3D 虚拟形象自动化参会,终将消亡。而围绕着远程协同办公的核心“办公”,将诞生更多新技术,背景替换只是冰山一角,类似微软 HoloLens 的远程辅助、远程医疗……等专业领域的成功经验,将是驱动远程办公发展的重要动力。

生活电商

作为疫情经历者,封城禁足带来的第一个问题就是:吃穿住用行怎么解决?疫情初期口罩哄抢,买不到口罩让出行买菜成了第一个问题。从超市哄抢到本地生鲜的哄抢,买不到菜成了第二个问题。长期禁足在家,买不到 Switch 健生环大冒险,成了娱乐消遣的第三个问题。

社区志愿者、网格化管理和电商,成为了解决生活问题的核心手段。必须承认,在突如其来的疫情面前,没有人准备充分,有些问题、有些弊端是正常的,但是,当这些弊端和问题发生在我们自己身上呢?在后疫情的时代,需要反思作为一个技术人,我们改变了什么?改善了什么?

就像在软件工程里思考异常情况和边界值一样,在供给技术方案的时候也要考虑社会的异常情况和边界值,藉此避免在社会发生问题的时候手忙脚乱。如果投入和价值被挑战,作为一个技术人,至少应该把灵活性和扩展性提前设计好、预留好。

远程教育

工作和生活之余,孩子的教育怎么办?教育的场景要大于工作场景,因为寓教于乐、蒙氏教育……已经成为了家长追求教育质量的主流要求。技术如何提供交互能力?技术如何提供良好的体验?技术如何让孩子能够身临其境? AR/VR/MR 带来了很多可能性和想象空间。

HTTP3/QUIC

传输效率是首先要关注的,因为孩子更加缺乏耐心,如何用 HTTP3/QUIC 来解决 TCP/IP 头部阻塞问题,如何更快的让孩子看到画面,如何分布加载引导孩子等待的同时有部分交互性或展示能力?可以良好的解决孩子耐心的问题。可以参考:Facebook部署QUIC的实践

动作捕捉

ARKit 上不仅可以进行 3D 空间的测量、表面侦测、放置虚拟元素等,还加入了动作捕捉能力。动作捕捉可以让孩子可以更加身临其境,和数字世界进行更真实的交互。尤其是硬件设备的升级,能够更好的完成这件事情:神经网络运算加速芯片、雷达、多摄像头下机器视觉……。

音视频压缩

无论远程办公还是远程教育,就像传统视频网站一样,带宽是一个绕不过的话题。以往的压缩技术是根据信息论,通过算法对缺失信息进行还原(丢包等问题)。如今,有超分辨率技术加持,可以很好的解决带宽的问题。解题思路和以往编程领域一致,“时间换空间”和“空间换时间”,在需要空间的场景如数据传输,就用“时间换空间”计算代替存储,在需要时间的场景如缓存,就用“空间换时间”存储代替计算。

云计算

疫情阻断了人提供服务的路径,“上门服务”逐步编程“上云服务”,软件的云化 SaaS 出现了一波新行情,不少人投入到 2B 的领域进行创新创业。在构建 SaaS 的过程中,WebServices 再次借助 OAM(Open Application Model)从幕后走到台前。

应用程序有限、应用和平台能力的关注点分离、被 Go 证明的开箱即用是第一推广力,几乎构成了 OAM 的主要特色。

编程对象也从以往的对象存储、数据服务、消息服务……等,扩展到 IoT 和边缘计算,云原生和云基础设施将进一步从 DevOps 向 NoOps 挺进。

国际冲突

同一个故事有两个不同的版本: 1、由于投入了大量的研发成本、人才培养、技术学科建设……,所以,要大力保护知识产权,必须保证利润来促进资本投入新技术研究; 2、由于历史原因发展不足,长期受到高利润盘剥,所以,要大力发展自身技术,必须保证大家能够享受到技术发展带来的红利,促成技术普惠。 两个版本都没有错,只是缺少了一个毫无偏颇的第三者仲裁,否则,公说公有理婆说婆有理永无休止。但是,一个无法忽略的事实是:资本家永远拿着新技术投入作为要挟,挥舞着知识产权保护的大棒,捶打着不争气的技术人。因此,君子以自强不息,如何应对是一个问题。

芯片技术封锁

众所周知,芯片是近现代工业产业飞速发展的基石,万物互联已经在日常生活的家电、手机、耳机……等,渗透的愈加深入和全面。然而,芯片技术从 EDA、光刻、封装到测试,原材料的晶圆……构成了一个庞大复杂且分工明晰的产业。无论媒体如何肯定我们的研究成果,10~15 年内所谓“赶英超美”的梦想大概率只是个梦想。太多的基础学科需要去攻克,太多的材料学、技术工艺需要去创新和发明。

然而,随着人工智能应用的普及,通用芯片逐步分化为专用芯片:NPU、DSP、CPLD、FPGA、Intel DPDK……都在特定领域替代了通用计算芯片,从本质上改变了软件开发这件事。

“人机协同的编程方式”造就了一个契机:在专用芯片上开发软件,打开通用计算芯片封锁的通路。人机协同的编程方式,这个概念源自于对前端智能化的深入思考。整个前端的职责范围,随着 Node FaaS、RN、Weex 等技术的涌现而扩大。

image.png

image.png

image.png

通过 “人工智能 + 前端” 来定义的“前端智能化”,通过人工智能借助专用芯片“NPU”突破通用芯片“CPU”技术封锁的能力,为技术打开另一片天地。

image.png

之于前端,进入智能化领域需要学习:机器学习、Python、TF 等机器学习框架、并行化和运算加速……等技术,门槛很高。在 imgcook.com 的前端智能化实践中,阿里巴巴前端委员会沉淀并开源了:Pipcook ,降低前端智能化门槛。

image.png

同时,借助 Boa 提供丰富的 Python 技术生态复用能力,让前端做出靠谱的机器学习。

image.png

在保证前端可以开发出靠谱的机器学习项目的同时,Pipcook 还对流程进行了优化。借助 Jupiter Notebook 的思想,对学习和实验提供了大量支持,并同时推出 Pipboard 和支持 Corlab

image.png

人工智能和机器学习离不开数据的处理,无论是组织训练样本还是处理日志,都需要对海量数据进行:获取、组织、清洗、分析……等工作。DataCook 吸收了开源项目 Danfo.js 开源项目,借助 Tensorflow 强大的 TFData 数据处理能力和硬件加速能力,赋能前端轻松处理海量数据。

image.png

软件技术封锁

image.png

“倾巢之下俺有完卵?”抱着“事不关己高高挂起”心态处之,未来一定会很被动。核心技术自研来确保在关键点上不被“卡脖子”,应用技术开源来保证全球化和社区化软件生态抵御政治风险,是两条关键的路径。

核心技术自研

核心技术自研 ≠ 重复造轮子!!!核心技术自研首先要划定范围在:商业和闭源软件范围内,因为,开源软件属于社区共享,大家共同遵循开源协议可远离专利流氓和技术卡脖子,直白点说:相互牵制。

其次,对于操作系统、驱动、算法库……这些频繁被使用的底层技术,也需要有充分的风险认知和评估。Matlab 就是一个典型的例子,今天,大量算法用 Matlab 编写,大量工程技术和自动化控制技术依赖于 Matlab,大量的化学、生物学等科学研究依赖于 Matlab,Matlab 的技术封锁可谓“精准打击”。在耗费社会大量人力、物力、财力进行迁移的同时,作为技术人,要能够充分评估自己企业的技术风险,识别出这些可能被“精准打击”的点,提早寻找开源技术和“备胎”,甚至在必要时自己造轮子。

最后,需要关注框架、脚手架和工具。随着工程技术的发展,技术工作已经被越来越多的框架、脚手架和工具所挟持,一旦这些框架、脚手架和工具出现问题,对现有的软件工程体系会造成巨大冲击。

image.png

React 协议变化对中国前端技术的冲击不可谓不巨大,直接对所有前端技术人完成了开源协议普及工作。同时,这次冲击也让大家意识到,对于框架、脚手架和工具的重度依赖是有风险的。因此,在设计技术体系的时候,首先要有“面向卡脖子”的设计:框架换了怎么办?脚手架换了怎么办?工具不能用了怎么办?即便不去自己造轮子,也要在这些非自研框架、脚手架和工具上,做好解耦。

应用技术开源

image.png

并不是开源的代码商业都能使用,比如 Highcharts( https://shop.highsoft.com/highcharts )是明确商业授权方式的,就是花钱买。另外,一些允许商业免费使用的开源代码也不是随便免费的,比如以 GPL-2.0( https://choosealicense.com/licenses/gpl-2.0/ )协议开源的代码,你的代码用了他的代码,你的代码也必须按 GPL 开源。另外,还有一些开源协议是明确了不授予相关专利的使用权的,比如 BSD-3-Clause-Clear( https://choosealicense.com/licenses/bsd-3-clause-clear/ ),这些代码引入到业务代码里面都是有潜在风险的。根据前端的场景,梳理了一个 License 白名单,如果你的项目依赖了以下协议发行的开源模块是安全的:

  • MIT
  • Zlib
  • ISC
  • WTFPL
  • Unlicense
  • Apache-1.1
  • Apache-2.0
  • BSD-2-Clause
  • BSD-3-Clause

了解开源协议之余,未来如何用开源去突破技术封锁?放在技术封锁的视角下:首先,需要“卡脖子”方使用我们提供的开源技术,“普适性”可以保证开源技术从各个维度渗透到对方的业务中去;其次,要么从功能层面、要么从技术层面,要设计一定的依赖性,避免被替换或祛除的时候不痛不痒;最后,要具备先进性,要让大家不得不用、不能不用,不用会带来显而易见的巨大成本和代价。

数字时代

环境和其中的人共同构成了这个世界。环境方面,数字孪生的技术把物理世界映射到数字世界,便于我们跨越时间和空间进行交互,如:支付宝天然气抄表。AR 等技术把数字世界映射到物理世界,便于我们对物理世界进行数字化理解(HoloLens修车)和数字化使用(AR游戏、AR看房)。人的方面也是双向的,首先,是物理世界里提供数字化凭证(电子身份证);其次,是数字世界里提供物理模拟(3D虚拟形象)。当技术发展到一定阶段,我们将无法区分物理世界和数字世界,统一称之为“世界”。

环境

image.png

数字孪生让物理的城市数据化,借助 AI 对信号灯以及路况的管控,使通行时间减少 15.3%,高架桥出行时间节省 4.6 分钟。通过 WebGPU 技术的加持,在跨平台能力超强的 Web 技术上提供良好的 3D 渲染能力。通过 WASM

技术对算力进行加速,通过 WebNN 技术(Pipcook是 WebNN 的标准制定者)提供的 AI 加速能力,共同构成了数字孪生的基础,由此诞生了大量的生活和工业应用场景。

物理引擎

image.png

仓储:

image.png

工业控制自动化:

image.png

能源管理自动化:

image.png

image.png

数字凭证

SSL/TLS 的核心贡献者 Christopher Allen 在 2016 年给我们介绍了一种用于支撑新型数字化身份的 10 个原则,以及实现这一目标的途径:通往自主身份之路。自主身份也被称为去中心化身份,按照基于IP协议栈的信任标准,是一种“不依赖任何中心化权威并且永远不能被剥夺的任何人、组织或事物的终身可转移身份”。实现去中心化身份正在逐渐升温并变得可能。我们看到了它在隐私方面的应用:客户健康应用、政府医疗基础设施和公司法律身份。如果想快速地应用去中心化身份,你可以评估 Sovrin NetworkHy-perledger AriesIndy 等开源软件,以及 W3C 标准去中心化身份可验证凭证标准

image.png

3D 虚拟形象

image.png

据科学家研究,人类通过表情传递的信息量是语言的数倍之多。逼真的肖像生成,表情细节的准确捕捉,已经成为可能,让数字世界里你的形象更加真实生动。

还可以语义分割,把物理世界里的部分区隔开。

image.png

再来个对象检测,找到物理世界里需要被数字化形象替代的部分。

image.png

最后,当然少不了声音

总结和展望

疫情冲击、国际冲突、数字时代悄然而至,带来了巨大的技术挑战的同时也带来了巨大的机遇。巴菲特说:别人贪婪的时候我恐惧,别人恐惧的时候我贪婪。其实,是一个道理,在危机之下看到机遇,在机遇之中洞察危机,才是一个优秀的技术人需要掌握的重要技能。

而贯穿本文始终的 AI 和机器学习,也是我最关注且最看好的部分。我们在技术成长的道路上,总是从简单问题的解决向复杂的、系统性的问题解决迈进。我们的技术能力也从技术点向技术面、技术体系演进。然而,在遇到 AI 和机器学习这个强大的技术能力时,以往确定性编程显得如此苍白无力,需要面向不确定性编程的能力,来应对多变的环境、人以及环境和人之间因交互而产生的复杂数据。期待 Pipcook 能够帮助大家快速走进 AI 和机器学习的时代,应对各种不确定性和复杂性问题,把智能体嵌入到我们的技术和工程中,把简单的 if……else、select……case 变成 AI 预测和决策,用“人机协同”重新定义我们的编程方式。

  • 发表于:
  • 本文为 InfoQ 中文站特供稿件
  • 首发地址https://www.infoq.cn/article/YxBurPFYuWdVStzeL77x
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券