从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 整个流程的配置方法和过程的 虽然我们部分线上应用使用 ...
随机推荐
- MySQL数据库双机热备------主-主备份配置
MySQL数据库双机热备------主-主备份配置 实验环境: 主1数据库 192.168.1.1 centos6.5 x86_64 +MySQL5.5.35 主2数据库192.168.1.2 Wi ...
- Qt编写自定义控件66-光晕时钟
一.前言 在上一篇文章写了个高仿WIN10系统的光晕日历,这次来绘制一个光晕的时钟,也是在某些网页上看到的效果,时分秒分别以进度条的形式来绘制,而且这个进度条带有光晕效果,中间的日期时间文字也是光晕效 ...
- nginx调优(一)
(1).隐藏nginx版本号 隐藏版本号可以有效避免黑客根据nginx版本信息,查找对应漏洞进行攻击. 下载nginx源码包(http://nginx.org/en/download.html)并上传 ...
- 报错:The specified datastore driver ("com.mysql.jdbc.Driver") was not found in the CLASSPATH. Please check your CLASSPATH specification, and the name of the driver.
报错背景: CDH中集成hive插件,启动报错. 报错现象: [main]: Metastore Thrift Server threw an exception... javax.jdo.JDOFa ...
- c# 子线程与主线程通信二
之前写过使用线程上下文实现线程同步,今天利用子线程向主线程发送事件,实现子线程与主线程的同步 基本步骤 1.定义类 using System; using System.Collections.Gen ...
- docker常用管理命令
本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: 容器生命周期管理 — docke ...
- Flutter 路由传入中文参数报错无法push问题
flutter自带路由传递参数和使用第三方库fluro路由传递参数都可以通过一下方式解决问题 String jsonString = json.encode(mapValue); var jsons ...
- 阿里nacos k8s部署
阿里nacos k8s部署 [root@master1 nacos]# cat nacos-quick-start.yaml --- apiVersion: v1 kind: Service meta ...
- 基于libuv的TCP设计(一)
本人一直在寻找一个跨平台的网络库,boost与ACE比较庞大,不考虑.对比了libevent,libev,libuv后,最终选择了libuv.可libuv文档少,例子也简单,对于tcp只有个echo- ...
- vs.Debug.vector迭代器报错(_ITERATOR_DEBUG_LEVEL)
1.vs2017.Win7x64 std::vector<ULONG>,在 使用 *iter 取某个 ULONG时 报错,release不报错,报错信息: ZC:具体原理不明,暂时的解决方 ...