我已经工作快一年了。 我误入SAP,开始使用以前从未听说过的abap语言。
abap 语言是保罗在黑客和画家中讽刺批评的 cobol 语言的后代。 当我看到 add 1 to 时,我感到非常震惊。 现在我更加麻木了,因为abap语言里有太多弱智的语法。 最近的项目是扫描abap源码,看到了令人震惊的底层语法。 我在想,我可以很好地使用abap,还有什么语言对我来说是困难的?!
下面是我刚开始abap时写的一段抱怨。 事实证明我当时的抱怨是对的:
ABAP投诉!!!
研究了一段时间ABAP语法,我对ABAP的很多语法设计实在是没什么可抱怨的。 今天我实在受不了了,我要投诉!!!
ABAP的语法一定是由一个庞大的团队设计的。 很多地方很混乱/臃肿/不清楚。 和我学过的其他语言比如C/C++/Java//VB相比,语法真是一坨屎!!! 有趣的是,我列出的其他语言都是由一个人或几个人设计的,但ABAP绝对是由一个团队设计的。 我估计ABAP基础语法是一个团队,屏幕逻辑流语法是一个团队,ABAP是一个团队,加上人员变动,监管不严,导致了这些明显的问题。
ABAP的困惑
和 的参数都是极好的例子,简直不人道。/////,关键字这么多! 但! 别看,也有可能,定义函数只是'',调用的时候,却是''。 意思是相反的,别误会。 从这里的混乱,我们可以大致猜测,定义和调用的语法是由两组人发明的,他们都从自己的角度考虑问题。 遇到关键字动词的时候,想着ing,遇到名字的时候考虑要不要加s,真是痛苦。 感觉我不是在编程,而是在复习英语。
ABAP语法与屏幕逻辑流语法的不兼容也是一个生动的例子。 常用的逻辑流程有PBO和PAI,在PBO或PAI中调用,实现模块化。 调用屏幕逻辑流语法,并使用ABAP语法定义实现。 。
还有空间问题,这很令人困惑。 如果你不记得,你几乎总是会错误地使用它们。 对括号两边是否加空格、减号两边是否加空格都有特殊要求。 细节我就不说了,严重影响空间。 。
ABAP膨胀
ABAP语法中很少使用方括号或者大括号(或者说没有使用过?我从来没有见过),所以一个语法块的开头和结尾都需要使用end。 并且事件块的结束没有结束。 , 当心。
关键词实在是太多了! 如果没有关键字,ABAP 语法就无法生存。 找到没有关键字的语句是极其困难的(在阅读标准教程后,我了解到每个语句的第一个单词必须是关键字!)。 这些关键字都是大写的,并且没有缩写。 阅读和使用都非常困难! 最烦人的是ABAP自带的旧版编辑器没有关键字提示,得手动一一输入。 关键字//真的很长! 新版编辑器确实提供了关键字提示功能。 但! 但! 当我用新版编辑器打开旧版编辑器创建的代码时,竟然是乱码!! 妈的,第一次遇到英文,也是乱码。 它将为您格式化为 pu/n blic。 CLASS 可以格式化为 cl/n ass。 唉,我不能抱怨。 这是同一个公司的产品吗?!?!
整体语法过于依赖关键字。 虽然上手很简单,但是一旦熟悉了就会很麻烦。 例如:调用对象中的函数不是->(),而是CALL->,但也有CALL->(f)。 用法混乱且臃肿。
在面向过程的ABAP中到处都有全局变量。 为了区分所有变量的范围,在命名变量时一定不要手动添加这些前缀,以增加代码的可读性。
ABAP 尚不清楚的地方
没有缩写规则。 我不觉得有什么规则。 大多数只有遇到一个之后才能查找和记住。 没有特殊的缩写规则。 比如 DDIC 是 Data 的缩写,ALV 是 ABAP List 的缩写,tab 一般是 table 的缩写,ref 是 PF 的缩写——我一直不知道这个缩写的全名,很苦恼。 还有slis、slvc、lvc、cl、kkb等,但不知道全名。
共同写作更是令人困惑。 表名可以合写为//,字段可以合写为/。 这些令人困惑的用法导致在遇到以前没有见过的单词时经常会感到困惑,并且无法确定确切的含义。 同时,当使用从未使用过的函数时,你无法根据规则进行猜测。 一定要阅读文档,否则很容易错误使用。
SAP官方声明:我们总是谈业务,但技术低;
ABAP确实是一门比较独特的语言,加上德国思维和缩写,包括一些表、系统保留字等命名约定,无法直接理解;
On HANA之后,ABAP代码发生了翻天覆地的变化,习惯其他通用编程语言的人有福了;
我们将在后续的分享交流中推出ABAP on HANA的精彩文章,敬请期待。
SAP 打造 SAP 首个共享平台!
SAP分享精彩文章:回复HANA,看HANA应用绝对要领。 回复职场,看看SAP职场的各个方面。 更多精彩内容,敬请关注。
长按指纹关注“SAP共享交换”