Interactive Fiction Compiler 'Inform 7' Is Now Open Source (intfiction.org) 22
New submitter Mononymous writes: Created by Graham Nelson, Inform 7 compiles a powerful object-oriented language resembling English into a working text adventure. Friendly GUIs for various platforms have been open source for many years, but the core compiler remained proprietary. Now, 16 years after its initial freeware release, Nelson has released the source code under the Artistic License 2.0 in a public GitHub repo. Inform 7 is one of the largest "literate programs" ever released.
So.. (Score:1)
Politician 2.0 ?
I'm reminded of an old quote about COBOL... (Score:5, Interesting)
COBOL was supposed to be the first "program in plain English" programming languages. It failed at that for various reasons. But the main one was due to an effect that prompted this quote from one of the designers: "If you ever could create a language that let you solve problems in plain English, you'd find that most English speakers can't speak English."
That stuck with me even though I now don't remember who said it.
Re: (Score:3)
COBOL was supposed to be the first "program in plain English" programming languages. It failed at that for various reasons. But the main one was due to an effect that prompted this quote from one of the designers: "If you ever could create a language that let you solve problems in plain English, you'd find that most English speakers can't speak English."
That stuck with me even though I now don't remember who said it.
Inform is not a general purpose language though, it's a very specific DSL for building interactive fictions.
It's easier to learn the few language quirks and minimal syntax, which are mainly for control flow and assigning simple variables; and the majority of "code" is story content anyway; not unlike writing a wiki with hyperlinks for navigating between pages (the main complexity is writing guards to fence-off sections that currently don't make sense storywise).
Re: (Score:1)
wasn't COBOL a development platform for this at least early on? it's hard to imagine not using COBOL for something like this years ago.... FORTRAN as well...
Re: (Score:2)
I know of no IF developed with COBOL. BCPL was used for MUD1. Colossal Cave was in Fortran. Dungeon was written in MDL, later converted to Fortran and then to C.
Re: (Score:2)
Re:I'm reminded of an old quote about COBOL... (Score:5, Interesting)
COBOL ultimately failed
I do not know why you said COBOL "failed". It used in Business and still used in Business for over 60 years. But if you mean "no longer popular", then I agree.
It fell out of favor for only 1 reason, its price. When PCs came out, there was hugh demand for COBOL on DOS/Windows and even in the early days of Linux. But the vendors wanted hundreds (some even thousands) of USD for COBOL (including a fee for runtime licenses). So people moved on to free compilers, c was available and was quite cheap so that was where many people went to back then.
If a cheap/free COBOL Compiler came out in the mid to late 80s, we would probably be living in another world.
Re: (Score:2)
COBOL was created so that business programming could be done cheaply by ordinary bank employees. [wikipedia.org] How good would you say it was at that?
Re: (Score:2)
COBOL was created so that business programming could be done cheaply by ordinary bank employees. [wikipedia.org] How good would you say it was at that?
That claim is simply wrong.
Re: (Score:2)
Cobol was written largely by the US military, who had little interest in bank employees.
Re: (Score:2)
COBOL did not fail.
It is still the most widely language in use on the planet.
You have no clue about the topic. I suggest to read a book about COBOL. Especially data structures and IO are amazing.
could often not readily be adapted to evolving functional requirements without all but completely rewriting the code, which could often be expressed more concisely and rapidly using more modern languages that were emerging at the time.
That is complete nonsense. The only thing you can blame on COBOL is: it is a litt
Re:I'm reminded of an old quote about COBOL... (Score:4, Insightful)
I'd say it failed at its intended purpose - allowing bank staff and accountants to build their own business rules with little training, to reduce costs. It was Excel the system that finally achieved that goal.
COBOL succeeded because it was portable between architectures, something which was not so common at the time, and it survived because it was entrenched in the core systems of the largest banks and was the basis for their first automated procedures; not really for its goodness as an ideal language.
After all that business logic was debugged and finally rid of errors, changing it for other processes written in more modern languages was a risk they were not willing to take.
Re: (Score:2)
Admiral Grace Hopper did not co-develop COBOL for banks.
Comment removed (Score:5, Funny)
Remarkable fellow (Score:4, Interesting)
Awhile back when I was investigating Inform 7, I went down the rabbit hole of learning about the programmer behind it. Graham Nelson is a remarkable person. A mathematician at Oxford and poet. Read through his 2020 Narrascope talk: http://inform7.com/talks/2020/... [inform7.com]
Fascinating stuff
A white paper on the language (Score:4, Informative)
Literate C? (Score:4, Informative)
I'm browsing through the code, and the .w files seem to be written in some kind of "literate C" where the file root is written as commentary, but then it escapes the file to insert C code which in turn contains some natural descriptions as expressions defined elsewhere ((see example). [github.com] Quite interesting.
Lameness filter won't allow me to put one example here, but look at "property *ConditionsOfSubjects::parse" for what I'm talking about.
I wonder if that's because the project is still released only as pseudo-code, or are those .w files actually weaved and compiled into .c code?
Re:Literate C? (Score:4, Informative)
That is the source code, it seems.
It requires two more tools - inweb and intest, and I think inweb is the compiler itself.
So the first step is to build the compiler which looks like it starts off with a huge 1MB C source file called inweb.c (inweb/Tangled/inweb.c) that's compiled with a traditional C compiler. That file is a huge mess and I assume it's the autogenerated output of... something.
That compiler is then used to compile inweb w files so perhaps it's a self-hosting compiler and inweb.c is used to serve as a bootstrap compiler (the output of running inweb to compile all the inweb code). After all, if you need inweb to build inweb from source, you need something that will compile it to bootstrap yourself.
It is one of the more stranger languages and build systems though, definitely reminds me how building it or working on the source code is a maze of twisty passages, all alike.
Re:Literate C? (Score:4, Informative)
You've been eaten by a gru.. (Score:2)
Oh joy! Now I can look forward to being eaten by a gru well into the 21st century.
Re: (Score:2)
There's a can of grue repellant just after the mine.