Open-Sourcing Inform 7
emshort.com
emshort.com
So, it's nice to hear that he's making concrete steps forward, but the bottom line is that he's still not open-sourcing it, just continuing to promise to open-source it, as he has been doing for many years.
With that in mind, I think the title of the HN post is misleading; it would be more accurate to entitle it "Not Open-Sourcing Inform 7", and still better to entitle it "Not Yet Open-Sourcing Inform 7."
And that's a shame, because Inform 7 looks like one of the most interesting experiments in programming-language design today, and has been for years. Years that I haven't tried it, because downloading and installing proprietary software is not my idea of a fun pastime.
So again, you have reason to be skeptical. But there are also reasons to hope.
I for one am very interested in his ideas around exporting the world model to other areas, like Unity. That way you can script your world in Inform 7 and then make it available in e.g. a 3D RPG with a bridge between the two. Obviously that's years away, but it's an interesting idea.
Finally, the main concern here is that there's just so much here that has lived in the author's head for decades (18 for Inform 7 alone) that it will be daunting for new contributors to get involved.
Basically from my point of view he's asking other people to put themselves at risk of having their creative work destroyed, in order to avoid risks to his ego.
I built a project with a friend that was half the size of this one and less complex. At one point we had to decide whether to open source it or shut down the project entirely. The amount of work to get it to the point of open sourcing it so that anyone could meaningfully contribute to it (or even build it without a very specific setup) was daunting, and I simply didn't have the time or energy to go through with it.
The fact that he's spent years getting it ready is a testament to his dedication to the community.
Finally, you have no way of knowing what his contingency plan is. He may have passwords and instructions detailed to transfer control to someone else in the event of his death.
The fact that your build setup was poorly documented provided you with no incentive to use the legal monopolies granted by copyright law against your users. I agree that it's important to go beyond the mere legal grant of rights to study, copy, modify, and redistribute software, for example by simplifying and documenting your build system. But not having done that, or not yet having done that, is no excuse for not having done the more basic step of simply granting them the legal rights that the law ought to grant them in the first place, but doesn't; nor for keeping secret the source code to the software your users were depending on, preventing them from modifying it even if they were capable of figuring out how to compile it.
And it's true, I have no idea what his contingency plan is. But you are suggesting some kind of secret Rube-Goldberg-style legal setup as a substitute for the simple and straightforward publication of source and promulgation of a license like the Artistic License he plans to use. That would also be much safer, legally, since there's no room for heirs, debtors, or lawyers contesting a will, auctioning off the copyright to the software in order to pay debts or legal fees, etc. A much more likely case is that he simply doesn't have any plans for that situation because he isn't worried about it, and you've been reading too many silly novels.
It will be great to see an open source version and maybe this will result in improvements that attract new authors, but in practice, Inform 7 being a closed-source tool has not been any trouble for existing game authors and the risk is no greater than before.
Creative work built on proprietary software is like a sand castle below the high-tide line, except that the tide won't try to monetize your castle by bundling malware into it.
This just isn't a problem. Open source emulators are available. You don't need Inform 7 to run old games from ifarchive.org.
(Often, authors release their games without source, so having Inform 7 wouldn't do you any good anyway.)
I think the approaches could work together well. Bootstrappable builds reduce the size of the binary you have to trust, and DDC can act as a check on a binary.
Thanks for asking!
Funny thing is I always assumed it was already open source.
But to 6th graders I taught CLI basics and Inform7 (all on the command line).
It was one of the most successful "programming and computer basics" courses I've ever run. A fair amount of custom tooling to make it run smoothly, but a shared VPS for the students and some deploy scripts made it possible to not only make individual games but also collaborate on a larger scale game written collaboratively (each user writing their own set of rooms which was compiled automatically into a full game).
What is very unusual about it is that it creates a programming language for interactive fiction that looks very much like natural language. Its tools are very friendly for new users.
If you're curious about what the language looks like, you could look at my tiny game Accuse https://dwheeler.com/accuse/ and in particular read its source code: https://dwheeler.com/accuse/source.html
[1] https://en.wikipedia.org/wiki/Object_Process_Methodology
I've read plenty of Inform 7 source code (see e.g. https://github.com/i7/counterfeit-monkey/blob/master/Counter... ).
And I read Knuth's book "Literate Programming" in formative years and loved the idea.
But somehow I never connected Inform 7 as generically a live, working modern example of literate programming. That's pretty silly! The language is full of dozens of good examples of worked programs, albeit nearly all written as one kind of text in/text out/parser interaction.
One difference I maybe see is that Knuth writes a book about a program which is built in a very didactic fashion such that every single bit of source code is commented with a detailed explanation of what it does. In real life, though, most Inform games have a bunch of utility code that is not super well commented but is needed to glue things together; and the way that real large Inform games are written means that the program isn't quite as narrative as the example Knuth gives. The program certainly tells a story when interpreted, but the source code of the program itself doesn't tell a story in quite the way that I kind of read Knuth's book as promising.
About half of some of the best IF of 2018 was written in Inform 6 or 7 ( https://ifdb.tads.org/poll?id=mryx4c8bzwym7rvy ), so it's doing fairly well, even if many good authors have been tempted by other options, up to and including roll-your-own.
Separately, I have struggled to find an interpreter on latest OS X that loads all of those 2018 games reliably -- what is the community's preferred Mac interpreter now?
I did try to solve the first two problems by trying Inform 6, but it's just not a great language and that third problem is a sticky bugger. (:
Anyway, Inform has an extremely powerful and featureful IF engine, and one that I dearly wish I could tap into using some kind of decent programming language (even ZIL!). It going open source gives me hope that that might become possible in the future.
If anyone knows of any good IF libraries for existing programming languages (especially Lisp) that would be awesome.
BTW I tried to feed some Inform 7 code to APE[1], which is a parser of an English subset written in Prolog, without much success as I recall.
As for existing IF tools the first come to mind are Twine and Ren'Py.
I've heard that people who get annoyed with both 1 and 2 usually use TADS instead of Inform.
Curious: Is TADS3 open source?
Nice to see literate programming used in the project.
https://github.com/realnc/frobtads/blob/master/tads3/LICENSE...
"Closed source" has not had a similar education campaign, so it still defaults to the common-sense meaning of "source not publicly available". The opposite of "open source" is "proprietary".
Its like literally the only read only programming language I know of.
Code which looks like english makes the implicit suggestion that you can program it in english, but in fact, like all languages, it only accepts a very narrow syntax. This makes the language exceedingly frustrating to use.
Its more or less a coincidence induced by sloppy human thinking that we are "communicating" with computers when we program. Honestly, I'd almost rather program in assembly than in any of these absurd "natural" languages.
Perhaps after it's open sourced, someone will look into grammar improvements?
"(4) The unreleased tools needed to build and test Inform were far worse, some being huge Perl scripts which were just mazes of twisty little passages. They were nowhere close to being releaseable in quality. One reason Inform hasn’t been open source in some years is that this infrastructure was such a mess. But not being open source is an existential threat right there."
It is a very different domain specific language. I recommend looking at this to see a programmer's view:
http://www.ifwiki.org/index.php/Inform_7_for_Programmers/Par...
> Core Inform is written in ANSI C, properly speaking C99. That was the first decision I took, in 2001, and it was the wrong choice. I had my reasons, but C++ would have been better for the heterogenous tree structures you need inside of compilers. I feel much happier about my other early decision, which was to adopt literate programming.
> Literate programming was invented by Donald Knuth in the 1970s: he was responsible for the slightly insulting name, as if all other programmers are illiterate. The idea is to write a program like an essay, with a narrative, so that its source code can be read by humans as well as computers. This is not just about commentary: it's about making long or complex functions more comprehensible.
> Literate programming is not a popular choice today. The canonical primers on software are respectful but basically tell you not to use it: "Code Complete", for example, or "The Art of Unix Programming". It failed to catch on for several reasons: most programmers do not like to write essays. Most code has a short shelf life anyway. Commentary in code is out of fashion these days, and some coders even consider it harmful.