For the first series of programming tutorials for people new to computer programming, I have chosen the combination of the C++ programming language and the Qt library and tools. Given the slightly complicated installation procedure and seeing that C++ is not specifically designed for beginners, people often ask me why I made this choice.
I will try to answer this shortly in the following paragraphs.
I mainly see the pros of the combination of C++ and Qt in its flexibility, as well as its usability for programming on different operating systems without changes to the code:
The possible crashes when not using pointers properly are not really a big deal in most of todays operating systems. If your program crashes, this will only affect the process and the part of the memory which has been used by this process. Where in older operating systems this might have caused the whole system to crash, requiring you to restart the system, current multitasking systems are usually not affected by this.
Of course I also thought about other options for programming languages for programming beginners, as well as different development environments etc.
The BASIC progamming language was an easy first choice - it has been designed to be used for learning purposes right from the start. The problem was that I did not find satisfying solutions for BASIC development tools which were free to download and use and at the same time available for all major PC operating systems (Windows, Mac OS X and Linux).
I could have started a tutorial using Visual Basic Express for example, but this would not have been that useful for budding programmers with MacOS X or Linux as the programs could only be used within a virtual machine running Windows and not the native operating systems themselves.
As a cross-platform programming language with cross-platform development tools, Java also would have made a good choice. I did not use this because first I am not that too proficient in Java programming and second Java does not offer options for direct, low-level hardware programming (only by calling external, usually in C or C++ developed functions from precompiled libraries).
In my mind, the advantages in using C++ and the Qt SDK for a programming tutorial (and programming projects) are bigger that the disadvantages. At the same time this offers more flexibility, while still being a cross-platform development environment.
So that is why I am using it here.