Most programming languages for Windows are quite daunting to start out on as they allow the development of programs that use all of the capabilities of Windows and are supplied with many pre written frameworks.
IPL sacrifices this flexibility but in exchange it allows you to write programs that look very similar to 1980s home computer BASIC.
The other big problem when learning programming is not only do you need to know what command you want to use but also exactly how the command should be structured, imagine that you want to draw some text on the screen.
DrawText 10,10,20,20,"Some Text",Left,Opaque
I think the most people will recognise the purpose of the above command, but are the values for the area to draw the text in; top,left,bottom,right or top,bottom,left,right, or is the correct layout
DrawText "Some Text",Left,Opaque,10,20,10,20
Learning the exact order is necessary but also sort of pointless and is a big stumbling block especially if you are working by yourself with no one to ask.
Unlike traditional programming languages which allow you to type whatever you want and then complain about it later, Initial Programming Language uses
Dialogs for every instruction allowing you to quickly achieve results.
Despite the use of dialogs it is not a drag and drop type language with limited capabilities, one of the example programs is a space invaders type of game.
If you are an experienced Windows programmer then you will know about the Message Queue and Messages such as WM_PAINT, WM_MOUSEMOVE etc.
The message queue is the biggest difference between programming under Windows and programming on a home computer in the 1980s.
Instead of the program asking for input or deciding to redraw the screen Windows tells you that you a key was pressed or the mouse was moved, this means that a normal Windows program looks very different and has a lot of "plumbing".
The Initial Programming Language doesn't expose the Message Queue, instead the really important messages are handled by what we call
Sections.
The messages handled are paint, mouse movement, buttons up and down, key down, char and finally timer expired, these turn out to pretty much all that you need when getting started.
Things like window resized just get safely discarded, but when you get to the point of caring about things like this it is probably time to move onto another language.