So, I’ve been playing with Inform 7 for quite a while now and while I still make little mistakes here and there (honestly, who doesn’t?) there’s something I’ve begun to wonder. While I understand that Inform is rather unique in the “natural language” aspect of its programming and indeed, I have done some very basic things in other languages such as HTML 5 and extensive scripting for Oblivion and later Skyrim, I can’t help but wonder how well the skills learned from Inform could influence learning other languages.
So what do you all think? Does Inform make learning more ‘real’ programming languages easier, harder, or doesn’t really affect it at all?
Every new language you learn adds to the programmer-gestalt.
Easier, definitely. Because learning any programming language (including I7) teaches you the fundamental rule: a program will do what you tell it to do, no more, no less.
Any logical thinking activity will help for sure, but languages like TADS or even Inform 6 maps to other professional programming languages and required skills rather directly, while Inform 7 is quite unique experience. Don’t get me wrong, I do think it will enrich your skills, but my impression is that seasoned programmer will benefit more from the different perspective Inform offers than a newbie programmer, who wants to get better in basics of programming. Like programming blinking LED on Arduino will help more to understand other languages than programming same on FPGA chip, where you program rules which are essentially executed in parallel.
While the rule-based approach doesn’t seem to have come in useful in other languages I’ve dabbled in, there are some Inform concepts that seem to translate pretty directly to other languages. I’ve found myself mentally translating abstract-looking phrases like “for X in Y” into the Inform equivalent (“repeat with X running though Y”) because the Inform phrasing makes more sense to me.
Also, some general programming stuff that isn’t specific to Inform, but that I happened to learn while working on Inform projects, has been applicable, e.g. version control, “Don’t repeat yourself,” etc.
So I do think it has made some things easier.
Inform is not the first language I tried, though. I wonder if the natural language might have tripped me up more if I wasn’t already familiar with the idea that in programming, things must be phrased in a very particular way, or they won’t work. I think the natural language sometimes gives people the impression that the compiler can understand English. Also, the rules-based approach was hard to wrap my head around. I don’t know how it would’ve gone if using Inform had been my first attempt at programming.