半自动版本的 MOSS
什么是 MOSS
Moss 是电影《流浪地球》中的高级人工智能系统,负责监控和管理地球的流浪计划。它在电影中展现了对人类的忠诚和牺牲精神。
可以说它就是一种 AGI(通用人工智能)的终极形态之一,简单的说,它也是全自动、有自主意识地做事情的系统。
但是目前通用人工智能的研究处于早期或中期阶段,还需要一段时间才能有成果,所以我们可以先实现它的一个半自动版本,
或者说我们可以先实现它的躯体,也就是一个新时代的 OGAS 系统,这个系统能帮助我们缓解 996、罗卜快跑、延迟退休等一系列社会问题。
什么是 OGAS?
OGAS(“全联盟自动化系统”),是一个前苏联设计的信息处理平台,用来帮助人们更好地管理工作和生活。可惜它没有成功实现,主要是因为技术还不够成熟,管理也太复杂。现在,随着科技的进步和管理经验的积累,我们有条件重新尝试。
与旧 OGAS 时期相比,当前的互联网、大数据、人工智能、云计算等技术有了巨大的飞跃,这为我们构建更为复杂和高效的系统提供了可能。
尽管 OGAS 是半自动化的,但它的生产力依然非常强大,我们仅需要较少的干预,或者说仅仅需要少部分人在这个系统中工作,就能让它很好的持续运行,人类不再需要做那些重复和繁重的工作,只需要维持 OGAS 的运转,它的生产力将能够为全民提供基础的收入(也就是 UBI,不工作也可以获得基本的面包和牛奶),如果工作不顺心,完全可以放空一段时间,去旅游或者去学校学习,期间可以由 OGAS 提供食物和基本的差旅费用。
先说结论
由于本篇文章的阅读需要大量相关经验(包括:计算机编程、编译器、通用人工智能研究、互联网、平面设计、3D设计、交互设计)等等, 所以我想读者可能很难深入阅读,这里直接给出一系列结论:
虽然这是一个庞大且繁琐的系统工程,但并非不可实现,我们可以使用3~6个月的时间来设计、实验、验证这个平台的基础设施,
好,我把想说的核心观点已经说完了,
如果还能看得进去,可以继续往下看。
为什么?
为什么 OGAS 的设计至少需要半年?原因如下:
- OGAS 不是一个小软件,而是一个横跨地球的巨型系统,它连接着所有设计中心、数据中心、工厂、仓库、运输、消费平台、甚至还连接着社交平台、娱乐平台。
- OGAS 旗下会有各种团队,这些团队生产各种产品,管理各种物品,他们根据行业不同,会有不同的软件需求。
- 这些团队所使用的软件,比如 OA、CRM、ERP、CRM、PLM、低代码、CAD、PS、PR 等系统或软件,都有一些致命的问题: a、这些软件将编程视为次要需求,或将编程界面隐藏得很深、或学习难度过大、没有智能提示、用户体验差、缺乏灵活性,所以很多时候难以实现自动化,反而需要手动编程。 b、模块之间存在大量裂痕,需人工粘连(对接口),难度极大,调试起来也特别繁琐,你一定听说过胶水程序员,所谓胶水,就是用人工和人力来粘连模块,而这些模块很难自己衔接。 c、这些模块的相关需求和界面的变动非常大。 d、这些软件存在大量至上而下的施压式管理、隔绝式管理、权限管理,既复杂,也无必要。
总结起来就是,我们的需求复杂且频繁变动,而现有软件模块难以构成自动化网络,特别是要构建和维持 OGAS 的时候。
如何解决?
需求复杂且频繁变动的场景,其中通常有两样东西的变化最为关键: 逻辑 和 设计。
这两样东西几乎已经占据 OGAS 软件的绝大部分体量,他们两者之间也需要互相衔接。
所以在这里,我给出一个可能看似很反常做法:
融合编程和设计,将它们做成一个编辑器,方便他们的连接,为使用者提供更高级别的使用体验。
说到这里,一定有人反对了,说:“术业有专攻,怎么把两个不相关的东西搞混在一起?”
我的回答是,有些企业做模块,比如蔡司镜头,而有些企业做整合,比如苹果。
所以并非做整合、做融合、做连接就是错的。
举一个简单的例子,我们一起来思考一下这段代码:
color: rgb(255, 0, 0);
请问上述这段代码,是美术设计来负责还是程序员来负责?不同的公司有不同的做法,并没有统一的答案。
所以传统的逻辑中,有大量设计需要介入的地方,反过来,美术设计中,也有很多程序需要介入的地方,这就为什么在游戏大厂中有一个岗位叫做 技术美术(Technical Artist),同时负责逻辑和美术设计。
这就说明, 逻辑 和 设计 是一体的。
很多事情看似不一样,但实际上相通,比如 数学 和 编程 都是同一种东西,它们之间可以互相转换。
再比如,手机是不是融合了 “电视机” 、“游戏机” 等形态?
所以融合并不一定是错的,尤其是在你要照顾使用者的体验的时候,重新设计某些东西,是值得尝试的。
类似的融合的例子还有很多,你可以试着发觉。
底层原理有什么区别?
这个融合后的编辑器,与以往的编辑器有什么不同?
下面的内容比较烧脑,而且需要相关经验支撑才能理解:
并不是说设计出来的东西很复杂,而是实现途径很复杂,且跟以往软件的设计有很大不同:
通用编程
要说清楚什么是全新的通用编程,需要先解释一下什么是通用的反面, 专用:
现代项目被割裂成很多碎片化的语言和软件,这样的状况,简称 专用编程 ,比如: java、golang等后端、前端(js、css、ts、less、json、scss等)、各种不同语法的配置文件、Sql语言、数据库、文件系统,在连接方式上有很多不同的方案,在解码方案上还存在很多漏洞,比如 json 不兼容某些字符表达,比如各种基于字符串而不是结构化的编码转码、转义字符、提示不完善的命令行、提示不完善的编程环境,等等,数不胜数。 大量的排异式模块,相互独立,需要人工对接,很难形成【自动化流程、自动编译】,也很难与将来的 AGI(通用人工智能) 衔接,且新人难以入门、设计师很难去设计或者自定义现有界面。
需要一套编译器、设计器、执行器,将所有逻辑做一个通用的处理,统一编译、存储和传输,尽量避免专用的碎片化的处理和人工衔接,这套环境中的编程,简称 通用编程。
通用编程只采用一套逻辑,而不是多套逻辑各自为政,这有点类似《一代宗师》里的咏春拳中的: 摊、膀、伏,这一个体系,解决所有情景。
通用编程最大的通用在于:
它基于 AST + UI 界面,其中 AST 是底层,它是统一的,用于编译;而 UI 界面分几种,其中有些是以传统编程视图呈现(程序员一行一行地敲代码),而有些针对设计师的界面,则是类似虚幻蓝图的视图,而针对 Up 主,可以开放无参数组件,直接拖拽并播放,而高级一点的 Up 主,向他开放包含参数的组件,前提是他能理解 “类型”并可自行查找或拖拽一些对应类型的数据进行对接组装。这套编程可以应对所有层次的使用者。
简单的说,底层是一致的、统一的,只是操作界面的视图样式上有差别。
通用设计
由于设计软件之间常常是独立开发,所以衔接起来很麻烦,所以通用设计也是必要的,也就是说,所有的操作都在一个界面中,而不是多个界面。
我举个反例例子:
比如你在 B站编辑器中突然想用 PhotoShop 来编辑图片,你得先下载 PhotoShop,然后打开它,编辑图片,然后保存图片到文件夹,然后打开 B站编辑器,然后拖拽图片到 B站编辑器
如果要修改很多次,那么上面这个过程可能要来回几十次,他们的格式也很容易不兼容,或者兼容的成本很高。
那么,什么是通用设计的路数呢?打个比方,这有点类似于新型社会主义集体所有制的集团,集团内部的资源是共享的、直连的,在效率上会高很多,在成本上也有优势。
这种融合设计的好处是什么?
通用设计带来的好处是:
- 易学,门槛低。
- 统一语言、统一操作、功能直连,学习曲线不会非常陡峭。
- 因为割裂的地方被整合了,不需要胶水程序员再来缝合,只需要用户进行拖拽式设计,降低人力成本。
- 用户数据和接口都是内部的,而各个工厂或农场也都是内部的,更容易实现运营自动化。
- 保留类型,方便跨模块编程
这个编辑器还有什么功能?
其它功能,包括但不限于:
- 自定义编辑界面
- 自定义元件
- 自定义复杂数据类型
- 数据类型之间的转换
- 数据类型的校验
- 渲染
- 交互
- 动画
- 事件
- 实时调试
- 性能调优和自动化编译
- 跨平台支持
- 内置用户信息
- 集成第三方库
- 内部企业的接口直连
- 分层搜索,应对不同需求层次的客户
- 插件市场、硬件函数
这里可以看到,上面描述的功能与平面设计、动画设计、社交软件、创业创新相关。 这些基础设施实际上就是一套 “用于生产软件的软件”,我们可以把它们叫做元软件。 只有把这些基础软件或模块搭建好了,它的上层建筑搭建起来才会更顺畅,更高效。 元软件会交给设计师,让设计师进行设计,而不是由程序员敲界面代码, 程序员的作用主要是给系统编写底层插件,这些插件会以积木的形式提供给设计师进行组装。 总而言之,元软件层对项目起到加速的作用。
当元软件层搭建好后,能实现什么上层建筑?
基于上述功能,可以快速开发 OGAS 内部的上层软件,包括但不限于:
- 人员缺口列表
- 成员劳动价值评估
- 供销系统
- 社交平台
- 永久贡献榜
- 创作分享平台
- 文档中心、知识中心
- 远程农场、远程采矿、远程会议、远程游戏
- 向外对接其它的软件
- 编译输出外部的软件
也可以快速制作各种插件,用于替代传统的各种管理软件。
它是一个编辑器,但也可以是一个平台,但它又不局限于普通的平台,它是新时代的 OGAS,它是《流浪地球》里的 莫斯 MOSS。
既然是一个这么庞大的东西,如果立即上马埋头做,结局多半是会不断的推倒重来,
所以,与其不断的推倒重来,我们不如静下心来好好规划一下。
后续我会做一些小实验,然后把这些小实验串联起来,构造出一个框架。
等框架比较成熟之后,再给大家做个汇报。