最近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产品命名背后的那份情怀的更多相关文章

  1. VSCode上发布第一篇博客

    在VSCode上发布到博客园的第一篇博客 前段时间在VSCode安装好插件WriteCnblog,多次检查writeCnblog configuration配置信息也是完全正确的,但是一直没能在VSC ...

  2. 鸿蒙内核源码分析(根文件系统) | 先挂到`/`上的文件系统 | 百篇博客分析OpenHarmony源码 | v66.01

    百篇博客系列篇.本篇为: v66.xx 鸿蒙内核源码分析(根文件系统) | 先挂到/上的文件系统 | 51.c.h.o 文件系统相关篇为: v62.xx 鸿蒙内核源码分析(文件概念篇) | 为什么说一 ...

  3. v79.01 鸿蒙内核源码分析(用户态锁篇) | 如何使用快锁Futex(上) | 百篇博客分析OpenHarmony源码

    百篇博客分析|本篇为:(用户态锁篇) | 如何使用快锁Futex(上) 进程通讯相关篇为: v26.08 鸿蒙内核源码分析(自旋锁) | 当立贞节牌坊的好同志 v27.05 鸿蒙内核源码分析(互斥锁) ...

  4. 第一篇博客:HTML:background的使用

    开篇 我是一名程序员小白,这是我写的第一篇博客,在学习的路上难免会遇到难以解决的问题,我将会在这里写下我遇到的问题并附上解决方法 希望可以对各位有所帮助!! 我们在html中经常会遇到这样的问题 例如 ...

  5. 手把手教从零开始在GitHub上使用Hexo搭建博客教程(三)-使用Travis自动部署Hexo(1)

    前言 前面两篇文章介绍了在github上使用hexo搭建博客的基本环境和hexo相关参数设置等. 基于目前,博客基本上是可以完美运行了. 但是,有一点是不太好,就是源码同步问题,如果在不同的电脑上写文 ...

  6. 第一篇博客:Hello World

    2016年10月10日,双十,好日子,决定开始写第一篇博客,标题想了会,就叫Hello World 吧,哈哈^_^. 首先感谢博客园的管理们能批准我的申请,记得在14年的时候申请过一次,竟然没申请通过 ...

  7. 通通的最后一篇博客(附自制html5平面射击小游戏一枚)

    这是我最后一篇博客了,由于本人的人生规划吧,以后应该也写不出什么好的技术文章了,到现在在博客园写了2年, 今天一看,我也有了120个粉丝,好几万的浏览量,感谢大家的支持啊~~ 半年没有写博客了,由于半 ...

  8. 第一篇博客 ---- 分享关于Maven使用的一些技巧

    Maven环境搭建 在官网上下载maven安装包,地址:http://maven.apache.org/download.cgi . 解压文件到电脑坐在盘符目录,如E:\apache-maven-3. ...

  9. 关于” 记一次logback传输日志到logstash根据自定义设置动态创建ElasticSearch索引” 这篇博客相关的优化采坑记录

    之前写过一篇博客是关于记录日志的简单方式的   主要就是  应用->redis->logstash->elasticsearch 整个流程的配置方法和过程的 虽然我们部分线上应用使用 ...

随机推荐

  1. Qt编写自定义控件66-光晕时钟

    一.前言 在上一篇文章写了个高仿WIN10系统的光晕日历,这次来绘制一个光晕的时钟,也是在某些网页上看到的效果,时分秒分别以进度条的形式来绘制,而且这个进度条带有光晕效果,中间的日期时间文字也是光晕效 ...

  2. Laya的场景以及场景的加载

    参考: Laya项目发布详解 Laya2.0 内嵌模式.加载模式.分离模式.文件模式的场景加载创建和场景打开关闭 版本2.1.1.1 白鹭中的场景是exml制作,发布后exml代码都会打包到defau ...

  3. c#中多线程同步Lock(锁)的研究以及跨线程UI的操作 (转)

    https://www.cnblogs.com/tommyheng/p/4104552.html 本文只针对C#中,多线程同步所用到的锁(lock)作为研究对象.由于想更直观的显示结果,所以,在做de ...

  4. linux打印指定的行的内容

    使用sed打印第99行 sed -n '99,p' test.txt 使用awk打印第99行 awk 'NR==99' test.txt awk 'FNR==99' test.txt perl 完成 ...

  5. 039 Android SQLite数据库(了解)

    1.介绍 注意:当有大量相似结构的数据需要存储的时候,需要使用数据库. 2.SQLiteOpenHelper简介 注意:数据库的创建方法总结: (1)定义一个类继承SQLiteOpenHelper o ...

  6. 原生js 实现better-scroll效果,饿了么菜单内容联动,即粘即用

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  7. ant 节点和属性

    任务和javac命令是相似,它编译两种类型的java文件1)没有被编译的java文件2)曾经编译过,但是class文件版本和当前对应的java文件版本不匹配的java文件. 1)javac命令支持的参 ...

  8. STL源码剖析——iterators与trait编程#4 iterator源码

    在前两节介绍了迭代器的五个相应类型,并讲述如何利用traits机制提取迭代器的类型,但始终是把iteartor_traits类分割开来讨论,这影响我们的理解,本节将给出iteator的部分源码,里面涵 ...

  9. Python基础 — 数据类型转换

    Python 数据类型转换 有时候,我们需要对数据内置的内心进行转换,数据类型的转换,你只需要将数据类型作为函数名即可. 以下几个内置的函数可以执行数据类型之间的转换,这些函数返回一个新的对象,表示转 ...

  10. PAT甲级题分类汇编——树

    本文为PAT甲级分类汇编系列文章. AVL树好难!(其实还好啦~) 我本来想着今天应该做不完树了,没想到电脑里有一份讲义,PPT和源代码都有,就一遍复习一遍抄码了一遍,更没想到的是编译一遍通过,再没想 ...