最近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. Win10 x64 pnglib Debug

    Win10 x64  pnglib Debug >------ 已启动生成: 项目: ZERO_CHECK, 配置: Debug x64 ------ > Checking Build S ...

  2. DBGrid 单击弹出PickList

    type   myGrid = class(TCustomGrid)   end; type   myInplaceEditList = class(TInplaceEditList)   end; ...

  3. (十四)访问标志 Access_flags

    一.概念 上一章节讲到了常量池,如下图,常量池之后便是访问标志acess_flags,占2个字节(u2). 二.例子 编写一个接口. public interface Test{ public fin ...

  4. tp 执行sql 语句

    $User = D('User'); $User->query('select * from think_user where status=1'); $User->execute('up ...

  5. 正确删除k8s版本jenkins的pod

    1.kubectl delete -f jenkins-deployment.yaml 或者先删除pod,再删除对应的depllyment 这两步都要执行否则删除pod不管用 2.删除数据目录下的数据 ...

  6. JSON和JSONP具体是干神马的呢? (含jQuery实例)

    说到AJAX就会不可避免的面临两个问题,第一个是AJAX以何种格式来交换数据?第二个是跨域的需求如何解决?这两个问题目前都有不同的解决方案,比如数据可以用自定义字符串或者用XML来描述,跨域可以通过服 ...

  7. Node.js Sequelize如何实现数据库的读写分离

    一.前言 在构建高并发的Web应用时,除了应用层要采取负载均衡方案外,数据库也要支持高可用和高并发性.使用较多的数据库优化方案是:通过主从复制(Master-Slave)的方式来同步数据,再通过读写分 ...

  8. pt-kill MySQL会话杀灭神器

    废话不多说,直接上例子: pt-kill --host=127.0.0.1 --user=xxx --password=xxxxxx --port=xxxx --busy-time 10 --matc ...

  9. java并发知识点

    前言 先列出java并发涉及的知识点,后面再慢慢补. java并发 1 常见概念 进程/线程 进程:程序执行的实体,操作系统资源调度资源分配的基本单元 线程:程序执行的最小单元,拥有独立的堆栈和局部变 ...

  10. Python22之lambda表达式

    一.Lambda表达式的概念和意义 lambda表达式有称为隐函数,它的定义过程由形参和要返回的表达式组成,它相对于一般函数而言具有以下优势: 1.免去了函数定义的过程,代码变得更加精简 2.省却函数 ...