[HN Gopher] Inform 7 v10.1.0 is now open-source
___________________________________________________________________
Inform 7 v10.1.0 is now open-source
Author : nickmain
Score : 117 points
Date : 2022-04-28 18:12 UTC (4 hours ago)
(HTM) web link (intfiction.org)
(TXT) w3m dump (intfiction.org)
| foogered wrote:
| This is so exciting to see! I became obsessed with Inform7 a
| while back after I learned about it from "The best things and
| stuff of 2014" [1]. I remember scouring the web for its source
| code and being really bummed it wasn't open source. I can't wait
| to finally dive in! I've never seen a literate program of this
| scale before.
|
| [1] http://blog.fogus.me/2014/12/29/the-best-things-and-stuff-
| of...
| davidjhall wrote:
| Waited a while for this -- exciting! Uses Artistic License 2.0
| license
|
| The GUI isn't available until 3rd party developers release it in
| May --- currently it's command line only.
| EMIRELADERO wrote:
| Seems like the UI repos are already public
|
| https://github.com/TobyLobster/Inform for MacOS, maintained by
| Toby Nelson
|
| https://github.com/DavidKinder/Windows-Inform7 for Windows,
| maintained by David Kinder
|
| https://github.com/ptomato/inform7-ide for Linux, maintained by
| Philip Chimento
| dfabulich wrote:
| They're not yet updated to use the new open-source version.
| EMIRELADERO wrote:
| Is there any significant difference in the compiled
| binaries that would make it incompatible?
| anthk wrote:
| And the English library?
|
| Ah, maybe it comes bundled.
|
| Great news. I prefer Inform6, but having free languages to code
| IF it's always good.
| PaulHoule wrote:
| Inform 7 open source could be big news outside of interactive
| fiction. I met a EU air traffic control regulator who badly
| wanted "Inform 7 for business rules"
| KerrAvon wrote:
| My first thought was "isn't that COBOL?"
|
| But I think there's room for another attempt after 60 years.
| PaulHoule wrote:
| I am thinking about this sort of thing
|
| https://en.wikipedia.org/wiki/OPS5 https://en.wikipedia.org
| /wiki/IBM_Operational_Decision_Manag...
|
| Inform 7 has a very primitive rules engine and (to me) a
| very interesting model in which defaults and the overriding
| of defaults is a major strategy of control. For instance
| the default response to you typing in a command is
| basically printf("huh?\n")
|
| and then the commands you can type in are defined in terms
| of exceptions to that rule, exceptions to those exceptions
| and so forth.
|
| I tried to write a text adventure in Drools in a way
| inspired by Inform 7 and got to the 30% mark of a demo, I
| was convinced it was possible but that it wasn't for me
| because I couldn't make head or tail of the error messages
| I was getting because Drools syntax is an unholy mixture of
| the host language (Java) plus Drools-specific
| constructions. (One reason we can't have good things in
| programming languages is that we're still using your
| father's parser generators.)
|
| (The other time I wrote something unconventional with
| production rules, which was the control plane for a stream
| processing engine, I had no trouble coding it and little
| trouble with the error messages because I could read and
| understand the source code for the Jena Rules Engines...
| That didn't stop the Jena maintainers from telling me that
| my use case was unsupported.)
|
| It's sad that production rules became unfashionable when
| Duran Duran did because between the RETE algorithm,
| improvements on the RETE algorithm, and keeping rules in a
| hash table, production rules engines have improved
| dramatically since "expert system shells".
| munificent wrote:
| _> (One reason we can 't have good things in programming
| languages is that we're still using your father's parser
| generators.)_
|
| I don't think it's the parsing technology that's the
| problem. It's that designing a good grammar is actually
| quite difficult. It's like doing UX design, API design,
| and mathematics all at the same time.
| eismcc wrote:
| you could go back to the original LISP
|
| https://github.com/briangu/OPS5/blob/master/demo/ops-
| demo-ma...
| anthk wrote:
| Yeah, I tought that. You can create a pretty small (ye hugely
| playable) game even for MSDOS and a 286 with Inform6
| targeting the V5 version of the machine, and the V8 _may_
| requiere a 386 and up (any 24 /32 bit machine in the end,
| think Amiga/Atari with m68k), but IF7 it's overkill, you can
| do a lot more than games.
|
| Most games made with Inform6 are many times more complex than
| Infocom games (not to mention Zork/Dungeon and Adventure), so
| this is a crazy tool.
|
| It's like a literarian Prolog.
| Decabytes wrote:
| excited for someone much smarter than me to write a blog post
| going over some of the details of this!
| gtirloni wrote:
| If you, like me, have no idea what this is about, this page might
| be easier to understand:
|
| https://ganelson.github.io/inform/
| [deleted]
| adamrezich wrote:
| very cool. Inform 7 is a lot of fun to use, and open-sourcing it
| is exciting.
| cxr wrote:
| > For Inform that human-readable format is a website, rather than
| a printed book
|
| I dunno. I think hypertext, while well-suited to model
| traditional non-literate programs, really punts on the promise of
| literate programming. Even ignoring that--
|
| Previously:
|
| > _Have a look at this slide in particular:
| <http://inform7.com/assets/images/NS2/slide036.jpg> Here's an
| excerpt:_
|
| > "Once The Historian is done, the instructions are passed to
| Instruction::read, which parses them more fully (see below) and
| returns an intest_instructions object".
|
| > _It goes on in that style. This is reminiscent of every bad
| attempt I saw during Java 's heyday to ensure that a given
| codebase was 100% commented. People just end up writing
| "documentation" that consists of low-level repetition of what the
| code is doing_
|
| <https://news.ycombinator.com/item?id=25594817>
|
| The problem, it seems, with people who try to do literate
| programming, is that they're too close to the thing to be
| effective at fulfilling the promise that literate programming
| sets for itself. I'm curious to see if the 3 years' overhaul
| changed Inform 7 substantially so that it's no longer on this
| track. Keep in mind that at the time, the slide containing that
| snippet was supposed to be a _good_ example of literate
| programming--instead of what it actually was, i.e. an example of
| how not to do it...
| kragen wrote:
| This is wonderful news! Inform has been one of the most
| interesting programming languages for a long time, but it was
| always a fatal flaw that it was unfree. I'm so happy to hear that
| problem has finally been solved!
|
| It's under the Artistic License 2.0:
| https://github.com/ganelson/inform
| hlandau wrote:
| Amazing news. It's great this is finally open.
|
| I have quite a bit of respect for the fact that this is a
| successful, real-world program developed using Literate
| Programming. It's a style of programming which has interested me
| before, but like many other people, I've found it hard to do in
| practice, and tools to be lacking.
|
| As an aside, the interactive fiction community is from a
| technological perspective a fascinating microcosm, including from
| a CS perspective. You have not just one toolchain, but an entire
| ecosystem of competing virtual machine specifications (Z-Machine,
| Glulx, TADS, Hugo), compilers, and source languages, all
| intending to deliver architecture-independence and the ability to
| preserve IF for the ages, yet apart from all general-purpose
| technologies typically used for the task.
|
| Glulx is a simple, 32-bit virtual machine created to replace the
| Z-Machine. Both have numerous implementations. Glulx is itself
| used with an extensible I/O abstraction layer, and as I recall
| has been used with numerous I/O systems. Usually it is used with
| Glk, but I recall some outfits trying to sell commercial IF
| defined their own custom I/O system using the same Glulx virtual
| machine to provide greater capabilities.
|
| Inform 7, as people are probably aware, is itself an experiment
| in source languages which read like natural language. The
| compiler produces Inform 6 as an intermediate language, and then
| invokes the Inform 6 compiler. The Inform 6 language as far as
| I'm aware was a product of reverse engineering the Z-Machine, and
| is completely different to the language Infocom originally used
| to produce Z-Machine images (though I believe that source is now
| released for those with historical interest).
|
| It wasn't all Inform, though. TADS was an interesting second
| fiddle and one I personally preferred, being designed to appeal
| as far as I can tell more to programmers. The downside is it
| probably led to less popularity; though I personally don't really
| find myself thrilled at the prospect of writing Inform 7 with its
| unusual language, it's clearly won.
|
| TADS 3 in particular featured an extremely sophisticated object-
| oriented virtual machine, which was very complex compared to the
| simplicity of the 32-bit Glulx machine. It's an impressive piece
| of technical work which I find fascinating, but my understanding
| is that despite fairly good documentation on the system's
| internals, nobody besides its original author ever managed to
| write their own implementation due to its intricacy. The VM is
| open source so this isn't the biggest deal, but having multiple
| implementations is a big deal, especially for something intended
| to allow works to be preserved through the ages.
|
| Whereas the Inform ecosystem went with Glulx and the Glk I/O
| system, TADS chose to adopt HTML to facilitate formatting and
| multimedia functionality. This seemed like a natural choice, yet
| I distinctly recall finding it hard to find HTML TADS
| implementations for non-Windows platforms years ago. In the
| modern era, where people want to play IF in a browser, you would
| expect TADS to come into its own, but this has not been so. In a
| remarkably strange and in my view mistaken move, TADS chose to
| add web functionality by allowing (if I recall correctly) TADS
| projects to be recompiled so that the VM hosts a web server.
| Since it requires projects to be recompiled, and for two images
| to be shipped - one non-web, one web - it seems like an
| incredibly bad decision and undermines the whole point of having
| a universal image.
|
| There are countless other engines, of course - ADRIFT, which was
| popular due to its GUI-based editor. "Hugo", which was used for
| the commercial game "Future Boy" and which emphasized multimedia
| capabilities.
|
| Another angle to consider is sandboxing - all of these VM systems
| were designed to offer good sandboxing. Arguably the wider world
| is only just catching up with this now with the rising popularity
| of WebAssembly for non-web applications. The growth of the non-
| web WebAssembly ecosystem and sheer availability of different
| runtimes is really nice to see and the ready availability of VM
| systems which are both sandboxed and architecture-independent
| seems to be enabling all sort of interesting research and
| development. Who knows, maybe we'll see WebAssembly be adopted
| for IF-related use in the future.
| anthk wrote:
| >(though I believe that source is now released for those with
| historical interest).
|
| No. There was (and still it's) a huge ecosystem made with
| Inform6, even targetting the web if you chose GLULX and some of
| the settings which export the game for you.
|
| The Guide:
|
| https://www.inform-fiction.org/manual/download_ibg.html
|
| There's Inform6, the Inform6 English Library (and some other s
| such as INFSP6 for Spanish, kinda close to the English one, the
| syntax is the same, even for the objects), and two manuals: the
| IBG, and DM4, the Designers' Manual, for hardcore people who
| want to create for example new libraries doing unusual things.
| hlandau wrote:
| I'm unsure what you're responding to. The part you quoted
| refers to the original language used to produce Z-Machine
| files, ZIL. We know what ZIL looked like:
|
| https://www.filfre.net/2012/01/zil-and-the-z-machine/
| anthk wrote:
| Ah, ok you meant ZIL and Muddle. Yes, I've know them, but I
| never used them.
|
| Nowadays I've tried to ask some Dungeon/MIT maintainers to
| set Dungeon (Pre-Zork prototype which has the Zork I-II-III
| games condensed) under a free license, but I had no luck.
|
| EDIT: Also, IF6 it's pretty good by itself, the included
| English library it's pretty good for a common game,
| reimplementing new objects it's trivial.
|
| IF7 makes that easier, but forget about playing your games
| on DOS and Amiga machines.
| mycroftiv wrote:
| I'm happy and excited to see this happen, I have used Inform 6 in
| Plan 9 for interactive fiction development for years now, and
| with Inform 7 becoming open, I'm hoping the core compilation
| pipeline can be ported, reading source code for games like
| Counterfeit Monkey by Emily Short is quite amazing.
| dwheeler wrote:
| This is great news!
|
| Inform 7 is really intriguing.
___________________________________________________________________
(page generated 2022-04-28 23:00 UTC)