从SAP社区上的一篇博客开始,聊聊SAP产品命名背后的那份情怀
最近Jerry在SAP社区上看到一篇博客:It's Steampunk now.
博客原文:https://blogs.sap.com/2019/08/20/its-steampunk-now/

什么是Steampunk(蒸汽朋克)? 豆瓣上有一篇名为10大蒸汽朋克风格电影的文章,开篇就给出了蒸汽朋克这个合成词的定义:
(1) 往往依靠某种假设的技术,营造出一个平行于19世纪西方世界的架空世界;
(2) 在蒸汽朋克的世界里,经常是落后与先进共存,魔法与科学共存;
(3) 大多数蒸汽朋克作品总是着重强调科学技术失控的可能性。从某种意义上说,蒸汽朋克都是反乌托邦的;
(4) 大量出现一些造型古朴但结构复杂,形式古典但功能现代的机械装置、交通工具甚至武器。
https://site.douban.com/guokr/widget/notes/1670101/note/174969379/
Jerry还没有阅读,就非常确信,里面一定有《变异编年史》的一席之地——这是一部给Jerry留下极其深刻印象的蒸汽朋克风格的科幻电影。对蒸汽朋克风格的电影感兴趣的朋友,Jerry觉得这部电影值得一看。

起源于上世纪80年代的ABAP语言,连同Netweaver一起,在过去几十年风云变幻的企业管理软件领域里,已经被证明是一个极其成功的开发平台。

一方面,全球海量的客户的业务运行在基于ABAP的SAP解决方案之上,另一方面,随着当今业界云转型浪潮的深入进行,SAP也相应推出了越来越多的云解决方案,比如在数字化转型中扮演了数字核心角色的SAP S/4HANA,在云端的对应解决方案即S/4HANA Cloud.
Jerry之前的一系列关于Kyma的公众号文章已经提到,对于SAP C/4HANA来说,SAP Cloud Platform Extension Factory是其重要的二次开发工具和平台。
同样的,对于完全由ABAP语言编写的S/4HANA和Cloud版本来说,同样需要提供一个类似的平台,允许其客户和partners在其上方便地进行二次开发。最理想的情况,就是partners之前在On-Premises系统里积累的开发技能可以继续使用,同时在这个新的平台里,能够方便地使用SAP云平台上提供的各种基于云的功能强大的服务。
至此,一种新的ABAP运行环境,呼之欲出。

和Golang,Scala,Swift这些诞生于本世纪的编程语言相比,ABAP在某些人的眼中或许显得有些老态龙钟,步履蹒跚,跟不上现在云时代IT技术发展的步伐了。
然而SAP内部的ABAP和SAP云平台的工程师们,厉害之处就在于,通过双方的通力合作,使得某些“评论家”眼中的ABAP这部老爷车,就像《变异编年史》里添加了煤燃料的蒸汽机车一样,一飞冲天,重新跃入了云开发领域的天空。

SAP Cloud Platform ABAP Environment的诞生,我们固然应该感谢SAP云平台和ABAP的相关工作人员。然而,真正的画龙点睛之笔,在于这个环境的命名,就像Harald Kuck在SAP社区上发布的博客一样:Steampunk.

反正Jerry觉得这个命名非常形象,每次看到它就想到了《变异编年史》里那台锅炉里添加了大量煤燃烧之后,冒着浓浓黑烟缓缓升空的蒸汽机车(见下图《变异编年史》剧照)。

Jerry觉得,Steampunk这个命名背后的那份情怀,值得每位ABAP从业人员为它点个赞。
当然SAP其他产品的命名也是不乏亮点的。比如我们打开UI5相关的各种网页,都能在页面的各个位置看到一只醒目的凤凰-Phoenix. 没错,UI5项目最初的内部代号就是Phoenix.


Jerry没有在内网上查到UI5命名为Phoenix的原因,不过我个人的解读是,结合UI5诞生的那几年的背景来看,当时SAP Fiori UX尚未正式发布,SAP已有的产品,其UX无外乎ABAP BSP / Webdynpro / Silverlight UI几种,那么能不能把基于UI5的Fiori UX,理解成一个凤凰涅磐般崭新的UX解决方案?

