I'm a student, not a professional. This cryptocurrency is only developed by volunteers.
Like JS, you never know what type is a variable: e.g.
"0" is considered as a number or an empty string, and
'0e1234' == '0' is true.
Because it's not compiled, you only see an error when it happens, and some errors are ignored so the script continues with bugs.
I maintain a website run by PHP since 3 years (with a lot of interactions with database and uploaded files), it has always been a hell to fix a bug or add a feature. Sometimes something breaks and we just don't know why.