* It attempts to minimize the amount of compiler/toolset knowledge a programmer needs to know to get most things done portably.* It attempts to minimize the amount of work a programmer does to build variations of the same code.* It attempts to "bake" the knowledge of tools and systems from experts so that non-experts can use those tools and systems.* And it attempts to do all that by modeling what a programmer is building instead of how to do that building.
A. My apprentice completed a three year programming course at a respected English university, Gaining a Distinction grade (the only person in his class to do so) - He did not know how to use the Debugger built into Visual Studio, He could not read Hexadecimal or Binary, He did not understand the meaning of "Stack Overflow". This is the generation to-which we will hand our creations - as dismal a fortune as that may be.