Fiori又是另一个几乎每位SAP从业者都不陌生的命名。
如果我们在搜索引擎里以Fiori作为关键字搜索,能看到各式花的图案:

这丝毫不奇怪,因为Fiori就是意大利语里表示“花”的单词。因此很多基于Fiori UX的SAP系统,默认的登录页面的背景图案,都是一朵鲜花。

SAP Fiori UX一路发展到了现在的3.0版本,每个版本的设计细节可能会有差异,但核心设计理念始终基于以下五个原则:
- Role Based
- Adaptive
- Coherent
- Simple
- Delightful

其中第五个准则,Delightful——令人愉悦的,宜人的,这个特质不正是搜索引擎里以Fiori作为关键字,搜索出来的花朵给人的感受么?
Google推出的Kubernetes在容器编排领域早已是一个如雷贯耳的名字了。就像其logo的图案一样,Kubernetes来自古希腊语,意为“舵手”,“领航员”。Google想在容器编排领域充当领导者的意图,在这个霸气的命名里体现得淋漓尽致。

而基于Kubernetes打造而成的SAP Cloud Platform Extension Factory,项目代号为Kyma,或许是为了向Google的Kubernetes致敬,Kyma同样来源于古希腊语,意思是“Wave(浪花)”。

一个是舵手,一个是浪花,二者相得益彰,一切尽在不言中。

Cloud for Customer的从业者,如果调试过C4C前端的JavaScript代码,可能会注意到这些以Oberon开头的一系列js文件:

我的同事Yang Joey在他的文章SAP移动应用解决方案之一:HTML5应用 + Cordova = 平台相关的混合应用里也介绍过,如果把C4C Android平台应用的apk文件的扩展名改成zip然后解压之后,会发现它实际上是一个通过Cordova打包的web应用,其中就包括oberon.zip——C4C UI框架的实现。

Jerry照例以Oberon为关键字进行了搜索,得知其本意是天王星的27颗卫星之一:欧贝隆。
天王星的27颗卫星中,五颗个头最大,按照距离天王星的远近,由近到远分别为:天卫五(米兰达)、天卫一(艾瑞尔)、天卫二(乌姆柏里厄尔)、天卫三(泰坦尼亚)和天卫四(欧贝隆).
情怀啊。

当然SAP还有很多产品的内部代号没有像Steampunk这样,由相关同事在社交媒体上发布出来,因此Jerry也不方便越俎代庖地在本文透露出来。
发两张包含了两个内部代号的图片,感兴趣的朋友不妨一猜。


要获取更多Jerry的原创文章,请关注公众号"汪子熙":

