While generally the information in the two linked articles is good, there are times when that information is either misleading or just plain wrong.
Some examples:
1. Twine (2.x) is not a programming language, it is a Intergrated Development Enviroment and each of the Story Formats included with it define their own custom macro based programming language.
2. Story Variable initialisation should not be done within the first passage of your project. For Harlowe that should be done within a startup tagged special passage