SAP之ABAP吐槽

工作快一年了,误打误撞一头扎进SAP,用起了以前从未听过的abap语言.

abap语言就是在黑客与画家中被Paul Graham极力挖苦的cobol语言的后代.当初看到add 1 to counter.也是被极度震惊了,现在则更多的是麻木,因为abap语言中弱智的语法太多了.最近的项目就是扫描abap源代码,更是见识了底层的那令人震惊的语法.我在想,abap我都能用的很好,还有什么语言可以难到我?!

这里附上一段刚入门abap时写的吐槽,事实证明我当时的吐槽是对的:

ABAP吐槽!!!

学了一段时间的ABAP语法,真是对ABAP很多的语法设计无力吐槽, 今天实在忍不住了,我要吐槽!!!
ABAP的语法肯定是一个庞大团队设计的,很多地方混乱/臃肿/不明所以,和我学过其他的语言如C/C++/Java/Python/VB相比,语法真是一坨屎!!!有意思的是我列举的其他语言都是一个或几个人设计的,而ABAP,肯定是一个团队设计的.我估算ABAP基本语法是一个团队,屏幕逻辑流语法是一个团队,ABAP Object是一个团队,加上人员更迭,规范不严才导致现在这些显而易见的问题.

ABAP的混乱

Function和Method的参数是极好的例子,简直非人类.import/export/importing/exporting/exception/exceptions,关键字真尼玛多啊! BUT! 不要看import就是import喔,它也可能是export,定义函数是import就是'import',调用时呢,importing就是'export'.意义相反噢,不要搞错了.从这一处的混乱可以大致猜测定义Function和调用Function的语法是由两拨人发明的,都是从自己的角度考虑问题.碰到关键字动词要考虑ing,碰到名称要考虑加不加s,真是痛苦,感觉自己不是在编程,而是在复习英语.

ABAP语法和屏幕逻辑流语法不兼容也是一个鲜活的例子.逻辑流常用的process有PBO和PAI,在PBO或PAI里调用module达到模块化的目的.调用module的是屏幕逻辑流语法,定义实现module用ABAP语法.
还有空格问题也比较混乱,不记住基本都会用错,小括号两侧要不要加空格,减号-两侧要不要加空格都是有讲究的.具体就不细说了,严重影响篇幅.

ABAP的臃肿

ABAP语法中很少用到中括号或大括号(或者说没有用到?我是没见过),所以一个语法块的开始与结束就需要用end喽.而一个事件块的结束又没有end喔,当心了.

关键字暴多!ABAP的语法离了关键字完全没法活啊,极难找到哪条语句里面没有关键字啊(看了标准教程得知每条语句第一个单词必为关键字!),这些关键字还大写,还特么没有简写, 读起来用起来暴费劲! 最尼玛关键的是ABAP自带的旧版编辑器竟然没有关键字提示,不得不一个个手输啊,关键字definition/inheriting/implementation可真够长的!新版编辑器倒是提供关键字提示功能了. 可是! 可是! 用新版编辑器打开旧版编辑器创建的代码, 竟然乱码!!我靠,第一次碰到英文也乱码,public能给你整成pu /n blic,CLASS能格式化为cl /n ass,唉, 无力吐槽, 这是不是同一家公司的产品?!?!
整体语法太依赖关键字,入门虽简单但是熟悉了后会觉得很繁琐.举个栗子: 调用对象中的函数不是go_obj->create(),而是CALL METHOD go_obj->create,可是又有CALL METHOD go_obj->create(f)这样的用法,既混乱又臃肿.
在面向过程的ABAP中到处都是全局变量,为了区分所有变量的范围,在变量命名时不得人工添加gt_gs_lt_ls_gv_lv_这些前缀以增加代码可读性.

ABAP的不明所以

缩写没有规范.我是没感觉到有什么规律,大部分都只能碰到一个查一下再记住,没有什么特别的缩写规律.比如说DDIC是Data Dictionary的缩写,ALV是ABAP List Viewer的缩写,tab一般是table的缩写,ref是reference的缩写.PF-status这个缩写我一直都不知道全称是什么,苦恼. 还有slis,slvc,lvc,cl,kkb什么的,都是不知全称的.

合写就更混乱了,table name可能合写为table_name/tabname/tablename,field catalog可能合写为fieldcatalog/fieldcat. 这些混乱的用法就导致碰到一个没见过的词时经常不明所以,搞不定确切含义.同时在使用没用过的功能时不能按规律的猜测,必须翻看文档,否则极易用错.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 170,565评论 25 707
  • 昨天看到最震撼的消息莫过于年仅28岁的乔任梁意外死亡。想必其中的细枝末节大家也看得很多了。震惊叹息的同时也让我想到...
    喵辛束阅读 2,203评论 14 34
  • 很多人问我,我高中生活怎么过得,重来你会怎样。我回道,遇到一真心相爱的人,碰到几个知心好友,即使高考太不如意,爱人...
    鲁家欣阅读 228评论 0 0
  • 我行在路上 清瑟的秋风吹乱我的发梢 芬芳的岁月轻吻我的面庞 流淌的年轮绕过我的指尖 风过,叶离落 满地,一片缤纷一...
    纤子墨阅读 360评论 2 13
  • 受邀,参加由百合花家委会倡议的秋季郊游,于是,趁着秋意正好,一起走走…… 从未开过这里,于是,都抱着好奇,开启了一...
    百合花教主阅读 733评论 0 1