从SAP社区上的一篇博客开始,聊聊SAP产品命名背后的那份情怀的更多相关文章
- VSCode上发布第一篇博客
在VSCode上发布到博客园的第一篇博客 前段时间在VSCode安装好插件WriteCnblog,多次检查writeCnblog configuration配置信息也是完全正确的,但是一直没能在VSC ...
- 鸿蒙内核源码分析(根文件系统) | 先挂到`/`上的文件系统 | 百篇博客分析OpenHarmony源码 | v66.01
百篇博客系列篇.本篇为: v66.xx 鸿蒙内核源码分析(根文件系统) | 先挂到/上的文件系统 | 51.c.h.o 文件系统相关篇为: v62.xx 鸿蒙内核源码分析(文件概念篇) | 为什么说一 ...
- v79.01 鸿蒙内核源码分析(用户态锁篇) | 如何使用快锁Futex(上) | 百篇博客分析OpenHarmony源码
百篇博客分析|本篇为:(用户态锁篇) | 如何使用快锁Futex(上) 进程通讯相关篇为: v26.08 鸿蒙内核源码分析(自旋锁) | 当立贞节牌坊的好同志 v27.05 鸿蒙内核源码分析(互斥锁) ...
- 第一篇博客:HTML:background的使用
开篇 我是一名程序员小白,这是我写的第一篇博客,在学习的路上难免会遇到难以解决的问题,我将会在这里写下我遇到的问题并附上解决方法 希望可以对各位有所帮助!! 我们在html中经常会遇到这样的问题 例如 ...
- 手把手教从零开始在GitHub上使用Hexo搭建博客教程(三)-使用Travis自动部署Hexo(1)
前言 前面两篇文章介绍了在github上使用hexo搭建博客的基本环境和hexo相关参数设置等. 基于目前,博客基本上是可以完美运行了. 但是,有一点是不太好,就是源码同步问题,如果在不同的电脑上写文 ...
- 第一篇博客:Hello World
2016年10月10日,双十,好日子,决定开始写第一篇博客,标题想了会,就叫Hello World 吧,哈哈^_^. 首先感谢博客园的管理们能批准我的申请,记得在14年的时候申请过一次,竟然没申请通过 ...
- 通通的最后一篇博客(附自制html5平面射击小游戏一枚)
这是我最后一篇博客了,由于本人的人生规划吧,以后应该也写不出什么好的技术文章了,到现在在博客园写了2年, 今天一看,我也有了120个粉丝,好几万的浏览量,感谢大家的支持啊~~ 半年没有写博客了,由于半 ...
- 第一篇博客 ---- 分享关于Maven使用的一些技巧
Maven环境搭建 在官网上下载maven安装包,地址:http://maven.apache.org/download.cgi . 解压文件到电脑坐在盘符目录,如E:\apache-maven-3. ...
- 关于” 记一次logback传输日志到logstash根据自定义设置动态创建ElasticSearch索引” 这篇博客相关的优化采坑记录
之前写过一篇博客是关于记录日志的简单方式的 主要就是 应用->redis->logstash->elasticsearch 整个流程的配置方法和过程的 虽然我们部分线上应用使用 ...
随机推荐
- 008-SpringBoot发布WAR启动报错:Error assembling WAR: webxml attribute is required
一.Spring Boot发布war包流程: 1.修改web model的pom.xml <packaging>war</packaging> SpringBoot默认发布的都 ...
- Egret中的对象池Pool
为了可以让对象复用,防止大量重复创建对象,导致资源浪费,使用对象池来管理. 一 对象池A 二 对象池B 一 对象池A 1. 支持传入构造函数 2. 支持预先创建对象 3. 支持统一执行函数 /** * ...
- python解决排列组合
笛卡尔积:itertools.product(*iterables[, repeat]) import itertools for i in itertools.product('BCDEF', re ...
- 【翻译】生成 Timestamps / Watermarks
本文翻译自flink官网:https://ci.apache.org/projects/flink/flink-docs-release-1.7/dev/event_timestamps_waterm ...
- 【翻译】Flink Joining
本文来自官网翻译: Joining Window Join(窗口join) Tumbling Window Join(翻滚窗口join) Sliding Window Join(滑动窗口join) S ...
- 【计算机视觉】OpenCV篇(9) - 轮廓(寻找/绘制轮廓)
什么是轮廓? 轮廓是一系列相连的点组成的曲线,代表了物体的基本外形. 轮廓与边缘好像挺像的? 是的,确实挺像,那么区别是什么呢?简而言之,轮廓是连续的,而边缘并不全都连续(见下图示例).其实边缘主要是 ...
- mysql函数IFNULL的使用替换递归方法
在电商行业经常遇到的问题就是类目与类目以及类目与商品的关系. 如果要查询一级类目下的所有商品 常规做法是先查询该一级类目下所有的二级类目,再由二级类目查询所有的三级类目,直到最后一级,再查询出对应的商 ...
- CentOS的开发环境配置(Python、Java、php)
CentOS安装Python 一.Python源代码编译安装 yum -y install wget yum -y install zlib zlib-devel yum -y install bzi ...
- k8s中configmap的使用方法
ConfigMaps允许您将配置构件与映像内容解耦,以保持容器化应用程序的可移植性.本文展示如何创建configmap,修改configmap以及如何把configmap应用于pod. 创建con ...
- 高级UI-自定义动画框架
有的时候会需要做一些自定义的动画效果,在会反复用到的动画效果可以考虑做成动画框架,方便使用,做成框架的话就需要考虑很多的问题,最典型的问题就是属性和方法必须要是可配置的,这里就来聊一聊自定义动画框架的 ...