A Descriptive Classification Of General Purpose Programming Languages For The Non-Professional Programmer