The other half is a pretty standard syntax, with exception to needing 'call function()', which feels like some old language with a strict statement structure. But the semantics are actually quite similar to JavaScript, dictionaries especially are very straightforward.
To me the worst part of Vimscript is that it allows every word and command to be reduced to the minimum unambiguous set of characters, which is understandable in one-offs in an editing context. But some developers take it a bit far doing big codebases with those horribly shortened keywords, as much as it can be done. It just detracts from the community (people who would like to read code are put off) and quality of open source output.
Those things we always hear about Vimscript sucking are mostly cargo culting by people with no experience with Vimscript in the first place. I personally hate the syntax of Ruby or Objective-C but I don't go around mocking those languages.
Anyway, your comment on shortening commands is very true. Case in point, the great CtrlP plugin:
https://github.com/kien/ctrlp.vim/blob/master/autoload/ctrlp...
It's an awful read but, once you replace all the shorthands with full names, the code is very readable and straightforward. To me, it looks pretty much like a PHP/JS without braces.